Build pantalaimon for docker on raspberry pi 4 openssl gcc errror.

Describe the bug
openssl encryption wheel failing to build pantalaimon while using Docker on armhf based distro.
To Reproduce
Steps to reproduce the behavior:

Get your raspi out with rasbian
Clone pantalaimon with git
Run the docker build command from the readme.md
Wait until it gets to building the wheels.
See error

Expected behavior
To build without problems.
Desktop (please complete the following information):

OS: rasbian

Additional context
Using the same exact commands built and ran just fine on my manjaro X86 desktop.

Error message
  Building wheel for cryptography (PEP 517): started
  Building wheel for cryptography (PEP 517): finished with status 'error'
  ERROR: Command errored out with exit status 1:
   command: /usr/local/bin/python /usr/local/lib/python3.8/site-packages/pip/_vendor/pep517/_in_process.py build_wheel /tmp/tmpiuapdt_0
       cwd: /tmp/pip-wheel-ttnk1y45/cryptography
  Complete output (137 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-armv7l-3.8
  creating build/lib.linux-armv7l-3.8/cryptography
  copying src/cryptography/exceptions.py -> build/lib.linux-armv7l-3.8/cryptography
  copying src/cryptography/fernet.py -> build/lib.linux-armv7l-3.8/cryptography
  copying src/cryptography/utils.py -> build/lib.linux-armv7l-3.8/cryptography
  copying src/cryptography/__init__.py -> build/lib.linux-armv7l-3.8/cryptography
  copying src/cryptography/__about__.py -> build/lib.linux-armv7l-3.8/cryptography
  creating build/lib.linux-armv7l-3.8/cryptography/x509
  copying src/cryptography/x509/oid.py -> build/lib.linux-armv7l-3.8/cryptography/x509
  copying src/cryptography/x509/ocsp.py -> build/lib.linux-armv7l-3.8/cryptography/x509
  copying src/cryptography/x509/certificate_transparency.py -> build/lib.linux-armv7l-3.8/cryptography/x509
  copying src/cryptography/x509/base.py -> build/lib.linux-armv7l-3.8/cryptography/x509
  copying src/cryptography/x509/name.py -> build/lib.linux-armv7l-3.8/cryptography/x509
  copying src/cryptography/x509/general_name.py -> build/lib.linux-armv7l-3.8/cryptography/x509
  copying src/cryptography/x509/extensions.py -> build/lib.linux-armv7l-3.8/cryptography/x509
  copying src/cryptography/x509/__init__.py -> build/lib.linux-armv7l-3.8/cryptography/x509
  creating build/lib.linux-armv7l-3.8/cryptography/hazmat
  copying src/cryptography/hazmat/_der.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat
  copying src/cryptography/hazmat/_oid.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat
  copying src/cryptography/hazmat/__init__.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat
  creating build/lib.linux-armv7l-3.8/cryptography/hazmat/bindings
  copying src/cryptography/hazmat/bindings/__init__.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/bindings
  creating build/lib.linux-armv7l-3.8/cryptography/hazmat/backends
  copying src/cryptography/hazmat/backends/interfaces.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends
  copying src/cryptography/hazmat/backends/__init__.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends
  creating build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives
  copying src/cryptography/hazmat/primitives/poly1305.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives
  copying src/cryptography/hazmat/primitives/hashes.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives
  copying src/cryptography/hazmat/primitives/keywrap.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives
  copying src/cryptography/hazmat/primitives/hmac.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives
  copying src/cryptography/hazmat/primitives/padding.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives
  copying src/cryptography/hazmat/primitives/cmac.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives
  copying src/cryptography/hazmat/primitives/__init__.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives
  copying src/cryptography/hazmat/primitives/constant_time.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives
  creating build/lib.linux-armv7l-3.8/cryptography/hazmat/bindings/openssl
  copying src/cryptography/hazmat/bindings/openssl/binding.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/bindings/openssl
  copying src/cryptography/hazmat/bindings/openssl/__init__.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/bindings/openssl
  copying src/cryptography/hazmat/bindings/openssl/_conditional.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/bindings/openssl
  creating build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
  copying src/cryptography/hazmat/backends/openssl/x448.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
  copying src/cryptography/hazmat/backends/openssl/dh.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
  copying src/cryptography/hazmat/backends/openssl/decode_asn1.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
  copying src/cryptography/hazmat/backends/openssl/ciphers.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
  copying src/cryptography/hazmat/backends/openssl/aead.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
  copying src/cryptography/hazmat/backends/openssl/dsa.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
  copying src/cryptography/hazmat/backends/openssl/ocsp.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
  copying src/cryptography/hazmat/backends/openssl/x509.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
  copying src/cryptography/hazmat/backends/openssl/ed448.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
  copying src/cryptography/hazmat/backends/openssl/poly1305.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
  copying src/cryptography/hazmat/backends/openssl/hashes.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
  copying src/cryptography/hazmat/backends/openssl/ec.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
  copying src/cryptography/hazmat/backends/openssl/hmac.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
  copying src/cryptography/hazmat/backends/openssl/encode_asn1.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
  copying src/cryptography/hazmat/backends/openssl/backend.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
  copying src/cryptography/hazmat/backends/openssl/rsa.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
  copying src/cryptography/hazmat/backends/openssl/cmac.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
  copying src/cryptography/hazmat/backends/openssl/x25519.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
  copying src/cryptography/hazmat/backends/openssl/utils.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
  copying src/cryptography/hazmat/backends/openssl/__init__.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
  copying src/cryptography/hazmat/backends/openssl/ed25519.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl
  creating build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric
  copying src/cryptography/hazmat/primitives/asymmetric/x448.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric
  copying src/cryptography/hazmat/primitives/asymmetric/dh.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric
  copying src/cryptography/hazmat/primitives/asymmetric/dsa.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric
  copying src/cryptography/hazmat/primitives/asymmetric/ed448.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric
  copying src/cryptography/hazmat/primitives/asymmetric/ec.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric
  copying src/cryptography/hazmat/primitives/asymmetric/padding.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric
  copying src/cryptography/hazmat/primitives/asymmetric/rsa.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric
  copying src/cryptography/hazmat/primitives/asymmetric/x25519.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric
  copying src/cryptography/hazmat/primitives/asymmetric/utils.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric
  copying src/cryptography/hazmat/primitives/asymmetric/__init__.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric
  copying src/cryptography/hazmat/primitives/asymmetric/ed25519.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric
  creating build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/twofactor
  copying src/cryptography/hazmat/primitives/twofactor/totp.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/twofactor
  copying src/cryptography/hazmat/primitives/twofactor/hotp.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/twofactor
  copying src/cryptography/hazmat/primitives/twofactor/utils.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/twofactor
  copying src/cryptography/hazmat/primitives/twofactor/__init__.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/twofactor
  creating build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/serialization
  copying src/cryptography/hazmat/primitives/serialization/pkcs7.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/serialization
  copying src/cryptography/hazmat/primitives/serialization/base.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/serialization
  copying src/cryptography/hazmat/primitives/serialization/pkcs12.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/serialization
  copying src/cryptography/hazmat/primitives/serialization/__init__.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/serialization
  copying src/cryptography/hazmat/primitives/serialization/ssh.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/serialization
  creating build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/ciphers
  copying src/cryptography/hazmat/primitives/ciphers/modes.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/ciphers
  copying src/cryptography/hazmat/primitives/ciphers/aead.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/ciphers
  copying src/cryptography/hazmat/primitives/ciphers/base.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/ciphers
  copying src/cryptography/hazmat/primitives/ciphers/algorithms.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/ciphers
  copying src/cryptography/hazmat/primitives/ciphers/__init__.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/ciphers
  creating build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/kdf
  copying src/cryptography/hazmat/primitives/kdf/scrypt.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/kdf
  copying src/cryptography/hazmat/primitives/kdf/concatkdf.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/kdf
  copying src/cryptography/hazmat/primitives/kdf/pbkdf2.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/kdf
  copying src/cryptography/hazmat/primitives/kdf/hkdf.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/kdf
  copying src/cryptography/hazmat/primitives/kdf/kbkdf.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/kdf
  copying src/cryptography/hazmat/primitives/kdf/__init__.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/kdf
  copying src/cryptography/hazmat/primitives/kdf/x963kdf.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/kdf
  running egg_info
  writing src/cryptography.egg-info/PKG-INFO
  writing dependency_links to src/cryptography.egg-info/dependency_links.txt
  writing requirements to src/cryptography.egg-info/requires.txt
  writing top-level names to src/cryptography.egg-info/top_level.txt
  reading manifest file 'src/cryptography.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  no previously-included directories found matching 'docs/_build'
  warning: no previously-included files found matching 'vectors'
  warning: no previously-included files matching '*' found under directory 'vectors'
  warning: no previously-included files found matching '.travis.yml'
  warning: no previously-included files found matching '.travis'
  warning: no previously-included files matching '*' found under directory '.travis'
  warning: no previously-included files matching '*' found under directory '.github'
  warning: no previously-included files found matching 'release.py'
  warning: no previously-included files found matching '.coveragerc'
  warning: no previously-included files found matching 'codecov.yml'
  warning: no previously-included files found matching 'dev-requirements.txt'
  warning: no previously-included files found matching 'rtd-requirements.txt'
  warning: no previously-included files found matching 'tox.ini'
  warning: no previously-included files matching '*' found under directory '.zuul.d'
  warning: no previously-included files matching '*' found under directory '.zuul.playbooks'
  writing manifest file 'src/cryptography.egg-info/SOURCES.txt'
  running build_ext
  generating cffi module 'build/temp.linux-armv7l-3.8/_padding.c'
  creating build/temp.linux-armv7l-3.8
  generating cffi module 'build/temp.linux-armv7l-3.8/_openssl.c'
  building '_openssl' extension
  creating build/temp.linux-armv7l-3.8/build
  creating build/temp.linux-armv7l-3.8/build/temp.linux-armv7l-3.8
  gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/usr/local/include/python3.8 -c build/temp.linux-armv7l-3.8/_openssl.c -o build/temp.linux-armv7l-3.8/build/temp.linux-armv7l-3.8/_openssl.o -Wconversion -Wno-error=sign-conversion
  build/temp.linux-armv7l-3.8/_openssl.c:575:10: fatal error: openssl/opensslv.h: No such file or directory
   #include
            ^~~~~~~~~~~~~~~~~~~~
  compilation terminated.
  error: command 'gcc' failed with exit status 1
  ----------------------------------------
  ERROR: Failed building wheel for cryptography
  Building wheel for pyrsistent (setup.py): started
  Building wheel for pyrsistent (setup.py): finished with status 'done'
  Created wheel for pyrsistent: filename=pyrsistent-0.17.3-cp38-cp38-linux_armv7l.whl size=68191 sha256=baafb8bd804d33109d7460623be783893b00859f128f0b07bb76434f99a397c5
  Stored in directory: /root/.cache/pip/wheels/3d/22/08/7042eb6309c650c7b53615d5df5cc61f1ea9680e7edd3a08d2
Successfully built pantalaimon aiohttp logbook peewee multidict yarl pycryptodome future python-olm pyrsistent
Failed to build cryptography
ERROR: Failed to build one or more wheels
The command '/bin/sh -c pip wheel . --wheel-dir /wheels --find-links /wheels' returned a non-zero code: 1

That's an error in the OpenSSL package and I have no idea why that is failing, the OpenSSL package might have prebuild binary wheels for X86 but not ARM, perhaps some header files for OpenSSL are needed to make the build succeed.

This is weird, I have built it today (arm64) and I didn't run into that issue.
But I use archlinuxarm and I have set up a docker-compose file, so I don't have to redo the commands.
Here is the part where wheels is being build, if that helps in any way:
Building wheels for collected packages: pantalaimon, logbook, peewee, future, python-olm, pyrsistent
  Building wheel for pantalaimon (setup.py): started
  Building wheel for pantalaimon (setup.py): finished with status 'done'
  Created wheel for pantalaimon: filename=pantalaimon-0.8.0-py3-none-any.whl size=45992 sha256=3152933b7787713ecd88e88d898b71f0caf764e3d0dec7647419e1fc3f8e30d7
  Stored in directory: /tmp/pip-ephem-wheel-cache-r9bgwr_8/wheels/40/5d/89/f38b7a58cbc6f6bdff423c409ca06a097d4abae527d8c17f06
  Building wheel for logbook (setup.py): started
  Building wheel for logbook (setup.py): finished with status 'done'
  Created wheel for logbook: filename=Logbook-1.5.3-cp38-cp38-linux_aarch64.whl size=66381 sha256=56c466f9b616bddf4a416de8c1d9246a3de8ea15fe23112b06d28d841733e99a
  Stored in directory: /root/.cache/pip/wheels/25/9a/c0/03bf368ac5f673e9c0bde58837146b004424b25555ca3aedfb
  Building wheel for peewee (setup.py): started
  Building wheel for peewee (setup.py): finished with status 'done'
  Created wheel for peewee: filename=peewee-3.14.0-py3-none-any.whl size=128142 sha256=7dcbf12e8c726fc21ffbfdba119c0b4ad77773330cd16712eaa7c5bb3819eb1b
  Stored in directory: /root/.cache/pip/wheels/f9/0c/4f/37984c77779105edbafffd114ac40820bfa4f1f1bf9ff6ed57
  Building wheel for future (setup.py): started
  Building wheel for future (setup.py): finished with status 'done'
  Created wheel for future: filename=future-0.18.2-py3-none-any.whl size=491059 sha256=9ac9bd61bb2c687baa0d61c92f58fd16bcb2086c6a346d2d2680d4dde397f95b
  Stored in directory: /root/.cache/pip/wheels/8e/70/28/3d6ccd6e315f65f245da085482a2e1c7d14b90b30f239e2cf4
  Building wheel for python-olm (setup.py): started
  Building wheel for python-olm (setup.py): finished with status 'done'
  Created wheel for python-olm: filename=python_olm-3.1.3-cp38-cp38-linux_aarch64.whl size=47601 sha256=8cfd5021360b8a344fafa257ac74eac74c37b3b87fc94aebaa9946c2037bec27
  Stored in directory: /root/.cache/pip/wheels/1c/a0/53/ea4c79f60693fcef0951216bb94ee25545632e686403fbb438
  Building wheel for pyrsistent (setup.py): started
  Building wheel for pyrsistent (setup.py): finished with status 'done'
  Created wheel for pyrsistent: filename=pyrsistent-0.17.3-cp38-cp38-linux_aarch64.whl size=71601 sha256=d73901b4d47a711ca2fc5ae91181291f2182a11c9568d656761695a4670a3f91
  Stored in directory: /root/.cache/pip/wheels/3d/22/08/7042eb6309c650c7b53615d5df5cc61f1ea9680e7edd3a08d2
Successfully built pantalaimon logbook peewee future python-olm pyrsistent
Removing intermediate container f8975a76d25f
 ---> 299bffdc9616

Step 9/16 : FROM python:3.8-slim-buster AS run
 ---> de695ed9e8c4
Step 10/16 : COPY --from=builder /usr/lib/libolm* /usr/lib/
 ---> 2d3f399c2bf0
Step 11/16 : COPY --from=builder /wheels /wheels
 ---> a871a7ea0d23
Step 12/16 : WORKDIR /app
 ---> Running in 824b288405f8
Removing intermediate container 824b288405f8
 ---> 17ba3e92842c
Step 13/16 : RUN pip --no-cache-dir install --find-links /wheels --no-index pantalaimon
 ---> Running in 27688fc3e52c
Looking in links: /wheels
Processing /wheels/pantalaimon-0.8.0-py3-none-any.whl
Processing /wheels/matrix_nio-0.15.2-py3-none-any.whl
Processing /wheels/peewee-3.14.0-py3-none-any.whl
Processing /wheels/aiohttp-3.7.3-cp38-cp38-manylinux2014_aarch64.whl
Processing /wheels/attrs-20.3.0-py2.py3-none-any.whl
Processing /wheels/cachetools-4.1.1-py3-none-any.whl
Processing /wheels/click-7.1.2-py2.py3-none-any.whl
Processing /wheels/Logbook-1.5.3-cp38-cp38-linux_aarch64.whl
Processing /wheels/keyring-21.5.0-py3-none-any.whl
Processing /wheels/janus-0.6.1-py3-none-any.whl
Processing /wheels/appdirs-1.4.4-py2.py3-none-any.whl
Processing /wheels/aiofiles-0.4.0-py3-none-any.whl
Processing /wheels/jsonschema-3.2.0-py2.py3-none-any.whl
Processing /wheels/future-0.18.2-py3-none-any.whl
Processing /wheels/h2-3.2.0-py2.py3-none-any.whl
Processing /wheels/pycryptodome-3.9.9-cp38-cp38-manylinux2014_aarch64.whl
Processing /wheels/h11-0.9.0-py2.py3-none-any.whl
Processing /wheels/unpaddedbase64-1.1.0-py2.py3-none-any.whl
Processing /wheels/python_olm-3.1.3-cp38-cp38-linux_aarch64.whl
Processing /wheels/atomicwrites-1.4.0-py2.py3-none-any.whl
Processing /wheels/async_timeout-3.0.1-py3-none-any.whl
Processing /wheels/multidict-5.0.2-cp38-cp38-manylinux2014_aarch64.whl
Processing /wheels/yarl-1.6.3-cp38-cp38-manylinux2014_aarch64.whl
Processing /wheels/chardet-3.0.4-py2.py3-none-any.whl
Processing /wheels/typing_extensions-<IP_ADDRESS>-py3-none-any.whl
Processing /wheels/SecretStorage-3.3.0-py3-none-any.whl
Processing /wheels/jeepney-0.6.0-py3-none-any.whl
Processing /wheels/six-1.15.0-py2.py3-none-any.whl
Processing /wheels/pyrsistent-0.17.3-cp38-cp38-linux_aarch64.whl
Requirement already satisfied: setuptools in /usr/local/lib/python3.8/site-packages (from jsonschema<4.0.0,>=3.2.0->matrix-nio[e2e]<0.16,>=0.14->pantalaimon) (50.3.2)
Processing /wheels/hyperframe-5.2.0-py2.py3-none-any.whl
Processing /wheels/hpack-3.0.0-py2.py3-none-any.whl
Processing /wheels/cffi-1.14.4-cp38-cp38-linux_aarch64.whl
Processing /wheels/idna-2.10-py2.py3-none-any.whl
Processing /wheels/cryptography-3.2.1-cp35-abi3-manylinux2014_aarch64.whl
Processing /wheels/pycparser-2.20-py2.py3-none-any.whl
Installing collected packages: async-timeout, multidict, idna, yarl, chardet, attrs, typing-extensions, aiohttp, aiofiles, six, pyrsistent, jsonschema, future, hyperframe, hpack, h2, pycryptodome, logbook, h11, unpaddedbase64, pycparser, cffi, python-olm, peewee, atomicwrites, cachetools, matrix-nio, click, cryptography, jeepney, SecretStorage, keyring, janus, appdirs, pantalaimon
Successfully installed SecretStorage-3.3.0 aiofiles-0.4.0 aiohttp-3.7.3 appdirs-1.4.4 async-timeout-3.0.1 atomicwrites-1.4.0 attrs-20.3.0 cachetools-4.1.1 cffi-1.14.4 chardet-3.0.4 click-7.1.2 cryptography-3.2.1 future-0.18.2 h11-0.9.0 h2-3.2.0 hpack-3.0.0 hyperframe-5.2.0 idna-2.10 janus-0.6.1 jeepney-0.6.0 jsonschema-3.2.0 keyring-21.5.0 logbook-1.5.3 matrix-nio-0.15.2 multidict-5.0.2 pantalaimon-0.8.0 peewee-3.14.0 pycparser-2.20 pycryptodome-3.9.9 pyrsistent-0.17.3 python-olm-3.1.3 six-1.15.0 typing-extensions-<IP_ADDRESS> unpaddedbase64-1.1.0 yarl-1.6.3
Removing intermediate container 27688fc3e52c
 ---> e3d9ab9a6184
Step 14/16 : VOLUME /data
 ---> Running in 2c0c6f90f06c
Removing intermediate container 2c0c6f90f06c
 ---> a9008863cc53
Step 15/16 : ENTRYPOINT ["pantalaimon"]
 ---> Running in bcb416546426
Removing intermediate container bcb416546426
 ---> 2a7d1529396f
Step 16/16 : CMD ["-c", "/data/pantalaimon.conf", "--data-path", "/data"]
 ---> Running in 3c6a790ea9cf
Removing intermediate container 3c6a790ea9cf
 ---> 000e19484da8

Successfully built 000e19484da8
Successfully tagged matrixdotorg/pantalaimon:v0.8.0-1
WARNING: Image for service pantalaimon was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Creating docker_pantalaimon_run ... done

I also got Pantalaimon to build on manjaro arch arm64. On my Pinebook Pro. That makes this not a X86 problem. I think one of the dependencies that gets pulled in has an arm64 build but not an armhf one.

Success!  I was able to determine how to build the Docker image for Pantalaimon on Raspberry Pi OS (buster release), 32-bit (armhf).  My Dockerfile update is below.  @poljar, you were right, some OpenSSL files were missing.  Here are the steps I followed:

The clue for me was the error message in @Sleuth56 's post: fatal error: openssl/opensslv.h: No such file or directory
Found this link  identifying which package was missing (libssl-dev)
Made update to Dockerfile to include libssl-dev:
RUN apt-get update && apt-get install -y git gcc clang cmake g++ pkg-config python3-dev wget libssl-dev
It proceeded further, but then failed with another error:

  running build_rust

      =============================DEBUG ASSISTANCE=============================
      If you are seeing a compilation error please try the following steps to
      successfully install cryptography:
      1) Upgrade to the latest pip and try again. This will fix errors for most
         users. See: https://pip.pypa.io/en/stable/installing/#upgrading-pip
      2) Read https://cryptography.io/en/latest/installation.html for specific
         instructions for your platform.
      3) Check our frequently asked questions for more information:
         https://cryptography.io/en/latest/faq.html
      4) Ensure you have a recent Rust toolchain installed:
         https://cryptography.io/en/latest/installation.html#rust
      5) If you are experiencing issues with Rust for *this release only* you may
         set the environment variable `CRYPTOGRAPHY_DONT_BUILD_RUST=1`.
      =============================DEBUG ASSISTANCE=============================

  error: can't find Rust compiler

It seemed like the Dockerfile already had a command where pip was being upgraded...
RUN pip --no-cache-dir install --upgrade pip setuptools wheel
...so I decided to try installing Rust, as it seemed not to be present in the build.  A reference on Building cryptography on Linux  was helpful.  So was this one  on the specific error we were seeing (can't find Rust compiler), which also suggested installing Rust.
I found the command for installing Rust on Linux here: curl https://sh.rustup.rs -sSf | sh
I discovered I had to install curl as well, so added that to the Dockerfile. NOTE:  I just noticed that wget is already installed in the Dockerfile.. So we could use wget instead of curl.  I haven't tested that but something like wget https://sh.rustup.rs -O /app/rustup-init.sh should work fine.  If we want to use wget then just remove the curl installation and use wget instead of curl.
Modified the Dockerfile to install Rust, but building of the cryptography wheel was still failing.  I then realized there was this note  about checking the version of rust installed, to confirm it was in the path.  This was working initially during installation but by the time Docker build got to the step where it was trying to build the cryptography wheel, the path vanished.
I suspected I had to set the environment variable to ensure Rust is in the path and findable, at the same step where pip is called to build all the wheels. I had to do some research to find out how to do that.
While reviewing the build log I noticed it mentioned this command at the end of Rust installation, to set the environment: source $HOME/.cargo/env, which is actually . $HOME/.cargo/env to "source" or refresh the environment variable for Rust.
I then had to tweak the way I ran the Rust installer.  First had to download it via curl, saving the installation script to the /app dir, and using chmod to make it executable before running the shell script with defaults (-y parameter) to install Rust.
At first I didn't think it worked because after installing Rust, there's nearly a 20 second delay until Docker build goes to the next step.  Not sure if that is part of the Rust installation or if the Docker build process is just a bit slow on my Raspberry Pi 4b.  But it finally goes to the next step and ends up completing successfully.
After all that I finally got a Docker image built!  It's 131MB; wondering if it's a bit too big.

I noticed after building the image there was a leftover image of 1.55GB in size with a REPOSITORY of <none>.  A temporary image.  Here's a summary of how I cleaned that up.  I know the other grep for the specific image GUID (9f59*) is not needed, but I was just being very cautious.
pi@pi:~/gitcode/pantalaimon $ docker images |grep none
<none>                            <none>            9f5919181d71   2 minutes ago        1.55GB
pi@pi:~/gitcode/pantalaimon $ docker images |grep none | awk '{print $3}'
9f5919181d71
pi@pi:~/gitcode/pantalaimon $ docker images |grep none | awk '{print $3}' | grep 9f5919181d71 | xargs docker rmi
Deleted: sha256:9f5919181d71cdfb112e78613ae1b4787b33d8e60265e1fe762666874f363029
Deleted: sha256:2c8e88561289a96087ce361d46fcc23dfb948f2a444d94260f04b7b0a76d4d76
Deleted: sha256:13c80672ba8d8a225509674af7add7a97a559bd1455df7c5d3296e01761d13c8
Deleted: sha256:0d7f1485fc3af847f653f4252f37a655499fe2431ac33a61c743bb5f4e084fcd
Deleted: sha256:fb6663b4d6d464e7514f788e6ac12496fee56029af97e98ac99cdb3ab4c1df8d
Deleted: sha256:abb95f652f6876b3c813a14409c3663508a9069c48c09cd47de65ce953ef560a
Deleted: sha256:2886a534c71b44e3c0685c99e19e20cb7d86d993de98a42fd74afb7bcb5d5775
Deleted: sha256:dc1b26208d5a7cebd3c8d980569354ecb92aab859b04e56a98a0a5a216038ad9
Deleted: sha256:2c83eea0d0f35baea56a06e76a81efaf4b8426e24a9648bb19538a7982db8ce2
Deleted: sha256:df8e8033827aa609e1d72a65fdcced63dcb22325711fa7d8e9749bb0a96848ef
Deleted: sha256:097762a3bdd81a15f08737dcd41391c561d42396a368312067d1372decc5ec58
Deleted: sha256:7009ed3afa1e02cd15528fec7e18cec3b1bab85a11c9bc57a67d72d9a4e10e29
Deleted: sha256:1341375a573ee31cfb0b809d6da86148807645165728ddff6898af89a37b5c14
Deleted: sha256:5fcbd9dc4f0fe3900e57e06c694c52f9d092cf1273933c2328a05b574a34a714
Deleted: sha256:0d558c62c4d4cb9a85b66f9d29196a03441fa3b47107cbc705f0917e127af400
pi@pi:~/gitcode/pantalaimon $ docker images |grep none
pi@pi:~/gitcode/pantalaimon $ docker images | grep pant
pantalaimon                       latest            b3246438542e   2 minutes ago     131MB
pi@pi:~/gitcode/pantalaimon $

I have the following questions; let me know if anyone has more info on these:

How do we make the image smaller?  I'm not sure if 131MB is the smallest it could be.
If someone else with a Raspbery Pi/ARM has a chance to test the image created using the below Dockerfile and confirm it works, that would be great.  I am hoping to do that in the next several days but it may take some time for me to get to it.  I suspect it works but am just barely getting familiar with Pantalaimon and am not yet sure how to use it.
Could we also get the cryptography wheel installed with a pip upgrade?  Maybe pip upgrade needs to be defined differently in the Dockerfile?  I would prefer to do it that way, as then a precompiled cryptography wheel could be used instead (and that may also help make the Docker image smaller).
Has anyone used pantalaimon with PushBits, the self-hosted relay server for Matrix push notifications? I just got PushBits installed and was hoping to use pantalaimon with PushBits, so I could send end-to-end encrypted messages to my Matrix server.  PushBits works great now but it doesn't support encryption.  The PushBits Github has more details on PushBits.  I actually learned about Pantalaimon from the Matrix FAQ on end-to-end encryption proxies.
If anyone has further suggestions on the Dockerfile, please let me know (my findings are below).

Here is the Docker file I used to build this on Raspberry Pi 32bit (armhf).  Hope this helps others!  I learned a lot about building a Docker image.  :)  I have designated in bold text the changes I made.  Thanks.

FROM python:3.8-slim-buster AS builder
RUN mkdir -p /app
RUN apt-get update && apt-get install -y git gcc clang cmake g++ pkg-config python3-dev wget libssl-dev curl
RUN curl https://sh.rustup.rs -o /app/rustup-init.sh && chmod +x /app/rustup-init.sh && /app/rustup-init.sh -y
WORKDIR /app
RUN wget https://gitlab.matrix.org/matrix-org/olm/-/archive/master/olm-master.tar.bz2
&& tar -xvf olm-master.tar.bz2
&& cd olm-master && make && make PREFIX="/usr" install
RUN pip --no-cache-dir install --upgrade pip setuptools wheel
COPY . /app
RUN . $HOME/.cargo/env && pip wheel . --wheel-dir /wheels --find-links /wheels
FROM python:3.8-slim-buster AS run
COPY --from=builder /usr/lib/libolm* /usr/lib/
COPY --from=builder /wheels /wheels
WORKDIR /app
RUN pip --no-cache-dir install --find-links /wheels --no-index pantalaimon
VOLUME /data
ENTRYPOINT ["pantalaimon"]
CMD ["-c", "/data/pantalaimon.conf", "--data-path", "/data"]

FYI, I had a chance to test the Pantalaimon Docker image I built on 04/04.  When I use a web browser to visit my local IP (the server on which docker and Pantalaimon are installed) with the running Pantalaimon port, it works fine and shows Matrix.org content (which shows it is routing through Pantalaimon/acting as a proxy).  Thank you.


Cassandra ticket registry: Jackson annotations in interfaces

Closes #2045

Add Jackson annotations that allow polymorphic serialization
Fix DefaultHandlerResult equals comparison

Configuration:
In order to serialize ZonedDateTime, Jackson needs some configuration. This is shown in TicketGrantingTicketImplTests
Possible limitations:
Given that there is lot of classes implements these interfaces (Principal, Authentication, CredentialMetaData, ...), the serialization should be tested for any different types used.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.David Rodriguez seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.

This is great. Where is the cassandra ticket store though?

Or to clarify, are you running with Infinispan's support for Casssandra?

We are using our own TicketRegistry that stores tickets in Cassandra

Cool. Any chance you can share that as well?

Also could you clarify this statement please: the serialization should be tested for any different types used ?
Tested by whom? Tested where? Are there test cases here that would facilitate that?

It should be tested by everyone that introduce a new implementation of any of the interfaces Tickest are waiting. I think this should be tested in the module of the implementation, what do you think?
I will add tests for the current implementations that verify the serialization works.
As another test, I would like to test the serialization of tickets with the most common Principal, Authentication, ... implementations, do you know which one they are?

Yes to all, and the plan sounds great. You can figure out the impls via the Javadocs: https://www.javadoc.io/doc/org.apereo.cas/cas-server/5.0.0.RC3
I should also point out: while this change is more than welcome there is a very good chance that they will be removed, left untested or unmaintained if there is not a solid implementation of a ticket store actually verifying all of this in action. At this point, we just have a theory on why these annotations are needed, and we have some tests that verify the underlying objects can be serialized correctly. What we don't know, or shall forget is why are these even necessary to begin with! So I very much encourage you to provide us with the ticket store as well. Otherwise, all bets are off really.

And rather than having folks "remember" to test new implementations, a ticket store that exercises all of this in action really would go long ways to improve testability. Automating the entire process via a solid use case is key to making this work long-term.

Hi,
We'd like to propose some improvements for CAS ticket cleaning.
We're using CAS in a very large scale (12 application servers, up to 40.000 Tickets per minute) and the default implementation of ticket cleaning isn't doing it for us. Retrieving all tickets with each run of ticket cleaning and checking one by one if it's expired or not doesn't seem a very cautious use of resources.
Also, we use Cassandra as database backend and would like to make our implementation of the TicketRegistry available to the community.
We'd like to propose some changes to make this more efficient.

Ticket interface, instead of having one boolean method "isExpired", should have a method "getExpiryTime" that calculates the expiry time of the ticket based on the values of timeToLive and timeToIdle. This value can be stored in the database, and depending on the database implementation, a query can be executed that returns only expired tickets.
TicketCleaner, instead of retrieving tickets for cleaning by calling the method "getTickets" should be calling a method like "getExpiredTickets" that in the AbstractTicketRegistry can call "getTickets", but depending on the implementation can return a set of tickets that are expired.

We'll gladly provide implementations and a pull request if you agree you'll consider adding them to the codebase.

There is not a single thing in your statement that I can find to disagree with :) By all means, assuming others are OK as well, proceed. My only suggestion is: submit small [as the change allows] incremental PRs one at a time so we all can understand and digest the change better. I can theorize that you might be submitting 3-4. Add those who are interested as collaborators on your branches (github allows this) so we can work with and help you as make progress.
I do have a few questions for you though:

Where or what is this large scale you speak of? Which entity/company/org? For how long? A little bit of bio would be helpful.

Are you currently running 5? Is Test/Dev environments? If so, what's your experience been like so far?

Also, we use Cassandra as database backend and would like to make our implementation of the TicketRegistry available to the community.

This is absolutely terrific. Please do. We have options based on Infinispan, but a native well-tested implementation used at large scale is fantastic.

Ticket interface, instead of having one boolean method "isExpired", should have a method "getExpiryTime" that calculates the expiry time of the ticket based on the values of timeToLive and timeToIdle. This value can be stored in the database, and depending on the database implementation, a query can be executed that returns only expired tickets.

I understand. This is necessary to let the cleaner run efficient queries and let the database handle the processing, rather than having to retrieve all tickets and then letting CAS calculate expiration policies. Sounds good to me.

TicketCleaner, instead of retrieving tickets for cleaning by calling the method "getTickets" should be calling a method like "getExpiredTickets" that in the AbstractTicketRegistry can call "getTickets", but depending on the implementation can return a set of tickets that are expired.

Absolutely. Most impls should support this. Memcached might be the only exception and that's ok.

Nice, I'll create a new issue and a new branch for that then.
FYI we're WilliamHill, a UK based sportsbetting company.
Our current CAS deployment is based on CAS 3.5.2 with some modifications. We use JdbcTicketRegistry in live but are looking forward to switch to our Cassandra implementation soon.
We have in total 9 different environments for dev,test,performancetest,disaster recovery and live.
I think we've been using CAS for about 3 years now... :)

Very good. Look forward to your updates.

We hit a road block with the JSON serialization when it came to GoogleAuthenticator services.
Class GoogleAccountsServiceResponseBuilder contains java.security.PrivateKey and java.security.PublicKey variables that we cannot modify with the given annotations.
Do you have an idea what can be done?

Yes, certainly.
Those objects are not JSON-serializable, so what you need to do is:

Turn their type into a setting that can be serializable. Perhaps a simple String, which the google service factory already receives:

    @Bean
    @RefreshScope
    public ServiceFactory googleAccountsServiceFactory() {
        final GoogleAccountsServiceFactory factory = new GoogleAccountsServiceFactory();
        factory.setKeyAlgorithm(casProperties.getGoogleApps().getKeyAlgorithm());
        factory.setPrivateKeyLocation(casProperties.getGoogleApps().getPrivateKeyLocation()); //here
        factory.setPublicKeyLocation(casProperties.getGoogleApps().getPublicKeyLocation()); //and here
        factory.setSkewAllowance(casProperties.getSamlCore().getSkewAllowance());
        factory.setBuilder(googleSaml20ObjectBuilder());
        return factory;
    }

Remove:

    private PublicKey publicKey;
    private PrivateKey privateKey;

From the factory and the builder.  Pass along the string fields into the builder.
Ideally, you should refactor the code so GoogleAccountsServiceResponseBuilder becomes a Spring bean created via @Bean and is injected into GoogleAccountsServiceFactory.

So ideally, what you should end up with is:
@Bean
    @RefreshScope
    public ServiceFactory googleAccountsServiceFactory() {
        final GoogleAccountsServiceFactory factory = new GoogleAccountsServiceFactory();
        factory.set GoogleAccountsServiceResponseBuilder(googleAccountsServiceResponseBuilder());
        factory.setBuilder(googleSaml20ObjectBuilder());
        return factory;
    }

and create a bean googleAccountsServiceResponseBuilder and inject those settings into it. That's much better.

Or may be as another option, a custom serializer impl for those keys, something like this: https://github.com/echocat/marquardt-java-sdk/blob/master/common/src/main/java/org/echocat/marquardt/common/serialization/PublicKeySerializer.java

All the changes needed for the JSON serialization support and the changes requested are done.
Could you please review this?
We'll create a separate branch for the cassandra-ticket-registry

Thanks. We'd love to review. Can you please fix the build failures please?

Also one other thing: we would like to be able to make adjustments along with you on this changeset and help you out, and not have to ask you to fix this and that. We can do this in 2 ways: you can add us as collaborators on your branch, or we could target this for another branch here other than master so others can have rights to make changes.
https://github.com/blog/2247-improving-collaboration-with-forks
https://help.github.com/articles/adding-outside-collaborators-to-repositories-in-your-organization/

Thanks for adding me. This took quite a bit of work, but I should have made some decent changes. Summary is:

Switched to apache for generating equals and hashcodes. Please use that style from now on to be consistent.
Thanks to IntelliJ, fixed all of the styling issues. Do not turn off findbugs or checkstyle. You should follow the rules please.
A number of objects could not be properly serialized. Lots of tests were failing. Think I managed to fix those.

This is still very much a WIP, but I am going to push to the branch to trigger the build.

Also you should almost always on a daily basis merge with master. Holding onto changes in a local fork for too long will make merges/rebased very very difficult if not impossible.

Hi Misagh,
I added you as collaborator. Is there anybody else you'd like me to add?
Regards,
Christoph
On Wed, Oct 26, 2016 at 9:26 AM, Misagh Moayyed<EMAIL_ADDRESS>wrote:

Also one other thing: we would like to be able to make adjustments along
with you on this changeset and help you out, and not have to ask you to fix
this and that. We can do this in 2 ways: you can add us as collaborators on
your branch, or we could target this for another branch here other than
master so others can have rights to make changes.
https://github.com/blog/2247-improving-collaboration-with-forks
https://help.github.com/articles/adding-outside-
collaborators-to-repositories-in-your-organization/
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/apereo/cas/pull/2055#issuecomment-256269929, or mute
the thread
https://github.com/notifications/unsubscribe-auth/APQq8UiZg-1O5l6BvM_KdM3WoS8Ulh4Qks5q3wCxgaJpZM4KaraI
.

Thanks for adding me. I'll continue to make updates here and there; if others wish to be added they can certainly put a comment on this thread as well.

OK passing build. Note that I had to massage the @c setting to account for JSON serialization of registered services. As long as tests are all passing, we should be good.
Thanks very much for the great work. Take a pass at the latest changes, and make adjustments as you see fit. We should be targeting this for 5.1, and in the meanwhile, you may want to start working on the ticket registry changes.

Hey folks, just checking in: have you started working on separate pull requests on the ticket registry and the cleaner? Would be nice to see them hanging before we plan to merge this post 5 GA.

Yes, we have. branch cassandra-ticket-registry on our fork.

Excellent; haven't reviewed yet but let me ask: how "ready" is that branch?

We are adding tests to it, trying to make cassandra-unit (https://github.com/jsevellec/cassandra-unit) work.
Quick question, for not-inmemory ticket/services registries, how do you test them? Do you have a runing instance of MongoBD for example?
We think that having an embedded Cassandra is a must, as you don't need to install it to run a build.

I am going to try and bring this branch up to speed with the current master and turn it into a mergeable state before proceeding. Does that work for everyone here? You can then resume testing the registry based on the to-be-current master. I'll probably get to the final mergeable state by late tomorrow afternoon your time. LMK if that is too soon or too later for that matter!


.ZAP repo deletion

Discussed in https://github.com/project-chip/zap/discussions/1188
Every ZAP release update leads to .zap repo deletion which is very problematic. Need to figure out the root cause for database corruption or other issues and fix this. Also look into any short term workarounds to help users not deal with this issue while the main issue is resolved.

this is fixed with the latest nightly

fixed https://github.com/project-chip/zap/releases/tag/v2023.11.08-nightly

No it's not. That was just step 1.


Design and Implement Citations API

The goal of this API is to be able to generate citations for Participedia articles (whether cases, methods, etc.) that conform to various publication style requirements (i.e., APA, Chicago, MLA, etc.)
My hope is that there is an existing library for exporting data to these different styles, with a universal set of data requirements which can be mapped into any of the various styles, so I expect the first step is to find out if such a library does in fact exist, if there is a NodeJS library for it, and in the case that there are multiple such libraries, identifying the pros and cons so we can choose one.
The next step is, given a universal citation format, identifying what is missing from that in our current data model and how we propose to add or work around that.
Once we have identified a library and any data model requirements, then we can proceed with implementation.
Technical considerations:

Solution must be usable from NodeJS
Updates to our data model should be implemented as an SQL migration
All work should be done in a PR to this repo
PR should include tests

citation.js seems very promising and has an npm module.
Natively outputs as human readable Harvard, APA, and Vancouver and also as the machine readable BibTeX, BibTXT, and CSL-JSON.
It looks like you can add extra human readable style formats from here, but I don't see anyway to add all of the other machine readable formats that Robert listed here.
I was looking at the documentation for Zotero's formats and saw that they linked to bibutils, which is a set of commandline applications which, using XML as an intermediate format, could convert to a few additional machine readable formats. I found an example online of these tools interfacing with node, so it's a potentially viable approach.

I just noticed that bibutils is GPL, so perhaps something to be avoided.

We are fully open source, and while it doesn't look like we've actually chosen a license yet (we should do that!) I imagine we'll choose one that is either GPL or compatible with it, so I don't see the bibutils license as a problem.

Will citation.js or bibutils require any data which is not already in our schema?

Unless I'm overlooking something that I'll encounter later, I don't think so.
I took a look at citing on wikipedia, and there's really nothing there that the Participedia schema doesn't have. (Versioning, yes, but I think that's probably okay. They all have the time accessed anyway.)
As @scottofletcher brought up, author should probably be some text such as 'Partcipedia contributors' (Much like Wikipedia has just 'Wikipedia' or 'Wikipedia contributors' as the author).
...
The concern I have is slightly different. The common format between bibutils and citation.js is BibTeX, but BibTeX doesn't have a entry type for links. Instead, you must use the misc category - but as you can see from the citing on wikipedia link above, where there should be fields like Publisher or Access Date, you must instead hijack the title and note fields.
I had (perhaps naively) envisioned giving citation.js some data that it understands (Perhaps even BibTeX) use that to get apa, etc and also have it export a BibTeX for bibutils to use and covert to other formats. I'm afraid that the semantics would be lost for this method.
Here's a couple of examples of data generated by citation.js / bibutils compared to an 'ideal version'
RIS from Zotero vs RIS from bibutils converting BibTeX
Zotero:
TY  - ELEC
TI  - BibTeX - Wikipedia
UR  - https://en.wikipedia.org/wiki/BibTeX
Y2  - 2017/11/18/12:47:59
L2  - https://en.wikipedia.org/wiki/BibTeX
ER  -

And here's that same page, using bibutils's bib2xml | xml2ris on the BibTeX entry from the wikipedia Cite This Page:
TY  - STD
AU  - Wikipedia,
PY  - 2017//
TI  - BibTeX ?- Wikipedia, The Free Encyclopedia
UR  - https://en.wikipedia.org/w/index.php?title=BibTeX&oldid=801392872
N1  - [Online; accessed 18-November-2017]
ID  - wiki:xxx
ER  -

APA from Wikipedia vs APA from citation.js converting BibTex
Here's the APA citation from Wikipedia's Cite This Page
BibTeX. (2017, September 19). In Wikipedia, The Free Encyclopedia. Retrieved 13:06, November 18, 2017, from https://en.wikipedia.org/w/index.php?title=BibTeX&oldid=801392872

Here's the APA citation as exported by citation.js, using the BibTex entry from the wikipedia Cite This Page:
  Wikipedia. (2017). BibTeX — Wikipedia, The Free Encyclopedia. Retrieved from https://en.wikipedia.org/w/index.php?title=BibTeX&oldid=801392872

...
I think it's pretty clear that BibTeX is the wrong format to import from as it doesn't have enough meaning to convey the data. We always have the option of feeding citation.js and bibutils a different initial format, but BibTeX is the only common import format for the two tools.

Quick update:
Have completed the node wrapper for bibutils; also available on npm.


handeling file upload ?

how can i upload a file ?

sorry a major overhaul is in progress.  we will be sure to allow file uploads then.


Build hangs after Location prompt

Trying to build container to be used for passing data over to HomeAssistant.  Cloned the repo and building using the dockerfile I'm getting a hang right after the locality prompt.  Tried using 11, 11. US, US, etc and never moves forward.
Setting up libsasl2-modules-db:amd64 (2.1.27+dfsg2-3ubuntu1) ...
Setting up tzdata (2022g-0ubuntu<IP_ADDRESS>) ...
debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
Configuring tzdata
------------------

Please select the geographic area in which you live. Subsequent configuration
questions will narrow this down by presenting a list of cities, representing
the time zones in which they are located.

  1. Africa   3. Antarctica  5. Arctic  7. Atlantic  9. Indian    11. US
  2. America  4. Australia   6. Asia    8. Europe    10. Pacific  12. Etc
Geographic area: US
11. US

Hello,
What python version, and os version as well as which Drobo do you have? I have not seen this error. I want to try to reproduce it.

Thanks for getting back to me!
Running Python 3.8.10, on an Intel NUC running Ubuntu 20.04.5 LTS (Focal) trying to parse data on an 8 bay Drobo 810n.

Thanks for getting back to me!
Running Python 3.8.10, on an Intel NUC running Ubuntu 20.04.5 LTS (Focal) trying to parse data on an 8 bay Drobo 810n.

OK, after quick look Docker isn't getting your local tzdata.
Add this to the Docker file after line 2
ENV TZ=America/Chicago RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
The please try to build again.
Please note you can change the TZ to a more specific location listed hereHere .

Thanks, that seems to have pushed me forward!
Changed it to America/New_York, indeed seems to build now.  Was able to get the container to start, it looks like it's correctly pointed to port 5000/tcp from an internal port of 49153  but getting a refuse to connect when trying by browser.  Gonna poke around for a few and see if I'm missing anything obvious.  I've got ~25 other containers running fine so I know it's not an issue w/ Docker or the overall environment.
Container logs look like
 * Serving Flask app 'drobo-status' (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * ~~~
 *

Actually, weirdly hitting that 49153 it seems to return the correct results.  Guessing it's a mapping issue on my side so I'll tinker with it.  Appreciate the help!

Awesome, thanks for update. Let me know if you need any further assistance.
On Mon, Jan 2, 2023, 3:04 PM Henchman-21 @.***> wrote:

Thanks, that seems to have pushed me forward!
Changed it to America/New_York, indeed seems to build now. Was able to get
the container to start, it looks like it's correctly pointed to port
5000/tcp from an internal port of 49153 but getting a refuse to connect
when trying by browser. Gonna poke around for a few and see if I'm missing
anything obvious. I've got ~25 other containers running fine so I know it's
not an issue w/ Docker or the overall environment.
Container logs look like

Serving Flask app 'drobo-status' (lazy loading)
Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
Debug mode: off

—
Reply to this email directly, view it on GitHub
https://github.com/biofects/Drobo-Status/issues/1#issuecomment-1369202901,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGAVPNI6ASFF2MBVKFFFQTLWQM7HRANCNFSM6AAAAAATO7ADVI
.
You are receiving this because you were assigned.Message ID:
@.***>

Thanks, maybe one more thing (though unrelated to the beginning of this thread.  You mention loading this via Scrape integration?  I've not used Scrape before, but adding the integration, the wizard is running through individual fields for headers, and other fields which seems different than adding the code you mentioned adding to configuration.  Can I just paste this (updated w/ relevant IP/etc) into my configuration.yaml to populate the sensor. entities?

vs...
platform: rest
    name: tfam-storage
    # This is the ip of the host running drobo-status.py
    resource: http://<IP_ADDRESS>:5000
    json_attributes:
      - name
      - serial
      - firmware
      - disk-total
      - disk-used
      - disk-free
    value_template: "OK"
  - platform: template
    sensors:
      storage_name:
        value_template: "{{ state_attr('sensor.tfam-storage', 'name')['name'] }}"
      storage_serial:
        value_template: "{{ state_attr('sensor.tfam-storage', 'serial')['serial'] }}"
      storage_firmware:
        value_template: "{{ state_attr('sensor.tfam-storage', 'firmware')['firmware'] }}"
      storage_disk_total:
        value_template: "{{ state_attr('sensor.tfam-storage', 'disk-total')['disk-total'] }}"

Ah yes, I just added the code to my configuration file as well.
On Mon, Jan 2, 2023, 3:37 PM Henchman-21 @.***> wrote:

Thanks, maybe one more thing (though unrelated to the beginning of this
thread. You mention loading this via Scrape integration? I've not used
Scrape before, but adding the integration, the wizard is running through
individual fields for headers, and other fields which seems different than
adding the code you mentioned adding to configuration. Can I just paste
this (updated w/ relevant IP/etc) into my configuration.yaml to populate
the sensor. entities?
[image: image]
https://user-images.githubusercontent.com/4683381/210279550-1bacc136-f601-4c7d-9221-bf52e46786c8.png
vs...
platform: rest
name: tfam-storage
# This is the ip of the host running drobo-status.py
resource: http://<IP_ADDRESS>:5000
json_attributes:
- name
- serial
- firmware
- disk-total
- disk-used
- disk-free
value_template: "OK"

platform: template
sensors:
storage_name:
value_template: "{{ state_attr('sensor.tfam-storage', 'name')['name'] }}"
storage_serial:
value_template: "{{ state_attr('sensor.tfam-storage', 'serial')['serial'] }}"
storage_firmware:
value_template: "{{ state_attr('sensor.tfam-storage', 'firmware')['firmware'] }}"
storage_disk_total:
value_template: "{{ state_attr('sensor.tfam-storage', 'disk-total')['disk-total'] }}"

—
Reply to this email directly, view it on GitHub
https://github.com/biofects/Drobo-Status/issues/1#issuecomment-1369227123,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGAVPNIALZKTVDNVL6Y2RQDWQNDC3ANCNFSM6AAAAAATO7ADVI
.
You are receiving this because you were assigned.Message ID:
@.***>

Ah ok gotcha.  So I don't need to add via scrape integration or anything?   I'll try formatting for my configuration.yaml and give that a go. Thanks!

Yep, put this under my sensors: section in my configuration.yaml and I'm able to pull the data through as sensors into HomeAssistant.  Thanks a million for your quick help, I love that I can add yet another crucial data source into my HA system.

Awesome, I'm glad it worked for you. If you have other integration idea
please let me know.
On Mon, Jan 2, 2023, 4:18 PM Henchman-21 @.***> wrote:

Yep, put this under my sensors: section in my configuration.yaml and I'm
able to pull the data through as sensors into HomeAssistant. Thanks a
million for your quick help, I love that I can add yet another crucial data
source into my HA system.
—
Reply to this email directly, view it on GitHub
https://github.com/biofects/Drobo-Status/issues/1#issuecomment-1369246008,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGAVPNPCZL7DBX44KEV5ONLWQNH4LANCNFSM6AAAAAATO7ADVI
.
You are receiving this because you were assigned.Message ID:
@.***>


Multifile definition support

Hi Team,
How to generate Golang PROTO from open api spec definitions in multi file defined by path reference ?
Example : https://forge.etsi.org/rep/nfv/SOL005/tree/master/src/SOL005
It https://forge.etsi.org/rep/nfv/SOL005/blob/master/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml uses Definitions defined in https://forge.etsi.org/rep/nfv/SOL005/tree/master/src/SOL005/NSLifecycleManagement/definitions.

The gnostic tests include examples that read API specs that consist of multiple files here's one. The key is to directly read the top-level document and be sure that the specs that it references can be found by gnostic (usually with relative file path references).

Thanks  a lot @timburks


Added covfefe-tweet

I made a tweeter command line client with covfefe!

https://github.com/imkimchi/covfefe-tweet/commit/a74f16d0e7ecb90bced941ae7d7dfb72f93dcfa1
I just deported the commit. Please sign for this executive action?

Awesome :) Thanks!


Updated Readme and Added Insertion Sort

@manish-9245 please don't add extra problems

@manish-9245 please don't add extra problems

Shouldn't this be mentioned as a guideline beforehand?


:bug: Fix find worktree fails from GinLog

This PR fixes problem explained below.
Problem
In GinLog buffer, always used cwd as worktree at action.
Expect
Wants to using worktree of current buffer.

Thanks a lot


Websocket connections are blocked

When deploying behind a reverse proxy (for LWSS-23), websocket connections from Jupyter lab are blocked. That means that the ui cannot communicate with the kernel, and nothing is working.
Eg:
Starting WebSocket: wss://[host]/n-a-a-vre/user/gpelouze/api/kernels/5fda17cb-e357-4ffc-a88e-5bf243878629<EMAIL_ADDRESS>GET wss://[host]/n-a-a-vre/user/gpelouze/api/kernels/5fda17cb-e357-4ffc-a88e-5bf243878629/channels?session_id=87a995b6-f4cd-4ff2-9d39-3f18b173731b

Related: https://github.com/jupyterhub/zero-to-jupyterhub-k8s/issues/2786


Microphone mute is not working with Skype for business

Microsoft PowerToys version
051.1
Running as admin

[ ] Yes

Area(s) with issue?
General
Steps to reproduce
When I'm in a conference meeting, Microphone Mute is enabled, but the microphone is working
✔ Expected Behavior
No response
❌ Actual Behavior
The microphone must be muted
Other Software
No response

/bugreport

Does this happen with other video conference software? Like MS Teams, Google meets, etc.

Just to check: the video should be routed from the camera through the driver to the app. Did you set PT VCM as the source in the app? (in this case Skype)

@Jay-o-Way This issue is about the audio mute, not the video. 😕

I just tried with a Teams test call and it did a global mute as expected.  The microphone mute shouldn't matter, it just does a direct OS mute to the microphone.  On teams at least, it resets a global microphone mute as well to be on again with a new call. I'm testing on insider build of Win11 build 22519.  This key shortcut works globally even if a call is not happening.

I am also having this issue with Teams. (Win10 Build 19042, PowerToys 51.1)
This happens when I boot up, but I do have a workaround:

Open Video Conference Mute Settings and toggle between audio inputs, selecting back on "All" when done.
Start Teams Meeting, toggle VCM audio mute and manually mute yourself in the meeting.
Manually unmute yourself in the meeting, VCM audio mute should disable.
Re-mute via VCM shortcut, teams will re-mute to indicate this is fixed.

Bugreport zip here:
PowerToysReport_2021-12-10-14-32-56.zip


Update to Bootstrap 4 / latest FontAwesome

Currently using Bootstrap 3.6.6 which has some ugly styles and is currently missing css for cards and spacing too.

let's throw FA in there too while we're at it

FontAwesome 5.x added in frontendWorkdmdxv branch


Add curl/bc to install script

There may be configurations that do not include curl and bc in the system.  Add them to install script https://raw.githubusercontent.com/openaps/docs/master/scripts/quick-packages.sh

Can you make this a PR instead of just an issue?

Done


[enhancement]: Support horizontal and/or vertical symmetry

Is there an existing issue for this?

[X] I have searched the existing issues

Contact Details
No response
What should this feature add?
I'd love to see options to encourage generation of symmetrical images along one or both axes via --hsymmetry [value] and --vsymmetry [value] (and GUI equivalents) where the latents are flipped along the requested axis/axes and averaged with the existing latent for the first value * total steps steps of image generation (the result might have to be multiplied by some factor to maintain entropy.
Alternatives
No response
Aditional Content
No response

Already exists.
--seamless and --seamless_axes

@n00mkrad That is seamless tiling, not symmetry.

This feature is in Invoke 2.3.x. Closing.


[BUG] default responsive modifier value is not applied correctly.

EXPECTED BEHAVIOR
When using a modifier using applyStyleModifier in a responsive component, the default modifier should be applied if size is provided but does not match.
This simple example should apply the default modifier value (modifier1):
<Component modifiers={{_: 'modifier1', LG: 'modifier2'}} size="SM" />

ACTUAL BEHAVIOR
Given the scenario above, no modifiers will be applied.
STEPS TO REPRODUCE

Create a component with multiple modifiers.
Use the responsive modifiers object pattern to apply modifiers by default, and also to one or more breakpoints.
Provide a size prop value that does not match any of the keys in the responsive modifiers object.
Observe that the default modifier styles are not being applied.

SUGGESTED SOLUTION
The logic behind selecting responsive modifiers needs to be improved to handle this scenario. This same logic is repeated in a few other locations as well.

closed by #49


chore: release 4.5.4

:robot: I have created a release *beep* *boop*
4.5.4 (2023-01-12)
Bug Fixes

copy all file in esnext build (47f7718)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/mili-project-manager/mtpl-component/releases/tag/v4.5.4 :sunflower:


gpg: keyserver receive failed: Server indicated a failure

Script
nginx-proxy-manager
Describe the bug
gpg: keyserver receive failed: Server indicated a failure
System info:

Proxmox Version: 8
Alpine Version: 3.16.8

Screenshots

Same issue on Debian 12.2, Proxmox 8.1.3


Language specification mentions unsupported embedding definition

What version of CUE are you using (cue version)?
The playground (v0.5.1-0.20230413144408-f681271a38ec and v0.6.0-alpha.1.0.20230428121230-80d6ea032057).
What did you do?
{ z = 3, a: z }
What did you expect to see?
As per https://cuelang.org/docs/references/spec/#structs, those are the relevant production rules:
StructLit   = "{" { Declaration "," } "}" .
Declaration = Field | Ellipsis | Embedding | LetClause | attribute .
Embedding   = Comprehension | AliasExpr .
AliasExpr   = [ identifier "=" ] Expression .

I would therefore expect the result to be { a: 3 }.
What did you see instead?
use of deprecated old-style alias; use "let X = expr" instead
I assume this got deprecated, but the grammar didn't get fixed? If yes, i guess the fix would just be to replace the production rule of Embedding to be Embedding = Comprehension | Expression? Unless there's something else i'm missing?

I'm pretty sure this not related to aliases and instead templates.
a: [Name=string]: { name: Name }

a: "some name": {}

a: {
	"some name": {
		name: "some name"
	}
}

https://cuelang.org/docs/tutorials/tour/references/aliases/
https://cuelang.org/docs/tutorials/tour/types/templates/

Hmm, maybe I'm mistaken. This part of the spec does definitely refer to some now invalid syntax.
https://cuelang.org/docs/references/spec/#aliases

Marking for v0.8.0, although we might move this up to v0.7.0. This inconsistency is a result of the transition from old style aliases.


Main -> Dev

:tada: This PR is included in version 1.1.16-dev.2 :tada:
The release is available on:

npm package (@dev dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.1.17-dev.1 :tada:
The release is available on:

npm package (@dev dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.1.17 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


class CircularFifoQueue customized jdk serialization, which is inefficient. Please replace it with a org.apache.fury.serializer.Serializer or implements java.io.Externalizable

Search before asking

[X] I had searched in the issues and found no similar issues.

Version
0.5.1
Component(s)
Java
Minimal reproduce step
Try to serialize org.apache.commons.collections4.queue.CircularFifoQueue class
What did you expect to see?
I want more explanation why it is inefficient, will it causes memory leak, what can I do to improve this
What did you see instead?
class org.apache.commons.collections4.queue.CircularFifoQueue customized jdk serialization, which is inefficient. Please replace it with a org.apache.fury.serializer.Serializer or implements java.io.Externalizable
Anything Else?
No response
Are you willing to submit a PR?

[ ] I'm willing to submit a PR!

As the warn log said, you may need to implement a Fury Serializer for CircularFifoQueue. CircularFifoQueue implements JDK writeObject/readObject method. Fury must invoke those methods to ensure compatibility. You can register a customized serializer instead to speed serialization


PHOENIX-5235: Update SQLline version to the latest

@gjacoby126 This one for master branch :)

+1

JIRA was committed, closing PR.


Building sphere visible on minimap/command view

You can see a building sphere on the command view without having any presence on the sector.  Suggest making it a high sig object that needs some sensor presence to be detected.  Broken off of #100.
Imported from trac ticket #120,  created by Xynth on 07-07-2010 at 20:50, last modified: 07-19-2010 at 04:08

i will try to make it so if the team or it's allies have ANY sensor presence in a cluster it will be visible to those teams - this will simplify the code and not require the sphere to have a signature - the simplified approach will help when dealing with #121, which is closely related
Trac comment by anonymous on 07-07-2010 at 21:04

Imago --^
Trac comment by Imago on 07-07-2010 at 21:05

r722 - the visibility of the build sphere is directly related to the builder itself
Trac comment by Imago on 07-19-2010 at 04:06

correction, rev r772 - dyslexia FTL
Trac comment by Imago on 07-19-2010 at 04:08


Unable to cross-compile for 32 bit arm

Problem
The project was successfully compiled for bridge and chip-tool using this commit:
commit [c2be9bcece2a7528960628f267cf9132ee7ac5fb]

No compilation errors

But after switching to a new:
commit [e92157a98e112326364a8475dd50324f4bbcf1d9]

Error compiling

expected behavior
No errors during compilation

actual behavior
error: format ‘%ld’ expects argument of type ‘long int’, but argument 4 has type ‘size_t’ {aka ‘unsigned int’

system configuration
Architecture: armv7l Cortex-A8

Log:
`../../third_party/connectedhomeip/src/platform/Linux/DeviceInfoProviderImpl.cpp:62:68: note: format string is defined here
62 | ChipLogProgress(DeviceLayer, "Get the fixed label with index:%ld at endpoint:%d", mIndex, mEndpoint);`
Proposed Solution
use "%zd", instead of %ld, for site_t of mIndex argument

Hi,
Cannot be reproduce with recent commits. Tested with [a8d12af4be0cbf26f3f1352a5562eb7856ca8651]

@stlevkov, I'm experiencing this issue as well.
connectedhomeip/config/esp32/third_party/connectedhomeip/src/app/util/mock/attribute-storage.cpp:281:35: error: format '%lx' expects argument of type 'long unsigned int', but argument 4 has type 'int' [-Werror=format=]
[build]   281 |     ChipLogDetail(DataManagement, "Reading Mock Endpoint %" PRIx32 "Mock Cluster %" PRIx32 ", Field %" PRIx32 " is dirty",
[build]       |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[build]   282 |                   aPath.mEndpointId, aPath.mClusterId, aPath.mAttributeId);
[build]       |                   ~~~~~~~~~~~~~~~~~
[build]       |                         |
[build]       |                         int

I tried looking at the build logs that you were passing, but I wasn't seeing which toolchains were being used.
I was looking for -esp-elf-g++ in the workflow build logs, and wasn't finding anything. I guess the details are hidden from the ninja output.
I thought I'd make fixes myself and issue my first-ever PR, but after following the "Contributing Guidelines", and running the Builds workflow (manually since I missed out on enabling it prior to subsmission), my PR changes failed the workflow check.
I then came across this lengthy thread https://github.com/espressif/esp-idf/issues/9511 which refers to https://docs.espressif.com/projects/esp-idf/en/release-v5.0/esp32/migration-guides/release-5.x/gcc.html#int32-t-and-uint32-t-for-xtensa-compiler.
Note how the fix looks to only be for xtensa, and riscv was already correct. So I'd guess if your commits were passing, that they were only being built for xtensa, and not riscv, and/or not using the latest esp-idf?
I always try to build the latest of everything when I can.
I'll admit I built my own toolchain for my RISC-V esp32-c3, but for due-diligence, I went ahead and downloaded their release of riscv32-esp-elf-gcc11_2_0-esp-2022r1-linux-amd64.tar.xz from https://github.com/espressif/crosstool-NG/releases, and that too failed.
My toolchain build was done in November, theirs was July.


we are hitting output text limits and it cuts off text. Please make it so there is no output limit

The agent after observation, when gives answer to AI, it just cuts off last few sentences. Is there any limit that i need to increase?
AI: That’s a great question! 🙌 According to reviews, some of the best things to do at Disneyland are:

Take a ride on the classic Disneyland Railroad.

Meet your favorite Disney characters.

Watch the nighttime fireworks show.

Enjoy the rides in the newly opened Star Wars: Galaxy’s Edge.

Take a spin on the Mad Tea Party ride.

Try some of the unique food offerings at the park.

Take a ride on the Matterhorn Bobsleds.

Enjoy a show at the Enchanted Tiki Room.

Watch a parade.

Ride the classic Pirates of the Caribbean.

Take a spin on Space Mountain.

Enjoy a show at the Golden Horseshoe.

Take a ride on the Indiana Jones Adventure.

Go for a spin in Autopia.

Enjoy a meal at the Blue Bayou.

Take a trip to the Haunted Mansion.

Enjoy a show at the Main Street Cinema.

Take a spin on the Big

See #1044

@batmanscode
Thanks! It worked


New Template: HBase to GCS Template

In which language is this supposed to be developed in?

added label

Hi, Please can I be assigned to this issue. @hhasija and I tried to assign my user, but it didn't work. For now @hhasija has assigned himself until I am able to take it.


Gas improvement for apps that use createProfile

For protocols building on Lens, we incur more gas than we need to. We should pass the profileId in the return value.
Currently:
        lensHub.createProfile(createProfileData);
        uint256 profileId = lensHub.getProfileIdByHandle(createProfileData.handle);

Proposal which saves one external CALL to LensHub:
        uint256 profileId = lensHub.createProfile(createProfileData);

Example from Anno - https://github.com/liamzebedee/lens-protocol/blob/feed/contracts/core/Feed.sol#L71-L98

Deprecating this PR as this is handled in #88


Tongues feature not working or am I just Dumb?

So I was browsing through the settings and noticed the tongues feature of polyglot, and decided I needed to set it up for our monk. But testing it out it does not seem to work? Have I set it up wrong? The languages I have set up for it are as follows: 'Valekin Telepathy, Valevine Signs, Comprehend Languages, Tongues'.
Character With Tongues

Character Without Tongues

Polyglot Settings

Found the issue, I'll fix it on the next release. Meanwhile, a temporary solution is to also grant Comprehend Languages to the character.

Awesome, still better than what I was doing before. Thank you for your time.


Update README.rst

Describe how to add a delay between re-runs #73.

Hi @wernight, thanks for the pull request. Before we can merge it, we need you to sign our Contributor License Agreement. You can do so electronically here: http://opensource.box.com/cla
Once you have signed, just add a comment to this pull request saying, "CLA signed". Thanks!

I cannot sign something like that just for a README update.


bug(tabs) IE only: buttons/links not clickable inside tabs with scrolling

Bug, feature request, or proposal:
bug (IE 11)
What is the expected behavior?
On IE 11, buttons/links inside tabs should be clickable
What is the current behavior?
I have a tab, in which I have a lot a content and a button at the end, and I need to scroll dow to see the button.
On IE 11, the button/link is not clickable
What are the steps to reproduce?
Providing a Plunker (or similar) is the best way to get the team to see your issue.
http://plnkr.co/edit/mbtizQ
IMO there is an issue with the use of css transform (translate3d ?) on IE, looks like it messes up the dom and using the inspector, the enclosing html tag seems to be in front of the button.
What is the use-case or motivation for changing an existing behavior?
Well, it should be working
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
OS: Windows 10
Browser: IE 11, version 11.0.9600.18763 // updates versions: 11.0.45 // not tested on other IE version
Material beta 10 (not working on previous either, not a regression)
TS: 2.4.1
Is there anything else we should know?
I managed to get it to work but seems more like a hack that a fix.
I added the lines below in my main stylesheet:
.mat-tab-body-active .mat-tab-body-content.ng-trigger.ng-trigger-translateTab:not(.ng-animating) {
    -ms-transform: none !important;
}

I'm not sure there is a better solution though

Your plunk workes for me in IE 11/Windows 10 (without any additional styling):

I found this bug while working at my company.
I guess the system admin who install the software skipped some updates.
My version seems older than yours though..
Any idea since when it is fixed? I'm worried with retro compatibility

Later I'll be working in a kind of old environment. I'm not sure, but I think I'll find an IE 11 not updated yet. Then I'll try your plunk again. It's possible that someone of the material team see this issue earlier than that and fix it.

Unfortunately the IE I found were older (IE 8). I could not test your plunk. Keep your workaround until someone takes care of it.

I was unable to reproduce the issue on IE11 as mentioned, can you confirm your plunker is still not working for you?

Plunkr was not working since beta-11 deprecated MdCoreModule, but not it's ok.
And I do confirm the issue is still there :/
For what is worth, I am using IE 11 as below (French):

When I use the DOM explorer, it looks like the div below is in the foreground:
<div class="mat-tab-body-content ng-trigger ng-trigger-translateTab"
    style="transform: translate3d(0%, 0px, 0px);">
    [...]
</div>

The element is what lead me to the "fix" :
.mat-tab-body-active .mat-tab-body-content.ng-trigger.ng-trigger-translateTab:not(.ng-animating) {
    -ms-transform: none !important;
}

PS: I set these lines on my main stylesheet, so I don't need deprecated shadow piercing /deep/


New shortcut plugin

bring in TestApp which mirrors FullApp but uses new FluxNotesEditor instead of ClinicalNotes. Once TesApp has full functionality we'll switch FullApp to use FluxNotesEditor. goal of this sprint is to get there and end up with a more robust editor hopefully.

Is there any reason that we added _getMostRecentProgression and _timeSorter to DataSummary? If not, I'd remove them for now and would be good to push on ahead.

probably my bad. merge mistake. I take a look and commit changes. thanks

Also, hold off on my approval for a second. I have some more feedback of bugs to log...

bugs in what? If they are in the new editor they may be known issues. we're not saying this is done. we are trying to make it easier to work on it in parallel. that's why we are merging it as TestApp

I removed those 2 functions from DataSummaryPanel

I just thought we might want to log new bugs as we notice them. If all we're looking for is something to unify how we develop then yeah let's merge it. I just don't want issues to go-on noticed without being logged.

Okay, barring the known issues that we'll log later, this is good to merge.

Ignoring look and feel, we can merge this. Im adding an issue to include the paper background for flux notes editor so that it is consistent with the other 2 panels


fix(readme-score): ensure scoreData are returned for READMEs

Pull request (PR)
Add an encrypted notification token so that Travis CI
can post to the commonality workspace channel
#readme-inspector.
Associated issue(s)
Closes #18

[x] 1.  The acceptance criteria for all associated issues have been completed, tested, and validated.
[x] 2.  The README.md either reflects my changes or does not require updates.
[x] 3.  The CONTRIBUTING.md document either reflects my changes or does not require updates.

Souce code analysis

Code quality summary

Measure
Scores

Quality gate

Complexity

Duplications

Issues

Maintainability

Reliability

Security

Test coverage

Code quality, vulnerability, and standards compliance tools

Code Style
Linters
Test frameworks

Standard JS user guide
ESlint user guide
Jest user guide

How to format, lint, and test your changes
Open a Terminal, go to the root directory for readme-inspector, and run:
$ npm test

:tada: This PR is included in version 1.0.2 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Benchmarking with criterion.rs

To make things faster we need to benchmark them. Add https://github.com/bheisler/criterion.rs and set up a few benchmarks.
To have reproducible results, everything based on pseudo random dice needs to be initialised with a seed.

Done


Test Vitamio

Include Vitamio or Exoplayer inside this library would be awesome!

Yes I am thinking about this , Vitamio only one purpose is support many video formate,  If we need that .
Vitamio's parent company is miaopai , they use mp4 to show videos, they needless  to use Vitamio and that project must not use Vitamio .

But Vitamio support HLS stream , mabey that reason is strong to let us use Vitamio ,  Vitamio is big I think if we create new branch to  release jiecaovideoplayer with Vitamio

I had already used Vitamio in my app and I discovered an issue:
https://github.com/yixia/VitamioBundle/issues/312
In my app I need to use android:targetSdkVersion = 23.
This was my workaround: I used native android VideoView for api >= 21 (Lollipop) that should support HLS,  and Vitamio VideoView for  api < 21

In alternative it could use ExoPlayer

@carmelo-ruota  sorry miaopai have live stream

@carmelo-ruota you think which is better , and I also test both engine

I think Exoplayer is better. You could also see this: https://github.com/brianwernick/ExoMedia

@carmelo-ruota thank you your advise , I will try it later , if you have instrest you can try which media engine suit this project  :)

I think ExoPlayer is more suitable for this project. However, you can take a look to ExoMedia to get ideas. How long time you think to need, to integrate one of these libraries into this project?

@carmelo-ruota So many work every day, Aprial 2-4 is chinese Ching Ming Festival ， I have time to remove eventbus ,change video engine for more video formate.
Then in other a few days I make the project real Custom ui .This project will accepted by more people.
5 days ago I mean if you have interest you can integrate ExoPlayer into the project.

Unfortunately I have a lot of work to do in this period, so I have no time
to study and integrate ExoPlayer into your project :-(
2016-03-30 4:35 GMT+02:00 Nathen<EMAIL_ADDRESS>
@carmelo-ruota https://github.com/carmelo-ruota So many work every day,
Aprial 2-4 is chinese Ching Ming Festival ， I have time to remove eventbus
,change video engine for more video formate.
Then in other a few days I make the project real Custom ui .This project
will accepted by more people.
5 days ago I mean if you have interest you can integrate ExoPlayer into
the project.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/lipangit/jiecaovideoplayer/issues/40#issuecomment-203204506

Never mind ^_^ , I will do that .

Any progress? :-)

挺好的，望早点支持多视频格式~！

@baoziguo 骚年，来个star吧

@lipangit no problem，坐等多视频格式。放分支里就挺好的，你上面说的多视频格式以及真正的自定义UI，正好是我想需要的。么么艹~！

@baoziguo 必将不负众望

I'm a complete outsider to this project, but in my opinion, adding Vitamio would not be optimal as it is a very heavy framework. Adding Vitamio to the project could result in ~25mb increase in size of the installable APK file for end users.

not import vitamio


[BUG] Page.goto: Connection closed while reading from the driver

When you loop through pages, the following error occurs: Exception: Page.goto: Connection closed while reading from the driver
browser = await pw.chromium.launch(headless=False)
context = await browser.new_context()
page = await context.new_page()
for _ in range(10):
    await page.goto("https://browserscan.net/")
    await asyncio.sleep(1)

await context.close()
await browser.close()

    if (this.isDetached()) throw new Error('Frame was detached');
                                 ^

Error: Frame was detached
    at Frame._context (C:\Users\mermyly\AppData\Local\pypoetry\Cache\virtualenvs\avito-parser-aOSDG-gG-py3.12\Lib\site-packages\patchright\driver\package\lib\server\frames.js:606:34)
    at runNextTicks (node:internal/process/task_queues:60:5)
    at process.processImmediate (node:internal/timers:454:9)

     File "C:\Users\mermyly\AppData\Local\pypoetry\Cache\virtualenvs\avito-parser-aOSDG-gG-py3.12\Lib\site-packages\patchright\_impl\_connection.py", line 472, in wrap_api_call
    raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None
Exception: Page.goto: Connection closed while reading from the driver

Duplicate of https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-python/issues/3


How could I open in new window/tab/buf when jump to define(gD)

When using 'jump to define', the new file always replace the original file buffer.

Just type gd to open float window to query the definition of the symbol under the cursor.
By the way, in float window, you can type <C-w>t to turn current window into a new tab.
Please see keymaps.md.

I will close this issue. The issue list only for bug report. For question and suggestion, please open a discussion. Read Contributing first.


Low default value for min_sum_hessian_in_leaf

The default value of min_sum_hessian_in_leaf (AKA min_child_weight) in LightGBM is 1e-3 while the default value for the corresponding parameter in XGBoost (min_child_weight) is 1. Is there a difference in how depth-wise and leaf-wise algorithms use this parameter or any other reason for having such a low default value for this parameter in LightGBM?
Thank you.

Hi. I assumed it would be appropriate to ask the above questions here because it could lead to an improvement in the documentation. If you disagree, please let me know if there is a better place to ask (e.g., a mailing list). Thank you.

Thank you for clarifying.


kubelet  top  pods  -n  namespaces

use : kubelet  top  pods  -n  namespaces ;  err: Metrics not available for pod   ,   how  to solve?

Not a place for such questions. GitHub issues are only for development purposes. Please use the prometheus-users mailing list which you can find here https://prometheus.io/community/


post.date|date or post.post_date|date?

Is this a support or usage question? Please post to StackOverflow using the Timber tag
Expected behavior
when I format a date with |date, I get a incorrect value (today)
Actual behavior
I have a post from march 28. When I try to format the date with |date, it gets incorrect. But it's correct if I use post.post_date. So, maybe I should use post.post_date|date and not post.date|format|
Steps to reproduce behavior

post date on database: 2017-03-28 13:58:46
trying to format:
{{post.date}}
return 28 de março de 2017 (correct).
{{post.date | date("d \d\e F")}} returns 23 de outubro, which is today date, on pt_BR (incorrect)
{{post.post_date | date("d \d\e F")}} returns 28 de março, which is correct.
What version of WordPress, PHP and Timber are you using?
Wordpress: 4.8.2
PHP: 7.1
Timber: 1.5.2

How did you install Timber? (for example, from GitHub, Composer/Packagist, WP.org?)
Upgraded to newest version via plugin updater in WordPress dashboard

Hi @waltercruz you should be able to do....
{{ post.date("d \d\e F") }}
... and have it return what you're looking for. Give it a shot and let me know!

Ouch! Awesome. So simple!
Will test id today.

Maybe is good to suggest using the function instead of filter here?

@waltercruz — yep, good call. I'll update those in the next few days. Assigning to myself to remember

docs are now up-to-date; thanks again for the question + suggestion @waltercruz


Crashing with REF 780

Describe the bug
A clear and concise description of what the bug is. If the bug only started to happen after a certain REFramework update, let us know which version the bug appeared in.
I kept crashing so I reinstalled REF and only used one mod, still crashed. Works fine when I uninstall REF
**Upload logs and any crash reframework_crash.dmp
Locate the re2_framework_log.txt in your game directory and upload it along with the issue.
If you crashed, upload the reframework_crash.dmp file as well.
Identify the REFramework version
If the REFramework version or commit hash is known, submit this information.
I'm on the latest 780 build
To Reproduce
Steps to reproduce the behavior:

have any mod using REF installed
launch with REF
See the crash

Expected behavior
A clear and concise description of what you expected to happen.
I expected game to run.
Screenshots
If applicable, add screenshots to help explain your problem.
None
Desktop and VR (please complete the following information):

Windows 11
RTX 3080ti
i5-12400f

Steam Deck/Linux (please complete the following information):

Proton version

Virtual Reality (please complete the following information):

Headset model
Runtime (OpenVR or OpenXR)

Additional context
Add any other context about the problem here.

Disable Medal.tv, this is causing the crashes.


Fix manifest.tmpl

A spurious {{/if}} appeared on the manifest.tmpl - this PR simply
removes this.
Signed-off-by: Andrew Thornton<EMAIL_ADDRESS>

Using :magic_wand:  to force merge as the manifest is currently broken.


Performance benchmarks on .NET 5

Description
Are there any benchmarks available for the library running on .NET 5?  We are busy upgrading from .NET 3.1 to .NET 5 and noticing a slow down in the performance of the library.  We are still trying to pinpoint things exactly, but I just wanted to reach out in the mean time to find out whether such benchmarks are available?  We are using v1.5.2 of the library .
How to reproduce
Checklist
Please provide the following information:

[ ] A complete (i.e. we can run it), minimal program demonstrating the problem. No need to supply a project file.
[ ] Confluent.Kafka nuget version.
[ ] Apache Kafka version.
[ ] Client configuration.
[ ] Operating system.
[ ] Provide logs (with "debug" : "..." as necessary in configuration).
[ ] Provide broker log excerpts.
[ ] Critical issue.

Did you also upgrade this library version? there were some defaults values changes between  latest versions  that, for us, caused some performance issues... So it may not be net 3.1/5 issues (we are also on net 5)

i'm not aware of any perf issues moving to .net 5. i'd be very interested to here of anything specifically that you find, and also the impact of config changes. we did make some default config changes to prevent scenarios where people were inadvertently using enormous amounts of bandwidth (which would result in an unnecessarily high confluent cloud usage bill), but we did not believe they would have significant impact in the vast majority of cases.

I'm still investigating, but I just want to share my findings thus far. My setup is:

running everything locally on Windows 10 machine including local kafka (as docker container), local postgres and aspnet.core application
firing off a subsection of our test suite locally from the command line to create parallel load
running the same tests on .NET Core 3.1 (our current)
running the same tests again after upgrading to .NET Core 5
using 1.5.2 of the Confluent.Kafka library for both scenarios.  the only change is that we've update only the .NET core libraries to .NET 5.  all other client libraries (including Confluent.Kafka) stays the same between the two runs
to eliminate the overhead on our side when consuming the message received from Kafka, we simply do await Task.CompletedTask as illustrated in the following code snippet and immediately call Commit on the consumer

private async Task Consume()
{
    _logger.ConsumerStarted(ToString());

    try
    {
        while (!_cts.IsCancellationRequested)
        {
            try
            {
                var consumerResult = _consumer.Consume(_cts.Token);

                if (consumerResult.IsPartitionEOF)
                    continue;

                //await Handle(consumerResult.CreateEnvelope());
                await Task.CompletedTask;

                _consumer.Commit();
            }
            catch (OperationCanceledException)
            {
                // Ensure the consumer leaves the group cleanly and final offsets are committed.
                _consumer.Close();

                _logger.ConsumerShutdown(ToString(), "Consumer cancelled");
            }
            catch (Exception ex)
            {
                _logger.ConsumerException(ToString(), ex);
            }
        }
    }
    finally
    {
        Dispose();
    }
}

Here's a dotTrace profiler snapshot showing the Flame Graph for the .NET Core 3.1 run:

Here's a dotTrace profiler snapshot showing the Flame Graph for the .NET Core 5 run:

Notice that in the .NET Core 5 run the top method is around the GetTopicPartitionOffsetErrorList in the Kafka client library.  In the .NET Core 3.1 run the top method is around our own code.  For the GetTopicPartitionOffsetErrorList the majority of the overhead is around the PtrToStructureHelper it seems.
Not sure why this is the case, but I see the method is doing Linq query.  From the .NET Core 5 release notes I find the following work around Linq.  I'm still investigating further.  Be interested to know your thoughts.

This appears to be in the Commit call. Since that call is synchronous, using that after every consume will result in low throughput. And since you shouldn't do that, this is probably not a significant perf regression. Recommend using StoreOffsets and setting EnableAutoOffsetStore to false to achieve at-least once semantics.

@mhowlett Thank you so much for the reply.  I understand that this is not a performance regression (i.e. nothing changed in .NET kafka lib), but if the runtime performance for a specific method of the .NET kafka library driven by the same code is so different across .NET Core 3.1 and .NET Core 5 does this not warrant an investigation?  I had a look at the benchmarking examples but these do not seem to use the Commit call.  I will investigate this further on my side and get back with further results.
W.r.t the synchronous Commit, we are not looking for at-least-once semantics but exactly-once semantics.  Is this possible using the EnableAutoOffsetStore mechanisms mentioned?

it's worth investigating, but it won't get priority because it's not an important use.
what you have is at least once processing, not exactly once processing. for exactly once processing your handle method will need to be idempotent and you'll need to use kafka transactions.


chore(weave): Updates to name also update grid config

Fixes: https://wandb.atlassian.net/browse/WB-14208
Sometimes when grid config wasnt set up changing name would duplicate the panel in the gridConfig, causing a blank panel to appear
before
https://github.com/wandb/weave/assets/25037002/2a746f89-ff40-432f-8bc3-db5f38af196d
After
https://github.com/wandb/weave/assets/25037002/018431c2-220e-4180-83db-1a53ef5f05fa

Yup if gridConfigIndex === -1 then the grid config will update itself


extension sort:  example for sort_col_at_start[]

Hy I'm try to find a example/documentation for sort_col_at_start to  sort a column descending at start
my code at the moment, but I'm not sure that this was the idea since even google does not find any hint to sort_col_at_start
var tf = new TableFilter( 'log_table', {
            base_path: "/tablefilter/",
            alternate_rows: true,
            rows_counter: true,
            btn_reset: true,
            highlight_keywords: true,
            status_bar: true,
            filters_row_index: 1,
            enable_checklist_reset_filter: false,
            msg_filter: 'Filtering...',
            col_2: 'checklist',
            col_3: 'checklist',
            col_widths: [ "5%", "10%", "7%", "7%"  ],
            extensions: [{
                name: 'sort',
                types: [ 'number', 'none', 'none', 'none', 'none' ],
                sort_col_at_start: [ false, 'null', 'null', 'null', 'null'  ]
                }]
})

Hi @m67hoff,
You just need to specify the column index and a boolean set true for descending sort, sort_col_at_start: [2, true].
Sort documentation:
https://github.com/koalyptus/TableFilter/wiki/3.1-Sort
Cheers

Hy,
thanks that helped.
BTW:  I already had looked into  the  3.1-sort wiki above before asking.  However because of the "table formatting"  in my firefox I was not aware that there are "more columns" also with a example:

thanks again for help - and the really helpful tablefilter library   (can close now)
Grüße aus Heidelberg - Michael

Thanks Micheal, it is the same for all browsers, it is due to GitHub's wiki page layout and table styling.