⬆ UPGRADE: Autoupdate pre-commit config cookiecutter

Base PullRequest
default branch (https://github.com/s-weigand/cookiecutter-pypackage/tree/master)
Command results

Details:

add path
/home/runner/work/_actions/technote-space/create-pr-action/v2/node_modules/npm-check-updates/bin

pip install pre-commit
Collecting pre-commit
  Downloading pre_commit-2.7.1-py2.py3-none-any.whl (171 kB)
Collecting identify>=1.0.0
  Downloading identify-1.5.6-py2.py3-none-any.whl (97 kB)
Collecting cfgv>=2.0.0
  Downloading cfgv-3.2.0-py2.py3-none-any.whl (7.3 kB)
Collecting pyyaml>=5.1
  Downloading PyYAML-5.3.1.tar.gz (269 kB)
Collecting nodeenv>=0.11.1
  Downloading nodeenv-1.5.0-py2.py3-none-any.whl (21 kB)
Collecting virtualenv>=20.0.8
  Downloading virtualenv-20.0.33-py2.py3-none-any.whl (4.9 MB)
Collecting toml
  Downloading toml-0.10.1-py2.py3-none-any.whl (19 kB)
Collecting six<2,>=1.9.0
  Downloading six-1.15.0-py2.py3-none-any.whl (10 kB)
Collecting distlib<1,>=0.3.1
  Downloading distlib-0.3.1-py2.py3-none-any.whl (335 kB)
Collecting filelock<4,>=3.0.0
  Downloading filelock-3.0.12-py3-none-any.whl (7.6 kB)
Collecting appdirs<2,>=1.4.3
  Downloading appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)
Using legacy 'setup.py install' for pyyaml, since package 'wheel' is not installed.
Installing collected packages: identify, cfgv, pyyaml, nodeenv, six, distlib, filelock, appdirs, virtualenv, toml, pre-commit
    Running setup.py install for pyyaml: started
    Running setup.py install for pyyaml: finished with status 'done'
Successfully installed appdirs-1.4.4 cfgv-3.2.0 distlib-0.3.1 filelock-3.0.12 identify-1.5.6 nodeenv-1.5.0 pre-commit-2.7.1 pyyaml-5.3.1 six-1.15.0 toml-0.10.1 virtualenv-20.0.33

pre-commit autoupdate || (exit 0);
Updating https://github.com/pre-commit/pre-commit-hooks ... already up to date.
Updating https://github.com/python/black ... already up to date.
Updating https://github.com/prettier/prettier ... already up to date.
Updating https://gitlab.com/pycqa/flake8 ... [INFO] Initializing environment for https://gitlab.com/pycqa/flake8.
already up to date.
Updating https://github.com/PyCQA/isort ... [INFO] Initializing environment for https://github.com/PyCQA/isort.
updating 5.5.4 -> 5.6.3.

pre-commit run -a || (exit 0);
[INFO] Installing environment for https://github.com/pre-commit/pre-commit-hooks.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/python/black.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://gitlab.com/pycqa/flake8.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/PyCQA/isort.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
Fix End of Files.........................................................Passed
Trim Trailing Whitespace.................................................Passed
Debug Statements (Python)................................................Failed
- hook id: debug-statements
- exit code: 1

{{cookiecutter.project_slug}}/setup.py - Could not parse ast

	Traceback (most recent call last):
	  File "/home/runner/.cache/pre-commit/repo3t7f78_4/py_env-python3.8/lib/python3.8/site-packages/pre_commit_hooks/debug_statement_hook.py", line 55, in check_file
	    ast_obj = ast.parse(f.read(), filename=filename)
	  File "/opt/hostedtoolcache/Python/3.8.6/x64/lib/python3.8/ast.py", line 47, in parse
	    return compile(source, filename, mode, flags,
	  File "{{cookiecutter.project_slug}}/setup.py", line 13
	    requirements = [{%- if cookiecutter.command_line_interface|lower == 'click' %}'Click>=7.0',{%- endif %} ]
	                     ^
	SyntaxError: invalid syntax

{{cookiecutter.project_slug}}/tests/test_{{cookiecutter.project_slug}}.py - Could not parse ast

	Traceback (most recent call last):
	  File "/home/runner/.cache/pre-commit/repo3t7f78_4/py_env-python3.8/lib/python3.8/site-packages/pre_commit_hooks/debug_statement_hook.py", line 55, in check_file
	    ast_obj = ast.parse(f.read(), filename=filename)
	  File "/opt/hostedtoolcache/Python/3.8.6/x64/lib/python3.8/ast.py", line 47, in parse
	    return compile(source, filename, mode, flags,
	  File "{{cookiecutter.project_slug}}/tests/test_{{cookiecutter.project_slug}}.py", line 7
	    {%- if cookiecutter.command_line_interface|lower == 'click' %}
	     ^
	SyntaxError: invalid syntax

{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py - Could not parse ast

	Traceback (most recent call last):
	  File "/home/runner/.cache/pre-commit/repo3t7f78_4/py_env-python3.8/lib/python3.8/site-packages/pre_commit_hooks/debug_statement_hook.py", line 55, in check_file
	    ast_obj = ast.parse(f.read(), filename=filename)
	  File "/opt/hostedtoolcache/Python/3.8.6/x64/lib/python3.8/ast.py", line 47, in parse
	    return compile(source, filename, mode, flags,
	  File "{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py", line 3
	    {%- if cookiecutter.command_line_interface|lower == 'argparse' %}
	     ^
	SyntaxError: invalid syntax

{{cookiecutter.project_slug}}/docs/conf.py - Could not parse ast

	Traceback (most recent call last):
	  File "/home/runner/.cache/pre-commit/repo3t7f78_4/py_env-python3.8/lib/python3.8/site-packages/pre_commit_hooks/debug_statement_hook.py", line 55, in check_file
	    ast_obj = ast.parse(f.read(), filename=filename)
	  File "/opt/hostedtoolcache/Python/3.8.6/x64/lib/python3.8/ast.py", line 47, in parse
	    return compile(source, filename, mode, flags,
	  File "{{cookiecutter.project_slug}}/docs/conf.py", line 21
	    import {{ cookiecutter.project_slug }}
	           ^
	SyntaxError: invalid syntax

black....................................................................Failed
- hook id: black
- exit code: 123

error: cannot format /home/runner/work/cookiecutter-pypackage/cookiecutter-pypackage/{{cookiecutter.project_slug}}/docs/conf.py: Cannot parse: 21:7: import {{ cookiecutter.project_slug }}
error: cannot format /home/runner/work/cookiecutter-pypackage/cookiecutter-pypackage/{{cookiecutter.project_slug}}/setup.py: Cannot parse: 13:17: requirements = [{%- if cookiecutter.command_line_interface|lower == 'click' %}'Click>=7.0',{%- endif %} ]
error: cannot format /home/runner/work/cookiecutter-pypackage/cookiecutter-pypackage/{{cookiecutter.project_slug}}/tests/test_{{cookiecutter.project_slug}}.py: Cannot parse: 7:1: {%- if cookiecutter.command_line_interface|lower == 'click' %}
error: cannot format /home/runner/work/cookiecutter-pypackage/cookiecutter-pypackage/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py: Cannot parse: 3:1: {%- if cookiecutter.command_line_interface|lower == 'argparse' %}
Oh no! 💥 💔 💥
8 files left unchanged, 4 files failed to reformat.

prettier.................................................................Passed
flake8...................................................................Failed
- hook id: flake8
- exit code: 1

tests/test_bake_project.py:9:1: F401 'yaml' imported but unused
docs/conf.py:15:1: F401 'os' imported but unused
docs/conf.py:16:1: F401 'shlex' imported but unused
docs/conf.py:17:1: F401 'sys' imported but unused
docs/conf.py:215:5: E265 block comment should start with '# '
docs/conf.py:217:5: E265 block comment should start with '# '
docs/conf.py:219:5: E265 block comment should start with '# '
docs/conf.py:221:5: E265 block comment should start with '# '
{{cookiecutter.project_slug}}/setup.py:13:18: E228 missing whitespace around modulo operator
{{cookiecutter.project_slug}}/setup.py:13:18: E999 SyntaxError: invalid syntax
{{cookiecutter.project_slug}}/setup.py:13:59: E227 missing whitespace around bitwise or shift operator
{{cookiecutter.project_slug}}/setup.py:13:78: E225 missing whitespace around operator
{{cookiecutter.project_slug}}/setup.py:13:91: E231 missing whitespace after ','
{{cookiecutter.project_slug}}/setup.py:13:93: E228 missing whitespace around modulo operator
{{cookiecutter.project_slug}}/setup.py:13:100: E501 line too long (105 > 99 characters)
{{cookiecutter.project_slug}}/setup.py:13:103: E225 missing whitespace around operator
{{cookiecutter.project_slug}}/setup.py:13:104: E202 whitespace before ']'
{{cookiecutter.project_slug}}/setup.py:21:2: E228 missing whitespace around modulo operator
{{cookiecutter.project_slug}}/setup.py:26:100: E501 line too long (103 > 99 characters)
{{cookiecutter.project_slug}}/setup.py:27:4: E225 missing whitespace around operator
{{cookiecutter.project_slug}}/setup.py:36:10: E228 missing whitespace around modulo operator
{{cookiecutter.project_slug}}/setup.py:36:73: E225 missing whitespace around operator
{{cookiecutter.project_slug}}/setup.py:38:10: E228 missing whitespace around modulo operator
{{cookiecutter.project_slug}}/setup.py:38:20: E225 missing whitespace around operator
{{cookiecutter.project_slug}}/setup.py:47:6: E228 missing whitespace around modulo operator
{{cookiecutter.project_slug}}/setup.py:47:59: E227 missing whitespace around bitwise or shift operator
{{cookiecutter.project_slug}}/setup.py:47:67: E225 missing whitespace around operator
{{cookiecutter.project_slug}}/setup.py:53:6: E228 missing whitespace around modulo operator
{{cookiecutter.project_slug}}/setup.py:53:16: E225 missing whitespace around operator
{{cookiecutter.project_slug}}/setup.py:55:6: E228 missing whitespace around modulo operator
{{cookiecutter.project_slug}}/setup.py:55:69: E225 missing whitespace around operator
{{cookiecutter.project_slug}}/setup.py:57:6: E228 missing whitespace around modulo operator
{{cookiecutter.project_slug}}/setup.py:57:16: E225 missing whitespace around operator
{{cookiecutter.project_slug}}/setup.py:60:100: E501 line too long (110 > 99 characters)
{{cookiecutter.project_slug}}/setup.py:61:100: E501 line too long (118 > 99 characters)
{{cookiecutter.project_slug}}/setup.py:74:100: E501 line too long (100 > 99 characters)
{{cookiecutter.project_slug}}/tests/test_{{cookiecutter.project_slug}}.py:7:2: E228 missing whitespace around modulo operator
{{cookiecutter.project_slug}}/tests/test_{{cookiecutter.project_slug}}.py:7:2: E999 SyntaxError: invalid syntax
{{cookiecutter.project_slug}}/tests/test_{{cookiecutter.project_slug}}.py:7:43: E227 missing whitespace around bitwise or shift operator
{{cookiecutter.project_slug}}/tests/test_{{cookiecutter.project_slug}}.py:7:62: E225 missing whitespace around operator
{{cookiecutter.project_slug}}/tests/test_{{cookiecutter.project_slug}}.py:8:1: E402 module level import not at top of file
{{cookiecutter.project_slug}}/tests/test_{{cookiecutter.project_slug}}.py:10:2: E228 missing whitespace around modulo operator
{{cookiecutter.project_slug}}/tests/test_{{cookiecutter.project_slug}}.py:10:12: E225 missing whitespace around operator
{{cookiecutter.project_slug}}/tests/test_{{cookiecutter.project_slug}}.py:12:1: E402 module level import not at top of file
{{cookiecutter.project_slug}}/tests/test_{{cookiecutter.project_slug}}.py:12:45: E201 whitespace after '{'
{{cookiecutter.project_slug}}/tests/test_{{cookiecutter.project_slug}}.py:12:71: E202 whitespace before '}'
{{cookiecutter.project_slug}}/tests/test_{{cookiecutter.project_slug}}.py:14:2: E228 missing whitespace around modulo operator
{{cookiecutter.project_slug}}/tests/test_{{cookiecutter.project_slug}}.py:14:43: E227 missing whitespace around bitwise or shift operator
{{cookiecutter.project_slug}}/tests/test_{{cookiecutter.project_slug}}.py:14:62: E225 missing whitespace around operator
{{cookiecutter.project_slug}}/tests/test_{{cookiecutter.project_slug}}.py:15:1: E402 module level import not at top of file
{{cookiecutter.project_slug}}/tests/test_{{cookiecutter.project_slug}}.py:17:2: E228 missing whitespace around modulo operator
{{cookiecutter.project_slug}}/tests/test_{{cookiecutter.project_slug}}.py:17:12: E225 missing whitespace around operator
{{cookiecutter.project_slug}}/tests/test_{{cookiecutter.project_slug}}.py:21:1: E303 too many blank lines (3)
{{cookiecutter.project_slug}}/tests/test_{{cookiecutter.project_slug}}.py:35:1: E305 expected 2 blank lines after class or function definition, found 0
{{cookiecutter.project_slug}}/tests/test_{{cookiecutter.project_slug}}.py:35:2: E228 missing whitespace around modulo operator
{{cookiecutter.project_slug}}/tests/test_{{cookiecutter.project_slug}}.py:35:43: E227 missing whitespace around bitwise or shift operator
{{cookiecutter.project_slug}}/tests/test_{{cookiecutter.project_slug}}.py:35:62: E225 missing whitespace around operator
{{cookiecutter.project_slug}}/tests/test_{{cookiecutter.project_slug}}.py:47:1: E305 expected 2 blank lines after class or function definition, found 0
{{cookiecutter.project_slug}}/tests/test_{{cookiecutter.project_slug}}.py:47:2: E228 missing whitespace around modulo operator
{{cookiecutter.project_slug}}/tests/test_{{cookiecutter.project_slug}}.py:47:12: E225 missing whitespace around operator
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:3:2: E228 missing whitespace around modulo operator
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:3:2: E999 SyntaxError: invalid syntax
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:3:43: E227 missing whitespace around bitwise or shift operator
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:3:65: E225 missing whitespace around operator
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:4:1: E402 module level import not at top of file
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:6:2: E228 missing whitespace around modulo operator
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:6:12: E225 missing whitespace around operator
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:7:1: E402 module level import not at top of file
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:9:2: E228 missing whitespace around modulo operator
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:9:43: E227 missing whitespace around bitwise or shift operator
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:9:62: E225 missing whitespace around operator
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:10:1: E402 module level import not at top of file
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:12:2: E228 missing whitespace around modulo operator
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:12:12: E225 missing whitespace around operator
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:14:2: E225 missing whitespace around operator
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:14:42: E227 missing whitespace around bitwise or shift operator
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:14:61: E225 missing whitespace around operator
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:15:1: E302 expected 2 blank lines, found 0
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:22:1: E305 expected 2 blank lines after class or function definition, found 0
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:22:2: E228 missing whitespace around modulo operator
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:22:12: E225 missing whitespace around operator
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:23:2: E228 missing whitespace around modulo operator
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:23:43: E227 missing whitespace around bitwise or shift operator
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:23:65: E225 missing whitespace around operator
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:24:1: E302 expected 2 blank lines, found 0
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:34:1: E305 expected 2 blank lines after class or function definition, found 0
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:34:2: E228 missing whitespace around modulo operator
{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/cli.py:34:12: E225 missing whitespace around operator
hooks/pre_gen_project.py:10:100: E501 line too long (113 > 99 characters)
{{cookiecutter.project_slug}}/docs/conf.py:21:8: E999 SyntaxError: invalid syntax
{{cookiecutter.project_slug}}/docs/conf.py:21:10: E201 whitespace after '{'
{{cookiecutter.project_slug}}/docs/conf.py:21:36: E202 whitespace before '}'
{{cookiecutter.project_slug}}/docs/conf.py:54:100: E501 line too long (106 > 99 characters)
{{cookiecutter.project_slug}}/docs/conf.py:55:100: E501 line too long (125 > 99 characters)
{{cookiecutter.project_slug}}/docs/conf.py:71:13: E201 whitespace after '{'
{{cookiecutter.project_slug}}/docs/conf.py:71:39: E202 whitespace before '}'
{{cookiecutter.project_slug}}/docs/conf.py:73:13: E201 whitespace after '{'
{{cookiecutter.project_slug}}/docs/conf.py:73:39: E202 whitespace before '}'

isort....................................................................Passed

Changed files

Changed file:

.pre-commit-config.yaml

:octocat: Repo | :memo: Issues | :department_store: Marketplace

Command results

Details:

add path
/home/runner/work/_actions/technote-space/create-pr-action/v2/node_modules/npm-check-updates/bin

pip install pre-commit
Collecting pre-commit
  Downloading pre_commit-2.7.1-py2.py3-none-any.whl (171 kB)
Collecting cfgv>=2.0.0
  Downloading cfgv-3.2.0-py2.py3-none-any.whl (7.3 kB)
Collecting virtualenv>=20.0.8
  Downloading virtualenv-20.0.33-py2.py3-none-any.whl (4.9 MB)
Collecting nodeenv>=0.11.1
  Downloading nodeenv-1.5.0-py2.py3-none-any.whl (21 kB)
Collecting identify>=1.0.0
  Downloading identify-1.5.6-py2.py3-none-any.whl (97 kB)
Collecting toml
  Downloading toml-0.10.1-py2.py3-none-any.whl (19 kB)
Collecting pyyaml>=5.1
  Downloading PyYAML-5.3.1.tar.gz (269 kB)
Collecting distlib<1,>=0.3.1
  Downloading distlib-0.3.1-py2.py3-none-any.whl (335 kB)
Collecting filelock<4,>=3.0.0
  Downloading filelock-3.0.12-py3-none-any.whl (7.6 kB)
Collecting appdirs<2,>=1.4.3
  Downloading appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)
Collecting six<2,>=1.9.0
  Downloading six-1.15.0-py2.py3-none-any.whl (10 kB)
Using legacy 'setup.py install' for pyyaml, since package 'wheel' is not installed.
Installing collected packages: cfgv, distlib, filelock, appdirs, six, virtualenv, nodeenv, identify, toml, pyyaml, pre-commit
    Running setup.py install for pyyaml: started
    Running setup.py install for pyyaml: finished with status 'done'
Successfully installed appdirs-1.4.4 cfgv-3.2.0 distlib-0.3.1 filelock-3.0.12 identify-1.5.6 nodeenv-1.5.0 pre-commit-2.7.1 pyyaml-5.3.1 six-1.15.0 toml-0.10.1 virtualenv-20.0.33

pre-commit autoupdate -c \{\{cookiecutter.project_slug\}\}/.pre-commit-config.yaml || (exit 0);
Updating https://github.com/pre-commit/pre-commit-hooks ... already up to date.
Updating https://github.com/asottile/pyupgrade ... already up to date.
Updating https://github.com/python/black ... already up to date.
Updating https://github.com/prettier/prettier ... already up to date.
Updating https://gitlab.com/pycqa/flake8 ... [INFO] Initializing environment for https://gitlab.com/pycqa/flake8.
already up to date.
Updating https://github.com/PyCQA/isort ... [INFO] Initializing environment for https://github.com/PyCQA/isort.
updating 5.5.4 -> 5.6.3.
Updating https://github.com/PyCQA/pydocstyle ... already up to date.
Updating https://github.com/econchick/interrogate ... already up to date.
Updating https://github.com/myint/rstcheck ...
=====> /home/runner/.cache/pre-commit/repozmg2qyw6/.pre-commit-hooks.yaml does not exist
Updating https://github.com/pre-commit/pygrep-hooks ... already up to date.
Updating https://github.com/codespell-project/codespell ... already up to date.
Updating https://github.com/asottile/yesqa ... already up to date.
Updating https://github.com/econchick/interrogate ... already up to date.

Changed files

Changed file:

{{cookiecutter.project_slug}}/.pre-commit-config.yaml

:octocat: Repo | :memo: Issues | :department_store: Marketplace


Basic CC Exposure

Is your feature request related to a problem? Please describe.
Logic Group - Matrix ZDB5100 has updated their devices and is now providing a central scene for KeyPressedx2 and x3 but removed the x1. The x1 is now switched to a Basic CC and is now able to change from 0 to 99 instead of a central scene.
Describe the solution you'd like
I would like to get the Basic Switch exposed so its readable in Home Assistant
Describe alternatives you've considered
None, sudden firmware update when received a new device. I might be able to revert back to an older version but that kind of defeats the purpose in the future

Please make a driver log, loglevel debug or silly and attach it here as a file.
While the log is running, make the device send such a basic command.
Also we'll need to know the ids of the device and firmware version where it changed.

Device has changed from firmware 1.5 to 1.6. I have contacted Logic Group for confirmation.
Here's the log file i have tried to re-interview the device in the log file.
The  node that i have tested is:
v1.6 = Node 91
v1.5 = Node 51
zwavejs2mqtt-store_basic.zip

Honestly, this is just a step back. Wonder what they were thinking...

Okay if you think that is the case (i dont know the history) then i can see if i can revert back or maybe its a bug?
But why wouldnt we want to share the Basic ?

@zwave-js-bot add compat flag to 0x0234:0x0003:0x0121:1.6
// Starting in Firmware 1.6, the device no longer uses Central Scene for Pressed / Released, only Basic CC
"disableBasicMapping": true

But why wouldnt we want to share the Basic

Because most of the time it is unnecessary and it has no default meaning attached.

Alright, let me get in contact with them and understand whats happening

Basic CC is like the name implies basic. It can be used for simple communication, but in 99% of cases a more specific CC is available. And in this case it is even used for half the functionality.
Central Scene tells you how the device was operated even without knowing anything about it. Basic CC just gives you numbers, so UIs won't help you make sense of them.

Right that does make sense what you are saying because the Basic can be "anything".
I will talk to Logic Group about it.

@AlCalzone i just tried to go a downgrade to 1.5 and i didnt receive the scene control back.
Strangely enough i just received like 1 button for a brief second the scene for x1 press
2021-12-22 11:20:50.164 INFO ZWAVE: Node 93: value notification: 91-0-scene-002 0
but I cannot replicate the scene by clicking the button again.
Might be an issue with zwavejs instead ?

Might be an issue with zwavejs instead ?

Very unlikely. Also, look at driver logs not the application logs.

i downgraded to 1.5 and i went back to the latest tag and i still dont see any scene notification from the device. even after a re inclusion

i do see in the log that the "scenes" are supported but im not seing them in the log
2021-12-22T11:54:05.350Z DRIVER « [Node 094] [REQ] [ApplicationCommand]                                   └─[Security2CCMessageEncapsulation]                                     │ sequence number: 183                                     └─[CentralSceneCCSupportedReport]                                         scene count:                     4                                         supports slow refresh:           true                                         supported attributes (scene #1):                                         · KeyPressed                                         · KeyReleased                                         · KeyHeldDown                                         · KeyPressed2x                                         · KeyPressed3x                                         supported attributes (scene #2):                                         · KeyPressed                                         · KeyReleased                                         · KeyHeldDown                                         · KeyPressed2x                                         · KeyPressed3x                                         supported attributes (scene #3):                                         · KeyPressed                                         · KeyReleased                                         · KeyHeldDown                                         · KeyPressed2x                                         · KeyPressed3x                                         supported attributes (scene #4):                                         · KeyPressed                                         · KeyReleased                                         · KeyHeldDown                                         · KeyPressed2x                                         · KeyPressed3x

The same report was there in the log for FW 1.6. They aren't used though. Maybe that's a firmware bug in 1.6.

Right.
But even when i downgraded to 1.5 i cannot recreate the scene of KeyPressed

May be a config setting on the device?

i do have that enabled (i tried to toggle the config) no change.
I tried to implement the config in my local store/config folder.
I should see the Basic CC in HA now or wont it get exposed like that ?

I should see the Basic CC in HA now or wont it get exposed like that ?

Start by checking in zwavejs2mqtt after a re-interview. I'm not sure if HA exposes any Basic CC values aside from the event.

zwavejs_event doesnt show any data to me in the developer tab there for the request of the exposure of the Basic CC like other events.
i tried re-interviewing the device.
I have now reset the device and still doesnt show the scene for all of the KeyPressed1x.
Logic Group told me that they are planning to release a 1.7 version in Q1 and there for the 1.6 is only on a specific delivery of device. They didnt support me with what to do since they are using Fibaro Home Center and there for no support outside of that.

zwavejs_event doesnt show any data to me in the developer tab there for the request of the exposure of the Basic CC like other events.

That's different. Only Basic Set commands are exposed as events. Your device uses Basic Reports which updates the currentValue. The compat flag just makes it so this one isn't mapped to a more appropriate CC like Binary Switch and that the Basic CC isn't hidden.

They didnt support me with what to do since they are using Fibaro Home Center

Ugh this makes me angry. Your problem has nothing to do with who the device is talking to. It is all about what the device itself is transmitting - clearly an issue on their end.

So I've talked to the HA devs. If the config file was applied correctly, currentValue should be exposed, but it may be disabled by default.

@Roagert can you post a driver log of a re-interview please?
I'd like to make sure we're not hunting ghosts here.

So I've talked to the HA devs. If the config file was applied correctly, currentValue should be exposed, but it may be disabled by default.

And how to enable it ?

They didnt support me with what to do since they are using Fibaro Home Center

Ugh this makes me angry. Your problem has nothing to do with who the device is talking to. It is all about what the device itself is transmitting - clearly an issue on their end.
Yes this is also annoying me. But i guess thats their expertise so its easier to support.

@Roagert can you post a driver log of a re-interview please? I'd like to make sure we're not hunting ghosts here.

Yes ofc. heres a log of the re-interview with version 1.5 (i dont have the firmware of 1.6 available, the device was delivered with the 1.6 and not available for download)
zwavejs2mqtt-store_20211222.zip

2021-12-22T15:21:55.581Z CNTRLR   [Node 095] Embedded device config loaded

The custom config wasn't applied. Make sure to follow this guide: https://zwave-js.github.io/zwavejs2mqtt/#/device-support/custom-device-files

I know, i thought you wanted it without ?
I can do the re interview with the local config

Den 22. dec. 2021 kl. 18.22 skrev AlCalzone @.***>:

2021-12-22T15:21:55.581Z CNTRLR   [Node 095] Embedded device config loaded
The custom config wasn't applied. Make sure to follow this guide: https://zwave-js.github.io/zwavejs2mqtt/#/device-support/custom-device-files
—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you were mentioned.

Nah, I wanted to see what happens when the config is applied. To figure out if you're not seeing the currentValue because of something in HA or here.

zwavejs2mqtt-store.zip
Here ya go

Hmm, I think there's something missing. Please put this file in a subfolder templates in the custom config dir:
https://raw.githubusercontent.com/zwave-js/node-zwave-js/master/packages/config/config/devices/templates/master_template.json
Then try again.

zwavejs2mqtt-store_2016.zip

Uhm... @robertsLando what's wrong here? I don't see it. The mentioned file is there.
2021-12-22T17:31:17.482Z CONFIG   Using external configuration dir /usr/src/app/store/.config-db
2021-12-22T17:31:17.483Z CONFIG   version 8.9.0-beta.3
2021-12-22T17:31:18.766Z CONFIG   Error parsing config file zdb5100.json: Could not parse config file /usr/src/a
                                  pp/store/config/templates/master_template.json: ENOENT: no such file or direct
                                  ory, open '/usr/src/app/store/config/templates/master_template.json'
                                  Import stack:
                                    in #base_enable_disable
                                    in /usr/src/app/store/config/zdb5100.json (ZW0340)

Uhm... @robertsLando what's wrong here? I don't see it. The mentioned file is there.

I really have no clue, I checked the path multiple times and it seems correct (no typo).  I can only suggest to restart application 🤷🏼♂

Multiple restarts tried but nothing really changed :/
So i just saw this in the log:
2021-12-23 18:45:49.232 INFO ZWAVE: Node 95: interview stage OVERWRITECONFIG completed
but still the same:
2021-12-23T18:42:27.715Z CONFIG   Error parsing config file zdb5100.json: Could not parse config file /usr/src/a
                                  pp/store/config/templates/logic_group_template.json: ENOENT: no such file or d
                                  irectory, open '/usr/src/app/store/config/templates/logic_group_template.json'
                                  Import stack:
                                    in #dimming_duration
                                    in /usr/src/app/store/config/zdb5100.json (ZW0340)2021-12-23T18:42:27.715Z CONFIG   Error parsing config file zdb5100.json: Could not parse config file /usr/src/a
                                  pp/store/config/templates/logic_group_template.json: ENOENT: no such file or d
                                  irectory, open '/usr/src/app/store/config/templates/logic_group_template.json'
                                  Import stack:
                                    in #dimming_duration
                                    in /usr/src/app/store/config/zdb5100.json (ZW0340)

Oh that refers to a different template file.

Let me know if this is too much trouble. I can also merge the config file change and you can test when it is available officially.


Https certificates deployment

This is no longer required, right @aliaksei-chareshneu ?

Right, I am closing it


Rename: WorkloadCluster->SyncTarget

Summary
Rename WorkloadCluster to SyncTarget.
Breaking changes:

Syncer: --workload-cluster-name is now --sync-target-name
When creating a syncer using kubectl kcp workload sync, the namespace label workload.kcp.io/workload-cluster is now workload.kcp.io/sync-target
kcp start option --workload-cluster-heartbeat-threshold is now --sync-target-heartbeat-threshold

Related issue(s)
Fixes #1074

I think I got most/everything...

Case sensitive renames

WorkloadCluster -> SyncTarget
workloadcluster -> synctarget
workload-cluster-name -> sync-target-name
workload-cluster -> sync-target

Searched for workload.*cluster.*target to try to find things like "error getting workload cluster %s", syncTarget, manually reviewed & replaced

/lgtm

/test e2e


how to deployProxy with mutlisig or defender

prepareUpgrade allows to add the option of getting the transactionResponse instead of actually upgrading so that the input data can be used to submit via a multisig. How can the same be achieved for deployProxy?

There are a number of topics covered by your question, so I will address them separately below:

About prepareUpgrade:
prepareUpgrade does not actually perform an upgrade, regardless of its options.  It only validates that a new implementation is upgrade safe (compared to the old implementation), and deploys the new implementation.  It does not upgrade the proxy itself.
With prepareUpgrade, its getTxResponse option allows it to return a transaction response (rather than the address) of the deployment of the new implementation.  It still actually deploys the new implementation; this option only affects what is returned.

About multisigs and Defender:
You can use the defender.proposeUpgrade function, which does the same thing as prepareUpgrade but also creates a Defender proposal to upgrade the proxy.  This proposal can be used with a multisig.
See this tutorial for reference.

About deployProxy:
When you refer to getting the upgrade transaction instead of actually upgrading, that is covered by https://github.com/OpenZeppelin/openzeppelin-upgrades/issues/185 .  In that case, "How can the same be achieved for deployProxy" does not make sense because deployProxy only deploys the initial implementation and proxy.
Can you be more specific about what is your expected use case with deployProxy?

@ericglau thanks for the detailed response ! In the case of prepareUpgrade the signer linked to hardhat will deploy the logic contract (this can only be an EOA). The return value is a TransactionResponse which contains the data field that can be copied and used to send the transaction via the multisig. Is that right?
using defender proposeUpgrade has the advantage of not having to manually copy pasting that data input field and manually preparing the transaction via a multisig correct?
We are using the UUPS proxy pattern. If deployProxy deploys the implementation directly that means that the owner can only be an EOA. Is it not possible to have deployProxy return a transactionResponse for the implementation deployment so that the multisig can deploy it and be set as the owner directly. Or can we only deploy with EOA and then transfer ownership?

In the case of prepareUpgrade the signer linked to hardhat will deploy the logic contract (this can only be an EOA). The return value is a TransactionResponse which contains the data field that can be copied and used to send the transaction via the multisig. Is that right?

I don't think a multisig is needed for this step.  The logic (implementation) contract can be deployed by an EOA, and this is fine because the proxy can just point to this implementation (but using the proxy's state).  It does not matter who deployed the logic contract, since the logic contract itself is immutable and you can verify its source code.

using defender proposeUpgrade has the advantage of not having to manually copy pasting that data input field and manually preparing the transaction via a multisig correct?

Yes, but let me re-emphasize, prepareUpgrade does not even create an upgrade transaction (but defender.proposeUpgrade does).

We are using the UUPS proxy pattern. If deployProxy deploys the proxy and the implementation with an EOA and call the initialiser that means that the owner (who can upgrade) will be set to the EOA. Does the owner status have to manually transferred to a mutisig? Or is there any other option?

You could transfer the owner to the multisig in the initializer.

Thanks for your responses @ericglau its all clear now. Jus tone question on prepareUpgrade, (cause we havent set up defender yet to use proposeUpgrade), it will only deploy new implementation. it will not generate the transaction input field for the upgrade. That transaction has to be done manually by oneself ?

Jus tone question on prepareUpgrade, (cause we havent set up defender yet to use proposeUpgrade), it will only deploy new implementation. it will not generate the transaction input field for the upgrade. That transaction has to be done manually by oneself ?

After you do prepareUpgrade, you can use Defender Admin to create an upgrade action.

thanks all very clear


Spark's max_by/min_by does not support complex type as compare type which contains non-orderable type

Bug description
Spark's max_by/min_by require compare type is orderable.
https://github.com/apache/spark/blob/b07bdea3616fc582a1242d3b47b465cd406c13c4/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/aggregate/MaxByAndMinBy.scala#L49-L50
https://github.com/apache/spark/blob/b07bdea3616fc582a1242d3b47b465cd406c13c4/sql/api/src/main/scala/org/apache/spark/sql/catalyst/expressions/OrderUtils.scala#L25-L32
However, current implementation does not have this check, we need to fix it.
System information
n/a
Relevant logs
No response

@Yohahaha are you working on this?

@Yohahaha are you working on this?

not yet, just record the issue for now.

https://github.com/oap-project/gluten/issues/4501


Message batching via JSON array

Hi,
we're currently evaluating whether or not it would be feasible to connect multiple OPC UA endpoints (and therefore multiple logical or even physical devices) via a single instance of the opc publisher. Doing so, we ran into the fact that the opc publisher batches messages "manually" using a JSON array of messages - on application layer if you will. In our scenario, this means we might end up with messages from different OPC UA endpoints within the same IoT Hub message. This in turn becomes challenging later on within the processing pipeline, e.g., when joining incoming messages with state from CosmosDB via Azure Functions - we would need to join with multiple documents within a single trigger.
My question is the following: Is this choice intentional? Is there a reason for this design we're not seeing? It seems that the IoT Hub c# SDK offers DeviceClient.SendEventBatchAsync for transport layer optimization, which would potentially avoid this issue.
Also, any idea for a workaround, e.g., disabling batching or splitting messages up within Azure?

We will support choosing binary encoding and support dataset messages by/before end of this year - compliant with Part 14.  This should deal with large messages cost efficiently.   However, we have also decided that as part of this feature we will remove the current json batching as it is not compatible with OPC UA Pub/Sub.


py: add ruff rules

As suggested by @dtrifiro, let's add some Ruff rules to the python client config.
Description
Add relevant rules to keep python code in check. See https://github.com/isinyaaa/model-registry/blob/878aa46755cc3a0852f792d972b10be0dadc753b/clients/python/pyproject.toml for more details on the rules enabled.
Most new warnings have been fixed as well.
Merge criteria:

[x] The commits and have meaningful messages; the author will squash them after approval or will ask to merge with squash.
[ ] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[x] The developer has manually tested the changes and verified that the changes work

Codecov Report
Attention: 2 lines in your changes are missing coverage. Please review.

Comparison is base (7deb5a3) 74.60% compared to head (9d630dd) 87.09%.

Files
Patch %
Lines

clients/python/src/model_registry/store/wrapper.py
60.00%
1 Missing and 1 partial :warning:

Additional details and impacted files
@@             Coverage Diff             @@
##             main     #181       +/-   ##
===========================================
+ Coverage   74.60%   87.09%   +12.48%
===========================================
  Files          15       11        -4
  Lines        2099      550     -1549
  Branches       67       67
===========================================
- Hits         1566      479     -1087
+ Misses        387       53      -334
+ Partials      146       18      -128

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Rebased to add two commits that I had planned for later. I squashed the current [2/6] with the previous [2/5]. I believe this makes some annotations easier and also simplifies quite nicely.


LongClickDetectedHandler triggered after boot?

I tried to replace the setLongClickHandler(handler) ...which works fine (but you don't know if your press was long enough until you release the button), by setLongClickDetectedHandler(handler) and I noticed a side effect.
Look at the log below and my  comments in bold.
And this side effect is consistent. You might want to look into it...
--- Terminal on /dev/ttyACM0 | 115200 8-N-1
--- Available filters and text transformations: colorize, debug, default,
direct, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at https://bit.ly/pio-monitor-filters
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H

Starting MMT Power Supply Interface !!!

PG set to PG40
EEPROM Beginning : 0
EEPROM End : 16384
System Voltage Set Value : 10.000
Corresponding DAC Voltage Output : 1.65
Corresponding DAC Binary Voltage Output : 2047
System Current Set Value : 0.500
Corresponding DAC Current Output : 0.82
Corresponding DAC Binary Current Output : 1023
System Input Voltage        : 4.7820001
Output Voltage              : 7.4822955
System Output Current       : 0.0019200
Z Output                    : 3897.03
System Power W              : 0.0090394

(1)** <------------------------------------------------------------- this was a long click (not ok) ... it happens only once after boot-up, as if no case in the function (see function below) was satisfied.***
---long click (1)
**<------------------------------------------------------------- this was a long click  (ok)**
ENTERING SELECTION MODE NORMAL OPERATION

---long click (1)
**<------------------------------------------------------------- this was a long click  (ok)**
Getting out of the Parameter Selection function

ENTERING MODIFICATION MODE

---long click (1)
**<------------------------------------------------------------- this was a long click  (ok)**
System Voltage Set Value : 10.000
Corresponding DAC Voltage Output : 1.65
Corresponding DAC Binary Voltage Output : 2047
Getting out of the Parameter Modificaton function

---double click (2)
**<------------------------------------------------------------- this was a long click  (ok)**
ENTERING PRESET SELECTION MODE

----Set pointer to the selected window
Set Coordinates To Preset Window
SetCoordinatesToPresetWindow preset3V3
*****Highlight Preset Window
*****Initialize Preset Window
CW Direction -- Encoder Value : 1
*******1----Set pointer to the selected window
++++Give Preset Colors To Window : preset5V0
Set Coordinates To Preset Window
SetCoordinatesToPresetWindow preset5V0
*****Highlight Preset Window
*****Initialize Preset Window
---double click (1)
**<------------------------------------------------------------- this was a long click (not ok) ... it appens consistently.**
---long click (1)
**<------------------------------------------------------------- this was a long click  (ok)**
Preset Value Selected saved to EEPROM
System Voltage Set : 5.000
System Current Set : 0.500
System Input Voltage        : 4.7900000
Output Voltage              : 7.4725275
System Output Current       : 0.0019200
Z Output                    : 3891.94
System Power W              : 0.0095182

/*************************************************************************************************************************/
/* BUTTON SWITCH HANDLER SECTION */
/*************************************************************************************************************************/

void handler(Button2& btn) {
  switch (btn.getType()) {
    case long_click:
      myButtonState = ds.ButtonState::longClick;
      Serial.print("---long click ");
      //Serial.print(bf.buttonStatus.buttonState); Serial.print("\t");
    break;

    case double_click:
      myButtonState = ds.ButtonState::doubleclick;
      Serial.print("---double click ");
      //Serial.print(bf.buttonStatus.buttonState); Serial.print("\t");
    break;

    case triple_click:
      myButtonState = ds.ButtonState::tripleClick;
      Serial.print("---triple click");
      //Serial.print(bf.buttonStatus.buttonState); Serial.print("\t");
    break;

  case single_click:
    myButtonState = ds.ButtonState::click;
    Serial.print("---single click");
    //Serial.print(bf.buttonStatus.buttonState); Serial.print("\t");
  break;
  }

  Serial.print(" (");
  Serial.print(btn.getNumberOfClicks());
  Serial.println(")");
}

void FunctionProcessing::buttonSetup() {
  button.begin(ENCODER_SWITCH_PORT,INPUT_PULLUP,false,true); // byte
attachTo, byte buttonMode /* = INPUT_PULLUP */, boolean isCapacitive /* =
false */, boolean activeLow /* = true */

  button.setDebounceTime(50); //
  button.setLongClickTime(500);
  button.setDoubleClickTime(700);

  button.setClickHandler(handler);
  button.setLongClickDetectedHandler(handler); //setLongClickHandler(handler);
  button.setDoubleClickHandler(handler);
  button.setTripleClickHandler(handler);
}

Regards,
Rene-Jean
Originally posted by @renejeanmercier in https://github.com/LennartHennigs/Button2/issues/43#issuecomment-1297846614

Hey @renejeanmercier,
I had a hard time replicating your issue but I did refactor the main loop() and fixed another bug with the LongPress handling.
Please check out 2.2.0 and let me know if your error still persists.
Cheers
l.

Hi Lennart,
Unfortunately the problem persists with the LonngClickDetectedHandler in
version 2.2.0.
With the same setup as before with the interrupt, that works great, and the
commented behavior (see below). I notice that the first long press results
in a single press and a long press after a double press results in a double
press.
With that information you might be able to pinpoint the problem.
Thank you Lennart for all your help and efforts to get it perfectly working.
I take the occasion to wish you and your family a Merry Christmas and a
Great New Year 2023.
Regards,
Rene-Jean
#include "Hardware_Timer.h"
/**************************************************************************************************************************/
/ TO USE STM32DUINO FRAMEWORK TIMER, SEE :*
*https://github.com/stm32duino/STM32Examples/blob/main/examples/Peripherals/HardwareTimer/Timebase_callback_with_parameter/Timebase_callback_with_parameter.ino
https://github.com/stm32duino/STM32Examples/blob/main/examples/Peripherals/HardwareTimer/Timebase_callback_with_parameter/Timebase_callback_with_parameter.ino
/
HardwareTimer Timer(TIM2);
/**************************************************************************************************************************/
void Hardware_Timer::initializeTimerInterrupt() {
Timer.pause(); // Pause the timer during the configuration
Timer.setOverflow(TIMER_INTERRUPT_FREQUENCY, HERTZ_FORMAT); *// Desired
period *
Timer.attachInterrupt(button2ServiceIsr); // Point to the interrupt
routine to be called
Timer.refresh(); // Update the parameters
Timer.resume(); // Start the timer
}
/**************************************************************************************************************************/
void button2ServiceIsr() { // Timer interrupt routine (called every
millisecond)
// Serial.print("."); // For timer testing purpose
// digitalWrite(CLOCK_SAMPLE_PORT, !digitalRead(CLOCK_SAMPLE_PORT)); //
Alternative for timer testing purpose
button.loop();
}
/*************************************************************************************************************/
void Hardware_Timer::buttonSetup() {
button.begin(ENCODER_SWITCH_PORT,INPUT_PULLUP,true); // byte attachTo,
byte buttonMode / = INPUT_PULLUP /, boolean activeLow / = true /
button.setDebounceTime(50);
button.setLongClickTime(200);
button.setDoubleClickTime(300);
button.setClickHandler(handler);
button.setLongClickDetectedHandler(handler);
//button.setLongClickHandler(handler);
button.setDoubleClickHandler(handler);
button.setTripleClickHandler(handler);
}
/*************************************************************************************************************/
void handler(Button2& btn) {
int buttonType = btn.getType();
switch(buttonType) {
case single_click:
myButtonState = ds.ButtonState::click;
Serial.print("---single ");
break;
case double_click:
myButtonState = ds.ButtonState::doubleclick;
Serial.print("---double ");
break;
case triple_click:
myButtonState = ds.ButtonState::tripleClick;
Serial.print("---triple ");
break;
case long_click:
myButtonState = ds.ButtonState::longClick;
Serial.print("---long ");
break;
}
Serial.print("click");
Serial.print(" (");
Serial.print(btn.getNumberOfClicks());
Serial.println(")");
}
=====================
Reconnecting to /dev/ttyACM0 . Connected!
Starting MMT Power Supply Interface !!!
EEPROM Beginning : 0
EEPROM End : 16384
Address of eeprom Voltage Output Set : 0
address of eeprom Current Output SET : 4
Address of Shunt Voltage Compensation : 8
Last Voltage Set Value Restored : 3.300
System Voltage Set Value : 3.300
Corresponding DAC Voltage Output : 0.544
Corresponding DAC Binary Voltage Output : 675
Last Current Set Value Restored : 0.500
System Current Set Value : 0.500
Corresponding DAC Current Output : 0.825
Corresponding DAC Binary Current Output : 1023
INA219 Shunt Offset Voltage Value : 0.885
Correction to INA219 Shunt Voltage of : 0.885 mV applied to the calculation
PG set to PG40
---single click (1) ←-------NOT OK--First* press after power-up and was a
long click*
---long click (1) ←--------OK------Second press after power-up and was a
long click
ENTERING SELECTION MODE NORMAL OPERATION
---long click (1) ←--------OK------Third press after power-up and was a
long click
Getting out of the Parameter Selection function
ENTERING MODIFICATION MODE
---long click (1) ←--------OK------Fourth press after power-up and was a
long click
Preset Value was already the selected value. Value not stored in EEPROM
System Voltage Set : 3.300
Corresponding DAC Voltage Output : 0.54
Corresponding DAC Binary Voltage Output : 675
System Current Set : 0.500
Corresponding DAC Current Output : 0.82
Corresponding DAC Binary Current Output : 1023
Getting out of the Parameter Modificaton function
---double click (2) ←------OK------Fifth press after power-up and was a
double click
ENTERING PRESET SELECTION MODE
----Set pointer to the selected window
Set Coordinates To Preset Window
SetCoordinatesToPresetWindow preset3V3
*****Highlight Preset Window
*****Initialize Preset Window
---double click (1) ←-------NOT OK--Sixth press after power-up and was a
long click
---long click (1) ←--------OK------Seventh press after power-up and was a
long click
Preset Value was already the selected value. Value not stored in EEPROM
System Voltage Set : 3.300
Corresponding DAC Voltage Output : 0.54
Corresponding DAC Binary Voltage Output : 675
System Current Set : 0.500
Corresponding DAC Current Output : 0.82
Corresponding DAC Binary Current Output : 1023
===================================================== end
Le mar. 13 déc. 2022, à 14 h 54, Lennart Hennigs @.***>
a écrit :

Hey @renejeanmercier https://github.com/renejeanmercier,
I had a hard time replicating your issue but I did refactor the main
loop() and fixed another bug with the LongPress handling.
Please check out 2.2.0 and let me know if your error still persists.
Cheers
l.
—
Reply to this email directly, view it on GitHub
https://github.com/LennartHennigs/Button2/issues/46#issuecomment-1349606727,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGFVP36Q7KZHHNOEO52VBS3WNDIADANCNFSM6AAAAAART2TZ24
.
You are receiving this because you were mentioned.Message ID:
@.***>

Hey, I gave it another shot.
Fingers crossed, now, @renejeanmercier!

Hi Lennart,
Call it SUCCESS !!!!!!!
All functions click, doubleClick, tripleClick, longClick, longClickDetected
are WORKING FINE !!!
Thank you so much for your efforts.
Mon amitié vous accompagne !
Joyeuses Fêtes !
René-Jean
Le ven. 16 déc. 2022, à 17 h 57, Lennart Hennigs @.***>
a écrit :

Hey, I gave it another shot.
Fingers crossed, now, @renejeanmercier
https://github.com/renejeanmercier!
—
Reply to this email directly, view it on GitHub
https://github.com/LennartHennigs/Button2/issues/46#issuecomment-1355753517,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGFVP32UARPNQZBLN5LJP2TWNTXT7ANCNFSM6AAAAAART2TZ24
.
You are receiving this because you were mentioned.Message ID:
@.***>

Hey @renejeanmercier,
thank you!
You are very welcome.
It helped a lot that I refactored the loop code last week.
It was now "merely" a matter of reading the code and looking for the proper place to change things.
And in 2.2.1 I had my counts off – thinking helps in my many instances ;-).
And thank you again for pointing out the bug and your persistence as well.
I will gladly close this bug for good.
Have happy holidays and feel free to let me know how your project is going.
All the best!

Hi Lennart,
It was selfish on my part ! LOL. I wanted that function because you don't
have to extrapolate thinking that you have pressed the switch long enough.
You did a great job on cleaning your code. Much more modular, much more
readable. At first I did not recognize it.
It was a great pleasure exchanging with you and I really enjoyed your
feedback each time.
Yes, once finished I will let you know about my project. Lennart, do you
have a gmail email ?.
Once more, Merry Christmas.
Regards,
René-Jean
Le sam. 17 déc. 2022, à 03 h 06, Lennart Hennigs @.***>
a écrit :

Hey @renejeanmercier https://github.com/renejeanmercier,
thank you!
You are very welcome.
It helped a lot that I refactored the loop code last week.
It was now "merely" a matter of reading the code and looking for the
proper place to change things.
And in 2.2.1 I had my counts off – thinking helps in my many instances ;-).
And thank you again for pointing out the bug and your persistence as well.
I will gladly close this bug for good.
Have happy holidays and feel free to let me know how your project is going.
All the best!
—
Reply to this email directly, view it on GitHub
https://github.com/LennartHennigs/Button2/issues/46#issuecomment-1356111927,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGFVP3572HU42O27SRF2FLLWNVX7XANCNFSM6AAAAAART2TZ24
.
You are receiving this because you were mentioned.Message ID:
@.***>


Remove GUI's license

Pull Request Description
We shouldn't segregate the project with two licenses.
This pull request makes the GUI licensed under the main license used by the project.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


85 vulnerabilities reported on maven for the SDK

Query/Question
85 vulnerabilities reported for the SDK on maven..looking for updated package with fixes to vulnerabilities.
Why is this not a Bug or a feature Request?
Maven reports that the SDK has 85 vulnerabilites.. do we have updated package fixing the vulnerabilities reported on maven?
Setup (please complete the following information if applicable):
https://mvnrepository.com/artifact/com.azure/azure-sdk-all/1.0.0

Hi @pchinta thank you for reaching out to us via this Github issue.  Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations.  Please note that link is from a nearly 4-year-old 1.0.0-SNAPSHOT and newer versions of all libraries exist.
For security issues, we kindly ask that folks do not report security vulnerabilities through public GitHub issues.
Instead, please report them to the Microsoft Security Response Center (MSRC) at https://msrc.microsoft.com/create-report.  If you prefer to submit without logging in, send email to<EMAIL_ADDRESS>If possible, encrypt your message with our PGP key; please download it from the Microsoft Security Response Center PGP Key page.
More details are available in the SECURITY.md in any of our github repos.
https://github.com/Azure/azure-sdk-for-java/blob/main/SECURITY.md#reporting-security-issues


release: Add support for ZSH in RELEASING and add tagging instructions

CATEGORY
Choose one

[x] Bug Fix
[x] Enhancement (new features, refinement)
[ ] Refactor
[ ] Add tests
[x] Build / Development Environment
[x] Documentation

SUMMARY
Currently the release script don't support ZSH properly, causing trouble when crafting a release on MacOS Catalina. Also added instructions for tagging and pushing the tag.
REVIEWERS
@dpgaspar

Codecov Report

Merging #9451 into master will not change coverage by %.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #9451   +/-   ##
=======================================
  Coverage   59.02%   59.02%
=======================================
  Files         379      379
  Lines       12189    12189
  Branches     3014     3014
=======================================
  Hits         7194     7194
  Misses       4814     4814
  Partials      181      181

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 e33f6c2...6913d57. Read the comment docs.


Refactor postAfterEditMethodCallbacks execution on server

postAfterEditMethodCallbacks execution behaviour was copied straight away from postEditMethodCallbacks execution : perform a reduction on the post modifier by executing every callbacks.
Since postAfterEditMethodCallbacks is executed after the actual DB update, we don't need to alter the modifier because it won't be used, so we can use a plain forEach instead of a reduction.
We also need to pass the post ID to the callback (as second argument so it won't break existing callbacks) because there's no way to identify the post that was modified in the callback if we don't.
Other modification on line 560 is due to trailing whitespace auto removal in my code editor.

Makes sense, thanks! I don't think I've ever used postAfterEditMethodCallbacks for anything yet anyway.


Add support for single line doubleslash style

We are using a sinlge line notice looking like this:
//Copyright © 2015 Acme Inc. All Rights Reserved.
package com.acme;

class AcmeClass{

It took me some time to figure out the correct configuration:
<?xml version="1.0" encoding="ISO-8859-1"?>
<additionalHeaders>
    <doubleslash_single_style>
        <beforeEachLine>//</beforeEachLine>
        <firstLineDetectionPattern>(\s|\t)*//.*$</firstLineDetectionPattern>
        <lastLineDetectionPattern>(\s|\t)*//.*$</lastLineDetectionPattern>
        <allowBlankLines>false</allowBlankLines>
        <isMultiline>false</isMultiline>
        <padLines>false</padLines>
    </doubleslash_single_style>
</additionalHeaders>

I'd send you a pull request but I can't find where to add it in the source

It's in HeaderType. You'll have to send a unit test also to make sure your pattern is working.


[catmem] Support bi-directional communication

Context
Currently Catmem can only open a memory queue/pipe and connect to either the consumer or producer end. It would be good to be able to support both on a single Catmem queue as this would significantly simplify Catloop.
Proposed Solution
Implement bi-directional queues in Catmem by making the default mode for create and open to create or open two shared memory ring buffers and connect to each end.

PR #882 closes this issue


alternative solution for alias conflicts with PowerShell on Windows

I tried out the solution described at the bottom of the README. It didn't work.
~By running following command in PowerShell 7, I could get rid of the system alias:~
~del alias:ni -Force~
~The -Force flag is needed because it is a system alias that is protected.~
Edit: the solution above is only valid for the current session.
The following solution worked:

create powershell profile file:

New-Item $profile -force -itemtype file

open file:

notepad $profile

add following line:

remove-item alias:ni -Force

safe file and open new PowerShell

This would overwrite your existing PowerShell profile and is definitely not recommended.
If you want to co conditionally add this to your profile, you should consider something like this:
if (-not (Test-Path $profile)) {
  New-Item -ItemType File -Path (Split-Path $profile) -Force -Name (Split-Path $profile -Leaf)
}

$profileEntry = 'Remove-Item Alias:ni -Force -ErrorAction Ignore'
$profileContent = Get-Content $profile
if ($profileContent -notcontains $profileEntry) {
  $profileEntry | Out-File $profile -Append -Force
}

If there is any improvement could make to the current docs, feel free to PR. I am not familiar with PowerShell to judge/help here.


Update to ASP.NET Core 2.1

Is your feature request related to a problem? Please describe.
None, just update to ASP.NET Core 2.1
Describe the solution you'd like
Update to ASP.NET Core 2.1

@Israel-94 https://docs.microsoft.com/en-us/aspnet/core/migration/20_21?view=aspnetcore-2.1 might be useful.


Maybe steer people away from using the global db

Using globals variables are a bad practice for a number of reasons. In this case specifically it can have strange consequences if a library makes use of sqlite. If the application, or another library, also does that. They will most likely try and write to the same database instead of their separate ones which can make all sort of things go wrong.
A great first step I think would be to change the readme to point people to capture the output from db.open instead of throwing it away and using the global db.
How about something like the following?
import sqlite from 'sqlite'
import express from 'express'

const app = express()
const dbPromise = sqlite.open('database.sqlite').then(db => db.migrate())

app.get('/post/:id', async (req, res, next) => {
  try {
    const db = await dbPromise

    const [post, categories] = await Promise.all([
      db.get('SELECT * FROM Post WHERE id = ?', req.params.id),
      db.all('SELECT * FROM Category')
    ])

    res.render('post', { post, categories })
  } catch (err) {
    next(err)
  }
})

app.listen(/* ... */)

Long term I would love it if the global db could be dropped in the next major version...

I don't see a problem with updating the readme - feel free to create a PR with the updated example. Another feature I've been using is instead of a file name, I use :memory: for an in-memory database (useful for testing)

PR sent 🚀
#45

Just realised that it could potentially be very nice to have an API that looks something like this:
import sqlite from 'sqlite'
import express from 'express'

const app = express()
const db = sqlite.open('database.sqlite', { migrate: true })

app.get('/post/:id', async (req, res, next) => {
  try {
    const [post, categories] = await Promise.all([
      db.get('SELECT * FROM Post WHERE id = ?', req.params.id),
      db.all('SELECT * FROM Category')
    ])

    res.render('post', { post, categories })
  } catch (err) {
    next(err)
  }
})

app.listen(/* ... */)

The Database implementation would look something like this:
const kDriver = Symbol('driver')

function migrate (driver) {
  return new Promise((resolve, reject) => {
    // ...
  })
}

class Database {
  constructor (filename, options = {}) {
    this[kDriver] = new Promise((resolve, reject) => {
      const driver = new sqlite3.Database(filename, (err) => {
        if (err) return reject(err)

        return (options.migrate ? migrate(driver) : driver)
      })
    })
  }

  run (sql) {
    return this[kDriver].then((driver) => {
      // ...
    })
  }

  // ...
}

closing as there has not been activity in 3 years


Change the "more" count text

Hi!
Is there a way to change the default "More" text (when multiple events in one day) to a word in another language? I'd like to change to portuguese, but I couldn't find if it already exists.

Thanks for your interest. The feature is not implemented yet, but if you create a PR for that I'm happy to merge it!


App engine standard SQL Server

Hello,
I read in here https://cloud.google.com/sql/docs/sqlserver/connect-app-engine-standard that you can connect to sql server from app engine standard env. The code example refers to a github sample https://github.com/GoogleCloudPlatform/php-docs-samples/tree/f3907481ba3380c7ef83c41e4e68189124f3f5c2/cloud_sql/sqlserver/pdo that states sqlsrv is needed to connect to SQL Server through app engine which is only possible through a costum runtime (which also is what my testing resulted in). The code example given in https://cloud.google.com/sql/docs/sqlserver/connect-app-engine-standard underlies this since it uses the sqlsrv in the connection:
// $username = 'your_db_user';
// $password = 'yoursupersecretpassword';
// $dbName = 'your_db_name';
// $dbHost = "<IP_ADDRESS>";

// Connect using TCP
$dsn = sprintf('sqlsrv:server=%s;Database=%s', $dbHost, $dbName);

// Connect to the database
$conn = new PDO($dsn, $username, $password, $connConfig);

My conclusion is now that it is not possible to connect to the sql server through the app engine standard env...or is there a way?
If you cant connect to SQL Server through app engine stanard env maybe update https://cloud.google.com/sql/docs/sqlserver/connect-app-engine-standard that no other people get confused.
best regards,
David

Hello @david-muenzer ! I have good news!
It isn't that MSSQL isn't supported by App Engine Standard, it's that the sqlsrv extension isn't available. It's possible to install custom extensions, so you can activate sqlsrv.so that way by following these steps:

Download SQL Server Extension code and put it in your app engine application:

# downloads sqlsrv-5.10.1.tgz
wget https://pecl.php.net/get/sqlsrv-5.10.1.tgz
tar xvf sqlsrv-5.10.1.tgz
mv sqlsrv-5.10.1.tgz sqlsrv

Put the commands to compile the extension in your composer.json:

{
    "scripts": {
        "post-autoload-dump": [
            "cd sqlsrv && phpize --clean && phpize && ./configure && make",
            "cp sqlsrv/modules/sqlsrv.so vendor/"
        ]
    }
}

Activate the extension in your php.ini:

# php.ini
extension=/workspace/vendor/sqlsrv.so

Add an app.yaml and index.php so you can see that the extension was configured correctly:

# app.yaml
runtime: php81

<?php

phpinfo()

Now just run gcloud app deploy.  I haven't tested this more than just making sure the extension is activated though, but it should work.

Thank you very much, helped a lot ! :-)


Inconsistent LPUSH: Command in Dice docs isn't matching while running it via dicedb-cli ( #835 )

Steps to reproduce
Please refer to this screenshot. Left side is RedisCLI and right side is DiceCLI

Expected output
The expected output when the above set of commands (maybe when run on Redis)
(integer) 1

Observed output
The observed output when the above set of commands when run on DiceDB
(integer) b'OK'

Expectations for resolution
This issue will be considered resolved when the following things are done

changes in the dice code to meet the expected behavior
addition of relevant test case to ensure we catch the regression

You can find the tests under the integration_tests directory of the dice repository and the steps to run are in the README file. Refer to the following links to set up DiceDB and Redis 7.2.5 locally

setup DiceDB locally
setup Redis 7.2.5 locally
setup DiceDB CLI

I would love to work on this

@surya0180 can i take this?

Based on the first comment assigning it to @bhima2001
@RishabhC-137 thanks for showing up interest, please check other opened issues.

https://github.com/DiceDB/dice/pull/969  --> Please find the PR attached.

Closing, merged as part of https://github.com/DiceDB/dice/pull/969


SyntaxError when using Corsica.Router (v0.5.0)

Hello, everyone!
I am getting a SyntaxError when using Corsica.Router with the usage example found in the documentation:
defmodule MyApp.CORS do
  use Corsica.Router,
    origins: ["http://localhost", ~r{^https?://(.*\.?)foo\.com$}],
    allow_credentials: true,
    max_age: 600,

  resource "/public/*", origins: "*"
  resource "/*"
end

defmodule MyApp.Endpoint do
  plug Logger
  plug MyApp.CORS
  plug MyApp.Router
end

== Compilation error on file lib/myapp/cors.ex ==
** (SyntaxError) lib/myapp/cors.ex:7: syntax error before: resource
    (elixir) lib/kernel/parallel_compiler.ex:117: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/1

The Corsica plug, however, works fine.
I am using Corsica 0.5.0.
Thank you!

You have a comma after the max_age: 600 property. It is of course my fault as that is what the example in the README has :( Sorry for the trouble, pushed a fix in ece6846. Thanks for the report! 💟


Use nodePoolRollingStrategy of 'AvailabilityZone' by default.

The 'AvailabilityZone" nodePoolRollingStrategy was introduced a while ago and fits in between the existing 'Parallel' and 'Sequential' strategies - being safer for customer applications than 'Parallel' but not as slow as 'Sequential' (when there are multiple different nodepool types in play).  I think this strategy makes a better default.
Changes: -

Make 'AvailabilityZone' the default strategy.
Set the MinInstancesAvailable to 0 by default.
The maxBatchSize remains 1 by default (safety first).
We invite users to set the maxbatchsize to the nodepool maxcount to test removing a whole AZ at a time (and when this happens we will remove the nodedrainer lifecycle hook).  This is so people can test what will happen in the event of an AZ failure and see if they have scaled and distributed their apps appropriately to handle this kind of event.
Update cloudformation suspend automated processes which may interfere with the rolling update.
Do not update autoscaler node levels unless they have changed in the template (i.e. don't roll back autoscaler or manual scaling changes)
Remove the lifecycle hook from the controllers.  it is preferable the they shutdown quickly rather than hanging around for another 5 minutes and attempting to drain.

Sneaking in for clean up:
(Also clean up some unused refs to dashboard types - it's been migrated to a plugin)

/lgtm


[new-admin-theme] can't bulk delete bindings

can't bulk delete bindings, antiforgery issue or no delete at all.

see #6999


dirty tracking

It's not clear to me why when initialValues re-seed matches the current state is dirty still true if it matches the reseeding.  So even though we keepDirtyValues, if dirty values matches the reseed of initialvalues we should mark them not dirty
https://playground.solidjs.com/anonymous/6825e308-2353-4375-a39e-798d67da25b8
https://github.com/fabian-hiller/modular-forms/blob/4124206c0b4860d8a3c51384286c33ce3cf7429c/packages/solid/src/methods/reset.ts#L154
also shouldn't see still startValue set even with keepValue/keepDirtyValue - slightly more involved example

Can you give me a step by step guide on what to do in the playground to reproduce the problem with info on what behavior is currently happening and what behavior you would actually expect. Also feel free to give me an example of a real use case where you encountered the problem. I will then investigate the problem in detail and try to find a solution.

For the first bug:

Click the 1st button and observe the field of votes changes to dirty
Click the 2nd button the field remains dirty due to keepDirtyValues however we expect this not to be dirty, because we're reset it with 1001. Even when using keepDirtyValues you need to check if the reseeding wipes out the dirty state, otherwise progress dirty checks are not accurate

I understand, thanks for pointing that out. I will fix this with the next version.


⚠ Bofrost.fr has degraded performance

In 69fd40f, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1288 ms

Resolved: Bofrost.fr performance has improved in 8737e8b after 6 minutes.


feat: split out spawn

Note: Commands run with stdio: 'inherit' don't throw properly. This is a stopgap until a new effection feature is added so deal with it for now.


Create .gitignore

Gitignore is created. Can someone check it, please?

Looks fine! You can confirm the merge.


RuntimeError: Bad StatusOr access: INTERNAL: Mosaic failed to compile TPU kernel: Bad lhs type in tpu.matmul

Description
Using PyTorch XLA and flash attention in JAX. Using amp_bf16 mixed precision. Error occurs on the backward pass using CrossEntropyLoss
Last part of the error points to a tpu.matmul operation:
[rank0]: The MLIR operation involved:
[rank0]:   %6936 = "tpu.matmul"(%6933, %6934, %6935) <{precision = #tpu.contract_precision, transpose_lhs = false, transpose_rhs = true}> : (vector<512x128xbf16>, vector<128x128xbf16>,
[rank0]: vector<512x128xf32>) -> vector<512x128xf32>
[rank0]: ... additional diagnostics were skipped.
Full trace attached here:
mlir-error.trace.txt
System info (python version, jaxlib version, accelerator, etc.)

import jax
jax.print_environment_info()
jax:    0.4.29.dev20240514
jaxlib: 0.4.29.dev20240514
numpy:  1.26.4
python: 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0]
jax.devices (4 total, 4 local): [TpuDevice(id=0, process_index=0, coords=(0,0,0), core_on_chip=0) TpuDevice(id=1, process_index=0, coords=(1,0,0), core_on_chip=0) TpuDevice(id=2, process_index=0, coords=(0,1,0), core_on_chip=0) TpuDevice(id=3, process_index=0, coords=(1,1,0), core_on_chip=0)]
process_count: 1
platform: uname_result(system='Linux', node='t1v-n-88d3fcca-w-0', release='5.19.0-1027-gcp', version='#29~22.04.1-Ubuntu SMP Thu Jun 22 05:13:17 UTC 2023', machine='x86_64')

This seems to be an issue with bfloat16 only, and mentioned in an internal bug b/340263269#comment9

TPUv5p-8
On Thu, May 30, 2024, 9:05 AM Adam Paszke @.***> wrote:

What TPU generation were you using to run this?
—
Reply to this email directly, view it on GitHub
https://github.com/google/jax/issues/21408#issuecomment-2139515249, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AH7P5YWACBNRLA57MG7ID23ZE4PZ3AVCNFSM6AAAAABIGOAIJCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMZZGUYTKMRUHE
.
You are receiving this because you authored the thread.Message ID:
@.***>

It looks like the problem is that you have requested the matmul to run in fp32 precision, but your operands are bf16. How did you generate this kernel?

(^this means that it is expected to fail. you should adjust the code that creates this kernel to reduce requested precision when using low-precision operands)

I'm using the PyTorch XLA library. The repo is here and I get issues when I
run this in amp_bf16 or bf16. Runs fine with float32:
https://github.com/pytorch-tpu/llm-foundry
"you should adjust the code that creates this kernel to reduce requested
precision when using low-precision operands" : I followed an example on the
PyTorch XLA repo, that has me set JAX precision to highest (
https://github.com/pytorch/xla/blob/aeed61a94cbe32099ee4e896ca6afd37d4ac9456/test/test_pallas_spmd.py#L34).
Let me try removing that.
Here's a simple repro:
export PJRT_DEVICE=TPU
export XLA_USE_BF16=1
python3
xla/examples/flash_attention/train_decoder_only_flash_attention_fsdp_v2.py
Internal bug with the actual repo and issue is here: b/341696816
On Thu, May 30, 2024 at 9:15 AM Adam Paszke @.***>
wrote:

(^this means that it is expected to fail. you should adjust the code that
creates this kernel to reduce requested precision when using low-precision
operands)
—
Reply to this email directly, view it on GitHub
https://github.com/google/jax/issues/21408#issuecomment-2139533633, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AH7P5YSKISPIFAJM3G45WFTZE4Q7TAVCNFSM6AAAAABIGOAIJCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMZZGUZTGNRTGM
.
You are receiving this because you authored the thread.Message ID:
@.***>

I commented out the JAX jax_default_matmul_precision config update, and it
all runs smoothly. Thanks for the tip!
The example is this, and I'll let the PyTorch XLA team know:
https://github.com/pytorch/xla/blob/master/test/test_pallas_spmd.py
On Thu, May 30, 2024 at 9:30 AM Brian Kang @.***> wrote:

I'm using the PyTorch XLA library. The repo is here and I get issues when
I run this in amp_bf16 or bf16. Runs fine with float32:
https://github.com/pytorch-tpu/llm-foundry
"you should adjust the code that creates this kernel to reduce requested
precision when using low-precision operands" : I followed an example on the
PyTorch XLA repo, that has me set JAX precision to highest (
https://github.com/pytorch/xla/blob/aeed61a94cbe32099ee4e896ca6afd37d4ac9456/test/test_pallas_spmd.py#L34).
Let me try removing that.
Here's a simple repro:
export PJRT_DEVICE=TPU
export XLA_USE_BF16=1
python3
xla/examples/flash_attention/train_decoder_only_flash_attention_fsdp_v2.py
Internal bug with the actual repo and issue is here: b/341696816
On Thu, May 30, 2024 at 9:15 AM Adam Paszke @.***>
wrote:

(^this means that it is expected to fail. you should adjust the code that
creates this kernel to reduce requested precision when using low-precision
operands)
—
Reply to this email directly, view it on GitHub
https://github.com/google/jax/issues/21408#issuecomment-2139533633, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AH7P5YSKISPIFAJM3G45WFTZE4Q7TAVCNFSM6AAAAABIGOAIJCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMZZGUZTGNRTGM
.
You are receiving this because you authored the thread.Message ID:
@.***>


Update baremetal branch with updates from mbedtls-2.16 branch

Description
This PR updates baremetal branch with all updates made to the mbedtls-2.16 branch.
baremetal is a fork of mbedtls-2.16, so this PR just updates the fork with all the fixes that have since been merged into it.
Status
READY
Requires Backporting
NO
Migrations
NO
Additional comments
Any additional information that could be of interest

I ran the Jenkins release job on the PR and it passed without issue - build #142.

This has two approvals and a passing CI, and is a legitimate update from the base branch, marking as "ready for merge".

Moving to https://github.com/ARMmbed/mbedtls-restricted/pull/566


workspaces show screen number on screen image at top of editor

Microsoft PowerToys version
0.84.0
Installation method
PowerToys auto-update
Running as admin
No
Area(s) with issue?
Workspaces
Steps to reproduce
create a workspace with 3 screens, I have a laptop connected to two additional monitors via a docking station.   I also use duet and have a monitor on my ipad but have not really tested/used that with workspaces.
place several apps on the monitors and save the workspace.
launch the editor, you can see the screens at the top but there is no indication as to what screen number they are.

Additionally it would be more consistent if the screen numbers where the same as what is shown in system/display.  (not a requirement just icing on the cake.

✔ Expected Behavior
to see screen numbers under or above the images at the top of the editor
❌ Actual Behavior
no indication as to which image is which screen.
Other Software
No response

@bradyguyc Thanks for the feedback! The list of apps below the preview should be separated by screen number - do those numbers match the display numbers in Windows Settings? The intent is to separate by screen there to keep the preview as uncluttered as possible. /needinfo

the screen numbers do not match the windows display numbers.   In the images above workspaces screen 9 compares to windows display screen 2.   I also use a product called duet and they use letters for their screen identification.   So it's totally different than windows.   Again this is a very minor thing and just called it out for consistency.   I think the slight larger issue is that the screen 9,10 and 1 on workspaces don't align with the images or you can't easily tell which screen is which image.  I would put a label under each image indicating what screen it is.


problem creating the hex file

I've received this error when i wirte command "make" for the hex file. im a very noob in arguments so thanks if u can figure me out :)
Microsoft Windows [Versione 10.0.18362.592]
(c) 2019 Microsoft Corporation. Tutti i diritti sono riservati.
C:\WINDOWS\system32>cd C:\Users\enric\Desktop\den-hoster-master
C:\Users\enric\Desktop\den-hoster-master>make
0 [main] sh 20308 sync_with_child: child 14260(0x1EC) died before initialization with status code 0xC0000142
71 [main] sh 20308 sync_with_child: *** child state waiting for longjmp
/usr/bin/sh: fork: Resource temporarily unavailable
0 [main] sh 7256 sync_with_child: child 14952(0x1EC) died before initialization with status code 0xC0000142
63 [main] sh 7256 sync_with_child: *** child state waiting for longjmp
/usr/bin/sh: fork: Resource temporarily unavailable
[INFO]    : Begin compilation of project "Joystick"...
avr-gcc (WinAVR 20100110) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[GCC]     : Compiling C file "Joystick.c"
avr-gcc -c -pipe -gdwarf-2 -g2 -mmcu=atmega16u2 -fshort-enums -fno-inline-small-functions -fpack-struct -Wall -fno-strict-aliasing -funsigned-char -funsigned-bitfields -ffunction-sections -I. -I./LUFA/.. -DARCH=ARCH_AVR8 -DBOARD=BOARD_NONE -DF_USB=16000000UL -DF_CPU=16000000UL -mrelax -fno-jump-tables -x c -Os -std=gnu99 -Wstrict-prototypes -DUSE_LUFA_CONFIG_HEADER -IConfig/  -MMD -MP -MF Joystick.d Joystick.c -o Joystick.o
In file included from Joystick.h:53,
from Joystick.c:27:
Descriptors.h:50: error: conflicting types for 'CALLBACK_USB_GetDescriptor'
./LUFA/Drivers/USB/Core/AVR8/../Device.h:133: error: previous declaration of 'CALLBACK_USB_GetDescriptor' was here
Joystick.c: In function 'SetupHardware':
Joystick.c:127: warning: implicit declaration of function 'clock_prescale_set'
Joystick.c:127: error: 'clock_div_1' undeclared (first use in this function)
Joystick.c:127: error: (Each undeclared identifier is reported only once
Joystick.c:127: error: for each function it appears in.)
make: *** [Joystick.o] Error 1
C:\Users\enric\Desktop\den-hoster-master>

If you're using winAVR I would recommend installing the avr toolchain and AVRdude and compile using GITbash

thank you for the answer! ive installed avrdude and avr toolchain and for gitbash seem everything work fine but when i launch make command, give me the same error:
enric@HIKOPC MINGW64 ~/desktop/den-hoster-master
$ make
[INFO]    : Begin compilation of project \Joystick"...
avr-gcc (AVR_8_bit_GNU_Toolchain_3.6.2_1759) 5.4.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[GCC]     : Compiling C file \Joystick.c"
avr-gcc -c -pipe -gdwarf-2 -g2 -mmcu=atmega16u2 -fshort-enums -fno-inline-small-functions -fpack-struct -Wall -fno-strict-aliasing -funsigned-char -funsigned-bitfields -ffunction-sections -I. -I./LUFA/.. -DARCH=ARCH_AVR8 -DBOARD=BOARD_NONE -DF_USB=16000000UL -DF_CPU=16000000UL -mrelax -fno-jump-tables -x c -Os -std=gnu99 -Wstrict-prototypes -DUSE_LUFA_CONFIG_HEADER -IConfig/  -MMD -MP -MF Joystick.d Joystick.c -o Joystick.o
In file included from Joystick.h:53:0,
from Joystick.c:27:
Descriptors.h:50:10: error: conflicting types for 'CALLBACK_USB_GetDescriptor'
uint16_t CALLBACK_USB_GetDescriptor(
^
In file included from ./LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h:67:0,
from ./LUFA/Drivers/USB/Core/USBController.h:150,
from ./LUFA/Drivers/USB/Core/USBTask.h:47,
from ./LUFA/Drivers/USB/USB.h:386,
from Joystick.h:47,
from Joystick.c:27:
./LUFA/Drivers/USB/Core/AVR8/../Device.h:133:13: note: previous declaration of 'CALLBACK_USB_GetDescriptor' was here
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
^
make: *** [Joystick.o] Error 1

ive just figured out the wrong part of the code wrong for my setup, thx again for the help!


Error running yo hubot

I'm following the instructions here: https://hubot.github.com/docs/.
I have successfully run npm install -g yo generator-hubot.
$ yo --version
5.0.0
$ npm -v
10.8.1
$ node -v
v22.3.0

Then I mkdir hubot && cd hubot, and run yo hubot and accept all defaults.
(node:76306) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
? My Owner hubot
? Bot name mybot
? Description A simple helpful robot for your Company
? Bot adapter shell
                     _____________________________
                    /                             \
   //\              |      Extracting input for    |
  ////\    _____    |   self-replication process   |
 //////\  /_____\   \                             /
 ======= |[^_/\_]|   /----------------------------
  |   | _|___@@__|__
  +===+/  ///     \_\
   | |_\ /// HUBOT/\\
   |___/\//      /  \\
         \      /   +---+
          \____/    |   |
           | //|    +===+
            \//      |xx|

✖ An error occured while running hubot:app#writing
Error hubot

Cannot read properties of null (reading 'fromBasePath')
➜  hubot

yo doctor checks out
➜  hubot yo doctor

Yeoman Doctor
Running sanity checks on your system

✔ No .bowerrc file in home directory
✔ Global configuration file is valid
✔ NODE_PATH matches the npm root
✔ No .yo-rc.json file in home directory
✔ Node.js version
✔ npm version
✔ yo version

Everything looks all right!
➜  hubot

Seems like the same problem as this person: https://stackoverflow.com/questions/78616874/error-cannot-read-properties-of-null-reading-frombasepath-on-hubot-creating.
I think the problem is this line this.copyTemplate('scripts/', 'scripts/', null, this.props) from app/index.js, which appears to have been fixed in dd084f6d. Seems like maybe just need to cut a new release of this package.

Yes, that should fix it. But I don't have permissions to update the invalid NPM_TOKEN in the CI environment variables so I can't publish a new version.
I suggest using npx hubot to create new bots instead of yo hubot.


async/await usage

Just in case anyone's using this and trying to run in modern Node, the callbacks aren't standard so promisify requires some work to get it behaving.
Not perfect but it's a start if you're trying to reuse connect style middleware with direct calls in something like a cron.
    require('run-middleware')(server);

    server.runMiddleware[util.promisify.custom] = (path, options) => {
        return new Promise((resolve, reject) => {
            server.runMiddleware(path, options, function (code,data,headers) {
                let payload = {code: code, data: data, headers: headers};
                resolve(payload);
            });
        });
    };

    const runMiddlewarePromise = util.promisify(server.runMiddleware);

    const runMiddlewareAsync = async (path, options) => {
        try {
            const middlewareRes = await runMiddlewarePromise(path, options);
            return middlewareRes;
        } catch(e) {
            console.error("NOT IMPLEMENTED: ", e);
            return false;
        }
    };

    // ======= Execute with the following ==============
    let resTest = await runMiddlewareAsync('/my/url',{
                    secure: true,
                    connection: {},
                    method:'GET'
                });

    console.log("res Test: ", resTest);

Thanks. Can you create a pull request?

Ultimately it makes more sense to just use node-fetch if your use case is for emulation, ends up being simpler

Ultimately it makes more sense to just use node-fetch if your use case is for emulation, ends up being simpler