Python 3.7 not supported: missing _ctypes (httpretty issue)

$ python --version
Python 3.7.5

httpretty seems to have support up to Python 3.6.
Collecting httpretty==0.9.6 (from pypuppetdb>=1.2.0->-r requirements.txt (line 8))
  Using cached https://files.pythonhosted.org/packages/6e/84/c779ebe4411195716588b413dd594373144c411762c158b579cf36b37168/httpretty-0.9.6.tar.gz
    ERROR: Command errored out with exit status 1:
     command: /var/www/.pyenv/versions/3.7.5/bin/python3.7 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-2ct_im0u/httpretty/setup.py'"'"'; __file__='"'"'/tmp/pip-install-2ct_im0u/httpretty/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base pip-egg-info
         cwd: /tmp/pip-install-2ct_im0u/httpretty/
    Complete output (11 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/var/www/.pyenv/versions/3.7.5/lib/python3.7/site-packages/setuptools/__init__.py", line 20, in <module>
        from setuptools.dist import Distribution, Feature
      File "/var/www/.pyenv/versions/3.7.5/lib/python3.7/site-packages/setuptools/dist.py", line 35, in <module>
        from setuptools import windows_support
      File "/var/www/.pyenv/versions/3.7.5/lib/python3.7/site-packages/setuptools/windows_support.py", line 2, in <module>
        import ctypes
      File "/var/www/.pyenv/versions/3.7.5/lib/python3.7/ctypes/__init__.py", line 7, in <module>
        from _ctypes import Union, Structure, Array
    ModuleNotFoundError: No module named '_ctypes'
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

On Python 3.6 installation works (yes, I have libffi-dev installed). Probably it's too early to claim support for Python 3.7 and 3.8.

Hi,
I'm able to install it with Python 3.7. I used the Dockerfile from our master branch:
$ docker build -t puppetboard .
Sending build context to Docker daemon  54.27MB
Step 1/10 : FROM python:3.7-alpine
3.7-alpine: Pulling from library/python
89d9c30c1d48: Already exists
910c49c00810: Already exists
7efe415eb85a: Pull complete
7d8d53519b81: Pull complete
519124ac136c: Pull complete
Digest: sha256:de9fc5bc46cb1a7e2222b976394ea8aa0290592e3075457d41c5f246f176b1bf
Status: Downloaded newer image for python:3.7-alpine
 ---> 8922d588eec6
Step 2/10 : ENV PUPPETBOARD_PORT 80
 ---> Running in ca2d53760726
Removing intermediate container ca2d53760726
 ---> 9fa51fa2c445
Step 3/10 : EXPOSE 80
 ---> Running in 9548eca5821b
Removing intermediate container 9548eca5821b
 ---> 04943ce002a9
Step 4/10 : ENV PUPPETBOARD_SETTINGS docker_settings.py
 ---> Running in 359849fdca1e
Removing intermediate container 359849fdca1e
 ---> d459ec934cb0
Step 5/10 : RUN mkdir -p /usr/src/app/
 ---> Running in a5e93e24ac92
Removing intermediate container a5e93e24ac92
 ---> 6d515801f59f
Step 6/10 : WORKDIR /usr/src/app/
 ---> Running in caf0efa2cb94
Removing intermediate container caf0efa2cb94
 ---> 9c9a775ad77b
Step 7/10 : COPY requirements*.txt /usr/src/app/
 ---> 91d4e169aa0e
Step 8/10 : RUN pip install -r requirements-docker.txt
 ---> Running in 2d057400a191
Collecting Flask>=1.1.1
  Downloading https://files.pythonhosted.org/packages/9b/93/628509b8d5dc749656a9641f4caf13540e2cdec85276964ff8f43bbb1d3b/Flask-1.1.1-py2.py3-none-any.whl (94kB)
Collecting Flask-WTF>=0.14.2
  Downloading https://files.pythonhosted.org/packages/60/3a/58c629472d10539ae5167dc7c1fecfa95dd7d0b7864623931e3776438a24/Flask_WTF-0.14.2-py2.py3-none-any.whl
Collecting Jinja2>=2.10.3
  Downloading https://files.pythonhosted.org/packages/65/e0/eb35e762802015cab1ccee04e8a277b03f1d8e53da3ec3106882ec42558b/Jinja2-2.10.3-py2.py3-none-any.whl (125kB)
Collecting MarkupSafe>=1.1.1
  Downloading https://files.pythonhosted.org/packages/b9/2e/64db92e53b86efccfaea71321f597fa2e1b2bd3853d8ce658568f7a13094/MarkupSafe-1.1.1.tar.gz
Collecting WTForms>=2.2.1
  Downloading https://files.pythonhosted.org/packages/9f/c8/dac5dce9908df1d9d48ec0e26e2a250839fa36ea2c602cc4f85ccfeb5c65/WTForms-2.2.1-py2.py3-none-any.whl (166kB)
Collecting Werkzeug>=0.16.0
  Downloading https://files.pythonhosted.org/packages/ce/42/3aeda98f96e85fd26180534d36570e4d18108d62ae36f87694b476b83d6f/Werkzeug-0.16.0-py2.py3-none-any.whl (327kB)
Collecting itsdangerous>=1.1.0
  Downloading https://files.pythonhosted.org/packages/76/ae/44b03b253d6fade317f32c24d100b3b35c2239807046a4c953c7b89fa49e/itsdangerous-1.1.0-py2.py3-none-any.whl
Collecting pypuppetdb>=1.2.0
  Downloading https://files.pythonhosted.org/packages/cf/46/a2f7e8afae6d4629bf2f724268a7b8a58bcb0d917f9a545873a8860411a1/pypuppetdb-1.2.0-py2.py3-none-any.whl
Collecting requests>=2.22.0
  Downloading https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl (57kB)
Collecting CommonMark==0.9.1
  Downloading https://files.pythonhosted.org/packages/b1/92/dfd892312d822f36c55366118b95d914e5f16de11044a27cf10a7d71bbbf/commonmark-0.9.1-py2.py3-none-any.whl (51kB)
Collecting gunicorn==19.6.0
  Downloading https://files.pythonhosted.org/packages/72/de/ec28a64885e0b390063379cca601b60b1f9e51367e0c76030ac8a5cddd5e/gunicorn-19.6.0-py2.py3-none-any.whl (114kB)
Collecting click>=5.1
  Downloading https://files.pythonhosted.org/packages/fa/37/45185cb5abbc30d7257104c434fe0b07e5a195a6847506c074527aa599ec/Click-7.0-py2.py3-none-any.whl (81kB)
Collecting six==1.12.0
  Downloading https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl
Collecting httpretty==0.9.6
  Downloading https://files.pythonhosted.org/packages/6e/84/c779ebe4411195716588b413dd594373144c411762c158b579cf36b37168/httpretty-0.9.6.tar.gz (7.1MB)
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1
  Downloading https://files.pythonhosted.org/packages/b4/40/a9837291310ee1ccc242ceb6ebfd9eb21539649f193a7c8c86ba15b98539/urllib3-1.25.7-py2.py3-none-any.whl (125kB)
Collecting certifi>=2017.4.17
  Downloading https://files.pythonhosted.org/packages/18/b0/8146a4f8dd402f60744fa380bc73ca47303cccf8b9190fd16a827281eac2/certifi-2019.9.11-py2.py3-none-any.whl (154kB)
Collecting idna<2.9,>=2.5
  Downloading https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl (58kB)
Collecting chardet<3.1.0,>=3.0.2
  Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB)
Building wheels for collected packages: MarkupSafe, httpretty
  Building wheel for MarkupSafe (setup.py): started
  Building wheel for MarkupSafe (setup.py): finished with status 'done'
  Created wheel for MarkupSafe: filename=MarkupSafe-1.1.1-cp37-none-any.whl size=12629 sha256=e89a5484b4da8a2bc8c6ded9443a414615d2123b7bcc68e06dc5e26b46b7d0f9
  Stored in directory: /root/.cache/pip/wheels/f2/aa/04/0edf07a1b8a5f5f1aed7580fffb69ce8972edc16a505916a77
  Building wheel for httpretty (setup.py): started
  Building wheel for httpretty (setup.py): finished with status 'done'
  Created wheel for httpretty: filename=httpretty-0.9.6-cp37-none-any.whl size=25542 sha256=57f58c25e53195e3e07ec4161ac3817ecc8366c1c6f66ea406be1472e2a055f7
  Stored in directory: /root/.cache/pip/wheels/6d/49/35/f06301e7ff5b3a3f154d8367d1b0d9976f1d18ffc5fc5f37b2
Successfully built MarkupSafe httpretty
Installing collected packages: MarkupSafe, Jinja2, itsdangerous, click, Werkzeug, Flask, WTForms, Flask-WTF, six, httpretty, urllib3, certifi, idna, chardet, requests, pypuppetdb, CommonMark, gunicorn
Successfully installed CommonMark-0.9.1 Flask-1.1.1 Flask-WTF-0.14.2 Jinja2-2.10.3 MarkupSafe-1.1.1 WTForms-2.2.1 Werkzeug-0.16.0 certifi-2019.9.11 chardet-3.0.4 click-7.0 gunicorn-19.6.0 httpretty-0.9.6 idna-2.8 itsdangerous-1.1.0 pypuppetdb-1.2.0 requests-2.22.0 six-1.12.0 urllib3-1.25.7
Removing intermediate container 2d057400a191
 ---> 67fc62c2d118
Step 9/10 : COPY . /usr/src/app
 ---> 342929a2aec9
Step 10/10 : CMD gunicorn -b <IP_ADDRESS>:${PUPPETBOARD_PORT} --workers="${PUPPETBOARD_WORKERS:-1}" -e SCRIPT_NAME="${PUPPETBOARD_URL_PREFIX:-}" --access-logfile=- puppetboard.app:app
 ---> Running in 5ca7158d2d0d
Removing intermediate container 5ca7158d2d0d
 ---> a06086888da9
Successfully built a06086888da9
Successfully tagged puppetboard:latest

I managed to install this package without any issues on Python 3.6.9 , Python 3.7.5 and Python 3.8.0.
Actually the problem is inside pypuppetdb package, where we install it for package while it's only used for tests purpose.
I have prepared https://github.com/voxpupuli/pypuppetdb/pull/166 to fix this.

I'm not a Python expert, it appears like it's looking for an incorrect wheel with py2 tag, instead of py3
$ pip install httpretty==0.9.7 -v
Created temporary directory: /tmp/pip-ephem-wheel-cache-wak7cdxe
Created temporary directory: /tmp/pip-req-tracker-b4skoo_s
Created requirements tracker '/tmp/pip-req-tracker-b4skoo_s'
Created temporary directory: /tmp/pip-install-ovhopwv4
Collecting httpretty==0.9.7
  1 location(s) to search for versions of httpretty:
  * https://pypi.org/simple/httpretty/
  Getting page https://pypi.org/simple/httpretty/
  Found index url https://pypi.org/simple
  Looking up "https://pypi.org/simple/httpretty/" in the cache
  Request header has "max_age" as 0, cache bypassed
  Starting new HTTPS connection (1): pypi.org:443
  https://pypi.org:443 "GET /simple/httpretty/ HTTP/1.1" 304 0
  Analyzing links from page https://pypi.org/simple/httpretty/
    Found link https://files.pythonhosted.org/packages/ac/18/75094adfdef98fd03c908a621bd3b240f59d6787675dc9b0e5e0a144d098/httpretty-0.1.tar.gz#sha256=347457350e504182cb7a6a3502414d5182145557d6899a3735c3c6519a11db15 (from https://pypi.org/simple/httpretty/), version: 0.1
    Found link https://files.pythonhosted.org/packages/5a/a0/979c185d61c1e7e01118e4ac4f0f05459ab7636fc57cd7f8dcdfef50199b/httpretty-0.2.tar.gz#sha256=83810f27234d2d4e08026604bb34cec3d2be113b3ba8c05220334a14f5c08ed0 (from https://pypi.org/simple/httpretty/), version: 0.2
    Found link https://files.pythonhosted.org/packages/7b/e7/612bb6b2c2d1544517f1814676d6e741fd882d12825e3e8c5f2be03f7a4c/httpretty-0.3.tar.gz#sha256=549d0ff39e8d674ad1ad7c0e97f4602867506f01efe4b7d136bc7cf073fb7f90 (from https://pypi.org/simple/httpretty/), version: 0.3
    Found link https://files.pythonhosted.org/packages/b6/ce/60be34c5df77842e1f89c766db52f0164773fe53b250209436ff13db21f4/httpretty-0.4.tar.gz#sha256=eb85446daeebf997235bf73ae63637c089af52f3d9548d9c5d6db5a173f75ad9 (from https://pypi.org/simple/httpretty/), version: 0.4
    Found link https://files.pythonhosted.org/packages/c4/9a/39c7a45411666a8d0227bf0055a232dfec95a31839caf65ded7d8eda1419/httpretty-0.5.tar.gz#sha256=755ce7c3c156ffcbb54c216abe4dcf8642446beae774e4f75991b20dd9efbe7c (from https://pypi.org/simple/httpretty/), version: 0.5
    Found link https://files.pythonhosted.org/packages/23/9a/0f3ded37f3055eca3356f89d8594a9ed8cc1ef864bee25dabc614821d206/httpretty-0.5.1.tar.gz#sha256=ed80875b3f13f75a74f1b51e3f1ca5b9bb75686b38c0ee7dfb19dff9dc21de0d (from https://pypi.org/simple/httpretty/), version: 0.5.1
    Found link https://files.pythonhosted.org/packages/02/ae/53f5bc90480668388834eefde5e7e76ae406dbc22c32acce2561984b4215/httpretty-0.5.2.tar.gz#sha256=568c529e37ad8c0e2b5957952ad761ba3e4d0eb91ee89d0b717a07b77de69a35 (from https://pypi.org/simple/httpretty/), version: 0.5.2
    Found link https://files.pythonhosted.org/packages/bb/52/d6232faa01b1cb0f46cd764f8fa1ce1dadab8a515c6833c7f64c36724036/httpretty-0.5.3.tar.gz#sha256=d3a8be466370b4a8bb3bf4d7b750a466cdc21bb188a5f51661bd7764ba1c4c7f (from https://pypi.org/simple/httpretty/), version: 0.5.3
    Found link https://files.pythonhosted.org/packages/a0/b4/2897faec498632a55494b4032c30600baa36e75ef548eba93e79fe82484f/httpretty-0.5.4.tar.gz#sha256=ac24222752de1f509e5dc82b273e85bd7b983575ea9f12706b57f6c6bc621346 (from https://pypi.org/simple/httpretty/), version: 0.5.4
    Found link https://files.pythonhosted.org/packages/f8/ff/4e979e206ab578ee34cd81f71a13ce89bbad7bebe8fe3ed453f4f090ac1c/httpretty-0.5.5.tar.gz#sha256=e6e2cd1e1f7662136edefa6b42573a15ba6b4901c1def8419e96120f6aa4d0d8 (from https://pypi.org/simple/httpretty/), version: 0.5.5
    Found link https://files.pythonhosted.org/packages/4a/a0/9253af8b5f4afc01d31ad68890cc7d7d90103a4243ab9edb46e8776524f3/httpretty-0.5.6.tar.gz#sha256=8129a8949bd4f28d337889627897491e627f23d84e2b3f8e1d675b711b00cb5e (from https://pypi.org/simple/httpretty/), version: 0.5.6
    Found link https://files.pythonhosted.org/packages/97/b3/cf859af866db8b2c25a3f1ce4d6d7e1384722d3c8745813cf01a212ab818/httpretty-0.5.7.tar.gz#sha256=7cd5807b70935f3345297d7c36316ebaed17a19ca2d0e802f8e8d57288d2c018 (from https://pypi.org/simple/httpretty/), version: 0.5.7
    Found link https://files.pythonhosted.org/packages/86/0e/c903c9f56818b3d725c6f0549d42e0ff4481ff38820f3da1299f046bc2b4/httpretty-0.5.8.tar.gz#sha256=6cf03b817334f95ad56a02d840d1aa317f844ab028d5146996b46902eb6c0930 (from https://pypi.org/simple/httpretty/), version: 0.5.8
    Found link https://files.pythonhosted.org/packages/07/5d/f35a0814a8b3236c4517fc2431c40eaf4a08dcb1995c7bb21bd98efd49cd/httpretty-0.5.9.tar.gz#sha256=ac62fa5c00e514c2f2882a38e18290f160219df7b4228c1b8f4c116e6f0e6730 (from https://pypi.org/simple/httpretty/), version: 0.5.9
    Found link https://files.pythonhosted.org/packages/fa/2a/a4c8e0ec9afefe24a220fb7fcb88167ac374c09539aa464b1bf043b3f704/httpretty-0.5.10.tar.gz#sha256=e61e5c0689c5d73074a07a3febd8e8945a7b93d6c92677bdd519dbdecb6366b8 (from https://pypi.org/simple/httpretty/), version: 0.5.10
    Found link https://files.pythonhosted.org/packages/31/70/b01ebef5a04176d1f3a99d77c6ffb1db0fc9f681edf71b391f78eabc799e/httpretty-0.5.11.tar.gz#sha256=6b4e9869c63618ab37458c181f9c524bcfbaf108d981c7ea69cb9425823a0e26 (from https://pypi.org/simple/httpretty/), version: 0.5.11
    Found link https://files.pythonhosted.org/packages/f1/99/9e9cacf7d41f2e290fcf352ac3af410b6707c75d358c2785b190be913da6/httpretty-0.5.12.tar.gz#sha256=ccffbd152645d7a7ebcf2c330572ca4b9f44f7783be9ef40c5d120c7e402b0db (from https://pypi.org/simple/httpretty/), version: 0.5.12
    Found link https://files.pythonhosted.org/packages/f6/73/b2aa179723b1ddef914c64dd2524e146c95759e66a1c0ec237d6a442b36b/httpretty-0.5.13.tar.gz#sha256=a1b4d73090b28196479a1f2dddc42303380b1d7b2b30bcd1cea84c8095627455 (from https://pypi.org/simple/httpretty/), version: 0.5.13
    Found link https://files.pythonhosted.org/packages/1b/5c/69265e5220c743bf81c83563a57785ddf978c256b24920e7ca5b53da280f/httpretty-0.5.14.tar.gz#sha256=56751951ebfc711426f197796af176ca07a2c4213febf1d4083aa8287eb8e193 (from https://pypi.org/simple/httpretty/), version: 0.5.14
    Found link https://files.pythonhosted.org/packages/c7/31/fba7dfefdab103a71d66206e1adc0375a133dc8cc43625565bfa257a5beb/httpretty-0.6.0.tar.gz#sha256=6acd9c81376b3480dd28f370e9982d27cb0000a15a501bd952255efea314801c (from https://pypi.org/simple/httpretty/), version: 0.6.0
    Found link https://files.pythonhosted.org/packages/e4/2d/08736e7bd67f05152a0afdb52226ef814ff0e4967843c459962e66617814/httpretty-0.6.1.tar.gz#sha256=da8e2f118fae2e34202e7ff9db7dc91a6fc7777359397c388f0eb18c25f64865 (from https://pypi.org/simple/httpretty/), version: 0.6.1
    Found link https://files.pythonhosted.org/packages/d9/01/959c3708e43f81ddbd938f79dd0c506c91435543962acd55f57302458eb4/httpretty-0.6.2.tar.gz#sha256=7d24f36cd00d67677c6557673d70aa689c12a2ec08d4ca3703df6c0b7d124b1c (from https://pypi.org/simple/httpretty/), version: 0.6.2
    Found link https://files.pythonhosted.org/packages/54/50/92981f862a36cef3cbe433b9cb6b7a180d9e763dee7d9a5b9a063347d4aa/httpretty-0.6.3.tar.gz#sha256=e9a2bb295cacf0b48b2e56e12dbbff1a9d7988738ed351829abf966f8ae23027 (from https://pypi.org/simple/httpretty/), version: 0.6.3
    Found link https://files.pythonhosted.org/packages/43/90/18b73b7e1a6ee9b50740429e9caf8c9420a8522d28296cad15e65e798b62/httpretty-0.6.4.tar.gz#sha256=a82fb04dcc8648d789aac066ccf435f515414536d01d560c7145204115b71f18 (from https://pypi.org/simple/httpretty/), version: 0.6.4
    Found link https://files.pythonhosted.org/packages/70/4d/ee08bf900c1a8e675e7e7fbb5a5601906feae49a92385ced806fc012d9d2/httpretty-0.6.5.tar.gz#sha256=5914118c511c05b1d02c52c0330b4a1c4a826ec7dca6f2bf42294c40799d7e31 (from https://pypi.org/simple/httpretty/), version: 0.6.5
    Found link https://files.pythonhosted.org/packages/e6/d7/dbdf5b54212a5cdc6da4d3432733cb8c16cee498c5b7c54d30925964565c/httpretty-0.7.0.tar.gz#sha256=a422a74fe0f35fbb644c9a3a0a4ccb7a7469a8f5bae2d7c807d35a7d149d3fa6 (from https://pypi.org/simple/httpretty/), version: 0.7.0
    Found link https://files.pythonhosted.org/packages/27/2c/50aca38338a6ff12d60ceb00f7b80b8c444e7cfc027aab2909a038609554/httpretty-0.7.1.tar.gz#sha256=a0f61cd3fbdffd28a556f8fd5eff703ad3c5c76cf0c39ab8bc136f38d0a71857 (from https://pypi.org/simple/httpretty/), version: 0.7.1
    Found link https://files.pythonhosted.org/packages/b5/f4/248ccdda6897d89838e3d52aa2ad31c2ecdf68d907c804042bcb8638042b/httpretty-0.8.0.tar.gz#sha256=e5512b38ad3bfb9f7d275c957b4a7eddc69e4b3a749e3b62a984c86fb6ab329b (from https://pypi.org/simple/httpretty/), version: 0.8.0
    Found link https://files.pythonhosted.org/packages/ea/a6/1c846af8379a439bc8269f6a9b318499f5db6aa7cf3d922aede14e97c9da/httpretty-0.8.1.tar.gz#sha256=94257999e0438896ee09a2635271c018bdb65e691cff87b0eec2ffbaeb2083f9 (from https://pypi.org/simple/httpretty/), version: 0.8.1
    Found link https://files.pythonhosted.org/packages/d2/af/0fd1f6f20e90643ff42667b61d7a5432e585609bc34742029839c72e57be/httpretty-0.8.2.tar.gz#sha256=eca90bceac5cf2b1329a948d8fb1311a9ba1d4a0b55f4da5b9c41b9810515cf2 (from https://pypi.org/simple/httpretty/), version: 0.8.2
    Found link https://files.pythonhosted.org/packages/23/e9/d563ee07fb41b6658163be75d6c1bbbb151b87ef574d970194c24ef0f974/httpretty-0.8.3.tar.gz#sha256=46472447ec9c1a1d81fcd8a0a7ce5cbd795f62b53e2485050e77c651afc61b43 (from https://pypi.org/simple/httpretty/), version: 0.8.3
    Found link https://files.pythonhosted.org/packages/da/ec/ce082d3d14223deabe36a13c45473b5a34776a5ce6195ba58b2fb58d0faf/httpretty-0.8.4.tar.gz#sha256=6b5acc1f19ba4ee2c30bb040f1dc5a0bd9c0e49237f6af787b3e0277eff694df (from https://pypi.org/simple/httpretty/), version: 0.8.4
    Found link https://files.pythonhosted.org/packages/29/50/5c01ab4832a22018b22b94d02bbd0986d9dc4f3971537db266a186881072/httpretty-0.8.5.tar.gz#sha256=d06a46340a17a983ff15265a25bcc417ae35a14863b194042d690bfd8d0e1d32 (from https://pypi.org/simple/httpretty/), version: 0.8.5
    Skipping link: none of the wheel's tags match: py2-none-any: https://files.pythonhosted.org/packages/81/75/6d05d8da48df9ec147cd93af098538770dc0157da5238df3b95c1f0d9231/httpretty-0.8.6-py2-none-any.whl#sha256=d8fa415348938583f7cac9b7400f6690f89aa0008fe785e5ed676b3f016cee19 (from https://pypi.org/simple/httpretty/)
    Found link https://files.pythonhosted.org/packages/d8/62/e9c60e7776ac0e499934e0853772b3b62f65fa770223e2c9e1db3569bf33/httpretty-0.8.6.tar.gz#sha256=36bd574d289ee5ad781e28abb1f9cb6af696c27f13200769caf48a23e42f4938 (from https://pypi.org/simple/httpretty/), version: 0.8.6
    Skipping link: none of the wheel's tags match: py2-none-any: https://files.pythonhosted.org/packages/48/44/d7893ac8dda1b3761c61ea335d87d6a7f9060fd39e6dddd88e9913c63c7b/httpretty-0.8.7-py2-none-any.whl#sha256=9ae8d473561a214624be065deeb816f5b66da8d49752b59df18e7bdc433b0f62 (from https://pypi.org/simple/httpretty/)
    Found link https://files.pythonhosted.org/packages/62/1d/9b07d2c12cd6873cda9c6019d5874698115e4230ecbf3702d40c820bda31/httpretty-0.8.7.tar.gz#sha256=bff5e3320fae20e3e7650bed216847ec32f3e85329014edb4d7ec2bc1b68cae2 (from https://pypi.org/simple/httpretty/), version: 0.8.7
    Skipping link: none of the wheel's tags match: py2-none-any: https://files.pythonhosted.org/packages/42/9f/85859d695bfcafa3f7f2989b83c90b5be19e55fa5da60c0f458341bd7e99/httpretty-0.8.8-py2-none-any.whl#sha256=f77d743615fc3f4e7ff3b8c98c8f12be60917965414f7aef26b97a6c7a2c6f45 (from https://pypi.org/simple/httpretty/)
    Found link https://files.pythonhosted.org/packages/a5/45/c51946344f0ad0f049e6ffb0ecf6146fb0e0cfeeb017543c4a6b3f9db2f4/httpretty-0.8.8.tar.gz#sha256=19d65fe6f20502d5fee082d83c5c73ccfaba1519b9bbd0efdcb65cffe58e32d6 (from https://pypi.org/simple/httpretty/), version: 0.8.8
    Skipping link: none of the wheel's tags match: py2-none-any: https://files.pythonhosted.org/packages/d5/24/4f3dc820ed2183efc526d19c12800dfd08dbe76947d36fc5085e1a752850/httpretty-0.8.9-py2-none-any.whl#sha256=3a8c5f75336df503fa0cd6b4200b6196e6a0822fb16eac7b4a94528db515ebec (from https://pypi.org/simple/httpretty/)
    Found link https://files.pythonhosted.org/packages/8e/0a/839b71f5321e59adf362709364eb93fcde4ffc17dde07f5819e9bdc49cc1/httpretty-0.8.9.tar.gz#sha256=5a7c3f97c4105925190f8229b6baa4b3b0bd8076b087e531ad243f83f97468ac (from https://pypi.org/simple/httpretty/), version: 0.8.9
    Skipping link: none of the wheel's tags match: py2-none-any: https://files.pythonhosted.org/packages/db/05/bfe147ed60561050a45fa34e9fe8654cea5ed1f6eaf439c6f17e58a3f0c7/httpretty-0.8.10-py2-none-any.whl#sha256=77cbd62e20cb47f1c66125531aedcb80c3141dc10c5b24779389693cfc8bc3a2 (from https://pypi.org/simple/httpretty/)
    Found link https://files.pythonhosted.org/packages/e2/25/603bc6b096385b02184cc94f9088fcc06abd9398d0975bbbce97a8989ab5/httpretty-0.8.10.tar.gz#sha256=474a72722d66841f0e59cee285d837e1c6263be5be7bf2f8e824fc849a99adda (from https://pypi.org/simple/httpretty/), version: 0.8.10
    Found link https://files.pythonhosted.org/packages/98/f6/66b98f2301ad509b44020f85a530363a0a07ffae20f062db4d127e8f1f36/httpretty-0.8.11.tar.gz#sha256=c8cc5f71ed3251f17c185a7dcecf966d8ea7d11899b6d2afc512c71edfe73c24 (from https://pypi.org/simple/httpretty/), version: 0.8.11
    Skipping link: none of the wheel's tags match: py2-none-any: https://files.pythonhosted.org/packages/2a/6a/336ddaf009aa57e06b11cf15d84d4ef0cad7929a1a2d9fbfcf9c9d048921/httpretty-0.8.12-py2-none-any.whl#sha256=521408c6468bdef76e5b1518550756f5436e8e416f3d3ba6ae40a49b2487d4b3 (from https://pypi.org/simple/httpretty/)
    Found link https://files.pythonhosted.org/packages/1d/6a/c644222b575a133684e69fcb139e73c269a0394cc02e3bce18fa4f14a4df/httpretty-0.8.12.tar.gz#sha256=0fb1c892c6161110c90b93096fe38ce1445ab484b6796f366e7af2cc7d37a9c1 (from https://pypi.org/simple/httpretty/), version: 0.8.12
    Skipping link: none of the wheel's tags match: py2-none-any: https://files.pythonhosted.org/packages/ee/0b/2514804a7a3b8fc79bc20ff5e7ef780b54b020c91220badb2b58abff83e4/httpretty-0.8.14-py2-none-any.whl#sha256=cf51d23dae21b4da2c083a6efa381f5ab967d61095e45de1123f358812024237 (from https://pypi.org/simple/httpretty/)
    Found link https://files.pythonhosted.org/packages/7c/7d/fdc08c3ecc0d49cb95cb67fd03034915e0f8d714b18f4d739c062a10a95c/httpretty-0.8.14.tar.gz#sha256=83c176bbac9d68a45a5cca54f2d5be7e6b16a063adf6f334e7fd0eee272e976e (from https://pypi.org/simple/httpretty/), version: 0.8.14
    Found link https://files.pythonhosted.org/packages/7b/f0/ee80824014862413f1b6f55b28b5f95b92c8fc1ba4665aac32ab37528b57/httpretty-0.9.1.tar.gz#sha256=31794fd7afb352365e545c2dbe78c68fbe8d46510fe935a9898f6825c9626085 (from https://pypi.org/simple/httpretty/), version: 0.9.1
    Found link https://files.pythonhosted.org/packages/71/64/b9984d14a05ac74d28cc33437c6be0376a4b508602e5e2f00ff88f636ecc/httpretty-0.9.2.tar.gz#sha256=939f46f2ed0225a068f29f26c087c492467999b4a04a38dc29dc518a80d587b2 (from https://pypi.org/simple/httpretty/), version: 0.9.2
    Found link https://files.pythonhosted.org/packages/c7/72/af76e82e2cb136df0ed0df1e5a8e9fc5f530dfeff6435e2c7b81584d74ea/httpretty-0.9.3.tar.gz#sha256=1f03c852772e225fb80ef5c1eaab011cd664c2489582c7a6ebfccc096ba3dd30 (from https://pypi.org/simple/httpretty/), version: 0.9.3
    Found link https://files.pythonhosted.org/packages/f9/a5/7847237f0c38534d928cc486c3f051581bf1193249ed4d785e01074e96ea/httpretty-0.9.4.tar.gz#sha256=69259e22addf5ab5f25bd00c6568e16fc2e54efdd4da69eb0950718dba3b2dab (from https://pypi.org/simple/httpretty/), version: 0.9.4
    Found link https://files.pythonhosted.org/packages/84/60/b25c38767dee62f7cec49dc12a094128c7d2d9e946289db21331d748bb6d/httpretty-0.9.5.tar.gz#sha256=543fa2bd9c319bfa1e1de9e37d7c9c08fa926a692b65b0be5df4b2f069fd0ad7 (from https://pypi.org/simple/httpretty/), version: 0.9.5
    Found link https://files.pythonhosted.org/packages/6e/84/c779ebe4411195716588b413dd594373144c411762c158b579cf36b37168/httpretty-0.9.6.tar.gz#sha256=01b52d45077e702eda491f4fe75328d3468fd886aed5dcc530003e7b2b5939dc (from https://pypi.org/simple/httpretty/), version: 0.9.6
    Found link https://files.pythonhosted.org/packages/50/d1/e5e2da5c332b369f05b474e70ea7dcfa3cdaf7e11350bdae5e36a96e482f/httpretty-0.9.7.tar.gz#sha256=66216f26b9d2c52e81808f3e674a6fb65d4bf719721394a1a9be926177e55fbe (from https://pypi.org/simple/httpretty/), version: 0.9.7
  Given no hashes to check 1 links for project 'httpretty': discarding no candidates
  Using version 0.9.7 (newest of versions: 0.9.7)
  Created temporary directory: /tmp/pip-unpack-zxofu2hw
  Looking up "https://files.pythonhosted.org/packages/50/d1/e5e2da5c332b369f05b474e70ea7dcfa3cdaf7e11350bdae5e36a96e482f/httpretty-0.9.7.tar.gz" in the cache
  Current age based on date: 6
  Ignoring unknown cache-control directive: immutable
  Freshness lifetime from max-age: 365000000
  The response is "fresh", returning cached response
  365000000 > 6
  Using cached https://files.pythonhosted.org/packages/50/d1/e5e2da5c332b369f05b474e70ea7dcfa3cdaf7e11350bdae5e36a96e482f/httpretty-0.9.7.tar.gz
  Downloading from URL https://files.pythonhosted.org/packages/50/d1/e5e2da5c332b369f05b474e70ea7dcfa3cdaf7e11350bdae5e36a96e482f/httpretty-0.9.7.tar.gz#sha256=66216f26b9d2c52e81808f3e674a6fb65d4bf719721394a1a9be926177e55fbe (from https://pypi.org/simple/httpretty/)
  Added httpretty==0.9.7 from https://files.pythonhosted.org/packages/50/d1/e5e2da5c332b369f05b474e70ea7dcfa3cdaf7e11350bdae5e36a96e482f/httpretty-0.9.7.tar.gz#sha256=66216f26b9d2c52e81808f3e674a6fb65d4bf719721394a1a9be926177e55fbe to build tracker '/tmp/pip-req-tracker-b4skoo_s'
    Running setup.py (path:/tmp/pip-install-ovhopwv4/httpretty/setup.py) egg_info for package httpretty
    Running command python setup.py egg_info
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/var/www/.pyenv/versions/3.7.5/envs/dash-3.7/lib/python3.7/site-packages/setuptools/__init__.py", line 20, in <module>
        from setuptools.dist import Distribution, Feature
      File "/var/www/.pyenv/versions/3.7.5/envs/dash-3.7/lib/python3.7/site-packages/setuptools/dist.py", line 35, in <module>
        from setuptools import windows_support
      File "/var/www/.pyenv/versions/3.7.5/envs/dash-3.7/lib/python3.7/site-packages/setuptools/windows_support.py", line 2, in <module>
        import ctypes
      File "/var/www/.pyenv/versions/3.7.5/lib/python3.7/ctypes/__init__.py", line 7, in <module>
        from _ctypes import Union, Structure, Array
    ModuleNotFoundError: No module named '_ctypes'
Cleaning up...
  Removing source in /tmp/pip-install-ovhopwv4/httpretty
Removed httpretty==0.9.7 from https://files.pythonhosted.org/packages/50/d1/e5e2da5c332b369f05b474e70ea7dcfa3cdaf7e11350bdae5e36a96e482f/httpretty-0.9.7.tar.gz#sha256=66216f26b9d2c52e81808f3e674a6fb65d4bf719721394a1a9be926177e55fbe from build tracker '/tmp/pip-req-tracker-b4skoo_s'
Removed build tracker '/tmp/pip-req-tracker-b4skoo_s'
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Exception information:
Traceback (most recent call last):
  File "/var/www/.pyenv/versions/3.7.5/envs/dash-3.7/lib/python3.7/site-packages/pip/_internal/cli/base_command.py", line 188, in main
    status = self.run(options, args)
  File "/var/www/.pyenv/versions/3.7.5/envs/dash-3.7/lib/python3.7/site-packages/pip/_internal/commands/install.py", line 345, in run
    resolver.resolve(requirement_set)
  File "/var/www/.pyenv/versions/3.7.5/envs/dash-3.7/lib/python3.7/site-packages/pip/_internal/legacy_resolve.py", line 196, in resolve
    self._resolve_one(requirement_set, req)
  File "/var/www/.pyenv/versions/3.7.5/envs/dash-3.7/lib/python3.7/site-packages/pip/_internal/legacy_resolve.py", line 359, in _resolve_one
    abstract_dist = self._get_abstract_dist_for(req_to_install)
  File "/var/www/.pyenv/versions/3.7.5/envs/dash-3.7/lib/python3.7/site-packages/pip/_internal/legacy_resolve.py", line 307, in _get_abstract_dist_for
    self.require_hashes
  File "/var/www/.pyenv/versions/3.7.5/envs/dash-3.7/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 215, in prepare_linked_requirement
    finder, self.build_isolation,
  File "/var/www/.pyenv/versions/3.7.5/envs/dash-3.7/lib/python3.7/site-packages/pip/_internal/distributions/source.py", line 79, in prepare_distribution_metadata
    self.req.prepare_metadata()
  File "/var/www/.pyenv/versions/3.7.5/envs/dash-3.7/lib/python3.7/site-packages/pip/_internal/req/req_install.py", line 551, in prepare_metadata
    self.run_egg_info()
  File "/var/www/.pyenv/versions/3.7.5/envs/dash-3.7/lib/python3.7/site-packages/pip/_internal/req/req_install.py", line 628, in run_egg_info
    command_desc='python setup.py egg_info')
  File "/var/www/.pyenv/versions/3.7.5/envs/dash-3.7/lib/python3.7/site-packages/pip/_internal/utils/misc.py", line 931, in call_subprocess
    raise InstallationError(exc_msg)
pip._internal.exceptions.InstallationError: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

dunno, it might be a pyenv bug:
$ pip --version
pip 19.2.3 from /var/www/.pyenv/versions/3.7.5/envs/dash-3.7/lib/python3.7/site-packages/pip (python 3.7)


Add ability to specific accessibility on a per-item basis

We may want to change the accessibility of a given keychain item. However, the only way to do this currently with SAMKeychain is to use the class method [SAMKeychain accessibilityType]. This has two drawbacks:

It sets the accessibility type for all the subsequent password saves
If you want to change the accessibility type for a single save, you can rely on setting the global accessibility type because it wouldn't be thread-safe.

This PR adds an accessibility field on the SAMKeychainQuery. It doesn't otherwise change the API and stays backward compatible.

Hi everyone. Could this be merged since it has been approved?


Configuration cache should allow undeclared access to all default system properties provided by the current JVM

Currently the configuration cache allows undeclared access to a hardcoded list of system properties.
This issue is about allowing undeclared access to all default system properties provided by the current JVM instead.
This would include JVM specific default system properties such as the ones that allow to detect the JVM bitness for example (sun.arch.data.model or com.ibm.vm.bitmode).
Expected Behavior
Undeclared access to default system properties provided by the current JVM are allowed.
Current Behavior
Accessing default system properties provided by the current JVM are reported as a problem if they are not in the hardcoded list of allowed properties.
Context
Several builds and Gradle plugins read such properties, either directly or via some libraries.

We could use the JVM probe infrastructure for this. I guess we can then collect the default system properties but we will need a set of filtered out system properties, e.g. java.io.tmpdir.

Closing as fixed since Gradle no longer reports problems for system properties read at configuration time.


Add mercu buana university

University Name: Mercu Buana University
Official Website: https://www.mercubuana.ac.id/
Mail Domain : student.mercubuana.ac.id

@JoppanAditya I am sorry, the domain student.mercubuana.ac.id is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).

@JoppanAditya I am sorry, the domain student.mercubuana.ac.id is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).


Cannot get a signed_id for a new record (ArgumentError)

Describe the bug
I'm getting this error when try to create a new object with upload using activeStorage.
raise ArgumentError, "Cannot get a signed_id for a new record" if new_record?
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

I'm using rails 7.1.2 and ruby 3.3.0
Reproduction steps
Steps to reproduce the issue seen.
Expected behavior
A clear and concise description of what you expected to happen.
Additional context

rails version: 7.1.2
rails_admin version: 3.1.2
rails_admin npm package version:
full stack trace (if there's an exception)

activerecord (<IP_ADDRESS>) lib/active_record/signed_id.rb in signed_id at line 113
activestorage (<IP_ADDRESS>) app/models/active_storage/blob.rb in signed_id at line 164
activestorage (<IP_ADDRESS>) app/models/active_storage/attachment.rb in signed_id at line 34
activesupport (<IP_ADDRESS>) lib/active_support/core_ext/module/delegation.rb in public_send at line 333
activesupport (<IP_ADDRESS>) lib/active_support/core_ext/module/delegation.rb in method_missing at line 333
activestorage (<IP_ADDRESS>) config/routes.rb in block (2 levels) in <main> at line 66
actionpack (<IP_ADDRESS>) lib/action_dispatch/routing/route_set.rb in instance_exec at line 679
actionpack (<IP_ADDRESS>) lib/action_dispatch/routing/route_set.rb in eval_block at line 679
actionpack (<IP_ADDRESS>) lib/action_dispatch/routing/route_set.rb in call at line 668
actionpack (<IP_ADDRESS>) lib/action_dispatch/routing/route_set.rb in block (2 levels) in add_url_helper at line 162
actionpack (<IP_ADDRESS>) lib/action_dispatch/routing/url_for.rb in public_send at line 218
actionpack (<IP_ADDRESS>) lib/action_dispatch/routing/url_for.rb in route_for at line 218
actionpack (<IP_ADDRESS>) lib/action_dispatch/routing/route_set.rb in route_for at line 545
activestorage (<IP_ADDRESS>) config/routes.rb in block (2 levels) in <main> at line 27
actionpack (<IP_ADDRESS>) lib/action_dispatch/routing/route_set.rb in instance_exec at line 679
actionpack (<IP_ADDRESS>) lib/action_dispatch/routing/route_set.rb in eval_block at line 679
actionpack (<IP_ADDRESS>) lib/action_dispatch/routing/route_set.rb in call at line 668
actionpack (<IP_ADDRESS>) lib/action_dispatch/routing/route_set.rb in block (2 levels) in add_url_helper at line 156
rails_admin (3.1.2) lib/rails_admin/config/fields/types/active_storage.rb in resource_url at line 53
rails_admin (3.1.2) lib/rails_admin/config/fields/types/file_upload.rb in block in <class:FileUpload> at line 43
rails_admin (3.1.2) lib/rails_admin/config/configurable.rb in instance_eval at line 77
rails_admin (3.1.2) lib/rails_admin/config/configurable.rb in block in register_instance_option at line 77
rails_admin (3.1.2) app/views/rails_admin/main/_form_file_upload.html.erb at line 6
actionview (<IP_ADDRESS>) lib/action_view/base.rb in public_send at line 264
actionview (<IP_ADDRESS>) lib/action_view/base.rb in _run at line 264
actionview (<IP_ADDRESS>) lib/action_view/template.rb in block in render at line 261
activesupport (<IP_ADDRESS>) lib/active_support/notifications.rb in block in instrument at line 206
activesupport (<IP_ADDRESS>) lib/active_support/notifications/instrumenter.rb in instrument at line 58
sentry-rails (5.17.3) lib/sentry/rails/tracing.rb in instrument at line 54
activesupport (<IP_ADDRESS>) lib/active_support/notifications.rb in instrument at line 206
actionview (<IP_ADDRESS>) lib/action_view/template.rb in instrument_render_template at line 549
actionview (<IP_ADDRESS>) lib/action_view/template.rb in render at line 249
actionview (<IP_ADDRESS>) lib/action_view/renderer/partial_renderer.rb in block in render_partial_template at line 252
activesupport (<IP_ADDRESS>) lib/active_support/notifications.rb in block in instrument at line 206
activesupport (<IP_ADDRESS>) lib/active_support/notifications/instrumenter.rb in instrument at line 58
sentry-rails (5.17.3) lib/sentry/rails/tracing.rb in instrument at line 54
activesupport (<IP_ADDRESS>) lib/active_support/notifications.rb in instrument at line 206
actionview (<IP_ADDRESS>) lib/action_view/renderer/partial_renderer.rb in render_partial_template at line 246
actionview (<IP_ADDRESS>) lib/action_view/renderer/partial_renderer.rb in render at line 237
actionview (<IP_ADDRESS>) lib/action_view/renderer/renderer.rb in render_partial_to_object at line 83
actionview (<IP_ADDRESS>) lib/action_view/renderer/renderer.rb in render_to_object at line 29
actionview (<IP_ADDRESS>) lib/action_view/renderer/renderer.rb in render at line 24
actionview (<IP_ADDRESS>) lib/action_view/helpers/rendering_helper.rb in block in render at line 37
actionview (<IP_ADDRESS>) lib/action_view/base.rb in in_rendering_context at line 291
actionview (<IP_ADDRESS>) lib/action_view/helpers/rendering_helper.rb in render at line 33
rails_admin (3.1.2) lib/rails_admin/config/fields/base.rb in block in <class:Base> at line 281
rails_admin (3.1.2) lib/rails_admin/config/configurable.rb in instance_eval at line 77
rails_admin (3.1.2) lib/rails_admin/config/configurable.rb in block in register_instance_option at line 77
rails_admin (3.1.2) lib/rails_admin/config/proxyable/proxy.rb in method_missing at line 27
rails_admin (3.1.2) app/helpers/rails_admin/form_builder.rb in field_for at line 77
rails_admin (3.1.2) app/helpers/rails_admin/form_builder.rb in block in input_for at line 62
actionview (<IP_ADDRESS>) lib/action_view/helpers/capture_helper.rb in block in capture at line 50
actionview (<IP_ADDRESS>) lib/action_view/buffers.rb in capture at line 75
actionview (<IP_ADDRESS>) lib/action_view/helpers/capture_helper.rb in capture at line 50
actionview (<IP_ADDRESS>) lib/action_view/helpers/tag_helper.rb in content_tag at line 349
rails_admin (3.1.2) app/helpers/rails_admin/form_builder.rb in input_for at line 61
rails_admin (3.1.2) app/helpers/rails_admin/form_builder.rb in block in field_wrapper_for at line 51
actionview (<IP_ADDRESS>) lib/action_view/helpers/capture_helper.rb in block in capture at line 50
actionview (<IP_ADDRESS>) lib/action_view/buffers.rb in capture at line 75
actionview (<IP_ADDRESS>) lib/action_view/helpers/capture_helper.rb in capture at line 50
actionview (<IP_ADDRESS>) lib/action_view/helpers/tag_helper.rb in content_tag at line 349
rails_admin (3.1.2) app/helpers/rails_admin/form_builder.rb in field_wrapper_for at line 48
rails_admin (3.1.2) app/helpers/rails_admin/form_builder.rb in block (2 levels) in fieldset_for at line 39
rails_admin (3.1.2) app/helpers/rails_admin/form_builder.rb in collect at line 39
rails_admin (3.1.2) app/helpers/rails_admin/form_builder.rb in block in fieldset_for at line 39
actionview (<IP_ADDRESS>) lib/action_view/helpers/capture_helper.rb in block in capture at line 50
actionview (<IP_ADDRESS>) lib/action_view/buffers.rb in capture at line 75
actionview (<IP_ADDRESS>) lib/action_view/helpers/capture_helper.rb in capture at line 50
actionview (<IP_ADDRESS>) lib/action_view/helpers/tag_helper.rb in content_tag at line 349
rails_admin (3.1.2) app/helpers/rails_admin/form_builder.rb in fieldset_for at line 35
rails_admin (3.1.2) app/helpers/rails_admin/form_builder.rb in block (2 levels) in generate at line 20
rails_admin (3.1.2) app/helpers/rails_admin/form_builder.rb in collect at line 19
rails_admin (3.1.2) app/helpers/rails_admin/form_builder.rb in block in generate at line 19
rails_admin (3.1.2) app/helpers/rails_admin/form_builder.rb in without_field_error_proc_added_div at line 143
rails_admin (3.1.2) app/helpers/rails_admin/form_builder.rb in generate at line 11
rails_admin (3.1.2) app/views/rails_admin/main/new.html.erb at line 2
actionview (<IP_ADDRESS>) lib/action_view/helpers/capture_helper.rb in block in capture at line 50
actionview (<IP_ADDRESS>) lib/action_view/buffers.rb in capture at line 75
actionview (<IP_ADDRESS>) lib/action_view/helpers/capture_helper.rb in capture at line 50
actionview (<IP_ADDRESS>) lib/action_view/helpers/form_helper.rb in form_with at line 773
actionview (<IP_ADDRESS>) lib/action_view/helpers/form_helper.rb in form_for at line 461
rails_admin (3.1.2) app/helpers/rails_admin/main_helper.rb in rails_admin_form_for at line 9
rails_admin (3.1.2) app/views/rails_admin/main/new.html.erb at line 1
actionview (<IP_ADDRESS>) lib/action_view/base.rb in public_send at line 264
actionview (<IP_ADDRESS>) lib/action_view/base.rb in _run at line 264
actionview (<IP_ADDRESS>) lib/action_view/template.rb in block in render at line 261
activesupport (<IP_ADDRESS>) lib/active_support/notifications.rb in block in instrument at line 206
activesupport (<IP_ADDRESS>) lib/active_support/notifications/instrumenter.rb in instrument at line 58
sentry-rails (5.17.3) lib/sentry/rails/tracing.rb in instrument at line 54
activesupport (<IP_ADDRESS>) lib/active_support/notifications.rb in instrument at line 206
actionview (<IP_ADDRESS>) lib/action_view/template.rb in instrument_render_template at line 549
actionview (<IP_ADDRESS>) lib/action_view/template.rb in render at line 249
actionview (<IP_ADDRESS>) lib/action_view/renderer/template_renderer.rb in block (2 levels) in render_template at line 66
activesupport (<IP_ADDRESS>) lib/active_support/notifications.rb in block in instrument at line 206
activesupport (<IP_ADDRESS>) lib/active_support/notifications/instrumenter.rb in instrument at line 58
sentry-rails (5.17.3) lib/sentry/rails/tracing.rb in instrument at line 54
activesupport (<IP_ADDRESS>) lib/active_support/notifications.rb in instrument at line 206
actionview (<IP_ADDRESS>) lib/action_view/renderer/template_renderer.rb in block in render_template at line 60
actionview (<IP_ADDRESS>) lib/action_view/renderer/template_renderer.rb in block in render_with_layout at line 76
activesupport (<IP_ADDRESS>) lib/active_support/notifications.rb in block in instrument at line 206
activesupport (<IP_ADDRESS>) lib/active_support/notifications/instrumenter.rb in instrument at line 58
sentry-rails (5.17.3) lib/sentry/rails/tracing.rb in instrument at line 54
activesupport (<IP_ADDRESS>) lib/active_support/notifications.rb in instrument at line 206
actionview (<IP_ADDRESS>) lib/action_view/renderer/template_renderer.rb in render_with_layout at line 75
actionview (<IP_ADDRESS>) lib/action_view/renderer/template_renderer.rb in render_template at line 59
actionview (<IP_ADDRESS>) lib/action_view/renderer/template_renderer.rb in render at line 11
actionview (<IP_ADDRESS>) lib/action_view/renderer/renderer.rb in render_template_to_object at line 63
actionview (<IP_ADDRESS>) lib/action_view/renderer/renderer.rb in render_to_object at line 31
actionview (<IP_ADDRESS>) lib/action_view/rendering.rb in block in _render_template at line 135
actionview (<IP_ADDRESS>) lib/action_view/base.rb in in_rendering_context at line 291
actionview (<IP_ADDRESS>) lib/action_view/rendering.rb in _render_template at line 134
actionpack (<IP_ADDRESS>) lib/action_controller/metal/streaming.rb in _render_template at line 256
actionview (<IP_ADDRESS>) lib/action_view/rendering.rb in render_to_body at line 121
actionpack (<IP_ADDRESS>) lib/action_controller/metal/rendering.rb in render_to_body at line 158
actionpack (<IP_ADDRESS>) lib/action_controller/metal/renderers.rb in render_to_body at line 141
actionpack (<IP_ADDRESS>) lib/abstract_controller/rendering.rb in render at line 27
actionpack (<IP_ADDRESS>) lib/action_controller/metal/rendering.rb in render at line 139
actionpack (<IP_ADDRESS>) lib/action_controller/metal/instrumentation.rb in block (2 levels) in render at line 29
benchmark.rb in realtime at line 313

activesupport (<IP_ADDRESS>) lib/active_support/core_ext/benchmark.rb in ms at line 14
actionpack (<IP_ADDRESS>) lib/action_controller/metal/instrumentation.rb in block in render at line 29
actionpack (<IP_ADDRESS>) lib/action_controller/metal/instrumentation.rb in cleanup_view_runtime at line 98
activerecord (<IP_ADDRESS>) lib/active_record/railties/controller_runtime.rb in cleanup_view_runtime at line 39
actionpack (<IP_ADDRESS>) lib/action_controller/metal/instrumentation.rb in render at line 28
rails_admin (3.1.2) app/controllers/rails_admin/main_controller.rb in block (2 levels) in handle_save_error at line 114
actionpack (<IP_ADDRESS>) lib/action_controller/metal/mime_responds.rb in respond_to at line 214
rails_admin (3.1.2) app/controllers/rails_admin/main_controller.rb in handle_save_error at line 113
rails_admin (3.1.2) lib/rails_admin/config/actions/new.rb in block (2 levels) in <class:New> at line 52
rails_admin (3.1.2) app/controllers/rails_admin/main_controller.rb in instance_eval at line 38
rails_admin (3.1.2) app/controllers/rails_admin/main_controller.rb in action_missing at line 38
actionpack (<IP_ADDRESS>) lib/abstract_controller/base.rb in _handle_action_missing at line 238
actionpack (<IP_ADDRESS>) lib/action_controller/metal/basic_implicit_render.rb in send_action at line 6
actionpack (<IP_ADDRESS>) lib/abstract_controller/base.rb in process_action at line 224
actionpack (<IP_ADDRESS>) lib/action_controller/metal/rendering.rb in process_action at line 165
actionpack (<IP_ADDRESS>) lib/abstract_controller/callbacks.rb in block in process_action at line 259
activesupport (<IP_ADDRESS>) lib/active_support/callbacks.rb in block in run_callbacks at line 121
actiontext (<IP_ADDRESS>) lib/action_text/rendering.rb in with_renderer at line 23
actiontext (<IP_ADDRESS>) lib/action_text/engine.rb in block (4 levels) in <class:Engine> at line 69
activesupport (<IP_ADDRESS>) lib/active_support/callbacks.rb in instance_exec at line 130
activesupport (<IP_ADDRESS>) lib/active_support/callbacks.rb in block in run_callbacks at line 130
sentry-rails (5.17.3) lib/sentry/rails/controller_transaction.rb in block in sentry_around_action at line 17
sentry-ruby (5.17.3) lib/sentry/hub.rb in block in with_child_span at line 109
sentry-ruby (5.17.3) lib/sentry/span.rb in with_child_span at line 211
sentry-ruby (5.17.3) lib/sentry/hub.rb in with_child_span at line 107
sentry-ruby (5.17.3) lib/sentry-ruby.rb in with_child_span at line 490
sentry-rails (5.17.3) lib/sentry/rails/controller_transaction.rb in sentry_around_action at line 14
activesupport (<IP_ADDRESS>) lib/active_support/callbacks.rb in block in run_callbacks at line 130
activesupport (<IP_ADDRESS>) lib/active_support/callbacks.rb in run_callbacks at line 141
actionpack (<IP_ADDRESS>) lib/abstract_controller/callbacks.rb in process_action at line 258
actionpack (<IP_ADDRESS>) lib/action_controller/metal/rescue.rb in process_action at line 25
actionpack (<IP_ADDRESS>) lib/action_controller/metal/instrumentation.rb in block in process_action at line 74
activesupport (<IP_ADDRESS>) lib/active_support/notifications.rb in block in instrument at line 206
activesupport (<IP_ADDRESS>) lib/active_support/notifications/instrumenter.rb in instrument at line 58
sentry-rails (5.17.3) lib/sentry/rails/tracing.rb in instrument at line 54
activesupport (<IP_ADDRESS>) lib/active_support/notifications.rb in instrument at line 206
actionpack (<IP_ADDRESS>) lib/action_controller/metal/instrumentation.rb in process_action at line 73
actionpack (<IP_ADDRESS>) lib/action_controller/metal/params_wrapper.rb in process_action at line 261
activerecord (<IP_ADDRESS>) lib/active_record/railties/controller_runtime.rb in process_action at line 32
actionpack (<IP_ADDRESS>) lib/abstract_controller/base.rb in process at line 160
actionview (<IP_ADDRESS>) lib/action_view/rendering.rb in process at line 40
actionpack (<IP_ADDRESS>) lib/action_controller/metal.rb in dispatch at line 227
actionpack (<IP_ADDRESS>) lib/action_controller/metal.rb in dispatch at line 309
actionpack (<IP_ADDRESS>) lib/action_dispatch/routing/route_set.rb in dispatch at line 49
actionpack (<IP_ADDRESS>) lib/action_dispatch/routing/route_set.rb in serve at line 32
actionpack (<IP_ADDRESS>) lib/action_dispatch/journey/router.rb in block in serve at line 51
actionpack (<IP_ADDRESS>) lib/action_dispatch/journey/router.rb in block in find_routes at line 131
actionpack (<IP_ADDRESS>) lib/action_dispatch/journey/router.rb in each at line 124
actionpack (<IP_ADDRESS>) lib/action_dispatch/journey/router.rb in find_routes at line 124
actionpack (<IP_ADDRESS>) lib/action_dispatch/journey/router.rb in serve at line 32
actionpack (<IP_ADDRESS>) lib/action_dispatch/routing/route_set.rb in call at line 882
railties (<IP_ADDRESS>) lib/rails/engine.rb in call at line 536
railties (<IP_ADDRESS>) lib/rails/railtie.rb in public_send at line 226
railties (<IP_ADDRESS>) lib/rails/railtie.rb in method_missing at line 226
actionpack (<IP_ADDRESS>) lib/action_dispatch/routing/mapper.rb in block in <class:Constraints> at line 22
actionpack (<IP_ADDRESS>) lib/action_dispatch/routing/mapper.rb in serve at line 51
actionpack (<IP_ADDRESS>) lib/action_dispatch/journey/router.rb in block in serve at line 51
actionpack (<IP_ADDRESS>) lib/action_dispatch/journey/router.rb in block in find_routes at line 131
actionpack (<IP_ADDRESS>) lib/action_dispatch/journey/router.rb in each at line 124
actionpack (<IP_ADDRESS>) lib/action_dispatch/journey/router.rb in find_routes at line 124
actionpack (<IP_ADDRESS>) lib/action_dispatch/journey/router.rb in serve at line 32
actionpack (<IP_ADDRESS>) lib/action_dispatch/routing/route_set.rb in call at line 882
warden (1.2.9) lib/warden/manager.rb in block in call at line 36
warden (1.2.9) lib/warden/manager.rb in catch at line 34
warden (1.2.9) lib/warden/manager.rb in call at line 34
rack (3.0.10) lib/rack/tempfile_reaper.rb in call at line 20
rack (3.0.10) lib/rack/etag.rb in call at line 29
rack (3.0.10) lib/rack/conditional_get.rb in call at line 43
rack (3.0.10) lib/rack/head.rb in call at line 15
actionpack (<IP_ADDRESS>) lib/action_dispatch/http/permissions_policy.rb in call at line 36
actionpack (<IP_ADDRESS>) lib/action_dispatch/http/content_security_policy.rb in call at line 33
rack-session (2.0.0) lib/rack/session/abstract/id.rb in context at line 272
rack-session (2.0.0) lib/rack/session/abstract/id.rb in call at line 266
actionpack (<IP_ADDRESS>) lib/action_dispatch/middleware/cookies.rb in call at line 689
actionpack (<IP_ADDRESS>) lib/action_dispatch/middleware/callbacks.rb in block in call at line 29
activesupport (<IP_ADDRESS>) lib/active_support/callbacks.rb in run_callbacks at line 101
actionpack (<IP_ADDRESS>) lib/action_dispatch/middleware/callbacks.rb in call at line 28
sentry-rails (5.17.3) lib/sentry/rails/rescued_exception_interceptor.rb in call at line 12
actionpack (<IP_ADDRESS>) lib/action_dispatch/middleware/debug_exceptions.rb in call at line 29
sentry-ruby (5.17.3) lib/sentry/rack/capture_exceptions.rb in block (2 levels) in call at line 29
sentry-ruby (5.17.3) lib/sentry/hub.rb in with_session_tracking at line 251
sentry-ruby (5.17.3) lib/sentry-ruby.rb in with_session_tracking at line 403
sentry-ruby (5.17.3) lib/sentry/rack/capture_exceptions.rb in block in call at line 20
sentry-ruby (5.17.3) lib/sentry/hub.rb in with_scope at line 59
sentry-ruby (5.17.3) lib/sentry-ruby.rb in with_scope at line 383
sentry-ruby (5.17.3) lib/sentry/rack/capture_exceptions.rb in call at line 19
actionpack (<IP_ADDRESS>) lib/action_dispatch/middleware/show_exceptions.rb in call at line 31
railties (<IP_ADDRESS>) lib/rails/rack/logger.rb in call_app at line 37
railties (<IP_ADDRESS>) lib/rails/rack/logger.rb in block in call at line 24
activesupport (<IP_ADDRESS>) lib/active_support/tagged_logging.rb in block in tagged at line 135
activesupport (<IP_ADDRESS>) lib/active_support/tagged_logging.rb in tagged at line 39
activesupport (<IP_ADDRESS>) lib/active_support/tagged_logging.rb in tagged at line 135
activesupport (<IP_ADDRESS>) lib/active_support/broadcast_logger.rb in method_missing at line 240
railties (<IP_ADDRESS>) lib/rails/rack/logger.rb in call at line 24
actionpack (<IP_ADDRESS>) lib/action_dispatch/middleware/remote_ip.rb in call at line 92
request_store (1.6.0) lib/request_store/middleware.rb in call at line 19
actionpack (<IP_ADDRESS>) lib/action_dispatch/middleware/request_id.rb in call at line 28
1
rack (3.0.10) lib/rack/runtime.rb in call at line 24
actionpack (<IP_ADDRESS>) lib/action_dispatch/middleware/executor.rb in call at line 14
actionpack (<IP_ADDRESS>) lib/action_dispatch/middleware/static.rb in call at line 25
rack (3.0.10) lib/rack/sendfile.rb in call at line 114
railties (<IP_ADDRESS>) lib/rails/engine.rb in call at line 536
puma (6.4.2) lib/puma/configuration.rb in call at line 272
puma (6.4.2) lib/puma/request.rb in block in handle_request at line 100
puma (6.4.2) lib/puma/thread_pool.rb in with_force_shutdown at line 378
puma (6.4.2) lib/puma/request.rb in handle_request at line 99
puma (6.4.2) lib/puma/server.rb in process_client at line 464
puma (6.4.2) lib/puma/server.rb in block in run at line 245
puma (6.4.2) lib/puma/thread_pool.rb in block in spawn_thread at line 155

Add any other context about the problem here.

I managed to solve it by overriding the pretty_value of the field and checking if the file is attached and persisted:
field :avatar do
  pretty_value do
    if value.presence && value.attached? && value.persisted?
      v = bindings[:view]
      url = resource_url
      if image
        thumb_url = resource_url(thumb_method)
        image_html = v.image_tag(thumb_url, class: "img-thumbnail")
        (url == thumb_url) ? image_html : v.link_to(image_html, url, target: "_blank", rel: "noopener noreferrer")
      else
        v.link_to(link_name, url, target: "_blank", rel: "noopener noreferrer")
      end
    end
  end
end

Ref https://github.com/rails/rails/issues/50234#issuecomment-1836720876


[WIP] Add ability to compare sample app executions using Student's t-test

closing in favor of https://github.com/yugabyte/yb-sample-apps/pull/46

closing in favor of https://github.com/yugabyte/yb-sample-apps/pull/46


Type narrowing for generic types

Hi,
Type narrowing not working in the following situation (maybe caused by generic type?):
interface Options<T> {
    opt: T|(() => T);
}

function MyFunc<T>(options: Options<T>) {
    var opt = options.opt;
    if (typeof opt === "function")
    {
        var k = opt; // k is "T | (() => T)" but should be "() => T"
    }
}

///////////////////////////////////

var options: Options<number>;
var opt = options.opt;

if (typeof opt === "function")
{
    var k = opt; // k is "() => number", it is OK
}

This is by design. In the type T | (() => T), T itself could be a function type so we can't conclude anything from the typeof test.
However, when the type is number | () => number we can indeed tell the difference.


Run HTTP calls on a different thread pool than client actions

When the HTTP API goes down, some plugins "stop working" because an API call is blocking the plugin task from running. Once the timeout gets hit, then the plugin works again. Most specifically, disabling and enabling a plugin (ConfigManager.setConfiguration()).
The setConfiguation method was running on the same SingleThreadedExecutor's task thread as the HTTP call, thus blocking enabling and disabling plugins.
So, there should be a separate thread pool for executing HTTP calls so the client UI doesn't block or other plugin tasks.

(Discord is on fire btw)

okhttp has a built in threadpool for this. Maybe we should just use that instead? https://square.github.io/okhttp/3.x/okhttp/okhttp3/Call.html#enqueue-okhttp3.Callback-

Fixed in #3428


[Feature] trino sink to paimon

Motivation
write data to paimon using trino
Solution
No response
Anything else?
No response
Are you willing to submit a PR?
I'm willing to submit a PR!

Hi @hiliuxg , do you have time to continue this work?


[BUG] Parallel producers to the same stream create jumbled video

Logging
No errors in logs, so I don't think it is relevant here.
Describe the bug
I'd like to concurrently upload multiple on-demand clips for historical video data to the same stream. I made sure the producer timestamps are set correctly for each fragment. On the viewer side I use LIVE_REPLAY mode when calling the GetHLSStreamingSessionURL API, since I'd like to start viewing the video clip even if it's not fully uploaded yet. The getHLSMediaPlaylist call returns a playlist that has mixed timestamps between the different historical video clips which causes the player to show a stream that jumps between fragments between the different upload sessions.
To Reproduce
Steps to reproduce the behavior:

Start streaming a historical video clip by creating one Gstreamer pipeline that ends with kvssink. Use OFFLINE mode for kvssink to upload frames, making sure the producer timestamp is set correctly by setting the PTS of the Gstreamer buffers correctly.
Start another stream in parallel the same way as above in a separate Gstreamer pipeline.
Make GetHLSStreamingSessionURL API call with LIVE_REPLAY mode, start/end timestamp of the first video clip and PRODUCER_TIMESTAMP. Using the following parameters and using the python boto API:

video_client = boto_session.client("kinesisvideo")
data_endpoint: str = video_client.get_data_endpoint(
    StreamName=stream_name,
    APIName="GET_HLS_STREAMING_SESSION_URL",
)["DataEndpoint"]
archive_client = boto_session.client(
    "kinesis-video-archived-media", endpoint_url=data_endpoint
)
archive_client.get_hls_streaming_session_url(
    StreamName=stream_name,
    PlaybackMode="LIVE_REPLAY",
    HLSFragmentSelector={
        "FragmentSelectorType": "PRODUCER_TIMESTAMP",
        "TimestampRange": {
            "StartTimestamp": start_time
            "EndTimestamp": end_time,
        }
    },
    ContainerFormat="FRAGMENTED_MP4",
    DiscontinuityMode="ALWAYS",
    DisplayFragmentTimestamp="ALWAYS",
    MaxMediaPlaylistFragmentResults=600,
    Expires=43200);

Use VideoJS to play the HLS URL we got
Observe jumbled stream between the two different streaming sessions.

Expected behavior
We expect to see continuous streaming of the first video clip without seeing any frames from the second video clip upload session.
SDK version number
We are using the last commit on the master branch, release 3.3.1 (commit 70f74f14cf).
Open source building
N/A
Screenshots
N/A
Platform (please complete the following information):

OS: Linux, Ubuntu
Processor: 11th Gen Intel(R) Core(TM) i9-11900K @ 3.50GHz
Version: 20.04

Additional context
Example pipeline we use to upload fragments (we do transcoding, but that shouldn't matter for the bug reported above):
appsrc name=appsrc block=true ! video/x-h265,stream-format=(string)byte-stream,width=2560,height=1920,framerate=20/1  !
h265parse ! video/x-h265,stream-format=(string)byte-stream,width=2560,height=1920,profile=(string)main !
avdec_h265 name=dec qos=false ! capsfilter caps=video/x-raw,format=I420 !
x264enc bitrate=1000 tune=zerolatency name=enc key-int-max=40 !
video/x-h264,stream-format=(string)byte-stream,width=2560,height=1920,framerate=20/1  !
h264parse ! kvssink name=kvssink stream-name=<stream-name> storage-size=512 streaming-type=2
file-start-time=0 access-key=<key> secret-key=<secret> aws-region=us-west-2 log-config="<path>/config/kvs_log_configuration"

When pushing buffers to appsrc, we set the buffer PTS correctly to represent the absolute producer time.

Hi @bkovacs-orca, KVS Streams are not meant for this use case. Only a single source should upload to a single stream at one point in time. You will have to use multiple streams or make sure while uploading to the same stream you use the correct timestamps.
Closing assuming answered

@niyatim23 Thanks for the answer! We are uploading to the same KVS stream concurrently in multiple sessions and we are using the correct timestamps for each session. These sessions upload video clips that are not overlapping. In this case, I assume KVS Streams should work properly, so I think we should keep this bug open. What do you think?

Currently KVSSink overwrites the producer timestamp to the current time, so it will not work as intended for your use case. We are currently testing a a variety of features in the add-signals-kvssink branch, one of which is a property use-original-pts which is what you would need for this use case to work. Feel free to take the necessary commits if you need this immediately, or wait until our next release sometime mid February.

@jdelapla Thanks for the answer! Currently KVSSink overwrites the producer timestamp to the current time I think this is true in LIVE mode, but we use OFFLINE mode when using KVSSink. We make sure the producer timestamps are set correctly as the PTS of the GstBuffers. And based on reading the code of KVSSink, I saw that in OFFLINE mode it will use the PTS of the GstBuffer, unless I'm missing something.

Sure, in that case, please share verbose logs from both uploads demonstrating the issue with timestamps

@niyatim23 On the uploader side, I think the timestamps are correct, but somewhere on the server side something goes wrong and because of that when we watch an HLS stream in the browser that we got from GetHLSStreamingSessionURL with LIVE_REPLAY mode, it is mixed between the two uploads.
I think the issue is on the server side because if we call GetHLSStreamingSessionURL with ON_DEMAND mode, we don't see a mixed stream. ON_DEMAND is not sufficient for our use case, because we might be uploading the clip while we are already watching it and ON_DEMAND will not return an HLS link that can provide a dynamically growing "live" playlist, so it will just give a playlist of fragments that were already uploaded from the requested clip.
Knowing all this, do you think it would still be useful to share logs from both uploads on the uploader side?


Can't execute transaction

Hello, I am trying to run the following code using sqlite3 as a driver and sql-template-strings:
const sql = SQL`begin transaction; update wallets set balance = iif((select balance from wallets where user_id = ${originUserId}) < ${amount}, balance, balance + ${amount}) where user_id = ${targetUserId}; update wallets set balance = iif(balance < ${amount}, balance, balance - ${amount}) where user_id = ${originUserId}; commit`;
        console.log('sql', sql);
        await this.db.run(sql);```

// Output is:

```sql SQLStatement {
  strings: [
    'begin transaction; update wallets set balance = iif((select balance from wallets where user_id = ',
    ') < ',
    ', balance, balance + ',
    ') where user_id = ',
    '; update wallets set balance = iif(balance < ',
    ', balance, balance - ',
    ') where user_id = ',
    '; commit'
  ],
  values: [
    '277146459080491008',
    10,
    10,
    '282581505996357632',
    10,
    10,
    '277146459080491008'
  ]
}
Error: SQLITE_RANGE: column index out of range
--> in Database#run('begin transaction; update wallets set balance = iif((select balance from wallets where user_id = ?) < ?, balance, balance + ?) where user_id = ?; update wallets set balance = iif(balance < ?, balance, balanc
e - ?) where user_id = ?; commit', '277146459080491008', 10, 10, '282581505996357632', 10, 10, '277146459080491008', [Function (anonymous)])
    at X:\Labor\hanabi\node_modules\sqlite\build\Database.js:95:21
    at new Promise (<anonymous>)
    at Database.run (X:\Labor\hanabi\node_modules\sqlite\build\Database.js:93:16)
    at CurrencyService.<anonymous> (X:\Labor\hanabi\build\services\currency-service.js:55:27)
    at Generator.next (<anonymous>)
    at X:\Labor\hanabi\build\services\currency-service.js:8:71
    at new Promise (<anonymous>)
    at __awaiter (X:\Labor\hanabi\build\services\currency-service.js:4:12)
    at CurrencyService.transfer (X:\Labor\hanabi\build\services\currency-service.js:46:16) {
  errno: 25,
  code: 'SQLITE_RANGE',
  __augmented: true
}

I have also tried with db.exec instead of run and the output is:
[... same sql statement ...]

TRACE begin transaction;
TRACE update wallets set balance = iif((select balance from wallets where user_id = NULL) < NULL, balance, balance + NULL) where user_id = NULL;
TRACE update wallets set balance = iif(balance < NULL, balance, balance - NULL) where user_id = NULL;
TRACE commit

I'm at a loss of what to do, I have googled for answers but did not find anything. What am I doing wrong? I'm not sure it's a library issue but I have run the exact statement successfully in the db console.

I'll take a look at it over the weekend, hard to say if what you're doing is a limitation of the sql template tag or not.
Overall, it feels like a situation where it'd be best to just not use sql template strings.
You should still be able to do parameter binding like you have without it.

Thank you. I tried that, too, with the same result. I got it working for now by calling run on every statement separated by a semicolon.

This issue is down to the sqlite3 library itself.
this.db.run('BEGIN TRANSACTION; INSERT INTO tbl VALUES (?); COMMIT;', ['test'], () => {})
this.db is the sqlite3 instance and produces your error.
If you do more research into it, it doesn't seem to be supported in a streamlined way.

Google search
sqlite3 issues


add datastore_get command to dump values from the datastore by key

adds a datastore_get subcommand that accepts a multihash key and dumps the result to the console.  Tries to use the reader.utils.dump command for nice formatted output and falls back to print if that fails.
usage:
mediachain datastore_get QmTpZY7asg9uMyYVqhKWhyopEnHJXVceCpLWK462fyQhGA

Would like to have called it datastore-get but the add_parser command doesn't have a nice way to rename the dash to an underscore, and the dash would result in an invalid python attribute name.   This seemed like the simplest way to go.

:+1:

Overall good, though some of the things I want to dump are not objects

It works for the raw json blobs, since it falls back to print(str(obj)) if the object dump fails.  I haven't tried it on a thumbnail yet tho.  I'm guessing that it will work for python 2, since str and bytes are equivalent.  Although you'd have to redirect the console output to a file to save the image.


Add protocol handler to open new tab in existing Windows Terminal

Description of the new feature/enhancement
Add a protocol handler (winterm://) to allow opening a new tab inside the existing Windows Terminal, instead of opening a new Windows Terminal. The current "Open in Windows Terminal" contextual menu option unfortunately always open a new Windows Terminal, instead of adding a new tab to the current one. The goal is to make it easier for third-party programs to implement richer "Open in Windows Terminal" functionality, where a new tab with a special profile is opened with an initial command injected. In our case, we intend to launch PowerShell remoting sessions from Remote Desktop Manager inside Windows Terminal. We currently supported embedded tabs inside Remote Desktop Manager, or we can launch the old boring blue PowerShell terminal externally. Since the old PowerShell terminal doesn't support tabs anyway, it has never been an issue.
Proposed technical implementation details
Regardless of the final name for the protocol handler (I suggest winterm://) the implementation is relatively simple: on startup, you check for the presence of an existing Windows Terminal instance. If there is one, you send the URL string passed through the protocol handler to the other process, and terminate. The receiving instance receives the URL and processes it to open a new tab with the specified profile id. We have implemented something like this to open new connections in our remote desktop program.
the URL string should contain at a bare minimum a profile id, and accept additional parameters following the same format found in settings.json:
winterm://34a13805-9b56-5e89-9234-f02de44bd971?name=Name?command=Command
Since addition parameters like the name and the command will likely contain characters causing trouble, I suggest that we either URL-encode them, or define them to always be encoded as UTF-8 base64url strings, whichever feels best.
The ideal solution would be to support temporary profiles, such that if the profile id doesn't exist, it could be created on-the-fly with all the parameters passed. This would be very useful as external programs could inject meaningful names, and even give a path to an icon file to use. In our case, system administrators can manage thousands of entries in Remote Desktop Manager, so everything that makes it easier to give identifying or distinctive information is a big win.
If we can have such a mechanism in place, we have everything we need for a possible integration, and nothing prevents other vendors from offering similar integration with relatively little effort. The good news is that it would also be relatively decoupled from Windows Terminal.

This is very similar to issue #8898. Did you specifically require this implemented as a protocol handler, or would the solution proposed in #8898 be adequate?

@j4james very interesting, it looks like the other issue is very similar to this one, with the exception of the protocol handler. I wouldn't mark it as duplicate, because the protocol handler would be usable to open a new tab from a browser-based password manager (we have those as well), but then the requirements are different, and we'd have to see how to properly handle security for the dynamic command injection.
I suggest we modify this feature request to be the protocol handler built on top of the other issue #8898, rather than the entire feature by itself. The goal would be to securely expose the same functionality but through a protocol handler instead.
I have a few ideas how security could be handled:

the profile could be preconfigured with a hard-coded command, and the profile id would need to be known in advance
a security warning could be shown to the user and the entire command presented in a dialog box before running it
the command could be signed by a certificate using something very similar to .rdp file signatures. A modern variant would be a JWT

What do you think?

This is what @zadjii-msft is recently working on.

This is what @zadjii-msft is recently working on.

Got a link to a branch or related issue with the WIP code? 😲

There’s a bunch of related issues. For PR there’s #8898 , which may not be exact what you asked by is part of a grand plan.

Oh sorry about it. Didn’t noticed James already mentioned #8898. I was merely want to summon @zadjii-msft. Bet he has something to say about this issue.

Hey thanks for the great write up here. I think for the majority of cases, the wt.exe sommandline args to invoke existing windows is going to be sufficient. However, you've got a great point about invoking the terminal from a browser window.
We've actually already started the discussion of a protocol handler over in #4842, so I'm gonna close this discussion as a dupe. I am going to make sure to call this thread out though, because it's got some great points. Thanks!
/dup #4842


support install k8s cluster  with mixed architectures

What is the problem this feature will solve?
Is it possible to support k8s cluster deployments with mixed architectures (mixed x86 and arm).  I tried it and now it doesn't work. If it's not feasible, or if there's not much demand for it, forget it
If you have solution，please describe it
No response
What alternatives have you considered?
No response

Good suggestion, this feature is necessary。


Update stable version in repo from 0.2.0 to 0.3.0

Think about update stable version to 0.3.0
Version: stable=0.2.0 (164 days old) => latest=0.3.0 (15 days old)
Installs: stable=492 (73.76%), latest=111 (16.64%), total=667
Click to use developer portal
Click to edit
Note: This is an automatically generated message and not personally authored by bluefox!

Is there any reason to delay updating stable any longer?
Please drop a commit if you know any reason to refrain from updating.
If there is no response until 27.01.2024  we could decide to update anyway.

This issue seems to be outdated.
This issue suggests to update the stable version of this adapter to 0.3.0 but the current stable version is already 0.3.0.
So this issue should be closed.


Dedicated file logger for netopeer2/netconf

Hi !
This is a feature request/proposal.
Are you open to the idea of having a dedicated log file in parallel to the usual console logger to log all the netconf related messages ?
I want to have it separate to the main console output so that I can have both enabled at the same time, but keep the main log at info level for usual operation and the logfile at a more "debug" level to always have the rpc traces available. (I know that it is possible to have the messages in the console output using MSG option)
This is quite useful for instance to see at a glance the content of all the requests/replies  transiting through the netopeer2-server.
We can also then parse the file using a tool like https://github.com/AeroFlorian/netconf-parser
On my end I did it patching netopeer2-server (to alter the nc logging callback and create the log file) + the libnetconf itself to filter the display of the get-schema replies. (which are pretty huge)
I attached an example output:
netconf_trace_example.log
And its view in the tool I mentioned:

This is a similar subject as https://github.com/CESNET/Netopeer2/issues/307

No problem, if you create a nice PR, I will merge it. Just make sure the code is clean and all the new features optional.


Highlight the solution code that users have to complete

From recent two studies, participants are interested in seeing the suggested solution after passing the code.
User quote:

Even I successfully passed the test, I'm interested to see there's any difference between my syntax and syntax that google sending me. Maybe I learn something, e.g. the shorthand. So I like the second tab design (instead of replacing my current code)

It might be helpful to highlight the code that users are asked to write in the solution code so that it's easier to scan the answer.

This can be done in two possible ways:

automatically adding background color
let exercise's author to decide which part to highlight. This may be achieve when this feature is implemented: Highlight the background of important code https://github.com/dart-lang/dart-pad/issues/1116

--
Another idea mentioned to make comparing easier is code difference. This is more complicate. We may file another issue to track it.
User quote:

I was almost hoping that it would maybe like show differences between the code but I don't know how useful that would be just in case somebody typed like really really different code.

Feedback welcome!

Status of this issue is also tracked in https://github.com/orgs/flutter/projects/3.

We can look into adding to DartPad for this. In the short term, exercise authors can always add extra code comments to the solution in order to point out the sections of the code that are different.

As part of the new, simplified version of the DartPad frontend, the exercise functionality this was related to was removed.
If anyone would like to see similar functionality brought back, please check out https://github.com/dart-lang/dart-pad/issues/2702 or open a new issue. Thanks so much!


Extract SentenceTransformerWithTruncate to own module & rename encode()

Move SentenceTransformerWithTruncate to a separate module to simplify imports. Imports are still only done when needed.
Don't override encode(), rather rename to encode_with_truncate().
Under normal usage the model will be a SentenceTransformerWithTruncate, but if the enduser does weird loading and the model is a standard SentenceTransformer the standard encode() will be called.
Some typing improvements.

Understood and agree that the rename should be separate from extracting to
a different module.
On Sat, Mar 16, 2024, 14:00 Mark Sturdevant @.***>
wrote:

@.**** requested changes on this pull request.
Need to discuss with model testers. Renaming our code is convenient, I
agree, but I think if quality testing is going through EmbeddingModule,
then I'd like them going through our code as much as possible.
Unfortunately I'm concerned about truncation error defaults, but working
through that. We might come back to this way.
Other thing is... If we go this route, I'd like all changes to optional
import in a separate PR. It's probably an improvement, but needs retesting
and needs to be separate from the functionality fix related to extending
encode. The encode rename can be done with just a few lines of code
touched. Refactoring and other fixes should be separated.
Thanks for all this though. There's a lot of good stuff in there.
—
Reply to this email directly, view it on GitHub
https://github.com/markstur/caikit-nlp/pull/3#pullrequestreview-1941254556,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AF37IU4AH4XH7OXXZCCLYYDYYSCFFAVCNFSM6AAAAABEYULAYGVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMYTSNBRGI2TINJVGY
.
You are receiving this because you authored the thread.Message ID:
@.***>


HasFlagCustom made safe and supports all enums

Continuation of #4873 which branch I accidentally dropped.

@grokys, rebased on the top of master. It's ready for review.


Add auto_value v1.1

This commit is part of upgrading auto-value to version 1.1, in order to
use @AutoValue.Builder.

CLA signed.

Please ping Kristina, Han-wen or myself on Hangout for instructions. That's not how we update third_party jar.


Update Python and R images

Python

Add spanish & portuguese JupyteLab language packs
Add copernicusmarine and papermill

R

Remove r-keras. See https://github.com/oceanhackweek/jupyter-image/pull/73/files#diff-45d6c92aabe8ba35aad64156cd3081ecd7d416efe1e821204e66829d4db1b298R59

ref https://github.com/oceanhackweek/Hub-Management/issues/6 and https://github.com/2i2c-org/infrastructure/issues/4883

I'll self merge

Built images: https://ghcr.io/oceanhackweek/python:37f83fb and https://ghcr.io/oceanhackweek/r:37f83fb


[TC - LC -2.4] and [TC - LC -2.5] User Label cluster-These test cases chip-tool results are not matching with the expected outcome.

Problem
As per the Test-Plan, User Label cluster fails to write the Label list attribute.
system configuration
Chip-Tool: RPI
DUT: RPI
Platform : IP and Wifi
Dut: All-Clusters-app
[TC - LC -2.4]

expected behavior:-DUT Should sends status code as CONSTRAINT_ERROR(0x87)
actual behavior:-Status code as SUCCESS(0x0)

steps to reproduce:-

sudo ./chip-tool userlabel write label-list '[{"label":"bedroombedroombedroomdroombedroombedroomdroombedroobedroo bedroomoobedroobedroooobedroobedroooobedroobedroooobedroobedroo oobedroobedroo", "value":"bedroom1"}, {"label":"ori
ntation", "value":"east"}, {"label":"floor", "value":"3"}]' 1 0

[TC - LC -2.5]

expected behavior:-DUT should list "room:bedroom 1","Orientation:east", "","", "", "direction:down" attributes
actual behavior:-"room:bedroom 2","Orientation:North", "floor:2", "direction:up"

steps to reproduce:-

sudo ./chip-tool userlabel write label-list '[{"label":"bedroom", "value":"bedroom1"}, {"label":"orientation", "value":"east"}, {"label":"floor", "value":"3"},{"label":"", "value":""},{"label":"", "value":""},{"label":"", "value":""} {"label":"direction", "value":"down"}]' 1 0
sudo ./chip-tool userlabel read label-list 1 0

Test-Plan reference:-
https://github.com/CHIP-Specifications/chip-test-plans/blob/master/src/cluster/Label_cluster.adoc#tc-lc-2-4user-label-cluster-constraint_error-verification-dut-commissionee
PFA log below:-
[TC-LC-2.4 AND 2.5].txt

This issue is resolved for latest commit 3a7f03a0a1c58c4f6cf69ea7e6b808feff3b6636


Possible patch release 0.26.1

          Issue was resolved with<EMAIL_ADDRESS>and Atlas latest build.
          Please reopen if you face any issues with it.

Originally posted by @a8m in https://github.com/ariga/atlas/issues/3068#issuecomment-2308428250
I don't have access to reopen the previous issue, apologies for the potential spam. Is there a chance of a patch release happening with that above fix?
I can validate that it works as expected on the latest build, but we'd be weary to depend on the latest tag (which now differs from 0.26.0), and based on the release history it seems atlas is incremented by minor version bumps.

Branch was tagged and a new version was released. Binaries should be available to download.


Microoptimize

Microoptimizations in DataService  …

Use Slf4j in recommended way - pass parameters instead of string concatenation
This reduces allocations when logging is not enabled
Preallocate array lists when exact size in know
This also reduces allocations and memory footprint

Also this PR fixes unclosed stream in importer

Thanks. Changes seems ok. I am going to keep it open for some time so that I can manually merge these changes to the "feature-spatial" branch, which is the heavily refactored working branch for next major release. Once the move is complete, I'll merge this PR.
Meantime feel free to push any other changes.

Thanks!


Undoing/redoing consecutive carriage returns

This doesn't work for when the carriage returns are auto-indented by a colon because that adds a new change to the redo chain and I need to figure out a way to work around that. Need more usage to see if it works better than the current method of undoing/redoing

@dschuyler When you created the commands.py file, did you forget to delete them from the text_buffer.py file? There is duplicate code and I'm not really sure what the commands.py file is for. I only made the changes to text_buffer.

I intended to split text_buffer into two files. Part way through that process I realized that might mess you up and I didn't want to do that to you. So I started wondering about how to announce such refactor intentions. ...and I didn't finish. It's a whoops to have left it half done. Sorry. Thanks for asking.

Oh okay thanks for the clarification. I don't really mind. You can go ahead and do that and I'll update this PR if that's more convenient for you.

Sorry I've been slow to respond this week. I'll try to look at PRs on Friday.

I decided on the file name actions.py rather than commands.py and committed the code move.

Requested changes done!


Make the discord link on the site more prominent

Make the discord link more prominent (like they have it in other sites e.g. in https://www.gatsbyjs.org/ - it has a nice little menu of key links e.g. discord, gitter etc)
When we want to increase our community, we want to make the key links (discord, gitter) on the site more prominent, so that we can be easily seen / found / visited.
Acceptance

[x] the discord link works on the site
[x] the discord (and other key links) look more prominent and with an icon

Tasks

[x] check if the discord link works :heavy_check_mark:
[x] copy the svg-s from gatsbyjs.org
[x] override the default Navbar.vue component by copying it from sandbox, adding it to our components and editing it
[x] add icons
[x] do some css adjustments e.g. color change on hover; padding from top etc.
[x] push the changes
[x] test if the links work :heavy_check_mark:

New look

FIXED.
See 'New look' section in issue description or live on https://frictionlessdata.io/.

@monikappv 👏 - btw could we get a github link to the project repo (and btw are the links configurable from the vuepress js config file?

@monikappv looks really nice.👏 I see the logo bug now reflects in prod. When I try scrolling it's not fixed.

@rufuspollock made them configurable from the config file

also switched the positions of the navlinks and the search bar + the icons (like they have it on gatsby)

not sure what's better...any thoughts?
@lauragift21 I changed the vertical alignment of the logo while playing with the navbar but didn't help so i brought back the prev settings. haven't really dedicated time on fixing it - If you want we can have a quick pair session and rubber duck cause it's been a while since the bug exists.

I thought only gaming communities used Discord. Can I ask why you're using it instead of some open source alternative?

@augusto-herrmann no discord is heavily use by tech communities e.g. many react communities use it, https://www.gatsbyjs.org/ uses it etc. Can you specify which open source alternative you would recommend? By default i would prefer open source if it is matching or close to matching on key features and 0 cost.


bundle exec rake db:setup failure

I am trying to set up a instance under ubuntu 14.04LTS manually because that workbench way doesn't work. However I ran into this error
rake aborted!
NoMethodError: undefined method yield_self' for false:FalseClass /root/peatio/config/plugins.rb:1:in <top (required)>'
/root/peatio/config/application.rb:10:in require_relative' /root/peatio/config/application.rb:10:in <top (required)>'
/root/peatio/Rakefile:5:in require' /root/peatio/Rakefile:5:in <top (required)>'
/usr/local/rvm/gems/ruby-2.2.8/gems/rake-12.3.0/exe/rake:27:in <top (required)>' /usr/local/rvm/gems/ruby-2.2.8/bin/ruby_executable_hooks:15:in eval'
/usr/local/rvm/gems/ruby-2.2.8/bin/ruby_executable_hooks:15:in `'
(See full trace by running task with --trace)

Use ruby 2.5

You really should update your documents as it still uses ruby 2.2.8

same issue
rake aborted!
NoMethodError: undefined method yield_self' for false:FalseClass /home/botree/project/peatio/config/plugins.rb:4:in <top (required)>'
/home/botree/project/peatio/config/application.rb:15:in require_relative' /home/botree/project/peatio/config/application.rb:15:in <top (required)>'
/home/botree/project/peatio/Rakefile:8:in <top (required)>' /home/botree/.rvm/gems/ruby-2.5.0/gems/rake-12.3.1/exe/rake:27:in <top (required)>'
(See full trace by running task with --trace)

@yivo can you help me, please
I got this error but little bit difference

deploy@instance-1:~/peatio/current/config$ bundle exec rake db:setup
(in /home/deploy/peatio/current)
rake aborted!
LoadError: cannot load such file -- bump
/home/deploy/peatio/current/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.4/lib/bootsnap/
load_path_cache/core_ext/kernel_require.rb:33:in require' /home/deploy/peatio/current/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.3/lib/acti ve_support/dependencies.rb:291:in block in require'
/home/deploy/peatio/current/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.3/lib/acti
ve_support/dependencies.rb:257:in load_dependency' /home/deploy/peatio/current/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.3/lib/acti ve_support/dependencies.rb:291:in require'
/home/deploy/peatio/current/lib/tasks/release.rake:1:in <main>' /home/deploy/peatio/current/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.4/lib/bootsnap/ load_path_cache/core_ext/kernel_require.rb:54:in load'
/home/deploy/peatio/current/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.4/lib/bootsnap/
load_path_cache/core_ext/kernel_require.rb:54:in load' /home/deploy/peatio/current/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.3/lib/acti ve_support/dependencies.rb:285:in block in load'
/home/deploy/peatio/current/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.3/lib/acti
ve_support/dependencies.rb:257:in load_dependency' /home/deploy/peatio/current/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.3/lib/acti ve_support/dependencies.rb:285:in load'
/home/deploy/peatio/current/vendor/bundle/ruby/2.6.0/gems/railties-5.2.3/lib/rails/eng
ine.rb:650:in block in run_tasks_blocks' /home/deploy/peatio/current/vendor/bundle/ruby/2.6.0/gems/railties-5.2.3/lib/rails/eng ine.rb:650:in each'
/home/deploy/peatio/current/vendor/bundle/ruby/2.6.0/gems/railties-5.2.3/lib/rails/eng
ine.rb:650:in run_tasks_blocks' /home/deploy/peatio/current/vendor/bundle/ruby/2.6.0/gems/railties-5.2.3/lib/rails/app lication.rb:515:in run_tasks_blocks'
/home/deploy/peatio/current/vendor/bundle/ruby/2.6.0/gems/railties-5.2.3/lib/rails/eng
ine.rb:459:in load_tasks' /home/deploy/peatio/current/vendor/bundle/ruby/2.6.0/gems/railties-5.2.3/lib/rails/rai ltie.rb:190:in public_send'
/home/deploy/peatio/current/vendor/bundle/ruby/2.6.0/gems/railties-5.2.3/lib/rails/rai
ltie.rb:190:in method_missing' /home/deploy/peatio/current/Rakefile:10:in <top (required)>'
/home/deploy/peatio/current/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/exe/rake:27:in <top (required)>' /home/deploy/peatio/current/vendor/bundle/ruby/2.6.0/bin/ruby_executable_hooks:24:in
eval'
/home/deploy/peatio/current/vendor/bundle/ruby/2.6.0/bin/ruby_executable_hooks:24:in `

'
(See full trace by running task with --trace)
deploy@instance-1:~/peatio/current/config$ bundle exec rake db:setup --trace
(in /home/deploy/peatio/current)
rake aborted!
LoadError: cannot load such file -- bump
Thanks you all very much.


cmake: version.cmake: enforce single byte limits

Enforce the single byte size limits on the numeric fields in VERSION.
The VERSION numeric fields are used to construct the uint32_t KERNELVERSION and APPVERSION values, which only allocates a single byte for each field.
Additionally adds a test application for the version file generation.

Then change the regex so it is limited to 1 byte for tweak? The MCUboot fields have to fit in with the zephyr fields, this was decided when the feature was introduced in the architecture working group, so whilst MCUboot has a 32-bit value for build number, it would be restricted to 8-bit when using the default zephyr VERSION file, however, a user is free to use their own way of setting build version by setting the MCUboot signing version Kconfig to their choosing.

What logic would you suggest for performing that limiting? Build error if over, or silently take the lowest 8 bits?
I don't suppose you remember at which point this was discussed, I would be interested in reading any comments. Although the code that consumes the constructed value (kernel_version.h) was introduced at least 9 years ago...
Note that doing any limiting here will make #73380 impossible to merge, as it is setting the same value, and 8 bits is not enough to be reasonably unique in that context.

What logic would you suggest for performing that limiting? Build error if over, or silently take the lowest 8 bits?

cmake error since the version file can be adjusted and configuration can re-run. Or if not that then a warning and truncate.

I don't suppose you remember at which point this was discussed, I would be interested in reading any comments. Although the code that consumes the constructed value (kernel_version.h) was introduced at least 9 years ago...

It is in the comments here: https://github.com/zephyrproject-rtos/zephyr/issues/56605

Updated the PR to document the value limits as they currently exist and enforce said limits in cmake.

Bulk changing the milestone from everything which did not make it to the v3.7.0 freeze deadline
and which is not labeled as a bug or documentation (or does not appear clearly as only containing
a bug fix or a documentation change).
If you disagree about this change please add the milestone again.
Please note that until rc2 only PRs containing bug fixes, docs and tests can be merged.
After that and until release only bug fixes and docs changes.
Exceptions require approval by the release team and a vote by the TSC.
https://docs.zephyrproject.org/latest/project/release_process.html#stabilization-phase


Add gif into readme and Rename the folder

[x] remove those number folders
[x] add a gif in readme to show the result
[x] mv folder name as DieUtilRate

Thanks!


UrlComparerTrait::_normalize throws

UrlComparerTrait::_normalize will throw a RouteNotFoundException while trying to parse a URL like /https://example.com/test (note the slash at front). This is likely due to the changes in CakePHP 3.4.
Hotfix: Add this to the call to loadHelper:
'Bootstrap.BootstrapNavbar' => [
    'autoActiveLink' => false, //TODO: Hotfix
],

Which version of CakePHP are you using?
Actually, I don't really understand the issue since /https://example.com/test is not a valid URL anyway, isn't it?

Sorry, my original bug report was really bad (I was kinda in a rush...). I updated the issue with more information.

I will test this with a complete CakePHP installation when I get one, currently it seems to work in my test cases.

Could you show me the relevant part of your config/routes.php?
Do you use the latest CakePHP 3.4 version (released 2 days ago)?

This is from my routes.php (nothing special...)
$routes->connect('/', ['controller' => 'Pages', 'action' => 'display', 'home']);
$routes->connect('/register', ['controller' => 'Registrations', 'action' => 'selectProject']);
$routes->connect('/register/*', ['controller' => 'Registrations', 'action' => 'registerForProject']);
$routes->connect('/impressum', ['controller' => 'Pages', 'action' => 'display', 'imprint']);
$routes->connect('/confirmations/anmeldebestätigung_:id', ['controller' => 'Registrations', 'action' => 'getConfirmation'], ['pass' => ['id'], 'id' => '[0-9]+']);

$routes->connect('/admin', ['controller' => 'Pages', 'action' => 'display', 'prefix' => 'admin', 'home']);

Yes, I'm using the latest version (updated today).
Cake did change something in Route::parse, and for me it looks like for some reason a slash is prepended to the URL which confuses the following code. I also had some problems updating my own code...

Should be fixed by 0f9d9bf, I have retro-added it to 3.1.0... This may still have issue with strange URLs, but should work pretty well for "standard" urls.

Yes, it works now.
Please note that composer hasn't noticed the retro-added commit, I had to remove and reinstall the package to make it see the update.

Ok, the fix did not completely resolve the issue, now every link is marked as active :smile: Maybe _normalize() is confused when the URL contains prefixes and/or is not in the base directory?
Example:
//Before normalize:
$lhs = '/chell/admin/rights';
$rhs = '/chell/admin/users/edit/1';
//After _normalize():
$lhs = '/chell/admin/chell/admin';
$rhs = '/chell/admin/chell/admin';

The URLs are in the admin prefix and my app is running under  localhost/chell.

The problem is that Router::url('/chell/admin/rights') returns '/chell/chell/admin/rights... The Router class of CakePHP is such a mess to me, it is really hard to work with...
As a temporary fix, could you not simply pass URL without the chell prefix to the Navbar helper? Such as:
$this->navbar->link('...', ['controller' => 'rights', 'action' => 'index', 'admin' => true]);

I tried a fix which is now available on dev-master, v3.1.0 and v3.1.2. I do not have a lot of time to work on a really strong set of tests, but I will try to strengthen the current ones when I have.

dev-master has currently set CakePHP < 3.4.0 as a requirement. Using v.3.2.1.x-dev throws an exception:
The "Html" alias has already been loaded with the following config: array (...) which differs from array ( 'className' => 'Bootstrap.Html', )

When is this exception thrown? Could you show me the code where you load the helpers?
I have changed the names of the helpers in v3.2.1 (Bootstrap.BootstrapHtmlHelper -> Bootstrap.HtmlHelper), but the old names are still there for compatibility so this should not be an issue...

After a bit of testing, this seems to happens if you load the Bootstrap.HtmlHelper twice, but with different configs, e.g.:
// In your AppController
public $helpers = [
    'Html' => [
        'className' => 'Bootstrap.BootstrapHtml'
    ]
];

// In your AppView
public function initialize() {
    $this->loadHelper('Html', [
        'className' => 'Bootstrap.Html'
    ]);
}

I don't think it is directly related to the helpers... Did you modify anything related to the names of the helpers?

We can discuss this error in #109 since this is not related to the UrlComparerTrait anymore.

Should be fixed by now, you can check the new documentation for the exact behavior:
http://holt59.github.io/cakephp3-bootstrap-helpers/navbar-helper/auto-active-link/
I am closing this, feel free to (re-)open if you still have troubles ;)