installation on Python in KLayout

Describe the bug
I am trying to install gdsfactory in KLayout, and I get error below.  This is on KLayout HW-klayout-0.29.1-macOS-Monterey-1-qt5MP-RsysPhb311.  Perhaps one of the gdsfactory dependancies does not want to install.  There are many successful dependancy installations.
Is it possible to have an installation config option that skips some of the dependancies that fail?
Any idea how to fix it?
thank you
> import sys
> sys.version
'3.11.9 (main, Apr  2 2024, 16:31:10) [Clang 14.0.0 (clang-14<IP_ADDRESS>)]'
> from SiEPIC import install
> install.install('gdsfactory')
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
Defaulting to user installation because normal site-packages is not writeable
WARNING: Skipping /Users/lukasc/Library/Python/3.11/lib/python/site-packages/numpy-1.26.2.dist-info due to invalid metadata entry 'name'
WARNING: Skipping /Users/lukasc/Library/Python/3.11/lib/python/site-packages/numpy-1.26.2.dist-info due to invalid metadata entry 'name'
Collecting gdsfactory
  Downloading gdsfactory-8.2.3-py3-none-any.whl.metadata (11 kB)
Collecting jinja2<4 (from gdsfactory)
  Downloading jinja2-3.1.4-py3-none-any.whl.metadata (2.6 kB)
Collecting loguru<1 (from gdsfactory)
  Using cached loguru-0.7.2-py3-none-any.whl.metadata (23 kB)
Requirement already satisfied: matplotlib<4 in /Users/lukasc/Library/Python/3.11/lib/python/site-packages (from gdsfactory) (3.9.0)
Requirement already satisfied: numpy<2 in /Users/lukasc/Library/Python/3.11/lib/python/site-packages (from gdsfactory) (1.26.4)
Collecting omegaconf<3 (from gdsfactory)
  Using cached omegaconf-2.3.0-py3-none-any.whl.metadata (3.9 kB)
Collecting orjson<4 (from gdsfactory)
  Downloading orjson-3.10.5-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl.metadata (49 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 49.7/49.7 kB 1.4 MB/s eta 0:00:00
Requirement already satisfied: pandas<3 in /Users/lukasc/Library/Python/3.11/lib/python/site-packages (from gdsfactory) (2.2.2)
Collecting pydantic<2.8,>=2 (from gdsfactory)
  Downloading pydantic-2.7.4-py3-none-any.whl.metadata (109 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 109.4/109.4 kB 3.1 MB/s eta 0:00:00
Collecting pydantic-settings<3 (from gdsfactory)
  Downloading pydantic_settings-2.3.3-py3-none-any.whl.metadata (3.3 kB)
Collecting pydantic-extra-types<3 (from gdsfactory)
  Downloading pydantic_extra_types-2.8.2-py3-none-any.whl.metadata (3.2 kB)
Requirement already satisfied: pyyaml in /Users/lukasc/Library/Python/3.11/lib/python/site-packages (from gdsfactory) (6.0.1)
Collecting qrcode (from gdsfactory)
  Using cached qrcode-7.4.2-py3-none-any.whl.metadata (17 kB)
Collecting rectpack<1 (from gdsfactory)
  Using cached rectpack-0.2.2-py3-none-any.whl
Requirement already satisfied: rich<14 in /Users/lukasc/Library/Python/3.11/lib/python/site-packages (from gdsfactory) (13.7.1)
Requirement already satisfied: scipy<2 in /Users/lukasc/Library/Python/3.11/lib/python/site-packages (from gdsfactory) (1.13.1)
Collecting shapely<3 (from gdsfactory)
  Downloading shapely-2.0.4-cp311-cp311-macosx_10_9_x86_64.whl.metadata (7.0 kB)
Collecting toolz<1 (from gdsfactory)
  Using cached toolz-0.12.1-py3-none-any.whl.metadata (5.1 kB)
Collecting types-PyYAML (from gdsfactory)
  Using cached types_PyYAML-<IP_ADDRESS>40311-py3-none-any.whl.metadata (1.5 kB)
Collecting typer<1 (from gdsfactory)
  Downloading typer-0.12.3-py3-none-any.whl.metadata (15 kB)
Requirement already satisfied: watchdog<5 in /Users/lukasc/Library/Python/3.11/lib/python/site-packages (from gdsfactory) (4.0.1)
Collecting kfactory==0.17.3 (from kfactory[git,ipy]==0.17.3->gdsfactory)
  Downloading kfactory-0.17.3-py3-none-any.whl.metadata (4.5 kB)
Collecting freetype-py (from gdsfactory)
  Using cached freetype_py-2.4.0-py3-none-macosx_10_9_universal2.whl.metadata (6.3 kB)
Collecting mapbox_earcut (from gdsfactory)
  Downloading mapbox_earcut-1.0.1-cp311-cp311-macosx_10_9_x86_64.whl.metadata (2.0 kB)
Collecting networkx (from gdsfactory)
  Downloading networkx-3.3-py3-none-any.whl.metadata (5.1 kB)
Collecting scikit-image (from gdsfactory)
  Downloading scikit_image-0.24.0-cp311-cp311-macosx_10_9_x86_64.whl.metadata (14 kB)
Collecting trimesh<4.4,>=4 (from gdsfactory)
  Downloading trimesh-4.3.2-py3-none-any.whl.metadata (18 kB)
Collecting ipykernel (from gdsfactory)
  Downloading ipykernel-6.29.4-py3-none-any.whl.metadata (6.3 kB)
Collecting klayout>=0.29.1 (from kfactory==0.17.3->kfactory[git,ipy]==0.17.3->gdsfactory)
  Downloading klayout-0.29.2-cp311-cp311-macosx_10_9_x86_64.whl.metadata (782 bytes)
Collecting ruamel.yaml (from kfactory==0.17.3->kfactory[git,ipy]==0.17.3->gdsfactory)
  Using cached ruamel.yaml-0.18.6-py3-none-any.whl.metadata (23 kB)
Collecting cachetools>=5.2.0 (from kfactory==0.17.3->kfactory[git,ipy]==0.17.3->gdsfactory)
  Using cached cachetools-5.3.3-py3-none-any.whl.metadata (5.3 kB)
Collecting gitpython (from kfactory==0.17.3->kfactory[git,ipy]==0.17.3->gdsfactory)
  Downloading GitPython-3.1.43-py3-none-any.whl.metadata (13 kB)
Collecting tomli (from kfactory==0.17.3->kfactory[git,ipy]==0.17.3->gdsfactory)
  Using cached tomli-2.0.1-py3-none-any.whl.metadata (8.9 kB)
Requirement already satisfied: requests in /Users/lukasc/Library/Python/3.11/lib/python/site-packages (from kfactory==0.17.3->kfactory[git,ipy]==0.17.3->gdsfactory) (2.31.0)
Collecting aenum (from kfactory==0.17.3->kfactory[git,ipy]==0.17.3->gdsfactory)
  Using cached aenum-3.1.15-py3-none-any.whl.metadata (3.7 kB)
Collecting ipython (from kfactory[git,ipy]==0.17.3->gdsfactory)
  Downloading ipython-8.25.0-py3-none-any.whl.metadata (4.9 kB)
Collecting ipywidgets (from kfactory[git,ipy]==0.17.3->gdsfactory)
  Downloading ipywidgets-8.1.3-py3-none-any.whl.metadata (2.4 kB)
Collecting ipytree (from kfactory[git,ipy]==0.17.3->gdsfactory)
  Using cached ipytree-0.2.2-py2.py3-none-any.whl.metadata (849 bytes)
Collecting ipyevents (from kfactory[git,ipy]==0.17.3->gdsfactory)
  Using cached ipyevents-2.0.2-py3-none-any.whl.metadata (2.9 kB)
Collecting MarkupSafe>=2.0 (from jinja2<4->gdsfactory)
  Downloading MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl.metadata (3.0 kB)
Requirement already satisfied: contourpy>=1.0.1 in /Users/lukasc/Library/Python/3.11/lib/python/site-packages (from matplotlib<4->gdsfactory) (1.2.1)
Requirement already satisfied: cycler>=0.10 in /Users/lukasc/Library/Python/3.11/lib/python/site-packages (from matplotlib<4->gdsfactory) (0.12.1)
Requirement already satisfied: fonttools>=4.22.0 in /Users/lukasc/Library/Python/3.11/lib/python/site-packages (from matplotlib<4->gdsfactory) (4.53.0)
Requirement already satisfied: kiwisolver>=1.3.1 in /Users/lukasc/Library/Python/3.11/lib/python/site-packages (from matplotlib<4->gdsfactory) (1.4.5)
Requirement already satisfied: packaging>=20.0 in /Users/lukasc/Library/Python/3.11/lib/python/site-packages (from matplotlib<4->gdsfactory) (23.2)
Requirement already satisfied: pillow>=8 in /Users/lukasc/Library/Python/3.11/lib/python/site-packages (from matplotlib<4->gdsfactory) (10.3.0)
Requirement already satisfied: pyparsing>=2.3.1 in /Users/lukasc/Library/Python/3.11/lib/python/site-packages (from matplotlib<4->gdsfactory) (3.1.1)
Requirement already satisfied: python-dateutil>=2.7 in /Users/lukasc/Library/Python/3.11/lib/python/site-packages (from matplotlib<4->gdsfactory) (2.8.2)
Collecting antlr4-python3-runtime==4.9.* (from omegaconf<3->gdsfactory)
  Using cached antlr4_python3_runtime-4.9.3-py3-none-any.whl
Requirement already satisfied: pytz>=2020.1 in /Users/lukasc/Library/Python/3.11/lib/python/site-packages (from pandas<3->gdsfactory) (2023.3.post1)
Requirement already satisfied: tzdata>=2022.7 in /Users/lukasc/Library/Python/3.11/lib/python/site-packages (from pandas<3->gdsfactory) (2023.4)
Collecting annotated-types>=0.4.0 (from pydantic<2.8,>=2->gdsfactory)
  Using cached annotated_types-0.7.0-py3-none-any.whl.metadata (15 kB)
Collecting pydantic-core==2.18.4 (from pydantic<2.8,>=2->gdsfactory)
  Downloading pydantic_core-2.18.4-cp311-cp311-macosx_10_12_x86_64.whl.metadata (6.5 kB)
Collecting typing-extensions>=4.6.1 (from pydantic<2.8,>=2->gdsfactory)
  Downloading typing_extensions-4.12.2-py3-none-any.whl.metadata (3.0 kB)
Collecting python-dotenv>=0.21.0 (from pydantic-settings<3->gdsfactory)
  Using cached python_dotenv-1.0.1-py3-none-any.whl.metadata (23 kB)
Requirement already satisfied: markdown-it-py>=2.2.0 in /Users/lukasc/Library/Python/3.11/lib/python/site-packages (from rich<14->gdsfactory) (3.0.0)
Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /Users/lukasc/Library/Python/3.11/lib/python/site-packages (from rich<14->gdsfactory) (2.18.0)
Collecting click>=8.0.0 (from typer<1->gdsfactory)
  Using cached click-8.1.7-py3-none-any.whl.metadata (3.0 kB)
Collecting shellingham>=1.3.0 (from typer<1->gdsfactory)
  Using cached shellingham-1.5.4-py2.py3-none-any.whl.metadata (3.5 kB)
Collecting appnope (from ipykernel->gdsfactory)
  Using cached appnope-0.1.4-py2.py3-none-any.whl.metadata (908 bytes)
Collecting comm>=0.1.1 (from ipykernel->gdsfactory)
  Using cached comm-0.2.2-py3-none-any.whl.metadata (3.7 kB)
Collecting debugpy>=1.6.5 (from ipykernel->gdsfactory)
  Using cached debugpy-1.8.1-cp311-cp311-macosx_11_0_universal2.whl.metadata (1.1 kB)
Collecting jupyter-client>=6.1.12 (from ipykernel->gdsfactory)
  Downloading jupyter_client-8.6.2-py3-none-any.whl.metadata (8.3 kB)
Collecting jupyter-core!=5.0.*,>=4.12 (from ipykernel->gdsfactory)
  Using cached jupyter_core-5.7.2-py3-none-any.whl.metadata (3.4 kB)
Collecting matplotlib-inline>=0.1 (from ipykernel->gdsfactory)
  Downloading matplotlib_inline-0.1.7-py3-none-any.whl.metadata (3.9 kB)
Collecting nest-asyncio (from ipykernel->gdsfactory)
  Using cached nest_asyncio-1.6.0-py3-none-any.whl.metadata (2.8 kB)
Collecting psutil (from ipykernel->gdsfactory)
  Downloading psutil-6.0.0-cp36-abi3-macosx_10_9_x86_64.whl.metadata (21 kB)
Collecting pyzmq>=24 (from ipykernel->gdsfactory)
  Downloading pyzmq-26.0.3-cp311-cp311-macosx_10_15_universal2.whl.metadata (6.1 kB)
Collecting tornado>=6.1 (from ipykernel->gdsfactory)
  Downloading tornado-6.4.1-cp38-abi3-macosx_10_9_x86_64.whl.metadata (2.5 kB)
Collecting traitlets>=5.4.0 (from ipykernel->gdsfactory)
  Downloading traitlets-5.14.3-py3-none-any.whl.metadata (10 kB)
Collecting pypng (from qrcode->gdsfactory)
  Using cached pypng-0.20220715.0-py3-none-any.whl.metadata (13 kB)
Collecting imageio>=2.33 (from scikit-image->gdsfactory)
  Downloading imageio-2.34.1-py3-none-any.whl.metadata (4.9 kB)
Collecting tifffile>=2022.8.12 (from scikit-image->gdsfactory)
  Downloading tifffile-2024.6.18-py3-none-any.whl.metadata (31 kB)
Collecting lazy-loader>=0.4 (from scikit-image->gdsfactory)
  Downloading lazy_loader-0.4-py3-none-any.whl.metadata (7.6 kB)
Collecting decorator (from ipython->kfactory[git,ipy]==0.17.3->gdsfactory)
  Using cached decorator-5.1.1-py3-none-any.whl.metadata (4.0 kB)
Collecting jedi>=0.16 (from ipython->kfactory[git,ipy]==0.17.3->gdsfactory)
  Using cached jedi-0.19.1-py2.py3-none-any.whl.metadata (22 kB)
Collecting prompt-toolkit<3.1.0,>=3.0.41 (from ipython->kfactory[git,ipy]==0.17.3->gdsfactory)
  Downloading prompt_toolkit-3.0.47-py3-none-any.whl.metadata (6.4 kB)
Collecting stack-data (from ipython->kfactory[git,ipy]==0.17.3->gdsfactory)
  Using cached stack_data-0.6.3-py3-none-any.whl.metadata (18 kB)
Collecting pexpect>4.3 (from ipython->kfactory[git,ipy]==0.17.3->gdsfactory)
  Using cached pexpect-4.9.0-py2.py3-none-any.whl.metadata (2.5 kB)
Collecting platformdirs>=2.5 (from jupyter-core!=5.0.*,>=4.12->ipykernel->gdsfactory)
  Downloading platformdirs-4.2.2-py3-none-any.whl.metadata (11 kB)
Requirement already satisfied: mdurl~=0.1 in /Users/lukasc/Library/Python/3.11/lib/python/site-packages (from markdown-it-py>=2.2.0->rich<14->gdsfactory) (0.1.2)
Requirement already satisfied: six>=1.5 in /Users/lukasc/Library/Python/3.11/lib/python/site-packages (from python-dateutil>=2.7->matplotlib<4->gdsfactory) (1.16.0)
Collecting gitdb<5,>=4.0.1 (from gitpython->kfactory==0.17.3->kfactory[git,ipy]==0.17.3->gdsfactory)
  Using cached gitdb-4.0.11-py3-none-any.whl.metadata (1.2 kB)
Collecting widgetsnbextension~=4.0.11 (from ipywidgets->kfactory[git,ipy]==0.17.3->gdsfactory)
  Downloading widgetsnbextension-4.0.11-py3-none-any.whl.metadata (1.6 kB)
Collecting jupyterlab-widgets~=3.0.11 (from ipywidgets->kfactory[git,ipy]==0.17.3->gdsfactory)
  Downloading jupyterlab_widgets-3.0.11-py3-none-any.whl.metadata (4.1 kB)
Requirement already satisfied: charset-normalizer<4,>=2 in /Users/lukasc/Library/Python/3.11/lib/python/site-packages (from requests->kfactory==0.17.3->kfactory[git,ipy]==0.17.3->gdsfactory) (3.3.2)
Requirement already satisfied: idna<4,>=2.5 in /Users/lukasc/Library/Python/3.11/lib/python/site-packages (from requests->kfactory==0.17.3->kfactory[git,ipy]==0.17.3->gdsfactory) (3.6)
Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/lukasc/Library/Python/3.11/lib/python/site-packages (from requests->kfactory==0.17.3->kfactory[git,ipy]==0.17.3->gdsfactory) (2.1.0)
Requirement already satisfied: certifi>=2017.4.17 in /Users/lukasc/Library/Python/3.11/lib/python/site-packages (from requests->kfactory==0.17.3->kfactory[git,ipy]==0.17.3->gdsfactory) (2023.11.17)
Collecting ruamel.yaml.clib>=0.2.7 (from ruamel.yaml->kfactory==0.17.3->kfactory[git,ipy]==0.17.3->gdsfactory)
  Downloading ruamel.yaml.clib-0.2.8-cp311-cp311-macosx_10_9_universal2.whl.metadata (2.2 kB)
WARNING: typer 0.12.3 does not provide the extra 'all'
Collecting smmap<6,>=3.0.1 (from gitdb<5,>=4.0.1->gitpython->kfactory==0.17.3->kfactory[git,ipy]==0.17.3->gdsfactory)
  Using cached smmap-5.0.1-py3-none-any.whl.metadata (4.3 kB)
Collecting parso<0.9.0,>=0.8.3 (from jedi>=0.16->ipython->kfactory[git,ipy]==0.17.3->gdsfactory)
  Downloading parso-0.8.4-py2.py3-none-any.whl.metadata (7.7 kB)
Collecting ptyprocess>=0.5 (from pexpect>4.3->ipython->kfactory[git,ipy]==0.17.3->gdsfactory)
  Using cached ptyprocess-0.7.0-py2.py3-none-any.whl.metadata (1.3 kB)
Collecting wcwidth (from prompt-toolkit<3.1.0,>=3.0.41->ipython->kfactory[git,ipy]==0.17.3->gdsfactory)
  Using cached wcwidth-0.2.13-py2.py3-none-any.whl.metadata (14 kB)
Collecting executing>=1.2.0 (from stack-data->ipython->kfactory[git,ipy]==0.17.3->gdsfactory)
  Using cached executing-2.0.1-py2.py3-none-any.whl.metadata (9.0 kB)
Collecting asttokens>=2.1.0 (from stack-data->ipython->kfactory[git,ipy]==0.17.3->gdsfactory)
  Using cached asttokens-2.4.1-py2.py3-none-any.whl.metadata (5.2 kB)
Collecting pure-eval (from stack-data->ipython->kfactory[git,ipy]==0.17.3->gdsfactory)
  Using cached pure_eval-0.2.2-py3-none-any.whl.metadata (6.2 kB)
Downloading gdsfactory-8.2.3-py3-none-any.whl (636 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 636.2/636.2 kB 12.5 MB/s eta 0:00:00
Downloading kfactory-0.17.3-py3-none-any.whl (141 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 141.7/141.7 kB 7.4 MB/s eta 0:00:00
Downloading jinja2-3.1.4-py3-none-any.whl (133 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.3/133.3 kB 9.0 MB/s eta 0:00:00
Using cached loguru-0.7.2-py3-none-any.whl (62 kB)
Using cached omegaconf-2.3.0-py3-none-any.whl (79 kB)
Downloading orjson-3.10.5-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl (258 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 258.7/258.7 kB 7.2 MB/s eta 0:00:00
Downloading pydantic-2.7.4-py3-none-any.whl (409 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 409.0/409.0 kB 12.1 MB/s eta 0:00:00
Downloading pydantic_core-2.18.4-cp311-cp311-macosx_10_12_x86_64.whl (1.9 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.9/1.9 MB 20.4 MB/s eta 0:00:00
Downloading pydantic_extra_types-2.8.2-py3-none-any.whl (27 kB)
Downloading pydantic_settings-2.3.3-py3-none-any.whl (22 kB)
Downloading shapely-2.0.4-cp311-cp311-macosx_10_9_x86_64.whl (1.4 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.4/1.4 MB 23.4 MB/s eta 0:00:00
Using cached toolz-0.12.1-py3-none-any.whl (56 kB)
Downloading trimesh-4.3.2-py3-none-any.whl (693 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 693.9/693.9 kB 15.8 MB/s eta 0:00:00
Downloading typer-0.12.3-py3-none-any.whl (47 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 47.2/47.2 kB 3.2 MB/s eta 0:00:00
Using cached freetype_py-2.4.0-py3-none-macosx_10_9_universal2.whl (1.8 MB)
Downloading ipykernel-6.29.4-py3-none-any.whl (117 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 117.1/117.1 kB 4.5 MB/s eta 0:00:00
Downloading mapbox_earcut-1.0.1-cp311-cp311-macosx_10_9_x86_64.whl (75 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 75.6/75.6 kB 3.1 MB/s eta 0:00:00
Downloading networkx-3.3-py3-none-any.whl (1.7 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.7/1.7 MB 30.5 MB/s eta 0:00:00
Using cached qrcode-7.4.2-py3-none-any.whl (46 kB)
Downloading scikit_image-0.24.0-cp311-cp311-macosx_10_9_x86_64.whl (14.0 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.0/14.0 MB 34.9 MB/s eta 0:00:00
Using cached types_PyYAML-<IP_ADDRESS>40311-py3-none-any.whl (15 kB)
Using cached annotated_types-0.7.0-py3-none-any.whl (13 kB)
Using cached cachetools-5.3.3-py3-none-any.whl (9.3 kB)
Using cached click-8.1.7-py3-none-any.whl (97 kB)
Using cached comm-0.2.2-py3-none-any.whl (7.2 kB)
Using cached debugpy-1.8.1-cp311-cp311-macosx_11_0_universal2.whl (1.8 MB)
Downloading imageio-2.34.1-py3-none-any.whl (313 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 313.5/313.5 kB 15.7 MB/s eta 0:00:00
Downloading ipython-8.25.0-py3-none-any.whl (817 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 817.3/817.3 kB 26.8 MB/s eta 0:00:00
Downloading jupyter_client-8.6.2-py3-none-any.whl (105 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 105.9/105.9 kB 6.1 MB/s eta 0:00:00
Using cached jupyter_core-5.7.2-py3-none-any.whl (28 kB)
Downloading klayout-0.29.2-cp311-cp311-macosx_10_9_x86_64.whl (18.6 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 18.6/18.6 MB 13.3 MB/s eta 0:00:00
Downloading lazy_loader-0.4-py3-none-any.whl (12 kB)
Downloading MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl (14 kB)
Downloading matplotlib_inline-0.1.7-py3-none-any.whl (9.9 kB)
Using cached python_dotenv-1.0.1-py3-none-any.whl (19 kB)
Downloading pyzmq-26.0.3-cp311-cp311-macosx_10_15_universal2.whl (1.4 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.4/1.4 MB 20.7 MB/s eta 0:00:00
Using cached shellingham-1.5.4-py2.py3-none-any.whl (9.8 kB)
Downloading tifffile-2024.6.18-py3-none-any.whl (226 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 226.0/226.0 kB 8.2 MB/s eta 0:00:00
Downloading tornado-6.4.1-cp38-abi3-macosx_10_9_x86_64.whl (433 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 433.9/433.9 kB 15.2 MB/s eta 0:00:00
Downloading traitlets-5.14.3-py3-none-any.whl (85 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 85.4/85.4 kB 4.3 MB/s eta 0:00:00
Downloading typing_extensions-4.12.2-py3-none-any.whl (37 kB)
Using cached aenum-3.1.15-py3-none-any.whl (137 kB)
Using cached appnope-0.1.4-py2.py3-none-any.whl (4.3 kB)
Downloading GitPython-3.1.43-py3-none-any.whl (207 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 207.3/207.3 kB 9.7 MB/s eta 0:00:00
Using cached ipyevents-2.0.2-py3-none-any.whl (101 kB)
Downloading ipywidgets-8.1.3-py3-none-any.whl (139 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 139.4/139.4 kB 7.3 MB/s eta 0:00:00
Using cached ipytree-0.2.2-py2.py3-none-any.whl (1.3 MB)
Using cached nest_asyncio-1.6.0-py3-none-any.whl (5.2 kB)
Downloading psutil-6.0.0-cp36-abi3-macosx_10_9_x86_64.whl (250 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 251.0/251.0 kB 11.5 MB/s eta 0:00:00
Using cached pypng-0.20220715.0-py3-none-any.whl (58 kB)
Using cached ruamel.yaml-0.18.6-py3-none-any.whl (117 kB)
Using cached tomli-2.0.1-py3-none-any.whl (12 kB)
Using cached gitdb-4.0.11-py3-none-any.whl (62 kB)
Using cached jedi-0.19.1-py2.py3-none-any.whl (1.6 MB)
Downloading jupyterlab_widgets-3.0.11-py3-none-any.whl (214 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 214.4/214.4 kB 9.1 MB/s eta 0:00:00
Using cached pexpect-4.9.0-py2.py3-none-any.whl (63 kB)
Downloading platformdirs-4.2.2-py3-none-any.whl (18 kB)
Downloading prompt_toolkit-3.0.47-py3-none-any.whl (386 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 386.4/386.4 kB 13.7 MB/s eta 0:00:00
Downloading ruamel.yaml.clib-0.2.8-cp311-cp311-macosx_10_9_universal2.whl (148 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 148.9/148.9 kB 7.6 MB/s eta 0:00:00
Downloading widgetsnbextension-4.0.11-py3-none-any.whl (2.3 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.3/2.3 MB 26.3 MB/s eta 0:00:00
Using cached decorator-5.1.1-py3-none-any.whl (9.1 kB)
Using cached stack_data-0.6.3-py3-none-any.whl (24 kB)
Using cached asttokens-2.4.1-py2.py3-none-any.whl (27 kB)
Using cached executing-2.0.1-py2.py3-none-any.whl (24 kB)
Downloading parso-0.8.4-py2.py3-none-any.whl (103 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 103.7/103.7 kB 4.2 MB/s eta 0:00:00
Using cached ptyprocess-0.7.0-py2.py3-none-any.whl (13 kB)
Using cached smmap-5.0.1-py3-none-any.whl (24 kB)
Using cached pure_eval-0.2.2-py3-none-any.whl (11 kB)
Using cached wcwidth-0.2.13-py2.py3-none-any.whl (34 kB)
WARNING: Skipping /Users/lukasc/Library/Python/3.11/lib/python/site-packages/numpy-1.26.2.dist-info due to invalid metadata entry 'name'
Installing collected packages: wcwidth, rectpack, pypng, pure-eval, ptyprocess, klayout, antlr4-python3-runtime, aenum, widgetsnbextension, typing-extensions, types-PyYAML, trimesh, traitlets, tornado, toolz, tomli, tifffile, smmap, shellingham, shapely, ruamel.yaml.clib, pyzmq, python-dotenv, psutil, prompt-toolkit, platformdirs, pexpect, parso, orjson, omegaconf, networkx, nest-asyncio, MarkupSafe, mapbox_earcut, loguru, lazy-loader, jupyterlab-widgets, imageio, freetype-py, executing, decorator, debugpy, click, cachetools, asttokens, appnope, annotated-types, stack-data, scikit-image, ruamel.yaml, qrcode, pydantic-core, matplotlib-inline, jupyter-core, jinja2, jedi, gitdb, comm, typer, pydantic, jupyter-client, ipython, gitpython, pydantic-settings, pydantic-extra-types, ipywidgets, ipykernel, kfactory, ipytree, ipyevents, gdsfactory
ERROR: Exception:
Traceback (most recent call last):
  File "/Users/lukasc/.klayout/python/SiEPIC/install.py", line 41, in install
    importlib.import_module(package)
  File "/Applications/KLayout HW-klayout-0.29.1-macOS-Monterey-1-qt5MP-RsysPhb311.app/Contents/Frameworks/Python.framework/Versions/3.11/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1140, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'gdsfactory'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Applications/KLayout HW-klayout-0.29.1-macOS-Monterey-1-qt5MP-RsysPhb311.app/Contents/Frameworks/Python.framework/Versions/3.11/lib/python3.11/py_compile.py", line 144, in compile
    code = loader.source_to_code(source_bytes, dfile or file,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap_external>", line 1004, in source_to_code
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/Users/lukasc/Library/Python/3.11/lib/python/site-packages/aenum/_py2.py", line 5
    raise exc, None, tb
             ^
SyntaxError: invalid syntax

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Applications/KLayout HW-klayout-0.29.1-macOS-Monterey-1-qt5MP-RsysPhb311.app/Contents/Frameworks/Python.framework/Versions/3.11/lib/python3.11/compileall.py", line 240, in compile_file
    ok = py_compile.compile(fullname, cfile, dfile, True,
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Applications/KLayout HW-klayout-0.29.1-macOS-Monterey-1-qt5MP-RsysPhb311.app/Contents/Frameworks/Python.framework/Versions/3.11/lib/python3.11/py_compile.py", line 150, in compile
    raise py_exc
py_compile.PyCompileError:   File "/Users/lukasc/Library/Python/3.11/lib/python/site-packages/aenum/_py2.py", line 5
    raise exc, None, tb
             ^
SyntaxError: invalid syntax

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Applications/KLayout HW-klayout-0.29.1-macOS-Monterey-1-qt5MP-RsysPhb311.app/Contents/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper
    status = run_func(*args)
             ^^^^^^^^^^^^^^^
  File "/Applications/KLayout HW-klayout-0.29.1-macOS-Monterey-1-qt5MP-RsysPhb311.app/Contents/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper
    return func(self, options, args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Applications/KLayout HW-klayout-0.29.1-macOS-Monterey-1-qt5MP-RsysPhb311.app/Contents/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pip/_internal/commands/install.py", line 452, in run
    installed = install_given_reqs(
                ^^^^^^^^^^^^^^^^^^^
  File "/Applications/KLayout HW-klayout-0.29.1-macOS-Monterey-1-qt5MP-RsysPhb311.app/Contents/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pip/_internal/req/__init__.py", line 72, in install_given_reqs
    requirement.install(
  File "/Applications/KLayout HW-klayout-0.29.1-macOS-Monterey-1-qt5MP-RsysPhb311.app/Contents/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pip/_internal/req/req_install.py", line 856, in install
    install_wheel(
  File "/Applications/KLayout HW-klayout-0.29.1-macOS-Monterey-1-qt5MP-RsysPhb311.app/Contents/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pip/_internal/operations/install/wheel.py", line 725, in install_wheel
    _install_wheel(
  File "/Applications/KLayout HW-klayout-0.29.1-macOS-Monterey-1-qt5MP-RsysPhb311.app/Contents/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pip/_internal/operations/install/wheel.py", line 611, in _install_wheel
    success = compileall.compile_file(path, force=True, quiet=True)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Applications/KLayout HW-klayout-0.29.1-macOS-Monterey-1-qt5MP-RsysPhb311.app/Contents/Frameworks/Python.framework/Versions/3.11/lib/python3.11/compileall.py", line 257, in compile_file
    encoding = sys.stdout.encoding or sys.getdefaultencoding()
               ^^^^^^^^^^^^^^^^^^^
  File "/Applications/KLayout HW-klayout-0.29.1-macOS-Monterey-1-qt5MP-RsysPhb311.app/Contents/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pip/_internal/utils/misc.py", line 399, in encoding
    return self.orig_stream.encoding
           ^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: '__PYA_Channel' object has no attribute 'encoding'
WARNING: Skipping /Users/lukasc/Library/Python/3.11/lib/python/site-packages/numpy-1.26.2.dist-info due to invalid metadata entry 'name'
WARNING: Skipping /Users/lukasc/Library/Python/3.11/lib/python/site-packages/numpy-1.26.2.dist-info due to invalid metadata entry 'name'
WARNING: Skipping /Users/lukasc/Library/Python/3.11/lib/python/site-packages/numpy-1.26.2.dist-info due to invalid metadata entry 'name'
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
Defaulting to user installation because normal site-packages is not writeable
WARNING: Skipping /Users/lukasc/Library/Python/3.11/lib/python/site-packages/numpy-1.26.2.dist-info due to invalid metadata entry 'name'
WARNING: Skipping /Users/lukasc/Library/Python/3.11/lib/python/site-packages/numpy-1.26.2.dist-info due to invalid metadata entry 'name'
ERROR: Could not find a version that satisfies the requirement pygdsfactory (from versions: none)
ERROR: No matching distribution found for pygdsfactory
WARNING: Skipping /Users/lukasc/Library/Python/3.11/lib/python/site-packages/numpy-1.26.2.dist-info due to invalid metadata entry 'name'
WARNING: Skipping /Users/lukasc/Library/Python/3.11/lib/python/site-packages/numpy-1.26.2.dist-info due to invalid metadata entry 'name'
WARNING: Skipping /Users/lukasc/Library/Python/3.11/lib/python/site-packages/numpy-1.26.2.dist-info due to invalid metadata entry 'name'
False
> import gdsfactory
ModuleNotFoundError: No module named 'gdsfactory'

To Reproduce
See above.

Expected behavior
that it installs and imports correctly
Suggested fix
Making the import work.

I've never tried installing it in the macro development from klayout,
we usually recommend using klayout as a viewer and installing gdsfactory on a separate python

Here is a second attempt that works:
> import pip
> pip.main(['install','gdsfactory'])
> import gdsfactory

And it ran successfully.  I was able to get the a layout example to run and save a layout.
Now, on to trying to display that layout directly, without saving and loading.  Any ideas how @joamatab ?
@mustafacc could you please check if this works on Linux?
@seanlam97 could you please check if this works on Windows?
thank you

on ubuntu 22.04 it's failing
> pip.main(['install', 'gdsfactory'])
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
Defaulting to user installation because normal site-packages is not writeable
Collecting gdsfactory
  Using cached gdsfactory-8.2.3-py3-none-any.whl (636 kB)
Collecting loguru<1
  Using cached loguru-0.7.2-py3-none-any.whl (62 kB)
Collecting trimesh<4.4,>=4
  Using cached trimesh-4.3.2-py3-none-any.whl (693 kB)
Requirement already satisfied: numpy<2 in /home/mustafa/.local/lib/python3.10/site-packages (from gdsfactory) (1.26.3)
Collecting rectpack<1
  Using cached rectpack-0.2.2.tar.gz (17 kB)
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'error'
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [2 lines of output]
      Info: Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
      ERROR: Unknown option: --egg-base
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
1

It seems the issue is with installing the package rectpack itself.

Could you try installing with the "--no-dependencies" option added?
> import pip
> pip.main(['install','--no-dependencies','gdsfactory'])
> import gdsfactory

Maybe this can skip the installation of rectpack, and we can see if it is necessary.

I would highly suggest to move away from installing directly in klayout. It can completely brick systems if used carelessly, on MacOS it can brick your (ana)conda env (since it most likely uses the default brew env).
Debian (and most likely other linux distros) are moving towards disallowing people to just install system wide (or even user space) packages with no venv PEP
This is to safeguard users from accidentially bricking vital system packages like this https://forums.linuxmint.com/viewtopic.php?t=381919
https://forums.centos.org/viewtopic.php?t=74134
Sure, there are ways to re-enable the old behavior, but that would feel like teaching kids to play on the train tracks in front of the house because it's easily viewable from the balcony.

@lukasc-ubc It installs okay without dependencies, however, import fails when attempting to load kfactory (another package thats failing to install).
@sebastian-goeldi Agreed. I ran this on a VM to not cause any issues with the system's python. I was investigating https://github.com/flaport/condalayout to potentially mitigate this issue on linux but I ran into other issues.

Btw it works (on linux, but macos should be the same, just different python) with the following which will not abuse/pollute the system/user env:
cd ~
mkdir kfactory_klayout && cd kfactory_klayout
python3 -m venv .env
source .env/bin/activate
KLAYOUT_PYTHONPATH=~/kfactory_klayout/.env/lib/python3.11/site-packages/ klayout

with this I was able to successfully import and after a quick test use kfactory.
But be advised, at least with the debug console open, it takes a good 10 seconds to import kfactory (not even talking about gdsfactory here).

I tried it but I seem to be running into an issue importing encodings module, even though it can be imported within that env.
(.env) (base) mustafa@mustafa:~/kfactory_klayout$ klayout
Info: Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
Python path configuration:
  PYTHONHOME = (not set)
  PYTHONPATH = (not set)
  program name = '/proc/61953/exe'
  isolated = 0
  environment = 1
  user site = 1
  import site = 1
  sys._base_executable = '/proc/61953/exe'
  sys.base_prefix = ''
  sys.base_exec_prefix = ''
  sys.platlibdir = 'lib'
  sys.executable = '/proc/61953/exe'
  sys.prefix = ''
  sys.exec_prefix = ''
  sys.path = [
    '/home/mustafa/kfactory_klayout/.env/lib/python3.12/site-packages/',
  ]
Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named 'encodings'

Current thread 0x00007d6d244c3840 (most recent call first):
  <no Python frame>

echo $KLAYOUT_PYTHONPATH: /home/mustafa/kfactory_klayout/.env/lib/python3.12/site-packages/
which python: /home/mustafa/kfactory_klayout/.env/bin/python
python --version: Python 3.12.2

You need to use system python on linux. Or to be more accurate, the python klayout was compiled against. And that, unless you compiled it yourself is probably not 3.12.


Building for MacOS M1 (Arm)

I am having trouble building the Python Wrapper. I have followed everything that's described in the link: https://github.com/open-quantum-safe/liboqs-python and It stops with errors at 95% when I run the third command: cmake --build liboqs/build --parallel 8.
I am building on Apple MacBook Pro M1 Silicon and I think, arm64 is the issue. I see that its building for x86/64 but the target is arm64.
Here is the error extract from the point of failure:
[ 95%] Built target internal
ld: warning: ignoring file<EMAIL_ADDRESS>building for macOS-arm64 but attempting to link with file built for macOS-x86_64
[ 95%] Linking C static library ../lib/liboqs-internal.a
Undefined symbols for architecture arm64:
"_EVP_CIPHER_CTX_free", referenced from:
_AES128_free_schedule in aes_ossl.c.o
_AES256_CTR_inc_stream_iv in aes_ossl.c.o
"_EVP_CIPHER_CTX_new", referenced from:
_AES128_ECB_load_schedule in aes_ossl.c.o
_AES256_ECB_load_schedule in aes_ossl.c.o
_AES256_CTR_inc_init in aes_ossl.c.o
_AES256_CTR_inc_stream_iv in aes_ossl.c.o
[ 95%] Built target oqs-internal
"_EVP_CIPHER_CTX_set_padding", referenced from:
_AES128_ECB_load_schedule in aes_ossl.c.o
_AES256_ECB_load_schedule in aes_ossl.c.o
"_EVP_DigestFinal_ex", referenced from:
_SHA2_sha256_inc_finalize in sha2_ossl.c.o
_SHA2_sha384_inc_finalize in sha2_ossl.c.o
_SHA2_sha512_inc_finalize in sha2_ossl.c.o
_do_hash in sha2_ossl.c.o
"_EVP_DigestInit_ex", referenced from:
_SHA2_sha256_inc_init in sha2_ossl.c.o
_SHA2_sha384_inc_init in sha2_ossl.c.o
_SHA2_sha512_inc_init in sha2_ossl.c.o
_do_hash in sha2_ossl.c.o
"_EVP_DigestUpdate", referenced from:
_SHA2_sha256_inc_blocks in sha2_ossl.c.o
_SHA2_sha256_inc_finalize in sha2_ossl.c.o
_SHA2_sha384_inc_blocks in sha2_ossl.c.o
_SHA2_sha384_inc_finalize in sha2_ossl.c.o
_SHA2_sha512_inc_blocks in sha2_ossl.c.o
_SHA2_sha512_inc_finalize in sha2_ossl.c.o
_do_hash in sha2_ossl.c.o
...
"_EVP_EncryptFinal_ex", referenced from:
_AES128_ECB_enc_sch in aes_ossl.c.o
_AES256_CTR_inc_stream_iv in aes_ossl.c.o
"_EVP_EncryptInit_ex", referenced from:
_AES128_ECB_load_schedule in aes_ossl.c.o
_AES256_ECB_load_schedule in aes_ossl.c.o
_AES256_CTR_inc_iv in aes_ossl.c.o
_AES256_CTR_inc_ivu64 in aes_ossl.c.o
_AES256_CTR_inc_stream_iv in aes_ossl.c.o
"_EVP_EncryptUpdate", referenced from:
_AES128_ECB_enc_sch in aes_ossl.c.o
_AES256_CTR_inc_stream_iv in aes_ossl.c.o
_AES256_CTR_inc_stream_blks in aes_ossl.c.o
"_EVP_MD_CTX_copy_ex", referenced from:
_SHA2_sha256_inc_ctx_clone in sha2_ossl.c.o
_SHA2_sha384_inc_ctx_clone in sha2_ossl.c.o
_SHA2_sha512_inc_ctx_clone in sha2_ossl.c.o
"_EVP_MD_CTX_free", referenced from:
_SHA2_sha256_inc_finalize in sha2_ossl.c.o
_SHA2_sha256_inc_ctx_release in sha2_ossl.c.o
_SHA2_sha384_inc_finalize in sha2_ossl.c.o
_SHA2_sha384_inc_ctx_release in sha2_ossl.c.o
_SHA2_sha512_inc_finalize in sha2_ossl.c.o
_SHA2_sha512_inc_ctx_release in sha2_ossl.c.o
_do_hash in sha2_ossl.c.o
...
"_EVP_MD_CTX_new", referenced from:
_SHA2_sha256_inc_init in sha2_ossl.c.o
_SHA2_sha384_inc_init in sha2_ossl.c.o
_SHA2_sha512_inc_init in sha2_ossl.c.o
_do_hash in sha2_ossl.c.o
"_EVP_aes_128_ecb", referenced from:
_oqs_aes_128_ecb in ossl_helpers.c.o
"_EVP_aes_256_ctr", referenced from:
_oqs_aes_256_ctr in ossl_helpers.c.o
"_EVP_aes_256_ecb", referenced from:
_oqs_aes_256_ecb in ossl_helpers.c.o
"_EVP_sha256", referenced from:
_oqs_sha256 in ossl_helpers.c.o
"_EVP_sha384", referenced from:
_oqs_sha384 in ossl_helpers.c.o
"_EVP_sha3_256", referenced from:
_oqs_sha3_256 in ossl_helpers.c.o
"_EVP_sha3_384", referenced from:
_oqs_sha3_384 in ossl_helpers.c.o
"_EVP_sha3_512", referenced from:
_oqs_sha3_512 in ossl_helpers.c.o
"_EVP_sha512", referenced from:
_oqs_sha512 in ossl_helpers.c.o
"_EVP_shake128", referenced from:
_oqs_shake128 in ossl_helpers.c.o
"_EVP_shake256", referenced from:
_oqs_shake256 in ossl_helpers.c.o
"_RAND_bytes", referenced from:
_OQS_randombytes_openssl in rand.c.o
"_RAND_poll", referenced from:
_OQS_randombytes_openssl in rand.c.o
"_RAND_status", referenced from:
_OQS_randombytes_openssl in rand.c.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [lib/liboqs.0.10.1-dev.dylib] Error 1
make[1]: *** [src/CMakeFiles/oqs.dir/all] Error 2
make: *** [all] Error 2
Is there something wrong with what I am doing? Please help!
Thanks,
Ram

Hi,
I think it says OpenSSL is dependency is missing.
Can you build liboqs alone in the instruction here: https://github.com/open-quantum-safe/liboqs?tab=readme-ov-file#linux-and-mac
Let me know if it works.

can you remove liboqs and simply try pip install . from the root of liboqs-python? This should take care of dependencies and install/build liboqs for you automatically.

I'm also having this issue. I'm running macOS with an M1 chip. I tried pip install . as instructed, and it appears to install normally. Then, when I import oqs or run python3 liboqs-python/examples/kem.py in terminal, I run into this problem:
liboqs not found, installing it in /Users/seankilfoy/_oqs
5 4 3 2 1
{snip}

And then goes through a long install process only to error out at the end with the following error along with the last few lines prior to the error:
[ 99%] Built target sphincs_shake_256f_simple_avx2
[ 99%] Building C object src/CMakeFiles/oqs.dir/sig/sig.c.o
[100%] Building C object src/CMakeFiles/oqs.dir/kem/kem.c.o
[100%] Linking C shared library ../lib/liboqs.dylib
[100%] Built target internal
[100%] Linking C static library ../lib/liboqs-internal.a
ld: warning: ignoring file<EMAIL_ADDRESS>found architecture 'arm64', required architecture 'x86_64'
ld: Undefined symbols:
  _CRYPTO_THREAD_run_once, referenced from:
      _oqs_sha256 in ossl_helpers.c.o
      _oqs_sha384 in ossl_helpers.c.o
      _oqs_sha512 in ossl_helpers.c.o
      _oqs_shake128 in ossl_helpers.c.o
      _oqs_shake256 in ossl_helpers.c.o
      _oqs_sha3_256 in ossl_helpers.c.o
      _oqs_sha3_384 in ossl_helpers.c.o
      ...
  _EVP_CIPHER_fetch, referenced from:
      _oqs_fetch_ossl_objects in ossl_helpers.c.o
      _oqs_fetch_ossl_objects in ossl_helpers.c.o
      _oqs_fetch_ossl_objects in ossl_helpers.c.o
  _EVP_CIPHER_free, referenced from:
      _oqs_free_ossl_objects in ossl_helpers.c.o
      _oqs_free_ossl_objects in ossl_helpers.c.o
      _oqs_free_ossl_objects in ossl_helpers.c.o
  _EVP_DigestFinal_ex, referenced from:
      _do_hash in sha2_ossl.c.o
      _do_hash in sha2_ossl.c.o
      _OQS_SHA2_sha256_inc_finalize in sha2_ossl.c.o
      _OQS_SHA2_sha256_inc_finalize in sha2_ossl.c.o
      _OQS_SHA2_sha384_inc_finalize in sha2_ossl.c.o
      _OQS_SHA2_sha384_inc_finalize in sha2_ossl.c.o
      _OQS_SHA2_sha512_inc_finalize in sha2_ossl.c.o
      _OQS_SHA2_sha512_inc_finalize in sha2_ossl.c.o
      ...
  _EVP_DigestInit_ex, referenced from:
      _do_hash in sha2_ossl.c.o
      _do_hash in sha2_ossl.c.o
      _OQS_SHA2_sha256_inc_init in sha2_ossl.c.o
      _OQS_SHA2_sha256_inc_init in sha2_ossl.c.o
      _OQS_SHA2_sha384_inc_init in sha2_ossl.c.o
      _OQS_SHA2_sha384_inc_init in sha2_ossl.c.o
      _OQS_SHA2_sha512_inc_init in sha2_ossl.c.o
      _OQS_SHA2_sha512_inc_init in sha2_ossl.c.o
      ...
  _EVP_DigestUpdate, referenced from:
      _do_hash in sha2_ossl.c.o
      _do_hash in sha2_ossl.c.o
      _OQS_SHA2_sha256_inc_blocks in sha2_ossl.c.o
      _OQS_SHA2_sha256_inc_blocks in sha2_ossl.c.o
      _OQS_SHA2_sha256_inc_finalize in sha2_ossl.c.o
      _OQS_SHA2_sha256_inc_finalize in sha2_ossl.c.o
      _OQS_SHA2_sha384_inc_blocks in sha2_ossl.c.o
      _OQS_SHA2_sha384_inc_blocks in sha2_ossl.c.o
      ...
  _EVP_MD_CTX_copy_ex, referenced from:
      _OQS_SHA2_sha256_inc_ctx_clone in sha2_ossl.c.o
      _OQS_SHA2_sha256_inc_ctx_clone in sha2_ossl.c.o
      _OQS_SHA2_sha384_inc_ctx_clone in sha2_ossl.c.o
      _OQS_SHA2_sha384_inc_ctx_clone in sha2_ossl.c.o
      _OQS_SHA2_sha512_inc_ctx_clone in sha2_ossl.c.o
      _OQS_SHA2_sha512_inc_ctx_clone in sha2_ossl.c.o
  _EVP_MD_CTX_free, referenced from:
      _do_hash in sha2_ossl.c.o
      _OQS_SHA2_sha256_inc_finalize in sha2_ossl.c.o
      _OQS_SHA2_sha256_inc_ctx_release in sha2_ossl.c.o
      _OQS_SHA2_sha384_inc_finalize in sha2_ossl.c.o
      _OQS_SHA2_sha384_inc_ctx_release in sha2_ossl.c.o
      _OQS_SHA2_sha512_inc_finalize in sha2_ossl.c.o
      _OQS_SHA2_sha512_inc_ctx_release in sha2_ossl.c.o
      ...
  _EVP_MD_CTX_new, referenced from:
      _do_hash in sha2_ossl.c.o
      _OQS_SHA2_sha256_inc_init in sha2_ossl.c.o
      _OQS_SHA2_sha384_inc_init in sha2_ossl.c.o
      _OQS_SHA2_sha512_inc_init in sha2_ossl.c.o
  _EVP_MD_fetch, referenced from:
      _oqs_fetch_ossl_objects in ossl_helpers.c.o
      _oqs_fetch_ossl_objects in ossl_helpers.c.o
      _oqs_fetch_ossl_objects in ossl_helpers.c.o
      _oqs_fetch_ossl_objects in ossl_helpers.c.o
      _oqs_fetch_ossl_objects in ossl_helpers.c.o
      _oqs_fetch_ossl_objects in ossl_helpers.c.o
      _oqs_fetch_ossl_objects in ossl_helpers.c.o
      _oqs_fetch_ossl_objects in ossl_helpers.c.o
      ...
  _EVP_MD_free, referenced from:
      _oqs_free_ossl_objects in ossl_helpers.c.o
      _oqs_free_ossl_objects in ossl_helpers.c.o
      _oqs_free_ossl_objects in ossl_helpers.c.o
      _oqs_free_ossl_objects in ossl_helpers.c.o
      _oqs_free_ossl_objects in ossl_helpers.c.o
      _oqs_free_ossl_objects in ossl_helpers.c.o
      _oqs_free_ossl_objects in ossl_helpers.c.o
      _oqs_free_ossl_objects in ossl_helpers.c.o
      ...
  _RAND_bytes, referenced from:
      _OQS_randombytes_openssl in rand.c.o
  _RAND_poll, referenced from:
      _OQS_randombytes_openssl in rand.c.o
      _OQS_randombytes_openssl in rand.c.o
      _OQS_randombytes_openssl in rand.c.o
      _OQS_randombytes_openssl in rand.c.o
      _OQS_randombytes_openssl in rand.c.o
  _RAND_status, referenced from:
      _OQS_randombytes_openssl in rand.c.o
      _OQS_randombytes_openssl in rand.c.o
      _OQS_randombytes_openssl in rand.c.o
      _OQS_randombytes_openssl in rand.c.o
      _OQS_randombytes_openssl in rand.c.o
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [lib/liboqs.0.10.0.dylib] Error 1
make[1]: *** [src/CMakeFiles/oqs.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[100%] Built target oqs-internal
make: *** [all] Error 2
Done installing liboqs
Could not load liboqs shared library

@skilfoy thanks, I'll take a look

tagging @ryjones

Also, make sure /opt/homebrew is first in the PATH, e.g., I have this line in my .profile
# Homebrew
export PATH=/opt/homebrew/bin:/opt/homebrew/sbin:$PATH

On a completely clean MacOS VM, I did:
git clone --depth=1 https://github.com/open-quantum-safe/liboqs
cmake -S liboqs -B liboqs/build -DBUILD_SHARED_LIBS=ON
cmake --build liboqs/build --parallel 8
grep cmake README.md
cmake --build liboqs/build --target install
sudo cmake --build liboqs/build --target install

And it worked fine. All I had installed was XCode command line tools cmake from Brew.

I also tried on my less clean dev environment, albeit with setting CMAKE_INSTALL_PREFIX to avoid adding libraries to system directories, and with a corresponding update to the loader path. M1 mac. Homebrew (arm). resolved compiler is Apple clang 15

@ryjones probably one can remove the grep from your 4th line

Related to @dstebila 's comment above - in my environment I have openSSL libraries under both /usr/local (x86_64) as well as /opt/homebrew (arm64)
What is the output of
cmake -S liboqs -B liboqs/build -DBUILD_SHARED_LIBS=ON

Mine is:
Found OpenSSL<EMAIL_ADDRESS>(found suitable version "3.3.1", minimum required is "1.1.1")

If you are resolving to old or intel versions, you may need to install openssl in homebrew (arm) ?

I see also @skilfoy 's comment about the auto-build of liboqs failing when python is used directly, and the error:
ld: warning: ignoring file<EMAIL_ADDRESS>found architecture 'arm64', required architecture 'x86_64'

Yet this is running on a arm mac, with what seems to be arm implementations of openssl , but implies the rest of the build was intel. Again the beginning of this log (where cmake does the configuration) could be useful to see in terms of what compiler and libraries are being picked up

Closing as it's not related to oqs-python, but to library conflicts between x86-64 and arm


⚠ Bofrost.at has degraded performance

In b8449bc, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 864 ms

Resolved: Bofrost.at performance has improved in 36f6399.


FIX-#6113: Add QC Layer implementation for idxmin/max

What do these changes do?

[x] first commit message and PR title follow format outlined here

NOTE:  If you edit the PR title to match this format, you need to add another commit (even if it's empty) or amend your last commit for the CI job that checks the PR title to pick up the new PR title.

[ ] passes flake8 modin/ asv_bench/benchmarks scripts/doc_checker.py
[ ] passes black --check modin/ asv_bench/benchmarks scripts/doc_checker.py
[ ] signed commit with git commit -s
[ ] Resolves #6113 ?
[ ] tests added and passing
[ ] module layout described at docs/development/architecture.rst is up-to-date

@RehanSD please fix the CI failures


Corrected "Pref::Server::ConnectionError" description.

Change "the FPS starter kit" for "Torque3D".

suggestion:
https://github.com/GarageGames/Torque3D/blob/development/Templates/Full/game/main.cs.in#L24


"Jacobsdouweegberts" - Duplicated Company

URL: https://peviitor.ro/
Browser: Chrome
Device: Laptop
OS: Windows 11
STEPS TO REPRODUCE:

Open the URL in the browser
Click on the "Cauta" button
Click on the "Companie" button and write "Jacobsdouweegberts" in the search bar.

EXPECTED RESULTS:
When you write "Jacobsdouweegberts" in the search bar, the user should be able to see only one option.
ACTUAL RESULTS:
When you write "Jacobsdouweegberts" in the search bar, two identical options appear.

Fixed


Error: No named parameter with the name 'useMaterial3'

Hi, thank you for your efforts..
I am depending on v 4.5.2 because of this issue
Flutter 2.8.1
I am facing an error on app run :
/C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/nb_utils-4.5.2/lib/src/utils/system_utils.dart:156:5: Error: No named parameter with the name 'useMaterial3'.
    useMaterial3: true,
    ^^^^^^^^^^^^
/C:/src/flutter/packages/flutter/lib/src/material/theme_data.dart:222:11: Context: Found this candidate, but the arguments don't match.
  factory ThemeData({
          ^

and build is failed.
This is showing with the last version as well.

Please upgrade your Flutter SDK to latest.

Is your issue solved?

yes, I upgraded to flutter 3.0.5 and useMaterial3 is not causing an error anymore. (on both v 4.5.2 and latest: 4.6.16)


fix issues in wildcard removal

Tested it by building custom catalog, no permission issues seen in operator logs, cp-console works

/lgtm


include template not enough documentation

Hi,
Basically, I would like to include a partial view as what Razor is currently doing in ASP.NET MVC:
@Html.Partial("FooPartial.html", Model)
I read through https://antaris.github.io/RazorEngine/LayoutAndPartial.html and http://antaris.github.io/RazorEngine/TemplateManager.html, I could not find the correct way to achieve what I need.
Could you please provide further info in the documentation?

And how to specify the temp folder for the generated dll files? I could not find the documentation for this. Thanks.

@Include only accept a template which needs to be defined in the application first. It is possible to include a physical file directly in the HTML?

Sent from Outlook Mobile
On Tue, Mar 1, 2016 at 1:46 PM -0800, "Wilson Chen"<EMAIL_ADDRESS>wrote:
@Include only accept a template which needs to be defined in the application first. It is possible to include a physical file directly in the HTML?

Reply to this email directly or view it on GitHub:
https://github.com/Antaris/RazorEngine/issues/364#issuecomment-190920396

@Include uses the same flow as all other APIs (documentation is here). So you can customize this however you want with a custom template manager....


Intermittent CORS issues when fetching crate sources

Occasionally, there is errors loading crate sources from crates.io, which look like this:

I've created an issue in the crates.io repo: https://github.com/rust-lang/crates.io/issues/6164 hoping that this can be fixed soon.

I think this should now be fixed, thanks to the awesome and fast response from the crates.io team. I'm marking this one as closed, if we run into issues again we can reopen another issue.


Can POTA data be added?

Parks on the air log format is virtually the same as WWFF but some formats are different.  For example, the US park references are K-NNNN in POTA where KFF-NNNN in WWFF. Uses of SIG_INFO, MY_SIG_INFO, etc. are parallel/analogous. Can --pota -p switches be added with these minor adjustments?

For now, the POTA park reference can be set as if they are/were WWFF reference in the log file:
mywwff kff-0802
Then run this:
sed -e 's/WWFF/POTA/' -e 's/MY_SIG_INFO:8>KFF/MY_SIG_INFO:6>K/' WWFF_ADIF_FILE > POTA_ADIF_FILE
But it would be super nice if we could also specify
mypota k-0802
in the input file and the output ADIF format controlled by the commandline switch...

Hello @rsuzuki0
Thank you for your interest in this and sharing this excellent enhancement idea. Do you have, by any chance, a link to the required POTA output file specification?
 I planned to add Brew as a distribution vector. If yes, I could provide both features in the next release
I will get back into this in the coming days.
73 de ON4KJM

I find this page informative: http://morsel.info/?page_id=852
More clarification can be obtained from one of the POTA people. Their official documentation doesn't seem to go in full details.
Yes, I'm a Mac user. Brew would be nice, especially if it solves the unsigned warning, but I'm also ok with github distribution as-is.

Another ref:
https://groups.io/g/N3FJPSoftwareUsers/topic/logging_for_pota/34505762?p=

Thank you for your work. I just generated six ADIF files for my activations and sent them to the log manager. Hope they don't find any problem but will report back.

I've been submitting my activation log to the area log manager and there has not been a complaint. So this seems working fine. Thank you!
By the way, I've been using a simple Makefile in the folder I generate ADIF files:
FLE     =       /whatever/FLEcli/FLEcli
FLEFLAGS        =       adif -i --overwrite --pota
%.adi: %.txt
$(FLE) $(FLEFLAGS) $<
ALL:    *.adi
merge:  *.adi
rm -rf ALL.adif
adif_merge --output ALL.adif *.adi
ls:
ls -lt *.txt *.adi
clean:
rm -f *~


undefined behaviour - many violations of strict aliasing

All of these reinterpret_casts are undefined behaviour:
https://github.com/cnjinhao/nana/blob/ffa170b5f560dbf899030bdeb0e539aa95b03649/source/gui/programming_interface.cpp#L297-L310
owner and parent arguments are of type window which is:
https://github.com/cnjinhao/nana/blob/ffa170b5f560dbf899030bdeb0e539aa95b03649/include/nana/gui/basis.hpp#L90-L93
which is:
https://github.com/cnjinhao/nana/blob/ffa170b5f560dbf899030bdeb0e539aa95b03649/include/nana/gui/basis.hpp#L25-L31
The other side of casts is basic_window  which is
https://github.com/cnjinhao/nana/blob/ffa170b5f560dbf899030bdeb0e539aa95b03649/include/nana/gui/detail/basic_window.hpp#L83-L84
which is a separate class that does not share any ancestors in it's inheritance tree with detail::window_handle_impl
Therefore, the dereference of pointers coming from casts between detail::window_handle_impl* and basic_window* is undefined behaviour.

This issue is probably related to #445 because:

the intialization path practically always goes through this code (in order to create a window)
the code does not crash without link-time optimization (used -flto -fno-fat-lto-objects) (this suggests that crucial violations are probably across source-file/function boundary)
some minimal examples do not crash when compiled with -fno-strict-aliasing

Other notes:

there are many more suspicious reinterpret_casts in the repository, all of them should be checked; total 684 casts in the project as reported by grep -r reinterpret_cast
compilers can not validate strict aliasing at compile time, in majority of non-trivial cases there are no warnings
GCC 8.3 with -Wstrict-aliasing=2 or -Wstict-aliasing=1 on this project catches only a small number of only possible strict aliasing violations

nana\source\system\dataexch.cpp:73:72: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
    if (::GetDIBits(hDC, (HBITMAP)g.pixmap(), 0, 1, NULL, (BITMAPINFO *)&bmi, DIB_RGB_COLORS) == 0) {
                                                                        ^~~~
nana\source\paint\graphics.cpp: In member function 'void nana::paint::graphics::make(const nana::size&)':
nana\source\paint\graphics.cpp:349:90: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     HBITMAP bmp = ::CreateDIBSection(cdc, &bmi, DIB_RGB_COLORS, reinterpret_cast<void**>(&(dw->pixbuf_ptr)), 0, 0);
                                                                                ^~~~~~~~~~~~~~~~~
nana\source\paint\graphics.cpp: In member function 'void nana::paint::graphics::save_as_file(const char*) const':
nana\source\paint\graphics.cpp:1079:98: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
     HBITMAP hBmp = ::CreateDIBSection(hdcMem, &bmpInfo, DIB_RGB_COLORS, reinterpret_cast<void**>(&pData), 0, 0);
                                                                                ^~~~~~

This is guuaranteed to crash given powerful enough optimizer (the last line violates both type aliasing rules and type alignment requirements):
https://github.com/cnjinhao/nana/blob/ffa170b5f560dbf899030bdeb0e539aa95b03649/source/paint/detail/image_bmp.hpp#L79-L85

the dereference of pointers coming from casts between detail::window_handle_impl*

Did you found any dereference of those pointers?
I thought it is a "handler", which is something with the only property of bein unique, just like any pointer to some object in memory.

The win32 PAI is an old c API which (ab)use extensively conversion of pointers to void*. Do you know how to deal with that?

Could you show how exactly are you building and linking nana and the executables?

Surely there are errors in nana, but in relation to reinterpret_cast: they were invented to deal with the low level code, the type of code used in the implementation of the high level API that will hide the users all the low level details. Or?

Did you found any dereference of those pointers?

some basic_window dereferences:
https://github.com/cnjinhao/nana/blob/ffa170b5f560dbf899030bdeb0e539aa95b03649/source/gui/detail/window_manager.cpp#L555-L562
https://github.com/cnjinhao/nana/blob/ffa170b5f560dbf899030bdeb0e539aa95b03649/source/gui/detail/window_manager.cpp#L503-L518

I thought it is a "handler", which is something with the only property of bein unique, just like any pointer to some object in memory.

Not all pointers are unique. Certain types (for example, any cv-qualification variations of char and unsigned char) are excluded from aliasing requirements. Note that the sole fact that the type is unique and not derived from anything allows compilers to perform optimizations based on the assumption that pointers to this type never point to any other object - unsafe casts break this rule and will cause undefined behaviour (usually data/pointer/stack corruption and misaligned reads).
The current implementation looks like a failed attempt of tag dispatching interface.

The win32 API is an old c API which (ab)use extensively conversion of pointers to void*.

Definitely agree. But void pointers are excluded from strict aliasing, therefore using void* APIs is safe (otherwise malloc() would always have undefined behaviour).
For other cases:

MinGW (or generally, any GCC fork for windows) uses __attribute__((__may_alias__)) and similar constructs to inform the compiler about broken code. Note that for some operating systems (including Windows) GCC comes with their own versions of the OS headers because these systems' headers are not standard-conformant code.
Clang - I don't know but very likely the same way as GCC
MSVC - "deals" with the issue but not implementing strict aliasing optimizations at all - in other words it doesn't fully optimize (having similar performance downside as -f(no-)strict-aliasing for GCC/Clang)

Do you know how to deal with that?

Use interfaces which are type safe and standard-compliant methods of type-punning. Read https://gist.github.com/shafik/848ae25ee209f698763cffee272a58f8 to understand more.

Could you show how exactly are you building and linking nana and the executables?

Using CMake 3.14 with GCC 8.3 with MCF thread model
compile flags:  -DNANA_ENABLE_PNG -DNANA_IGNORE_CONF -DUSE_LIBPNG_FROM_OS -DWIN32 -O3 -DNDEBUG -flto -fno-fat-lto-objects   -static -Wall -g -fmax-errors=3 -Wextra -Wpedantic -ffast-math -pthread -std=gnu++17 (can change gnu to std for full compliance and remove -ffast-math) (-g comes from nana cmake file, might be a bug: -g (debug info) should not be added in release builds)
static library linking: gcc-ar cr libnana.a  {all .obj files...}
executable linking: g++ -O3 -DNDEBUG -flto -fno-fat-lto-objects   -Wl,--whole-archive my_objects.a -Wl,--no-whole-archive  -o executable_name.exe -Wl,--out-implib,my_code_lib.dll.a -Wl,--major-image-version,0,--minor-image-version,0 path/to/libnana.a -pthread path/to/libpng.dll.a path/to/libz.dll.a -lstdc++fs -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32

Surely there are errors in nana, but in relation to reinterpret_cast: it was invented to deal with the low level code

yes but with restrictions...

the type of code used in the implementation of the high level API that will hide the users all the low level details

reinterpret_cast can be used in low-level code but is not required to implement any interface

Both const_cast and reinterpret_cast were added to explicitly deal with C++ type system violations but both come with restictions. These restrictions can not be checked at compile time so the standard defines a set of allowed uses that compilers can assume for the purpose of optimization. Any other use is undefined behaviour.
Example violations:

There is a legacy C API function which takes char* (non-const pointer) and only reads the pointed string. C++ will not allow to pass eg "abc" to such function by the type rules - const_cast can be used to explicitly break the type system and remove const but it's still undefined behaviour if the function actually tries to modify the string.
There is a function which takes a float and type-puns the address of it (through reinterpret_cast) to read it as unsigned int to inspect it's bit representation. This violates type aliasing rules becase both int and float pointers will point to exactly the same memory location. The code is very likely to be broken by an optimizer which will remove "redundant" loads/stores assuming values of the integer and float never overap in memory.
A void* ptr is cast to a concrete type T but reintrerpret_cast<std::uintptr_t>(ptr) % alignof(T) is not 0. This violates alignment requirements (undefined behaviour) and may generate instant program crash due to broken CPU instruction

Adding more, which should bring you more light on the issue:
Code that relies on aliasing violations has been written for many years in many widely used projects. The aliasing and alignment requirements were already in the first C and C++ standards - code that had broken aliasing was already broken in 1990s, it was not very widely-known issue because:

At that time, optimizers were not as good as they are today so strict aliasing violations were not coming out. Today's compilers perform very agressive optimizations which unleash bugs that were lying in code for decades.
Microsoft Visual C++ compiler doesn't implement strict aliasing optimizations at all. This means 2 things:

lost of significant optimization opportunity
aliasing violation bugs will not be visible in MSVC-compiled code which can allow bugs to thrive in code for many years (untill the code is compiled with other compiler or untill Microsoft implements these optimizations)

owner and parent arguments are of type window:

but they are pointers obtained from a basic_window reinterpreted as window. No aliases problem here.

Not all pointers are unique. Certain types (for example, any cv-qualification variations of char and unsigned char) are excluded from aliasing requirements. Note that the sole fact that the type is unique ...

here the OBJECT is unique, not the type - unique adress

failed attempt of tag dispatching interface.

failed? and why tag dispatching interface? I dont see that here. It is just a key for a map. A value for an unique ID.

but they are pointers obtained from a basic_window reinterpreted as window. No aliases problem here.

There are. window (actually detail::native_window_impl) and basic_window are not similar types as per https://en.cppreference.com/w/cpp/language/reinterpret_cast#Type_aliasing
If you think there are no aliasing violation here, you should be able to only static_cast without using void*. Otherwise something is wrong.

The original VALUE of the pointer, the only object created is a basic_window . The pointer to this object is reinterpreted to window  and then back to basic_window  with no derefence.

here the OBJECT is unique, not the type - unique adress

Object being unique is irrelevant. The problem is that there are 2 unique types that both refer to 1 object in memory.

failed?

Failed because of strict aliasing violations. Tag dispatching uses the type system to implement static polymorphism. Tag dispatching would never need to go outside the type system - it's against the point of this pattern.

why tag dispatching interface?

In tag dispatching, empty types are used as tags. They are used only for the purpose of function overloading and template instantiations. Some of the API functions are overloaded for these tag types, for example:
https://github.com/cnjinhao/nana/blob/ffa170b5f560dbf899030bdeb0e539aa95b03649/include/nana/gui/detail/basic_window.hpp#L100-L103
https://github.com/cnjinhao/nana/blob/ffa170b5f560dbf899030bdeb0e539aa95b03649/source/gui/programming_interface.cpp#L574-L585
The API looks like it's based on tag dispatching but it's done wrong. Actual tag dispatching should never create pointers to tag types, cast them or even use nested pointers.

I dont see why you assume this is an intention to do  tag dispatching

What I see is an API hiding a type that is an implementation detail it dont want to leake. An uses the value of a pointer as a "handler" or key in a map

The original VALUE of the pointer, the only object created is a basic_window . The pointer to this object is reinterpreted to window and then back to basic_window with no derefence.

Not dereferencing isn't the only requirement. You would also need to guuarantee that alignof(basic_window) <= alignof(window). If you can guuarantee that the pointer only holds basic_window, use this type only and avoid reinterpret_casts. Again, please, don't try to fight the type system - it exists for a reason.
If what you say is true, there should be no problem editing the code to remove unsafe casts. If what you say is not true but you attept to edit the code will it not compile instead of causing undefined behaviour.

I dont see why you assume this is an intention to do tag dispatching

You don't need to. It was only my guess how the API was supposed to be implemented. Not very important for this issue.

What I see is an API hiding a type that is an implementation detail it dont want to leake. An uses the value of a pointer as a "handler" or key in a map

Hiding implementation details is a right concern but in any cause it should not use unsafe casts. It's just too risky. There are much better alternatives:

private includes (nana/source already has some) - just not giving opportunity to get the definition
forward declarations only in public includes
detail or impl namespace - this is used all the time by boost libraries; no API compatibility is guuaranteed between versions - if a user uses detail:: or impl:: that's the user's problem and the user should be blamed

Are you compiling nana with your project or are you using a precompiled nana?

the example you linked https://wandbox.org/permlink/8qA8JyJRVHtS9LPf
is wrong in the sense that writing:
https://wandbox.org/permlink/5ZXa0SqZkLFS39VW
will produce  0 0

Compiling with my project, by add_subdirectory. Crashes also if I remove my project dependency and just compile a short main function that only uses nana library.

using window = detail::window_handle_impl*;

But detail::window_handle_impl is an incomplete type. All the accesses to window are converted to basic_window. We never use window in this way window_handle_impl w = *reinterpret_cast<window_handle_impl*>(basic_window_ptr);

Not dereferencing isn't the only requirement. You would also need to guuarantee that alignof(basic_window) <= alignof(window)

alignof(basic_window*) <= alignof(window) is guaranteed. window is a pointer of an incomplete type.

But detail::window_handle_impl is an incomplete type.

It is complete. These are not forward declarations:
https://github.com/cnjinhao/nana/blob/ffa170b5f560dbf899030bdeb0e539aa95b03649/include/nana/gui/basis.hpp#L25-L31
Note that the completeness has no meaning for strict aliasing.

alignof(basic_window*) <= alignof(window) is guaranteed

My typo in previous comment - alignment not of pointers but of pointed types should be compared. So alignof(basic_window) <= alignof(detail::native_window_impl)

window is a pointer of an incomplete type

It is not, even more - you can not query the alignment of an incomplete type.

Right now you are trying to defend the current implementation. Please stop it. There is no place for reinterpret_casts outside dealing with bit representation (ie when reading encoded file formats) or reading raw memory for debug purposes. Object-oriented code that relies on reinterpretation casts will be broken. It would be much better to think how to refactor and correctly hide the API using forward declarations or detail namespace. C++ type system exists for a reason, don't try to defend code that breaks it.

I don't think you are strictly right. But you can propose your ideas, discuss how is that better and make a PR.

Hi @Xeverous , still wating for your ideas about how to make the code better...

Can do some PRs. You have removed some casts already, would just need to verify others. Should not be hard to fix.

Can do some PRs. ... Should not be hard to fix.

waiting...


Julia v0.4 compatibility changes.

Tested changes on Julia 0.3.10 and 0.4.0-dev+5629.

@omus https://travis-ci.org/JuliaDB/PostgreSQL.jl/jobs/69471749
Segfaults consistently on 0.4

I cannot reproduce this segfault. I'll note that I didn't change anything specific to the DB connection so I expect that this issue was present prior to my changes. Can you attempt to re-run Travis on the latest version of Julia for this PR and for the latest PostgreSQL master?

@omus try changing the postgresql apt package to postgresql-9.4. Pushing will trigger a rebuild.

Inspecting the travis log again I noticed that the test cases were running via:
julia --check-bounds=yes --code-coverage=user --inline=no --color=no ~/.julia/v0.4/PostgreSQL/test/runtests.jl

Which does produce a segfault on my local system. It appears the issue is --inline=no. I'll try to determine why this parameter is causing issues.

@iamed2 I believe you'll need to investigate. It appears that using any libpq function that modifies the internals of a Ptr such as PQfinish, PQclear, or PQfreemem will all generate a segfault when running the tests.

Please edit PR to compare against compat


template: use of InitialConfig to build cluster.yaml

This changes cluster.yaml initial skeleton to avoid the use of (not available) Config struct

@davidmccormick was this supposed to auto-create a release of something like v0.15.1 ?
I notice it's been approved and merged, but there's no additional release made

perhaps that's because "tide" says it's not mergeable?


⚠ ClamAV has degraded performance

In 7cac68a, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 102 ms

Resolved: ClamAV performance has improved in 66465a2.


Add hover text to household size chip

This adds a tooltip to the "household size" chip on the deliveries map.

This can be seen in staging. Check out the delivery at Dean St and Troy Ave.
Resolves #116
Questions

Should the text include the number of people? E.g. "Household size: 17"? Or is it meant more of an accessibility aid to the icon?

Is it clear what the tooltip refers to? There are options to add arrows, etc. I can play around with that if this is unclear.

I see that some text is translated, other is not. It seems that labels, such as the tooltip I added, are not translated. Am I reading that right?

I committed the changes to the lockfile, as this was the practice in past projects. Should I be doing this?

@saoirse-zee feel free to merge!


libmtp: 1.1.17 -> 1.1.18

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/libmtp/versions.
meta.description for libmtp is: "An implementation of Microsoft's Media Transfer Protocol"
meta.homepage for libmtp is: "http://libmtp.sourceforge.net"
meta.changelog for libmtp is: ""
Updates performed

Version update

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 1.1.18 with grep in /nix/store/33wdhqcqh6dy8ijz6988hh0ks8iyg16w-libmtp-1.1.18-bin

directory tree listing: https://gist.github.com/8e06eff9e7afa3b89b4cc97b406ebf4a

du listing: https://gist.github.com/202537b54e8ec9d2724fe3fe602ca638

Rebuild report (if merged into master) (click to expand)

405 total rebuild path(s)

138 package rebuild(s)

138 x86_64-linux rebuild(s)
130 i686-linux rebuild(s)
11 x86_64-darwin rebuild(s)
126 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
adapta-gtk-theme
almanah
amarok
amarok-kf5
atom
atom-beta
calibre
calibre-py2
calibre-py3
calls
cantata
chrome-gnome-shell
cinnamon.cinnamon-common
cinnamon.cinnamon-control-center
cinnamon.cinnamon-gsettings-overrides
cinnamon.cinnamon-screensaver
clementine
clementineUnfree
dropbox-cli
elementary-planner
empathy
evolution-data-server
evolution-ews
far2l
feedreader
folks
gfbgraph
gmtp
gnome-online-accounts
gnome-photos
gnome-recipes
gnome2.gvfs
gnome3.bijiben
gnome3.cheese
gnome3.empathy
gnome3.evolution
gnome3.evolution-data-server
gnome3.evolution_data_server
gnome3.file-roller
gnome3.folks
gnome3.geary
gnome3.gfbgraph
gnome3.gnome-applets
gnome3.gnome-books
gnome3.gnome-boxes
gnome3.gnome-calendar
gnome3.gnome-contacts
gnome3.gnome-control-center
gnome3.gnome-documents
gnome3.gnome-flashback

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/33wdhqcqh6dy8ijz6988hh0ks8iyg16w-libmtp-1.1.18-bin \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A libmtp https://github.com/r-ryantm/nixpkgs/archive/94d30e062358b3b6ab977613a68c5a3de4be11ab.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/33wdhqcqh6dy8ijz6988hh0ks8iyg16w-libmtp-1.1.18-bin
ls -la /nix/store/33wdhqcqh6dy8ijz6988hh0ks8iyg16w-libmtp-1.1.18-bin/bin

Pre-merge build results
NixPkgs review skipped

Maintainer pings

Result of nixpkgs-review pr 102546 run on x86_64-darwin 1

10 packages marked as broken and skipped:

almanah
atom
atom-beta
gnome-recipes
gnome3.nautilus-python
mtpfs
pympress
python27Packages.python-vlc
python37Packages.python-vlc
python38Packages.python-vlc

1 package failed to build:

libmtp


42 redesign sign insign up screen

What type of PR is this? (check all applicable)

[x] Refactor
[ ] Feature
[x] Bug Fix
[ ] Optimization
[ ] Documentation Update

Description
The SignIn page is refractored to remove username and password login. It is also reponsive in small screen.
The SignUp page is redirect to /signin if the user is not authenticated.
The Home title on the top left will redirect user to / (home) page .
Related Issue

Closes #42

QA Instructions, Screenshots, Recordings
Please replace this line with instructions on how to test your changes, a note on the devices and browsers this has been tested on, as well as any relevant images for UI changes.
Additional Information
Normal screen (laptop):

Mobile screen

Checklist

[x] My code adheres to the coding and style guidelines of the project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] I have made corresponding changes to the documentation.
[x] My changes generate no new warnings.
[x] I have followed the guidelines in the CONTRIBUTING.md document.
[x] I have checked to ensure there aren't other open Pull Requests for the same update/change.
[x] I have done my changes in a separate feature branch.
[x] My pull request does not target the main branch on this repository. It targets develop instead.

Google has very strict guidelines about how their branding should be used. For the sake of consistency, I would recommend downloading and using one of their pre-approved SVG assets (https://developers.google.com/identity/branding-guidelines#download-brand-icons). The "dark themed rectangular Sign in with Google button" is what we want.


Fix Publish to Java Dev Feed

Description
Fixes a bug that broke Publish to Java Dev Feed.
This issue arose due to a loose usage of /eng/versioning/external_dependencies.txt to resolve the version of maven-gpg-plugin. This change hardcodes the version of maven-gpg-plugin in the Publish-MavenPackages.ps1 script as it is an extremely unique usage of a dependency and should be treated differently than our other external dependencies. Doing this prevents conflicts with cleanup scripts that won't know about this usage and prevents cases where this could have been broken by accidental version changes that wouldn't be noticed in the PR as this logic is only invoked during release.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

/check-enforcer override


Adding a citing notice

As discussed last week, adding a little citing notice for PL demos. This is my initial idea of the content/location.
(I-am-not-a-designer-but-I-tried-my-best.html ♥)

@KetpuntoG , to keep you in the loop.

@josh146 — quick reminder.


Adding isLocallyOwned to Entity interface.

Entities will need to implement this function instead of getOwnerRank()
to help specify parallel ownership. Not implemented yet for the adapters.

Do you want to indicate that ownerRank() will be soon deprecated?


[release-1.0] Remove affinities label from kubevirt_vmi_cpu_affinity and use sum as value

What this PR does / why we need it:
This is a manual cherry-pick of https://github.com/kubevirt/kubevirt/pull/10070
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:

Remove affinities label from kubevirt_vmi_cpu_affinity and use sum as value

/lgtm

/approve


Bar plot

Short description
Please provide a short description which summarizes the idea behind this feature request and why this is useful.
User stories

Make default orientation of bar plot horizontal (see comment by @dg-datavisyn in https://github.com/datavisyn/reprovisyn/issues/1135)

### Bar plot issues and improvements
- [ ] Fix inconsistencies with stacked bar charts and numerical values
- [ ] For facets, Should we add an option to disable aggregation?
- [ ] Settings do not match the settings buttongs on first opening
- [ ] Twice grouped bar plot
- [x] rotate x-labels by 45 degrees
- [x] Allow selecting numerical values for bar plot - When a numerical value is selected, disable aggregation (may be related to "histogram" feature
- [x] Make column selection consistent across all settings menus (using column select from scatter plot)
- [x] If categorical column selection contains more than 20 items, only consider the first 20 items in the plot
- [x] Add Aggregate None and have it as default for aggregate type setting
- [x] Consistent column selection (as in scatter plot numerical columns (title plus label)
- [x] Rename Multiples setting label to Facets

[ ] Resolve axis domain and range for d3 aggregation

[ ] Implement Groups and multiples in d3 aggregation

[ ] Resolve null values problem in facets and groupings

[ ] For a null category, show the category in facets, but not in single plots

[ ] Test with real data in Ordino


Mainline update

This PR merges develop into mainline. Fast-forward merge was not possible due to a commit on Sep 15.
It is related to SWDEV-373943.

Okay just to make sure I follow what you are doing, will you be getting Lingamurty to update the manifest to commit 8be2a4d9e555eb5602b8ac9cff3dce48ad890b9d ?   @lawruble13 will your script manage this next update now that the mainline branch has extra manual commits not in staging?     The current commit for tensile in manifest file doesn't make sense to me,  dfb9ed277dcfca62b72a38e6dd27c00ca6f0b630 was it a mistake?

Yes, I will ask Ligamurty to update the manifest to commit 8be2a4d.
We have yet to figure out the best approach here. We are open to any suggestions you have.
On the commit in the manifest, we discussed this today, and we wonder why the manifest is pointing to this commit. I am unsure if that commit in the mainline was necessary, and I did not want to delete the commit. So, I had to merge it for now. Hopefully, we will finalize the procedure as soon.

Okay sounds good.  I would have first asked Lingamurty to update the manifest to the commit you wanted to see if Lauren's script would auto force the mainline branch.  Only if it failed do a PR or force push.  Can discuss tomorrow if you want but probably just need the manifest set.

It would be great if I can have a 15-min meeting with you to discuss this procedure. I will setup a meeting in the afternoon. I optionally invite @AlexBrownAMD and @yoichiyoshida. Thanks.


cl12 cl20 cl21 cl22 image_streams write tests pass with up to 5 errors per image

All the test_write_image_* functions declare int totalErrors=0 as the first line, then redeclare it in the main for loop. The outer variable is returned at the end and is always 0.
The only way to fail the test is by early exit; e.g. finding numTries (5) failures in a single image.

Fixed on all branches, closing! Thanks!


Swipe up for quick action doesn't work

It seems that quick action can only be used with 3D Touching the folder. Can you fix it so that I can swipe up on the folder to see the quick action menu of the first app?

Finally fixed in the new version!

I am still having the issue after downloading the newest version from your beta repo
iOS 9.3.2
iPhone 6s (8,1)

Interesting, the update for 3D touch was indeed intended for iOS 10 devices. I will take a look into it again :)

I have made a new beta, can you try it out?

The quick action menu does show but it requires the user to lift their finger off the screen and then tap to select a menu option. The user can also switch home screen app pages accidentally as they swipe up for quick action. I really appreciate you updating the app to fix the initial bug, and also think an update to address the swipe up action and menu selection as a single gesture would be awesome. You can see in the default 3D touch action that the user can 3D touch and just swipe to select an action without lifting their finger off the screen. Appendix also has this feature with folders.

I'll take a second look into it. You're right, selecting an quick action without lifting your finger only works with the default force touch gesture yet

Are you still working on this tweak? An iOS 11 update would be much appreciated 👍

It's open for pull requests :P, but this is actually a seperate issue. I have another iPad which is jailbroken so I will need to take a look into it. JB stuff is fun but I actually don't like to be my devices a security risk, so that's why I don't like JB that much anymore. Anyway when I feel bored, I will surely work on the tweak again :)


Track 2 - Maven cleanup

Remove parent poms where feasible in track 2 libraries (like Key Vault)
Decouple parent poms for track 1 and track 2

Should be resolved wiht Mitch's changes.


news-magazine.html

At news-magazine.html. When you click on the dropdoun menu button and then outside of the menu, the dropdown list isn't hide durin you hover the menu again.

This is because news-magazine.html (and probably other templates) doesn't use the latest Foundation version (6.0.0 instead of 6.1.2).
It works as expected if you use the latest version: http://codepen.io/anon/pen/OMYPxL
Next time you open an issue, please provide a link of the page you are talking about, it wasn't obvious you were talking about a template page ;)

We have a new minor version of Foundation coming out soon (6.2 on Friday), so when that's out, we can take a look at upgrading our example templates.

Thank you for the ansewrs. I will take a look when the new version is comming.


Add devEngines to package.json

ref #51

Current coverage is 100.00%

Merging #53 into master will not affect coverage as of a2e8759

@@            master     #53   diff @@
======================================
  Files           39      39
  Stmts          202     202
  Branches         0       0
  Methods          0       0
======================================
  Hit            202     202
  Partial          0       0
  Missed           0       0

Review entire Coverage Diff as of a2e8759

Powered by Codecov. Updated on successful CI builds.

Thanks!


Allow wolves to become hostile by attacking them, even when dealing no damage

Sometimes, you're famished.  Starving even!  And during those times, wouldn't you like to go for a nice tall glass of suicide?

Similar enough to be counter as a duplicate of #184


Investigate using Rollup instead of Webpack for bundling

Addressed in https://github.com/edx/paragon/pull/479


[release-4.6] Bug 1938618: Infer package name property for unannotated CSVs, if possible.

This is a mostly-automated cherry-pick of #2033
/assign benluddy

/test e2e-aws-olm

/bugzilla refresh

/lgtm

2021/03/17 19:10:14 Acquiring leases for "e2e-upgrade"
2021/03/17 19:10:14 Acquiring 1 lease(s) for "gcp-quota-slice"
2021/03/17 21:10:14 error: Failed to acquire resource, current capacity: 0 free, 70 leased
2021/03/17 21:10:14 No custom metadata found and prow metadata already exists. Not updating the metadata.
2021/03/17 21:10:14 Ran for 2h9m16s
error: some steps failed:
  * could not run steps: step e2e-upgrade failed: failed to acquire lease: resources not found
time="2021-03-17T21:10:14Z" level=info msg="Reporting job state 'failed' with reason 'executing_graph:step_failed:utilizing_lease'"

/retest


Analysis: Image Scaling when converting ECAT to nii w/ python

Presently scaling of the nifti image is performed in the same way as the Matlab converters, that is to say a single scaling factor is applied to the entire 4d image matrix.
However it might be more desirable to use the sub-header scaling factor on a per frame basis if the scaling factor is unique for each frame. This code block already exists in the python version of the converter, but it need to be tested and evaluated in comparison to whole matrix scaling.
calibration_factor = subheader['SCALE_FACTOR'] * main_header['ECAT_CALIBRATION_FACTOR']
calibrated_pixel_data_matrix_3d = calibration_factor * pixel_data_matrix_3d
data.append(calibrated_pixel_data_matrix_3d)

@CPernet I created this, but is it the same issue as the scaling by subheader? I probably shouldn't be reading these until I've finished my coffee.

nope - there is the frame wise calibration factor but the one in your json the DoseCalibrationFactor is something people enter in the machine one in a while by doing the  external calibration to a know radioactive source = ecat_calibration_factor here https://github.com/openneuropet/BIDS-converter/blob/main/code/matlab/ecat2nii.m#L218 (rescaled)

Ah alright, then I think we can close this issue as it's been handled.


Change aircraft color

Hello,
I want to highlight aircraft that involve loss of separation, is there some command I can use to change the aircraft color? Thanks!

Yes, see command reference on Wiki. Command is Colour or Color. You can also type the command to get help,
Best regards/Met vriendelijke groeten,
Jacco Hoekstra
On 3 Feb 2023, at 21:11, Rex Chen @.***> wrote:

Hello,
I want to highlight aircraft that involve loss of separation, is there some command I can use to change the aircraft color? Thanks!
—
Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https://github.com/TUDelft-CNS-ATM/bluesky/issues/448__;!!PAKc-5URQlI!790C5tf-_qZE00DP56vWi_RUnA-osnJ5KaB0abKrFh-qIqziTcwWT1PsdunEA2Am21pP3PclmZKSy3m3v_F8Z5x_G9sJeQ$, or unsubscribehttps://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/ABWT2BB63RX2NJW4OIDADV3WVVQ6XANCNFSM6AAAAAAUQUXZ4I__;!!PAKc-5URQlI!790C5tf-_qZE00DP56vWi_RUnA-osnJ5KaB0abKrFh-qIqziTcwWT1PsdunEA2Am21pP3PclmZKSy3m3v_F8Z5w5laCdLw$.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

Hi Prof. Hoekstra, color works here, thanks a lot! But it seems that this command is not in the command reference.

Ok, thanks. We will fix that omission.
Best regards,
Jacco Hoekstra
On 4 Feb 2023, at 23:51, Rex Chen @.***> wrote:

Hi Prof. Hoekstra, color works here, thanks a lot! But it seems that this command is not in the command reference.
—
Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https://github.com/TUDelft-CNS-ATM/bluesky/issues/448*issuecomment-1416868643__;Iw!!PAKc-5URQlI!93OXWVaszAUWaakACMNhCiMHRYs43sR76g5548IZQ6sSOKBg8lmauan2hTSPEXShS906R0GfE559GDm9pDDRGdvSlCITcA$, or unsubscribehttps://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/ABWT2BBSH7AWVDOAD4UHBULWV3MPVANCNFSM6AAAAAAUQUXZ4I__;!!PAKc-5URQlI!93OXWVaszAUWaakACMNhCiMHRYs43sR76g5548IZQ6sSOKBg8lmauan2hTSPEXShS906R0GfE559GDm9pDDRGduJ5qaBSA$.
You are receiving this because you commented.Message ID: @.***>


Bugfix and Make text readable

Fix a bug with hidden builds.
Address issue #13 - make the text white. (Also made it bold and adjusted the size)

Hey, thanks for the fixes. The white text can probably go in straight, but I think the visibility fix conflicts with some other changes that I made. I had a request to be able to show sub-graphs (ie, imagine I'm only interested in build configuration A, then I only want to show things that are directly or indirectly related to that build configuration, but nothing else).
Appreciate if you could take a look at the latest state and let me know your views.

Hi,
I am getting started using git and online tools for working. I did a
"git pull upstream master"
and I think I got your changes but there were merge conflicts and the DependencyWalkLayout class has got compile errors. (It has text like "<<<<<<< HEAD" in it which I assume means it is listing changes from two versions of the file)
When I get some time I will go through the git manual and find out how to handle the merge conflicts.
The reason for the "Bug fix for hidden fields" fix was to fix an issue with the DependencyWalkLayout process. If you

Run FileBasedBuildHotspotsApplication
Press the Dependency Walk button
Find one of the builds on the left most, right click and select "Hide"
Run Dependency walk again
It was a long time ago but I think this was giving a null pointer exception.

If you want to view a sub graph based around a single build one way of doing it would be:

Add another layout method (New class SubGraphView which extends LayoutBase)
Code this so that when it is activated the user is prompted to select a particular build.
Write the algorithm so it walks the graph both forwards from selected build and backwards.
Hide any not drawn builds
It could have other configurable parameters like depth

This might produce a neater layout.
I think using separate layout classes for different layouts will help us work out which viewing algorithm works best.
Unfortunately I have missed the last couple of developer days, it's a shame I think we are at a point where another developer day on this project would be useful.
Robert

Yeah, I messed them too...
The changes that I made were around what can be hidden. Before we could only hide leaf nodes, but now anything can be hidden so as to allow the creation of subgraphs.
However, this doesn't change the logic of the right-click menu, so hiding non-leaf nodes can be done programatically, but not from the user perspective. At the beginning of the execution there is now a screen that shows all the build configurations and asks you which ones to show, it will then travel up and down and get all the related ones, hiding everything else.

Hi,
I would like to meet face to face and continue working on this.
I am learning a lot with my involvement.
Unfortunately the pre-Christmas period is manic for me.
I am not sure on your timescales for the project but do you mind if we
schedule something in January?
Thanks
Robert
On 26 November 2015 at 11:12, quiram<EMAIL_ADDRESS>wrote:

Yeah, I messed them too...
The changes that I made were around what can be hidden. Before we could
only hide leaf nodes, but now anything can be hidden so as to allow the
creation of subgraphs.
However, this doesn't change the logic of the right-click menu, so hiding
non-leaf nodes can be done programatically, but not from the user
perspective. At the beginning of the execution there is now a screen that
shows all the build configurations and asks you which ones to show, it will
then travel up and down and get all the related ones, hiding everything
else.
—
Reply to this email directly or view it on GitHub
https://github.com/quiram/build-hotspots/pull/14#issuecomment-159884799.

--
Robert Metcalf
0771 491 6071

Sure, that's perfect. The project doesn't really have any particular timescales, I just progress as free time permits :). There is no Hack the Tower event in December, so maybe we can meet at the one in January, does that work? Thanks!

Yes I have looked at the meetup group to find the date of the Jan hack day
but it doesn't seem to be there. As long as it doesn't clash with my ski
trip I'll be there.
Merry Christmas!
Robert
On 1 December 2015 at 11:05, quiram<EMAIL_ADDRESS>wrote:

Sure, that's perfect. The project doesn't really have any particular
timescales, I just progress as free time permits :). There is no Hack the
Tower event in December, so maybe we can meet at the one in January, does
that work? Thanks!
—
Reply to this email directly or view it on GitHub
https://github.com/quiram/build-hotspots/pull/14#issuecomment-160936272.

--
Robert Metcalf
0771 491 6071

sweet, see you in the new year then :)
2015-12-03 9:05 GMT+00:00 rmetcalf9<EMAIL_ADDRESS>
Yes I have looked at the meetup group to find the date of the Jan hack day
but it doesn't seem to be there. As long as it doesn't clash with my ski
trip I'll be there.
Merry Christmas!
Robert
On 1 December 2015 at 11:05, quiram<EMAIL_ADDRESS>wrote:

Sure, that's perfect. The project doesn't really have any particular
timescales, I just progress as free time permits :). There is no Hack the
Tower event in December, so maybe we can meet at the one in January, does
that work? Thanks!
—
Reply to this email directly or view it on GitHub
<https://github.com/quiram/build-hotspots/pull/14#issuecomment-160936272
.

--
Robert Metcalf
0771 491 6071
—
Reply to this email directly or view it on GitHub
https://github.com/quiram/build-hotspots/pull/14#issuecomment-161557842.

--
Blogs: http://www.gatogordo.es/ -- http://www.FromFragileToAgile.com/
Twitter: @AbrahamMarin
LinkedIn: http://lnkd.in/TTHC8W


How to build using visual studio?

IMPORTANT: Before you create an issue, please take a look at our Issue Reporting Guide.
Briefly summarize your issue:

How can I build using visual studio on Windows? I'm trying to open the CMakeLists.txt using visual studio but I got an error
Severity	Code	Description	Project	File	Line	Suppression State
Error		CMake Error at C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.11/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find CURL (missing: CURL_LIBRARY) (found suitable version
"7.61.1", minimum required is "7.43.0")		C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.11/Modules/FindPackageHandleStandardArgs.cmake	137
I do have curl curl-7.61.1-win64-mingw, I added curl-7.61.1-win64-mingw\bin folder to environment path variable but still have same error.
What is the expected behavior?

Build using visual studio
What behavior are you observing?

Severity	Code	Description	Project	File	Line	Suppression State
Error		CMake Error at C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.11/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find CURL (missing: CURL_LIBRARY) (found suitable version
"7.61.1", minimum required is "7.43.0")		C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.11/Modules/FindPackageHandleStandardArgs.cmake	137
Provide the steps to reproduce the issue, if applicable:

Open visual studio, open cmake, select CMakeLists.txt under root
Tell us about your environment:

What version of the AVS Device SDK are you using?
  <1.9.0>

Tell us what hardware you're using:

[x] Desktop / Laptop
[ ] Raspberry Pi
[ ] Other - tell us more:

Tell us about your OS (Type & version):

[ ] Linux
[ ] MacOS
[ ] Raspbian Stretch
[ ] Raspbian Jessy
[x] Other - tell us more: Windows10

Hi!
The project is originally intended to be built using the instructions provided here:
https://github.com/alexa/avs-device-sdk/wiki/Windows-Quick-Start-Guide-with-Script
Can you confirm that you can build and run SDK following that instructions?
I am afraid that we cannot guarantee full support for windows IDEs including Visual Studio.

Thanks for your reply, please see #992, I'm following the guide, in Optional configurations, To build the SDK after making custom changes: Open the MinGW64 shell, and run make inside of the the alexa_sdk/build folder. This doesn't work. After I type make command inside alexa_sdk/build  folder, it shows me make: *** No targets specified and no makefile found. Stop. and nothing got built.

Hi @gunnicus, I posted a comment on #992. Let's try to fix that first, since that is the only build we support.
Thanks