SpringBoot relying party example project

Create a SpringBoot relying party example project to identify java requirements and SDk opportuniy

The SpringBoot example doesn't work running the project through docker (I have a Mac with Apple Silicon).
This is the error that I got:
[+] Building 11.3s (7/9)                                                                                docker:default
 => [trust-anchor.org internal] load build definition from Dockerfile.django                                         0.0s
 => => transferring dockerfile: 710B                                                                                0.0s
 => [trust-anchor.org internal] load metadata for docker.io/library/python:3.11-slim                                 0.9s
 => [trust-anchor.org internal] load .dockerignore                                                                   0.0s
 => => transferring context: 2B                                                                                0.0s
 => [trust-anchor.org 1/5] FROM docker.io/library/python:3.11-slim@sha256:e8381c802593deb0c4d25bd3f4e05e94382f6bf33  0.0s
 => [trust-anchor.org internal] load build context                                                                   0.0s
 => => transferring context: 112B                                                                                0.0s
 => CACHED [trust-anchor.org 2/5] RUN apt update && apt -y install git                                               0.0s
 => ERROR [trust-anchor.org 3/5] RUN git clone --depth=1 --branch v1.4.5 https://github.com/italia/spid-cie-oidc-d  10.3s
------
 > [trust-anchor.org 3/5] RUN git clone --depth=1 --branch v1.4.5 https://github.com/italia/spid-cie-oidc-django &&     cd spid-cie-oidc-django &&        pip install --upgrade pip &&    pip install -e . &&     pip install design-django-theme==1.4.8 &&         pip install tzdata:
0.107 Cloning into 'spid-cie-oidc-django'...
1.391 Note: switching to '4953a4783cb544300d07f60aa87e56feea084782'.
1.391
1.391 You are in 'detached HEAD' state. You can look around, make experimental
1.391 changes and commit them, and you can discard any commits you make in this
1.391 state without impacting any branches by switching back to a branch.
1.391
1.391 If you want to create a new branch to retain commits you create, you may
1.391 do so (now or later) by using -c with the switch command. Example:
1.391
1.391   git switch -c <new-branch-name>
1.391
1.391 Or undo this operation with:
1.391
1.391   git switch -
1.391
1.391 Turn off this advice by setting config variable advice.detachedHead to false
1.391
2.062 Requirement already satisfied: pip in /usr/local/lib/python3.11/site-packages (24.0)
2.180 Collecting pip
2.273   Downloading pip-24.3.1-py3-none-any.whl.metadata (3.7 kB)
2.296 Downloading pip-24.3.1-py3-none-any.whl (1.8 MB)
2.408    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 18.3 MB/s eta 0:00:00
2.435 Installing collected packages: pip
2.435   Attempting uninstall: pip
2.437     Found existing installation: pip 24.0
2.455     Uninstalling pip-24.0:
2.496       Successfully uninstalled pip-24.0
2.839 Successfully installed pip-24.3.1
2.839 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
3.109 Obtaining file:///spid-cie-oidc-django
3.110   Preparing metadata (setup.py): started
3.313   Preparing metadata (setup.py): finished with status 'done'
3.466 Collecting Django<5.0,>=4.0 (from spid-cie-oidc==1.4.5)
3.542   Downloading Django-4.2.16-py3-none-any.whl.metadata (4.1 kB)
3.574 Collecting cryptojwt>=1.8.2 (from spid-cie-oidc==1.4.5)
3.597   Downloading cryptojwt-1.9.2-py3-none-any.whl.metadata (1.4 kB)
3.700 Collecting pydantic<2.0,>=1.8.2 (from spid-cie-oidc==1.4.5)
3.724   Downloading pydantic-1.10.19-py3-none-any.whl.metadata (152 kB)
3.945 Collecting pytz>=2021.3 (from spid-cie-oidc==1.4.5)
3.969   Downloading pytz-2024.2-py2.py3-none-any.whl.metadata (22 kB)
4.173 Collecting aiohttp<3.10,>3.9 (from spid-cie-oidc==1.4.5)
4.197   Downloading aiohttp-3.9.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (7.5 kB)
4.236 Collecting requests<3.0,>=2.20 (from spid-cie-oidc==1.4.5)
4.255   Downloading requests-2.32.3-py3-none-any.whl.metadata (4.6 kB)
4.279 Collecting djagger (from spid-cie-oidc==1.4.5)
4.300   Downloading djagger-1.1.4.tar.gz (3.0 MB)
4.394      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.0/3.0 MB 42.8 MB/s eta 0:00:00
4.438   Preparing metadata (setup.py): started
4.528   Preparing metadata (setup.py): finished with status 'done'
4.554 Collecting aiosignal>=1.1.2 (from aiohttp<3.10,>3.9->spid-cie-oidc==1.4.5)
4.573   Downloading aiosignal-1.3.1-py3-none-any.whl.metadata (4.0 kB)
4.603 Collecting attrs>=17.3.0 (from aiohttp<3.10,>3.9->spid-cie-oidc==1.4.5)
4.625   Downloading attrs-24.2.0-py3-none-any.whl.metadata (11 kB)
4.674 Collecting frozenlist>=1.1.1 (from aiohttp<3.10,>3.9->spid-cie-oidc==1.4.5)
4.695   Downloading frozenlist-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (13 kB)
4.787 Collecting multidict<7.0,>=4.5 (from aiohttp<3.10,>3.9->spid-cie-oidc==1.4.5)
4.811   Downloading multidict-6.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (5.0 kB)
4.947 Collecting yarl<2.0,>=1.0 (from aiohttp<3.10,>3.9->spid-cie-oidc==1.4.5)
4.969   Downloading yarl-1.18.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (67 kB)
5.060 Collecting cryptography>=3.4.6 (from cryptojwt>=1.8.2->spid-cie-oidc==1.4.5)
5.083   Downloading cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl.metadata (5.4 kB)
5.120 Collecting asgiref<4,>=3.6.0 (from Django<5.0,>=4.0->spid-cie-oidc==1.4.5)
5.141   Downloading asgiref-3.8.1-py3-none-any.whl.metadata (9.3 kB)
5.228 Collecting sqlparse>=0.3.1 (from Django<5.0,>=4.0->spid-cie-oidc==1.4.5)
5.251   Downloading sqlparse-0.5.2-py3-none-any.whl.metadata (3.9 kB)
5.288 Collecting typing-extensions>=4.2.0 (from pydantic<2.0,>=1.8.2->spid-cie-oidc==1.4.5)
5.311   Downloading typing_extensions-4.12.2-py3-none-any.whl.metadata (3.0 kB)
5.378 Collecting charset-normalizer<4,>=2 (from requests<3.0,>=2.20->spid-cie-oidc==1.4.5)
5.399   Downloading charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (34 kB)
5.434 Collecting idna<4,>=2.5 (from requests<3.0,>=2.20->spid-cie-oidc==1.4.5)
5.455   Downloading idna-3.10-py3-none-any.whl.metadata (10 kB)
5.501 Collecting urllib3<3,>=1.21.1 (from requests<3.0,>=2.20->spid-cie-oidc==1.4.5)
5.521   Downloading urllib3-2.2.3-py3-none-any.whl.metadata (6.5 kB)
5.557 Collecting certifi>=2017.4.17 (from requests<3.0,>=2.20->spid-cie-oidc==1.4.5)
5.577   Downloading certifi-2024.8.30-py3-none-any.whl.metadata (2.2 kB)
5.634 Collecting djangorestframework>=3.10 (from djagger->spid-cie-oidc==1.4.5)
5.657   Downloading djangorestframework-3.15.2-py3-none-any.whl.metadata (10 kB)
5.687 Collecting email-validator>=1.0.3 (from pydantic[email]->spid-cie-oidc==1.4.5)
5.708   Downloading email_validator-2.2.0-py3-none-any.whl.metadata (25 kB)
5.786 Collecting cffi>=1.12 (from cryptography>=3.4.6->cryptojwt>=1.8.2->spid-cie-oidc==1.4.5)
5.808   Downloading cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (1.5 kB)
5.847 Collecting dnspython>=2.0.0 (from email-validator>=1.0.3->pydantic[email]->spid-cie-oidc==1.4.5)
5.867   Downloading dnspython-2.7.0-py3-none-any.whl.metadata (5.8 kB)
5.908 Collecting propcache>=0.2.0 (from yarl<2.0,>=1.0->aiohttp<3.10,>3.9->spid-cie-oidc==1.4.5)
5.932   Downloading propcache-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (7.7 kB)
5.958 Collecting pycparser (from cffi>=1.12->cryptography>=3.4.6->cryptojwt>=1.8.2->spid-cie-oidc==1.4.5)
5.979   Downloading pycparser-2.22-py3-none-any.whl.metadata (943 bytes)
6.004 Downloading aiohttp-3.9.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB)
6.020    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.3/1.3 MB 97.9 MB/s eta 0:00:00
6.042 Downloading cryptojwt-1.9.2-py3-none-any.whl (90 kB)
6.072 Downloading Django-4.2.16-py3-none-any.whl (8.0 MB)
6.146    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.0/8.0 MB 107.9 MB/s eta 0:00:00
6.170 Downloading pydantic-1.10.19-py3-none-any.whl (165 kB)
6.192 Downloading pytz-2024.2-py2.py3-none-any.whl (508 kB)
6.221 Downloading requests-2.32.3-py3-none-any.whl (64 kB)
6.244 Downloading aiosignal-1.3.1-py3-none-any.whl (7.6 kB)
6.269 Downloading asgiref-3.8.1-py3-none-any.whl (23 kB)
6.299 Downloading attrs-24.2.0-py3-none-any.whl (63 kB)
6.353 Downloading certifi-2024.8.30-py3-none-any.whl (167 kB)
6.385 Downloading charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (138 kB)
6.417 Downloading cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl (3.7 MB)
6.451    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.7/3.7 MB 116.2 MB/s eta 0:00:00
6.473 Downloading djangorestframework-3.15.2-py3-none-any.whl (1.1 MB)
6.486    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 76.1 MB/s eta 0:00:00
6.507 Downloading email_validator-2.2.0-py3-none-any.whl (33 kB)
6.532 Downloading frozenlist-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (276 kB)
6.559 Downloading idna-3.10-py3-none-any.whl (70 kB)
6.586 Downloading multidict-6.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (131 kB)
6.611 Downloading sqlparse-0.5.2-py3-none-any.whl (44 kB)
6.642 Downloading typing_extensions-4.12.2-py3-none-any.whl (37 kB)
6.667 Downloading urllib3-2.2.3-py3-none-any.whl (126 kB)
6.696 Downloading yarl-1.18.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (340 kB)
6.724 Downloading cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (469 kB)
6.754 Downloading dnspython-2.7.0-py3-none-any.whl (313 kB)
6.783 Downloading propcache-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (236 kB)
6.807 Downloading pycparser-2.22-py3-none-any.whl (117 kB)
6.850 Building wheels for collected packages: djagger
6.850   Building wheel for djagger (setup.py): started
7.007   Building wheel for djagger (setup.py): finished with status 'done'
7.007   Created wheel for djagger: filename=djagger-1.1.4-py3-none-any.whl size=29907 sha256=eac9171e9464ab58821874f8eaf873ebbc37f8f0555b32eea56c2f63cb477d4b
7.007   Stored in directory: /root/.cache/pip/wheels/2a/5d/86/0a178855141a72f8ac1c6e8be799b92f04fcf9f9e8930aa9ea
7.008 Successfully built djagger
7.053 Installing collected packages: pytz, urllib3, typing-extensions, sqlparse, pycparser, propcache, multidict, idna, frozenlist, dnspython, charset-normalizer, certifi, attrs, asgiref, yarl, requests, pydantic, email-validator, Django, cffi, aiosignal, djangorestframework, cryptography, aiohttp, djagger, cryptojwt, spid-cie-oidc
8.216   DEPRECATION: Legacy editable install of spid-cie-oidc==1.4.5 from file:///spid-cie-oidc-django (setup.py develop) is deprecated. pip 25.0 will enforce this behaviour change. A possible replacement is to add a pyproject.toml or enable --use-pep517, and use setuptools >= 64. If the resulting installation is not behaving as expected, try using --config-settings editable_mode=compat. Please consult the setuptools documentation for more information. Discussion can be found at https://github.com/pypa/pip/issues/11457
8.216   Running setup.py develop for spid-cie-oidc
8.331 Successfully installed Django-4.2.16 aiohttp-3.9.5 aiosignal-1.3.1 asgiref-3.8.1 attrs-24.2.0 certifi-2024.8.30 cffi-1.17.1 charset-normalizer-3.4.0 cryptography-43.0.3 cryptojwt-1.9.2 djagger-1.1.4 djangorestframework-3.15.2 dnspython-2.7.0 email-validator-2.2.0 frozenlist-1.5.0 idna-3.10 multidict-6.1.0 propcache-0.2.0 pycparser-2.22 pydantic-1.10.19 pytz-2024.2 requests-2.32.3 spid-cie-oidc-1.4.5 sqlparse-0.5.2 typing-extensions-4.12.2 urllib3-2.2.3 yarl-1.18.0
8.331 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable.It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.
8.698 Collecting design-django-theme==1.4.8
8.776   Downloading design-django-theme-1.4.8.tar.gz (2.4 MB)
8.903      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.4/2.4 MB 30.8 MB/s eta 0:00:00
8.962   Preparing metadata (setup.py): started
9.045   Preparing metadata (setup.py): finished with status 'done'
9.047 Requirement already satisfied: django in /usr/local/lib/python3.11/site-packages (from design-django-theme==1.4.8) (4.2.16)
9.113 Collecting libsass>=0.19.4 (from design-django-theme==1.4.8)
9.133   Downloading libsass-0.23.0.tar.gz (316 kB)
9.166   Preparing metadata (setup.py): started
9.268   Preparing metadata (setup.py): finished with status 'done'
9.299 Collecting django-sass-processor>=0.8 (from design-django-theme==1.4.8)
9.322   Downloading django_sass_processor-1.4.1-py3-none-any.whl.metadata (18 kB)
9.354 Collecting django_compressor>=2.4 (from design-django-theme==1.4.8)
9.376   Downloading django_compressor-4.5.1-py2.py3-none-any.whl.metadata (5.0 kB)
9.406 Collecting django-appconf>=1.0.3 (from django_compressor>=2.4->design-django-theme==1.4.8)
9.426   Downloading django_appconf-1.0.6-py3-none-any.whl.metadata (5.4 kB)
9.466 Collecting rcssmin==1.1.2 (from django_compressor>=2.4->design-django-theme==1.4.8)
9.488   Downloading rcssmin-1.1.2-cp311-cp311-manylinux2014_aarch64.whl.metadata (4.5 kB)
9.523 Collecting rjsmin==1.2.2 (from django_compressor>=2.4->design-django-theme==1.4.8)
9.548   Downloading rjsmin-1.2.2-cp311-cp311-manylinux2014_aarch64.whl.metadata (4.4 kB)
9.553 Requirement already satisfied: asgiref<4,>=3.6.0 in /usr/local/lib/python3.11/site-packages (from django->design-django-theme==1.4.8) (3.8.1)
9.553 Requirement already satisfied: sqlparse>=0.3.1 in /usr/local/lib/python3.11/site-packages (from django->design-django-theme==1.4.8) (0.5.2)
9.585 Downloading django_compressor-4.5.1-py2.py3-none-any.whl (145 kB)
9.610 Downloading rcssmin-1.1.2-cp311-cp311-manylinux2014_aarch64.whl (49 kB)
9.637 Downloading rjsmin-1.2.2-cp311-cp311-manylinux2014_aarch64.whl (32 kB)
9.664 Downloading django_sass_processor-1.4.1-py3-none-any.whl (20 kB)
9.697 Downloading django_appconf-1.0.6-py3-none-any.whl (6.4 kB)
9.706 Building wheels for collected packages: design-django-theme, libsass
9.707   Building wheel for design-django-theme (setup.py): started
9.965   Building wheel for design-django-theme (setup.py): finished with status 'done'
9.967   Created wheel for design-django-theme: filename=design_django_theme-1.4.8-py3-none-any.whl size=2365450 sha256=4d8aac07afa845f3d690265439a9ced4720bf68b1467a991d85b1e2311eb8f63
9.967   Stored in directory: /root/.cache/pip/wheels/50/db/76/b8e56291faaab78c11319f66fad9a38d570eee1908f4a3ab77
9.968   Building wheel for libsass (setup.py): started
10.07   Building wheel for libsass (setup.py): finished with status 'error'
10.07   error: subprocess-exited-with-error
10.07
10.07   × python setup.py bdist_wheel did not run successfully.
10.07   │ exit code: 1
10.07   ╰─> [21 lines of output]
10.07       running bdist_wheel
10.07       running build
10.07       running build_py
10.07       creating build
10.07       creating build/lib.linux-aarch64-cpython-311
10.07       copying pysassc.py -> build/lib.linux-aarch64-cpython-311
10.07       copying sass.py -> build/lib.linux-aarch64-cpython-311
10.07       copying sasstests.py -> build/lib.linux-aarch64-cpython-311
10.07       creating build/lib.linux-aarch64-cpython-311/sassutils
10.07       copying sassutils/builder.py -> build/lib.linux-aarch64-cpython-311/sassutils
10.07       copying sassutils/__init__.py -> build/lib.linux-aarch64-cpython-311/sassutils
10.07       copying sassutils/distutils.py -> build/lib.linux-aarch64-cpython-311/sassutils
10.07       copying sassutils/wsgi.py -> build/lib.linux-aarch64-cpython-311/sassutils
10.07       running build_ext
10.07       building '_sass' extension
10.07       creating build/temp.linux-aarch64-cpython-311
10.07       creating build/temp.linux-aarch64-cpython-311/libsass
10.07       creating build/temp.linux-aarch64-cpython-311/libsass/src
10.07       creating build/temp.linux-aarch64-cpython-311/libsass/src/memory
10.07       gcc -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPy_LIMITED_API -I./libsass/include -I/usr/local/include/python3.11 -c _sass.c -o build/temp.linux-aarch64-cpython-311/_sass.o -fPIC -std=gnu++0x -Wall -Wno-parentheses -Werror=switch -DLIBSASS_VERSION=\"3.6.6\"
10.07       error: command 'gcc' failed: No such file or directory
10.07       [end of output]
10.07
10.07   note: This error originates from a subprocess, and is likely not a problem with pip.
10.07   Running setup.py clean for libsass
10.07   ERROR: Failed building wheel for libsass
10.17 Successfully built design-django-theme
10.17 Failed to build libsass
10.19 ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (libsass)
------
failed to solve: process "/bin/sh -c git clone --depth=1 --branch v1.4.5 https://github.com/italia/spid-cie-oidc-django && \tcd spid-cie-oidc-django && \tpip install --upgrade pip && \tpip install -e . && \tpip install design-django-theme==1.4.8 && \tpip install tzdata" did not complete successfully: exit code: 1
`docker-compose` process finished with exit code 17


python3Packages.regress: Add libiconv on Darwin

Description of changes

libiconv was added to the buildInputs if the system is Darwin-based. Without this, the build fails during link as libiconv is not provided.
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[x] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[X] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[X] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

@ofborg build python311Packages.regress

Result of nixpkgs-review pr 283403 at a100e339 run on x86_64-linux 1


Make it easier to debug custom shader compile errors

Right now, the way I debug compilation errors for a custom shader is putting a breakpoint in ShaderProgram.createAndLinkProgram() on one of the lines that throw DeveloperError, and then inspect the variables vsSource and fsSource which contain the complete shader text (custom shader + ModelExperimental shader code + CesiumJS builtin-stuff). But this is cumbersome and might be confusing to explain.
The tricky thing is the shader code is built in stages:

CustomShader only has the code the user added
ModelExperimental has a ShaderBuilder object when creating draw commands. This contains the complete shader, of which the custom shader is a small portion. This is usually the code I want to look at when debugging since it has more context about attributes and structs in the shader.
the draw command has the ShaderProgram which has the full shader (ModelExperimental code + built in renderer code)

It would be great to make some of these more accessible for debugging. Some ideas:

Perhaps the easiest, instead of ShaderProgram throwing a DeveloperError, maybe it could throw a new ShaderCompilationError that includes the vertex and fragment text.
Or just console.error with the shader text
the ShaderBuilder could certainly have a method like getFullFragmentShaderText() that combines the text like it does when building the ShaderProgram, but returns the string. The only tricky part is how would the user access the shader builder, as this is pretty deep in the private API.
a similar method could be used for the ShaderProgram, but again it would be cumbersome to access and would be exposing more private API.

I'm starting to like the sound of 1) then the user could catch the error and handle it as desired.

Perhaps the easiest, instead of ShaderProgram throwing a DeveloperError, maybe it could throw a new ShaderCompilationError that includes the vertex and fragment text.

I like this. And if the event has no listeners, it could throw a DeveloperError, like the pseudocode:
try {
    shaderProgram.compile();
    compilationEvent.raiseEvent(true);
} catch (error) {
    shaderProgram.destroy();
    if (compilationEvent.numberOfListeners === 0) {
        throw new DeveloperError("Error generating shader");
    } else {
        compilationEvent.raiseEvent(false);
    }
}

Or just console.error with the shader text

This is what https://github.com/CesiumGS/cesium/pull/10629 does.
I think this behavior was originally intended in createAndLinkProgram, but it wasn't working because the shader was deleted before calling debugShaders.getTranslatedShaderSource.
Note: the console.error output is the translated shader source. From my tests, it is still close enough to the raw shader code to be useful.


What to mine Barry?

LGTM https://github.com/ethereumclassic/twitter-together/actions/runs/3052367806/jobs/4921676314#step:5:8

Now I got the tweet/ right and forgot the .tweet 🙈


Create common Vue components

To avoid having to re-implement the same behavior in every game, it might be beneficial to create some reusable components.
Such as:

[x] PlayerProfile (v-avatar showing picture, hover text, possibly a link to profile in the future)
[ ] Value (for animating single values, like points and money in Splendor...)
[x] CardZone (for handling animations of cards entering and leaving)
[ ] Card / Actionable (for handling actions, highlighting possible actions...)
[ ] Dice (color property)
[ ] Cubes (color property)
[ ] Workers (color property)
[ ] Player game pieces (color property) (also possible to just use player avatar)
[ ] Game Board (with dividable areas, like Pandemic)

Features that common components are intended to solve:

Animations
Actions (showing possible actions and performing actions)
More common layout and CSS across different games

Opinions about which components to create are much appreciated.

As an example of Value component: https://github.com/Cardshifter/HTML-Client/blob/master/src/components/Value.vue and https://stackoverflow.com/q/50824857/1310566

A lot of stuff can be done using https://materialdesignicons.com/ , to use them use <v-icon>mdi-...</v-icon>. They can also be used inside buttons, as seen in examples here: https://vuetifyjs.com/en/components/buttons/


fix: nuxt 3.7 support

We want to register the tags in Unhead using objects over strings so that Unhead can optimise the loading order of them.
The requires Nuxt 3.7.0 so you may want to do a minor bump

Thanks :)


Add tests for index.ts

Add test(s) that mimic the ones we've written here: https://github.com/sparksuite/w3c-css-validator/blob/master/src/index.test.ts.
Basically, these test(s) just need to verify that things are being exported properly. This will help improve the coverage percentage.

In the current design, the only things exported from index.ts are types, while the rest of the file is dedicated to asynchronously executing the steps that it imports. So just to confirm, to resolve this issue are we just adding tests to confirm those types are being exported, or is the intent to test that the individual steps are being exported as expected?
The title of the issue would indicate to me that the former was the case, but looking at the example provided it makes me think we want to test the export of the individual steps.

You're right, this project won't be a suitable case for adding tests like we did at: https://github.com/sparksuite/w3c-css-validator/blob/master/src/index.test.ts. We can close this issue.


Add Impeller support

Will merge https://github.com/flutter/engine/pull/43388.

We need to change CI scripts to add impellerc to pre-builts.


Multiple transfers with low relayer fee

https://amarok.connextscan.io/tx/0xc3b34e4ce7a5754c77b6f2e536e7ed84bfe6c8d6a6236f4fd9f1f36efbdcb2ef
https://amarok.connextscan.io/tx/0x3b7b63ff36464c9b94496e4468fdfb10146c9b3da6633d46bd60e38f723c99e1

27 stuck rn

A lot of these are old txns from >8d ago where the relayerFee estimate at the time was prone to returning 0.

bumped a few but UI still shows "current relayer fee" as 0.


Reinstate Search with Exact Course Code and Title Match without Fuse.js

Summary
This pull request reinstates the old course search implemented by @SamChou19815 in #351 for the May 4/5 push to prod.
The Fuse search implementation (#482) does improve results but suffers from slow performance.
Remaining TODOs:

[ ] Find a way to optimize search without compromising too much on speed

Test Plan
Try looking up a course (e.g. CS 1110). The course should appear in the search results and not be too slow.

Test plan works! Do we want to comment out the new additions for now?

I think it'd be cleaner to remove the new additions instead of commenting them out. We can go back to the original Fuse PR when we want to try Fuse.js again


Add all dev dependencies with a single command 🔩

Run a single yarn or npm command to install the dev dependencies, instead of many. This is likely to be much quicker (with Yarn at least), and also more pleasant to watch.

Thanks @DuncanMacWeb, this looks good to me, I'll test it and merge asap.

Any update on that? Test is failing because Travis is not properly configured...


⚠ Slack has degraded performance

In acdee7d, Slack (https://status.slack.com/api/v2.0.0/current) experienced degraded performance:

HTTP code: 200
Response time: 72 ms

Resolved: Slack performance has improved in f8c056d.


Adding feature for passing arg as an variable to html body

I'm submitting a ...
[ ] bug report
[*] feature request
[ ] question about the decisions made in the repository

I'm adding my plnkr example here.
http://plnkr.co/edit/O478lPqMuwnKbYc3SxHf?p=preview
I have added an arg for onClick method.
When I want to see the arg in the modal it return the template.
For example: instead of onClick() i want to pass onClick('shalom') and than in the template (body) i'm adding {{name}} and all I get is {{name}}.
My Plnkr example is much better...

I managed to do it by using this code:
.body(`<h4> Please tell us why you are closing your connection with `
       + this.fbProfile.firstName + `? </h4> `)
                .okBtn('Close Connection')


Send DM to App channel instead of Slack-Bot

Your checklist for this issue

[x] Jenkins version 2.249.3

[x] Plugin version: 2.43

[x] OS: Linux (Jenkins docker container)

Description
If you know the channel ID it is possible to send DM's to the Jenkins App Channel instead of the Slack-Bot channel.
But I've no idea how to get the Jenkins App Channel ID for every users Jenkins App.
This is what I get:

This is what I want:

Is this already possible?
I followed https://github.com/jenkinsci/slack-plugin#creating-your-app to create the Jenkins App

it already goes to the app channel if you use the bot user mode and have created your own app.

The test message might go to the slack app, if you simply setup a build with slack notification it should work.

Nope doesn't work for me, I musst be missing something:
pipeline {
    agent {
        label "master"
    }
    stages {
        stage('Test') {
            steps {
                script {
                    def userId =<EMAIL_ADDRESS>                    slackSend(color: "good", channel: "${userId}", message: "<@$userId> Message from Jenkins Pipeline")
                }
            }
        }
    }
}

maybe add more scopes? i think there might be a bot scope?
Slack changes things every now and then for new installations.
It works on mine but it's quite an old one...

Just for sanity, I deleted the app and the plugin and reinstalled/configured everything but I get the same result :cry:

Ok i got it:
You shouldn't set the Username in the Jenkins Plugin. With the username empty, everything works as expected .

Ok i got it:
You shouldn't set the Username in the Jenkins Plugin. With the username empty, everything works as expected .

probably more of a slack API thing, we don't do anything special, but good to know


multisig wallets

anyone can create a wallet for a fee
while creating the wallets we attach the public keys allowed for signers
can define quorm for transactions to happen e.g 2 out of 5

Probably the model is something like this
wallet {
   wallet_address
   signers_keys
   min_signers
}

anyone of signers can propose a transaction
transaction is in created state
as soon as x signers >= min signers sign the transactions, the transactions goes to state ready
if the transaction in state ready and the wallet has enough coins, transfer happens.

could be in phase two the part of adding/removing signers to a specific wallet

code added to https://github.com/threefoldtech/research/
steps to create and use multisigwallet https://github.com/threefoldtech/research/blob/development/multisigwallet/steps.md

@robvanmieghem is it going to be the same requirement as the one was in this research issue? if any different I prefer to close this one

@xmonader we can't stay in research mode, I don't think the requirements are different but if it's not in the main app, it's not there.


FastHttpLocust gives error when using valid url.

When using FastHttpLocust with an valid URL, the following error is emitted.
LocustError: Invalid host (`https://hostname/path`). The specified host string must be a base URL without a trailing slash.

The regex r"^https?://[^/]+$" in file locust/contrib/fasthttp.py seems to be wrong.
It maches https://hostname and not https://hostname/path error message warned about https://hostname/path/
Environment settings

OS: Windows 10
Python version: 2.7
Locust version: 0.13.5

I now see what I did wrong. You are supposed to only  add the hostname as a startup parameter. I was testing a service behind a proxy, so I added the service path to the host parameter. If I put the service path inside the locustfile it all worked fine.
But this kind of prevents you from using the same locustfile on multiple services without making changes to the locustfile.
Do the maintainers have any thoughts on this?

Hi Lars-Kristian! I have got this error myself, sometimes and agree that it is a bit limiting. But the risk of user errors, if we allow a full path in the hostname is pretty big. If you want to supply arbitrary parameter to your test, you can use env vars.
Something like this:
HOST_WITH_PATH=https://hostname/path locust ... (I dont remember the syntax to set env vars in Windows I'm afraid)
in your test:
class MyLocust(FastHttpLocust):
...
host = "http://whatever"
class MyTask(TaskSet):
...
with self.client.request("POST", os.env["HOST_WITH_PATH"], ...
In a distributed test you'd need to set the env var on the slaves.


Remove unconfined dispatcher from intent launch

Due to our use of the Unconfined dispatcher for launching intent coroutines off the Orbit event loop, we ran into cases where the continuation of some intents after re-subscription would resume on the main dispatcher. This is entirely unintended and has the potential to cause bugs like frame drops etc.
I found a way to keep the existing behaviour, but drop the unconfined dispatcher. Continuations should now resume in the dispatcher taken from the coroutine context.

why this commit was reverted?


Fix: pip fails with the error bad interpreter because of the shebang …[skip ci]

…length limit
Fix: OS install of WindowsServer-2012 failed with the message:
./mkenv.sh: /home/jenkins/workspace/BuildRelease/Test/OsInstall/WindowsServer-2012/build-config/manifest-build-tools/env/hwimobuild/bin/pip: /home/jenkins/workspace/BuildRelease/Test/OsInstall/WindowsServer-2012/build-: bad interpreter: No such file or directory

Cause:
The path to the python interpreter is too long.
The maximum length is limited in the kernel by BINPRM_BUF_SIZE, set in /usr/include/linux/binfmts.h.
On the Linux machines I looked at, this limit is set to 128.

test this please

test this please

test this please

test this please

test this please

@panpan0000 @changev @anhou @yyscamper

:+1: !!!

Woo~~~ amazing fix. Thank you :+1:


⚠ PrivateHD has degraded performance

In b5c1dda, PrivateHD ($PHD) experienced degraded performance:

HTTP code: 200
Response time: 1970 ms

Resolved: PrivateHD performance has improved in 5780954.


CI | Actions updates

Is your feature request related to a problem? Please describe.
Some CI actions should be updated
Describe the solution you'd like

There are a few unused actions that can be removed (for example .github/workflows/next-ver-build.yaml and cur-ver-build.yaml)
Many actions use: benc-uk/workflow-dispatch@v1, we can use github native workflow_call instead.

still relevant, commenting so stale bot won't close this issue


Add parallel support in FOOOFGroup

FOOOGroup runs through a list of PSDs linearly - but every fit is independent. We should add parallel support for running across the matrix - probably get a big speed up for running large numbers of PSDs.
As of right now: the user could set up parallel outside the FOOOFGroup object (like I have set up for the MEG data) - but no reason not to have it offered internally.

Note: sklearn.external.joblib offers a straightforward way to do this - the only thing left to fix is how to integrate this with the 'save as you go' approach current implemented.

Added to last_tweaks branch. Will close with merge.


Remove redundancy of ticket checks

Remove the need to check for ticket changes twice

Removed check on ticket body and instead checked if ticket exists. Under the presumption that body is a mandatory field.


correct example in readme

While attempting to change the default remote folder and path location, I encountered this error:
1 error(s) occurred:

* unknown configuration key: "remoteFolder"

Had to change to remote_folder and remote_path.

Thanks for this @justinlarose

@fishnix thanks for sharing this project,  I have found it very helpful!


Check for new MunkiReport version on Module Marketplace

Checks for new version of MunkiReport when visiting Module Marketplace. Uses GitHub API for version checking within browser page.

Button links to GitHub release page for version show, only shows if text and button if there is a new version


Anchor init error

Whenever I try to create anchor program, I get this error and when I try to run yarn, I get error and I can neither build nor test the application.
anchor init metaplex_nft_testing
ERROR: install is not COMMAND nor fully qualified CLASSNAME.
Usage: yarn [OPTIONS] SUBCOMMAND [SUBCOMMAND OPTIONS]
or    yarn [OPTIONS] CLASSNAME [CLASSNAME OPTIONS]
where CLASSNAME is a user-provided Java class
OPTIONS is none or any of:
--buildpaths                       attempt to add class files from build tree
--config dir                       Hadoop config directory
--daemon (start|status|stop)       operate on a daemon
--debug                            turn on shell script debug mode
--help                             usage information
--hostnames list[,of,host,names]   hosts to use in worker mode
--hosts filename                   list of hosts to use in worker mode
--loglevel level                   set the log4j level for this command
--workers                          turn on worker mode
SUBCOMMAND is one of:
Admin Commands:

daemonlog            get/set the log level for each daemon
node                 prints node report(s)
rmadmin              admin tools
scmadmin             SharedCacheManager admin tools
Client Commands:

applicationattempt   prints applicationattempt(s) report
app|application      prints application(s) report/kill application/manage
long running application
classpath            prints the class path needed to get the hadoop jar and
the required libraries
cluster              prints cluster information
container            prints container(s) report
envvars              display computed Hadoop environment variables
fs2cs                converts Fair Scheduler configuration to Capacity
Scheduler (EXPERIMENTAL)
jar             run a jar file
logs                 dump container logs
nodeattributes       node attributes cli client
queue                prints queue information
schedulerconf        Updates scheduler configuration
timelinereader       run the timeline reader server
top                  view cluster information
version              print the version
Daemon Commands:

nodemanager          run a nodemanager on each worker
proxyserver          run the web app proxy server
registrydns          run the registry DNS server
resourcemanager      run the ResourceManager
router               run the Router daemon
sharedcachemanager   run the SharedCacheManager daemon
timelineserver       run the timeline server
SUBCOMMAND may print help when invoked w/o parameters or with -h.
Failed yarn install will attempt to npm install
added 174 packages, and audited 175 packages in 18s
30 packages are looking for funding
run npm fund for details
found 0 vulnerabilities
npm notice
npm notice New minor version of npm available! 9.4.0 -> 9.7.1
npm notice Changelog: https://github.com/npm/cli/releases/tag/v9.7.1
npm notice Run npm install -g<EMAIL_ADDRESS>to update!
npm notice
Initialized empty Git repository in /Users/atatekeli/metaplex_nft_testing/.git/
metaplex_nft_testing initialized
I'm looking on how I can create an anchor program without having any issues.

solana-cli: 1.15.0
yarn: yarn version
Hadoop 3.3.4
Source code repository https://github.com/apache/hadoop.git -r a585a73c3e02ac62350c136643a5e7f6095a3dbb
Compiled by stevel on 2022-07-29T12:32Z
Compiled with protoc 3.7.1
From source with checksum fb9dd8918a7b8a5b430d61af858f6ec
This command was run using /opt/homebrew/Cellar/hadoop/3.3.4/libexec/share/hadoop/common/hadoop-common-3.3.4.jar
anchor-cli 0.27.0

yarn: yarn version Hadoop 3.3.4 Source code repository https://github.com/apache/hadoop.git -r a585a73c3e02ac62350c136643a5e7f6095a3dbb Compiled by stevel on 2022-07-29T12:32Z Compiled with protoc 3.7.1 From source with checksum fb9dd8918a7b8a5b430d61af858f6ec This command was run using /opt/homebrew/Cellar/hadoop/3.3.4/libexec/share/hadoop/common/hadoop-common-3.3.4.jar

What does this have to do with yarn? It doesn't seem like you have it installed. You can install it with npm install -g yarn.

I don't know, I tried installing Hadoop and while trying to configure, it gor messed up, now trying to download yarn, will let you know the result

I did but I had the same issue

npm install --global yarn
changed 1 package in 477ms
npm notice
npm notice New minor version of npm available! 9.4.0 -> 9.7.1
npm notice Changelog: https://github.com/npm/cli/releases/tag/v9.7.1
npm notice Run npm install -g<EMAIL_ADDRESS>to update!
npm notice
atatekeli:~ atatekeli$ yarn version
-bash: /opt/homebrew/bin/yarn: No such file or directory

That's what I got when I write yarn version, I used brew install yarn
yarn version
yarn version v1.22.19
warning package.json: No license field
warning package.json: No license field
And this is what when I write yarn
yarn
yarn install v1.22.19
warning package.json: No license field
warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.
warning No license field
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
error Command failed.
Exit code: 128
Command: git
Arguments: ls-remote --tags --heads<EMAIL_ADDRESS>Directory: /Users/atatekeli
Output:
Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

yarn --version 1.22.19

I think there's not much to do about it
atatekeli$ anchor init anchor_retest
yarn install v1.22.19
warning package.json: No license field
warning ../package.json: No license field
info No lockfile found.
warning No license field
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 🔨  Building fresh packages...
success Saved lockfile.
✨  Done in 19.21s.
Initialized empty Git repository in /Users/atatekeli/anchor_retest/.git/
anchor_retest initialized


feature: wrappid-service template versioning

Description
Currently there is no template versioning, so there is no way to know which template version user's wrappid-service is using.
Proposed solution
Use wrTemplateVersion key in wrappid.meta.json

Closing as necessary changes implemented.


i18n: Add some missing i18n keys and update Chinese translation

Pull Request Checklist
Note to first-time contributors: Please open a discussion post in Discussions and describe your changes before submitting a pull request.
Before submitting, make sure you've checked the following:

[x] Target branch: Please verify that the pull request targets the dev branch.
[x] Description: Provide a concise description of the changes made in this pull request.
[x] Changelog: Ensure a changelog entry following the format of Keep a Changelog is added at the bottom of the PR description.

Changelog Entry
Description
Add some missing i18n keys and update Chinese translation

Thanks!


Selector parse EOF

What is the purpose of the change
There are some minor errors in SelectorParser.jj, and it should work like ActiveMQ using javacc plugin
Brief changelog

An incorrect import of LRUCache was deleted from SelectorParser.jj
Add EOF token to match the end of selector sql, so selector like "a < 10bbbbb" will fail to parse, rather than parse out (a < 10)
Changed the way quotes are compared so that there are no compile error with '\u005c' in generated SelectorParser.java
add javacc plugin to automatically generate code, so we don't have to manual generate code with javacc command line when each time of .jj updated

Verifying this change
No Java code was modified and all the exist tests passed

Coverage increased (+0.2%) to 43.258% when pulling d978b574d79b629c40877cf9d6645231beedd304 on zhangyanc:selector_parse_eof into b32668b1074f17e7e62707b808d2c0b008f27cfe on apache:master.

close due to time too long and wrong to merge to master, welcome to create a new PR to the apache: develop branch.


Initialise random number generator in _checkNonlinearity

Closes #277

Probably quickest issue turnaround ever @A-CGray

Spoke too soon


Inline bool exprs

Checklist

[x] Did you specify the type of improvement?
[x] Did you state the API impact?
[x] Did you specify the code generation impact?
[x] Did you request a desired merge strategy?

Type of Improvement

new feature/API

API Impact

It does not add, extend, deprecate, remove, or break any existing API
Backend Code Generation Impact
So for each node count the number of usages (the fanout) and if the node is assigned to a boolean expression then if the world node has a fanout count of 1 then replace the node with the RHS expression else do nothing.
circuit Top :
  module Top :
    input a : UInt<1>
    input b : UInt<1>
    input c : UInt<1>
    output y : UInt<1>
    node _x = and(a, b)
    y <= and(_x, c)""".stripMargin

// replaces _x with and(a, b)
circuit Top :
  module Top :
    input a : UInt<1>
    input b : UInt<1>
    input c : UInt<1>
    output y : UInt<1>
    y <= and(and(a, b), c)""".stripMargin

===============================================================
circuit Top :
  module Top :
    input a : UInt<1>
    input b : UInt<1>
    input c : UInt<1>
    input d : UInt<1>
    output y : UInt<1>
    output z : UInt<1>
    node _y = and(a, b)
    node _z = and(a, b)
    y <= and(_y, c)
    z <= and(_z, d)

// Replacement of _y and _z is performed because the expressions are assigned to two different nodes
circuit Top :
  module Top :
    input a : UInt<1>
    input b : UInt<1>
    input c : UInt<1>
    input d : UInt<1>
    output y : UInt<1>
    output z : UInt<1>
    node _y = and(a, b)
    node _z = and(a, b)
    y <= and(_y, c)
    z <= and(_z, d)

===============================================================
circuit Top :
module Top :
input a : UInt<1>
input b : UInt<1>
input c : UInt<1>
input d : UInt<1>
output y : UInt<1>
output z : UInt<1>
node _x = and(a, b)
y <= and(_x, c)
z <= and(_x, d)
// No replacement of _x is performed because _x has a fanout of 2
circuit Top :
module Top :
input a : UInt<1>
input b : UInt<1>
input c : UInt<1>
input d : UInt<1>
output y : UInt<1>
output z : UInt<1>
node _y = and(a, b)
y <= and(_y, c)
z <= and(_z, d)

Yes. See above.

See above.
Desired Merge Strategy

This likely runs afoul of context-dependent width rules in Verilog. This is the reason so many expressions with fanout of one get created -- intermediate expressions are intentionally split to block context-dependent width from taking effect.
There are several "local fixes" for this, including unary cats to block the width context and width-matching checks in the InlineBooleanExpressions transform, but they can have knock-on effects, since the fact of the matter is that we rely on context-dependent widths for width-growing operations, due to the lack of suck operations in Verilog.
Optimizations like this may benefit from a wider view of the whole problem, including the possibility of just not splitting things in the first place and restructuring CSE to account for that. Aside from leading to easier control of Verilog width rules, this would also prevent the paradoxical cases where signals that users explicitly created get inlined.

Closing this, since deeper expression trees will probably make more sense as part of a larger Emitter refactor, considering the current hurdles with context-dependent widths.


HTTP/1.0 responses without Connection: keep-alive should be closed.

Issue Template
Title: HTTP/1.0 responses without Connection: keep-alive should be closed.
Description:
The HTTP/1.0 specification says that connections carry a single request and then are closed unless the response includes "Connection: keep-alive".
[optional Relevant Links:]
https://tools.ietf.org/html/rfc1945
https://en.wikipedia.org/wiki/HTTP_persistent_connection
Bug Template
Title: HTTP/1.0 connections with no Connection header are kept alive when they should be closed.
Description:
HTTP/1.0 connections with no Connection header are kept alive when they should be closed.   This can cause 503 errors if the connection is reused.
Repro steps:
Set up envoy in front of a flask server (which is HTTP/1.0) and run siege against it.  You will see Failed transactions.

This is fixed.


Improve support for QFxp in classical simulation

Classical simulation protocol assumes values are always integer as seen by the type hint https://github.com/quantumlib/Qualtran/blob/c6aa41980b6d27a9a1395448dbcab297b87540f7/qualtran/simulation/classical_sim.py#L37
however float values can happen when using QFxp dtype.

xref #859

#1215 adds support for QDType specific values, and #1219 can be used to track ideas for classical representations of QFxp values.


hotfix(kong-ngx-build) ensure the 'pcre_version()' symbol is preserved and undefined when PCRE is statically linked.

A temporary hotfix until the issue is addressed in upstream OpenResty (a
patch has already been written).
When using --with-pcre=..., NGINX is statically linked against
libpcre.a. Since pcre_version() is unused, its symbol is stripped by
the linker. Because lua-resty-core's resty.core.regex module needs it,
we here ensure that the symbol is entered as undefined in our final
binary.

cc @hutchic

A temporary hotfix until the issue is addressed in upstream OpenResty (a
patch has already been written).

Do you have a link to the upstream issue/PR?

I have not submitted PRs yet


Refactored udp*.go to remove redundancy, and make them compile on appengine

App Engine even though is Linux, does not allow referencing the syscall package. Thus I reorganised
the udp*.go files a little to make this work. As best I can the functionality is unchanged, and all
this continues to compiles on darwin, linux, windows, plan9 and appengine.
Namely:

Moved all Linux specific code from udp.go into udp_linux.go (e.g setUDPSocketOptions)
Deleted udp_plan9.go which was almost a copy of udp.go.
Added build tags to stop appengine using the linux build, and instead using the udp_other.go.

lgtm. thanks!


Load balancing map

I need to process tasks in parallel, by a preconfigured number of (stateful) workers. Consumer.loadBalance looks like a perfect fit, but the workers work like a function, not like a final consumers, so they cannot be at the end of the stream.
This is what I've managed to write:
def processor(account: String, taskCh: MVar[Int]): Observable[String] =
    Observable.fromAsyncStateAction[Unit, String](_ =>
        for {
            task <- taskCh.take
            // simulate real processing by an async sleep
            _ <- Task.sleep(Random.nextInt(500).millis)
        } yield {
            println(s"[$account] processed $task")
            ((task + 100).toString, ())
        }
    )()

val (taskCh, processors) =
    Await.result(
        MVar.empty[Int]
            .map(ch => (ch, List("acc1", "acc2").map(account => processor(account, ch))))
            .runAsync,
        Duration.Inf)

val cancelSource =
    Observable.range(0, 10)
        .dump("source")
        .mapParallelUnordered(processors.length) { task =>
            taskCh.put(task.toInt)
        }
        .dump("mapParallel")
        .subscribe()

val stream =
    Observable
        .merge(processors: _*)
        .consumeWith(Consumer.foreach(x => println(s"consumed $x")))

It works, but I'm uncomfortable with the fact that there are actually two streams connected implicitly by a MVar.
Also, I don't like how I get the MVar by blocking call.

With Akka Streams the solution is arguably cleaner:
// State contains the next element that will be emitted downsteam as well as our domain state,
// which we need to modify as needed.
case class State(account: String, elem: Option[String])

val accounts = List("acc1", "acc2", "acc3")

val stream =
    Source(1 to 10)
        .via(GraphDSL.create() { implicit b =>
            import GraphDSL.Implicits._

            val balancer = b.add(Balance[Int](accounts.length, waitForAllDownstreams = true))
            val merge = b.add(Merge[String](accounts.length))

            for (account <- accounts) {
                val worker =
                    Flow[Int]
                        .scanAsync(State(account, None)) {
                            case (state, x) =>
                                Task
                                    .sleep(Random.nextInt(500).millis)
                                    .map(_ => state.copy(elem = Some(s"[$account] $x")))
                                    .runAsync
                        }.collect { case State(_, Some(x)) => x }

                balancer ~> worker.async ~> merge
            }
            FlowShape(balancer.in, merge.out)
        })
        .runForeach(println(_))

It is definitely an interesting problem. I hope it is not very late though to propose an alternative.
First, let's settle on some abstraction. I will pick type A => Task[B] for worker, assuming it produces one value, or a list at once, but not an Observable. This is just a preference, b/c the idea is basically the same.
I am going to use MVar again, as a 1-element queue, but instead of enqueueing values to be processed, we are going to enqueue workers that are available for more work.
def pool[A, B](fs: Seq[A => Task[B]]): Task[A => Task[B]] =
  for {
    // Create queue
    queue <- MVar[Task].empty[A => Task[B]]
    // Populate initial workers
    _     <- Task.wanderUnordered(fs)(queue.put).forkAndForget
    // Balancer function: take available worker, do the job, then put it back into queue
  } yield (a: A) => queue.take.flatMap(f => f(a) <* queue.put(f).forkAndForget)

The pool returns Task of a balancer function, and not the function, because MVar constructor allocates mutable state, and it needs to be done to preserve referential transparency. Not to worry however, we can get it out without blocking, by using Observable.fromTask and then use it with Observable#flatMap (actually, a for-comprehension).
I'm going to use extension methods (pimp-my-library) here to define a method we want:
implicit class ObservableLoadBalanceOps[A](self: Observable[A]) {
  def mapLoadBalance[B](fs: Seq[A => Task[B]]): Observable[B] =
    for {
      f <- Observable.fromTask(pool(fs))
      b <- self.mapParallelUnordered(fs.length)(f)
    } yield b
}

And we're pretty much done. I can rewrite your example so it uses this newly defined method.
// we don't need `fromAsyncStateAction` here. Plain Task will do
def processor(account: String): Long => Task[Long] = (n) =>
  Task {
    println(s"[$account] processed $n")
    (n + 100).toString
  }.delayExecution(Random.nextInt(500).millis)

Observable.range(0, 10)
    .dump("source")
    .mapLoadBalance(List("acc1", "acc2").map(processor))
    .dump("mapParallel")
    .foreach(x => println(s"consumed $x"))

Btw, we now have ConcurrentQueue[F[_], A] as well, as an alternative to MVar (MVar being basically a queue of size 1, although it's actually unbounded, but it starts back-pressuring after 1 event :-))
Will write documentation and maybe a video tutorial soon.

Will close this for now, feel free to re-open if needed.


Print token costs after each message

eg aider prints after each answer:
Tokens: 4.0k sent, 264 received.
Cost: $0.02 message, $0.05 session.

something like this would be beneficial for gptme as well

We have the /tokens command which prints the input costs for the session.
Will consider adding a feature to include the output cost too.

can I work on this

@Kamalesh-Seervi Sure, give it a shot! :)

I have installation issue I use python venv the installation steps isn't smooth

Installing dependencies from lock file

Package operations: 106 installs, 0 updates, 0 removals

  - Installing certifi (2024.8.30)
  - Installing charset-normalizer (3.4.0)
  - Installing idna (3.10)
  - Installing markupsafe (3.0.1)
  - Installing urllib3 (2.2.3)
  - Installing alabaster (1.0.0)
  - Installing fsspec (2024.9.0): Pending...
  - Installing fsspec (2024.9.0): Installing...
  - Installing fsspec (2024.9.0)
  - Installing h11 (0.14.0)
  - Installing docutils (0.21.2)
  - Installing filelock (3.16.1)
  - Installing imagesize (1.4.1)
  - Installing babel (2.16.0)
  - Installing jinja2 (3.1.4)
  - Installing mdurl (0.1.2)
  - Installing packaging (24.1)
  - Installing pygments (2.18.0)
  - Installing pyyaml (6.0.2)
  - Installing requests (2.32.3)
  - Installing six (1.16.0)
  - Installing sniffio (1.3.1)
  - Installing snowballstemmer (2.2.0)
  - Installing soupsieve (2.6)
  - Installing sphinxcontrib-applehelp (2.0.0)
  - Installing sphinxcontrib-devhelp (2.0.0)
  - Installing sphinxcontrib-htmlhelp (2.1.0)
  - Installing sphinxcontrib-jsmath (1.0.1)
  - Installing sphinxcontrib-qthelp (2.0.0)
  - Installing sphinxcontrib-serializinghtml (2.0.0)
  - Installing tqdm (4.66.5)
  - Installing typing-extensions (4.12.2)
  - Installing accessible-pygments (0.0.5)
  - Installing annotated-types (0.7.0)
  - Installing anyio (4.6.2.post1)
  - Installing asttokens (2.4.1)
  - Installing beautifulsoup4 (4.12.3)
  - Installing markdown-it-py (3.0.0)
  - Installing click (8.1.7)
  - Installing distlib (0.3.9)
  - Installing executing (2.1.0)
  - Installing httpcore (1.0.6)
  - Installing huggingface-hub (0.25.2)
  - Installing iniconfig (2.0.0)
  - Installing parso (0.8.4)
  - Installing platformdirs (4.3.6)
  - Installing pluggy (1.5.0)
  - Installing ptyprocess (0.7.0)
  - Installing pure-eval (0.2.3)
  - Installing pydantic-core (2.23.4)
  - Installing sphinx (8.1.3)
  - Installing traitlets (5.14.3)
  - Installing types-html5lib (<IP_ADDRESS>40806)
  - Installing wcwidth (0.2.13)
  - Installing cfgv (3.4.0)
  - Installing httpx (0.27.2)
  - Installing coverage (7.6.3)
  - Installing cssselect (1.2.0)
  - Installing identify (2.6.1)
  - Installing decorator (5.1.1)
  - Installing distro (1.9.0)
  - Installing execnet (2.1.1)
  - Installing jedi (0.19.1)
  - Installing jiter (0.6.1)
  - Installing gprof2dot (2024.6.6)
  - Installing greenlet (3.0.3): Failed

  ChefBuildError

  Backend subprocess exited when trying to invoke build_wheel

  running bdist_wheel
  running build
  running build_py
  creating build/lib.macosx-15.0-arm64-cpython-313/greenlet
  copying src/greenlet/__init__.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
  creating build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/__init__.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  creating build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
  copying src/greenlet/tests/test_version.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
  copying src/greenlet/tests/test_weakref.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
  copying src/greenlet/tests/fail_slp_switch.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
  copying src/greenlet/tests/test_gc.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
  copying src/greenlet/tests/leakcheck.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
  copying src/greenlet/tests/fail_switch_two_greenlets.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
  copying src/greenlet/tests/test_generator.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
  copying src/greenlet/tests/test_greenlet_trash.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
  copying src/greenlet/tests/test_throw.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
  copying src/greenlet/tests/test_tracing.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
  copying src/greenlet/tests/fail_cpp_exception.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
  copying src/greenlet/tests/fail_switch_three_greenlets.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
  copying src/greenlet/tests/test_cpp.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
  copying src/greenlet/tests/test_contextvars.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
  copying src/greenlet/tests/test_greenlet.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
  copying src/greenlet/tests/test_extension_interface.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
  copying src/greenlet/tests/fail_clearing_run_switches.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
  copying src/greenlet/tests/__init__.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
  copying src/greenlet/tests/fail_switch_three_greenlets2.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
  copying src/greenlet/tests/fail_initialstub_already_started.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
  copying src/greenlet/tests/test_generator_nested.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
  copying src/greenlet/tests/test_stack_saved.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
  copying src/greenlet/tests/test_leaks.py -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
  running egg_info
  writing src/greenlet.egg-info/PKG-INFO
  writing dependency_links to src/greenlet.egg-info/dependency_links.txt
  writing requirements to src/greenlet.egg-info/requires.txt
  writing top-level names to src/greenlet.egg-info/top_level.txt
  reading manifest file 'src/greenlet.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no previously-included files found matching 'benchmarks/*.json'
  no previously-included directories found matching 'docs/_build'
  warning: no files found matching '*.py' under directory 'appveyor'
  warning: no previously-included files matching '*.pyc' found anywhere in distribution
  warning: no previously-included files matching '*.pyd' found anywhere in distribution
  warning: no previously-included files matching '*.so' found anywhere in distribution
  warning: no previously-included files matching '.coverage' found anywhere in distribution
  adding license file 'LICENSE'
  adding license file 'LICENSE.PSF'
  adding license file 'AUTHORS'
  writing manifest file 'src/greenlet.egg-info/SOURCES.txt'
  copying src/greenlet/TBrokenGreenlet.cpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
  copying src/greenlet/TExceptionState.cpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
  copying src/greenlet/TGreenlet.cpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
  copying src/greenlet/TGreenletGlobals.cpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
  copying src/greenlet/TMainGreenlet.cpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
  copying src/greenlet/TPythonState.cpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
  copying src/greenlet/TStackState.cpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
  copying src/greenlet/TThreadStateDestroy.cpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
  copying src/greenlet/TUserGreenlet.cpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
  copying src/greenlet/greenlet.cpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
  copying src/greenlet/greenlet.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
  copying src/greenlet/greenlet_allocator.hpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
  copying src/greenlet/greenlet_compiler_compat.hpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
  copying src/greenlet/greenlet_cpython_add_pending.hpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
  copying src/greenlet/greenlet_cpython_compat.hpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
  copying src/greenlet/greenlet_exceptions.hpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
  copying src/greenlet/greenlet_greenlet.hpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
  copying src/greenlet/greenlet_internal.hpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
  copying src/greenlet/greenlet_refs.hpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
  copying src/greenlet/greenlet_slp_switch.hpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
  copying src/greenlet/greenlet_thread_state.hpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
  copying src/greenlet/greenlet_thread_state_dict_cleanup.hpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
  copying src/greenlet/greenlet_thread_support.hpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
  copying src/greenlet/slp_platformselect.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet
  copying src/greenlet/platform/setup_switch_x64_masm.cmd -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/switch_aarch64_gcc.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/switch_alpha_unix.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/switch_amd64_unix.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/switch_arm32_gcc.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/switch_arm32_ios.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/switch_arm64_masm.asm -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/switch_arm64_masm.obj -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/switch_arm64_msvc.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/switch_csky_gcc.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/switch_loongarch64_linux.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/switch_m68k_gcc.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/switch_mips_unix.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/switch_ppc64_aix.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/switch_ppc64_linux.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/switch_ppc_aix.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/switch_ppc_linux.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/switch_ppc_macosx.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/switch_ppc_unix.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/switch_riscv_unix.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/switch_s390_unix.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/switch_sparc_sun_gcc.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/switch_x32_unix.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/switch_x64_masm.asm -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/switch_x64_masm.obj -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/switch_x64_msvc.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/switch_x86_msvc.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/platform/switch_x86_unix.h -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/platform
  copying src/greenlet/tests/_test_extension.c -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
  copying src/greenlet/tests/_test_extension_cpp.cpp -> build/lib.macosx-15.0-arm64-cpython-313/greenlet/tests
  running build_ext
  building 'greenlet._greenlet' extension
  creating build/temp.macosx-15.0-arm64-cpython-313/src/greenlet
  clang++ -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -I/private/var/folders/zk/3mjwt95x64l9hyn7q711m2xc0000gn/T/tmpuxzb9g9b/.venv/include<EMAIL_ADDRESS>-c src/greenlet/greenlet.cpp -o build/temp.macosx-15.0-arm64-cpython-313/src/greenlet/greenlet.o --std=gnu++11
  In file included from src/greenlet/greenlet.cpp:19:
  In file included from src/greenlet/greenlet_internal.hpp:20:
  In file included from src/greenlet/greenlet_greenlet.hpp:26:
  /opt/homebrew/opt/python@3.13/Frameworks/Python.framework/Versions/3.13/include/python3.13/internal/pycore_frame.h:8:4: error: "this header requires Py_BUILD_CORE define"
      8 | #  error "this header requires Py_BUILD_CORE define"
        |    ^
  In file included from src/greenlet/greenlet.cpp:19:
  In file included from src/greenlet/greenlet_internal.hpp:20:
  In file included from src/greenlet/greenlet_greenlet.hpp:26:
  In file included from /opt/homebrew/opt/python@3.13/Frameworks/Python.framework/Versions/3.13/include/python3.13/internal/pycore_frame.h:13:
  /opt/homebrew/opt/python@3.13/Frameworks/Python.framework/Versions/3.13/include/python3.13/internal/pycore_code.h:8:4: error: "this header requires Py_BUILD_CORE define"
      8 | #  error "this header requires Py_BUILD_CORE define"
        |    ^
  In file included from src/greenlet/greenlet.cpp:19:
  In file included from src/greenlet/greenlet_internal.hpp:20:
  In file included from src/greenlet/greenlet_greenlet.hpp:26:
  In file included from /opt/homebrew/opt/python@3.13/Frameworks/Python.framework/Versions/3.13/include/python3.13/internal/pycore_frame.h:13:
  In file included from /opt/homebrew/opt/python@3.13/Frameworks/Python.framework/Versions/3.13/include/python3.13/internal/pycore_code.h:11:
  /opt/homebrew/opt/python@3.13/Frameworks/Python.framework/Versions/3.13/include/python3.13/internal/pycore_lock.h:13:4: error: "this header requires Py_BUILD_CORE define"
     13 | #  error "this header requires Py_BUILD_CORE define"
        |    ^
  In file included from src/greenlet/greenlet.cpp:19:
  In file included from src/greenlet/greenlet_internal.hpp:20:
  In file included from src/greenlet/greenlet_greenlet.hpp:26:
  In file included from /opt/homebrew/opt/python@3.13/Frameworks/Python.framework/Versions/3.13/include/python3.13/internal/pycore_frame.h:13:
  In file included from /opt/homebrew/opt/python@3.13/Frameworks/Python.framework/Versions/3.13/include/python3.13/internal/pycore_code.h:12:
  /opt/homebrew/opt/python@3.13/Frameworks/Python.framework/Versions/3.13/include/python3.13/internal/pycore_backoff.h:9:4: error: "this header requires Py_BUILD_CORE define"
      9 | #  error "this header requires Py_BUILD_CORE define"
        |    ^
  In file included from src/greenlet/greenlet.cpp:19:
  In file included from src/greenlet/greenlet_internal.hpp:20:
  src/greenlet/greenlet_greenlet.hpp:104:9: error: unknown type name '_PyCFrame'
    104 |         _PyCFrame* cframe;
        |         ^
  src/greenlet/greenlet_greenlet.hpp:147:29: error: unknown type name '_PyCFrame'
    147 |         void set_new_cframe(_PyCFrame& frame) noexcept;
        |                             ^
  src/greenlet/greenlet_greenlet.hpp:660:17: error: cannot initialize object parameter of type 'const greenlet::Greenlet' with an expression of type 'const greenlet::UserGreenlet'
    660 |             if (this->started() || !this->_run_callable) {
        |                 ^~~~
  In file included from src/greenlet/greenlet.cpp:32:
  src/greenlet/TMainGreenlet.cpp:48:5: error: cannot initialize object parameter of type 'greenlet::Greenlet' with an expression of type 'greenlet::MainGreenlet'
     48 |     this->tp_clear();
        |     ^~~~
  src/greenlet/TMainGreenlet.cpp:93:9: error: cannot initialize object parameter of type 'const greenlet::Greenlet' with an expression of type 'greenlet::MainGreenlet'
     93 |         this->check_switch_allowed();
        |         ^~~~
  src/greenlet/TMainGreenlet.cpp:96:9: error: cannot initialize object parameter of type 'greenlet::Greenlet' with an expression of type 'greenlet::MainGreenlet'
     96 |         this->release_args();
        |         ^~~~
  src/greenlet/TMainGreenlet.cpp:100:32: error: cannot initialize object parameter of type 'greenlet::Greenlet' with an expression of type 'greenlet::MainGreenlet'
    100 |     switchstack_result_t err = this->g_switchstack();
        |                                ^~~~
  src/greenlet/TMainGreenlet.cpp:104:16: error: cannot initialize object parameter of type 'greenlet::Greenlet' with an expression of type 'greenlet::MainGreenlet'
    104 |         return this->on_switchstack_or_initialstub_failure(
        |                ^~~~
  src/greenlet/TMainGreenlet.cpp:125:22: error: cannot initialize object parameter of type 'greenlet::Greenlet' with an expression of type 'greenlet::MainGreenlet'
    125 |     return Greenlet::tp_traverse(visit, arg);
        |                      ^~~~~~~~~~~
  In file included from src/greenlet/greenlet.cpp:33:
  src/greenlet/TUserGreenlet.cpp:69:9: error: cannot initialize object parameter of type 'const greenlet::Greenlet' with an expression of type 'const greenlet::UserGreenlet'
     69 |     if (this->started()) {
        |         ^~~~
  src/greenlet/TUserGreenlet.cpp:100:22: error: cannot initialize object parameter of type 'greenlet::Greenlet' with an expression of type 'greenlet::UserGreenlet'
    100 |     return Greenlet::throw_GreenletExit_during_dealloc(current_thread_state);
        |                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  src/greenlet/TUserGreenlet.cpp:129:9: error: cannot initialize object parameter of type 'const greenlet::Greenlet' with an expression of type 'greenlet::UserGreenlet'
    129 |         this->check_switch_allowed();
        |         ^~~~
  src/greenlet/TUserGreenlet.cpp:132:9: error: cannot initialize object parameter of type 'greenlet::Greenlet' with an expression of type 'greenlet::UserGreenlet'
    132 |         this->release_args();
        |         ^~~~
  src/greenlet/TUserGreenlet.cpp:146:15: error: cannot initialize a variable of type 'Greenlet *' with an rvalue of type 'greenlet::UserGreenlet *'
    146 |     Greenlet* target = this;
        |               ^        ~~~~
  src/greenlet/TUserGreenlet.cpp:158:36: error: cannot initialize object parameter of type 'greenlet::Greenlet' with an expression of type 'greenlet::UserGreenlet'
    158 |                 target->args() <<= this->args();
        |                                    ^~~~
  fatal error: too many errors emitted, stopping now [-ferror-limit=]
  20 errors generated.
  error: command '/usr/bin/clang++' failed with exit code 1

  at /opt/homebrew/Cellar/poetry/1.8.4/libexec/lib/python3.13/site-packages/poetry/installation/chef.py:164 in _prepare
      160│
      161│                 error = ChefBuildError("\n\n".join(message_parts))
      162│
      163│             if error is not None:
    → 164│                 raise error from None
      165│
      166│             return path
      167│
      168│     def _prepare_sdist(self, archive: Path, destination: Path | None = None) -> Path:

Note: This error originates from the build backend, and is likely not a problem with poetry but with greenlet (3.0.3) not supporting PEP 517 builds. You can verify this by running 'pip wheel --no-cache-dir --use-pep517 "greenlet (==3.0.3)"'.

  - Installing matplotlib-inline (0.1.7)
  - Installing mdit-py-plugins (0.4.2)
  - Installing mypy-extensions (1.0.0)
  - Installing nodeenv (1.9.1)
  - Installing pexpect (4.9.0)
  - Installing prompt-toolkit (3.0.48)
  - Installing pydantic (2.9.2)
  - Installing pydata-sphinx-theme (0.15.4)
  - Installing pytest (8.3.3)
  - Installing python-dotenv (1.0.1)
  - Installing regex (2024.9.11)
  - Installing stack-data (0.6.3)
  - Installing tokenizers (0.20.1): Failed

  ChefBuildError

  Backend subprocess exited when trying to invoke build_wheel

  Running `maturin pep517 build-wheel -i /private/var/folders/zk/3mjwt95x64l9hyn7q711m2xc0000gn/T/tmplqbh9ypf/.venv/bin/python --compatibility off`
  🍹 Building a mixed python/rust project
  🔗 Found pyo3 bindings
  🐍 Found CPython 3.13 at /private/var/folders/zk/3mjwt95x64l9hyn7q711m2xc0000gn/T/tmplqbh9ypf/.venv/bin/python
  📡 Using build options features, bindings from pyproject.toml
  💻 Using `MACOSX_DEPLOYMENT_TARGET=11.0` for aarch64-apple-darwin by default
     Compiling proc-macro2 v1.0.86
     Compiling unicode-ident v1.0.13
     Compiling autocfg v1.4.0
     Compiling libc v0.2.159
     Compiling target-lexicon v0.12.16
     Compiling once_cell v1.20.1
     Compiling cfg-if v1.0.0
     Compiling memchr v2.7.4
     Compiling shlex v1.3.0
     Compiling crossbeam-utils v0.8.20
     Compiling cc v1.1.22
     Compiling fnv v1.0.7
     Compiling ident_case v1.0.1
     Compiling strsim v0.11.1
     Compiling num-traits v0.2.19
     Compiling portable-atomic v1.9.0
     Compiling serde v1.0.210
     Compiling smallvec v1.13.2
     Compiling lock_api v0.4.12
     Compiling aho-corasick v1.1.3
     Compiling pkg-config v0.3.31
     Compiling rayon-core v1.12.1
     Compiling either v1.13.0
     Compiling byteorder v1.5.0
     Compiling regex-syntax v0.8.5
     Compiling quote v1.0.37
     Compiling syn v2.0.79
     Compiling pyo3-build-config v0.21.2
     Compiling crossbeam-epoch v0.9.18
     Compiling parking_lot_core v0.9.10
     Compiling crossbeam-deque v0.8.5
     Compiling regex-automata v0.4.8
     Compiling darling_core v0.20.10
     Compiling onig_sys v69.8.1
     Compiling getrandom v0.2.15
     Compiling memoffset v0.9.1
     Compiling matrixmultiply v0.3.9
     Compiling pyo3-ffi v0.21.2
     Compiling scopeguard v1.2.0
     Compiling heck v0.4.1
     Compiling paste v1.0.15
     Compiling zerocopy-derive v0.7.35
     Compiling serde_derive v1.0.210
     Compiling darling_macro v0.20.10
     Compiling darling v0.20.10
     Compiling zerocopy v0.7.35
  error: failed to run custom build command for `pyo3-ffi v0.21.2`

  Caused by:
    process didn't exit successfully: `/private/var/folders/zk/3mjwt95x64l9hyn7q711m2xc0000gn/T/tmpsc_vzzhj/tokenizers-0.20.1/bindings/python/target/release/build/pyo3-ffi-13575824b7184c25/build-script-build` (exit status: 1)
    --- stdout
    cargo:rerun-if-env-changed=PYO3_CROSS
    cargo:rerun-if-env-changed=PYO3_CROSS_LIB_DIR
    cargo:rerun-if-env-changed=PYO3_CROSS_PYTHON_VERSION
    cargo:rerun-if-env-changed=PYO3_CROSS_PYTHON_IMPLEMENTATION
    cargo:rerun-if-env-changed=PYO3_PRINT_CONFIG
    cargo:rerun-if-env-changed=PYO3_USE_ABI3_FORWARD_COMPATIBILITY

    --- stderr
    error: the configured Python interpreter version (3.13) is newer than PyO3's maximum supported version (3.12)
    = help: please check if an updated version of PyO3 is available. Current version: 0.21.2
    = help: set PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 to suppress this check and build anyway using the stable ABI
  warning: build failed, waiting for other jobs to finish...
  💥 maturin failed
    Caused by: Failed to build a native library through cargo
    Caused by: Cargo build finished with "exit status: 101": `env -u CARGO MACOSX_DEPLOYMENT_TARGET="11.0" PYO3_ENVIRONMENT_SIGNATURE="cpython-3.13-64bit" PYO3_PYTHON="/private/var/folders/zk/3mjwt95x64l9hyn7q711m2xc0000gn/T/tmplqbh9ypf/.venv/bin/python" PYTHON_SYS_EXECUTABLE="/private/var/folders/zk/3mjwt95x64l9hyn7q711m2xc0000gn/T/tmplqbh9ypf/.venv/bin/python" "cargo" "rustc" "--features" "pyo3/extension-module" "--message-format" "json-render-diagnostics" "--manifest-path" "/private/var/folders/zk/3mjwt95x64l9hyn7q711m2xc0000gn/T/tmpsc_vzzhj/tokenizers-0.20.1/bindings/python/Cargo.toml" "--release" "--lib" "--" "-C" "link-arg=-undefined" "-C" "link-arg=dynamic_lookup" "-C"<EMAIL_ADDRESS>  Error: command ['maturin', 'pep517', 'build-wheel', '-i', '/private/var/folders/zk/3mjwt95x64l9hyn7q711m2xc0000gn/T/tmplqbh9ypf/.venv/bin/python', '--compatibility', 'off'] returned non-zero exit status 1

  at /opt/homebrew/Cellar/poetry/1.8.4/libexec/lib/python3.13/site-packages/poetry/installation/chef.py:164 in _prepare
      160│
      161│                 error = ChefBuildError("\n\n".join(message_parts))
      162│
      163│             if error is not None:
    → 164│                 raise error from None
      165│
      166│             return path
      167│
      168│     def _prepare_sdist(self, archive: Path, destination: Path | None = None) -> Path:

Note: This error originates from the build backend, and is likely not a problem with poetry but with tokenizers (0.20.1) not supporting PEP 517 builds. You can verify this by running 'pip wheel --no-cache-dir --use-pep517 "tokenizers (==0.20.1)"'.

  - Installing types-beautifulsoup4 (<IP_ADDRESS>40907)
  - Installing virtualenv (20.26.6)
(venv) kamaleshseervi@Kamaleshs-MacBook-Pro gptme %

yeh fine I will downgrade and work around cool thanks for quick response

I implemented something basic here: https://github.com/ErikBjare/gptme/pull/293

Fixed in https://github.com/ErikBjare/gptme/pull/293


Docs: Improve the GSOC logo for both light and dark mode

what's wrong in the documentation?
This logo does not seems to be perfect for the light mode

I wish to improve it for both light and dark mode like

For light mode

For dark mode

Pls assign me this issue under GSSoC'23 .I'm a GSSoC'23 contributor
Add screenshots
added
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSoC'23 contributor
[X] I want to work on this issue

ig it's unnecessary


Announcement push notifications

This PR does not yet handle loading in announcement notifications. We'll need to add that in once the announcement stuff is baked.

Do we need to add the setting to the store/schema too?

(cc @justin-holmes)

Great catch @jayzes, we definitely do.

@jayzes / @Justin-Holmes - Is the announcement push notification PR up on any staging servers for me to verify? I'm checking for the notify_of_annnouncements_via_push property in https://github.com/ello/ello/pull/1897/files#diff-39382771bce66dbb2411e857dfe2c7be

@steam Pushing that up at to stage2 right now, so it should be up in a few.

Turns out none of this is needed. We changed the structure of the announcement push notifications server side. 🎉
No code is the best code.

JUUUUUUUST Kidding. We do need the settings for announcement push notifications. Thankfully @jayzes remembers this, over and over again. Because I certainly don't for some reason. The PR should be good to go now.

~No~Some code is the best code.


JIT is not working in a Vite - React project

What version of @tailwindcss/jit are you using?
0.1.17
What version of Node.js are you using?
v14.16.0
What build tool (or framework if it abstracts the build tool) are you using?
postcss: "8.2.8", react: "17.0.0", vite: "^2.1.3"
What browser are you using?
Chrome
What operating system are you using?
Windows
Reproduction repository
https://github.com/carlitorweb/react-burger
Variants like focus-visible, active, disabled, and others do not work. Not even the Tailwind IntelliSense autocomplete (have the last version of it).
Styles generated on demand do not work too. Something like shadow-[inset -15px 0 #c15711] or others similar do not make the job.
The repo I listed here, was working with the follow config:
module.exports = {
  purge: ["./src/**/*.{js,jsx,ts,tsx}", "./public/index.html"],
  darkMode: false, // or 'media' or 'class'
  theme: {
    extend: {
      transitionProperty: {
        height: "height",
      },
      fontFamily: {
        sans: ["Open Sans", "sans-serif", ...defaultTheme.fontFamily.sans],
      },
      maxWidth: {
        "1/4": "25%",
        "1/2": "50%",
        "3/4": "75%",
      },
      height: {
        "1/8": "13%",
        "1/12": "8%",
        "1/14": "7%",
        "1/22": "4.5%",
        "1/30": "3%",
        120: "400px",
      },
      width: {
        "1/10": "10%",
        "9/10": "90%",
        "6/7": "85%",
        150: "500px",
      },
      boxShadow: {
        inner2: "inset -15px 0 #c15711",
        inner3: "inset -2px -3px #c9c9c9",
        inner4: "inset -3px 0 #c9c9c9",
      },
      margin: {
        "1/45auto": "2% auto",
      },
      borderRadius: {
        "1/2": "50%",
        "2/5": "40%",
      },
      rotate: {
        "-20": "-20deg",
        10: "10deg",
      },
      colors: {
        cheese: {
          light: "#f4d004",
          DEFAULT: "#e9c917",
          dark: "#d6bb22",
        },
        toolbar: "#703B09",
        navigationLink: "#8F5C2C",
      },
    },
  },
  variants: {
    extend: {
      backgroundColor: ["active", "disabled"],
      outline: ["active"],
      cursor: ["disabled"],
      borderColor: ["active"],
    },
  },
  plugins: [],
};

Fresh start
I created a new project with Vite for react, and just copy the src folder to there. The project work good, just the new JIT is not working in my case.
Not sure what I doing wrong, even when the setting are pretty simple to do/follow.

I see similar behaviour with Vite (and Vue in my case).
It's as if "certain" classes are there, but 99% of them are not (see screenshot for example):

border and rounded (as well as the paddings) are both built-ins, but only rounded seems to make it.
Not sure what the reason is, but let me know if I can assist by providing some sort of outputs/logs.

Similar https://github.com/tailwindlabs/tailwindcss-jit/issues/202


Not compatible with chai v4

This code:
import chai = require("chai");
import { expect } from 'chai';
import chaiIterator = require("chai-iterator");

chai.use(chaiIterator);

expect([2, 3, 5]).to.iterate.for.lengthOf(3);

Throws the following error.
AssertionError: expected undefined to be iterable

Here is a repo with reproduction: https://github.com/nunof07/chai-iterator-test
Can't quite figure out is going wrong. _obj is undefined in Assertion.addProperty.

After some testing I think it's because I'm using chai v4.
This plugin doesn't seem compatible with the latest chai version.

I have looked a bit into this, something breaks in chai when the to property is accessed but it only breaks when using the plugin. Here is an example:
https://runkit.com/harrysarson/chai-to-does-not-work-with-chai-iterator
Will look into this a bit more in a bit.

The problem is that the chainable method lengthOf is overwritten using overwriteMethod instead of overwriteChainableMethod.
I will make a pr.


send intro email to IOL2 fellows

to include via the IOL2 google group:

location of hotel
link to generic visa letter
info about insurance and medical
ask them to tell us about food restrictions now
ask them to introduce themselves on the list
note that we're going to do a blog post on Thursday, Dec 3
info about the open textbook summit

@cablegreen is this everything?

Yep - I think that should cover it.

sent Tues, Dec 1


Further Ideas of improving efficiency of Overflow Check Chip

As part of this PR, a lot of relative rotations were removed. As a consequence of that the performance of the circuit improved drammatically. Proving time went from 1 sec to 250 ms while proving size went from 10k bytes to 2500 bytes. (+75%)
Right now the only remaining area inside our stack that performs a lot of relative rotation is within the 'equality check between decomposed_value and value' gate
                // We are performing an important calculation here to check for overflow in finite field numbers.
                // A single range table is utilized which applies `1 << MAX_BITS` to decompose the column 'b' for range checking.
                //
                // the decomposed values would be represented as follows:
                //
                // |     | a (value)   | b    |
                // |-----|-------------|------|
                // |  0  | 0x1f2f3f    | 0x1f |
                // |  1  |             | 0x2f |
                // |  2  |             | 0x3f |
                //
                // Here, each column `b_n` represents a decomposed value.
                // So, decomposed_value_sum would be calculated as b_0 * 2^16 + b_1 * 2^8 + b_2 * 1
                //
                // During the iteration process in fold, the following would be the values of `acc`:
                // iteration 0: acc = decomposed_value_vec[1] * ( 1 << 8 ) + decomposed_value_vec[2]
                // iteration 1: acc = decomposed_value_vec[0] * ( 1 << 16 ) + decomposed_value_vec[1] * ( 1 << 8 ) + decomposed_value_vec[2]

An idea coming from Han is "usually when dealing with large integer range check, we'll try to accumulate chunks by chunks and check the final sum is correct, like this gadget https://github.com/zcash/halo2/blob/main/halo2_gadgets/src/utilities/decompose_running_sum.rs#L55. This might help reduce the rotation usage (it only needs rotation to next row)".

row
a (value)
b(decomposed value)

0
0x1f2f3f4f
-

1
0x00
0x4f

2
0x4f
0x3x

3
0x3f4f
0x2f

4
0x2f3f4f
0x1f

5
0x1f2f3f4f
-

This approach involves modifying the gate a bit. At every row, it would be necessary to check whether
a(cur) + b(cur) * (1 << (i*8)) ) = a(next)

Where a is the accumulated sum.
Where i is 0 at iteration 0.
iteration 0: 0x00 + 0x4f * (1<<0) = 0x4f
iteration 1: 0x4f + 0x3f * (1<<8) = 0x3f4f
iteration 2: 0x3f4f + 0x2f * (1<<16) = 0x2f3f4f
iteration 3: 0x2f3f4f + 0x1f * (1<<32) = 0x1f2f3f4f

Furthermore a copy constraint must be enforced between the entry value a_0 and the accumulated value at the end of the iteration a_5
Open Topic

Note that I move it to little endian, it's just more intuitive to me but not necessary at all

Jin> Might be more efficient with big edian, like

row
a (value)
b(decomposed value)

0
0x1f2f3f4f
0x1f

1
0x2f3f4f
0x2f

2
0x3f4f
0x3f

3
0x4f
0x4f

4
0x00

iteration 0: 0x2f3f4f + 0x1f * (1<<32) = 0x1f2f3f4f
iteration 1: 0x3f4f + 0x2f * (1<<16) = 0x2f3f4f
iteration 2: 0x4f + 0x3f * (1<<8) = 0x3f4f
iteration 3: 0x4f + 0x0 = 0x4f

Are we missing any constraint here? Is there any security issue here?

Jin> I think we should check zero value at a_1, or a_4 (on the big edian case)

Tradeoff
As tradeoff, this modification will remove one large custom gate of high degree with a set of smaller ones. Furthermore a constant check on the zero value should be added

Except first iteration, There is one of two overflow checks that is not necessary in this section:
https://github.com/summa-dev/summa-solvency/blob/eee534af6311d89b9c91c36d27f1542bbffa5909/zk_prover/src/circuits/merkle_sum_tree.rs#L236-L252
Above level 1 in the tree, we don't need to check overflow for current_balance because it's computed sum above level 1
We only need leaf_balances and path_elements_balances. so we can achieve with adding condition with swap_bits like one below
Above level 1 in the tree, we don't need to check for overflow in current_balance because it's a sum of balance above level 1. We only need to check leaf_balances and path_elements_balances.
We can achieve this by adding a condition with swap_bits like this:
                let mut swap_bit = Fp::zero();
                swap_bit_level.value().copied().map(|x| swap_bit = x);

                if swap_bit == Fp::zero() {
                    overflow_check_chip.assign(
                        layouter.namespace(|| {
                            format!(
                                "{}: asset {}: overflow check next balance",
                                namespace_prefix, asset
                            )
                        }),
                        &right_balance,
                    )?;
                } else {
                    overflow_check_chip.assign(
                        layouter.namespace(|| {
                            format!(
                                "{}: asset {}: overflow check next balance",
                                namespace_prefix, asset
                            )
                        }),
                        &left_balance,
                    )?;
                }

This adjustment will eliminate unnecessary overflow checks and could optimize the code.

Hi @sifnoc. I agree with your point on a theoretical level. Indeed if we ensure that leaf_balances and path_elements_balances are within the desired range of 248 BITS (for example) we also prevent the next balances will never overflow the modulus prime which is 254 BITS. The issue I see with such approach is that we no longer have control over the range of the computed_sum. For example, let's consider that we perform the 248 bits range check on leaf_balances and path_elements_balances[0]. As soon as we sum it together to get next_balance, this value can be greater 248 BITS or 249 BITS. This is a problem, for example when using the LtChip which requires to specify the range in which lhs and rhs lie.
Considered so, I would actually suggest to reintroduce the overflow check over the root balances too.
Furthermore, on an implementation level, I don't think if it's technically possible to define conditional circuit assignment as all the polynomial relationship should be known at key generation time (before witness generation)


Add Custom Titles in profile

Honestly, I want @supersoniko to see this, as he was the one WHO designed the customtitle command.

hehe make sure to add appropriate credits next time ^^'

Sorry, I didn't found any credits! D: I'll ask next time ^^'

Yeah I didn't implement it myself yet to wisp because the code is kinda gross


Change Titles on All Pages

Site looks great, but it looks like pages other than the index.html page have the wrong title.

That's right I forgot to change the other pages. I'll take care of it right away.


Slow while loading equation type content.(MathML) in android

How to make it fast in loading MathML equations in android .It taking so many time to load in android webview.Please reply

Still not


🐛 .github: secure github actions

Set top-level permissions to read, allowing write only where necessary.
Pin actions by a sha.

/test-ubuntu-integration-main


Reduce clone calls

Current dependencies on/for this PR:

main

PR #3793   👈

This comment was auto-generated by Graphite.


Using easylogging++ in static library possibly breaks build of application

I want to use easylogging++ in a static libary.
The problem is where to call
_INITIALIZE_EASYLOGGINGPP

I don't want the user of my library to care about which logging I use but it should still be possible to use easylogging++ within the application of the user.
Even if i just use easylogging hidden within the libery code due to the export statements the compilation of an application will break if its using easylogging as well and of course calling the _INITIALIZE_EASYLOGGINGPP macro.
Is there a best practise how to use easylogging++ silently without breaking others code?
In the example on https://github.com/easylogging/easyloggingpp/tree/master/samples/STL/shared-static-libs its of course working like charm as no other lib or the application itself is using easylogging.
If anyway the user would like to use easyloggin within the application (nnot knowing of course its being used within the library) the build will break as the library is binded statically to the application and thus the _INITIALIZE_EASYLOGGINGPP macro is called twice (or more if there are any more libs using the logging framework silently)
Why don't implement a kind of "call once guard" into _INITIALIZE_EASYLOGGINGPP?
Regards,
Flowkap

I've took the effort to reproduce this possible bug.
Sample code is available here (I used existing sample code).
I've checked these four situations:

two static libraries using easyloggingpp internally
two shared libraries using easyloggingpp internally
static library and client both using easyloggingpp
shared library and client both using easyloggingpp

Compiling and running succeeded only for case 2. In other cases I got compilation errors (cases 1. and 3.) or crash during main execution (case 4.).

I am encoutering the same problem. I am wondering whether there is a solution to this. In our application, we are using a lot of shared libraries. It is impossible to apply the current Easylogging++ in the individual object files that will be compiled into the shared library, since without the call of "INITIALIZE_EASYLOGGINGPP" the linking of shared library will fail.

I've encountered a similar issue.
My working around was this: make sure INITIALIZE_EASYLOGGINGPP appears EXACTLY ONCE in the entirety of your application (as stated in the readme). This doesn't solve the problem though because it still doesn't let me use ELPP silently in a library without disrupting a client library that uses my library.
So if you have a dependency tree like this: StaticLibA -> ClientA. Where StaticLibA uses ELPP. Then you must make sure ClientA has INITIALIZE_EASYLOGGINGPP somewhere in it. But not StaticLibA. StaticLibA can have #include easylogging++.h but it shouldn't have INITIALIZE_EASYLOGGINGPP.
@mkhan3189, what was the motivation behind INITIALIZE_EASYLOGGINGPP? What does it do? Why must it only appear once?

hi @dassie the purpose of this is to assign some extern variables that are used across the library - this is so that we assign them in the beginning and re-use them.
what you are looking for is using INITIALIZE_SHARED_LOGGING
see https://github.com/mkhan3189/project-islam/blob/master/extensions/al-quran/al_quran.cc for example
This project is discontinued but it uses easylogging++ extensively. you can see i initialized easylogging++ once in https://github.com/mkhan3189/project-islam/blob/master/main.cc (it uses old macro name starting with underscore but it's only name, the underlying functionality is same) and did not re-assign it anywhere. Each extension is a library (based on Qt API)

I am experiencing the same issue. I can not find a proper macro to use that will let me compile my project. I keep getting linker errors

I'm still encounting this issue, I'm in situation#4, a shared library used easylogging, and I tried to use this shared lib in my app, but failed with segment fault during running the app.


Incorrect link on https://github.com/dotnet/core/blob/master/release-notes/download-archive.md

On the page https://github.com/dotnet/core/blob/master/release-notes/download-archive.md , in ".NET Core 2.0", the ""download" link of "2018/05/08 | 2.0.7 with SDK 2.1.200" is broken. Links to https://github.com/dotnet/core/blob/master/release-notes/download-archives/2.1.200-sdk-download but this gives a 404.

@leecow

Fixed with https://github.com/dotnet/core/commit/aedc86a1963cafd6228a455c3880a02ab25d8901


Update Minder badge to alpha

Linked to  https://github.com/stacklok/minder-frontend/pull/543

Designs: https://www.figma.com/file/pgzmwSmUHuARvwHCsakfn5/Minder-%2F-Apr-2024?type=design&node-id=7478%3A54599&mode=design&t=0qKzFnH6G2L4CH7e-1


fix: added data block validation

Description
Added data block validation for SRV, CAA, LOC type of dns records.
https://github.ibm.com/GoldenEye/issues/issues/5721

Release required?

[ ] No release
[ ] Patch release (x.x.X)
[x] Minor release (x.X.x)
[ ] Major release (X.x.x)

Release notes content

Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

Merge actions for mergers

When merging, use a relevant conventional commit message that is based on the PR contents and any release notes provided by the PR author. The commit message determines whether a new version of the module is needed, and if so, which semver increment to use (major, minor, or patch).
Merge by using "Squash and merge".

/run pipeline

/run pipeline

/run pipeline

/run pipeline

@iamar7 I changed release from minor to patch. Please add appropriate release notes. Thanks

/run pipeline

/run pipeline

:tada: This PR is included in version 1.2.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket: