Error when running binary - ModuleNotFoundError: No module named 'urllib.request'

Thank you for the fix that closed the Issue https://github.com/Nuitka/Nuitka/issues/2211
I tested it with the Stable Release 1.6.6.
The original problem that I reported was resolved - Nuitka has successfully built the binary.
However, the binary that was built did not work as the original Python program as shown below, which seems to be a new/different issue:
leonid@xlr2:~/dev/python/nuitka-test$ ls -l
total 4
-rw-rw-r-- 1 leonid leonid 154 May  2 13:28 cassandra-driver-test.py
leonid@xlr2:~/dev/python/nuitka-test$
leonid@xlr2:~/dev/python/nuitka-test$ cat cassandra-driver-test.py
import cassandra
from cassandra.cluster import Cluster

print(f"cassandra version: {cassandra.__version__}")
print(f"Cluster info: {Cluster.__module__}")
leonid@xlr2:~/dev/python/nuitka-test$
leonid@xlr2:~/dev/python/nuitka-test$ python3 -m venv .venv
leonid@xlr2:~/dev/python/nuitka-test$ . .venv/bin/activate
(.venv) leonid@xlr2:~/dev/python/nuitka-test$ python --version
Python 3.10.6
(.venv) leonid@xlr2:~/dev/python/nuitka-test$ pip --version
pip 22.0.2 from /home/leonid/dev/python/nuitka-test/.venv/lib/python3.10/site-packages/pip (python 3.10)
(.venv) leonid@xlr2:~/dev/python/nuitka-test$
(.venv) leonid@xlr2:~/dev/python/nuitka-test$ pip install cassandra-driver
Collecting cassandra-driver
  Downloading cassandra_driver-3.28.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 19.1/19.1 MB 7.5 MB/s eta 0:00:00
Collecting six>=1.9
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting geomet<0.3,>=0.1
  Using cached geomet-0.2.1.post1-py3-none-any.whl (18 kB)
Collecting click
  Using cached click-8.1.3-py3-none-any.whl (96 kB)
Installing collected packages: six, click, geomet, cassandra-driver
Successfully installed cassandra-driver-3.28.0 click-8.1.3 geomet-0.2.1.post1 six-1.16.0
(.venv) leonid@xlr2:~/dev/python/nuitka-test$
(.venv) leonid@xlr2:~/dev/python/nuitka-test$ python -m pip install -U nuitka
Collecting nuitka
  Using cached Nuitka-1.6.6-cp310-cp310-linux_x86_64.whl
Collecting zstandard>=0.15
  Using cached zstandard-0.21.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.7 MB)
Collecting ordered-set>=4.1.0
  Using cached ordered_set-4.1.0-py3-none-any.whl (7.6 kB)
Installing collected packages: zstandard, ordered-set, nuitka
Successfully installed nuitka-1.6.6 ordered-set-4.1.0 zstandard-0.21.0
(.venv) leonid@xlr2:~/dev/python/nuitka-test$
(.venv) leonid@xlr2:~/dev/python/nuitka-test$ pip freeze
cassandra-driver==3.28.0
click==8.1.3
geomet==0.2.1.post1
Nuitka==1.6.6
ordered-set==4.1.0
six==1.16.0
zstandard==0.21.0
(.venv) leonid@xlr2:~/dev/python/nuitka-test$
(.venv) leonid@xlr2:~/dev/python/nuitka-test$ python -m nuitka --version
1.6.6
Commercial: None
Python: 3.10.6 (main, May 29 2023, 11:10:38) [GCC 11.3.0]
Flavor: Debian Python
Executable: /home/leonid/dev/python/nuitka-test/.venv/bin/python
OS: Linux
Arch: x86_64
Distribution: Ubuntu (based on Debian) 22.04.2
Version C compiler: /usr/bin/gcc (gcc).
(.venv) leonid@xlr2:~/dev/python/nuitka-test$
(.venv) leonid@xlr2:~/dev/python/nuitka-test$ python cassandra-driver-test.py
cassandra version: 3.28.0
Cluster info: cassandra.cluster
(.venv) leonid@xlr2:~/dev/python/nuitka-test$
(.venv) leonid@xlr2:~/dev/python/nuitka-test$ python -m nuitka --standalone cassandra-driver-test.py
Nuitka-Options:INFO: Used command line options: --standalone cassandra-driver-test.py
Nuitka:INFO: Starting Python compilation with Nuitka '1.6.6' on Python '3.10' commercial grade 'not installed'.
Nuitka-Plugins:INFO: multiprocessing: Injecting pre-module load code for module 'multiprocessing':
Nuitka-Plugins:INFO: multiprocessing:     Monkey patching "multiprocessing" load environment.
Nuitka-Plugins:INFO: multiprocessing: Injecting post-module load code for module 'multiprocessing':
Nuitka-Plugins:INFO: multiprocessing:     Monkey patching "multiprocessing" for compiled methods.
Nuitka:INFO: Completed Python level compilation and optimization.
Nuitka:INFO: Generating source code for C backend compiler.
Nuitka:INFO: Running data composer tool for optimal constant value handling.
Nuitka:INFO: Running C compilation via Scons.
Nuitka-Scons:INFO: Backend C compiler: gcc (gcc).
Nuitka-Scons:INFO: Backend linking program with 37 files (no progress information available for this stage).
Nuitka-Scons:WARNING: You are not using ccache, re-compilation of identical code will be slower than necessary. Use your OS package manager to install it.
Nuitka:INFO: Keeping build directory 'cassandra-driver-test.build'.
Nuitka:INFO: Successfully created 'cassandra-driver-test.dist/cassandra-driver-test.bin'.
(.venv) leonid@xlr2:~/dev/python/nuitka-test$
(.venv) leonid@xlr2:~/dev/python/nuitka-test$ ls -l cassandra-driver-test.dist/cassandra-driver-test.bin
-rwxrwxr-x 1 leonid leonid 12933120 Jul  3 17:24 cassandra-driver-test.dist/cassandra-driver-test.bin
(.venv) leonid@xlr2:~/dev/python/nuitka-test$
(.venv) leonid@xlr2:~/dev/python/nuitka-test$ ./cassandra-driver-test.dist/cassandra-driver-test.bin
Traceback (most recent call last):
  File "/home/leonid/dev/python/nuitka-test/cassandra-driver-test.dist/cassandra-driver-test.py", line 2, in <module>
  File "cassandra/cluster.py", line 93, in init cassandra.cluster
  File "/home/leonid/dev/python/nuitka-test/cassandra-driver-test.dist/cassandra/datastax/cloud/__init__.py", line 22, in <module cassandra.datastax.cloud>
  File "/home/leonid/dev/python/nuitka-test/cassandra-driver-test.dist/six.py", line 97, in __get__
  File "/home/leonid/dev/python/nuitka-test/cassandra-driver-test.dist/six.py", line 165, in _resolve
  File "/home/leonid/dev/python/nuitka-test/cassandra-driver-test.dist/six.py", line 87, in _import_module
ModuleNotFoundError: No module named 'urllib.request'
(.venv) leonid@xlr2:~/dev/python/nuitka-test$

Originally posted by @LeonidShamis in https://github.com/Nuitka/Nuitka/issues/2211#issuecomment-1617557989

This can be reduced to even this:
from six.moves.urllib.request import urlopen

We are handling six.moves at least somewhat, but this specific case apparently not.

This is part of the 1.7 release I about to make, right now it's on factory branch.
Thanks for your report, this is fixed on the factory branch, which is a development version under rapid development. You can try it out by going here: https://nuitka.net/doc/factory.html
Feedback if this is working is very welcome, just please do not share plans of doing it, but rather confirmations or denials of it working.

Ultimately, this was an entry from six.moves that we didn't support yet. I took the chance to do a major refactoring for the way we treat stdlib and technical imports in general, but it turns out unrelated to all of that.

I have confirmed that the reported issue is now resolved with the factory branch - please see below.
I've noticed that there were more "Nuitka-Plugins:WARNING" messages during the build process compared to the original test - not sure whether this is related to the factory branch specifics compared to the release branch used originally.
leonid@xlr2:~/dev/python/nuitka-test$ ls -al
total 12
drwxrwxr-x 2 leonid leonid 4096 Jul  4 17:03 .
drwxrwxr-x 5 leonid leonid 4096 May 15 23:29 ..
-rw-rw-r-- 1 leonid leonid  154 May  2 13:28 cassandra-driver-test.py
leonid@xlr2:~/dev/python/nuitka-test$
leonid@xlr2:~/dev/python/nuitka-test$ python3 -m venv .venv
leonid@xlr2:~/dev/python/nuitka-test$ . .venv/bin/activate
(.venv) leonid@xlr2:~/dev/python/nuitka-test$
(.venv) leonid@xlr2:~/dev/python/nuitka-test$ pip install cassandra-driver
Collecting cassandra-driver
  Using cached cassandra_driver-3.28.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.1 MB)
Collecting six>=1.9
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting geomet<0.3,>=0.1
  Using cached geomet-0.2.1.post1-py3-none-any.whl (18 kB)
Collecting click
  Using cached click-8.1.3-py3-none-any.whl (96 kB)
Installing collected packages: six, click, geomet, cassandra-driver
Successfully installed cassandra-driver-3.28.0 click-8.1.3 geomet-0.2.1.post1 six-1.16.0
(.venv) leonid@xlr2:~/dev/python/nuitka-test$
(.venv) leonid@xlr2:~/dev/python/nuitka-test$ pip install -U --force-reinstall "https://github.com/Nuitka/Nuitka/archive/factory.zip"
Collecting https://github.com/Nuitka/Nuitka/archive/factory.zip
  Downloading https://github.com/Nuitka/Nuitka/archive/factory.zip
     \ 6.4 MB 8.9 MB/s 0:00:00
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting ordered-set>=4.1.0
  Using cached ordered_set-4.1.0-py3-none-any.whl (7.6 kB)
Collecting zstandard>=0.15
  Using cached zstandard-0.21.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.7 MB)
Building wheels for collected packages: Nuitka
  Building wheel for Nuitka (pyproject.toml) ... done
  Created wheel for Nuitka: filename=Nuitka-1.7-cp310-cp310-linux_x86_64.whl size=2872650 sha256=9845ed17e887933d4d9d07e392a7189dcc55160e49950250c86a08b4a5751df2
  Stored in directory: /tmp/pip-ephem-wheel-cache-pk4t_n6a/wheels/12/88/12/96e4d1cdf9bcbea957e644c0a1e1ba5843c0143b1b03e240ed
Successfully built Nuitka
Installing collected packages: zstandard, ordered-set, Nuitka
Successfully installed Nuitka-1.7 ordered-set-4.1.0 zstandard-0.21.0
(.venv) leonid@xlr2:~/dev/python/nuitka-test$ pip freeze
cassandra-driver==3.28.0
click==8.1.3
geomet==0.2.1.post1
Nuitka @ https://github.com/Nuitka/Nuitka/archive/factory.zip
ordered-set==4.1.0
six==1.16.0
zstandard==0.21.0
(.venv) leonid@xlr2:~/dev/python/nuitka-test$ python -m nuitka --version
1.7
Commercial: None
Python: 3.10.6 (main, May 29 2023, 11:10:38) [GCC 11.3.0]
Flavor: Debian Python
Executable: /home/leonid/dev/python/nuitka-test/.venv/bin/python
OS: Linux
Arch: x86_64
Distribution: Ubuntu (based on Debian) 22.04.2
Version C compiler: /usr/bin/gcc (gcc).
(.venv) leonid@xlr2:~/dev/python/nuitka-test$
(.venv) leonid@xlr2:~/dev/python/nuitka-test$ python cassandra-driver-test.py
cassandra version: 3.28.0
Cluster info: cassandra.cluster
(.venv) leonid@xlr2:~/dev/python/nuitka-test$ python -m nuitka --standalone cassandra-driver-test.py
Nuitka-Options:INFO: Used command line options: --standalone cassandra-driver-test.py
Nuitka:INFO: Starting Python compilation with Nuitka '1.7' on Python '3.10' commercial grade 'not installed'.
Nuitka-Plugins:INFO: multiprocessing: Injecting pre-module load code for module 'multiprocessing':
Nuitka-Plugins:INFO: multiprocessing:     Monkey patching "multiprocessing" load environment.
Nuitka-Plugins:INFO: multiprocessing: Injecting post-module load code for module 'multiprocessing':
Nuitka-Plugins:INFO: multiprocessing:     Monkey patching "multiprocessing" for compiled methods.
Nuitka-Plugins:WARNING: anti-bloat: Undesirable import of 'unittest' (intending to avoid 'unittest') in 'test.support' (at '/usr/lib/python3.10/test/support/__init__.py:15') encountered. It may slow down
Nuitka-Plugins:WARNING: compilation.
Nuitka-Plugins:WARNING:     Complex topic! More information can be found at https://nuitka.net/info/unwanted-module.html
Nuitka-Plugins:WARNING: anti-bloat: Undesirable import of 'doctest' (intending to avoid 'unittest') in 'test.support' (at '/usr/lib/python3.10/test/support/__init__.py:1177') encountered. It may slow down
Nuitka-Plugins:WARNING: compilation.
Nuitka-Plugins:WARNING:     Complex topic! More information can be found at https://nuitka.net/info/unwanted-module.html
Nuitka:INFO: Completed Python level compilation and optimization.
Nuitka:INFO: Generating source code for C backend compiler.
Nuitka:INFO: Running data composer tool for optimal constant value handling.
Nuitka:INFO: Running C compilation via Scons.
Nuitka-Scons:INFO: Backend C compiler: gcc (gcc).
Nuitka-Scons:INFO: Backend linking program with 37 files (no progress information available for this stage).
Nuitka-Scons:WARNING: You are not using ccache, re-compilation of identical code will be slower than necessary. Use your OS package manager to install it.
Nuitka-Plugins:INFO: data-files: Included data file 'lib2to3/Grammar.txt' due to package data for 'lib2to3.pygram'.
Nuitka-Plugins:INFO: data-files: Included data file 'lib2to3/PatternGrammar.txt' due to package data for 'lib2to3.pygram'.
Nuitka:INFO: Keeping build directory 'cassandra-driver-test.build'.
Nuitka:INFO: Successfully created 'cassandra-driver-test.dist/cassandra-driver-test.bin'.
(.venv) leonid@xlr2:~/dev/python/nuitka-test$
(.venv) leonid@xlr2:~/dev/python/nuitka-test$ ls -l cassandra-driver-test.dist/cassandra-driver-test.bin
-rwxrwxr-x 1 leonid leonid 14230560 Jul  4 17:06 cassandra-driver-test.dist/cassandra-driver-test.bin
(.venv) leonid@xlr2:~/dev/python/nuitka-test$
(.venv) leonid@xlr2:~/dev/python/nuitka-test$ ./cassandra-driver-test.dist/cassandra-driver-test.bin
cassandra version: 3.28.0
Cluster info: cassandra.cluster
(.venv) leonid@xlr2:~/dev/python/nuitka-test$

Part of the 1.7 release I just made.


[Event Request] New events for Update Prepmt. Amount On Lines functions

Hi Microsoft AL Development Team,
Could you add the following events to Sales/Purch. Post-Prepayments codeunits?
codeunit 442 "Sales-Post Prepayments"
    [IntegrationEvent(false, false)]
    local procedure OnBeforeUpdatePrepmtAmountOnSaleslines(SalesHeader: Record "Sales Header"; NewTotalPrepmtAmount: Decimal; var IsHandled: Boolean);
    begin
    end;

codeunit 444 "Purchase-Post Prepayments"
    [IntegrationEvent(false, false)]
    local procedure OnBeforeUpdatePrepmtAmountOnPurchLines(PurchHeader: Record "Purchase Header"; NewTotalPrepmtAmount: Decimal; var IsHandled: Boolean);
    begin
    end;

Thank you.
Kind regards,
Tuan Nguyen

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 10881.


HEX COLOR IN MENTION AND SOUNDS

Hello!
I tried to put a hex color in the mentions but it didn't work:
Screen:

I hope it gets fixed soon and have a nice rest of the day!
It would also be good if you could add a sound to mentions when a player mentions someone.

Thanks for your report!
It will be fixed in version 4.0.4


Add logfile and timestamp timeframe limit when processing/pulling collectl raw files

Now by default it pulls collectl files that fall within the range of the logfile. Otherwise it fetches an unnecessary amount of collectl rawfiles (GBs).

Great stuff -- thanks so much.


Feature Request: Corectrl

Hello ,
Just two requests to be considered

could you add corectrl to chimera, it's the only reason i dont use it honestly cause i need to be able to configure the fan curve and voltage on my gpu.

thank you

Fan curve can be controlled by HHFC.
for voltage we are working on another solution since HandyPT is based on crankshaft and it is borked at the moment with a non-responsive dev.
what is your hardware?

I am not familiar with HHFC , does it come built-in? that'ss great news actually.
b550 board , 16gb 3200 ddr4 ram , r5 5600 and an amd rx 6700

That setup should be well supported by hhfc (assuming your Mobo has an interface in hwmon of the case fans) and for the core voltages and such there is ryzenadj that is included. With a controller on the way by @pastaq

so hhfc is built in ? cause as far as i know chimera has access only to flathub apps.

so hhfc is built in ? cause as far as i know chimera has access only to flathub apps.

It is in the system. You need to configure it and enable the service. Is currently a CLI tool so you'll need access to a TTY either on the same machine of via SSH.

that's great ,i ll give it a try.is there maybe some kind of documentation describing all cli tools cause they may contain  solutions for other ppl issues.as far as i can tell i can see the packages in the manifest but ofc i am not familiar with all so some were overlooked .I ll also try unlocking the system and installing what i need ,just found out that this option exists.Overall i had the best experience with chimera as compared to  holoiso or simply adjusting a desktop distro to boot in to gamepadui mode but the limitations in the packages kept me away. But it's time to give it a go again . i ll try to post every issue i face along with a fix on a new thread and hopefully it will help others in the future.


Use target type as default for unsized casts

I added a small test that shows why we need this.
Its probably very conservative (i.e. loses information, but is it unsound?) if so we should probably add a test that shows why.

or should i patch in the narrow case for the original test (b.reverse())

@ranjitjhala I think we can close this, right?

Yup

Ranjit.

On Thu, Aug 15, 2024 at 5:16 PM Nico Lehmann @.***>
wrote:

@ranjitjhala
https://urldefense.com/v3/__https://github.com/ranjitjhala__;!!Mih3wA!AlspxSUycj8UpUoaHHT-Li6Ncdi_FUNeYXHzDwVmAtYhFW1DYM3YoTrajP49c01blPuULfTgxxxAzaWeTgnrVEzs$
I think we can close this, right?
—
Reply to this email directly, view it on GitHub
https://urldefense.com/v3/__https://github.com/flux-rs/flux/pull/707*issuecomment-2292494397__;Iw!!Mih3wA!AlspxSUycj8UpUoaHHT-Li6Ncdi_FUNeYXHzDwVmAtYhFW1DYM3YoTrajP49c01blPuULfTgxxxAzaWeTiuDLXt7$,
or unsubscribe
https://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/AAMS4OA7DCIOD34CA5N3E7TZRVAE3AVCNFSM6AAAAABMPC4HIGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOJSGQ4TIMZZG4__;!!Mih3wA!AlspxSUycj8UpUoaHHT-Li6Ncdi_FUNeYXHzDwVmAtYhFW1DYM3YoTrajP49c01blPuULfTgxxxAzaWeTg0KY_hP$
.
You are receiving this because you were mentioned.Message ID:
@.***>


Azure Management conditional access impact access to Visual Studio subscriptions administrator portal

We created conditional access policy to block sign-in to Azure management portal, and we are getting reports from users that are accessing Visual Studio subscriptions administrator portal that they are getting the error "Your sign-in was successful but you don't have permission to access this resource."? How can block sign in to https://portal.azure.com only? I don't want to block sign in to Visual Studio subscriptions administrator portal
We have a use case, where we want to block sign in to the Azure portal for All users except a group of users. And there are few users to whom we want to give access to Visual Studio subscriptions administrator portal. How can we do it together block azure portal signin and allow sign in for Visual Studio subscriptions administrator portal

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

ID: 221733cf-3951-3fb4-12cc-486ef43d8d16
Version Independent ID: d1b33f3f-9b93-b06e-bb4a-673205833fd5
Content: Manage access to Azure management with Conditional Access in Azure Active Directory
Content Source: articles/role-based-access-control/conditional-access-azure-management.md
Service: role-based-access-control
GitHub Login: @rolyon
Microsoft Alias: rolyon

@akn9050 Thanks for sharing the feedback under azure-docs repository. To better assist you, could you please share the Azure document link / URL for which this feedback is applicable to.

@KrishnaG-MSFT Please find the document link: https://docs.microsoft.com/en-us/azure/role-based-access-control/conditional-access-azure-management

Hi @shashishailaj
Any update?
Thanks,
Amit

@akn9050 It is not possible through conditional access to block just Azure Portal. It will be applied to all the management endpoints as described in this article.
If you want this feature implemented I would recommend adding a feature request here.

@akn9050  We will be closing this issue now. Kindly re-open if you need further help.


License should display as MIT

Although license is MIT this apparently isn't picked up by Github.
UPM wants a License.md file.
Github wants a License file (without extension)
Would prioritize showing license correctly on Github; also should probably open an issue since there's no particular reason to think the Github automation should choke on this.

Had to remove all metafiles associated with license file to get this to display correctly. Wouldn't be surprised if this triggers warnings when importing the package.


bug: Apisix keeps throwing "warn  apisix/upstream.go:69  upstream not found"

Current Behavior
APISIX Ingress controller keeps throwing these warns:
warn    apisix/upstream.go:69    upstream not found    {"name": "dev_echo-service_10052_service", "url": "http://apisix-admin.apisix-ingress.svc.cluster.local:9180/apisix/admin/upstreams/f0b15d95", "cluster": "default"}
I created a route and upstream and they seem like this:
apiVersion: apisix.apache.org/v2
kind: ApisixRoute
metadata:
  name: echo-service
  namespace: dev
spec:
  http:
  - name: default-route
    match:
      hosts:
      - echo.home.lab
      paths:
      - "/echo/*"
    backends:
    - serviceName: echo-service
      servicePort: 10052
    plugins:
    - name: redirect
      enable: true
      config:
        http_to_https: true
    - name: proxy-rewrite
      enable: true
      config:
        regex_uri: ["^/echo(/|$)(.*)", "/$2"]
---
apiVersion: apisix.apache.org/v2
kind: ApisixUpstream
metadata:
  name: echo-service
  namespace: dev
spec:
  loadbalancer:
    type: least_conn
  healthCheck:
    active:
      type: http
      httpPath: "/v1/status"
      timeout: 5
      healthy:
        successes: 3
        interval: 2s
        httpCodes:
          - 200
          - 206

When I delete the resources, it now keeps throwing additional warn messages like these:
apisix-ingress-controller-8dd7c7474-tk62l 2023-08-15T00:22:42+08:00    warn    apisix/upstream.go:69    upstream not found    {"name": "dev_echo-service_10052", "url": "http://apisix-admin.apisix-ingress.svc.cluster.local:9180/apisix/admin/upstreams/7b294759", "cluster": "default"}

apisix-ingress-controller-8dd7c7474-tk62l 2023-08-15T00:22:42+08:00    warn    apisix/upstream.go:69    upstream not found    {"name": "dev_echo-service_10052_service", "url": "http://apisix-admin.apisix-ingress.svc.cluster.local:9180/apisix/admin/upstreams/f0b15d95", "cluster": "default"}

apisix-ingress-controller-8dd7c7474-tk62l 2023-08-15T00:22:42+08:00    warn    apisix/apisix_upstream.go:526    sync ApisixUpstream failed, will retry    {"object": {"Type":3,"Object":{"Key":"dev/echo-service","OldObject":null,"GroupVersion":"apisix.apache.org/v2"},"OldObject":null,"Tombstone":{}}, "error": "apisixupstream.apisix.apache.org \"echo-service\" not found"}

Expected Behavior
I expect these warning not appear as the route and upstream works fine and seems correctly bounded. And it's weird it keeps saying that about already deleted resources. Is there any event delete cache? Is there a way to flush it?
Error Logs
apisix-ingress-controller-8dd7c7474-tk62l 2023-08-15T00:22:42+08:00    warn    apisix/upstream.go:69    upstream not found    {"name": "dev_echo-service_10052", "url": "http://apisix-admin.apisix-ingress.svc.cluster.local:9180/apisix/admin/upstreams/7b294759", "cluster": "default"}

apisix-ingress-controller-8dd7c7474-tk62l 2023-08-15T00:22:42+08:00    warn    apisix/upstream.go:69    upstream not found    {"name": "dev_echo-service_10052_service", "url": "http://apisix-admin.apisix-ingress.svc.cluster.local:9180/apisix/admin/upstreams/f0b15d95", "cluster": "default"}

apisix-ingress-controller-8dd7c7474-tk62l 2023-08-15T00:22:42+08:00    warn    apisix/apisix_upstream.go:526    sync ApisixUpstream failed, will retry    {"object": {"Type":3,"Object":{"Key":"dev/echo-service","OldObject":null,"GroupVersion":"apisix.apache.org/v2"},"OldObject":null,"Tombstone":{}}, "error": "apisixupstream.apisix.apache.org \"echo-service\" not found"}

Steps to Reproduce

Installed APISIX with Manifest generated with helm
Created route and upstream with ApisixRoute and ApisixUpstream resources
Watch apisix ingress controller logs

Environment

APISIX Ingress controller version (run apisix-ingress-controller version --long)

Version: 1.6.1
Git SHA: no-git-module
Go Version: go1.19.8
Building OS/Arch: linux/amd64
Running OS/Arch: linux/amd64

Kubernetes cluster version (run kubectl version)

Client Version: version.Info{Major:"1", Minor:"27", GitVersion:"v1.27.0", GitCommit:"1b4df30b3cdfeaba6024e81e559a6cd09a089d65", GitTreeState:"clean", BuildDate:"2023-04-11T17:10:18Z", GoVersion:"go1.20.3", Compiler:"gc", Platform:"linux/amd64"}
Kustomize Version: v5.0.1
Server Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.1", GitCommit:"8f94681cd294aa8cfd3407b8191f6c70214973a4", GitTreeState:"clean", BuildDate:"2023-01-18T15:51:25Z", GoVersion:"go1.19.5", Compiler:"gc", Platform:"linux/amd64"}

OS version if running APISIX Ingress controller in a bare-metal environment (run uname -a)

N/A

Another really strange behavior is that an upstream keeps appearing from nowhere even though the CRD resource had been deleted. Why is that?

Sorry for the delay. I was in the hospital the last few days and came back today.
In APISIX Ingress, it will generate the upstream ID through specific rules and try to obtain the actual value from APISIX.
This is related to CRD to some extent, but not entirely dependent on it, as we also need to consider Ingress resources that directly use service name and port.
APISIX Ingress obtains this data in order to establish caching and maintain some relationships between resources, making it more efficient. At the same time, this behavior does not have any impact on the performance of APISIX (although some 404 logs do appear).

Another really strange behavior is that an upstream keeps appearing from nowhere even though the CRD resource had been deleted. Why is that?

Same bug happened to me. Deployed apisix ingress controller, no Upstream defined, the logs filled with
apisix/upstream.go:69	upstream not found	{"name": "default_kubelet_10250", "url": "http://apisix-admin:9180/apisix/admin/upstreams/5b3e9143", "cluster": "default"}
types/types.go:212	upstream is not referenced	{"cluster": "name=default; base_url=http://apisix-admin:9180/apisix/admin", "upstream": "default_kubelet_4194"}

Refer to https://github.com/apache/apisix-ingress-controller/blob/master/pkg/providers/apisix/apisix_upstream.go#L257, apisixUpstreamController.sync() run twice time to update upstream objects via endpoint and service.
But in the production environment, we use one of them in ApisixRouter backend resolveGranularity. I think it should be change to update objects that are used in the ApisixRouter.

所以到底要不要手动添加apisixupstream,日志里充满了apisix/upstream.go:70   upstream not found


bug: CLI doesn't think I'm on an ionic project (Ionic2)

Type: bug
Ionic Version: 2.x
Platform: all
I started the project with ionic start new-edge --v2 --ts --sass
leonsas at leonsas in ~/projects/temp/new-edge> ionic list
This command can only be used when in an Ionic project directory
leonsas at leonsas in ~/projects/temp/new-edge> ionic info

Your system information:

Cordova CLI: 4.3.0
Gulp version:  CLI version 3.8.11
Gulp local:
Ionic Version: 2.0.0-alpha.57
Ionic CLI Version: 2.0.0-beta.17
Ionic App Lib Version: 2.0.0-beta.8
ios-deploy version: 1.5.0
ios-sim version: 3.1.1
OS: Mac OS X El Capitan
Node Version: v0.12.1
Xcode version: Xcode 7.2 Build version 7C68

This issue was moved to driftyco/ionic-cli#767


Add i18n

Will try to work on this later. Just opening the issue for now.

I added the localization and created a pull request #47

(y)

i18n is in. Also please take a look at #48


Run copy-i18n-tags

Missed this PR. It has been addressed in the more recent PR: https://github.com/codecombat/codecombat/pull/5514


[1.17.1 Forge] Animated Block won't render after re-joining the world

Forge Version: 37.0.109
Geckolib Version: 1.17.1:3.0.11
How to reproduce:

Commonly register 2 animated blocks with respective blockentities;
Join the game and place one animated block;
Place another animated block right on that block;
Quit & re-join the world;
The animated block below won't render ( like an invisible block but it's still interactable ) ( and then when its tiledata changed it re-appeared ).

Also tried to reproduce with the two blocks that Geckolib provided( Botarium & fertilizer ). However, they rendered as expected normally. But when my custom animated block was placed, one of those placed Geckolib-built-in blocks will also "disappear" after re-joining.

Self fixed, something wrong in the blockentities' NBT load & save codes


content of attachment always empty when using @cap-js/attachments. Auto expose not working.

What happened?We followed the same approach as described here: https://github.com/cap-js/attachments/tree/main and created a simplified example.When uploading content for an attachment it always appears to be empty.auto expose of compositions is not working. Incidents_attachments is not accessibleWe expected:to be able to upload content to attachments.Auto expose of Incidents_attachments to be workingSteps to reproduceclone https://github.wdf.sap.corp/d037647/cap-attachmentsuse ./test/attachments.http to execute following requests:'### get Incidents''### create Incident attachment''### create attachmentsbinary 1': this in first place looks to be working fine'### read attachmentsbinary 1': always returns empty contentLooking at the database the content is also empty. Means somehow the PUT request '### create attachmentsbinary 1' is failing and does not work properly.Another interesting observation is that'### create attachmentsbinary 2': results in an error. auto expose of compositions is not working. Incidents_attachments is not accessible'### read attachmentsbinary 1': results in an error. auto expose of compositions is not working. Incidents_attachments is not accessibleVersions
attachments |
-- | --
@cap-js/asyncapi | 1.0.2
@cap-js/attachments | 1.1.8
@cap-js/cds-types | 0.7.0
@cap-js/db-service | 1.15.1
@cap-js/openapi | 1.0.7
@cap-js/sqlite | 1.7.7
@sap/cds | 8.4.2
@sap/cds-compiler | 5.4.4
@sap/cds-dk (global) | 8.4.2
@sap/cds-fiori | 1.2.7
@sap/cds-foss | 5.0.1
@sap/cds-mtxs | 2.3.0
@sap/eslint-plugin-cds | 3.1.2
Node.js | v20.16.0
home | /Users/D037647/SAPDevelop/EASA/simplifiedExamples/attachments/node_modules/@sap/cds
https://github.wdf.sap.corp/d037647/cap-attachmentsOS / EnvironmentmacOSRelevant log outputIncidents_attachments is not accessible
HTTP/1.1 405 Method Not Allowed
X-Powered-By: Express
X-Correlation-ID: 002ec6f7-a4c6-4287-bef3-03eb127c7aa3
OData-Version: 4.0
Content-Type: application/json; charset=utf-8
Content-Length: 165
Date: Mon, 25 Nov 2024 08:00:12 GMT
Connection: close
{
"error": {
"code": "405",
"message": "Entity "AttachmentsService.Incidents.attachments" is not explicitly exposed as part of the service",
<EMAIL_ADDRESS>4
}
}

We are also facing this issue. If we manually expose the composition, the request is accepted, but req.data.content is always empty (null).
Note: this issue occurs on an API with the draft functionality disabled. On a draft-enabled API, everything works normally and the composition is exposed automatically.

Hi @LastFreeUserICouldFind,
attachments plugin only supports draft-enabled entities. The entity having the attachments composition has to be annotated with @odata.draft.enabled to make use of the draft-enabled APIs.

thanks, I did not know. Is this documented somewhere?

We overlooked this in the documentation. We will update it.

Hi @jeevitha011
Do you have any plan to support attachments in non-draft entities?
Thanks.

The Attachments plugin was specifically developed with Fiori UI support in mind, which is why it currently only functions in draft-enabled entities. At this time, there are no plans to support it for non-draft entities.


feat: support specify password when deploy

Sign-off-by: xu.jingwen<EMAIL_ADDRESS>
What type of PR is this?
/kind feature

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #419
Special notes for reviewers:

Does this PR introduced a user-facing change?

Additional documentation, usage docs, etc.:

Codecov Report

Merging #417 (b0849c7) into master (fb520a8) will decrease coverage by 0.15%.
The diff coverage is 0.00%.


Nicer error message for "Error: undefined method 'size' for Nil" when do multiple assignment.

When i run some code on my local, i get following error message:
 ╰─ $ 1  cr run src/procodile.cr --error-trace
In src/procodile.cr:76:34

 76 | ap = Procodile::AppDetermination.new(FileUtils.pwd, options[:root], options[:procfile], global_config)
                                       ^--
Error: instantiating 'Procodile::AppDetermination.class#new(String, String, String, (Procodile::GlobalOption | Nil))'

In src/procodile/app_determination.cr:26:45

 26 | @root, @procfile, @in_app_directory = calculate(@pwd, @given_root, @given_procfile, @global_options)
                                            ^---
Error: undefined method 'size' for Nil

Nil trace:

  src/procodile/app_determination.cr:26

          @root, @procfile, @in_app_directory = calculate(@pwd, @given_root, @given_procfile, @global_options)
                                                ^~~~~~~~~

  src/procodile/app_determination.cr:70

        private def calculate(pwd, given_root, given_procfile, global_options)
                    ^~~~~~~~~

  src/procodile/app_determination.cr:72

          root = find_root_and_procfile(pwd, given_root, given_procfile)

  src/procodile/app_determination.cr:73

          if !root

  src/procodile/app_determination.cr:75

            find_root_and_procfile_from_options(global_options)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  src/procodile/app_determination.cr:106

        private def find_root_and_procfile_from_options(options)
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  src/procodile/app_determination.cr:107

          case options

  src/procodile/app_determination.cr:107

          case options

  src/procodile/app_determination.cr:111

          when Array

  src/procodile/app_determination.cr:114

            if @app_id

I don't know why, it should ouput some message like following too, right? (the compile time type report is missing in this case)
Error: undefined method 'size' for Nil (compile-time type is (Array(Int32) | Nil))

But, the key point is, why we output undefined method 'size' for Nil  for a potentially array type, even, never a #size method be invoked by user, is it appropriate to use the #size method to stand for arrays?
above case can be reproduce like this:
def calculate
  if true
    [1, 2, 3]
  end
end

x, y, z = calculate

 ╰─ $ cr 1.cr
Showing last frame. Use --error-trace for full trace.

In 1.cr:7:11

 7 | x, y, z = calculate
               ^---
Error: undefined method 'size' for Nil (compile-time type is (Array(Int32) | Nil))

Although, i really don't know why (compile-time type is (Array(Int32) | Nil)) is not output correctly occasionaly.

But, the key point is, why we output undefined method 'size' for Nil  for a potentially array type, even, never a #size method be invoked by user

It's because your x, y, z = calculate is equivalent to something like:
__temp_1 = exp
if __temp_1.size < 3
  ::raise("BUG: multiple assignment count mismatch")
end
x = __temp_1[0]
y = __temp_1[1]
z = __temp_1[2]

which is internally generated by the compiler.
Sounds like that code could also use a nil check.

It actually seems your code produces Error: undefined method '[]' for Nil (compile-time type is (Array(Int32) | Nil))

No, when run on my local linux, it produces

In 1.cr:7:11

 7 | x, y, z = calculate
               ^---
Error: undefined method 'size' for Nil (compile-time type is (Array(Int32) | Nil))

which is internally generated by the compiler.

Okay, i consider those code generated by compiler should check right op should be a Array or a Tuple, and, raise error use more clearly message instead of undefined method '[]' or '.size', what do you think?

No, when run on my local linux, it produces

Same thing on 1.6.1
Are you sure the code you're running is:
def calculate
  if true
    [1, 2, 3]
  end
end

x, y, z = calculate

But yes, I would agree the error could be a bit more clear on what the problem is.

Are you sure the code you're running is:
def calculate
  if true
    [1, 2, 3]
  end
end

x, y, z = calculate

I test both on static(musl) and dynamic 1.6.1, all same result.

Whether size is checked or not depends on the flag strict_multi_assign:
$ crystal build .test/multiassign.cr
Showing last frame. Use --error-trace for full trace.

error in line 7
Error: undefined method '[]' for Nil (compile-time type is (Array(Int32) | Nil))
$ crystal build .test/multiassign.cr -Dstrict_multi_assign
Showing last frame. Use --error-trace for full trace.

error in line 7
Error: undefined method 'size' for Nil (compile-time type is (Array(Int32) | Nil))

Whether size is checked or not depends on the flag strict_multi_assign:
$ crystal build .test/multiassign.cr
Showing last frame. Use --error-trace for full trace.

error in line 7
Error: undefined method '[]' for Nil (compile-time type is (Array(Int32) | Nil))
$ crystal build .test/multiassign.cr -Dstrict_multi_assign
Showing last frame. Use --error-trace for full trace.

error in line 7
Error: undefined method 'size' for Nil (compile-time type is (Array(Int32) | Nil))

Oops, you are right, i enable some option globally, i forget it.
 ╰─ $ echo $CRYSTAL_OPTS
-Dstrict_multi_assign -Dno_number_autocast

Back to improving the error message: Just a nil check (ref https://github.com/crystal-lang/crystal/issues/12682#issuecomment-1295834138) would improve this specific use case. But: any other type that doesn't implement [] and size (depending on the flag) would still create an unhelpful error message. So I think the improvement should really involve checking that the type implements these methods. However, I don't see a simple implementation for that at compile time. We might need to enhance the macro API or some other kind of compiler support. Or consider requiring the Indexable type for multi assignment 🤷

It should be another module like MultiAssignTarget


Help with designing model to allow different levels of service to users

Question
Can anyone share some ideas on how to provide paying users with a different level of service to standard users?
Background
We are building a platform based on amplify (react / graphql)
We allow user to register for free. A free account should allow a limited use.
Users can upgrade to a paid subscribion to get more features.
Examples of features for paying customers:

ability to upload files with bigger dimensions (e.g. free account should limit to 100 Mb)
ability to create a bigger number of UserReports (it doesn't matter what that is, it's just a computed report).
paid subscriptions are managed via Stripe. When a stripe subscription is active, we track this in a UserSubscription graphql type
we use cognito and user groups

Possible solutions
Cognito group

Add new 'Business' cognito group for paying customers
When the UserSubscription is active, add the user to that Group (e.g. from the webhook lambda??)
The validation logic (where is it?) would use the group to establish user access to resources and limitations

Custom graphql resolvers
It is possible to implement custom resolvers, where we could put some validation logic.
Validation lambda
Updating / creating a graphql record might trigger a lambda that performs validation and runs before the graphql mutation is executed.
React Frontend logic and UX
There are frontend specific implementations: whatever the backend implementation, it seems likely that the frontend should also include logic that takes into account if the user has paying subscription one or not. For example there might be specific UI elements for business users.
For other aspects (like validating a file size), the frontend might rely on validation errors thrown by the backend, which would end up for example with a toast showing the validation error.
Questions & Thoughts

where is "the best place" to implement this kind of behavior?
-- So far we are implementing some checks in the react frontend, but that doesn't seems great. Something like this should also be in the backend.
-- I am used to the Java/Spring/Hibernate and in that case there different places to implement validation: e.g. Hibernate validation, Spring Validation, etc.

Current Graphql types
...

type UserSubscription
  @model
  @auth(
    rules: [
      # Authorize owner to read own subscription.
      { allow: owner, operations: [read] }
    ]
  ) {
  id: ID!
  owner: String
  subscriptionType: String
  currentPeriodStartDate: AWSDateTime
  currentPeriodEndDate: AWSDateTime
  stripeSubscriptionId: String
  stripeCustomerId: String
  stripeProductId: String
  stripePriceId: String
  stripeSubscriptionStatus: String
  stripeCheckoutSessionId: String
}
...

type UserReport
  @model
  @auth(
    rules: [
      { allow: owner, operations: [create, update, delete, read] }
      { allow: groups, groups: ["Admin"], operations: [update, delete, read] }
    ]
  ) {
  id: ID!
  fileName: String!
  specificationTitle: String!
  metadata: AWSJSON
  error: String
  report: S3Object
  owner: String
  status: UserReportStatus!
}

type S3Object {
  bucket: String!
  key: String!
  region: String!
}

Which Category is your question related to?
API (graphql), function, auth (Cognito)
What AWS Services are you utilizing?
API (graphql & rest), Auth, Usergroups, Storage, etc.

@cfbo As a part of your subscribing workflow you can implement a @#function directive to add user to the 'Subscriber' group. More information https://docs.amplify.aws/cli/graphql-transformer/function/#chaining-functions

@ammarkarachi thanks coming back to me. Sounds interesting.
Though the focus of my question is not on how to add a user to the subscription group (at the moment I would have to do that in the stripeWebhook lambda that receives async notifications from stripe), but rather on how to use that information to provide "higher" services to users in that group.
For example, where is the "best place" to check if a user can create 10 files (free) or 1000 files (paying subscription)? Or other similar checks (e.g. max number of UserReport records)... I wouldn't think that should be done in the react frontend.
Maybe I could use custom appsync resolvers and check if the user is part of a group (e.g. in the create user report mutation) and perform a count of the current existing records before allowing to save the next one. If max number exceed, an error is thrown.
Or maybe I could use functions attachaed to that graphql type to run that check. Not sure which is best.
Something that sliglty complicate things is that I am using the Datastore in the frontend, and I am entirely sure if I can catch errors thrown by resolvers, because that occurs as part of the sync process underneeth.
Any thoughts on the above would be very much appreciated :)

Closing due to inactivity, but of course we can revisit this if needed.


HLD Automation

First batch of HLD test plan test cases

@ukalifon I think this PR is too old and might be already implemented downstream, is it still necessary?


New Maps SDK renderer compatibility

I'm submitting a ...  (check one with "x")

[ x ] question
[ ] any problem or bug report

OS:  (check one with "x")

[ x ] Android
[ ] iOS
[ ] Browser

Google has issued a warning that a new renderer will start to roll out next year:
https://developers.google.com/maps/documentation/android-sdk/renderer
Here is some info received by email from Google:
"This Maps SDK update features a new map renderer, which will become the default renderer for Android devices* through a progressive rollout, starting in March 2022 at the earliest.
Update to the new SDK (version 18.0.0) now to test and deploy the new SDK and renderer with your apps before the new renderer becomes the default for Android devices*.
To anticipate and avoid issues with your apps we advise you to:

Use the new SDK.
Specify the new renderer in your code."

What is to be done? Will the new renderer break everything, or how should we proceed to ensure a smooth transition?
It looks like there are just a few updates required (see link above).

I think a better question would be if it's really required to use the new renderer once it's rolled out. It says "An upgraded map renderer is available as of version 18.0.0 of the Maps SDK for Android". Does this mean that the new renderer only applies when using com.google.android.gms:play-services-maps:18.0.0? The plugin uses version 16.0.0 by default, which means it's not affected (please confirm, I am not really sure about that)

I have the same question.  Will this plugin have a new release to use com.google.android.gms:play-services-maps:18.0.0 soon?  Or any option to set using com.google.android.gms:play-services-maps:18.0.0?

There is an additional message from Google which enforces the previous concerns regarding the compatibility risk: Once the new renderer becomes the default, your apps will use the new renderer whether or not they were built against Maps SDK for Android version 18.0.x.
At least the deadline was pushed to starting in June 2022 at the earliest, so there is still time to make the required changes.

I just forked this Plugin because i guess no more work is done here...
See how easy it is to use the new renderer: https://github.com/EinfachHans/cordova-plugin-googlemaps/commit/71d8d45286a451270518847f95a25e74ee7fa382

@EinfachHans great job! It works like a charm, my app seems to be using the latest renderer with no problems so far

@alexp25 Would you please share more details about how to adopt @EinfachHans work?
I tried to specify "PLAY_SERVICES_VERSION": "18.0.0" while I installed  "cordova-plugin-googlemaps", then manually applied  EinfachHans's change, but can't compile, not able to find the reference to 'com.google.android.gms.maps.MapsInitializer.Renderer' .  I guess I still have the old version of 'com.google.android.gms:play-services-maps' installed, but couldn't find it in my project.  Thanks for your help.

@EinfachHans Is your fork working with Android 10? Specifically this issue here:
https://github.com/mapsplugin/cordova-plugin-googlemaps/issues/2892

@uhmarc i target sdk 30 so yes

@uhmarc i target sdk 30 so yes

Thanks, will be using it! :)


Not working on IOS 7

Hi, i'm testing the plugin, ok for Android but it does not works with IOs 7, any help ?
thanks

HI, This plugin is only for Android not IOS?

Yes, iOS is not supported.
BR
Il 10/06/2016 16:22, Mohit Maheshwari ha scritto:

HI, This plugin is only for Android not IOS?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/kumbe/Phonegap-ZoomControl/issues/7#issuecomment-225195519,
or mute the thread
https://github.com/notifications/unsubscribe/AC_s8ypYh2bVjSljkd7fJaW8CL2jkr2oks5qKXM3gaJpZM4FcPBk.

--
Nicola Mosca
<EMAIL_ADDRESS>mph +39<PHONE_NUMBER>
KUMBE srl - WEB E NUOVE TECNOLOGIE
<EMAIL_ADDRESS>- http://www.kumbe.it
http://www.facebook.com/KUMBE.it
http://www.twitter.com/kumbeit
Via Legione Trentina 5
I-38079 TIONE DI TRENTO TN IT
tel +39 0465 322204 - fax +39 0465 875102
Kumbe srl | http://www.kumbe.it/privacy


Premium Version?

Hi Sahat, congrats on the traction! Would you be interested in putting together a premium version of this to sell on SugarKubes? Our starter projects are selling pretty well right now.

No there are no plans to make a premium version of hackathon starter, it will forever remain free and open source.


Add datastore for insight

What this PR does / why we need it:
Add datastore to store insight data and redesign proto in insight
Which issue(s) this PR fixes:
ref #1142
Does this PR introduce a user-facing change?:

NONE

/lgtm
plz run make expose-generated-go on adding model 👀

To fix to use filestore, so, draft for now.


Convert some number tests to be table driven

This addresses issue #309 by creating table-driven test for "basic" subtest and creating new numbers for each individual test of "canonized" and "invalid argument" that wasn't converted to be table-driven for the following tests:

TestNumber_IsEqual
TestNumber_InRange
TestNumber_InList
TestNumber_IsGreater
TestNumber_IsLesser

In addition, some clean up was performed by replacing instances of cases := map[string]struct {...} with slices of structs. This was performed for both TestNumber_IsEqual and TestNumber_InDelta. The paradigm was applied to the tests converted to table-driven style too.

Coverage: 95.181%. Remained the same when pulling d3fd6a715fa4c01197c50b1bd18781239301905a on gpjservais:convert-number-tests-to-table-driven-style into 9e6c89d0652998d2535a1614b26d7ffde823fa53 on gavv:master.

The approach looks good, let me know when it's ready for review.

This is ready for review.

Thanks!
Small follow-up commit: ed37f40e4189435987d75ca428a7afbcaf32e8ba
Renamed "reeference" to "value" to avoid confusion with AssertionFailure.Reference; "value" is how the corresponding argument in number methods is named.


Feature/rd2 elevate integration

Critical Changes
Changes
Issues Closed
Community Ideas Delivered
New Metadata
Deleted Metadata

**lurch: attach W-042119

Tracking W-042119


editing README to reflect MONGO_URL issue I had with install

I am having the same issue. The server logs say that I don't have MONGO_URL set up although the dashboard settings says that I do.

Hmm that sounds funky, just to double check could you paste what you get if you run heroku config inside mbta-ninja from the command line? My first guess would be that git push heroku master would fix up the remote issue and that the heroku dashboard just didn't update it for some reason.
Also I'm curious whether it works for you locally or not. Sorry about the slow response!


Blog post doesn't work well on dark mode

Description
Blog post i bugged in dark mode
Steps to reproduce

Click on blog
Turn on dark mode

Expected result
The text of the post is white
Actual result
The text of the post is black
Environment
{
'@hyas/doks': '0.5.0',
npm: '9.8.1',
node: '18.17.1',
acorn: '8.8.2',
ada: '2.5.0',
ares: '1.19.1',
brotli: '1.0.9',
cldr: '43.0',
icu: '73.1',
llhttp: '6.0.11',
modules: '108',
napi: '9',
nghttp2: '1.52.0',
nghttp3: '0.7.0',
ngtcp2: '0.8.1',
openssl: '3.0.10+quic',
simdutf: '3.2.12',
tz: '2023c',
undici: '5.22.1',
unicode: '15.0',
uv: '1.44.2',
uvwasi: '0.0.18',
v8: '<IP_ADDRESS>-node.26',
zlib: '<IP_ADDRESS>-motley'
}

Can't reproduce — see https://doks.netlify.app/blog/
Do you have a repo you could share?


Support audio files like canva

I tried uploading one of my voice over and it directly denied saying, file type not supported.

It works from audio section!


dfki's use cases

Hi @mschroeder-github, could you confirm me that in the first use case (Messy Person Data), the names of the people are described in a (semi)structure format (e.g., CSV, XML, JSON)?

Yes, they are written to CSV. Actually, everything the generator outputs is written to CSV to have a simple format for algorithms programmed in various languages, see for example, https://github.com/mschroeder-github/person-index/blob/master/src/main/java/de/dfki/sds/personindex/PersonMessyGenerator.java#L315


No Grid sorting when holding shift.

https://gfycat.com/FlusteredRecklessChafer
Happens when holding shift and cursor is over grid slots or over the crafting grids output slot.

Thx!


Setting relative path breaks login

Setting Keycloak's KC_HTTP_RELATIVE_PATH breaks the login flow. Apparently this is not included in the api endpoint, neither is it configurable. When clicking "Send code" this results in a silent failure.

@ldwformat Thanks for this tip! I'll try that. Might be a good PR for the repository.


Diff: arrow and breakpoint do not work well together

Clicking the breakpoint executes the revert action it seems. Looks like click handlers are not yet separate.

Yeah, I plan to tackle introducing glyph widgets in the margin next iteration, we cannot yet discern the click target. Would it make sense to disable a revert on click when there are multiple decorations for now?

On second thought, it might be worse to disable a click to revert when there's also a breakpoint, especially since there's no contributed command in the context menu for reverting that can be used as a fallback. I expect to address this by allowing decorations to have dedicated click targets, therefore assigning to May.

Superseded by https://github.com/microsoft/vscode/issues/185814


Oculus Mobile SDK support

This adds Android-based Oculus Mobile SDK bindings to Exokit.
Supersedes https://github.com/webmixedreality/exokit/pull/825/commits.

Rough build steps:

Get node 11.6.0
Get Android NDK standalone toolchain API version 21
Insert NDK TOOLCHAIN environment variable in build scripts
Insert NDK TOOLCHAIN in android/local.properties
Run commands:

./scripts/prebuild-android.sh
./scripts/build-android.sh
./scripts/install-android.sh
./scripts/run-android.sh

The above steps should get to loading exokit bootstrap, including native modules, and then it will throw on the modules we have explicitly commented out from the build for now, such as audio:
04-04 23:54:41.001 17731 17750 E exokit  : /package/src/native-bindings.js:133
04-04 23:54:41.001 17731 17750 E exokit  : })(bindings.nativeAudio.AudioContext);
04-04 23:54:41.001 17731 17750 E exokit  :                         ^
04-04 23:54:41.001 17731 17750 E exokit  :
04-04 23:54:41.001 17731 17750 E exokit  : TypeError: Cannot read property 'AudioContext' of undefined
04-04 23:54:41.001 17731 17750 E exokit  :     at Object.<anonymous> (/package/src/native-bindings.js:133:25)
04-04 23:54:41.001 17731 17750 E exokit  :     at Module._compile (internal/modules/cjs/loader.js:721:30)
04-04 23:54:41.001 17731 17750 E exokit  :     at Object.Module._extensions..js (internal/modules/cjs/loader.js:732:10)
04-04 23:54:41.001 17731 17750 E exokit  :     at Module.load (internal/modules/cjs/loader.js:620:32)
04-04 23:54:41.001 17731 17750 E exokit  :     at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
04-04 23:54:41.001 17731 17750 E exokit  :     at Function.Module._load (internal/modules/cjs/loader.js:552:3)
04-04 23:54:41.001 17731 17750 E exokit  :     at Module.require (internal/modules/cjs/loader.js:657:17)
04-04 23:54:41.001 17731 17750 E exokit  :     at require (internal/modules/cjs/helpers.js:22:18)
04-04 23:54:41.001 17731 17750 E exokit  :     at Object.<anonymous> (/package/src/RTC/binding.js:4:19)
04-04 23:54:41.001 17731 17750 E exokit  :     at Module._compile (internal/modules/cjs/loader.js:721:30)

This might be useful to carry over from previous PR:
Initial oculus mobile sdk bindings (mostly copy&pasted from https://github.com/webmixedreality/exokit/pull/787 )

https://github.com/ngokevin/exokit/pull/6

VrApi nativeactivity sample code / native bindings

https://gist.github.com/chrisplatorres/9fd44b39e36208613bf7ee4c032dab9b

VrApi equivalents:

onrequestpresent - ovrRenderer_Create

https://gist.github.com/chrisplatorres/9fd44b39e36208613bf7ee4c032dab9b#file-vrcubeworld_nativeactivity-c-L1058

onrequestanimationframe - vrapi_GetPredictedTracking2

https://gist.github.com/chrisplatorres/9fd44b39e36208613bf7ee4c032dab9b#file-vrcubeworld_nativeactivity-c-L1105

submitframe

https://gist.github.com/chrisplatorres/9fd44b39e36208613bf7ee4c032dab9b#file-vrcubeworld_nativeactivity-c-L1130

onexitpresent - ovrRenderer_Destroy

https://gist.github.com/chrisplatorres/9fd44b39e36208613bf7ee4c032dab9b#file-vrcubeworld_nativeactivity-c-L1133

Framebuffer

https://gist.github.com/chrisplatorres/9fd44b39e36208613bf7ee4c032dab9b#file-vrcubeworld_nativeactivity-c-L700

Can use same EGL as magic leap

https://github.com/webmixedreality/exokit/blob/master/deps/exokit-bindings/egl/src/egl.cc#L208

@chrisplatorres Thanks for the research in https://github.com/webmixedreality/exokit/pull/897#issuecomment-480306474; I think that's probably the next step for this PR.

This branch should now be running the render loop correctly with binaries linked in. It's currently now erroring on the actual user context/VR startup -- which is expected since the Oculus Mobile SDK isn't plugged in yet.
04-06 05:52:09.274  6716  6732 I exokit  : ERROR: Invalid #version
04-06 05:52:09.274  6716  6732 I exokit  :
04-06 05:52:09.314  6716  6732 I exokit  : request device
04-06 05:52:09.318  6716  6732 I exokit  : render loop
04-06 05:52:09.444  6716  6731 I Adreno  : ERROR: Invalid #version
04-06 05:52:09.444  6716  6733 E exokit  : THREE.WebGLShader: Shader couldn't compile.
04-06 05:52:09.446  6716  6733 E exokit  : THREE.WebGLShader: gl.getShaderInfoLog() vertex ERROR: Invalid #version
04-06 05:52:09.446  6716  6733 E exokit  :  1: precision highp float;
04-06 05:52:09.446  6716  6733 E exokit  : 2: precision highp int;
04-06 05:52:09.446  6716  6733 E exokit  : 3: #define SHADER_NAME MeshPhongMaterial
04-06 05:52:09.446  6716  6733 E exokit  : 4: #define VERTEX_TEXTURES
04-06 05:52:09.446  6716  6733 E exokit  : 5: #define GAMMA_FACTOR 2
04-06 05:52:09.446  6716  6733 E exokit  : 6: #define MAX_BONES 0
04-06 05:52:09.446  6716  6733 E exokit  : 7: #define USE_COLOR
04-06 05:52:09.446  6716  6733 E exokit  : 8: #define BONE_TEXTURE
04-06 05:52:09.446  6716  6733 E exokit  : 9: uniform mat4 modelMatrix;
04-06 05:52:09.446  6716  6733 E exokit  : 10: uniform mat4 modelViewMatrix;
04-06 05:52:09.446  6716  6733 E exokit  : 11: uniform mat4 projectionMatrix;
04-06 05:52:09.446  6716  6733 E exokit  : 12: uniform mat4 viewMatrix;
04-06 05:52:09.446  6716  6733 E exokit  : 13: uniform mat3 normalMatrix;
04-06 05:52:09.446  6716  6733 E exokit  : 14: uniform vec3 cameraPosition;
04-06 05:52:09.446  6716  6733 E exokit  : 15: attribute vec3 position;

This should now be creating correctly versioned contexts on Android. It tries to enter WebVR but since there is no full device integration for it, it fails:
04-06 07:03:43.615  1607  1607 D [OAR] MainActivity: com.oculus.vrshell.MainActivity@6beaca8 surfaceDestroyed()
04-06 07:03:43.615  1607  1607 I [OAR] ShellMain:     looperMessageQueue->SendPrintf("surfaceDestroyed ")
04-06 07:03:43.616  1607  1700 I [OAR] ShellApp: 0xca5ff298 msg: surfaceDestroyed
04-06 07:03:43.616  1607  1607 I [OAR] ShellMain:     ANativeWindow_release(nativeWindow)

fabdbe8 updates main.cpp to mobile.cpp per https://github.com/webmixedreality/exokit/pull/889#issuecomment-480064282
will update and track that in #889

bbe4797 35352b6 ceef4d4
should read "to use $ANDROID_HOME for path"
per https://github.com/webmixedreality/exokit/pull/897#discussion_r272777478

Just built and ran from scratch, updated instructions:
Node 11.6.0
Confirm that $ANDROID_HOME points to Android/Sdk directory
Run commands:
./scripts/make-toolchain-android.sh
./scripts/prebuild-android.sh
./scripts/build-android.sh
./scripts/install-android.sh
./scripts/run-android.sh

note: if adb devices shows "no permissions" - https://askubuntu.com/a/909227

This should be rendering to the headset now. 🦄
I think there's some frame synchronization to clean up in the swap chain, but now that we have drawing we should be in a good place to debug it.

Fixed the frame synchronization issue; it turns out it was missing swap chain index advancement in https://github.com/exokitxr/exokit/pull/897/commits/e31d81f4dfc01345342215664954818288fc6823.

Added in e5230b9
	<uses-permission android:name="android.permission.INTERNET" />

per Android manifest permissions for internet access
and updated settings per Oculus Android Manifest Settings docs

Just tested with successful render using build and run instructions from here: https://github.com/exokitxr/exokit/pull/897#issuecomment-480618784
Video here:

Added arguments passing support to this branch, so we can launch arbitrary urls for easy testing:
cls
.\adb.exe shell am force-stop com.webmr.exokit
.\adb.exe logcat -c
.\adb.exe shell am start -n com.webmr.exokit/android.app.NativeActivity -e ARGS "'node --experimental-worker /package /package/examples/tutorial.html'"
.\adb.exe logcat *:V

This branch is loading up some A-Frames now. Some things we'll need to finish before shipping:

[ ] Controller tracking
[ ] Audio bindings
[ ] Run render loop on separate thread

Repro lagging at os-level:

run

 adb shell am start -n com.webmr.exokit/android.app.NativeActivity -e ARGS "'node --experimental-worker /package -x webvr https://aframe.io/aframe/examples/boilerplate/hello-world/'"

load into a-frame boiler plate
press home button to pause app/goto menu
lag at OS level, even at power down/restart menu, have to hard shutdown with button

Presuming we can be on API level 26+, we can use AAudio to implement audio bindings for Android.

from https://developer.oculus.com/blog/best-practices-ensuring-compatibility-of-your-gear-vr-application-for-oculus-go/

The API Level of Your Application
Oculus Go shipped with an Android API level of 25. If you happen to upload a Go-compatible application to your release channel with a minimum API that is higher than this level, your application will not show up on Oculus Go devices. It is best to set your application at the lowest API it run on and we currently recommend a minimum of API 21.

Could use https://github.com/google/oboe

Chooses the audio API (OpenSL ES on API 16+ or AAudio on API 27+) which will give the best audio performance on the target Android device

I brought in the initial audio and webrtc bindings into this branch.

Note that when the audio bindings work, we'll need to concurrently merge the LabSound generic audio solution at https://github.com/modulesio/LabSound/pull/22.

Reminder to cleanup files in assets/ https://github.com/exokitxr/exokit/tree/8e243b846af94b4d9a73f1cf14adc3d53b2a20ec/android/app/assets

these can be removed since there is no google sdk in this build https://github.com/exokitxr/exokit/blob/8e243b846af94b4d9a73f1cf14adc3d53b2a20ec/android/app/build.gradle#L49-L53

Thanks, https://github.com/exokitxr/exokit/pull/897/commits/3e8b25a320588809806194e8ed3df3de7a86126b https://github.com/exokitxr/exokit/pull/897/commits/33379d2d4e0cfacb33b7c6c8537c3c687556034d.

I think the entire res directory is being unused (icons and strings.xml) https://github.com/exokitxr/exokit/tree/8e243b846af94b4d9a73f1cf14adc3d53b2a20ec/android/app/src/main/res
and the README can be deleted or repurposed to eventually explain the different android setups (googleVR, oculus mobile, arcore, etc) https://github.com/exokitxr/exokit/blob/8e243b846af94b4d9a73f1cf14adc3d53b2a20ec/android/README.md

Is there any downside to deleting res?

maybe it is worth keeping the dir, because it is referenced in the .iml file, but the sub-directories are not being used.

This branch now has basic audio support based on oboe.

This has Linux test errors related to libcef.so:
$ npm run test
Error: libcef.so: cannot open shared object file: No such file or directory
    at Object.Module._extensions..node (internal/modules/cjs/loader.js:750:18)
    at Module.load (internal/modules/cjs/loader.js:620:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
    at Function.Module._load (internal/modules/cjs/loader.js:552:3)
    at Module.require (internal/modules/cjs/loader.js:657:17)
    at require (internal/modules/cjs/helpers.js:22:18)
    at Object.<anonymous> (/home/a/exokit/src/native-bindings.js:11:20)
    at Module._compile (internal/modules/cjs/loader.js:721:30)

-lcef is included under linux (https://github.com/exokitxr/exokit/blob/master/binding.gyp#L237) in binding.gyp but not for ANDROID

This was a Linux build though, which is why Linux CI doesn’t pass...
On Sun, Apr 14, 2019 at 2:04 PM Christopher P. La Torres <
<EMAIL_ADDRESS>wrote:

-lcef is included under linux (
https://github.com/exokitxr/exokit/blob/master/binding.gyp#L237) in
binding.gyp but not for ANDROID
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/exokitxr/exokit/pull/897#issuecomment-483030956, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AGmu6ZdnOzVr5NwEIzum0vNXLGHdaekJks5vg225gaJpZM4cehu0
.

Instructions for getting the android sdk manager, adb, ndk-bundle, etc:
To install it on a Debian based system simply do
# Install latest JDK
sudo apt install default-jdk

# install unzip if not installed yet
sudo apt install unzip

# get latest sdk tools - link will change. go to https://developer.android.com/studio/#downloads to get the latest one
cd ~
wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip

# unpack archive
unzip sdk-tools-linux-4333796.zip

rm sdk-tools-linux-4333796.zip

mkdir android-sdk
mv tools android-sdk/tools

Then add the Android SDK to your PATH, open ~/.bashrc in editor and add the following lines into the file
# Export the Android SDK path
export ANDROID_HOME=$HOME/android-sdk
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools

# Fixes sdkmanager error with java versions higher than java 8
export JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'

Run
source ~/.bashrc
Show all available sdk packages
sdkmanager --list
Identify latest android platform (here it's 28) and run
sdkmanager "platform-tools" "platforms;android-28"
Now you have adb, fastboot and the latest sdk tools installed
to install NDK directly run
sdkmanager "ndk-bundle"

Needed to update the manifest a bit with 37dfc28 and 12eeb95 after the assets directory deletion

Can use adb in WSL,  but the daemon has to be started from windows and the adb versions have to be the same between windows and WSL (ubuntu):

ADB is functional only when you start adb server in the host system(windows), thus host system would handle all usb traffic for bash on windows.

That's also why adb on both sides are required to be the very same version so they would recognize each other and communicate through tcp.

I think this branch is still failing to load libcef.so on Linux.

Oh, I think I know why libcef.so isn't loading on linux. It's an rpath issue.
We no longer process.cwd() (because it's not supported on Android), but that means the rpath hacks in binding.gyp can no longer find the library paths on Linux.
Probably just adjust the rpaths?

Attempted fix for Linux builds on this Oculus Go branch: https://github.com/exokitxr/exokit/pull/897/commits/0289e416c911a335e05fdc646168395bc5514262

To the extent this PR does not interfere with the rest of our code in flight, I think we should merge it. We have initial Oculus Go rendering and things pass, so it makes sense to continue development in master to fix remaining issues.

I cleaned up the build script to be a single script, just like the magic leap case.

I think this is fine for merging, we just need to test for obvious regressions, especially on the Magic Leap side.

The build for this Oculus Go branch seems to link fine for Magic Leap.

This branch needs to ingest the fix from https://github.com/exokitxr/exokit/pull/931.

Should we make a script out of the instructions from https://github.com/exokitxr/exokit/pull/897#issuecomment-483460498 ? Or require the user to setup sdkmanager and install ndk themselves?

I would say it’s out of scope to set up environments for a particular os. But we can include the instructions in the docs.

Notably, I think reality tabs don't work with this branch (yet).

Will continue development off of master, since this branch was getting large and shouldn't interfere with the other parts of exokit.


SW-5999 Implemented method to delete cell value

#3170  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @tommylau523 and the rest of your teammates on  Graphite


Geohash fun (WIP)

Implements a gql query for querying toilets by their geohash value at different levels of precision. This lets us request toilets at different levels of detail!
We load in chunks based upon the lat/lng centre view of the map. Each neighbour and their neighbours are loaded in to grab a sensible portion of the map that covers the users' viewport.
The precision of the geohash is changed based upon the zoom level, so that the chunks get larger as the user zooms out.
Here are some pictures of geohash chunking at each zoom level (blue zones turned on for debugging):
National

Birds eye

Local

Street level

@marxian eager to see what you think about the latest build :) https://gbptm-next-ionscniq8-neontribe.vercel.app/ – still needs tweaking, but I think the approach has definite promise! I've split the marker loading out into "chunks" and highlighted at each zoom level with a debug rectangle. Each chunk can load in as the network request completes, so we don't block and the user can see loos as soon as they are available

Another thought that just occurred, now that we have these zoom levels, we could extend the stringifyAndCompress method to also include enough data to show the toilet info panel without having to make extra network requests at the closer-in zoom levels maybe


[NDTensors] Change definition of backend_octavian to avoid method overwrite warning

With the current definition of backend_octavian in NDTensors.jl, it generates a warning:
┌ NDTensorOctavian [741af968-7ee1-5a7b-8fdc-4e972246587f]
│  WARNING: Method definition backend_octavian() in module NDTensors at /Users/mfishman/.julia/dev/ITensors/NDTensors/src/NDTensors.jl:227 overwritten in module NDTensorOctavian at /Users/mfishman/.julia/dev/ITensors/NDTensors/ext/NDTensorOctavian/octavian.jl:1.
│    ** incremental compilation may be fatally broken for this module **
└

This PR changes it from being explicitly defined to being defined without any methods, so it should generate a method overwrite warning.
@kmp5VT

Codecov Report

Merging #1157 (d6a6be5) into main (bd10851) will decrease coverage by 31.69%.
The diff coverage is n/a.

:exclamation: Current head d6a6be5 differs from pull request most recent head 710fd1f. Consider uploading reports for the commit 710fd1f to get more accurate results

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@             Coverage Diff             @@
##             main    #1157       +/-   ##
===========================================
- Coverage   85.28%   53.60%   -31.69%
===========================================
  Files          87       85        -2
  Lines        8368     7824      -544
===========================================
- Hits         7137     4194     -2943
- Misses       1231     3630     +2399

see 67 files with indirect coverage changes