Store and return values for virtual buttons

What problem does this solve?
Check "how pressed" my triggers etc are in an input-agnostic fashion.
What solution would you like?
Call action_state.value(action) and receive a f32.
Follow standard convention in https://github.com/bevyengine/bevy/pull/3419 for what values should be returned for trivial virtual buttons.
[Optional] What alternatives have you considered?
We could consider storing other, arbitrarily complex information on here, using the data encoded on the Action enum.
enum Action{
  Jump(Height),
  Attack,
  Move(Position),
}

And then return the actual value stored in the matching variant
Related work
Ties in to the thoughts about durations in #37, and may provide the richness needed for #35.

Done, but not wired in directly.


add non_streaming_nlu flag to ContextOptions

Once the non-streaming NLU variant is enabled in the back-end, these changes should allow specifying at inference time which NLU variant to use.

@aukkonen for the benefit of testing and demoing would be great if we could add this tick box also to the dashboard. @thisismatu demonstrated with the adaptation package feature that this should be a pretty quick thing to achieve. What are you guys think?

@bigdatabaracus yes, let's do it. @aukkonen check the latest merged PR in dashboard to see how i did it for adaptation_audio_package. Also, let's make sure to add this flag to our docs as well.

@bigdatabaracus yes, let's do it. @aukkonen check the latest merged PR in dashboard to see how i did it for adaptation_audio_package. Also, let's make sure to add this flag to our docs as well.

Cool 👍 created a card about this task. https://trello.com/c/KOPaNENX/1088-rest-style-nlu-dashboard-setting-docs


[YUNIKORN-2203] Possible log spew in UGM code

Don't log from methods which can be repeatedly called from the scheduling cycle as it floods the log.
What is this PR for?
Remove logging from hot code path. Yunikorn logs will be flooded if we switch to DEBUG level or an enforcement kicks in and Yunikorn constantly tries to schedule the app.
What type of PR is it?

[x] - Bug Fix
[ ] - Improvement
[ ] - Feature
[ ] - Documentation
[ ] - Hot Fix
[ ] - Refactoring

Todos

[ ] - Task

What is the Jira issue?
https://issues.apache.org/jira/browse/YUNIKORN-2203
How should this be tested?
Screenshots (if appropriate)
Questions:

[ ] - The licenses files need update.
[ ] - There is breaking changes for older versions.
[ ] - It needs documentation.

@pbacsko, Wilfred gave another suggestion in the thread. Do we want to do it in another Jira? If yes, I can help it. Thank you.
Other locations that do log in the UGM at DEBUG and I think should be logged at an INFO level:

L136: "Removing user from manager"
L162: "Removing group from manager"
L222: "Group tracker doesn't exists. Creating appGroup tracker"
L231: "Group tracker set for user application"
L565: "User tracker doesn't exists. Creating user tracker."
These are all major changes and low volume which should be tracked in the logs.

I'll change those.


Upgrade cilium to v1.9.0

Please note:

the images for Cilium are taken from quay.io/cilium/ (oficial repo)
the operator is run in HA config (replicas count = 1). It leads to failing one of replicas
in single master mode

Q
A

Bug fix?
no

New feature?
no

API breaks?
no

Deprecations?
no

Related tickets
fixes #122

License
Apache 2.0

To Do

[ ] Put images in banzaicloud repo
[ ] Make different configurations for cilium-operator (rc=1 for single-master, and rc=2 for other setups)
[ ] Make extensive tests

Thanks @gecube !
We'll look at it. There are some changes around images in the queue anyway, so I'd probably wait for them.

Thanks @gecube ! I fixed some minor issues in a different PR (#140) based on your changes.

Thanks @gecube ! I fixed some minor issues in a different PR (#140) based on your changes.


Synthesis failed for nodejs-dlp

Hello! Autosynth couldn't regenerate nodejs-dlp. :broken_heart:
Here's the output from running synth.py:
che/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/bazel_tools/tools/build_defs/repo/http.bzl:296:16):
 - <builtin>
 - /home/kbuilder/.cache/synthtool/googleapis/WORKSPACE:42:1
DEBUG: Rule 'gapic_generator_python' indicated that a canonical reproducible form can be obtained by modifying arguments sha256 = "8d11f06b408ac5f1c01da3ca17f3a75dc008831509c5c1a4f24f9bde37792a57"
DEBUG: Call stack for the definition of repository 'gapic_generator_python' which is a http_archive (rule definition at /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/bazel_tools/tools/build_defs/repo/http.bzl:296:16):
 - <builtin>
 - /home/kbuilder/.cache/synthtool/googleapis/WORKSPACE:224:1
DEBUG: Rule 'com_googleapis_gapic_generator_go' indicated that a canonical reproducible form can be obtained by modifying arguments sha256 = "12bfed7873f085093cd60615bd113178ecf36396af0c2ca25e6cd4d4bebdd198"
DEBUG: Call stack for the definition of repository 'com_googleapis_gapic_generator_go' which is a http_archive (rule definition at /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/bazel_tools/tools/build_defs/repo/http.bzl:296:16):
 - <builtin>
 - /home/kbuilder/.cache/synthtool/googleapis/WORKSPACE:261:1
DEBUG: Rule 'gapic_generator_typescript' indicated that a canonical reproducible form can be obtained by modifying arguments sha256 = "ca322b5e7b0d03b3cc44a90444e3a7f944c9ba3345f0505ee48c8e715d19dd95"
DEBUG: Call stack for the definition of repository 'gapic_generator_typescript' which is a http_archive (rule definition at /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/bazel_tools/tools/build_defs/repo/http.bzl:296:16):
 - <builtin>
 - /home/kbuilder/.cache/synthtool/googleapis/WORKSPACE:280:1
DEBUG: Rule 'gapic_generator_csharp' indicated that a canonical reproducible form can be obtained by modifying arguments sha256 = "40ddae63d2729ef5ccbd8b60123327ea200ce9400d0629238193ff530dcaea18"
DEBUG: Call stack for the definition of repository 'gapic_generator_csharp' which is a http_archive (rule definition at /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/bazel_tools/tools/build_defs/repo/http.bzl:296:16):
 - <builtin>
 - /home/kbuilder/.cache/synthtool/googleapis/WORKSPACE:318:1
DEBUG: Rule 'bazel_skylib' indicated that a canonical reproducible form can be obtained by modifying arguments sha256 = "1dde365491125a3db70731e25658dfdd3bc5dbdfd11b840b3e987ecf043c7ca0"
DEBUG: Call stack for the definition of repository 'bazel_skylib' which is a http_archive (rule definition at /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/bazel_tools/tools/build_defs/repo/http.bzl:296:16):
 - <builtin>
 - /home/kbuilder/.cache/synthtool/googleapis/WORKSPACE:35:1
Analyzing: target //google/privacy/dlp/v2:privacy-dlp-v2-nodejs (1 packages loaded, 0 targets configured)
INFO: Call stack for the definition of repository 'npm' which is a yarn_install (rule definition at /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/build_bazel_rules_nodejs/internal/npm_install/npm_install.bzl:411:16):
 - <builtin>
 - /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/build_bazel_rules_nodejs/index.bzl:87:5
 - /home/kbuilder/.cache/synthtool/googleapis/WORKSPACE:293:1
ERROR: An error occurred during the fetch of repository 'npm':
   yarn_install failed: yarn install v1.19.1
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
info If you think this is a bug, please open a bug report with the information provided in "/home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/gapic_generator_typescript/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
 (error An unexpected error occurred<EMAIL_ADDRESS>Request failed \"404 Not Found\"".
)
ERROR: /home/kbuilder/.cache/synthtool/googleapis/google/privacy/dlp/v2/BUILD.bazel:273:1: //google/privacy/dlp/v2:dlp_nodejs_gapic depends on @gapic_generator_typescript//:protoc_plugin in repository @gapic_generator_typescript which failed to fetch. no such package '@npm//@bazel/typescript': yarn_install failed: yarn install v1.19.1
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
info If you think this is a bug, please open a bug report with the information provided in "/home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/gapic_generator_typescript/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
 (error An unexpected error occurred<EMAIL_ADDRESS>Request failed \"404 Not Found\"".
)
ERROR: Analysis of target '//google/privacy/dlp/v2:privacy-dlp-v2-nodejs' failed; build aborted: no such package '@npm//@bazel/typescript': yarn_install failed: yarn install v1.19.1
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
info If you think this is a bug, please open a bug report with the information provided in "/home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/gapic_generator_typescript/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
 (error An unexpected error occurred<EMAIL_ADDRESS>Request failed \"404 Not Found\"".
)
INFO: Elapsed time: 1.036s
INFO: 0 processes.

Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 102, in <module>
    main()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 94, in main
    spec.loader.exec_module(synth_module)  # type: ignore
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/kbuilder/.cache/synthtool/nodejs-dlp/synth.py", line 24, in <module>
    library = gapic.node_library('privacy-dlp', version, proto_path=f'google/privacy/dlp/{version}')
  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_bazel.py", line 52, in node_library
    return self._generate_code(service, version, "nodejs", **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_bazel.py", line 183, in _generate_code
    shell.run(bazel_run_args)
  File "/tmpfs/src/github/synthtool/synthtool/shell.py", line 39, in run
    raise exc
  File "/tmpfs/src/github/synthtool/synthtool/shell.py", line 33, in run
    encoding="utf-8",
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 438, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['bazel', '--max_idle_secs=240', 'build', '//google/privacy/dlp/v2:privacy-dlp-v2-nodejs']' returned non-zero exit status 1.
2020-08-06 04:14:49,183 autosynth [ERROR] > Synthesis failed
2020-08-06 04:14:49,183 autosynth [DEBUG] > Running: git reset --hard HEAD
HEAD is now at 62e1b64 docs: add links to the CHANGELOG from the README.md for Java and Node (#519)
2020-08-06 04:14:49,188 autosynth [DEBUG] > Running: git checkout autosynth
Switched to branch 'autosynth'
2020-08-06 04:14:49,193 autosynth [DEBUG] > Running: git clean -fdx
Removing __pycache__/
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 690, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 539, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 670, in _inner_main
    commit_count = synthesize_loop(x, multiple_prs, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 375, in synthesize_loop
    has_changes = toolbox.synthesize_version_in_new_branch(synthesizer, youngest)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 273, in synthesize_version_in_new_branch
    synthesizer.synthesize(synth_log_path, self.environ)
  File "/tmpfs/src/github/synthtool/autosynth/synthesizer.py", line 120, in synthesize
    synth_proc.check_returncode()  # Raise an exception.
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 389, in check_returncode
    self.stderr)
subprocess.CalledProcessError: Command '['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'synth.metadata', 'synth.py', '--']' returned non-zero exit status 1.

Google internal developers can see the full log here.

Autosynth passed, closing! :green_heart:


Segfault on OSX

Installing and running this repo either via pre-commit hooks or local installation via pip is giving me a segfault.
System details:
Macbook Pro 2019 (Intel)
Sonoma 14.1
Python 3.11.8 (also attempted with 3.9 and 3.12)

Install and run output:
(tmpenv.keOcXVwOAT) » python3 --version
Python 3.11.8
(tmpenv.keOcXVwOAT) » pip install<EMAIL_ADDRESS>Collecting<EMAIL_ADDRESS>  Cloning https://github.com/AleksaC/hadolint-py.git (to revision v<IP_ADDRESS>) to /private/var/folders/2n/6qdw7s914fqdj64ct22h0_jw0000gq/T/pip-req-build-z4w_qfyu
  Running command git clone --filter=blob:none --quiet https://github.com/AleksaC/hadolint-py.git /private/var/folders/2n/6qdw7s914fqdj64ct22h0_jw0000gq/T/pip-req-build-z4w_qfyu
  Resolved https://github.com/AleksaC/hadolint-py.git to commit ed40aa186f6d46a5c74b59c9917bfc56f67edcbd
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: hadolint_py
  Building wheel for hadolint_py (pyproject.toml) ... done
  Created wheel for hadolint_py: filename=hadolint_py-<IP_ADDRESS>-py2.py3-none-macosx_14_0_x86_64.whl size=2621971 sha256=5c1b8eea34dfab70ae31d97728505efea4ee414618d8d3fa6dba5967cb68ef78
  Stored in directory: /private/var/folders/2n/6qdw7s914fqdj64ct22h0_jw0000gq/T/pip-ephem-wheel-cache-wg2ulgi5/wheels/08/85/b9/8ea4810c90b806e4ad98a0da6bb90cfd134ecd4ecc3bc52d62
Successfully built hadolint_py
Installing collected packages: hadolint_py
Successfully installed hadolint_py-<IP_ADDRESS>
(tmpenv.keOcXVwOAT) » pip freeze
hadolint_py @ git+https://github.com/AleksaC/hadolint-py.git@ed40aa186f6d46a5c74b59c9917bfc56f67edcbd
(tmpenv.keOcXVwOAT) » hadolint
zsh: segmentation fault  hadolint
(tmpenv.keOcXVwOAT) » hadolint --help
zsh: segmentation fault  hadolint --help
(tmpenv.keOcXVwOAT) » hadolint Dockerfile
zsh: segmentation fault  hadolint Dockerfile

Any suggestions on how to debug? Note that sudo port install hadolint works just fine, though I was hoping that I could reuse my pre-commit hook configuration for local dev and on pre-commit CI.

hadolint-py just downloads an appropriate binary from a GitHub release of the upstream project. After taking a look at their issue tracker it seems like you're hitting this issue https://github.com/hadolint/hadolint/issues/919.
I don't have access to an x86 Macbook, but you can easily test this by running something like this:
curl -sL https://github.com/hadolint/hadolint/releases/download/v2.12.0/hadolint-Darwin-x86_64 -o /tmp/hadolint
chmod +x /tmp/hadolint
/tmp/hadolint

There is a pre-release where this problem should be fixed, but the script that automates new releases for this project skips pre-releases because they might not be stable.
I'll check what changes have been made in the pre-release version and if I deem it to be safe I might publish it manually when I get time.

I have been trying to fix the same issue here: https://github.com/michaelsaki/pre-commit-hadolint. One approach I tried was to try to package up the Homebrew bottle for Hadolint which is stable but setuptools doesn't have the ability to pass in the token that Github Packages requires to download the tar file.

I can reproduce this problem on OSX Sonoma 14.3.1 ...
➜   curl -sL https://github.com/hadolint/hadolint/releases/download/v2.12.0/hadolint-Darwin-x86_64 -o /tmp/hadolint
➜   chmod +x /tmp/hadolint
➜   /tmp/hadolint
[1]    74003 segmentation fault  /tmp/hadolint

although it might be fixed in hadolint v2.12.1-beta?
➜  curl -sL https://github.com/hadolint/hadolint/releases/download/v2.12.1-beta/hadolint-Darwin-x86_64 -o /tmp/hadolint
➜  chmod +x /tmp/hadolint
➜  /tmp/hadolint
Please provide a Dockerfile

Thanks for the reproduction @zaro0508! I looked into the v2.12.1-beta pre-release and it seems safe to release here since it doesn't contain any changes to the hadolint code itself. Once I have more time I'll check if it would break anything on this project and try to release it if it doesn't.

Could you please take a look at PR #6 AleskaC ?

Thanks for the PR @zaro0508! I'll take a look at it as soon as I have time, which probably won't be before the weekend 😢


Hide network selector until connected

The network selector sometimes loads as blank before connecting a wallet.  Let's just hide it until a wallet is connected.

Fixed in #7


elastalart rules : can i make or condition in filters using wild card

Hello
i need to make the following filter in elastalert rule
filter:
- query:
    wildcard:
      url.domain: "apis*" OR  url.domain: "test*"
- term:
    monitor.status: "up"

so i need to test that url.domain start with apis keyword or test keyword, but when i test the rule it give error in or condition  so how can i solve this issue
Thanks

look
https://github.com/Yelp/elastalert/issues/3178

Hello!
I referred to the elastalert docs for writing rules and found this query that matches your problem:
- query:     query_string:       query: "field: value OR otherfield: othervalue"
So, why don't you enclose the whole thing inside url.domain in double quotes? Let's see if that works


Integration with JupyterHub (TLJH) Kernel always died (auto-restarting)

Hello, I have a JupyterHub (TLJH) with JupyterLab installed, all behind a reverse HTTP/WebSocket proxy (python kernel works).
The robotkernel was installed and I can see it in the luncher tab.
If I open a notebook with a robot kernel the kernel seems to not start. If press the start button nothing is running and no output is shown.
After some time the kernel status is marked as "autorestarting" and a popup is shown.
Kernel Restarting
The kernel for RobotFramework/Untitled.ipynb appears to have died. It will restart automatically.

For installation I use a jupyter terminal (my user is admin) just using sudo before :
sudo jupyter labextension install jupyterlab_robotmode
sudo jupyter labextension install @jupyter-widgets/jupyterlab-manager

@bollwyvl Any ideas what could cause this? Or how to get more traceback for this issue? Doesn’t Binder use somewhat similar setup, and it works fine?

Does ipython work?
There should be more logs than what is in the browser... These are likely
on a systemd unit (e.g journalctl -u) and are for the specific single user
notebook server, not the hub unit.

Yes ipython works in this setup.
from a jupyter terminal with :
sudo journalctl -u jupyterhub -f
sept. 20 18:24:54 jupyterlab python3[1099]: [I 2020-09-20 18:24:54.400 JupyterHub proxy:319] Checking routes
sept. 20 18:24:55 jupyterlab python3[1099]: [I 2020-09-20 18:24:55.017 JupyterHub log:174] 200 GET /jupyterlab/hub/api/users<EMAIL_ADDRESS>76.31ms
sept. 20 18:25:55 jupyterlab python3[1099]: [I 2020-09-20 18:25:55.011 JupyterHub log:174] 200 GET /jupyterlab/hub/api/users<EMAIL_ADDRESS>70.32ms
sept. 20 18:26:12 jupyterlab python3[1099]: [I 2020-09-20 18:26:12.897 JupyterHub log:174] 200 POST /jupyterlab/hub/api/users/pitdu53/activity<EMAIL_ADDRESS>199.82ms
sept. 20 18:26:47 jupyterlab python3[1099]: [I 2020-09-20 18:26:47.207 JupyterHub log:174] 200 GET /jupyterlab/hub/api/authorizations/token/[secret]<EMAIL_ADDRESS>176.90ms
sept. 20 18:26:55 jupyterlab python3[1099]: [I 2020-09-20 18:26:55.018 JupyterHub log:174] 200 GET /jupyterlab/hub/api/users<EMAIL_ADDRESS>76.99ms
sept. 20 18:27:55 jupyterlab python3[1099]: [I 2020-09-20 18:27:55.025 JupyterHub log:174] 200 GET /jupyterlab/hub/api/users<EMAIL_ADDRESS>83.65ms

journalctl -u jupyter-pitdu53
sept. 20 18:22:05 jupyterlab bash[3445]: [I 2020-09-20 18:22:05.762 SingleUserNotebookApp restarter:110] KernelRestarter: restarting kernel (1/5), new random ports
sept. 20 18:22:06 jupyterlab bash[3445]: Traceback (most recent call last):
sept. 20 18:22:06 jupyterlab bash[3445]:   File "/opt/tljh/user/lib/python3.7/runpy.py", line 193, in _run_module_as_main
sept. 20 18:22:06 jupyterlab bash[3445]:     "__main__", mod_spec)
sept. 20 18:22:06 jupyterlab bash[3445]:   File "/opt/tljh/user/lib/python3.7/runpy.py", line 85, in _run_code
sept. 20 18:22:06 jupyterlab bash[3445]:     exec(code, run_globals)
sept. 20 18:22:06 jupyterlab bash[3445]:   File "/home/jupyter-pitdu53/.local/lib/python3.7/site-packages/robotkernel/kernel.py", line 11, in <module>
sept. 20 18:22:06 jupyterlab bash[3445]:     from robotkernel.executors import execute_python
sept. 20 18:22:06 jupyterlab bash[3445]:   File "/home/jupyter-pitdu53/.local/lib/python3.7/site-packages/robotkernel/executors.py", line 17, in <module>
sept. 20 18:22:06 jupyterlab bash[3445]:     from robotkernel.utils import data_uri
sept. 20 18:22:06 jupyterlab bash[3445]:   File "/home/jupyter-pitdu53/.local/lib/python3.7/site-packages/robotkernel/utils.py", line 7, in <module>
sept. 20 18:22:06 jupyterlab bash[3445]:     from lunr.builder import Builder
sept. 20 18:22:06 jupyterlab bash[3445]:   File "/home/jupyter-pitdu53/.local/lib/python3.7/site-packages/lunr/__init__.py", line 5, in <module>
sept. 20 18:22:06 jupyterlab bash[3445]:     from lunr.__main__ import lunr
sept. 20 18:22:06 jupyterlab bash[3445]:   File "/home/jupyter-pitdu53/.local/lib/python3.7/site-packages/lunr/__main__.py", line 4, in <module>
sept. 20 18:22:06 jupyterlab bash[3445]:     from past.builtins import basestring
sept. 20 18:22:06 jupyterlab bash[3445]: ModuleNotFoundError: No module named 'past'

I have never seen that before, but if it is really “lunr” Python package breaking things, its current master seem to have dropped Python 2 support and at least that error cannot happen anymore.
Maybe
pip install git+https://github.com/yeraydiazdiaz/lunr.py@master

From a jupyter terminal :
(base) jupyter-pitdu53@jupyterlab:~$ pip install git+https://github.com/yeraydiazdiaz/lunr.py@master
Defaulting to user installation because normal site-packages is not writeable
Collecting git+https://github.com/yeraydiazdiaz/lunr.py@master
  Cloning https://github.com/yeraydiazdiaz/lunr.py (to revision master) to /tmp/pip-req-build-hnxboncv
  Running command git clone -q https://github.com/yeraydiazdiaz/lunr.py /tmp/pip-req-build-hnxboncv
Requirement already satisfied (use --upgrade to upgrade): lunr==0.5.8 from git+https://github.com/yeraydiazdiaz/lunr.py@master in ./.local/lib/python3.7/site-packages
Building wheels for collected packages: lunr
  Building wheel for lunr (setup.py) ... done
  Created wheel for lunr: filename=lunr-0.5.8-py2.py3-none-any.whl size=34695 sha256=b938d76b3ee266fe5dfe46b65c4fe6e835852ae7c686a19349a963242fb63a25
  Stored in directory: /tmp/pip-ephem-wheel-cache-jsph6cs_/wheels/88/01/7b/233afaae653e5e4c68d4893d37b9a4966f31cf16aaf51a0e6d
Successfully built lunr

Then reboot, but same output.

For the module past, I search python past module here https://pypi.org/project/past/
from jupyter terminal :
(base) jupyter-pitdu53@jupyterlab:~$ pip install future
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: future in /usr/bin/anaconda3/lib/python3.7/site-packages (0.18.2)

Hm.... you have a lot of different python environments that are interacting
with each other (I see at least 3, plus potentially a user site
packages).... i guess if you can conda list and pip freeze on each of
the offending environments, that might help shed some light on it... if at
all possible, try and do everything with pip OR conda, the mix of the two
can be very unpredictable... and hot installing from master can make
everything go haywire...

With a jupyter terminal with pip freeze I can see :
future==0.18.2
lunr==0.5.8
robotframework==3.2.2
robotkernel==1.4.0

Did you want specific items or the full output ?
With conda list there is no robot* item in the list.

with a jupyter terminal :
(base) jupyter-pitdu53@jupyterlab:~$ python
Python 3.7.6 (default, Jan  8 2020, 19:59:22)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import lunr
>>> import past
>>> from past.builtins import basestring
>>> exit()

I'm lost but this is two differents environnement from the robot kernel and my jupyter terminal ?

@HoudayerPierre And journalctl -u jupyter-pitdu53 still shows robotkernel crashing with a Python stacktrace?
And yes, I am still puzzled too, because I still have never seen that error before.
Have you already tried creating a new clean Conda Python 3 environment and installing just robotkernel with pip? I used to install robotkernel with miniconda and pip and it used to just work.

Yes same stacktrace as before with the error in past module.
What did you recommand to do because in the terminal I tried :
sudo jupyter labextension uninstall jupyterlab_robotmode
sudo jupyter labextension uninstall @jupyter-widgets/jupyterlab-manage
pip uninstall robotkernel

and followed the readme with (just added sudo) :
pip install robotkernel
sudo jupyter labextension install jupyterlab_robotmode
sudo jupyter labextension install @jupyter-widgets/jupyterlab-manage

But it should not be possible to get the same exception with pip install git+https://github.com/yeraydiazdiaz/lunr.py@master --upgrade, because master no longer imports past... :eyes:
That said, the most probably issue, as Nick noticed, comes from the Python setup in the JupyterHub node in question. In this issue we have seen that the environment has at least

a custom  Python installation at /opt/tljh/user/lib/python3.7 (maybe has /opt/tljh/user/lib/python3.7/site-packages/)
conda Python at /usr/bin/anaconda3/lib/python3.7/site-packages
userspace packages at /home/jupyter-pitdu53/.local/lib/python3.7/site-packages

With a clean setup, I believe, we should see only one of these paths in logs / stacktraces.
I would expect making a new clean Python virtualenv / Conda environment for robotkernel and pip installing robotkernel there to work, but I don't know how it should be configured for JupyterHub to launch robotkernel from that environment :thinking:

Yes if i use --upgrade : pip install git+https://github.com/yeraydiazdiaz/lunr.py@master --upgrade :
The kernel is now on idle.


Hannah user guide

Codecov Report

Merging #120 (1e96609) into master (28719e6) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #120   +/-   ##
=========================================
  Coverage     56.88%   56.88%
  Complexity      482      482
=========================================
  Files           111      111
  Lines          1976     1976
  Branches        208      208
=========================================
  Hits           1124     1124
  Misses          775      775
  Partials         77       77

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 28719e6...1e96609. Read the comment docs.


Add redirectURI for single page application deployment in azure using Microsoft Graph API and Az rest command.

az feedback auto-generates most of the information requested below, as of CLI version 2.0.62

Describe the bug
Get error in deployment when adding SPA redirectURIs using microsoft Graph API.
command used:
az rest --method PATCH --uri 'https://graph.microsoft.com/v1.0/applications/' --headers 'Content-Type=application/json' --body '{"spa":{"redirectUris":["https:"]}}'
error:
##[error]WARNING: The underlying Active Directory Graph API will be replaced by Microsoft Graph API in a future version of Azure CLI. Please carefully review all breaking changes introduced during this migration: https://docs.microsoft.com/cli/azure/microsoft-graph-migration
this is causing the deployment to fail. I get this error intermittently.
To Reproduce
Add redirecturi to single page application using az command and deploy using azure devops pipeline.
Expected behavior
I am already using Microsoft Graph DB and redirectURIs instead of replyurl as mentioned in error. So I except  deployment should completed without any warnings and error.
Environment summary
I am deploying using azure devops and default az version.

@jiasli for awareness

WARNING: The underlying Active Directory Graph API will be replaced by Microsoft Graph API in a future version of Azure CLI. Please carefully review all breaking changes introduced during this migration: https://docs.microsoft.com/cli/azure/microsoft-graph-migration

This warning is only added for az ad and az role commands (https://github.com/Azure/azure-cli/pull/21302). The warning won't be shown for az rest. It is also only a warning, not an error.
If you see any error with az rest, please share the corresponding error message.
spa support in az ad app create/update is currently not included in the Microsoft Graph migration:

https://docs.microsoft.com/en-us/graph/api/resources/application?view=graph-rest-1.0
https://github.com/Azure/azure-cli/issues/12946

We will consider this as a feature request.

👍 for spa support request.

Tracked by https://github.com/Azure/azure-cli/issues/14880


gruvbox-plus-icons: 5.5.0 -> 6.0.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/SylEleuth/gruvbox-plus-icon-pack/releases.
meta.description for gruvbox-plus-icons is: Icon pack for Linux desktops based on the Gruvbox color scheme
meta.homepage for gruvbox-plus-icons is: https://github.com/SylEleuth/gruvbox-plus-icon-pack
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 6.0.0 with grep in /nix/store/fpqpi8szwzprsydx6jy8j8gca8rlxl2q-gruvbox-plus-icons-6.0.0
found 6.0.0 in filename of file in /nix/store/fpqpi8szwzprsydx6jy8j8gca8rlxl2q-gruvbox-plus-icons-6.0.0

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

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

gruvbox-plus-icons

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/fpqpi8szwzprsydx6jy8j8gca8rlxl2q-gruvbox-plus-icons-6.0.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

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

Or:
nix build github:r-ryantm/nixpkgs/96b596a11467de0adf356a22f4a51dddaa6f546d#gruvbox-plus-icons

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/fpqpi8szwzprsydx6jy8j8gca8rlxl2q-gruvbox-plus-icons-6.0.0
ls -la /nix/store/fpqpi8szwzprsydx6jy8j8gca8rlxl2q-gruvbox-plus-icons-6.0.0/bin

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

x86_64-linux

:white_check_mark: 1 package built:

gruvbox-plus-icons

Maintainer pings
cc @eureka-cpu @RGBCube for testing.

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

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

There were some changes pushed recently that fix some breakage and some incorrect icons. The hash may have changed, not sure.
See SylEleuth/gruvbox-plus-icon-pack#112 (comment)

It seems a new release was cut with the aforementioned fixes, v6.0.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/SylEleuth/gruvbox-plus-icon-pack/releases.
meta.description for gruvbox-plus-icons is: Icon pack for Linux desktops based on the Gruvbox color scheme
meta.homepage for gruvbox-plus-icons is: https://github.com/SylEleuth/gruvbox-plus-icon-pack
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 6.0.2 in filename of file in /nix/store/8j6sxw96d5x0f5z0p8qiwhxzkdfpx21i-gruvbox-plus-icons-6.0.2

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

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

gruvbox-plus-icons

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/8j6sxw96d5x0f5z0p8qiwhxzkdfpx21i-gruvbox-plus-icons-6.0.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

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

Or:
nix build github:r-ryantm/nixpkgs/4ffe23ab76d19570265e0fd029e03be9ef8b8b5b#gruvbox-plus-icons

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/8j6sxw96d5x0f5z0p8qiwhxzkdfpx21i-gruvbox-plus-icons-6.0.2
ls -la /nix/store/8j6sxw96d5x0f5z0p8qiwhxzkdfpx21i-gruvbox-plus-icons-6.0.2/bin

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

x86_64-linux

:white_check_mark: 1 package built:

gruvbox-plus-icons

Maintainer pings
cc @eureka-cpu @RGBCube for testing.

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

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

This would be nice to have, any ETA on the merge?

There were some changes pushed recently that fix some breakage and some incorrect icons. The hash may have changed, not sure.
See SylEleuth/gruvbox-plus-icon-pack#112 (comment)

v6.0.2 Seems to work for me, built just fine.

There were some changes pushed recently that fix some breakage and some incorrect icons. The hash may have changed, not sure.

See SylEleuth/gruvbox-plus-icon-pack#112 (comment)

v6.0.2 Seems to work for me, built just fine.

This was in reference to v6.0.0

There were some changes pushed recently that fix some breakage and some incorrect icons. The hash may have changed, not sure.

See SylEleuth/gruvbox-plus-icon-pack#112 (comment)

v6.0.2 Seems to work for me, built just fine.

This was in reference to v6.0.0

Ooh alright, understood


The response body contains more helpful information than the message

@wyaeld
This will cause the error's message to contain the message from docker. This is what you are expecting?

Released in v1.21.1

yep, looks good, solves the issue


bcache: add priorityStats flag

bcache: add priorityStats flag
This commit adds priorityStats flag,
which is used when we need priority stats info.
The reason for this flag to be false is that
collecting of priority stats might be expensive
as described here:
https://github.com/prometheus/node_exporter/issues/1593
Signed-off-by: Aleksei Zakharov<EMAIL_ADDRESS>

Yes, I was thinking something similar, splitting up the methods so you can call them more granularly, rather than establish pattern of a lot of params across this library.

@pgier , thanks!
How about make them wrappers?


FIRECERT-1789: [FCS] - Use window values for language

Description
Enter a detailed description of the PR here, including the nature and purpose of the changes.
JIRA Ticket
https://ccp.sys.comcast.net/browse/FIRECERT-1789
Additional Info (Test steps / Steps to reproduce etc.)
Details on how to test the feature

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.3 out of 4 committers have signed the CLA.:white_check_mark: parag-pv:white_check_mark: jmeier204:white_check_mark: SnehalP251:x: spatil890_comcastspatil890_comcast seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Committed changes with Incorrect userId


[REPL] Add coverage for property wrappers in top-level code.

They shouldn't crash the REPL, but emit a sensible error.
rdar://problem/52655421

@swift-ci test and merge

@swift-ci test and merge


I'm getting 3 connections from a client with different ports

Describe what you would like to know or do
I'm running Java WebSocket server and using https://github.com/pladaria/reconnecting-websocket as React-Native WebSocket Client. But when started server initially it get 3 connections from same IP with 3 different ports.
Describe the solution you'd considered
Is there way only to keep recent port if from same IP rather than 3 connections from same IP?
Additional context
Java Swing Application as server and React-Native Android client.

AFAIK, it is possible with a simple change. WebSocketServer class holds a Collection of connections, which is a HashSet by default. Since HashSet doesn't allow duplicates, you can solve your problem by overriding both equals method and the hashCode method in WebSocketImpl.java file.
You can get the InetSocketAddress object of a WebSocket object by calling getRemoteAddress on it.
So, in the equals method, you have to compare if these two WebSocket objects have the same hostname.
And your hashCode method should return a value based on the hostname value of InetSocketAddress.

Is this issue solved for you?
Best regards,
Marcel

Closing this question as answered.
Best regards,
Marcel


Update compliance-extensibility.md

Updating this to reflect new Graph Connector API related capabilities as they become part of our compliance ecosystem.

@HammadRajjoubMSFT PR merged. Changes will be live tomorrow around noon.


⚠ Bofrost.at has degraded performance

In 6aa155a, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2067 ms

Resolved: Bofrost.at performance has improved in bd3c31f.


Input/Output Error when trying to cd into Windows Symlink directory points to a mapped network share

Windows Build Version 10.0.16299.125

What you're doing and what's happening: I am trying to cd into a symlink created in my user's documents folder (C:) that is linking to a network drive (Z:). The symlink is created successfully and works 100% from the Windows OS but whenever I try to cd into that folder under /mnt/c/Users/.../Documents/ in the Ubuntu instance it gives me the error -bash: cd: NetworkCodeDrive: Input/output error

What's wrong / what should be happening instead: Unless I missed something, I would think that this would allow you to cd into the directory and browse the files just as if they were on the C: drive.

Does anyone have any pointers or a valid solution?
Thanks.

Is there an config file like /etc/fstab so that we can specify the path manually?
It's better than we can't access it at all.

Almost 3 years later and I'm still fighting with this (and losing, painfully).
All I want to do is mount a music folder containing my music library to my windows network, then mount that in a Docker container (Airsonic).
So far, impossible.
If I simply mount the shared folder within WSL (ubuntu) using drvfs/cifs, and then bind mount that mount to my container, I can see all the shared files from within WSL/ubuntu itself using ls, but viewing the contents of the directory from within the container shows an empty dir.
i.e.
sudo mount -t cifs -o username=yourname,domain=yourworkgroup //<IP_ADDRESS>/Music /media/shared/music
(I've also tried with drvfs, as well as adding vers=1.0)
Oddly, if the container creates a files that gets saved to that mounted dir, I can see the files in windows, but nothing changed in the WSL dir.
If I create a symlink in Windows:
mklink /d "F:\Airsonic\Music" "\\<IP_ADDRESS>\Music"
and then mount it in a container:
- /mnt/f/Airsonic/Music:/music
I can see the shared files fine within windows, but trying to view them within WSL just gives me:

ls: cannot read symbolic link 'Music': Input/output error

This is WAY too much of a hassle than it should be, and I still haven't found a way to get it working.

I believe I have just run into a similar version of the same issue when using imdisk's mount point feature. When I use this feature I end up with a mounted folder whose target is \Device\ImDiskN\. This folder is then impossible to interact with in WSL with the same error as op.

I believe I have just run into a similar version of the same issue when using imdisk's mount point feature. When I use this feature I end up with a mounted folder whose target is \Device\ImDiskN\. This folder is then impossible to interact with in WSL with the same error as op.

Improving our support here is on the backlog.

@SvenGroot Can you  put it on the frontlog?  It's been 4 years now.  ;)
I have a TB external drive that I store my music and my eBooks on that I share with t he whole network; I want to use eBook library and music library containers now for them, but ....
Seems like a fairly common case scenario.

Bump. I'm also affected by this bug. It's a real bummer.


Android app won't run after deleting node_modules folder.  pen_spark

Summary
I deleted the node_modules folder in my React Native project and tried to run the Android app with maps. I'm getting this error: "Execution failed for task ':react-native-maps:compileDebugJavaWithJavac'. I even tried using different versions of react-native-maps: both ^1.11.1 and ^1.15.6.
I was able to fix the "Execution failed for task ':react-native-maps:compileDebugJavaWithJavac'" error by:

Restoring the node_modules folder from a backup.
Updating the react-native-maps package to a compatible version (possibly the original version used).
Running the Android project again.

Reproducible sample code
Note: Recompile with -Xlint:deprecation for details.
C:\_source\everlights.mobileapp.v4\node_modules\react-native-maps\android\src\main\java\com\rnmaps\maps\MapUIBlock.java:7: error: package com.facebook.react.fabric.interop does not exist
import com.facebook.react.fabric.interop.UIBlockViewResolver;
                                        ^
C:\_source\everlights.mobileapp.v4\node_modules\react-native-maps\android\src\main\java\com\rnmaps\maps\MapUIBlock.java:64: error: package com.facebook.react.fabric.interop does not exist
interface UIBlockInterface extends UIBlock, com.facebook.react.fabric.interop.UIBlock  {}
                                                                             ^
C:\_source\everlights.mobileapp.v4\node_modules\react-native-maps\android\src\main\java\com\rnmaps\maps\MapUIBlock.java:35: error: cannot find symbol
    public void execute(UIBlockViewResolver uiBlockViewResolver) {
                        ^
  symbol:   class UIBlockViewResolver
  location: class MapUIBlock
C:\_source\everlights.mobileapp.v4\node_modules\react-native-maps\android\src\main\java\com\rnmaps\maps\MapUIBlock.java:39: error: cannot find symbol
    private void executeImpl(NativeViewHierarchyManager nvhm, UIBlockViewResolver uiBlockViewResolver) {
                                                              ^
  symbol:   class UIBlockViewResolver
  location: class MapUIBlock
C:\_source\everlights.mobileapp.v4\node_modules\react-native-maps\android\src\main\java\com\rnmaps\maps\MapUIBlock.java:56: error: cannot find symbol
            ((FabricUIManager) uiManager).addUIBlock(this);
                                         ^
  symbol:   method addUIBlock(MapUIBlock)
  location: class FabricUIManager
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
5 errors

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':react-native-maps:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

Steps to reproduce
I deleted the node_modules folder in my React Native project and tried to run the Android app with maps. I'm getting this error: "Execution failed for task ':react-native-maps:compileDebugJavaWithJavac'. I even tried using different versions of react-native-maps: both ^1.11.1 and ^1.15.6.
I was able to fix the "Execution failed for task ':react-native-maps:compileDebugJavaWithJavac'" error by:

Restoring the node_modules folder from a backup.
Updating the react-native-maps package to a compatible version (possibly the original version used).
Running the Android project again.

Expected result
App run sucessfully
Actual result
we got error

React Native Maps Version
^1.11.1 and ^1.15.6.
What platforms are you seeing the problem on?
Android
React Native Version
0.71.8
What version of Expo are you using?
Not using Expo
Device(s)
Any android device
Additional information
react: 18.2.0 => 18.2.0
react-native: 0.71.8 => 0.71.8

I'm confused why would you expect RN to work when you delete the node_modules folder?

After deleted then again nam install then try to run in android and get error
On 11 Jul 2024, at 5:57 PM, Roman Mbwasi @.***> wrote:
I'm confused why would you expect RN to work when you delete the node_modules folder?
—
Reply to this email directly, view it on GitHub https://github.com/react-native-maps/react-native-maps/issues/5116#issuecomment-2222804433, or unsubscribe https://github.com/notifications/unsubscribe-auth/BJZOGWXFLGA4H74MZC5KCE3ZLZ225AVCNFSM6AAAAABKWTPOXWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMRSHAYDINBTGM.
You are receiving this because you authored the thread.

Thanks. It is working on "react-native-maps": "^1.11.3” version
On 11 Jul 2024, at 10:40 PM, Roman Mbwasi @.***> wrote:
I think its the same issue here so one of those solutions should work #5079 https://github.com/react-native-maps/react-native-maps/issues/5079 I think the main issue is using ^ in you versions it automatically updates to the latest minor version so remove the ^ if that doesn't work read through the thread.
—
Reply to this email directly, view it on GitHub https://github.com/react-native-maps/react-native-maps/issues/5116#issuecomment-2223467358, or unsubscribe https://github.com/notifications/unsubscribe-auth/BJZOGWUMG5R5EZVYWAKYIJTZL237PAVCNFSM6AAAAABKWTPOXWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMRTGQ3DOMZVHA.
You are receiving this because you authored the thread.

Now Not working on 1.11.3
On 12 Jul 2024, at 11:52 AM, Ashvin @.***> wrote:
Thanks. It is working on "react-native-maps": "^1.11.3” version
On 11 Jul 2024, at 10:40 PM, Roman Mbwasi @.***> wrote:
I think its the same issue here so one of those solutions should work #5079 https://github.com/react-native-maps/react-native-maps/issues/5079 I think the main issue is using ^ in you versions it automatically updates to the latest minor version so remove the ^ if that doesn't work read through the thread.
—
Reply to this email directly, view it on GitHub https://github.com/react-native-maps/react-native-maps/issues/5116#issuecomment-2223467358, or unsubscribe https://github.com/notifications/unsubscribe-auth/BJZOGWUMG5R5EZVYWAKYIJTZL237PAVCNFSM6AAAAABKWTPOXWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMRTGQ3DOMZVHA.
You are receiving this because you authored the thread.


the modules of "node-sass" can't be installed 。

which python version for it ？ why I can't install the modules of "node-sass"

This should work, try installing directly with npm on the command line, what do it say?
Also what nodejs, npm do you use?
Greetings Damien


fix: /info docs test expectation

the value of "idpDefinitions.*" of /info response is in reality a String, not an array. Here is how it looks like:

 "idpDefinitions": {
    "testsaml-redirect-binding": "http://localhost:8080/uaa/saml/discovery?returnIDParam=idp&entityID=cloudfoundry-saml-login&idp=testsaml-redirect-binding&isPassive=true",
    "testsaml-post-binding": "http://localhost:8080/uaa/saml/discovery?returnIDParam=idp&entityID=cloudfoundry-saml-login&idp=testsaml-post-binding&isPassive=true"
  },

which is consistent with the description of "idpDefinitions" field: "A list of alias/url pairs of SAML IDP providers configured. Each url is the starting point to initiate the authentication process for the SAML identity provider."

previously, this test is passing only because the test uaa.yml used in this test contains no IDP configs; but once you input some valid IDP configs, this test would fail since the value is actually a String.

also clarify the description text

the value of "idpDefinitions.*" of /info response is in reality a String, not an array. Here is how it looks like:

 "idpDefinitions": {
    "testsaml-redirect-binding": "http://localhost:8080/uaa/saml/discovery?returnIDParam=idp&entityID=cloudfoundry-saml-login&idp=testsaml-redirect-binding&isPassive=true",
    "testsaml-post-binding": "http://localhost:8080/uaa/saml/discovery?returnIDParam=idp&entityID=cloudfoundry-saml-login&idp=testsaml-post-binding&isPassive=true"
  },

which is consistent with the description of "idpDefinitions" field: "A list of alias/url pairs of SAML IDP providers configured. Each url is the starting point to initiate the authentication process for the SAML identity provider."

previously, this test is passing only because the test uaa.yml used in this test contains no IDP configs; but once you input some valid IDP configs, this test would fail since the value is actually a String.
also clarify the description text

As always, if you have a deeper look into old UAA behavior. I find SAML links in "uaac info" (JSON output)  , but on OAUTH.
After thinking, I would like to know if you have use /info in your products ? I think SAP never has used it really, but for us it was always a problem, therefore we introduced account chooser etc... (@torsten-sap , @tack-sap correct ?)
The point is, in /info I also see entityID, which is only for SAML. Why no OAUITH / OIDC issuer ?
In general I would omit such info, because we want in future a UAA without SAML SP , e.g. https://github.com/cloudfoundry/uaa/issues/2741


JavaDoc was modified adding {@code} around pre formatted text so there…

is no need to use HTML escape sequences.

Coverage increased (+0.006%) to 95.015% when pulling 79c969e93e483eb4c1e9532e0f9cdf8e71137951 on verhas:functions-vp-20200203-4 into 3ce3b27dbd579a918e97e1fb09e9b0153cc71a60 on apache:master.


Fixes and cleanup

Codecov Report

Merging #7 into master will not change coverage.
The diff coverage is 50.00%.

@@           Coverage Diff           @@
##           master       #7   +/-   ##
=======================================
  Coverage   39.21%   39.21%
=======================================
  Files           4        4
  Lines         102      102
  Branches       23       23
=======================================
  Hits           40       40
  Misses         62       62

Impacted Files
Coverage Δ

src/App.vue
0.00% <ø> (ø)

src/media.js
0.00% <ø> (ø)

src/components/LightBox.vue
43.47% <50.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2dc719c...900adf3. Read the comment docs.


lg is not defined

click on images causes:
laravel-filemanager:528 Uncaught ReferenceError: lg is not defined

Please post your screenshots here, thanks.

script.blade.php line 389: $.prompt(lg.fck_select_integration);

Are you using the standalone button? I have encountered this error in that situation. In my scenario, after I initialized the button with $('#lfm').filemanager('image'); the error disappeared.
Here's what I had in my view:
Browse

$('#lfm').filemanager('image');

Hello,
I have exactly the same issue, i cannot view the file.
ReferenceError: lg is not defined when i click on the file name.
Tested on Firefox and Chrome.

How to fix it ?

I don't know how to fix problem, I decided to use laravel built in file manager :(

@bbryan0904 Did you integrate the standalone button successfully?
I want to know if the error still happens.

Updated : I figured this out!
This error happens when no WYSIWYG editor is found.
For example, open a new tap and type in the route of file manager will then show the error.
I will solve this in v1.6.2 .

v1.6.2 were release today.
Close issue for now.


73 test failure in Firefox with WebGL Validation turned on.

A half dozen Sun rendering tests fail and then ~50 or so ScreenSpaceEventHandler related tests.
I think it's okay to ship 1.21 with these validation-only failures, but I'd like to hear someone agree with that before tagging the 1.21 release.

I tested all of the Sandcastle examples in Firefox and everything works fine.  Since everything is fine when running without webgl validation, I think we're good for 1.21, but we should definitely look at this for 1.22.

Agreed.  OK for 1.21.

Do you still see 73? I see 9 and they are all Scene tests.

With the latest Firefox and master, I'm now seeing 10 failures.  9 in Scene and one in OrientedBoundingBox.  I'm also getting AfterAll RuntimeError: WebGL Error: CONTEXT_LOST_WEBGL lost: deleteTexture([object WebGLTexture]) at the top of the test run.

Not required for 1.23 tomorrow.  Could be worth a look at the code sprint.

Not important enough for 1.23.

I only found one test failure left while doing the 1.24 release

For the 1.26 release I'm seeing 11 failures:
Scene/WebMapServiceImageryProvider pickFeatures works with GeoJSON responses
Scene/LabelCollection can render after adding a label
Scene/Scene debugShowGlobeDepth
Scene/Scene opaque/translucent render order (1)
Scene/Scene opaque/translucent render order (2)
Scene/Scene renders fast path with no translucent primitives
Scene/Scene renders with OIT and without FXAA
Scene/Scene renders map twice when in 2D
Scene/Scene pickPosition
Scene/Scene pickPosition returns undefined when useDepthPicking is false
Scene/Scene pickPosition throws without windowPosition
Majority of the errors are
WebGL Error: INVALID_OPERATION: drawElements or
WebGL Error: OUT_OF_MEMORY: drawElements

I'm still getting similar failures to @bagnell for 1.27

I can't run the WebGL validation tests without it crashing Firefox (51.0.1 64-bit)
The Scene specs seem to be causing the problem.  Running the specs on the other folders works fine

I can't run the WebGL validation tests without it crashing Firefox (51.0.1 64-bit)
The Scene specs seem to be causing the problem. Running the specs on the other folders works fine

Covered in #4942

Cross posting here. @hpinkos The culprit test/line is https://github.com/AnalyticalGraphicsInc/cesium/blob/master/Specs/Scene/SceneSpec.js#L296.
If you exclude this test, you should be able to run the tests in firefox just fine.

This now crashes the Firefox tab completely.

I got these 8 test failures when prepping the 1.43 release

Scene/Camera computeViewRectangle when zoomed in
Scene/Camera computeViewRectangle when zoomed in to IDL
DataSources/CzmlDataSource checks validation document
Scene/Expression evaluates exp function
Core/OrientedBoundingBox distanceSquaredTo
Scene/Vector3DTilePoints renders a point
Scene/Vector3DTilePoints renders a point with an image
Scene/PointCloud3DTileContent clipping planes union regions

Most of them looked like precision errors.  Like Expected 16.000000000000014 to equal epsilon 16, 1e-14.

I'm still seeing ~50 test failures with validation on for the 1.45 release.

Actually, I'm getting 48 failures without validation, so there's a different problem here.


hotfix/chromeTabs -> dev

This change is

Reviewed 4 of 4 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


Adds timestamps to each log

It will provide the way to check the latency of each steps.

Hi! I see that this is useful, but I like how lightweight this middleware has been so far. I would therefore ask you to modify the code to accept fecha as an optionalDependency if that's ok for you. It should be fairly straight forward: Adding a try/catch around fecha and test if fecha has been initialized in log. If not, diff could be an empty string and then output shouldn't change at all, right?

Or wait, I will just do it myself right now :)

Thanks for merging!
optionalDependency might be fine. How about this?
const d = new Date()
const z = (n, w) => ('0'.repeat(w) + n).slice(-1 * w) // zero padding
const time = `${z(d.getSeconds(), 2)}.${z(d.getMilliSeconds(), 3)}`


confusing of jquery-ui

I'm confusing of the depends on jquery-ui. Is there any usage about it?
It is can be removed?
Thanks.

Hi, thanks for issue. Jquery-ui asset need for selectize plugins, for example drag_drop
For example:
<?php

$values = ['test', 'test2'];

echo \yii2mod\selectize\Selectize::widget([
    'name' => 'tag-selectize',
    'options' => [
        'data-data' => $values ? \yii\helpers\Json::encode($values) : null // Set default values
    ],
    'pluginOptions' => [
        // define list of plugins
        'plugins' => ['drag_drop', 'remove_button'],
        'persist' => false,
        'createOnBlur' => true,
        'create' => true
    ]
]);
?>

Without jquery-ui dependency this widget doesn't be displayed.

Thanks for your reply.
But If the user does not use the dnd feature, I think it should be not loaded.

Can you create PR for this feature?

My pleasure.


Timeouts on Vercel deployments

I'm using the following configuration of handling webhooks. While it's working in development (API route build time is under 1.5s), Vercel constantly reports function timeout without response. Some of the commands are using image send from static host with ctx.replyWithPhoto. The std/http method is the only one working for me, neither http/https, not next-js are not working because of different issues
import { Context as GrammyContext, SessionFlavor } from "grammy";
import { Conversation, ConversationFlavor } from "@grammyjs/conversations";

export interface SessionData {
  // session fields types
}

export type Context = GrammyContext &
  ConversationFlavor &
  SessionFlavor<SessionData>;
export type ConversationContext = Conversation<Context>;

export const POST = async (req: NextRequest, ...args: any[]) => {
  const { data, error } = await supabase
    .from("companies")
    .select("bot_token")
    .eq("slug", req.headers.get("host")!.split(".")[0])
    .single();

  if (error) {
    return NextResponse.json({ ...error }, { status: 500 });
  }

  const token = data.bot_token;

  const middleware = new Composer<Context>();

  middleware.command("start", start);
  middleware.command("request", request);

  const bot = new Bot<Context>(token);

  bot.use(
    session({
      initial: () => ({
        ...
      }),
      storage: enhanceStorage({
        storage: freeStorage(token),
        millisecondsToLive: 10 * 60 * 1000,
      }),
    })
  );

  // conversations, commands and handlers used here

  bot.catch((err) => {
    console.error("Error:", err);
  });

  const handleUpdate = webhookCallback(bot, "std/http", "throw", 15_000);

  return handleUpdate(req, ...args);
};

Any suggestions or recommendations?
Thanks in advance!

Is it a typo that you never register the composer instance called middleware?
Either way, this should not affect the reported problem. If you don't register it, the middleware tree will just complete faster.
As a first step, I would try to simplify the code so you can narrow down where the problem is. Do you use serverless functions or edge functions? The correct adapter is different for the two runtimes. Did you try the minimal example for vercel from our example bots repository at https://github.com/grammyjs/examples/tree/main/setups, or did you follow the guide at https://grammy.dev/hosting/vercel? What changes if you use a minmal example with a single bot instance, rather than creating the bot on the fly? (I don't think it's related to that, but this just means that you can throw it out in order to pinpoint the issue.)

Hey @KnorpelSenf! I'm using Serverless Functions for API routes. I also tried to simplify the implementation to use only start command which responds with ctx.replyWithPhoto
Regarding the middleware it's not a typo, I omitted some code (don't know why, actually). Here is the full route
import { NextRequest, NextResponse } from "next/server";

import {
  Bot,
  Composer,
  webhookCallback,
  session,
  enhanceStorage,
} from "grammy";
import { conversations, createConversation } from "@grammyjs/conversations";
import { freeStorage } from "@grammyjs/storage-free";

import { handlers } from "@/bot/handlers";

import { start } from "@/bot/commands/start";
import { request } from "@/bot/commands/request";
import { request as requestConversation } from "@/bot/conversations/request";
import { details } from "@/bot/callbacks/details";

import { supabase } from "@/utils/supabase";

import type { Context } from "@/bot/types";

export const POST = async (req: NextRequest, ...args: any[]) => {
  const { data, error } = await supabase
    .from("companies")
    .select("bot_token")
    .eq("slug", req.headers.get("host")!.split(".")[0])
    .single();

  if (error) {
    return NextResponse.json({ ...error }, { status: 500 });
  }

  const token = data.bot_token;

  const middleware = new Composer<Context>();

  middleware.command("start", start);
  middleware.command("request", request);

  const bot = new Bot<Context>(token);

  bot.use(
    session({
      initial: () => ({
        name: "",
        slug: "",
        phone: "",
      }),
      storage: enhanceStorage({
        storage: freeStorage(token),
        millisecondsToLive: 10 * 60 * 1000,
      }),
    })
  );

  bot.use(conversations());
  bot.use(createConversation(requestConversation, "request"));

  bot.use(handlers);
  bot.use(middleware);

  bot.callbackQuery("request", (ctx) => ctx.conversation.enter("request"));
  bot.callbackQuery("details", details);

  bot.on("message", async (ctx) => {
    await ctx.reply("Я поки що не знаю що з цим робити");
  });

  bot.catch((err) => {
    console.error("Error:", err);
  });

  const handleUpdate = webhookCallback(bot, "std/http", "throw", 15_000);

  return handleUpdate(req, ...args);
};

I also tried to log every step with Sentry and can see that the latest log is displayed in my console. So, my assumption is that something goes wrong in webhookCallback
import { NextRequest, NextResponse } from "next/server";

import {
  Bot,
  Composer,
  webhookCallback,
  session,
  enhanceStorage,
} from "grammy";
import { conversations, createConversation } from "@grammyjs/conversations";
import { freeStorage } from "@grammyjs/storage-free";
import * as Sentry from "@sentry/nextjs"

import { handlers } from "@/bot/handlers";

import { start } from "@/bot/commands/start";
import { request } from "@/bot/commands/request";
import { request as requestConversation } from "@/bot/conversations/request";
import { details } from "@/bot/callbacks/details";

import { supabase } from "@/utils/supabase";

import type { Context } from "@/bot/types";

export const POST = async (req: NextRequest, ...args: any[]) => {
  const { data, error } = await supabase
    .from("companies")
    .select("bot_token")
    .eq("slug", req.headers.get("host")!.split(".")[0])
    .single();

  if (error) {
    return NextResponse.json({ ...error }, { status: 500 });
  }

  const token = data.bot_token;

  Sentry.captureMessage('middleware = new Composer')
  const middleware = new Composer<Context>();
  Sentry.captureMessage('middleware = new Composer done')

  Sentry.captureMessage('middleware Composer use')
  middleware.command("start", start);
  middleware.command("request", request);
  Sentry.captureMessage('middleware Composer use done')

  Sentry.captureMessage(`new Bot: ${token}`)
  const bot = new Bot<Context>(token);
  Sentry.captureMessage('new Bot done')

  Sentry.captureMessage('bot.use')
  bot.use(
    session({
      initial: () => ({
        name: "",
        slug: "",
        phone: "",
      }),
      storage: enhanceStorage({
        storage: freeStorage(token),
        millisecondsToLive: 10 * 60 * 1000,
      }),
    })
  );
  Sentry.captureMessage('bot.use done')

  Sentry.captureMessage('bot.use conversations')
  bot.use(conversations());
  bot.use(createConversation(requestConversation, "request"));
  Sentry.captureMessage('bot.use conversations done')

  Sentry.captureMessage('bot.use handlers')
  bot.use(handlers);
  bot.use(middleware);
  Sentry.captureMessage('bot.use handlers done')

  Sentry.captureMessage('bot.callbackQuery')
  bot.callbackQuery("request", (ctx) => ctx.conversation.enter("request"));
  bot.callbackQuery("details", details);
  Sentry.captureMessage('bot.callbackQuery done')

  Sentry.captureMessage('bot.message')
  bot.on("message", async (ctx) => {
    await ctx.reply("Я поки що не знаю що з цим робити");
  });
  Sentry.captureMessage('bot.message done')

  bot.catch((err) => {
    Sentry.captureException(err);

    return NextResponse.json({ ...err }, { status: 500 });
  });

  Sentry.captureMessage('handleUpdate')
  const handleUpdate = webhookCallback(bot, "std/http", "throw", 15_000);
  Sentry.captureMessage('handleUpdate done')

  return handleUpdate(req, ...args);
};

Ah well, we do not have support for next/server yet. The next-js adapter is compatible with Next.js serverless functions, which have a different API signature.
The way these framework adapters work is that you first need to take a look at how your particular server expects its middleware to be. For next/server, you can see an example here. This tells you that you need to do something like
import { NextResponse } from 'next/server'
import type { NextRequest } from 'next/server'

export function middleware(request: NextRequest) {
  return NextResponse.next();
}

grammY defines its framework adapters in this file: https://github.com/grammyjs/grammY/blob/1c238c0f08df047dc8dc11dd069519cc4c68b7ee/src/convenience/frameworks.ts
Look at how every adapter maps function signatures like the above to a generic ReqResHandler object that the webhook callback logic can work with. Currently, there is no compatible adapter for next/server since we never import NextResponse.
(We might be able to add support by simply returning a new Reponse() but it doesn't seem to be documented that this actually works, so we'd have to experiment with it. /cc @PonomareVlad)
Until then, grammY provides a callback adapter that works with any framework:
https://github.com/grammyjs/grammY/blob/1c238c0f08df047dc8dc11dd069519cc4c68b7ee/src/convenience/webhook.ts#L14-L24
This means that something similar to the following code will work (no promises, coded on github.com):
import { NextResponse } from 'next/server'
import type { NextRequest } from 'next/server'

const handleUpdate = webhookCallback(bot, "callback");

export function middleware(request: NextRequest) {
  const update = await request.json();
  const header = request.headers.get("X-Telegram-Bot-Api-Secret-Token");
  return await handleUpdate(update, (json: string) => new NextResponse(json), header);
}

I'm curious if this works, please keep us posted.

@KnorpelSenf looking into the code I see that webhookCallback doesn't export callback as supported adapter in TS. Anyway it does use the function, but the Next CLI fails locally because of
Error: No response is returned from route handler '...'. Ensure you return a `Response` or a `NextResponse` in all branches of your handler.

@KnorpelSenf looking into the code I see that webhookCallback doesn't export callback as supported adapter in TS

You're right, this needs to be fixed. It was caused by an incomplete refactoring some time ago.

Anyway it does use the function, but the Next CLI fails locally

Hmmm then perhaps you need to go even one more step back and provide a FrameworkAdapter that makes use of handlerReturn?

@all-contributors add @thecoorum for the bug

I see that std/http seems to be using handlerReturn (accordingly to the comments in frameworks.d.ts), but not sure how I should adjust the response then 🤔
Also, as I mentioned before the default configuration for std/http is working properly in local environment and fails in production only

not sure how I should adjust the response then 🤔

I guess you need to create a NextResponse object?

Also, as I mentioned before the default configuration for std/http is working properly in local environment and fails in production only

Right. I have no idea about this one. I have never used nextjs myself. What is the difference between the local and the production environment? (grammY itself certainly doesn't behave differently, it is not aware of its surroundings.)

Looking into the structure of std/http can't understand why it's not working in production. I see it's returning regular Response which is also acceptable by NextJS. They allow to return either Response or NextResponse (which as far as I remember is an extensions of Response with some extra methods)
I suspect that maybe resolveResponse is not assigned with Promise.resolve and because of that end, respond and unauthorized callbacks are never fired

I tried to extract the logic from the webhookCallback straight into my route and while it's working in development it still times out in production. I also skipped the logic of the verifying bot token and token from headers as for some reason there was no X-Telegram-Bot-Api-Secret-Token request header present
import { type NextRequest, NextResponse } from "next/server";
import { Bot } from "grammy";

const bot = new Bot(process.env.REQUESTS_BOT_TOKEN!);

bot.on("message", async (ctx) => {
  await ctx.reply("Ping");
});

function timeoutIfNecessary(
  task: Promise<void>,
  onTimeout: "throw" | "return" | (() => unknown),
  timeout: number
): Promise<void> {
  if (timeout === Infinity) return task;
  return new Promise((resolve, reject) => {
    const handle = setTimeout(() => {
      if (onTimeout === "throw") {
        reject(new Error(`Request timed out after ${timeout} ms`));
      } else {
        if (typeof onTimeout === "function") onTimeout();
        resolve();
      }
    }, timeout);
    task
      .then(resolve)
      .catch(reject)
      .finally(() => clearTimeout(handle));
  });
}

export const POST = async (req: NextRequest) => {
  let initialized = false;

  if (!initialized) {
    await bot.init();

    initialized = true;
  }

  let usedWebhookReply = false;

  const webhookReplyEnvelope = {
    send: async (json: any) => {
      usedWebhookReply = true;
      await new Promise((resolve) => resolve(NextResponse.json(json)));
    },
  };

  await timeoutIfNecessary(
    bot.handleUpdate(await req.json(), webhookReplyEnvelope),
    "throw",
    10_000
  );

  if (!usedWebhookReply) {
    return NextResponse.json(null, { status: 200 });
  }
};

while it's working in development it still times out in production

This sort of gives me the feeling that neither of us is making obvious mistakes in the code. It sort of boils down to differences between dev and prod, such as having different implementations of global objects like Request/Response/Promise.
The above code is a fairly short example that reproduces the issue (https://sscce.org). It could be a good idea to contact the people from nextjs to find out why the code behaves differently.

for some reason there was no X-Telegram-Bot-Api-Secret-Token request header present

This is expected. It is only present if you configure it when setting your webhook.

I opened a discussion in the NextJS repo, let's see if any useful suggestions will appear there
https://github.com/vercel/next.js/discussions/59652

Nice, subscribed. You may wanna include the above code in the discussion so that people don't need to understand grammY before they're able to look into the issue.
What happens if you throw out the timeoutIfNecessary function and let the bot handle the update directly? Does that fix it?

Do you mean just calling bot.handleUpdate with payload? Didn't check this approach and unfortunately will be able to do this only tomorrow

Yep! That would be the next step in narrowing down the problem. By continuing to remove seemingly unrelated code, we either end up removing the code that causes the problem, or we end up with a tiny bit of code that causes the problem. Either way, we will have isolated it, which allows the bug to be fixed (either by us or by them).

Hey @KnorpelSenf! Sorry for long reply, wasn't able to test out the suggestion you made during weekends. I tried to implement it now, but it still failing with timeout. Including the source code of the endpoint and the screenshot of log for triggering the endpoint
app/api/bots/requests/route.ts
import { type NextRequest, NextResponse } from "next/server";
import { Bot } from "grammy";

import { supabase } from "@/utils/supabase";

const bot = new Bot(process.env.REQUESTS_BOT_TOKEN!);

bot.on("message::bot_command", async (ctx) => {
  // Match command pattern /process_<id>
  const match = ctx.message!.text!.match(/^\/process_(\d+)$/);

  if (!match) return;

  const id = match[1];

  const { data, error } = await supabase
    .from("requests")
    .select()
    .eq("id", id)
    .single();

  if (error) {
    await ctx.reply("Виникла помилка при завантаженні заявки.");
    await ctx.reply(error.message);

    return;
  }

  await ctx.reply(
    `

company_name: ${data.company_name}
company_slug: ${data.company_slug}
phone_number: ${data.phone_number}
user_id: ${data.user_id}
user_username: ${data.user_username}

    `
  );
});

bot.on("message", async (ctx) => {
  await ctx.reply("Ping");
});

export const POST = async (req: NextRequest) => {
  let initialized = false;

  if (!initialized) {
    await bot.init();

    initialized = true;
  }

  let usedWebhookReply = false;

  const webhookReplyEnvelope = {
    send: async (json: any) => {
      usedWebhookReply = true;
      await new Promise((resolve) => resolve(NextResponse.json(json)));
    },
  };

  await bot.handleUpdate(await req.json(), webhookReplyEnvelope);

  if (!usedWebhookReply) {
    return NextResponse.json(null, { status: 200 });
  }
};

Awesome!
Just to be sure, the webhook reply envelope is never used, right? You didn't enable the feature. So you should be able to empty send and see the same behaviour. Also, I assume that you tested the ping handler, which timed out, so you should be able to remove the entire command handler and still see the same behaviour. Also, I suspect the init call to not be the problem because it only calls getMe, so you should be able to specify the bot info when constructing your bot. This will make sure that you no longer need to call init but still be able to see the same behaviour.
This should leave you with <20 lines of code that have virtually no logic and still reproduce the issue. Can you confirm?
(Perhaps you now see where I'm going with this.)

i'm so glad there is at least an issue... i've been dancing with it for too long...
so the official current state if things is that Grammy doesnt work in production Next.js?
i use latest grammy 1.20.3 and nextjs 14.0.4

Nobody really knows. I'm not using nextjs so I haven't investigated it.

use node >= 20 version
🎩

Very interesting stuff. @thecoorum can you confirm that this fixes it?

At some point I decided to migrate my bot to Deno, so it will take me some time to replicate the existing bot back on Next.js. I will post an update as soon as I will do some testings

Hmm, despite upgrading Vercel's Node version to 20.x bot is still timing out. @di-sukharev is there anything else you did?
I will share the code of my bot, maybe I did something wrong...
import { NextRequest } from "next/server";

import {
  Bot,
  Composer,
  webhookCallback,
  session,
  enhanceStorage,
} from "grammy";
import { conversations, createConversation } from "@grammyjs/conversations";
import { freeStorage } from "@grammyjs/storage-free";

import { handlers } from "@/bot/handlers";

import { start } from "@/bot/commands/start/admin";
import { request } from "@/bot/commands/request";
import { description } from "@/bot/commands/description";
import { process as processCommand } from "@/bot/commands/process";
import { request as requestConversation } from "@/bot/conversations/request";
import { process as processConversation } from "@/bot/conversations/process";
import { details } from "@/bot/callbacks/details";

import type { Context } from "@/bot/types";

const token = process.env.ADMIN_BOT_TOKEN!;

const middleware = new Composer<Context>();

middleware.command("start", start);

middleware.on("message::bot_command", processCommand);

const bot = new Bot<Context>(token);

bot.use(
  session({
    initial: () => ({}),
    storage: enhanceStorage<{}>({
      storage: freeStorage(token),
      millisecondsToLive: 10 * 60 * 1000,
    }),
  })
);

bot.use(conversations());
bot.use(createConversation(requestConversation, "request"));
bot.use(createConversation(processConversation, "process"));

bot.use(handlers);
bot.use(middleware);

bot.callbackQuery("request", (ctx) => ctx.conversation.enter("request"));
bot.callbackQuery("description", details);

bot.on("message", async (ctx) => {
  // ...
});

// bot.catch((error) => {
//   Sentry.captureException(error);
// });

const handleUpdate = webhookCallback(bot, "std/http");

export const POST = async (req: NextRequest, ...rest: any[]) => {
  return handleUpdate(req, ...rest);
};

@thecoorum i thought it's the node version, but when then it failed again, so i now know it's not..
but good news is that is that it doesnt matter, bc i anyway made it work :)
this is my webhook code in src/app/api/bot/route.ts:
import { webhookCallback } from "grammy";
import { NextRequest } from "next/server";

import { Bot, Context, InlineKeyboard } from "grammy";

interface BotConfig {
  isDeveloper: boolean;
}

type ExtendedContext = Context & { config: BotConfig };

const telegramBotWebhookHandler = async (req: NextRequest, ...args: any[]) => {
  const bot = new Bot<ExtendedContext>(process.env.TELEGRAM_BOT_KEY!);

  bot.use(async (ctx, next) => {
    const isInWhiteList = false;

    if (isInWhiteList) {
      ctx.config = { isDeveloper: isInWhiteList };
      await next();
    } else {
      try {
        console.log(`forbidden access from user ${ctx?.from?.id}`);
        await ctx.reply("❌ 403 ❌");
      } catch (error) {
        console.log(error);
      }
    }
  });

  bot.command("start", (ctx) =>
    ctx.reply(
      `Hi ${ctx.from?.first_name}`
    )
  );

  bot.hears("ping", async (ctx) => {
    await ctx.reply("pong 🏓", {
      reply_to_message_id: ctx.msg.message_id,
    });
  });

  bot.on("message:text", async (ctx) => {
    console.log("GOT MSG: ", ctx.msg.text);

    const inlineKeyboard = new InlineKeyboard().webApp(
      "Open app",
      `${process.env.TELEGRAM_WEBAPP_URL}`
    );

    await ctx.reply("Hi", { reply_markup: inlineKeyboard });
  });

  const handleBotWebhook = webhookCallback(
    bot,
    "std/http",
    "throw",
    10000,
    process.env.TELEGRAM_WEBHOOK_KEY
  );

  console.info("BOT REQUEST", { req, args });

  return handleBotWebhook(req, ...args);
};

export { telegramBotWebhookHandler as POST };

this is the script i run after each next js build:
import { Bot } from "grammy";

const bot = new Bot(process.env.TELEGRAM_BOT_KEY!);

// @ts-ignore
const isBotWebhookSet = await bot.api.setWebhook(
  process.env.TELEGRAM_WEBHOOK_URL!,
  {
    secret_token: process.env.TELEGRAM_WEBHOOK_KEY,
  }
);

console.info({ message: "Successfully updated the webhook", isBotWebhookSet });

my local node version is v20

What is the key difference between this and the code in the original issue description?

I can't see a real difference between the initial code and the working one, only the export code style, but that shouldn't matter

Just to be clear, the two of you are using the same code with the same hosting provider and you observe different behaviour? That means that it isn't related to your code, but rather to something else entirely.
I honestly don't see how grammY can have something to do with this, so I don't think it will be fixed in the library (unless new evidence shows up). Feel free to close this issue, or keep it open and discuss further, whatever you prefer. :)

I will close this, as I do not see what we can do here. Feel free to reopen if you find out more things, and especially so if you can narrow down that there is a problem with grammY.

Oh, ok.. Now it is my turn 🚬
Has anyone managed to figure out the root cause of the issue or find a solution?

I think I have found a solution to the issue.
The key lies in how Next.js handles server dependencies during build time. Just add the grammy dependency to serverComponentsExternalPackages in the next.config.js config and it should work.
Find more information about serverComponentsExternalPackages"here: https://nextjs.org/docs/app/api-reference/next-config-js/serverComponentsExternalPackages
My code:
Route
// src/app/api/bot/route.ts

import { NextRequest } from 'next/server';
import { Bot, webhookCallback } from 'grammy';

export const POST = async (req: NextRequest, ...args: any[]) => {
	const token = process.env.TELEGRAM_TOKEN;
	if (!token) throw new Error('TELEGRAM_TOKEN is unset');

	const bot = new Bot(token);

	bot.command('start', ctx => ctx.reply('Ласкаво просимо! Бот запущений.'));

	bot.on('message', ctx => ctx.reply('Отримав ще одне повідомлення!'));

	const handleUpdate = webhookCallback(bot, 'std/http', 'throw', 10000);

	return handleUpdate(req, ...args);
};

Next.js config
// next.config.mjs

/** @type {import('next').NextConfig} */
const nextConfig = {
	experimental: {
		serverComponentsExternalPackages: ['grammy'],
	},
};

export default nextConfig;

I hope this will be useful to someone who also decides to create a telegram bot w/ grammY and Next.js.

Interesting stuff, thanks for sharing.
By the way,
// src/app/api/bot/route.ts

import { NextRequest } from 'next/server';
import { Bot, webhookCallback } from 'grammy';

export const POST = async (req: NextRequest, ...args: any[]) => {
	const token = process.env.TELEGRAM_TOKEN;
	if (!token) throw new Error('TELEGRAM_TOKEN is unset');

	const bot = new Bot(token);

	bot.command('start', ctx => ctx.reply('Ласкаво просимо! Бот запущений.'));

	bot.on('message', ctx => ctx.reply('Отримав ще одне повідомлення!'));

	const handleUpdate = webhookCallback(bot, 'std/http', 'throw', 10000);

	return handleUpdate(req, ...args);
};

is a little inefficient because it recreates the bot for every update. This also means that it will have to re-initialize for every update, i.e. call getMe.
Here is the optimised version:
// src/app/api/bot/route.ts

import { Bot, webhookCallback } from 'grammy';

const token = process.env.TELEGRAM_TOKEN;
if (!token) throw new Error('TELEGRAM_TOKEN is unset');

const bot = new Bot(token);

bot.command('start', ctx => ctx.reply('Ласкаво просимо! Бот запущений.'));

bot.on('message', ctx => ctx.reply('Отримав ще одне повідомлення!'));

export const POST =  webhookCallback(bot, 'std/http');

I think I have found a solution to the issue.
The key lies in how Next.js handles server dependencies during build time. Just add the grammy dependency to serverComponentsExternalPackages in the next.config.js config and it should work. Find more information about serverComponentsExternalPackages"here: https://nextjs.org/docs/app/api-reference/next-config-js/serverComponentsExternalPackages
My code:
Route
// src/app/api/bot/route.ts

import { NextRequest } from 'next/server';
import { Bot, webhookCallback } from 'grammy';

export const POST = async (req: NextRequest, ...args: any[]) => {
	const token = process.env.TELEGRAM_TOKEN;
	if (!token) throw new Error('TELEGRAM_TOKEN is unset');

	const bot = new Bot(token);

	bot.command('start', ctx => ctx.reply('Ласкаво просимо! Бот запущений.'));

	bot.on('message', ctx => ctx.reply('Отримав ще одне повідомлення!'));

	const handleUpdate = webhookCallback(bot, 'std/http', 'throw', 10000);

	return handleUpdate(req, ...args);
};

Next.js config
// next.config.mjs

/** @type {import('next').NextConfig} */
const nextConfig = {
	experimental: {
		serverComponentsExternalPackages: ['grammy']
	}
};

export default nextConfig;

I hope this will be useful to someone who also decides to create a telegram bot w/ grammY and Next.js.

You helped me a lot! Thank you very much!!

Perhaps we can add this info to the vercel setup in the example bots repository? @triken22 would you like to take care of that?


Update com.github.patchoo-trigger-every120.plist

As of 10.9.5 and samf 9.82 we should be in /usr/local/bin/jamf

Thanks for committing!   My first github commit but not really a stranger to open source.

Thanks for the patch. I am not a JAMF admin right at the moment so I appreciate the PRs!

OK many more to come - I've been slowly going over the code :)

No problem - I am now a jamf admin so if you do not mind will be submitting
changes to this repo.
On Wed, Mar 23, 2016 at 11:53 PM, Lachlan Stewart<EMAIL_ADDRESS>wrote:

Thanks for the patch. I am not a JAMF admin right at the moment so I
appreciate the PRs!
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/patchoo/patchoo/pull/55#issuecomment-200648479


Geometry Module Questions

Gonna jot these down while I'm perusing the ./modules/geometry file. I'll be sure to check back and add in-depth replies/explanations if need be!

These lines make sense on why you would use those symbols (delta/gamma/the math stuff). But I find that it is just a pain in butt having to use those. As the consumer of this module, I would want it spelled out in my native language ( English ) rather than cryptic symbols. You can still use Symbol('whatever') but the this.altCodeThatIHaveToTypeEveryTime would be really annoying and prone to user-error

These lines use Symbol as well but I am not 100% that they should. I can see the use in being able to check equality against a single value but I have not ran into an instance where passing a string value wasn't acceptable where a Symbol was. But that's a coding style choice more than anything I think so 👍

This function has a tad too many parameters for me to feel safe using it without constantly looking at the docs/definition. I would make this into an object ( { x, y, z, ...} ) so that I could pass in these values in any "order" and it still work.

Besides that, this file looks great! A little dense but your JSDOC comments are very helpful! Keep up the great work!

On the cryptic symbols I completely agree, I'll replace with alphanumeric strings (phi, theta, etc.) and push the symbols to the... Symbols.
I am still unsure about Symbol vs strings. Which do you think is more readable to people developing with the module?
Understood on object vs lots of arguments. I'll make that change.

I dislike symbol because it acts like a string except it isn't one. I always end up turning them into strings when I want to start building a bigger or different abstraction.
I feel like Symbol is just not helpful enough in my coding experience to warrant giving up the flexibility of a string.

I understand. Since I don't really have a good reason to use them outside of a specific need to have a globally unique value or actually represent a non-ascii symbol, that's a pretty clear indication they aren't an improvement.


Setting up Discord webhook - test #2

Just another test, if not interested, ignore

Seems to b working as expected, closing.


Remove obsolete and duplicated content

There are multiple pages we were currently mirroring in the wiki from other places. Namely:

Aragon Nest guides and templates
Contact page in Press menu
aragonOS documentation http://wiki.aragon.one/submodules/aragonOS/docs/aragonOS/
Whitepaper (and it's outdated)
AGPs

I think as a policy we shouldn't mirror content in the wiki, but rather link to it, so I went ahead and cleaned up a bunch of stuff.

@luisivan I do not necessarily agree with this change, i think the mirrored content could be removed from the other locations and keep the wiki as the source of truth for information and as a single place do to updates at.
Review completed and 6 commits in 3 different repos done to match the changes made here.


Get rid of src directory in favor of histolab dir within the root

Considering the general footprint of the majority of the python projects I get rid of the src folder that seems more related to C or Java projects and keep the project name as source folder.
Detail
mv src/* ../histolab
Types of Changes

[x] Core
[ ] Bugfix
[ ] New feature
[x] Enhancement/optimization
[x] Documentation

Checklist

[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[x] I have tested the changes and verified that they work and don't break anything (as well as I can manage).

@ernestoarbitrio if you rebase on master we can proceed with the merge 🚀


migrate sso user <--> serviceaccount mapping annotations

#2315 changed the annotation keys that are used for mapping SSO users to ServiceAccounts.
Before:

rbac.kargo.akuity.io/sub
rbac.kargo.akuity.io/email
rbac.kargo.akuity.io/groups

After:

rbac.kargo.akuity.io/claim.<any claim>

As we've done in previous releases, we can automate the process of compensating for this breaking change.
Let's plan to include migration logic for this in the release-0.9 branch (once it exists). This functionality does not need to be included in the main branch.
@fykaa, @hiddeco or myself will help you get started on this as we get closer to the v0.9.0 release. We have an established pattern for how this is done.

@fykaa you can get started on this.
This can be addressed by creating a new reconciler for the management controller. It will have to reconcile ServiceAccounts that have annotations with any of the following keys:

rbac.kargo.akuity.io/sub
rbac.kargo.akuity.io/email
rbac.kargo.akuity.io/groups

Replace them, respectively, with:

rbac.kargo.akuity.io/claim.sub
rbac.kargo.akuity.io/claim.email
rbac.kargo.akuity.io/claim.groups

Although the keys will change, the values should remain the same.
Note that it's not actually intrinsically possible to watch resources based on annotations, but it can effectively be accomplished by watching all ServiceAccounts but using a predicate to filter out ones that do not have any of the older annotation keys. You should be able to find examples of predicates in most of the existing reconcilers.

#2579 addressed this, but GH did not close this issue automatically since the PR was merged to a release branch and not main. All set.