Error - ansible-playbook main.yml - Intstalling Docker Compose via Pip

Howdy all,
Trying to install this on my raspberry pi 3 B+ and getting this error when running the ansible playbook. After doing some digging I think it might be that my machine is trying to run the playbook with python 2 as opposed to python 3 but that is a shaky guess at best.

TASK [Install Docker Compose using Pip.] ***************************************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: ImportError: No module named pkg_resources
fatal: [<IP_ADDRESS>]: FAILED! => {"changed": false, "msg": "Failed to import the required Python library (setuptools) on raspberrypi's Python /usr/bin/python. Please read the module documentation and install it in the appropriate location. If the required library is installed, but Ansible is using the wrong Python interpreter, please consult the documentation on ansible_python_interpreter"}

I did come across other similar errors telling me to re-install python-setuptools. I did that, retried and the error persists.
Any help and advice for a noob would be appreciated.

To give an update I found - It looks like I did not have the pip for python 2 install so I installed that via sudo apt-get install python-pip and then re-ran the ansible playbook and got a different error this time.

TASK [Install Docker Compose using Pip.] ***************************************
fatal: [<IP_ADDRESS>]: FAILED! => {"changed": false, "cmd": ["/usr/bin/pip3", "install", "docker-compose"], "msg": "stdout: Collecting docker-compose\n  Using cached https://files.pythonhosted.org/packages/f3/3e/ca05e486d44e38eb495ca60b8ca526b192071717387346ed1031ecf78966/docker_compose-1.29.2-py2.py3-none-any.whl\nRequirement already satisfied: PyYAML<6,>=3.10 in /usr/local/lib/python3.5/dist-packages (from docker-compose)\nCollecting python-dotenv<1,>=0.13.0 (from docker-compose)\n  Using cached https://files.pythonhosted.org/packages/5c/0c/9c5d5dd254e9e7a32d34777cc6fd33cbeb174744061458b88470aecbd1d6/python_dotenv-0.18.0-py2.py3-none-any.whl\nCollecting docker[ssh]>=5 (from docker-compose)\n\n:stderr:   Could not find a version that satisfies the requirement docker[ssh]>=5 (from docker-compose) (from versions: 2.0.0, 2.0.1, 2.0.2, 2.1.0, 2.2.0, 2.2.1, 2.3.0, 2.4.0, 2.4.1, 2.4.2, 2.5.0, 2.5.1, 2.6.0, 2.6.1, 2.7.0, 3.0.0, 3.0.1, 3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.2.0, 3.2.1, 3.3.0, 3.4.0, 3.4.1, 3.5.0, 3.5.1, 3.6.0, 3.7.0, 3.7.1, 3.7.2, 3.7.3, 4.0.0, 4.0.1, 4.0.2, 4.1.0, 4.2.0, 4.2.1, 4.2.2, 4.3.0, 4.3.1, 4.4.0, 4.4.1, 4.4.2, 4.4.3, 4.4.4)\nNo matching distribution found for docker[ssh]>=5 (from docker-compose)\n"}

So a different error this time, but still not sure what could be causing it.

@W00glin - You should really try to run this on Python 3 — ideally run pip uninstall ansible ansible-core to make sure it's gone. Then run sudo apt install -y python3-pip. Then pip3 install ansible, then try running this playbook again. Python 2 is EOL and hard to work with now.

My mistake. I was under the impression I was attempting to run this playbook with python3. It might be obvious that I am not much of a developer or do a lot with ansible. I digress. I tried running the commands you listed and got an error Cannot uninstall requirement ansible, not installed. Re-ran the playbook and still got the same error.

Hello
i else received the same error:
fatal: [<IP_ADDRESS>]: FAILED! => {"changed": false, "cmd": ["/usr/local/bin/pip3", "install", "docker-compose"], "msg": "stdout: Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple\nCollecting docker-compose\n  Using cached https://www.piwheels.org/simple/docker-compose/docker_compose-1.29.2-py2.py3-none-any.whl (114 kB)\nCollecting websocket-client<1,>=0.32.0\n  Using cached https://www.piwheels.org/simple/websocket-client/websocket_client-0.59.0-py2.py3-none-any.whl (67 kB)\nCollecting distro<2,>=1.5.0\n  Using cached https://www.piwheels.org/simple/distro/distro-1.5.0-py2.py3-none-any.whl (18 kB)\nCollecting jsonschema<4,>=2.5.1\n  Using cached https://www.piwheels.org/simple/jsonschema/jsonschema-3.2.0-py2.py3-none-any.whl (56 kB)\nCollecting docker[ssh]>=5\n  Using cached https://www.piwheels.org/simple/docker/docker-5.0.0-py2.py3-none-any.whl (146 kB)\nCollecting texttable<2,>=0.9.0\n  Using cached https://www.piwheels.org/simple/texttable/texttable-1.6.3-py2.py3-none-any.whl (10 kB)\nCollecting python-dotenv<1,>=0.13.0\n  Using cached https://www.piwheels.org/simple/python-dotenv/python_dotenv-0.18.0-py2.py3-none-any.whl (18 kB)\nCollecting requests<3,>=2.20.0\n  Using cached https://www.piwheels.org/simple/requests/requests-2.25.1-py2.py3-none-any.whl (61 kB)\nCollecting PyYAML<6,>=3.10\n  Using cached PyYAML-5.4.1-cp38-cp38-linux_armv7l.whl\nCollecting docopt<1,>=0.6.1\n  Using cached https://www.piwheels.org/simple/docopt/docopt-0.6.2-py2.py3-none-any.whl (13 kB)\nCollecting dockerpty<1,>=0.4.1\n  Using cached https://www.piwheels.org/simple/dockerpty/dockerpty-0.4.1-py3-none-any.whl (16 kB)\nCollecting paramiko>=2.4.2\n  Using cached https://www.piwheels.org/simple/paramiko/paramiko-2.7.2-py2.py3-none-any.whl (206 kB)\nRequirement already satisfied: six>=1.3.0 in /usr/local/lib/python3.8/site-packages (from dockerpty<1,>=0.4.1->docker-compose) (1.15.0)\nCollecting attrs>=17.4.0\n  Using cached https://www.piwheels.org/simple/attrs/attrs-21.2.0-py2.py3-none-any.whl (53 kB)\nCollecting pyrsistent>=0.14.0\n  Using cached pyrsistent-0.18.0-cp38-cp38-linux_armv7l.whl\nRequirement already satisfied: setuptools in /usr/local/lib/python3.8/site-packages (from jsonschema<4,>=2.5.1->docker-compose) (49.2.1)\nCollecting cryptography>=2.5\n  Using cached cryptography-3.4.7.tar.gz (546 kB)\n  Installing build dependencies: started\n  Installing build dependencies: finished with status 'done'\n  Getting requirements to build wheel: started\n  Getting requirements to build wheel: finished with status 'done'\n    Preparing wheel metadata: started\n    Preparing wheel metadata: finished with status 'done'\nCollecting bcrypt>=3.1.3\n  Using cached bcrypt-3.2.0-cp38-cp38-linux_armv7l.whl\nCollecting pynacl>=1.0.1\n  Using cached PyNaCl-1.4.0-cp38-cp38-linux_armv7l.whl\nCollecting cffi>=1.1\n  Using cached cffi-1.14.5.tar.gz (475 kB)\nCollecting pycparser\n  Using cached https://www.piwheels.org/simple/pycparser/pycparser-2.20-py2.py3-none-any.whl (112 kB)\nCollecting chardet<5,>=3.0.2\n  Using cached https://www.piwheels.org/simple/chardet/chardet-4.0.0-py2.py3-none-any.whl (178 kB)\nCollecting urllib3<1.27,>=1.21.1\n  Using cached https://www.piwheels.org/simple/urllib3/urllib3-1.26.6-py2.py3-none-any.whl (138 kB)\nCollecting idna<3,>=2.5\n  Using cached https://www.piwheels.org/simple/idna/idna-2.10-py2.py3-none-any.whl (58 kB)\nCollecting certifi>=2017.4.17\n  Using cached https://www.piwheels.org/simple/certifi/certifi-2021.5.30-py2.py3-none-any.whl (145 kB)\nUsing legacy 'setup.py install' for cffi, since package 'wheel' is not installed.\nBuilding wheels for collected packages: cryptography\n  Building wheel for cryptography (PEP 517): started\n  Building wheel for cryptography (PEP 517): finished with status 'error'\nFailed to build cryptography\n\n:stderr:   ERROR: Command errored out with exit status 1:\n   command: /usr/local/bin/python3.8 /usr/local/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel /tmp/tmpjs7ut37j\n       cwd: /tmp/pip-install-pk4zqt_6/cryptography_66682cd810dc4366bdb99d7de197d4da\n  Complete output (165 lines):\n  running bdist_wheel\n  running build\n  running build_py\n  creating build\n  creating build/lib.linux-armv7l-3.8\n  creating build/lib.linux-armv7l-3.8/cryptography\n  copying src/cryptography/fernet.py -> build/lib.linux-armv7l-3.8/cryptography\n  copying src/cryptography/__about__.py -> build/lib.linux-armv7l-3.8/cryptography\n  copying src/cryptography/utils.py -> build/lib.linux-armv7l-3.8/cryptography\n  copying src/cryptography/exceptions.py -> build/lib.linux-armv7l-3.8/cryptography\n  copying src/cryptography/__init__.py -> build/lib.linux-armv7l-3.8/cryptography\n  creating build/lib.linux-armv7l-3.8/cryptography/x509\n  copying src/cryptography/x509/general_name.py -> build/lib.linux-armv7l-3.8/cryptography/x509\n  copying src/cryptography/x509/ocsp.py -> build/lib.linux-armv7l-3.8/cryptography/x509\n  copying src/cryptography/x509/certificate_transparency.py -> build/lib.linux-armv7l-3.8/cryptography/x509\n  copying src/cryptography/x509/base.py -> build/lib.linux-armv7l-3.8/cryptography/x509\n  copying src/cryptography/x509/extensions.py -> build/lib.linux-armv7l-3.8/cryptography/x509\n  copying src/cryptography/x509/oid.py -> build/lib.linux-armv7l-3.8/cryptography/x509\n  copying src/cryptography/x509/name.py -> build/lib.linux-armv7l-3.8/cryptography/x509\n  copying src/cryptography/x509/__init__.py -> build/lib.linux-armv7l-3.8/cryptography/x509\n  creating build/lib.linux-armv7l-3.8/cryptography/hazmat\n  copying src/cryptography/hazmat/_types.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat\n  copying src/cryptography/hazmat/_der.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat\n  copying src/cryptography/hazmat/_oid.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat\n  copying src/cryptography/hazmat/__init__.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat\n  creating build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives\n  copying src/cryptography/hazmat/primitives/hashes.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives\n  copying src/cryptography/hazmat/primitives/_asymmetric.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives\n  copying src/cryptography/hazmat/primitives/hmac.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives\n  copying src/cryptography/hazmat/primitives/poly1305.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives\n  copying src/cryptography/hazmat/primitives/_cipheralgorithm.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives\n  copying src/cryptography/hazmat/primitives/constant_time.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives\n  copying src/cryptography/hazmat/primitives/cmac.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives\n  copying src/cryptography/hazmat/primitives/padding.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives\n  copying src/cryptography/hazmat/primitives/__init__.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives\n  copying src/cryptography/hazmat/primitives/_serialization.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives\n  copying src/cryptography/hazmat/primitives/keywrap.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives\n  creating build/lib.linux-armv7l-3.8/cryptography/hazmat/backends\n  copying src/cryptography/hazmat/backends/interfaces.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends\n  copying src/cryptography/hazmat/backends/__init__.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends\n  creating build/lib.linux-armv7l-3.8/cryptography/hazmat/bindings\n  copying src/cryptography/hazmat/bindings/__init__.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/bindings\n  creating build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/serialization\n  copying src/cryptography/hazmat/primitives/serialization/pkcs7.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/serialization\n  copying src/cryptography/hazmat/primitives/serialization/base.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/serialization\n  copying src/cryptography/hazmat/primitives/serialization/pkcs12.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/serialization\n  copying src/cryptography/hazmat/primitives/serialization/ssh.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/serialization\n  copying src/cryptography/hazmat/primitives/serialization/__init__.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/serialization\n  creating build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric\n  copying src/cryptography/hazmat/primitives/asymmetric/dsa.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric\n  copying src/cryptography/hazmat/primitives/asymmetric/ec.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric\n  copying src/cryptography/hazmat/primitives/asymmetric/ed25519.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric\n  copying src/cryptography/hazmat/primitives/asymmetric/x448.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric\n  copying src/cryptography/hazmat/primitives/asymmetric/utils.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric\n  copying src/cryptography/hazmat/primitives/asymmetric/ed448.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric\n  copying src/cryptography/hazmat/primitives/asymmetric/padding.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric\n  copying src/cryptography/hazmat/primitives/asymmetric/dh.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric\n  copying src/cryptography/hazmat/primitives/asymmetric/__init__.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric\n  copying src/cryptography/hazmat/primitives/asymmetric/x25519.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric\n  copying src/cryptography/hazmat/primitives/asymmetric/rsa.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/asymmetric\n  creating build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/twofactor\n  copying src/cryptography/hazmat/primitives/twofactor/totp.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/twofactor\n  copying src/cryptography/hazmat/primitives/twofactor/utils.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/twofactor\n  copying src/cryptography/hazmat/primitives/twofactor/__init__.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/twofactor\n  copying src/cryptography/hazmat/primitives/twofactor/hotp.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/twofactor\n  creating build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/kdf\n  copying src/cryptography/hazmat/primitives/kdf/x963kdf.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/kdf\n  copying src/cryptography/hazmat/primitives/kdf/scrypt.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/kdf\n  copying src/cryptography/hazmat/primitives/kdf/hkdf.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/kdf\n  copying src/cryptography/hazmat/primitives/kdf/kbkdf.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/kdf\n  copying src/cryptography/hazmat/primitives/kdf/pbkdf2.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/kdf\n  copying src/cryptography/hazmat/primitives/kdf/__init__.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/kdf\n  copying src/cryptography/hazmat/primitives/kdf/concatkdf.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/kdf\n  creating build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/ciphers\n  copying src/cryptography/hazmat/primitives/ciphers/base.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/ciphers\n  copying src/cryptography/hazmat/primitives/ciphers/aead.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/ciphers\n  copying src/cryptography/hazmat/primitives/ciphers/algorithms.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/ciphers\n  copying src/cryptography/hazmat/primitives/ciphers/__init__.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/ciphers\n  copying src/cryptography/hazmat/primitives/ciphers/modes.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/primitives/ciphers\n  creating build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl\n  copying src/cryptography/hazmat/backends/openssl/ocsp.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl\n  copying src/cryptography/hazmat/backends/openssl/hashes.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl\n  copying src/cryptography/hazmat/backends/openssl/backend.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl\n  copying src/cryptography/hazmat/backends/openssl/dsa.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl\n  copying src/cryptography/hazmat/backends/openssl/ciphers.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl\n  copying src/cryptography/hazmat/backends/openssl/hmac.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl\n  copying src/cryptography/hazmat/backends/openssl/poly1305.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl\n  copying src/cryptography/hazmat/backends/openssl/ec.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl\n  copying src/cryptography/hazmat/backends/openssl/ed25519.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl\n  copying src/cryptography/hazmat/backends/openssl/encode_asn1.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl\n  copying src/cryptography/hazmat/backends/openssl/x448.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl\n  copying src/cryptography/hazmat/backends/openssl/utils.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl\n  copying src/cryptography/hazmat/backends/openssl/aead.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl\n  copying src/cryptography/hazmat/backends/openssl/cmac.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl\n  copying src/cryptography/hazmat/backends/openssl/ed448.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl\n  copying src/cryptography/hazmat/backends/openssl/dh.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl\n  copying src/cryptography/hazmat/backends/openssl/__init__.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl\n  copying src/cryptography/hazmat/backends/openssl/x25519.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl\n  copying src/cryptography/hazmat/backends/openssl/decode_asn1.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl\n  copying src/cryptography/hazmat/backends/openssl/rsa.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl\n  copying src/cryptography/hazmat/backends/openssl/x509.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/backends/openssl\n  creating build/lib.linux-armv7l-3.8/cryptography/hazmat/bindings/openssl\n  copying src/cryptography/hazmat/bindings/openssl/_conditional.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/bindings/openssl\n  copying src/cryptography/hazmat/bindings/openssl/binding.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/bindings/openssl\n  copying src/cryptography/hazmat/bindings/openssl/__init__.py -> build/lib.linux-armv7l-3.8/cryptography/hazmat/bindings/openssl\n  running egg_info\n  writing src/cryptography.egg-info/PKG-INFO\n  writing dependency_links to src/cryptography.egg-info/dependency_links.txt\n  writing requirements to src/cryptography.egg-info/requires.txt\n  writing top-level names to src/cryptography.egg-info/top_level.txt\n  reading manifest file 'src/cryptography.egg-info/SOURCES.txt'\n  reading manifest template 'MANIFEST.in'\n  no previously-included directories found matching 'docs/_build'\n  warning: no previously-included files found matching 'vectors'\n  warning: no previously-included files matching '*' found under directory 'vectors'\n  warning: no previously-included files matching '*' found under directory '.github'\n  warning: no previously-included files found matching 'release.py'\n  warning: no previously-included files found matching '.coveragerc'\n  warning: no previously-included files found matching 'codecov.yml'\n  warning: no previously-included files found matching '.readthedocs.yml'\n  warning: no previously-included files found matching 'dev-requirements.txt'\n  warning: no previously-included files found matching 'tox.ini'\n  warning: no previously-included files found matching 'mypy.ini'\n  warning: no previously-included files matching '*' found under directory '.zuul.d'\n  warning: no previously-included files matching '*' found under directory '.zuul.playbooks'\n  adding license file 'LICENSE.BSD'\n  adding license file 'LICENSE'\n  adding license file 'LICENSE.PSF'\n  adding license file 'LICENSE.APACHE'\n  writing manifest file 'src/cryptography.egg-info/SOURCES.txt'\n  copying src/cryptography/py.typed -> build/lib.linux-armv7l-3.8/cryptography\n  running build_ext\n  generating cffi module 'build/temp.linux-armv7l-3.8/_padding.c'\n  creating build/temp.linux-armv7l-3.8\n  generating cffi module 'build/temp.linux-armv7l-3.8/_openssl.c'\n  running build_rust\n  \n      =============================DEBUG ASSISTANCE=============================\n      If you are seeing a compilation error please try the following steps to\n      successfully install cryptography:\n      1) Upgrade to the latest pip and try again. This will fix errors for most\n         users. See: https://pip.pypa.io/en/stable/installing/#upgrading-pip\n      2) Read https://cryptography.io/en/latest/installation.html for specific\n         instructions for your platform.\n      3) Check our frequently asked questions for more information:\n         https://cryptography.io/en/latest/faq.html\n      4) Ensure you have a recent Rust toolchain installed:\n         https://cryptography.io/en/latest/installation.html#rust\n      5) If you are experiencing issues with Rust for *this release only* you may\n         set the environment variable CRYPTOGRAPHY_DONT_BUILD_RUST=1.\n      =============================DEBUG ASSISTANCE=============================\n  \n  error: can't find Rust compiler\n  \n  If you are using an outdated pip version, it is possible a prebuilt wheel is available for this package but pip is not able to install from it. Installing from the wheel would avoid the need for a Rust compiler.\n  \n  To update pip, run:\n  \n      pip install --upgrade pip\n  \n  and then retry package installation.\n  \n  If you did intend to build this package from source, try installing a Rust compiler from your system package manager and ensure it is on the PATH during installation. Alternatively, rustup (available at https://rustup.rs) is the recommended way to download and update the Rust compiler toolchain.\n  \n  This package requires Rust >=1.41.0.\n  ----------------------------------------\n  ERROR: Failed building wheel for cryptography\nERROR: Could not build wheels for cryptography which use PEP 517 and cannot be installed directly\n"}
what we can do?

@Hat3 - Please try installing on a Python 3 version: https://github.com/geerlingguy/internet-pi/issues/77#issuecomment-869785373 — and if you get that message also try upgrading pip following the command it shows: pip install --upgrade pip

i have fixed like this:
echo cryptography==3.1.1 > requirements.txt
pip install -r requirements.txt

I have this same error now. don't get why docker isn't installed or it can't find it.

Ok I'm making progress. I fixed the above error by manually copying docker from the .local in home/pi over to /usr/lib/python3/dist-packages. Then I got the same error but 'no module name websocket'. So then I manually copied over websocket as well.
Now I have this error:
fatal: [<IP_ADDRESS>]: FAILED! => {"changed": false, "msg": "Error connecting: Error while fetching server API version: ('Connection aborted.', PermissionError(13, 'Permission denied'))"}
for which i think i just need to reboot
Anyway, hope this helps someone else.

nope. now i have this error
fatal: [<IP_ADDRESS>]: FAILED! => {"changed": false, "msg": "Unable to load docker-compose. Try pip install docker-compose. Error: Traceback (most recent call last):\n  File "/tmp/ansible_community.docker.docker_compose_payload_t2bj0jj8/ansible_community.docker.docker_compose_payload.zip/ansible_collections/community/docker/plugins/modules/docker_compose.py", line 483, in \nModuleNotFoundError: No module named 'compose'\n"}

so i've gone round and round in circles trying to solve this. the above error is no longer relevant. I've reinstalled python 3 and uninstalled everything a million times. I'm stuck at
ansible-galaxy collection install -r requirements.yml
i now get the error: /usr/bin/env: ‘python’: No such file or directory
This is so general that I can't remember/figure out how to fix it.
have also tried ansible-galaxy collection install -r requirements.yml -e 'ansible_python_interpreter=/usr/bin/python'
to try to send it to different pythons.
still gives the same error

@benjackson1111 any idea what you did that resolved my initial and persistent issue? Still struggling to find a root cause :(

@benjackson1111 any idea what you did that resolved my initial and persistent issue? Still struggling to find a root cause :(

I copied in the files it was asking for to the python install it’s using. But I think this method is a dead end as I still couldn’t get it to work. I think it’s to do with it not using the python u think it is. There’s a way to specify the python interpreter but even then no matter what I do it gives constant errors similar to your one. I managed to reinstall everything and get away from those errors but now I have the simple python error: /usr/bin/env: ‘python’: No such file or directory
Which I can’t find a solution to

So basically copy in docker and web socket from where it got installed to the other python directories u might have. It was a trial and error process.

fixed python not found, just a bash issue i think, after multiple attempts at reinstalling python3 in different ways.
next error is this:
fatal: [<IP_ADDRESS>]: FAILED! => {"ansible_facts": {}, "changed": false, "failed_modules": {"ansible.legacy.setup": {"ansible_facts": {"discovered_interpreter_python": "/usr/local/bin/python3.9"}, "cmd": "/usr/bin/lsb_release -a", "failed": true, "invocation": {"module_args": {"fact_path": "/etc/ansible/facts.d", "filter": [], "gather_subset": ["all"], "gather_timeout": 10}}, "msg": "[Errno 2] No such file or directory: b'/usr/bin/lsb_release'", "rc": 2, "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": [], "warnings": ["Platform linux on host <IP_ADDRESS> is using the discovered Python interpreter at /usr/local/bin/python3.9, but future installation of another Python interpreter could change the meaning of that path. See https://docs.ansible.com/ansible/2.11/reference_appendices/interpreter_discovery.html for more information."]}}, "msg": "The following modules failed to execute: ansible.legacy.setup\n"}

now my python seems to be behaving, i went back to the instructions above, to uninstall. it actually uninstalled and reinstalled without error or weirdness for first time. now i have this error when running ansible-galaxy command:
-bash: /home/pi/.local/bin/ansible-galaxy: No such file or directory
and yes, in that directory there's nothing. I'm not sure why ansible has correctly installed but not installed where the script expects. i'll keep investigating.

added this export PATH=$PATH:/home/pi/ansible/bin
which stopped it complaining about ansible...but now the error is back to
/usr/bin/env: ‘python’: No such file or directory
which i just don't get. if i type python or python3 it goes into the python shell thing. python -V shows "Python 3.9.5"
why can't ansible find python?

duplicated python3 in /usr/local/bin to python and that fixed the error, but on ansible-playbook main.yml command i'm back to:
fatal: [<IP_ADDRESS>]: FAILED! => {"ansible_facts": {}, "changed": false, "failed_modules": {"ansible.legacy.setup": {"ansible_facts": {"discovered_interpreter_python": "/usr/local/bin/python3.9"}, "cmd": "/usr/bin/lsb_release -a", "failed": true, "invocation": {"module_args": {"fact_path": "/etc/ansible/facts.d", "filter": [], "gather_subset": ["all"], "gather_timeout": 10}}, "msg": "[Errno 2] No such file or directory: b'/usr/bin/lsb_release'", "rc": 2, "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": [], "warnings": ["Platform linux on host <IP_ADDRESS> is using the discovered Python interpreter at /usr/local/bin/python3.9, but future installation of another Python interpreter could change the meaning of that path. See https://docs.ansible.com/ansible/2.11/reference_appendices/interpreter_discovery.html for more information."]}}, "msg": "The following modules failed to execute: ansible.legacy.setup\n"}

man this is a torturorous experience
I followed this to relink python and python3 to the proper dir
https://stackoverflow.com/questions/58395566/lsb-release-command-not-found-in-latest-ubuntu-docker-container
Now I have a long nasty error I cannot fathom how to troubleshoot
TASK [Install Docker Compose using Pip.] *********************************************************** fatal: [<IP_ADDRESS>]: FAILED! => {"changed": false, "cmd": ["/usr/local/bin/pip3", "install", "docker-compose"], "msg": "\n:stderr: ERROR: Exception:\nTraceback (most recent call last):\n  File \"/usr/local/lib/python3.9/site-packages/pip/_internal/cli/base_command.py\", line 180, in _main\n    status = self.run(options, args)\n  File \"/usr/local/lib/python3.9/site-packages/pip/_internal/cli/req_command.py\", line 205, in wrapper\n    return func(self, options, args)\n  File \"/usr/local/lib/python3.9/site-packages/pip/_internal/commands/install.py\", line 269, in run\n    session = self.get_default_session(options)\n  File \"/usr/local/lib/python3.9/site-packages/pip/_internal/cli/req_command.py\", line 77, in get_default_session\n    self._session = self.enter_context(self._build_session(options))\n  File \"/usr/local/lib/python3.9/site-packages/pip/_internal/cli/req_command.py\", line 87, in _build_session\n    session = PipSession(\n  File \"/usr/local/lib/python3.9/site-packages/pip/_internal/network/session.py\", line 275, in __init__\n    self.headers[\"User-Agent\"] = user_agent()\n  File \"/usr/local/lib/python3.9/site-packages/pip/_internal/network/session.py\", line 132, in user_agent\n    linux_distribution = distro.linux_distribution()  # type: ignore\n  File \"/usr/local/lib/python3.9/site-packages/pip/_vendor/distro.py\", line 125, in linux_distribution\n    return _distro.linux_distribution(full_distribution_name)\n  File \"/usr/local/lib/python3.9/site-packages/pip/_vendor/distro.py\", line 681, in linux_distribution\n    self.version(),\n  File \"/usr/local/lib/python3.9/site-packages/pip/_vendor/distro.py\", line 741, in version\n    self.lsb_release_attr('release'),\n  File \"/usr/local/lib/python3.9/site-packages/pip/_vendor/distro.py\", line 903, in lsb_release_attr\n    return self._lsb_release_info.get(attribute, '')\n  File \"/usr/local/lib/python3.9/site-packages/pip/_vendor/distro.py\", line 556, in __get__\n    ret = obj.__dict__[self._fname] = self._f(obj)\n  File \"/usr/local/lib/python3.9/site-packages/pip/_vendor/distro.py\", line 1014, in _lsb_release_info\n    stdout = subprocess.check_output(cmd, stderr=devnull)\n  File \"/usr/local/lib/python3.9/subprocess.py\", line 424, in check_output\n    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,\n  File \"/usr/local/lib/python3.9/subprocess.py\", line 528, in run\n    raise CalledProcessError(retcode, process.args,\nsubprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1.\nTraceback (most recent call last):\n  File \"/usr/local/bin/pip3\", line 8, in <module>\n    sys.exit(main())\n  File \"/usr/local/lib/python3.9/site-packages/pip/_internal/cli/main.py\", line 71, in main\n    return command.main(cmd_args)\n  File \"/usr/local/lib/python3.9/site-packages/pip/_internal/cli/base_command.py\", line 104, in main\n    return self._main(args)\n  File \"/usr/local/lib/python3.9/site-packages/pip/_internal/cli/base_command.py\", line 221, in _main\n    self.handle_pip_version_check(options)\n  File \"/usr/local/lib/python3.9/site-packages/pip/_internal/cli/req_command.py\", line 143, in handle_pip_version_check\n    session = self._build_session(\n  File \"/usr/local/lib/python3.9/site-packages/pip/_internal/cli/req_command.py\", line 87, in _build_session\n    session = PipSession(\n  File \"/usr/local/lib/python3.9/site-packages/pip/_internal/network/session.py\", line 275, in __init__\n    self.headers[\"User-Agent\"] = user_agent()\n  File \"/usr/local/lib/python3.9/site-packages/pip/_internal/network/session.py\", line 132, in user_agent\n    linux_distribution = distro.linux_distribution()  # type: ignore\n  File \"/usr/local/lib/python3.9/site-packages/pip/_vendor/distro.py\", line 125, in linux_distribution\n    return _distro.linux_distribution(full_distribution_name)\n  File \"/usr/local/lib/python3.9/site-packages/pip/_vendor/distro.py\", line 681, in linux_distribution\n    self.version(),\n  File \"/usr/local/lib/python3.9/site-packages/pip/_vendor/distro.py\", line 741, in version\n    self.lsb_release_attr('release'),\n  File \"/usr/local/lib/python3.9/site-packages/pip/_vendor/distro.py\", line 903, in lsb_release_attr\n    return self._lsb_release_info.get(attribute, '')\n  File \"/usr/local/lib/python3.9/site-packages/pip/_vendor/distro.py\", line 556, in __get__\n    ret = obj.__dict__[self._fname] = self._f(obj)\n  File \"/usr/local/lib/python3.9/site-packages/pip/_vendor/distro.py\", line 1014, in _lsb_release_info\n    stdout = subprocess.check_output(cmd, stderr=devnull)\n  File \"/usr/local/lib/python3.9/subprocess.py\", line 424, in check_output\n    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,\n  File \"/usr/local/lib/python3.9/subprocess.py\", line 528, in run\n    raise CalledProcessError(retcode, process.args,\nsubprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1.\n"}

so then if you look in the lsb_release file in /usr/bin you can see at the top there's the first line that references a python install. If you mess around with that and point it to your python3.9 then it will get past this. That'll get the process going, but then it'll fail again at docker-compose. So i'm really back where I started after another whole day of trying
fatal: [<IP_ADDRESS>]: FAILED! => {
"changed": false,
"cmd": [
"/usr/local/bin/pip3",
"install",
"docker-compose"
],
"invocation": {
"module_args": {
"chdir": null,
"editable": false,
"executable": "pip3",
"extra_args": null,
"name": [
"docker-compose"
],
Strangely, if I change the file to point to a non-existent python install, the playbook won't start but if you do it in the middle after it's gotten past the previous error, it won't stall at docker but ... wait for it....the same rust/crypto error all this started with. did the same echo crypto requirements as suggested above, but it didn't fix it this time.
None of this makes any sense to me. I have a good python install, everything is in place... i just don't get it.
The final error at the bottom of -vvv output is
Command '('lsb_release', '-a')' returned non-zero exit status 1.\n"

this is the most random, arbitrary troubleshoot i've done in the history of computing (as a kid who grew up in a computer store my parents owned, that's saying something).
So I had to change the version number in the requirements.txt to 2.8. Not 3.1.1. 2.8.
And I had to change the python in lsb_release to 3.7. Not 3. Not 3.9.
So got thru those errors, and much further than ever before. Got all the way to 'ensure pi-hole is running'.
The full traceback is:   File "/tmp/ansible_community.docker.docker_compose_payload_icj0g5lx/ansible_community.docker.docker_compose_payload.zip/ansible_collections/community/docker/plugins/modules/docker_compose.py", line 797, in cmd_up   File "/usr/local/lib/python3.9/site-packages/compose/project.py", line 705, in up     raise ProjectError( fatal: [<IP_ADDRESS>]: FAILED! => {     "changed": false,     "errors": [],     "invocation": {         "module_args": {             "api_version": "auto",             "build": false,             "ca_cert": null,             "client_cert": null,             "client_key": null,             "debug": false,             "definition": null,             "dependencies": true,             "docker_host": "unix://var/run/docker.sock",             "files": null,             "hostname_check": false,             "nocache": false,             "profiles": null,             "project_name": null,             "project_src": "/home/pi/pi-hole/",             "pull": false,             "recreate": "smart",             "remove_images": null,             "remove_orphans": false,             "remove_volumes": false,             "restarted": false,             "scale": null,             "services": null,             "ssl_version": null,             "state": "present",             "stopped": false,             "timeout": 10,             "tls": false,             "tls_hostname": null,             "use_ssh_client": false,             "validate_certs": false         }     },     "module_stderr": "Creating pihole ... \nHost is already in use by another container\nCreating pihole ... error\n",     "module_stdout": "latest: Pulling from pihole/pihole\nDigest: sha256:d2f764c4531515a1b93d5a8d1d82272ddc961e580f19c84ed764e4fa863823b1\nStatus: Downloaded newer image for pihole/pihole:latest\n",     "msg": "Error starting project Encountered errors while bringing up the project."

And there you go, the final problem was just on my end because I run aqualinkd for my pool control on port 80, so needed to change the docker-compose.yml file from 80:80 to 8080:80 and then connect on that port (don't make it 8080:8080, didn't work).
Hope this helps someone!


Small perf improvement in uniformsort

I think you can do something like this for a small performance improvement in uniformsort

Can you create and provide a benchmark comparing the solutions?

This and my other changes decrease the time to sort ~270MB by around 35%

@mgraczyk would you mind submitting your patch as a PR?
That would make it easier to review and for other people to test and benchmark

I tested this optimization with 57 servers and the results were not very satisfactory. @mgraczyk  @arvidn
1.03 main

Your branch #276

Closing issue based on closed PR and testing results


HBASE-24870 Ignore TestAsyncTableRSCrashPublish

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
1m 10s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+1 :green_heart:
hbaseanti
0m  0s
Patch does not have any anti-patterns.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

+1 :green_heart:
test4tests
0m  0s
The patch appears to include 1 new or modified test files.

_ branch-2.2 Compile Tests _

+1 :green_heart:
mvninstall
5m 16s
branch-2.2 passed

+1 :green_heart:
compile
0m 54s
branch-2.2 passed

+1 :green_heart:
checkstyle
1m 19s
branch-2.2 passed

+1 :green_heart:
shadedjars
4m  0s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 37s
branch-2.2 passed

+0 :ok:
spotbugs
3m 12s
Used deprecated FindBugs config; considering switching to SpotBugs.

+1 :green_heart:
findbugs
3m  9s
branch-2.2 passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
4m 38s
the patch passed

+1 :green_heart:
compile
0m 55s
the patch passed

+1 :green_heart:
javac
0m 55s
the patch passed

+1 :green_heart:
checkstyle
1m 17s
the patch passed

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

+1 :green_heart:
shadedjars
4m 11s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
hadoopcheck
25m 12s
Patch does not cause any errors with Hadoop 2.8.5 2.9.2 2.10.0 or 3.1.2 3.2.1.

+1 :green_heart:
javadoc
0m 34s
the patch passed

+1 :green_heart:
findbugs
3m 22s
the patch passed

_ Other Tests _

-1 :x:
unit
348m 32s
hbase-server in the patch failed.

+1 :green_heart:
asflicense
0m 38s
The patch does not generate ASF License warnings.

412m  5s

Reason
Tests

Failed junit tests
hadoop.hbase.client.TestFromClientSide3

hadoop.hbase.replication.TestReplicationChangingPeerRegionservers

hadoop.hbase.client.TestSnapshotTemporaryDirectoryWithRegionReplicas

hadoop.hbase.client.replication.TestReplicationAdminWithClusters

hadoop.hbase.client.TestCloneSnapshotFromClientNormal

hadoop.hbase.client.TestAdmin1

hadoop.hbase.replication.TestReplicationKillSlaveRS

hadoop.hbase.replication.TestReplicationKillSlaveRSWithSeparateOldWALs

hadoop.hbase.client.TestSnapshotTemporaryDirectory

hadoop.hbase.replication.TestReplicationSmallTests

Subsystem
Report/Notes

Docker
Client=19.03.12 Server=19.03.12 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2248/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/2248

Optional Tests
dupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile

uname
Linux f19e8fb01e66 4.15.0-65-generic #74-Ubuntu SMP Tue Sep 17 17:06:04 UTC 2019 x86_64 GNU/Linux

Build tool
maven

Personality
/home/jenkins/jenkins-home/workspace/Base-PreCommit-GitHub-PR_PR-2248/out/precommit/personality/provided.sh

git revision
branch-2.2 / d3a72d99d5

Default Java
1.8.0_181

unit
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2248/1/artifact/out/patch-unit-hbase-server.txt

Test Results
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2248/1/testReport/

Max. process+thread count
5105 (vs. ulimit of 10000)

modules
C: hbase-server U: hbase-server

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2248/1/console

versions
git=2.11.0 maven=2018-06-17T18:33:14Z) findbugs=3.1.11

Powered by
Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
3m 56s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+1 :green_heart:
hbaseanti
0m  0s
Patch does not have any anti-patterns.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

+1 :green_heart:
test4tests
0m  0s
The patch appears to include 1 new or modified test files.

_ branch-2.2 Compile Tests _

+1 :green_heart:
mvninstall
5m 36s
branch-2.2 passed

+1 :green_heart:
compile
0m 58s
branch-2.2 passed

+1 :green_heart:
checkstyle
1m 30s
branch-2.2 passed

+1 :green_heart:
shadedjars
4m 26s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 37s
branch-2.2 passed

+0 :ok:
spotbugs
3m 27s
Used deprecated FindBugs config; considering switching to SpotBugs.

+1 :green_heart:
findbugs
3m 26s
branch-2.2 passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
5m 14s
the patch passed

+1 :green_heart:
compile
0m 57s
the patch passed

+1 :green_heart:
javac
0m 57s
the patch passed

+1 :green_heart:
checkstyle
1m 27s
the patch passed

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

+1 :green_heart:
shadedjars
4m 25s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
hadoopcheck
27m 42s
Patch does not cause any errors with Hadoop 2.8.5 2.9.2 2.10.0 or 3.1.2 3.2.1.

+1 :green_heart:
javadoc
0m 35s
the patch passed

+1 :green_heart:
findbugs
3m 39s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
227m 33s
hbase-server in the patch passed.

+1 :green_heart:
asflicense
0m 28s
The patch does not generate ASF License warnings.

299m 10s

Subsystem
Report/Notes

Docker
Client=19.03.12 Server=19.03.12 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2248/2/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/2248

Optional Tests
dupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile

uname
Linux 7698c4fa7649 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 GNU/Linux

Build tool
maven

Personality
/home/jenkins/jenkins-home/workspace/Base-PreCommit-GitHub-PR_PR-2248/out/precommit/personality/provided.sh

git revision
branch-2.2 / a838d727fa

Default Java
1.8.0_181

Test Results
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2248/2/testReport/

Max. process+thread count
3996 (vs. ulimit of 10000)

modules
C: hbase-server U: hbase-server

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2248/2/console

versions
git=2.11.0 maven=2018-06-17T18:33:14Z) findbugs=3.1.11

Powered by
Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.


Modified legends and description based on inputs from implementation call

Added better description of the graphs, documentation and data source are added.

What is time period of latest Tools log level data that has been added?

It has all the syncthing data till Jan, 2019.  But we took only data corresponding to July 2018 to Jan, 2019 for graphs. I kept it for the sake of completeness.

Then I hope the observation period in the graphs names have been changed accordingly. I think we should try to have a graphs that can change dynamically based on  available timeline. Shall I go ahead and merge?

Yeah. Observation period in the graphs are appropriate. Yes, that would be
best thing to do. Will note this down among the improvements.
On Mon, Mar 11, 2019 at 4:39 PM SDQT<EMAIL_ADDRESS>wrote:

Then I hope the observation period in the graphs names have been changed
accordingly. I think we should try to have a graphs that can change
dynamically based on available timeline. Shall I go ahead and merge?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/CLIxIndia-Dev/clix_vis_demo/pull/6#issuecomment-471497626,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJiu5u290BJkBQB6XJi_pVcDldjVyjiBks5vVjmFgaJpZM4boF-C
.


fix(examples-styling): fixed checkbox and toggler getting hidden behind scrollbar

Fix for this issue https://github.com/iced-rs/iced/issues/2056
Column inside scrollable has Length::Fill so it is taking the entire width thus hiding check box and toggler. Added fixed width to scrollable so Lenth::Fill will be relative to fixed width.

Thanks!


TF_CLI_ARGS_plan doesn't work

Environment
$ terraform version
Terraform v1.2.9
on darwin_arm64
+ provider registry.terraform.io/hashicorp/null v3.1.1

$ tfmigrate --version
0.3.7

Overview
I would like to test the result of tfmigrate plan with Conftest. ref
To do it, we have to run Conftest against a plan file.
To create a plan file with tfmigrate, I passed the environment variable TF_CLI_ARGS_plan=-out=tfplan.out.
$ env TF_CLI_ARGS_plan="-out=tfplan.out" tfmigrate plan

2022/09/12 22:34:08 [INFO] AWS Auth provider used: "SharedCredentialsProvider"
2022/09/12 22:34:10 [INFO] [runner] unapplied migration files: [20220912214947_mv_fooo.hcl]
2022/09/12 22:34:10 [INFO] [runner] load migration file: tfmigrate/20220912214947_mv_fooo.hcl
2022/09/12 22:34:10 [INFO] [migrator] start state migrator plan
2022/09/12 22:34:10 [INFO]<EMAIL_ADDRESS>terraform version: 1.2.9
2022/09/12 22:34:10 [INFO]<EMAIL_ADDRESS>initialize work dir
2022/09/12 22:34:11 [INFO]<EMAIL_ADDRESS>get the current remote state
2022/09/12 22:34:13 [INFO]<EMAIL_ADDRESS>override backend to local
2022/09/12 22:34:13 [INFO]<EMAIL_ADDRESS>create an override file
2022/09/12 22:34:13 [INFO]<EMAIL_ADDRESS>creating local workspace folder in: terraform.tfstate.d/default
2022/09/12 22:34:13 [INFO]<EMAIL_ADDRESS>switch backend to local
2022/09/12 22:34:13 [INFO]<EMAIL_ADDRESS>compute a new state
2022/09/12 22:34:14 [INFO]<EMAIL_ADDRESS>check diffs
2022/09/12 22:34:14 [INFO]<EMAIL_ADDRESS>remove the override file
2022/09/12 22:34:14 [INFO]<EMAIL_ADDRESS>remove the workspace state folder
2022/09/12 22:34:14 [INFO]<EMAIL_ADDRESS>switch back to remote
2022/09/12 22:34:16 [INFO] [migrator] state migrator plan success!

But unfortunately, a plan file isn't created.
I think TF_CLI_ARGS_plan should work. https://github.com/minamijoyo/tfmigrate/issues/27#issuecomment-858211424
How to reproduce
resource "null_resource" "foo" {}

terraform {
  backend "s3" {
    bucket = "***"
    key    = "github/foo/v1/terraform.tfstate"
    region = "ap-northeast-1"
  }
}

Create a resource for migration.
$ terraform init
$ terraform apply

Change the resource address and create a migration file.
resource "null_resource" "fooo" {}

.tfmigrate.hcl
tfmigrate {
  migration_dir = "./tfmigrate"
  history {
    storage "s3" {
      bucket = "***"
      key    = "github/foo/history.json"
    }
  }
}

tfmigrate/20220912214947_mv_fooo.hcl
migration "state" "mv_foo" {
  actions = [
    "mv null_resource.foo null_resource.fooo",
  ]
}

Run tfmigrate plan.
$ env TF_CLI_ARGS_plan="-out=tfplan.out" tfmigrate plan

Expected Behaviour
tfplan.out is created.
Actual Behaviour
tfplan.out isn't created.
Of course, when we run terraform plan -out=tfplan.out, plan file is created properly.
$ terraform plan -out=tfplan.out
null_resource.foo: Refreshing state... [id=1351938300054449217]

Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following
symbols:
  + create
  - destroy

Terraform will perform the following actions:

  # null_resource.foo will be destroyed
  # (because null_resource.foo is not in configuration)
  - resource "null_resource" "foo" {
      - id = "1351938300054449217" -> null
    }

  # null_resource.fooo will be created
  + resource "null_resource" "fooo" {
      + id = (known after apply)
    }

Plan: 1 to add, 0 to change, 1 to destroy.

─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Saved the plan to: tfplan.out

To perform exactly these actions, run the following command to apply:
    terraform apply "tfplan.out"

Reference

https://github.com/suzuki-shunsuke/tfaction/issues/511#issuecomment-1243724749

Oh, I got it.
https://github.com/minamijoyo/tfmigrate/blob/6bd3c21aa8e103ea7e7a6ac039f8d07983a08744/tfexec/terraform_plan.go#L26-L43

As a workaround, we can use tfmigrate plan's -out option.
But this option is deprecated. https://github.com/minamijoyo/tfmigrate/commit/dba98a641d958ac7b1e87eee219d560a8ab22fcd
As you said, the plan file can't be used for terraform apply, but this still can be used for validation using conftest or something.
ref. https://github.com/suzuki-shunsuke/tfaction/issues/511#issuecomment-1243724749

Hi @suzuki-shunsuke, Thank you for reporting this!
I’m investigating the terraform show command behavior across some versions, and it turns out that the old terraform before v1.1.3 rejects a plan file generated by tfmigrate plan —out=tfplan.out as stale.
$ tfmigrate plan tfmigrate_test.hcl --out=tfplan.out
$ terraform show -json tfplan.out

Terraform v1.0.11: NG
Terraform v1.1.0: NG
Terraform v1.1.3: OK
Terraform v1.2.9: OK
Terraform v1.3.0-beta1: OK

It works after this change: https://github.com/hashicorp/terraform/pull/30205.
I think this limitation is acceptable for me as long as it works with the latest Terraform version. If no other concerns are found, we could revert the deprecation.

Thank you for your investigation!

it turns out that the old terraform before v1.1.3 rejects a plan file generated by tfmigrate plan —out=tfplan.out as stale.

Oh, I didn't know that.

I think this limitation is acceptable for me as long as it works with the latest Terraform version. If no other concerns are found, we could revert the deprecation.

I agree.

@suzuki-shunsuke Finally reverted the deprecation in #108. Thank you for reporting this!

Thank you for your quick update!


Fatal crash - NullPointerException: Attempt to read from field 'androidx.recyclerview.widget.RecyclerView be.digitalia.fosdem.fragments.RecyclerViewFragment$ViewHolder.recyclerView' on a null object reference

Hi,
Recently, I tested fosdem (v1.6.2) and encountered a fatal crash multuiple times. I tried to reproduce this issue with the action traces dumped by my testing tool, but I cannot reproduce it deterministically (also on the latest version v2.0.1). I guess the root cause may be related to the timing of actions. I posted the issue here. Let me know if you need more info. Thanks.
Event traces

GUI page where the crash happens (this crash happens after the last action in the above video was executed)

Stack trace:
 FATAL EXCEPTION: main
 Process: be.digitalia.fosdem, PID: 12643
 java.lang.NullPointerException: Attempt to read from field 'androidx.recyclerview.widget.RecyclerView be.digitalia.fosdem.fragments.RecyclerViewFragment$ViewHolder.recyclerView' on a null object reference
 	at be.digitalia.fosdem.fragments.RecyclerViewFragment.getRecyclerView(RecyclerViewFragment.java:129)
 	at be.digitalia.fosdem.fragments.BaseLiveListFragment$1.run(BaseLiveListFragment.java:54)
 	at androidx.paging.AsyncPagedListDiffer.onCurrentListChanged(AsyncPagedListDiffer.java:403)
 	at androidx.paging.AsyncPagedListDiffer.latchPagedList(AsyncPagedListDiffer.java:392)
 	at androidx.paging.AsyncPagedListDiffer$2$1.run(AsyncPagedListDiffer.java:345)
 	at android.os.Handler.handleCallback(Handler.java:739)
 	at android.os.Handler.dispatchMessage(Handler.java:95)
 	at android.os.Looper.loop(Looper.java:148)
 	at android.app.ActivityThread.main(ActivityThread.java:5417)
 	at java.lang.reflect.Method.invoke(Native Method)
 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

Thank you for your report!
According to the stack trace you provided, the problem was caused by a null ViewHolder in BaseLiveListFragment. As far as I can tell, this may not happen in version 2.0.1 since the Kotlin code properly checks for null.
I also recently refactored the way ViewHolders and Views are accessed in fragments to avoid this kind of problems so I believe the bug has already been fixed.
Can you test the version on the master branch to confirm there is no more bug, and open a new issue with the correct stack trace if you still manage to reproduce it? Thank you.

Note: It looks like the null check is also present in version 1.7.3. So only version 1.6.2 could crash with that stack trace.

Thanks for your confirmation and reply, @cbeyls !  Yes, I noted you very recently refactored this part. I will try to test on the master version again to see whether this issue still exists. Thanks.


Path problems in gulp tasks on Windows

So I've been trying to use Sass with .scss files and I noticed that when the gulp task runs it should be replacing '/scss' by '/css' but on Windows at this point we have something that looks like 'module\client\scss'.
Note: The less task also has the same problem. Perhaps the grunt config is also problematic.
For now I changed path.dirname.replace('/scss', '/css') to path.dirname.replace('scss', 'css') since it does the same thing but I'm not sure this is a good solution. If someone were to call their module "fooless" that could be problematic I guess...
What you guys think? Should we incorporate something like https://www.npmjs.com/package/slash to support both and keep the slashes? Add a string replace for the \ to /?
Let me know and I can make the PR.

Why not just do path.dirname.replace(/(\/|\\)scss/, '$1css')? This will handle both Windows and *nix.

For some reason I kept thinking with two steps! That does indeed work perfectly.
I also checked for grunt and the way it's done is different, we do not encounter this issue.
Should I make a PR ?

A PR for 0.4.0 would be great!

Good, I'll work on that for 0.4.0, I don't think we have gulp on master anyway!

Alright @ilanbiala, I just created the PR #489 with those changes, simple changes but let me know if there's any issue :)

This was resolved by #666 (https://github.com/Gym/mean/commit/3e378b4a54f7393b0fbe9f522fdd4a329c41b5f4)
Close

Thanks Ryan, closing.


Central cache stats

Here is my thinking regarding use of std::vector.
My concern is that ABI behind std::vector may change from compiler to
compiler or from compiler version to compiler version. On GNU systems it
seems unlikely that vector's representation might change. But on Windows it
seems to be common for newer versions of MSVC to have different C++ ABI.
So my concern is if we rely on std::vector in our API and ABI, and somebody
links to tcmalloc which is built with "wrong" ABI for std::vector, then
things will break.
Another thing is that it is generally good idea to always have matching
malloc_extension_c API for all things that we support in C++ API. So that
is perhaps good enough reason not to rely on std::vector.
On Sun, Nov 22, 2015 at 3:42 PM, gshirishfree<EMAIL_ADDRESS>wrote:

You can view, comment on, or merge this pull request online at:
https://github.com/gperftools/gperftools/pull/746
Commit Summary

[744] New API for central cache information
[744] New API for central cache information
Merge branch 'master' of github.com:gshirishfree/gperftools into
CentralCache_Stats

File Changes

M src/central_freelist.h
https://github.com/gperftools/gperftools/pull/746/files#diff-0 (7)
M src/gperftools/malloc_extension.h
https://github.com/gperftools/gperftools/pull/746/files#diff-1 (19)
M src/malloc_extension.cc
https://github.com/gperftools/gperftools/pull/746/files#diff-2 (6)
M src/tcmalloc.cc
https://github.com/gperftools/gperftools/pull/746/files#diff-3 (23)
M src/tests/frag_unittest.cc
https://github.com/gperftools/gperftools/pull/746/files#diff-4 (5)

Patch Links:

https://github.com/gperftools/gperftools/pull/746.patch
https://github.com/gperftools/gperftools/pull/746.diff

—
Reply to this email directly or view it on GitHub
https://github.com/gperftools/gperftools/pull/746.

uploded new patch for fixing comment. I'll think of any better way compare to vector.

Hi,
Can you take a look at this patch set ? Some how I am not able to merge this patch in one

I have rebased your patch and re-uploaded it here: https://github.com/alk/gperftools/commits/wip-central-cache-stats-patch
The patch looks ok. But since it is API that we'll have to support for long time I'll need to think about it a bit more. Ideal API is as generic and as implementation-independent as possible.
What is your use case for this new API? Where and how you're planning to use it ?

People allocate memory and forget to free memory, if such thing in there in data path that will eventually lead to memory leak. So, to catch this thing like early in stage.
I have seen in my application numerous memory leak, basically my system run out-of-memory after 15 days, the reason is there in leak in one of the central cache class. So, if there is API to get current information of class I can analyze the class information early in stage and catch there is leak in specific class.
I think this is general use case.

I see. But how exactly you're going to use those free list stats in order to deal with leaks ?
Also why GetStats isn't enough?

GetStats gave information about free memory, not inuse memory. Also GetStats give additional information, which I am not interested. This API give information about inuse, free, and no additional text parsing just simple array iteration.

Once I know the leak is from this class, from my application I will see who all are allocating near to this class size using malloc_size or tcmalloc_size and find out who is leaking.
We have our own override global new and delete there I'll track this class size, who are allocating and not freeing. OR There is generic API AddNewHook where people can track this specific class size.
You can argue pprof heap profiler will do this job for you, but it's very slow and it dump lot's of data because it track every class size.
Please let me know if it's not clear.

On Sun, Dec 13, 2015 at 9:47 AM, gshirishfree<EMAIL_ADDRESS>wrote:

Once I know the leak is from this class, from my application I will see
who all are allocating near to this class size using malloc_size or
tcmalloc_size and find out who is leaking.
We have our own override global new and delete there I'll track this class
size, who are allocating and not freeing. OR There is generic API
AddNewHook where people can track this specific class size.
You can argue pprof heap profiler will do this job for you, but it's very
slow and it dump lot's of data because it track every class size.
Please let me know if it's not clear.

There is actually much better way of dealing with leaks. Take a look at
heap profiler or see lighter-weight MallocExtension::GetHeapSample or
GetHeapGrowthStacks. All this approaches enable you to quickly hunt down
leaks by comparing profile samples.

I'll take a look at the API, but this is after we found there is leak.
To know there is leak we need this new API. Along with this it will give information about how memory is getting allocated, which bucket is used more and if they merge there usage in bucket etc etc.

On Mon, Dec 14, 2015 at 10:06 AM, gshirishfree<EMAIL_ADDRESS>wrote:

I'll take a look at the API, but this is after we found there is leak.
To know there is leak we need this new API. Along with this it will give
information about how memory is getting allocated, which bucket is used
more and if they merge there usage in bucket etc etc.

All of that info is available via heap sampling. Which can be always on. At
google it is always on for all services as far as I am aware for a very
small overhead.

I still believe this API will add more useful information for client, Unnecessary enabling heap sampling be default is not good option at-least for my high performance application, debug information should be enable when only needed.

On Mon, Dec 14, 2015 at 10:59 AM, gshirishfree<EMAIL_ADDRESS>wrote:

I still believe this API will add more useful information for client,
Unnecessary enabling heap sampling be default is not good option at-least
for my high performance application, debug information should be enable
when only needed.

Let me try to explain my thinking.
There is already existing legacy of malloc stats api's exposing too much of
implementation details which make no sense in other implementations. Take a
look at man mallinfo (and compare GNU version and freebsd version) as
example.
It's hard or maybe even impossible to expose useful info without tying it
too much to implementation details. In your case implementation detail is
size classes (and your api doesn't even expose info about large allocations
that are greater than largest size class).
So unless really necessary, I am reluctant to add very non-extensible
(there is no way to add or remove any fields in the struct) and
implementation-specific (what if we drop size classes or e.g. start
managing middle-sized objects differently?) API such us this.
And therefore I am asking why you need this. So far I don't see very strong
case for really needing such API. Specifically:
a) you can see "if there is leak" by using existing stats (if heap grows
that's worth checking for leak)
b) heap sampling is really effective and very low-overhead solution. It is
cheap enough so that it is kept enabled even for most performance and cost
sensitive services at Google.
BTW I was wrong about vectors. Since it is already used by one of methods
in MallocExtension it is okay to keep using it.
—

Reply to this email directly or view it on GitHub
https://github.com/gperftools/gperftools/pull/746#issuecomment-164526287
.


NFT Proxy should send the node name

@daman1807 showed me  this recently when making ipvs to fullstate... the NFT proxy doesnt send the node name when registering.

we should error in the brain when the backend doesnt send this on register
we should fix the issue in the NFT backend also
part of why i filed this issue was so that i could say the word "brain"

@jayunit100 we should definitely add that to the "brain".
Current Registration
type backend struct {
	cfg localsink.Config
}

func init() {
	backendcmd.Register("to-nft", func() backendcmd.Cmd { return &backend{} })
}

Possible Fix
hostname, err := os.Hostname()
return &backend{
        cfg: localsink.Config{NodeName: hostname},
}

/assign
Hi. If this is a beginner issue or it doesn't require expertise in Go, count me in!

backendcmd.Cmd provides BindFlags which calls the one from localsink.Config (https://github.com/kubernetes-sigs/kpng/blob/master/backends/nft/register.go#L38), which itself defaults to the hostname (https://github.com/kubernetes-sigs/kpng/blob/1b5bb66788498c660028885aa583400da7b9aecf/client/localsink/localsink.go#L45).
So, I'm still skeptical about this issue, that could come from an override to "empty" in the deployment (daemonset).

@mcluseau I logged all the localv1.Endpoint received in the callback and none of them were local, my understanding is that *localv1.Endpoint.Local is determined by the node name. Maybe @emabota can check whether it is being overridden or not?

@daman1807 how can I check that? What should I look for?

i guess we should check unit tests here

/close


Probable errors in the makefile

Hi,
Probably due to the fact that docker compose (v2) is still beta, I noticed the following:
~/hook-slinger$ make start_servers
docker compose up --build -d
make: docker: Permission denied
make: *** [makefile:96: start_servers] Error 127
~/hook-slinger$ sudo make start_servers
[sudo] password for user:
docker compose up --build -d
unknown flag: --build
See 'docker --help'.
So,
Usage:  docker compose [OPTIONS] COMMAND
...
Options:
--ansi string                Control when to print ANSI control characters
("never"|"always"|"auto") (default "auto")
--compatibility              Run compose in backward compatibility mode
--env-file string            Specify an alternate environment file.
-f, --file stringArray           Compose configuration files
--profile stringArray        Specify a profile to enable
--project-directory string   Specify an alternate working directory
(default: the path of the Compose file)
-p, --project-name string        Project name
Commands:
build       Build or rebuild services
.....
And
docker compose build --help
...
Options:
--build-arg stringArray   Set build-time variables for services.
--no-cache                Do not use cache when building the image
--progress string         Set type of progress output (auto, tty, plain,
quiet) (default "auto")
--pull                    Always attempt to pull a newer version of the image.
-q, --quiet                   Don't print anything to STDOUT
Finally, this worked, after changing makefile.
$make start_servers
docker compose up #--build -d
[+] Running 7/7
⠿ redis Pulled                                                                  51.2s
⠿ 59bf1c3509f3 Pull complete                                                   5.0s
⠿ 719adce26c52 Pull complete                                                   5.0s
....
Also,
sudo make stop_servers
....
Total reclaimed space: 2.265GB
docker compose down -t 1
unknown shorthand flag: 't' in -t
...
Though, -t  seems a valid flag.
docker compose down --help
...
-t, --timeout int       Specify a shutdown timeout in seconds (default 10)
However, when I remove the flag in
docker compose down #-t 1
docker: 'compose' is not a docker command.
...
So, I issued
~/hook-slinger$ docker compose down
[+] Running 5/5
⠿ Container hook-slinger-monitor-1  Removed                               0.3s
⠿ Container hook-slinger-worker-1   Removed                               0.2s
⠿ Container wh_app                  Removed                               0.3s
⠿ Container wh_redis                Removed                               0.3s
⠿ Network hook-slinger_default      Rem...                                0.1s

Isn't reproducible.


[CONTROLLER/SERVICE] fix dup az error

This PR is for:

Server

Fixes dup az error
Steps to reproduce the bug
Changes to fix the bug

add lcuuid unique index

Affected branches

main

Checklist

[ ] Added unit test to verify the fix.

 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.zhengya 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.You have signed the CLA already but the status is still pending? Let us recheck it.


SOLR-16017: Allow first registered SolrIndexSearcher to inform its configured caches

See: SOLR-16017
add a hook for initializing caches by passing a reference to the first registered searcher
This complements (and is analogous to) SolrCache.warm(...); together, the
new bootstrap(...) method and the existing warm(...) method allow for
consistency across the lifecycle of SolrCache instances.
There is an old comment about possibly passing SolrIndexSearcher in cache
init(...), and having the cache retain a reference to the searcher. We
prefer the approach taken here -- for now -- for backward compatibility,
and so that any change in how SolrIndexSearcher references are passed to
SolrCache instances may be considered as a discrete change.

obviated by https://github.com/apache/solr/pull/1351


sof-firmware: 2024.09 -> 2024.09.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/thesofproject/sof-bin/releases.
meta.description for sof-firmware is: Sound Open Firmware
meta.homepage for sof-firmware is: https://www.sofproject.org/
meta.changelog for sof-firmware is: https://github.com/thesofproject/sof-bin/releases/tag/v2024.09.1
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 2024.09.1 in filename of file in /nix/store/im95xs2vwar4bdmbhswzwffh5lghp43b-sof-firmware-2024.09.1

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

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

sof-firmware

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/im95xs2vwar4bdmbhswzwffh5lghp43b-sof-firmware-2024.09.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

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

Or:
nix build github:r-ryantm/nixpkgs/52d9819163a6e2387915fca0469e2468ccf07ed0#sof-firmware

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/im95xs2vwar4bdmbhswzwffh5lghp43b-sof-firmware-2024.09.1
ls -la /nix/store/im95xs2vwar4bdmbhswzwffh5lghp43b-sof-firmware-2024.09.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review

x86_64-linux

:white_check_mark: 1 package built:

sof-firmware

Maintainer pings
cc @lblasc @evenbrenden @hmenke for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

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

Merge conflict, closing to allow the bot to create a correct one.


adding my hubble peer to allowedPeers.mainnet.ts

Motivation
Describe why this issue should be fixed and link to any relevant design docs, issues or other relevant items.
Change Summary
Describe the changes being made in 1-2 concise sentences.
Merge Checklist
Choose all relevant options below by adding an x now or at any time before submitting for review

[ ] PR title adheres to the conventional commits standard
[ ] PR has a changeset
[ ] PR has been tagged with a change label(s) (i.e. documentation, feature, bugfix, or chore)
[ ] PR does not require changes to the protocol
[ ] All commits have been signed

Additional Context
If this is a relatively large or complex change, provide more details here that will help reviewers

PR-Codex overview
Detailed summary

Added a new entry for peerId 12D3KooWJEGQp3k3Zv87shripoWRcQUAMZmyWR5HoWzdEE1aKrXF with a comment mentioning @franceschina in the allowedPeers.mainnet.ts file.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

@NickFranceschina it looks like the linter is unhappy, you may need to run yarn lint before we can merge this

This peer ID was added with the new allow list in the network config here: https://github.com/farcasterxyz/allowlist-mainnet


No way to export support logs before logging in or after there's a connection error

Right now the only way to export support logs is via the Settings menu. However, there are a few scenarios where the settings menu isn't available, e.g.:

Before the user is logged in
On a reconnect error (overlays the full screen)
Embedded widgets/iframes
In those cases we should still be able to export the support logs somehow. Would also be nice to be able to have the version information accessible as well.

We will assign a keyboard shortcut to save the logs. Ctrl+Alt+Shift+L/Cmd-Option-Shift-L


Update KeyCode.data

I had a hard time finding it, may help other people.

I've merged it.
https://github.com/tekezo/Karabiner/commit/98d2fe6c3b6cd993f5ce497609b320eb7a741c24
You also can use EventViewer to find KeyCode name.
https://pqrs.org/osx/karabiner/document.html.en#eventviewer


Add new kdbgctrl command line option

This feature was added March 2020.

@josephpracharmsft - Thanks for the PR - fix should be live in a few minutes.


enhance LRUCache

What is the purpose of the change
update LRU to LRU-2
Brief changelog
To reduce cache pollution, use history list to filter one access data. This strategy will not accupy too much extra memory because the history list only saves the keys.
When the data accessed for the first time, add it to history list. If the size of history list reaches max capacity, eliminate the earliest data. When the data already exists in the history list, and be accessed for the second time, then it will be put into cache.
Verifying this change
Update LRUCacheTest and passed this test case, show as commit. The performance between LRU and LRU2 refer to https://blog.csdn.net/Victorgcx/article/details/104378378
Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Make sure there is a GITHUB_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GITHUB issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[ ] Format the pull request title like [Dubbo-XXX] Fix UnknownException when host config not exist #XXX. Each commit in the pull request should have a meaningful subject line and body.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add sample in dubbo samples project.
[ ] Run mvn clean install -DskipTests=false & mvn clean test-compile failsafe:integration-test to make sure unit-test and integration-test pass.
[ ] If this contribution is large, please follow the Software Donation Guide.

@Augustvic hi, thanks for your contribution.
Please fix ut for dubbo-filter-cache.

@Augustvic hi, thanks for your contribution.
Please fix ut for dubbo-filter-cache.

Thanks for your review, and sorry to take so long time to reply. I've been submitted another PR about this problem. Please see https://github.com/apache/dubbo/pull/7461.


Add Maven wrapper (version 3.5.0).

In case this is wanted, this PR adds a maven wrapper for Maven version 3.5.0 to the project.

I guess this could be useful. I merged it to the master. Thank you!


Python Dependencies for an Azure CLI extension do not work

Hi.  I am creating an extension where I need to grab some certificates from an Azure KeyVault that I own.  As well, be able to use EventHub to send some telemetry of my extension.
For this, I am trying to leverage the Python modules "azure-keyvault-certificates" and "azure-eventhub".  But, even though I have installed these modules on my system I am unable to use them in my extension.  I get the following kind of errors when trying to run my extension:
Unable to load extension '<myextensionname: No module named 'azure.eventhub''. Use --debug for more information.
Don't know if it matters or not, but I'm creating this on the Mac.  But fully intend for my extension to work on Windows+Linux.
Outside of the extension I am able to use these modules just fine in a stand alone pything script.  Does the AZ CLI have it's own location for storing Python modules and that is why I am unable to use these modules?
What is the recommendation here?  Is there a specific location where I need to install these python modules for my extension to work?  If yes, do you know where and how I can do that?
Any other recommendations or advice on how I could create my extension to work using these external python modules?  Work arounds?
Thanks for the help!

@fengzhou-msft please take a look

This is a known issue that CLI cannot import namespace packages starting with azure installed in extension directories.
With this PR, you can now call add_extension_to_path to extend the azure namespace with extension directories and use packages installed there. You can add the call in the load_command_table method of your extension.

hi @trevors20 does above solution work for you? Is it ok to close the issue now since it's supported? thanks.

Latest azure-cli uses PEP420 now and this issue is resolved. Please update azure-cli and try again.


Misleading FAQ about Stargate

Your FAQ falsely claims that my plugin Stargate is "trying to use the ancient Permissions 2.x/3.x player permissions", this is completely and utterly false (I recommend you remove the dev who made that change, if they can't even understand basic plugin hooking code ;)).
Stargate will check for the Permissions plugin, and if it's not a bridge to a SuperPerms handler, it will use it. The ONLY exception to this is the case of the PEX bridge, which Stargate was required to use as PEX injects (Or injected, at the time of writing that portion of the plugin) a faulty hasPermission function into Bukkit.
As for saying my plugin is "incompatible", that is again a blatant lie, Stargate works with any PermHandler that is implemented properly.
And in response to the first question you will probably ask, Stargate still supports Permissions 2.x/3.x because I still have users that use those plugins, there are even a few users who are making their own builds for 1.1-R6/1.2.3, and that is their choice, the Permissions handling code doesn't break anything in my plugin, and adds no extra work for me.

Is it misleading? Considering this https://github.com/TheDgtl/Stargate-Bukkit/commit/f33586ced8600c9847738cae87ac48d216d9e804#-P0

Yes, it is misleading, and I already stated why in many places. Most other "world plugins" (Stargate is not a world plugin, btw) do not have fine-grained network/world permissions like Stargate does. Feel free to read the comments at the bottom of that page to see why.
It's also blatantly false as it says Stargate is "trying to use the ancient Permissions 2.x/3.x player permissions" which is a lie, the only time it FALLS BACK to Permissions is if a PermHandler is not available, and Permissions is, or in the case of PEX, as it was REQUIRED to get accurate permission results.
It also tells users to "more up-to-date alternatives" then goes on to link to a few plugins that aren't even updated for 1.1-R6/1.2.3.
So is it misleading? Yes. It is straight up lying about my plugin, atleast the warning in my plugin was the truth, I don't need to resort to making stuff up to make your plugin look bad.

@TheDgtl
The point is you shouldn't care about user's specific permissions plugin.
It would be same hillarious if i'll put "warning & disable code" about Stargate plugin, like:
if (isPluginEnabled("Stargate")) {
    logger.warning("ZOMG PEX doesn't work with Stargate");

    removeCraftBukkitInstallation();
}

Also i recommend you to test things aganist lastest version available, before posting shit.

You're right, I shouldn't care, and I wouldn't need to care about their permission plugin if PEX was implemented properly and didn't overwrite the "hasPermission" function with its own faulty version. Up until very recently, even after I posted a bug report about it (And got no answer, nice feedback there), PEX returned invalid permission results due to lower-casing one side of things, and not the other. I'm not going to release a new build of Stargate just to get rid of a warning, especially considering I don't trust that PEX works correctly, as it is still injecting itself into Player objects and overwriting hasPermission.
As for "warning & disable code", if you knew how to read you would see the code strictly WARNS users that it isn't supported, it doesn't disable anything.

@t3hk0d3 Oh, and before you try to blame my plugin for your PermHandlers screwup, keep in mind that Stargate works with EVERY OTHER PermHandler, as well as Permissions 2.x/3.x, PEX is the ONLY PermHandler that I actually had to write workaround code for.

:fr: VIVE LA FRANCE!


hello , there is a problem !  how to change here's color to transparent ??

The background is transparent, it's probably due to your code. Try with the provided example or provide a sample which does not work please

Due to stale issue, I'm closing this issue. Feel free to re-open it if needed.

Just in case some people are still having trouble with this issue: I found it occurs when wrapping the body in a SafeArea. Setting bottom: false in the SafeArea does the trick.
class HomePage extends StatelessWidget {
  const HomePage({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      extendBody: true,
      body: SafeArea(
        bottom: false,
        child: _body,
      ),
      bottomNavigationBar: FluidNavBar(
        icons: [
          FluidNavBarIcon(icon: MdiIcons.home),
          FluidNavBarIcon(icon: MdiIcons.calendar)
          FluidNavBarIcon(icon: MdiIcons.cog),
        ],
      ),
    );
  }
}


Use static KRUN binary in kontain.tar.gz (big release)

We currently include two tar files as part of our release:

kontain.tar.gz - Full release with examples, payloads, etc. Intended for desktop users
kontain_bin.tar.gz - Minimal binary release. Initially intended for k8s Nodes.

The binary release kontain_bin.tar.gz includes a static linked KRUN. The full release kontain.tar.gz includes dynamic linked KRUN. The full release should include static KRUN too.

Should be covered by https://github.com/kontainapp/km/pull/1557


timestamp flag

Fixes #696
Changes
This is a simple flag to add the support for timestamps. At first this flag was using protobuf timestamps but I ended up editing it since I figured you would be more interested in something more general. But if you guys are interested I would love to make a protobuf timestamp as well. (saves a few lines on my app code)
Reviewer Guidelines
I'm not sure if this code works with env variables. I tried to take inspiration from int64_slice and string_slice since those were the only flag that didn't use the default set from golang's Flag
I am open to any changes you see fit.

@asahasrabuddhe

update the manual.md to reflect the new features.

Which part of the manual.md ? The full example ? There isn't much details on specific flags on the manual, It seems like most of the doc is auto generated through GoDoc

@asahasrabuddhe

update the manual.md to reflect the new features.

Which part of the manual.md ? The full example ? There isn't much details on specific flags on the manual, It seems like most of the doc is auto generated through GoDoc

What I meant was that you add an example of using the timestamp flag as I think this is a unique flag, and users would appreciate an example on how to use it in their application.

@drov0 If I initialize a timestamp flag without any default layout value, what layout is considered for the flag? Do you think having a default out of the box value for the layout would help?

@drov0 If I initialize a timestamp flag without any default layout value, what layout is considered for the flag? Do you think having a default out of the box value for the layout would help?

@asahasrabuddhe, okay for the manual, will add on monday. As for the layout It won't work if you don't set it, the layout is mandatory. I considered having a default value but since there are so many different layouts, I figured that people would almost always use a custom layout anyways. Kind of like time.Parse doesn't have a default layout.

@asahasrabuddhe, okay for the manual, will add on monday. As for the layout It won't work if you don't set it, the layout is mandatory. I considered having a default value but since there are so many different layouts, I figured that people would almost always use a custom layout anyways. Kind of like time.Parse doesn't have a default layout.

Fair enough. I think once we have an example, we are good to go 👍

@asahasrabuddhe I added examples at the end in the full example, is that ok or would you rather that I add a complete new section for it ?

Nevermind I did put it in its own block in the end. But tests are failing, this whole "the doc is actually compiling itself" is super confusing to me. I know my code snippet is correct yet it's failing for some reason, I cornered it down to the fact that it's somehow throwing an error when defining timestampFlag. I guess it's not pulling the right version ?

Nevermind I did put it in its own block in the end. But tests are failing, this whole "the doc is actually compiling itself" is super confusing to me. I know my code snippet is correct yet it's failing for some reason, I cornered it down to the fact that it's somehow throwing an error when defining timestampFlag. I guess it's not pulling the right version ?

You are right. The thing is that we have a utility that tries to execute the snippets in the documentation to verify their correctness. Now the tool is using the v2.0.0 of the library to verify your addition which is not yet released. Hence the failures.
I think too that the sample is correct and I recommend that this PR be merged.

Awesome thanks !

Also, if I'm correct in my understanding that CI is failing because of the docs change, you can unblock this PR via:

creating a new PR with just the docs changes
removing the docs changes from this PR

@lynncyrin done :) https://github.com/urfave/cli/pull/997

@lynncyrin any chance we can get this into a minor release (2.0.1 perhaps)? Would love to use the timestamp flag in my application with the proper go.mod routine.

I'll draft a release soon 👍

=> https://github.com/urfave/cli/pull/1013

It's released 🚢 => https://github.com/urfave/cli/releases/tag/v2.1.0


chore: alpha.10

R: @kara

@davidgabrichidze It's still in progress. If you check the README, you'll see it says that it's not yet ready for use.


Ability to turn off zoom

This plugin is something I've been looking for, for a long time, and is amazing. Thank you!
I would very much like it if you had a toggle that would turn off the zoom functionality. I don't find it particularly useful, and it's quite annoying when it captures my mouse wheel when scrolling through some weathermaps.

Frankly unsure why I default to zoom ability as it stands, so I'm more than happy to add a toggle for this. Will add this in the next release.

Perfect! Thank you!


Remove algolia temporary workaround

https://github.com/prometheus/docs/blob/d4073d38baefbe1035ea72df3649cb37d3420854/layouts/footer.html#L27-L30
@juliusv Is it OK to remove this now?

The issue is that alertmanager docs are not visible in algolia now.

Turns out we also need to change our Algolia configuration to pick up the new meta tags. I submitted a PR for that:
https://github.com/algolia/docsearch-configs/pull/2045


Patch updates

About this PR
Updates:

📦 org.scala-sbt:sbt from 1.9.6 to 1.9.7

📜 GitHub Release Notes - Version Diff

Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add these to your .scala-steward.conf file to ignore future updates of these dependencies:
updates.ignore = [
  { groupId = "org.scala-sbt", artifactId = "sbt" }
]

Or, add these to slow down future updates of these dependencies:
dependencyOverrides = [
  {
    pullRequests = { frequency = "30 days" },
    dependency = { groupId = "org.scala-sbt", artifactId = "sbt" }
  }
]

labels: library-update, early-semver-patch, semver-spec-patch, version-scheme:early-semver, commit-count:1

@Mergifyio backport main


Library release removal request

Library name
ESPAsyncWebServer
Version to remove
3.1.0

See the explanation in the review of the related PR: https://github.com/arduino/library-registry/pull/4585#pullrequestreview-2130550455


Add CircleCI configuration

Travis is acting up again, so here's alternative CI solution that should be faster and more stable. After this is merged, we need to enable it from CircleCI panel.

@kobik Addressed the comments, also bumped api-schema-builder version as requested elsewhere

@kobik From my understanding, failing coveralls is not a problem on our side: https://github.com/lemurheavy/coveralls-public/issues/632
Unless CircleCI requires some additional configuration that Travis does not, but I doubt that. Hopefully it'll resolve itself.

@kobik From my understanding, failing coveralls is not a problem on our side: lemurheavy/coveralls-public#632
Unless CircleCI requires some additional configuration that Travis does not, but I doubt that. Hopefully it'll resolve itself.

you can remove that as we already have coveralls as one of our checks

@kobik Done!
Should I add same configuration to schema-builder and contract-validator as well?

@kobik Do we want to keep Travis for the time being or just CircleCI is good enough?

@kobik Done!
Should I add same configuration to schema-builder and contract-validator as well?
@kibertoad, that would be awesome!

@kobik Do we want to keep Travis for the time being or just CircleCI is good enough?
do you think we should?

IMO, there is no need for that.

@kobik Done!

@kibertoad for some reason  coveralls check isn't done. but we can merge it for now as there is a check also in tests.


No Sample for handling clicks on custom actions

Could you give an example on how to handle clicks on custom action items declared. Like we have examples for onOpenURL, onSubmit and onShowCard. For now, it ends in a limbo as to how to perform some kind of task using the custom action data.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: c0dacea9-2698-54ea-0eb3-27ba667fea19
Version Independent ID: 190437c6-8eec-8d62-1256-c3bf065d734e
Content: Android SDK - Adaptive Cards
Content Source: AdaptiveCards/sdk/rendering-cards/android/extensibility.md
Product: adaptive-cards
GitHub Login: @bekao
Microsoft Alias: bekao

+@Matt <EMAIL_ADDRESS>From: Bijon Desai<EMAIL_ADDRESS>Sent: Thursday, August 1, 2019 1:34 PM
To: MicrosoftDocs/AdaptiveCards<EMAIL_ADDRESS>Cc: Ben Kao<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: [MicrosoftDocs/AdaptiveCards] No Sample for handling clicks on custom actions (#208)
Could you give an example on how to handle clicks on custom action items declared. Like we have examples for onOpenURL, onSubmit and onShowCard. For now, it ends in a limbo as to how to perform some kind of task using the custom action data.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: c0dacea9-2698-54ea-0eb3-27ba667fea19
Version Independent ID: 190437c6-8eec-8d62-1256-c3bf065d734e
Content: Android SDK - Adaptive Cardshttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fadaptive-cards%2Fsdk%2Frendering-cards%2Fandroid%2Fextensibility%23feedback&data=02|01|bekao%40microsoft.com|045a02bb392046bf9f1f08d716bf87e2|72f988bf86f141af91ab2d7cd011db47|1|0|637002884187078187&sdata=sq3skjUS7CZQZN4Vqj%2BdwsDdOtBeomkAi6UnLadUTO0%3D&reserved=0
Content Source: AdaptiveCards/sdk/rendering-cards/android/extensibility.mdhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2FAdaptiveCards%2Fblob%2Fmaster%2FAdaptiveCards%2Fsdk%2Frendering-cards%2Fandroid%2Fextensibility.md&data=02|01|bekao%40microsoft.com|045a02bb392046bf9f1f08d716bf87e2|72f988bf86f141af91ab2d7cd011db47|1|0|637002884187078187&sdata=twxekaE3x5WmUDRLFr4gRnThG8MYlQypO6t128kMpWg%3D&reserved=0
Product: adaptive-cards
GitHub Login: @bekaohttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fbekao&data=02|01|bekao%40microsoft.com|045a02bb392046bf9f1f08d716bf87e2|72f988bf86f141af91ab2d7cd011db47|1|0|637002884187088177&sdata=R90Nx7IRj4vwU5K4JL6vVXgWJ5kJFfQXW1Ae68DV0E4%3D&reserved=0
Microsoft Alias: bekao

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2FAdaptiveCards%2Fissues%2F208%3Femail_source%3Dnotifications%26email_token%3DAFRL7J5EGXBUHLCCR2XLKSDQCNCCBA5CNFSM4IIVII4KYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HC5JNOQ&data=02|01|bekao%40microsoft.com|045a02bb392046bf9f1f08d716bf87e2|72f988bf86f141af91ab2d7cd011db47|1|0|637002884187088177&sdata=WRUXmYkQoqDYEGRvKkrTRGilbgLIsSTNW6ObnL%2FkV%2Bs%3D&reserved=0, or mute the threadhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAFRL7JZZKUXE7MZ2HLY4QVLQCNCCBANCNFSM4IIVII4A&data=02|01|bekao%40microsoft.com|045a02bb392046bf9f1f08d716bf87e2|72f988bf86f141af91ab2d7cd011db47|1|0|637002884187098175&sdata=guQB3DeNShrHl%2FYR0Bbz7pY4uBdCqpC8LM1mnMxuzc0%3D&reserved=0.

I found issue with
Button myActionButton = new Button(context); CustomActionElement customAction = (CustomActionElement) baseActionElement.findImplObj(); myActionButton.setBackgroundColor(getResources().getColor(R.color.greenActionColor)); myActionButton.setText(customAction.getMessage()); myActionButton.setAllCaps(false); myActionButton.setOnClickListener(new BaseActionElementRenderer.ActionOnClickListener(renderedCard, baseActionElement, cardActionHandler));
Here, instead of passing baseActionElement in ActionOnClickListener, user should pass customAction to receive the customAction type when the button is clicked.


chore: bdd-spring-1575632253 to 0.0.1

chore: Promote bdd-spring-1575632253 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


how can get marker icon from the internet in flutter google map

I have some icon on the internet, and I want to set those icons for flutter google marker, how can I do that?
One way is that get the image from the internet and convert it to byte data and Uint8List finally set it on the marker with BitmapDescriptor.fromBytes
I do that but not work
someone can help?

That question should be on stackoverflow not here.. and why would you put performance tag on it anyway!

Hi @Seven7up
Please take a look this
Thank you


Revert "Bump sigs.k8s.io/controller-runtime from 0.16.1 to 0.17.0"

Reverts openshift-kni/lifecycle-agent#241
This update bumps the required version to 1.21 from 1.20, which would need more work and changes

/approve

/override ci/prow/integration

/lgtm


Unrestricted force

Don't look here yet. This is an experiment I've wanted to do for a
while, just looking to get some benchmark numbers.

Pre-submit checklist:

Branch

[ ] Tests are provided (if possible)
[ ] Commit sequence broadly makes sense
[ ] Key commits have useful messages
[ ] Changelog fragments have been written (if appropriate)
[ ] Relevant tickets are mentioned in commit messages
[ ] Formatting, PNG optimization, etc. are updated

PR

[ ] (For external contributions) Corresponding issue exists and is linked in the description
[ ] Targeting master unless this is a cherry-pick backport
[ ] Self-reviewed the diff
[ ] Useful pull request description
[ ] Reviewer requested

/benchmark plutus-benchmark:nofib

/benchmark plutus-benchmark:validation

Rather than doing this as a post-hoc optimisation, why not omit emitting unnecessary delays and forces? That seems like a simpler thing to do.

You could in PIR make one constructor for both type abstractions and lambdas of arbitrary (type) parameters, which would seemingly allow you to emit more optimised UPLC.

Rather than doing this as a post-hoc optimisation, why not omit emitting unnecessary delays and forces? That seems like a simpler thing to do.

I disagree with this as a compiler design principle. IME (and I think this is the standard wisdom) it's almost always better to make code-gen as dumb as possible and then optimize away the bad stuff. That makes your code gen simpler (which is important since it's almost always pretty complicated anyway), and your optimizations will benefit you in other places.

Pretty modest tbh, slightly disappointing.


Update prover-market-page.mdx

request to add my prover api to prover market

Closing for https://github.com/taikoxyz/taiko-mono/pull/15276