Stick to standard iterator invalidation rules

It seems value computation of the expression is sequenced before the side effect of post-increment, value computation of an argument is sequenced before the function call, but there's no sequencing between the function call and the side effect of the post-increment. So when the ++ happens is indeterminate in c++ specification.

hmm, http://en.cppreference.com/w/cpp/language/eval_order  rule 3 invalidates this patch :)

Yes, erase(it++) is common practice.


feat(build-and-test-differential): skip cuda build when tag:require-cuda-build-and-test is not attached

Description
This PR is to prevent the execution of build-and-test-differential (humble, -cuda) for PRs related to packages that are not cuda-related.
For PRs that do not have the tag:require-cuda-build-and-test label, all steps within build-and-test-differential (humble, -cuda) will be skipped.
How was this PR tested?
A similar workflow was tested at https://github.com/yhisaki/ros2-unit-test-sample/actions/runs/10483601306/job/29036576962.
In this workflow, steps are skipped if the label skip-world is applied when matrix.name is world.
skip-world corresponds to tag:require-cuda-build-and-test, and matrix.name corresponds to matrix.container-suffix.
Notes for reviewers
This PR should be merged after https://github.com/autowarefoundation/autoware.universe/pull/8546 is merged.
Interface changes
None.

Effects on system behavior
None.

Thank you for review! I will try it!

I think it's not good for maintainability to have ${{ env.SKIP != 'true' }} appear many times. Can you refactor by making a composite action in .github/actions so that the conditional branching can be done in just one place? https://docs.github.com/en/actions/sharing-automations/creating-actions/creating-a-composite-action
I hope the following code is helpful for you to make it possible. https://github.com/autowarefoundation/autoware/blob/main/.github/workflows/docker-build-and-push.yaml#L60-L64

@youtalk
First, we submitted a PR that only separates build-and-test-differential into composite actions.


fix: Circular dependency

The cmd/wallet-sdk-gomobile module was depending on the cmd/utilities module (with a replace statement), and the cmd/utilities module was depending on cmd/wallet-sdk-gomobile module (with a recent commit tag). This causes import issues when updates are made to the interfaces in cmd/wallet-sdk-gomobile.
This commit fixes that by moving the code from cmd/utilities to cmd/wallet-sdk-gomobile and making it a package instead of a module. In order to avoid the exported types and methods from appearing in the bindings (as they are internal details), I modified the build scripts to exclude that package.
This solution allows us to reuse those wrapper objects while preventing a circular dependency and also prevents them from showing up in the bindings.
Signed-off-by: Derek Trider<EMAIL_ADDRESS>

Note that gomobile doesn't allow me to use an internal go package (which would have also solved the problem without requiring the script changes).

Codecov Report
Base: 91.01% // Head: 91.01% // No change to project coverage :thumbsup:

Coverage data is based on head (3eca3a0) compared to base (79bb57b).
Patch coverage: 100.00% of modified lines in pull request are covered.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #168   +/-   ##
=======================================
  Coverage   91.01%   91.01%
=======================================
  Files          37       37
  Lines        1314     1314
=======================================
  Hits         1196     1196
  Misses         71       71
  Partials       47       47

Impacted Files
Coverage Δ

...md/wallet-sdk-gomobile/wrapper/credentialreader.go
92.30% <ø> (ø)

...llet-sdk-gomobile/wrapper/documentloaderwrapper.go
100.00% <ø> (ø)

cmd/wallet-sdk-gomobile/wrapper/resolverwrapper.go
100.00% <ø> (ø)

cmd/wallet-sdk-gomobile/credential/inquirer.go
91.04% <100.00%> (ø)

cmd/wallet-sdk-gomobile/did/wellknown.go
100.00% <100.00%> (ø)

cmd/wallet-sdk-gomobile/openid4ci/interaction.go
82.08% <100.00%> (ø)

cmd/wallet-sdk-gomobile/openid4ci/resolveopts.go
89.61% <100.00%> (ø)

cmd/wallet-sdk-gomobile/openid4vp/openid4vp.go
93.75% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


1.0.21_crab version of Changes needed for automatic splitting in CRAB3

Allow to specify maximum runtime.
Adjusts maxSecondsUntilRampdown as desired.  Pertains to dmwm/CRABServer#4690.

Adjust to string formatting in dashboard to accept all CRAB_IDs

Fail job splitting if a total job count limit is exceeded.
Only raises an exception when a limit is set.  This is in preparation for
an automated splitting mode for CRAB3, where splitting parameters may yield
a lot of jobs and cause excessive load on the schedd.

After this is merged, could you create a new tag as well (1.0.21.crab4)? Thanks!

Master PR here: https://github.com/dmwm/WMCore/pull/7083

1.0.21.crab4 tagged


[Doc] Document new objectives and metrics available on GPUs

@trivialfis We don't support survival:cox and aucpr yet?


Add Support For Connecting With Multiple Bluetooth Devices Simultaneously

From @GoogleCodeExporter on May 31, 2015 11:26
What should be supported?
A script should be able to connect and accept Bluetooth connections from
multiple devices simultaneously. This may include a mix of other phones as
well as serial devices.

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 16 Apr 2010 at 5:06
Copied from original issue: damonkohler/android-scripting#293

From @GoogleCodeExporter on May 31, 2015 11:26
I have created an initial implementation for this, outgoing connections works
really well, I haven't tested incomming connections.

Patch can be found in my personal branch, commit is:
http://code.google.com/r/naranjomanuel-sl4a/source/detail?r=b8473ecaf81ab84fa887
04ba2864b806bfff2bab

Original comment by<EMAIL_ADDRESS>on 26 Nov 2010 at 12:47

From @GoogleCodeExporter on May 31, 2015 11:26
i have an issue trhat my samsung gt-550 anroid bluetooth does not connect to my
nissan altima built in bluetooth

<EMAIL_ADDRESS>Abdul Samad

Original comment by<EMAIL_ADDRESS>on 16 Dec 2010 at 6:20


fix: use node available in node status

cc @DanielWinks
TODOs:

[ ] Add availability property on discovery

Pull Request Test Coverage Report for Build 605297550

0 of 4 (0.0%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.003%) to 18.801%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

lib/ZwaveClient.js
0
1
0.0%

types/index.d.ts
0
1
0.0%

lib/Gateway.js
0
2
0.0%

Totals

Change from base Build 602502207:
-0.003%

Covered Lines:
2004

Relevant Lines:
10940

💛  - Coveralls


cannot connect

Hi i installed everything and have the xml-rpc server running through your docker image...
if i try to run the standart example i get the following error in node.js:
{ [Error: connect ECONNREFUSED]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect' } undefined
any ideas?

same issue here   :(

@maerzhase
just figure out the issue.  The localhost is not correctly exposed with boot2docker(mac)  If you do boot2docker ip, it will gives you the VM address.  Use that instead of localhost

Hey @maerzhase @yubozhao,
Sorry about that. Yeah, unfortunately Mac isn't very user-friendly with Docker. As @yubozhao noted, you can't use localhost. Wasn't aware of that as I develop on Linux.
Thanks for pointing that out @yubozhao!


feat: Add client manager filter for restful apis to user request token

Merging because there was a bug in the unit test, commited after @NigelZHANG's approval


Interactive window does not launch on remote

Bug: Interactive Window
Steps to cause the bug to occur

Connect to a remote host.
Open a .py file with # %% cells and run one.

Error
Throws Jupyter notebook failed to launch.

Stack trace from the dev console

console.ts:137 [Extension Host] Error Python Extension: 2020-06-25 09:51:43: Failed to run jupyter as observable with args notebook --no-browser --notebook-dir=/tmp/ad9afd93-cba2-4928-a8f8-40c4861291be --config=/tmp/ad9afd93-cba2-4928-a8f8-40c4861291be/jupyter_notebook_config.py --NotebookApp.iopub_data_rate_limit=10000000000.0 [h [Error]: Traceback (most recent call last):  File "/home/jr769/.vscode-server/extensions/ms-python.python-2020.6.90262/pythonFiles/vscode_datascience_helpers/daemon/daemon_python.py", line 54, in _decorator    return func(self, *args, **kwargs)  File "/home/jr769/.vscode-server/extensions/ms-python.python-2020.6.90262/pythonFiles/vscode_datascience_helpers/jupyter_daemon.py", line 105, in m_exec_module_observable    self._start_notebook(args, cwd, env)  File "/home/jr769/.vscode-server/extensions/ms-python.python-2020.6.90262/pythonFiles/vscode_datascience_helpers/jupyter_daemon.py", line 155, in _start_notebook    app.launch_new_instance()  File "/home/jr769/miniconda3/envs/mndo/lib/python3.6/site-packages/jupyter_core/application.py", line 270, in launch_instance    return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)  File "/home/jr769/miniconda3/envs/mndo/lib/python3.6/site-packages/traitlets/config/application.py", line 663, in launch_instance    app.initialize(argv)  File "", line 2, in initialize  File "/home/jr769/miniconda3/envs/mndo/lib/python3.6/site-packages/traitlets/config/application.py", line 87, in catch_config_error    return method(app, *args, **kwargs)  File "/home/jr769/miniconda3/envs/mndo/lib/python3.6/site-packages/notebook/notebookapp.py", line 1769, in initialize    self.init_webapp()  File "/home/jr769/miniconda3/envs/mndo/lib/python3.6/site-packages/notebook/notebookapp.py", line 1490, in init_webapp    self.http_server.listen(port, self.ip)  File "/home/jr769/miniconda3/envs/mndo/lib/python3.6/site-packages/tornado/tcpserver.py", line 151, in listen    sockets = bind_sockets(port, address=address)  File "/home/jr769/miniconda3/envs/mndo/lib/python3.6/site-packages/tornado/netutil.py", line 174, in bind_sockets    sock.bind(sockaddr)OSError: [Errno 99] Cannot assign requested address	at /home/jr769/.vscode-server/extensions/ms-python.python-2020.6.90262/out/client/extension.js:1:659461] {  message: 'Traceback (most recent call last):\n  File ' +    '"/home/jr769/.vscode-server/extensions/ms-python.python-2020.6.90262/pythonFiles/vscode_datascience_helpers/daemon/daemon_python.py", ' +    'line 54, in _decorator\n    return func(self, *args, **kwargs)\n  File ' +    '"/home/jr769/.vscode-server/extensions/ms-python.python-2020.6.90262/pythonFiles/vscode_datascience_helpers/jupyter_daemon.py", ' +    'line 105, in m_exec_module_observable\n    self._start_notebook(args, cwd, ' +    'env)\n  File ' +    '"/home/jr769/.vscode-server/extensions/ms-python.python-2020.6.90262/pythonFiles/vscode_datascience_helpers/jupyter_daemon.py", ' +    'line 155, in _start_notebook\n    app.launch_new_instance()\n  File ' +    '"/home/jr769/miniconda3/envs/mndo/lib/python3.6/site-packages/jupyter_core/application.py", ' +    'line 270, in launch_instance\n    return super(JupyterApp, ' +    'cls).launch_instance(argv=argv, **kwargs)\n  File ' +    '"/home/jr769/miniconda3/envs/mndo/lib/python3.6/site-packages/traitlets/config/application.py", ' +    'line 663, in launch_instance\n    app.initialize(argv)\n  File ' +    '"", line 2, in initialize\n  File ' +    '"/home/jr769/miniconda3/envs/mndo/lib/python3.6/site-packages/traitlets/config/application.py", ' +    'line 87, in catch_config_error\n    return method(app, *args, **kwargs)\n  ' +    'File ' +    '"/home/jr769/miniconda3/envs/mndo/lib/python3.6/site-packages/notebook/notebookapp.py", ' +    'line 1769, in initialize\n    self.init_webapp()\n  File ' +    '"/home/jr769/miniconda3/envs/mndo/lib/python3.6/site-packages/notebook/notebookapp.py", ' +    'line 1490, in init_webapp\n    self.http_server.listen(port, self.ip)\n  ' +    'File ' +    '"/home/jr769/miniconda3/envs/mndo/lib/python3.6/site-packages/tornado/tcpserver.py", ' +    'line 151, in listen\n    sockets = bind_sockets(port, address=address)\n  ' +    'File ' +    '"/home/jr769/miniconda3/envs/mndo/lib/python3.6/site-packages/tornado/netutil.py", ' +    'line 174, in bind_sockets\n    sock.bind(sockaddr)\nOSError: [Errno 99] ' +    'Cannot assign requested address\n'}
t.log @ console.ts:137
$logExtensionHostMessage @ mainThreadConsole.ts:39
_doInvokeHandler @ rpcProtocol.ts:402
_invokeHandler @ rpcProtocol.ts:387
_receiveRequest @ rpcProtocol.ts:303
_receiveOneMessage @ rpcProtocol.ts:230
(anonymous) @ rpcProtocol.ts:105
fire @ event.ts:587
fire @ ipc.net.ts:453
_receiveMessage @ ipc.net.ts:733
(anonymous) @ ipc.net.ts:592
fire @ event.ts:587
acceptChunk @ ipc.net.ts:239
(anonymous) @ ipc.net.ts:200
t @ ipc.net.ts:28
emit @ events.js:203
addChunk @ _stream_readable.js:295
readableAddChunk @ _stream_readable.js:276
Readable.push @ _stream_readable.js:210
onStreamRead @ internal/stream_base_commons.js:166
console.ts:137 [Extension Host] Error Python Extension: 2020-06-25 09:51:43: Error starting server in serverPreload:  [i [Error]: 	at new i (/home/jr769/.vscode-server/extensions/ms-python.python-2020.6.90262/out/client/extension.js:1:516359)	at P.start (/home/jr769/.vscode-server/extensions/ms-python.python-2020.6.90262/out/client/extension.js:24:472891)Error: Traceback (most recent call last):  File "/home/jr769/.vscode-server/extensions/ms-python.python-2020.6.90262/pythonFiles/vscode_datascience_helpers/daemon/daemon_python.py", line 54, in _decorator    return func(self, *args, **kwargs)  File "/home/jr769/.vscode-server/extensions/ms-python.python-2020.6.90262/pythonFiles/vscode_datascience_helpers/jupyter_daemon.py", line 105, in m_exec_module_observable    self._start_notebook(args, cwd, env)  File "/home/jr769/.vscode-server/extensions/ms-python.python-2020.6.90262/pythonFiles/vscode_datascience_helpers/jupyter_daemon.py", line 155, in _start_notebook    app.launch_new_instance()  File "/home/jr769/miniconda3/envs/mndo/lib/python3.6/site-packages/jupyter_core/application.py", line 270, in launch_instance    return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)  File "/home/jr769/miniconda3/envs/mndo/lib/python3.6/site-packages/traitlets/config/application.py", line 663, in launch_instance    app.initialize(argv)  File "", line 2, in initialize  File "/home/jr769/miniconda3/envs/mndo/lib/python3.6/site-packages/traitlets/config/application.py", line 87, in catch_config_error    return method(app, *args, **kwargs)  File "/home/jr769/miniconda3/envs/mndo/lib/python3.6/site-packages/notebook/notebookapp.py", line 1769, in initialize    self.init_webapp()  File "/home/jr769/miniconda3/envs/mndo/lib/python3.6/site-packages/notebook/notebookapp.py", line 1490, in init_webapp    self.http_server.listen(port, self.ip)  File "/home/jr769/miniconda3/envs/mndo/lib/python3.6/site-packages/tornado/tcpserver.py", line 151, in listen    sockets = bind_sockets(port, address=address)  File "/home/jr769/miniconda3/envs/mndo/lib/python3.6/site-packages/tornado/netutil.py", line 174, in bind_sockets    sock.bind(sockaddr)OSError: [Errno 99] Cannot assign requested addressFailed to run jupyter as observable with args notebook --no-browser --notebook-dir=/tmp/ad9afd93-cba2-4928-a8f8-40c4861291be --config=/tmp/ad9afd93-cba2-4928-a8f8-40c4861291be/jupyter_notebook_config.py --NotebookApp.iopub_data_rate_limit=10000000000.0	at t.JupyterConnectionWaiter.rejectStartPromise (/home/jr769/.vscode-server/extensions/ms-python.python-2020.6.90262/out/client/extension.js:1:709940)	at t._error (/home/jr769/.vscode-server/extensions/ms-python.python-2020.6.90262/out/client/extension.js:1:710576)	at t.__tryOrUnsub (/home/jr769/.vscode-server/extensions/ms-python.python-2020.6.90262/out/client/extension.js:16:5463)	at t.error (/home/jr769/.vscode-server/extensions/ms-python.python-2020.6.90262/out/client/extension.js:16:4886)	at t._error (/home/jr769/.vscode-server/extensions/ms-python.python-2020.6.90262/out/client/extension.js:16:3793)	at t.error (/home/jr769/.vscode-server/extensions/ms-python.python-2020.6.90262/out/client/extension.js:16:3487)	at t.error (/home/jr769/.vscode-server/extensions/ms-python.python-2020.6.90262/out/client/extension.js:16:9161)	at /home/jr769/.vscode-server/extensions/ms-python.python-2020.6.90262/out/client/extension.js:1:659658]

Your Jupyter and/or Python environment
Please provide as much info as you readily know

Jupyter server running: Local (but on a remote)
Extension version: 2020.6.90262
VS Code version: 1.46.1
Setting python.jediEnabled: false
Setting python.languageServer: Microsoft
Python and/or Anaconda version: 3.6.10
OS: Linux (run remotely from a Mac)
Virtual environment: conda

Microsoft Data Science for VS Code Engineering Team: @rchiodo, @IanMatthewHuff, @DavidKutu, @DonJayamanne, @greazer, @joyceerhl

Based on your output, this is likely a dupe of this bug here:
https://github.com/microsoft/vscode-python/issues/6762
Can you try turning off our this setting? (and perhaps setting the ip address yourself in your default config

@rchiodo Thanks for the quick reply!
Setting "python.dataScience.useDefaultConfigForJupyter": false didn't help so I tried setting the IP myself via jupyter notebook --generate-config, opening the resulting file (/home/<user>/.jupyter/jupyter_notebook_config.py) and setting c.NotebookApp.ip = '<IP_ADDRESS>' in there. Is that what you meant?
In any case, it works now! 🎉  Though it's a quite slow to startup but I guess that's to be expected?

Yep that's what I meant. Glad it worked :)
We might be able to figure out some way to detect this (or maybe just always set the ip that way and see what happens).
However in the near future we're about to eliminate the need for jupyter at all for all connections we generate ourselves (so this shouldn't be a problem for anybody anymore).
The slowness is kinda ambiguous.
Is the window slow to open? (That can happen on remote ssh as we have to stream the javascript to the UI)
Is the server slow to respond? (That might be a wait for idle problem we have with jupyter, that the aforementioned removal of jupyter will fix).
Is it slow to execute a cell? (This one I'm not sure what the problem might be)

Oh and you can try out the removal of jupyter with this setting if you want:
"python.experiments.optInto": [
        "LocalZMQKernel - experiment",
    ],

Btw, just checked if maybe both of the above steps were necessary. But no, after removing "python.dataScience.useDefaultConfigForJupyter": false it still worked.
Also tried out the experimental setting and that works as well (including after removing the custom Jupyter config)! 🎉
Regarding the slowness, I was referring to the time it took for the first cell output to appear. The interactive UI showing a spinner while the kernel was starting up showed up very quickly. But this appears to be irreproducible. Just tried launching a couple times with both Jupyter config and experimental setting. In both cases, it takes about 4 seconds before the first cell output appears and on subsequent attempts, it was always the UI that took a while to appear and once that rendered, the cell output followed instantly.

Looks like I jumped the gun here. There seems to be some caching going on with the Jupyter config. Today the interactive window failed to launch again with the experimental setting. Went back to a custom Jupyter config and it started working. But it did require both the config and the "python.dataScience.useDefaultConfigForJupyter": false setting. So apparently only the first thing I tried yesterday worked and then was cached.


⚠ SkipTheTrailers has degraded performance

In a42a080, SkipTheTrailers ($STT) experienced degraded performance:

HTTP code: 200
Response time: 18430 ms

Resolved: SkipTheTrailers performance has improved in 6db73d4.


cant install ms python

I have tried to install mspython both manually and by using the extension manager in vscode. Both didn't work. And when trying to download the extension, the download never completes and gets stuck at a point. I suspect it some server-side issue. Please look into it

Please follow these steps

Help -> Toggle Developer Tools -> Network
Then check for any network failed requests while browsing and installing the extensions if found all requests fails then its probably a proxy or DNS issue at your end.
To confirm its a DNS issue check if you can access this page https://ms-python.gallerycdn.vsassets.io/extensions/ms-python/python/2019.8.29288/1565127378610/Microsoft.VisualStudio.Services.Icons.Default, if you cannot please try configuring your DNS like pointing to <IP_ADDRESS> as suggested here? https://<IP_ADDRESS>/dns/. Otherwise please contact your network administrator.
If it is not a network issue, please share the logs from the following locations

Enable log level to trace
Help -> Toggle Developer Tools -> Console
View -> Command Pallette... -> Toggle Shared Process -> Console
View -> Open View… -> Log (Shared)
View -> Open View… -> Log (Window)

Seems like this was an issue for 1 day. It started working today and I could also update the extension to the latest version. If I encounter a similar issue again I will make it a point to share the above-mentioned information.
Thank you


minor bug fix

PR Description 📜
This is regarding recent PR merge of adding loader. There was slight (one bracket) issue that was dis aligning the page.
That is now fixed
Fixes # <your_issue_number>

Mark the task you have completed ✅

[x] I follow CONTRIBUTING GUIDELINE & CODE OF CONDUCT of this project.
[x] I have performed a self-review of my own code or work.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] My changes generates no new warnings.
[x] I have followed proper naming convention showed in CONTRIBUTING GUIDELINE
[x] I have added screenshot for review.

## Add your screenshots(Optional) 📸

Thank you soo much for contributing to our repository 💗

@ayush-t02 This PR doesn't need GSSOC label. This is a slight fix, please merge it.


Add tests for valid/invalid regex sets

@andgineer don't apply before my pull-req, please. it breaks my pull-req.

don't apply. see my comments in issues.

if we want this tests we have to change tests numeration..

don't apply. see my comments in issues #146 #147

superseded by #150


fix(issue-431): splitting a stream of YAML documents only

resolves https://github.com/helm-unittest/helm-unittest/issues/431
Reproduced https://github.com/ik-workshop/helm-unittests-issues/tree/master/issue-431/tests and fixed

Hi @quintush when you free, please have a look

I'm proposing to merge fix and then review lines
https://github.com/helm-unittest/helm-unittest/blob/893df377a45d98649ca4d27962d10ea96cfa4695/pkg/unittest/test_job.go#L225
https://github.com/helm-unittest/helm-unittest/blob/893df377a45d98649ca4d27962d10ea96cfa4695/pkg/unittest/test_job.go#L210
https://github.com/helm-unittest/helm-unittest/blob/893df377a45d98649ca4d27962d10ea96cfa4695/pkg/unittest/test_job.go#L428
As probably worth to refactor them to simplify testing


UTC conversion error

Code from 1.6.0:
_utc_to_local: function(utc){
return utc && new Date(utc.getTime() + (utc.getTimezoneOffset()*60000));
},
_local_to_utc: function(local){
return local && new Date(local.getTime() - (local.getTimezoneOffset()*60000));
}
This is simply wrong. For example:
var local = new Date();
Gives me:
Fri Apr 29 2016 17:41:40 GMT+0800
But, according to _local_to_utc code,
new Date(local.getTime() - (local.getTimezoneOffset()*60000));
result in
Sat Apr 30 2016 01:41:40
which is wrong.
The correct time should be
Fri Apr 29 2016 09:41:40 GMT+0800
So, conclusion:
_utc_to_local and _local_to_utc should swap their names
If you just convert time back and forth, this won't be a big problem, you can always get back your original local time , since those 2 conversion are mirrored.
But, this can result in a serious problem, regarding
#1743
If you set
endDate: "0d"
option, which means you can only select dates up to today.
But
dateWithinRange
are checked against UTC time, while startDate/endDate are checked against local time.
So when you are trying to set initial date of datepicker to today, such as
$('#inputDate').datepicker("setDate", new Date());
It just won't work when my local time is after 16:00, because the bugged _local_to_utc will convert UTC date to tomorrow, so it fails the check of
dateWithinRange.

Well, there are 2 problems.
No.1 is #1743
No.2 is UTC conversion bug.
If only No.2 is fixed, No.1 will still cause "endDate" problem for GMT-0X00 time zones and similarly "startDate" problems for GMT+0X00 time zones.


Changing a node's type will remove most signals attached to it (but leave others intact)

Godot version:
76ec728
Issue description:
Self-explanatory:

Is there an example project? I can't reproduce this with only the info in the gif

@DualMatrix Sorry for the late response.
There's no need for an example project, all you need to do is:

Create a scene with a root node and a child.
Connect a signal from the child to the root node.
Change the root node's type.
The connection will be gone.

This error will be outputted as well: Attempt to connect signal '[child node].[signal name]' to nonexistent method '[node type].[function name]'

Doesn't seem to happen in 3.1. You can connect to any method and it works fine even when you change to type without that method.

@KoBeWi Yep, closing it.


bug: maximize mode - cursor position not consistent

Did you check docs and existing issues?

[x] I have read all the LazyVim docs
[x] I have updated the plugin to the latest version before submitting this issue
[x] I have searched the existing issues of LazyVim
[x] I have searched the existing issues of plugins related to this issue

Neovim version (nvim -v)
NVIM v0.10.2
Operating system/version
Fedora 41
Describe the bug
when using maximize window mode, switching from one window to another will cause the cursor to relocate in wrong locations.
https://github.com/user-attachments/assets/b4c95819-ba94-4944-b477-565a2c2228e7
Steps To Reproduce

open two window, 2 different buffers
activate maximize window (<leader>wm)
alternate window using c-j and c-k

The cursor is changing places.
Expected Behavior
The cursor should always stay on the line it was one.
Repro

I'm not sure I understand what you mean.
The maximize functionality just does this under the hood:
        set("winwidth", 999)
        set("winheight", 999)
        set("winminwidth", 10)
        set("winminheight", 4)

So your current window will become the large window.
Everything in your video looks like it should

I am talking about the cursor position, if you look in the video, when I switch from one maximized window to another and go back again in the previous one the cursor/caret is no longer on the same line, which is really a bug.

LazyVim does not change the cursor position. Like I said, we just set those options.
If your original window becomes smaller, it can happen that the cursor position changes.
Things like an animate plugin or vim.o.splitkeep = screen, might affect this as well.
Either way, this is not a LazyVim bug...

ok vim.opts.splitkeep = "cursor" fixed it

@folke When I close a session with Maximize feature left on and reopen nvim and press s to retrieve the last state, the windows are still "maximized" but the Maximize feature is turned off and using <leader>w= to even the window does nothing. Is there something wrong in my config or do you have the same problem? I can open a new issue for that.

fixed on main

Is this because of the change of get/set into methods in Snacks.toggle as opposed to just being fields of the toggle before?

yep, indeed. All good now

@folke Is there a reason you enforce 4 for the minheight? That'd be great to have a way to be able to customize these values.
Afaik this will overwrite vim options:
https://github.com/LazyVim/LazyVim/blob/9ec253b9b6bf9673f610035d741a345d6be7a44f/lua/lazyvim/util/ui.lua#L47-L53

Yeah, in my opinion the min values should just not be set at all and this way they would end up whatever the user chooses them to be or the default values. I end up utilizing <C-w>_ for maximum height instead of <leader>wm for this reason. Personally, I prefer to have smaller min values because of the smaller screen real estate in my laptop.

@dpetka2001 Agreed, for min values. Personally I use Maximize + winbar, so the windows act like tab/drawers but stacked horizontally (on a vertical screen). Combined with reuse_win in most actions I can easily remember how stacked windows are and can easily travel using <c-j> and <c-k>.

I created a new zen plugin for snacks that also includes zoom functionality.
You can check out the PR here: https://github.com/folke/snacks.nvim/pull/196
When you enable zoom, your editor will look the same as if all splits would have been removed (but of course they're still there).
Let me know what you think!

From minimal testing it, it looks great. Do you also have plans to incorporate something like twilight.nvim maybe? Or is it out of scope?
To clarify, this is not a request, just a pure question. You do what you think best. I'll keep using twilight.nvim if out of scope. No prob.

I was indeed :)
Going to do that next. Will be simpler than twilight.nvim.
I'm thinking of just using nvim-treesitter textobjects for this, or hl captures.

What do you think of the zoom functionality?
My only issue with it right now, is that it's indistinguishable from a real window, so users may get confused and forget they're in a zoom window? Or do you think that's ok? An option could be to add some sort of indicator that the window is zoomed.

My only issue with it right now, is that it's indistinguishable from a real window, so users may get confused and forget they're in a zoom window?

Maybe some kind of indicator in the statusline? Or something else if you think of something better would indeed be valuable info.

I created a new small zen plugin for snacks that also includes zoom functionality. You can check out the PR here: folke/snacks.nvim#196
When you enable zoom, your editor will look the same as if all splits would have been removed (but of course they're still there).
Let me know what you think!

Unless I am not using it properly zen is just zooming the current window but for instance if <c-j> is pressed it will not change the window and retain the zoom. But I still like the idea of this feature, I'll def be using it if it's bind to something like <leader>wz by default!

Also maybe that's a silly suggestion but why not turning twilight on by default when zen mode is entered, so the user knows for a fact they are zen, you can always give them an option to disable that default behavior, in that case they are responsible to remember if they are in zen mode or not.

If i remember correctly pressing <c-j> took me out of zoom mode. Not at home right now, so will check again to make sure when i get back in a couple of hours.

@folke Ah my bad, I am using a vertical screen so zoom and zen did look the same, but now I know what you mean. Using a little fullscreen icon in the corner is a great suggestion from @dpetka2001

I went a bit overboard with a couple of new snacks plugins :)
Check it out at https://github.com/folke/snacks.nvim/pull/196
Let me know what you think!

Oh, was a bit baffled with animate. Thought it was something like mini.animate, but then I read more carefully that it was (library) and was used by dim and indent 🤦
I'm using that branch for now. On an unrelated note, what does this number mean in the Snacks.profiler?

How many times the function has been called?

Also have you given any thought about some special info when the window is zoomed maybe? Some kind of extmark or maybe some kind of info that can be called for example in Lualine and show a letter M for example?
Also a little problem I found when toggling zoom on/off. Screencast following
https://github.com/user-attachments/assets/0cca85d4-a4b7-401a-b3bb-3ed03940d275
It only happened to me so far when I was zooming the bottom window some times. If I zoom the top window then I haven't observed any weirdness so far.

I would also like to note that I noticed this side-effect only when using <leader>Z for toggling zoom on/off. If I use for example <c-j> or <c-h> to exit zoom mode and then close the right/bottom window, I haven't observed this happening.

hmm, I don't seem to be able to reproduce that problem. Does it get fixed when you do :redraw! afterwards?

The number is indeed the amount of times it was called.
The time numbers for methods like on_win can be a bit off though, since those methods are fast and very frequent.
The overhead of the profiler is going to be substantial for those cases.
For indent, there's a hidden opts.debug that you can enable and when you do, you'll see that pretty much everything in on_win is cached at all times, so it should be very fast.
Since I work with window-local extmarks, you can have the same file open in a split for example and see the correct scopes for each window.
Same with side scrolling. Side scrolling the same buffer in one of the two windows, messes up the indent guides with indentblankline.

How does this look for zoom indicator?

I believe it the visual artifact I'm seeing is due to mini.animate. I disabled it and can't reproduce it any more no matter how many times I tried. Previously with mini.animate it happened 1 out of 3 times maybe (sometimes even 1 out of 2). I remember seeing an issue with mini.animate with the same thing about Neotree windows and it was due to a bug in Neovim with sidebar windows? I don't remember exactly to be honest.
Bottom line is I disabled mini.animate and the visual artifact is not there any more. And no :redraw! wasn't working either. I had either to recreate the split window and zoom in and out again and then close the window or restart Neovim.

Screencast with mini.animate enabled/disabled
https://github.com/user-attachments/assets/3e82c08b-1772-45c6-b30b-0cb40cc6d52f

I ended up with opts.close.enable = false for mini.animate, which solves the problem without completely disabling the plugin.

For the indent plugin it would be good to have a feature to disable the current scope indent just like we do for indent-blankline when we enable mini.indentscope. Currently they overlap and don't show correct indents. Screencast following
https://github.com/user-attachments/assets/47fa0818-b1c4-4f11-946c-97dc618dc2e1

You can get pretty much the exact same indents with snacks by just disabling treesitter scopes.
opts.indent.scope.treesitter.enabled = false.
Apart from that, there shold indeed also be an option to disable scopes.

I've tried the option you suggested, but the behavior stays the same from what I can observe.
https://github.com/user-attachments/assets/2420ce43-d933-4d48-8cfd-7bc83b265948
It seems that for the first child the scope indent is not correct. Notice the difference when I disable snacks_indent, how mini.indentscope shows the current scope indent and how it is shown when snacks_indent is enabled.

Notice in 17sec of the screencast, when I go with my cursor to styles.notification how it shows the current scope indent and how it shows it when I go to styles["notification.history"]. In my eyes (and I might be wrong about this) it seems to not calculate the current scope indent for the first child correctly. Whereas from the second child onwards it shows it correctly.

Also, I think that currently the setup for indent doesn't merge the user settings?? Or am I wrong?

I was getting the wrong options, so yes that didnt do anything :)
Please check the updated changes.
As for the original issue, that's something I still need to fix for treesitter. The width_edge impl is not entirely correct.
But with treesitter disabled you should now get pretty much the same results as with indentscope.

Yes, now it's better. Most indents look like mini.indentscope with some exceptions. What I mentioned earlier for styles.notification and styles["notification.history"] as also can be seen in mark 17sec of the last screencast I posted, still remains the same.
You know better for any possible solution. A setting to disable the current scope indents (like indent-blankline has) would also be welcome.

Set opts.indent.scope.min_size = 1

Is 2 by default, which is good. But edge detection doesn't yet take that into account.
Will fix, but for now, just set that to 1

Fixed now. So you can leave it at 2

Thank you for your suggestion. Now it looks like how I am normally used to seeing the indents 😄

Ok, I just pulled again and removed min_size and with treesitter disabled it looks the same now.

Another thing of note is that when you use zen/zoom mode with the suggested mappings in the PR, when you toggle them off it breaks the mapping Ctrl-^ for the alternate buffer. If instead of <leader-z>/<leader>Z you use <c-h> or any other mapping to move into a window or if you open any other window (Neotree, Fzflua picker) then you are able to use it.

ok, will check!
I also just added a scroll plugin for smooth scrolling similar to mini.animate.

Seems like in WinClosed event a win:close() is needed?? That solved it for me locally although I'm not sure if there might be any other side effects.

I'm getting error with latest pull
Error detected while processing UIEnter Autocommands for "*":
Error executing lua callback: ...e/jrn23/projects/plugins/snacks.nvim/lua/snacks/init.lua:123: attempt to index a nil value
stack traceback:
	...e/jrn23/projects/plugins/snacks.nvim/lua/snacks/init.lua:123: in function <...e/jrn23/projects/plugins/snacks.nvim/lua/snacks/init.lua:121>

If I put scroll in my snacks config it goes away.

Tnx!! 😄

How useful would an icons plugin be? (not like mini.icons or devicons)
You can get icons like: (autocompletion works of course)
local icon = Snacks.icons.fa.sun

Quickly find/yank a nerd icons:

So, something more like the cmp-emoji source, but builtin to snacks? I don't use that much icons myself to be honest, but I don't think it'll hurt. Maybe ask more people about that in an issue at snacks repo to gather if there's interest? @vdegenne Would you like to share your opinion about the icons plugin?

I don't use icons much too, but If I ever wanted to find an icon without leaving my editor then the second screenshot @folke shared in his last response would be the way, telescope selection (ideally lazy loaded) and direct pasting of the actual icon where the cursor is in the buffer.
Having a lua icons table is interesting too, my only concern is performance, not sure how autocompletion tools are going to index/handle ten thousands of items, especially on old cpu or slow remote ssh connections.


Conda to uv

Fixes https://github.com/vitessce/vitessce-python/issues/377
Related to https://github.com/vitessce/vitessce-python/pull/364

Some notes:

Many of the scverse packages like anndata and scanpy keep restricting the minimum python version to only the officially-still-supported python versions. For example, this is currently 3.10
Many older versions of packages that were released pre-numpy-2 do not work with Numpy 2 but also do not specify in their dependencies that only Numpy 1 is supported (since at the time of release, numpy 2 did not exist yet). For example, scanpy pre-1.10.2 did not specify numpy<2 but will fail to import with numpy 2


Linearlayout weight

The ProgressWheel control is only drawn when I specify height and width. If I use a linear layout, and then specify layout_weight=1 and layout_width=0dp, It is not displayed.
Example of xml : https://www.dropbox.com/s/xmxp36rbarllz5d/f.xml

This is because the onMeasure method really does no checking on whether width or height is unspecified.

The fix has been merged, please verify it.


'View as Chart' hyperlink missing

Hello< I am following the 'Tutorial: Build a custom insight widget' on this page:
https://docs.microsoft.com/en-us/sql/azure-data-studio/tutorial-build-custom-insight-sql-server?view=sql-server-ver15
I can't seem to find the link referred to in Step 6 of the 'Run your own query and view the result in a chart view' section.
I am following along with Azure Data Studio:
Version: 1.19.0 (user setup)
Commit: 4095037f2578c23033867e611e82c13de114ca5a
Date: 2020-06-11T22:06:05.429Z
VS Code: 1.46.0
Electron: 7.2.4
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Windows_NT x64 10.0.18363
Is it right in front of my face and I am not seeing it?
Thanks!

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

ID: 9720e473-61dc-6a0f-9481-ca6c617d3265
Version Independent ID: 5e373d84-4b76-0019-fc0b-616e3672e4a4
Content: Tutorial: Build a custom insight widget - Azure Data Studio
Content Source: docs/azure-data-studio/tutorial-build-custom-insight-sql-server.md
Product: sql
Technology: azure-data-studio
GitHub Login: @markingmyname
Microsoft Alias: maghan

@robertplata -- thank you for your feedback & question.  I am looking into this article.

@robertplata -- after I run that query, a Results window appears below the query with three tabs (Results, Messages, Chart), and there are icons on the right side of its window including one that's a miniature vertical bar chart.
I am closing this issue now.  You are welcome to @ mention me for any followup.  We hope to hear from you again.


Provide greedy decoding option to ilab test

ilab chat has the --greedy-mode option. This option is not implemented for ilab test.
The issue with this is that every time one runs ilab test one gets different answers (both BEFORE and AFTER training). This makes it difficult to demo, since the responses are not predictable.

This hasn't been worked on yet, so keeping this from stale for now
@laurachiticariu would welcome a PR for this if you are interested!

FYI I proposed deprecating ilab model test here: https://github.com/instructlab/instructlab/issues/2373


Support required for fseek();

I'm trying to use fseek() on a stream provided from
$fileId = new MongoDB\BSON\ObjectId($fileId);
$bucket = (new MongoDB\Client)->example->selectGridFSBucket();
$stream = $bucket->openDownloadStream($fileId);

and get a 500 error: fseek(): stream does not support seeking
This worked on the legacy version for streaming a video file that is stored in GridFS.
I'm using version 1.2.6 stable for PHP 7.0.15 on Ubuntu 16.04.4

I'm using version 1.2.6 stable for PHP 7.0.15 on Ubuntu 16.04.4

I assume you're referring to extension version 1.2.6. Note that the PHP library has its own versions.
GridFS seeking was implemented in https://github.com/mongodb/mongo-php-library/pull/325 (PHPLIB-213) and is currently available in the master branch (aliased as 1.2.x-dev if you're using Composer). We've yet to release 1.2.0 as there are other issues awaiting completion, but I can look into tagging an alpha release for the current master branch if that would help in the meantime.

Thanks for the quick response.
Sorry, I was referring to the extension with version 1.2.6.
An alpha release would allow me to test if things are going to work or not.
Thanks for all the hard work you and your team are doing.

An alpha release would allow me to test if things are going to work or not.

1.2.0-alpha1 is now tagged.


Set default Snapshot Retention

We should set a default Retention (i.e. 90 days) if none is set for SnapshotReferences.
The overall goal is to ensure that Metadata never grows indefinitely.
During implementation, if you notice other fields that continue growing, please open separate issues.

Please consider the undocumented iceberg table property: https://github.com/apache/iceberg/blob/0eab91aad705205ebbf675eeb9ea49d3a07d4755/core/src/main/java/org/apache/iceberg/TableProperties.java#L330
so when this property is set to true, snapshot retention should be deactivated for this table.
There are cases where cleanup of snapshots would break read pipelines, e.g. streaming reads of iceberg tables depends on the snapshots and they are used for synchronisation. if they get cleaned up before the depending pipelines have processed them, the pipelines will fail.

For now the catalog does not actively clean Snapshots. Instead, please use Spark expire snapshots routine which is compatible with the catalog.


How to debug?

nni Environment:

nni version: 1.0
nni mode(local|pai|remote): remote
OS: ubuntu16.04
python version: 3.6
is conda or virtualenv used?:  no
is running in docker?: no

I run nni in an environment without graphics, and I get ERROR when running. Because there is no start trial, there is no information under / tmp / nni. At the same time, I have no condition to access the web with a browser, I cannot get web error information, I cannot locate the bug, what methods can I use to debug？
It can be confirmed that the master and slave nodes have established a connection, because the slave's / tmp / nni has a corresponding Experiment directory, but the use case is not running, so the / tmp / nni / Experiment is empty.

config.yml
`authorName: default
experimentName: example_cifar10-network-morphism-test
trialConcurrency: 2
maxExecDuration: 24h
maxTrialNum: 6000
trainingServicePlatform: remote
nniManagerIp: <IP_ADDRESS>
useAnnotation: false
tuner:
builtinTunerName: NetworkMorphism
classArgs:
optimize_mode: maximize
task: cv
input_width: 32
input_channel: 3
n_output_node: 10
trial:
command: python3 cifar10_pytorch.py
codeDir: .
gpuNum: 1
machineList:

ip: <IP_ADDRESS>
port: 22
username: chj
sshKeyPath: /home/chj/.ssh/id_rsa
`

Hi @Chen-Hongji , there is a doc to introduce debug method in NNI.
You could also use nnictl log stderr command to get the stderr information from restserver, and use nnictl log trial command to get the logPath of trial jobs. In the logPath, you could get the error information for every trial job. You could find also nniManager.log and dispatcher.log file in ~/nni/experiments/{expId}/log folder, these two files contains more log information.

thank you very much @SparkSnail


Add option to force synchronous search

currently I'm using
let w:testing = 1

but it would be great to have a proper way to do that :stuck_out_tongue_winking_eye:

D'oh. Someone looked into the code. ;-) May I ask what's wrong the async search?

I have  jump = 0 and and use a custom implementation of :cc. In the past a had problems  with the user auto-command you supply so I ended with smth like:
function MyGrep()
Grepper " ...
call MyCC()

Now the default async behavior breakes this. When I get to my workplace, I'll try autocommand again, may be it will work now :smile:

Yea, I'd prefer fixing any issues over adding workarounds.

Ok, here is minimal vimrc which reproduces the problem I've encountered:
set nocompatible

let dotvim = $HOME . '/temp/.vim'

execute printf('!curl -fLo %s/autoload/plug.vim --create-dirs ' .
      \ 'https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim',
      \ dotvim)

execute "set rtp+=" . dotvim
call plug#begin(dotvim . '/plugged')

Plug 'mhinz/vim-grepper'
let g:grepper = {
    \ 'tools': ['ag', 'git'],
    \ 'open':  0,
    \ 'jump':  0,
    \ 'switch': 0,
    \ 'prompt': 1,
    \ }

autocmd User Grepper call MyCC()

call plug#end()

filetype plugin indent on
syntax on

PlugUpdate

function! MyCC()
  cc 1
endfunction

Just change dotvim to smth suitable for you and run it with vim -u .... Then run Grepper and it should jump to the first error (I know this is the same as jump = 1 but that's just an example).
But there is no syntax highlighting! That's the bug :smile:

Autocmds don't nest. But :cc triggers a few, but not when called from a "norma" autocmd. This should work:
autocmd User Grepper call nested call MyCC()

-> https://github.com/mhinz/vim-galore#nested-autocmds :-)

Works! Thanks! Closing

I should take another look at Galore :smile:


packet.set_payload() implementation

Hallo, many tanks for your work. I would ask you to implement the "packet.set_payload()" function. It will be very usefull for all python programmer community.
Best regards.
yousdo

It seems this is resolved since #1 has been merged. The only thing left is that README.rst still states that packet.set_payload() is omitted but it should work.

README is updated now. Since https://github.com/kti/python-netfilterqueue/issues/11 refers to the pypi package, I'll close this issue. Thanks.

I am using 0.8version, but the set_payload seems didn't work, can anybody help me? The link below is my question's details. http://stackoverflow.com/questions/43319070/netfilterqueue-set-payload-not-work


Repeated metaphor - request-changes/diff/suggest-changes

@colebemis @edokoa I just realized that we have the same icon for 16px and 24px named differently. Should this be request-changes(24px) or diff (16px)? This is also referenced in #177 where we agreed to use file-diff (16px) for suggesting changes.

diff
file-diff
request-changes

I think it should be "diff", because "request-changes" makes reference to the use of the icon, no the icon itself. We maybe have to check how icons are named and how we plan to do it (naming icon meaning vs. use)

I agree. Let's rename the 24px request-changes icon to diff


Refined Configuration System

This follows on from #48
This is where we decide how different configs are merged, how configs are associated with templates, and other thorny questions.
manifest-editor.html?configuration=single-image-guided-viewing
Manifest editor loads two (or more?) config files
configuration.json (always)
single-image-guided-viewing-configuration.json
It merges them together.
Need to support combining properties:

config.json: behaviour: ["a", "b"]
my-config.json: behaviour: ["c", "d"]
result: behaviour: ["a", "b", "c", "d"]

And overwriting properties:

config.json: behaviour: ["a", "b"]
my-config.json: behaviour: ["c", "d"]
result: behaviour: ["c", "d"]

(whatever the best way of doing that is). For combining we are adding some extra values/features/options, for overwriting we are saying that those options are not available. This needs to generalise to:

permitted values, like behavior above
which resources are editable, and which of their properties are editable (e.g., Ranges not editable)
Which capture models (UI) to use for different configurations
Other flags like single-canvas (only one Canvas allowed, don't show UI relating to multiple canvases)
How different Manifest templates are associated with different configurations - if you start with an Ocean Liners template does it change the ME config?
and more tbc

If set on query string:
`manifest-editor.html?configuration=
Acceptance
To be refined
Extra notes/questions
manifest-editor.html?configuration=xxx

On initial load should ME store the configuration param in local storage and redirect to a URL without it? (But still have it available in info somewhere, e.g., "About").
Should xxx always have to be a local file called xxx-configuration.json? Or can you supply a URL to any config? And in that case, should the base config allow for a list of domains that it is permitted to load config from? (to prevent abuse).

Ultimately we should probably have a JSON Schema for the config. But early on we'll build it up bit by bit - keeping an overview at https://github.com/digirati-co-uk/iiif-manifest-editor/wiki/Configuration

See https://github.com/digirati-co-uk/iiif-manifest-editor/issues/48#issuecomment-1032687502

For the configuration in the URL I'm thinking we need a confirmation that you want to import the specified config - and overwrite the current config. So you go to the URL with config in the URL and you get a modal that says:
Config import
Do you want to import and use this as your default configuration

(-) Import as default
(  ) Apply temporarily for this window
(  ) Don't import config

[ Confirm ]
And then they can choose what happens.
The next step would be an application, accessible in the top left for seeing these configs.

[ ] Default configuration
[x] My imported configuration    [update] [uninstall]
[ ] Some other configuration                      [uninstall]

Now we don't want to break configurations, so we will fetch them and store locally, so we could at this point check if there is an update.
Additionally, as mentioned above, I want to bake in resource loading into configurations (so stylesheets and custom apps in scripts). In the configuration they will need to specify the resource URL and an integrity hash. This will be baked into the <script/>  and <link />  tags, and will also be bound to  the security policy of the Manifest Editor installation itself. So you could for example set a policy to only allow scripts from https://addons.manifest-editor.digirati.services/  for example.
This means the [update] button has one more job - and also a failure state that we need to consider - the resource changes from what's in the configuration. Best practice should be to pin javascript to versions, so the config will always work. However the failure case is that the integrity fails and the script does not load (so the app does not load) In that case we have a few options:
Try to update the config to get new integrity
Remove integrity checks (with a "I hope you know what you're doing")
Formally disable the configuration + application.
This sounds complex, but in reality it's leaning heavily into "the platform" and ends up just being a very lightweight state machine on top of what we have already.
What we will get is the ability to create and share full extensions to the manifest editor. So from simple theming to full-blown applications. Write once and never touch again. Users get a workspace that feels like their own (locally I guess) and we set ourselves up for "paid" extensions in a big way. Also persisting the configuration and extensions becomes another thing that a server-side or desktop can offer.

For the configuration in the URL I'm thinking we need a confirmation that you want to import the specified config - and overwrite the current config. So you go to the URL with config in the URL and you get a modal that says:
Config import
Do you want to import and use this as your default configuration

(-) Import as default
(  ) Apply temporarily for this window
(  ) Don't import config

[ Confirm ]
And then they can choose what happens.
The next step would be an application, accessible in the top left for seeing these configs.

[ ] Default configuration
[x] My imported configuration    [update] [uninstall]
[ ] Some other configuration                      [uninstall]

Now we don't want to break configurations, so we will fetch them and store locally, so we could at this point check if there is an update.
Additionally, as mentioned above, I want to bake in resource loading into configurations (so stylesheets and custom apps in scripts). In the configuration they will need to specify the resource URL and an integrity hash. This will be baked into the <script/>  and <link />  tags, and will also be bound to  the security policy of the Manifest Editor installation itself. So you could for example set a policy to only allow scripts from https://addons.manifest-editor.digirati.services/  for example.
This means the [update] button has one more job - and also a failure state that we need to consider - the resource changes from what's in the configuration. Best practice should be to pin javascript to versions, so the config will always work. However the failure case is that the integrity fails and the script does not load (so the app does not load) In that case we have a few options:
Try to update the config to get new integrity
Remove integrity checks (with a "I hope you know what you're doing")
Formally disable the configuration + application.
This sounds complex, but in reality it's leaning heavily into "the platform" and ends up just being a very lightweight state machine on top of what we have already.
What we will get is the ability to create and share full extensions to the manifest editor. So from simple theming to full-blown applications. Write once and never touch again.


Feature/advanced post alerter

Added alerter to send JSON to generic HTTP POST endpoint.

How does this differ from https://github.com/Yelp/elastalert/blob/master/elastalert/alerts.py#L1326?

My new post alerter allows the user to define the POST key for each Elasticsearch key. For example, in Elasticsearch there might be a key called "clientip" but you want the key when it gets sent to the endpoint to be "ip". The user can also define static values that get sent to the endpoint, such as their authentication credentials.
The reason I added this is that I have endpoints which I cannot customize, but want to POST data to them. I had to conform to their key/value structure.
I agree. Would you prefer that I incorporated this into the "Simple" post alerter and just call it "PostAlerter"? I can then add documentation for the alerter as a whole.

I'd prefer they be merged into a single alerter. You can drop the word "Simple" 😄

Thanks! Sounds good. I combined them, updated the names, and updated the documentation.
As a brief summary, if you leave the http_post_payload field undefined, it will just send all the Elasticsearch keys as-is.

Hi!
I want do a HTTP Post to a different url (and payload) for each match. I think that this PR is useful for me. I was looking for an alert to get this behavior. Thanks!
Would be great if it is documented.

@FraVieMor I'm glad this will be useful to you! I have documentation in the docs/source/ruletypes file that will be automatically added to the online documentation if this PR gets approved.

@brianmpollack @Qmando this is awsesome! I got a chance to test the new alerter and it works really well. 😊 May I suggest a small enhancement? The ability to add header values to the post. I was able to do it in the alert.py file manually but it would be perfect if you could define them in the alert. E.g: "Authentication" for token based webhooks.

@av3ri I'm glad you like it! That's funny, I actually was thinking of that the other day. I may add that when I get the time. As a quick tip, if you're using basic HTTP authentication, you can do<EMAIL_ADDRESS>rather than adding to the header.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication#Access_using_credentials_in_the_URL

@brianmpollack haha great minds think alike! 😊thanks! Yes that's definitely a handy tip! Looking forward to seeing how you go. Thanks again for your efforts with making the post alerter even better. I am currently using this to populate a webhook I built for HTML based email alerts. Where I have a lot more freedom to customise the email alert.


Candle cross-encoder model support

@LaurentMazare
How can I use candle for a cross-encoder from sentence-transformers models (msmarco models: e.g. msmarco-distilroberta-base-v3)?
Does it require differents stack of implementation or can I just use the Bert example as for the embedding example?

Hi, I'm interested as well in checking how Candle could be used to implement re-ranking using cross encoders. Do you think you could provide an actual example like the ones that are already available for using bi-encoders for embeddings ?

Does anyone have an example handy on how to construct a cross encoder type model in candle?


chore(docs): Expand contributing guidelines

Closes #4370

Thank you.
I suggest breaking long lines into shorter ones to follow the standard and better history tracking.

Done


Demo script squashed

adds the happy flow demo script
add scenarios (unhappy flows) 2 and 3
updates make update with specific pallet substratee registry commit (otherwise cargo update breaks)
add token balance client call

I need the weekend to go over this PR


Multiple popes

Make sure there's only one country with a pope as ruler, perhaps make it also the papal states.

Fixed in 7e3a098


Matching is incorrect because of lack of backtracking

Hi @cassaundra,
I've checked the implementation of the matching algorithm and I've noticed there is no backtracking. For instance, if the pattern is foo*bar and the input foobarbar wildflower will greedily match the bar in the pattern against the first bar of the input (with * matching the empty string), which fails the match. What should happen is that * should match the first bar and the bar in the pattern should match the second bar in the input.
Test reproducing the issue (currently failing):
#[test]
fn test_wildflower_match() {
    let pattern =  wildflower::Pattern::new("foo*bar");

    assert!(pattern.matches("foobarbar"));
}

Yeah, I'd be fine implementing backtracking. Will have to take a hard second pass at the algorithm, but there's some other stuff I've been wanting to rewrite anyway.


AKS Add a random delay to avoid race conditions for parallel runs

What does this PR do?
After bumping azure-cli on our runner template I noticed that there is a problem with creating ssh keys via az aks create ... --generate-ssh-keys command.
I believe the problem is concurrency when ginkgo is trying to provision two clusters in parallel and then two az aks create commands are trying to write a new SSH keypair at the same time which leads to this error in CI:

So trying to add a random sleep <0-2s> to prevent this.
Checklist:

[ ] Squashed commits into logical changes
[ ] Documentation
[x] GitHub Actions (if applicable) https://github.com/rancher/hosted-providers-e2e/actions/runs/11218931788/job/31183829248 p0_import AKS

Special notes for your reviewer:

It keeps failing, I have to find another way.

What if we create the folder beforehand in BeforeSuite or something?

It keeps failing, I have to find another way.

In the end I removed the random delay and used --no-ssh-key flag instead of --generate-ssh-key. It seems to work.


remove dependency kotlinx-collections-immutable

The dependency was not used.
To be verified by reviewers

[ ] Relevant public API members have been documented
[ ] Documentation related to this PR is complete

[ ] Boundary conditions are documented
[ ] Exceptions are documented
[ ] Nullability is documented if used

[ ] Touched existing code has been extended with documentation if missing
[ ] Code is readable
[ ] New features and fixed bugs are covered by tests

:tada: This PR is included in version 8.19.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Do not allow duplicate tags per monitor?

Is it a duplicate question?
No.
Is your feature request related to a problem? Please describe.
Maybe.
Describe the solution you'd like
I was a bit surprised when I saw this:

What is the value of  t1 on monitor1?
I believe monitor_tag table should have a composite primary key (or an UNIQUE key/index) of (monitor_id, tag_id) blocking this occurrence in the db model.
Describe alternatives you've considered
None.
Additional context
If this is indeed the intended design, please disregard. However, I found the semantics of having one tag with multiple values somewhat strange (or that one tag could be "present" multiple times).
I discovered this while working on a PR for https://github.com/louislam/uptime-kuma/issues/686.

in previous suggestions to implement this feature, tags are mostly used for filtering and grouping. So something like having both DNS and DNS: TXT make sense. Your use case did not even cross my mind when I made this, but I totally see that this will be useful as well.
If you think your use case won't be dealing with duplicate tags, I guess we can just update the first tag we find with that name?

Understood. Thanks for the clarification @chakflying .
Yes. Updating the first tag is an option. I will update the PR for this scenario.

@fdcastel is this issue still relevant?
If not, could you close it? (otherwise this will become an immortal zombie)

Sure! 🧟 😄


[WIP] 5171 fix

#5171

@bigtimebuddy @ivanpopelyshev This seems to fix this. IDK if this is right fix tho.

Is it the only issue about BitmapText resolution? maybe there were others that needed settings.RESOLUTION there

@ivanpopelyshev What do you mean?

Codecov Report

Merging #6564 into dev will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##              dev    #6564   +/-   ##
=======================================
  Coverage   82.38%   82.38%
=======================================
  Files          38       38
  Lines        1902     1902
=======================================
  Hits         1567     1567
  Misses        335      335

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 a967f48...4a4aa48. Read the comment docs.


Fixed a Rack::Lock bug around failing to close the response body

Looks like my last patch (https://github.com/bblimke/webmock/pull/150) introduced a bug where the Rack::Lock mutex wasn't being released.  We believe this is fixed in Rack 1.4.1, but as Rails 3.1 is still on Rack 1.3.x, we figured we should handle it here as well.

Thank you. It will go in Webmock 1.8.0


gSrcTable has to be declared global for it to work (it needs to work as local)

https://github.com/souparno/jsio.js/blob/master/packages/preprocessors/compiler.js#L2

the issue did not get solved https://github.com/souparno/jsio.js/blob/master/packages/preprocessors/compiler.js#L4

problem solved by caching the context in the test https://github.com/souparno/jsio.js/blob/master/test.js#L79


fix(map): Expand map when challenge opened

Pre-Submission Checklist

[x] Your pull request targets the staging branch of freeCodeCamp.
[x] Branch starts with either fix/, feature/, or translate/ (e.g. fix/signin-issue)
[x] You have only one commit (if not, squash them into one commit).
[x] All new and existing tests pass the command npm test. Use git commit --amend to amend any fixes.

Type of Change

[x] Small bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds new functionality)
[ ] Breaking change (fix or feature that would change existing functionality)
[ ] Add new translation (feature adding new translations)

Checklist:

[x] Tested changes locally.
[x] Addressed currently open issue (replace XXXXX with an issue no in next line)

Closes #16248
Closes #16774
Description

changed fetchChallenges epic to trigger additional action
challengeUpdated on complete; changed challengeUpdated meta creator to
store map specific data; added meta reducer for map and util method
to open path in the map by node name

@vbelolapotkov a lot has changed since your last update, especially in the fetchChallenges logic. Would you mind doing a rebase please?

@Bouncey ok, will do

@Bouncey made refactoring, squashed previous commits and rebased to simplify a review of the resulting changes.

@vbelolapotkov Merged :champagne:
Happy Coding

@BerkeleyTrue  great! Thanks!
Happy Coding ;)


feat(messaging): Add defineCustomEventMessaging & defineWindowMessaging

Overview
This closes #27. I'm adding two new functions that can define similar type-safe messengers using the CustomEvent and window.postMessage APIs:

defineCustomEventMessaging
defineWindowMessaging

Either can be used to communicate between injected and content scripts
Todo

[x] Refactor to share types and error handling logic
[x] Implement defineCustomEventMessaging
[x] Implement defineWindowMessaging
[ ] Improve inline comments for generic messenger
[ ] Test new messengers
[ ] Add docs

I think maybe it's better to add namespace option in defineWindowMessaging to prevent collision with other ext.

I can add that.

I think maybe it's better to add namespace option in defineWindowMessaging to prevent collision with other ext.

I'm just going to use browser.runtime.id for this. That should be unique across extensions on all browsers. @devnomic with that, do you still think a namespace option for defineWindowMessenger is required?

I think maybe it's better to add namespace option in defineWindowMessaging to prevent collision with other ext.

I'm just going to use browser.runtime.id internally for this. It should be unique across extensions on all browsers, preventing accidental communication. @devnomic with that, do you still think a namespace option for defineWindowMessenger is required?
Edit: Unless you want to communicate with other extensions, that would disallow that. I think I'll add an optional namespace option that defaults to browser.runtime.id, but it can be overrided to something else if needed. That should cover all cases.

Yeah that would be the best.

Pulled the new messengers features out into #33


Host and Service Problems still 0

HI,
I have strange problem with the Host and Service problem, seems that not retrive the count of host/service, could you help to understand the issue?
Best Regards
Screenshot

Configuration
icinga2.erb :

icinga2.rb:
  send_event('icinga-host-meter', {
   value: host_meter,
   max:   host_meter_max,
   moreinfo: "Total hosts: " + host_meter_max.to_s,
   color: 'blue' })

  send_event('icinga-service-meter', {
   value: service_meter,
   max:   service_meter_max,
   moreinfo: "Total services: " + service_meter_max.to_s,
   color: 'blue' })

Environment
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu]
dashing (1.3.7)
MacOS Catalina
Client Firefox version 74.0 64bit

Please close the ticket, i found the issue, was the API users permission.


Nested forms and helpers

Guys, I'm trying to implement a nested form where I can add multiple instances of the child object using a Add Whatever button in the interface.
In Rails, one (old) method to do this is to create a helper that generates nested fields everytime you click that Add Whatever button:
def link_to_add_fields( text, f, association, target )

  new_object    = f.object.class.reflect_on_association(association).klass.new
  template_path = "#{association}/fields"

  template = f.fields_for(association, new_object) do |builder|
    render(template_path, :f => builder)
  end

  link_to text, "#", onclick: "add_#{association}_fields(this, \"#{escape_javascript(template)}\", \"#{target}\")"

end

However, when I try to do this in Padrino the f.fields_for (...) block doesn't render to the template variable, but instead is displayed in the layout.
This (http://stackoverflow.com/a/26174803/391229) stack overflow answer might describe the reason why.
Thanks

Haunted by this bug today. Anyone got any good solution for this?

No. A passable solution is here: 7d198d85c78a004b2299b71a0dd08da11c3a3368 at lines 97 and 101

I have a gem, padrino_bootstrap_forms, that had to do some hacky stuff to get Padrino to work with HAML, Slim, and ERB with the type of stuff outlined by @joaodiogocosta. And, as you can see here, it worked. Note the Padrino version: 0.11.2
Now, I'm currently upgrading the gem and noticed that view block helper related tests are failing. The difference is the Padrino version:
~/code/ruby/padrino_bootstrap_forms >bl padrino
/Users/sshaw/.rvm/gems/ruby-2.3.0/gems/padrino-0.11.4
~/code/ruby/padrino_bootstrap_forms >rspec -fd --fail-fast -e'BootstrapForms using haml bootstrap_actions renders using'
Run options: include {:full_description=>/BootstrapForms\ using\ haml\ bootstrap_actions\ renders\ using/}

BootstrapForms
  using haml
    bootstrap_actions
      renders using content from the provided block

Finished in 0.07261 seconds
1 example, 0 failures

~/code/ruby/padrino_bootstrap_forms >bl padrino
/Users/sshaw/.rvm/gems/ruby-2.3.0/gems/padrino-0.12.4
~/code/ruby/padrino_bootstrap_forms >rspec -fd --fail-fast -e'BootstrapForms using haml bootstrap_actions renders using'
Run options: include {:full_description=>/BootstrapForms\ using\ haml\ bootstrap_actions\ renders\ using/}

BootstrapForms
  using haml
    bootstrap_actions
      renders using content from the provided block (FAILED - 1)

Failures:

  1) BootstrapForms using haml bootstrap_actions renders using content from the provided block
     Failure/Error: req(format, "bootstrap_actions_with_block").should equal_xml %|
No!
|
     NoMethodError:
       undefined method `match?' for nil:NilClass
     # ./spec/support/form_tag_helpers.rb:55:in `block (3 levels) in <top (required)>'

Finished in 0.06657 seconds
1 example, 1 failure

Failed examples:

rspec ./spec/support/form_tag_helpers.rb:54 # BootstrapForms using haml bootstrap_actions renders using content from the provided block

So something between 0.11.4 and 0.12.4 made things worse. I hope this helps.

And note the the above does not work with 0.13.1. It's attempting to render:
- bootstrap_actions do
  = bootstrap_cancel_tag "No!"

The correct HAML syntax would be:
= bootstrap_actions do
  = bootstrap_cancel_tag "No!"

The correct HAML syntax would be: ...

Hummm yes that is a somewhat recent change, but regardless, the test are failing in Slim and ERB.
I think I've tracked at least the ERB failure to this. Here,  given code like:
<%- bootstrap_actions do %>
  <%= bootstrap_cancel_tag "No!" %>
<% end %>

block.binding.eval('defined? __in_erb_template') is always false.
And of course in this case <%= bootstrap_actions do %> ... would be a syntax error 😈

By the way, your tests pass on 0.12 branch if you add
  s.add_development_dependency "erubis"

to your .gemspec.

Added some fixes to Padrino master and 0.12 branches.
Here is a PR that would make your library compatible with 0.13 and 0.12: https://github.com/sshaw/padrino_bootstrap_forms/pull/11

To be clear, these fixes do not relate to the OP issue which only appear when you call render an erb, from which you call another helper from which you call render another erb again.

Here is a PR that would make your library compatible with 0.13 and 0.12: sshaw/padrino_bootstrap_forms#11

Thanks for this.

By the way, your tests pass on 0.12 branch if you add s.add_development_dependency "erubis"

If erubis is required to use ERB in Padrino then this should be required by padrino-helpers.

There is no way to predict if the user would use Haml, Slim of ERB for her templates, hence neither of those are required by padrino-helpers. If you generate a project from scratch, padrino-gen properly adds Erubis requirement to the project Gemfile if the user specifies ERB as her template engine.

@sshaw looks like your tests also pass on Padrino master without erubis.

Oh, I remember now. Stdlib ERB support was implemented by #1783 and released with Padrino 0.13. Before that Erubis was required.

I backported eec1d4ac47fe833b21b327b44a128dc0fa23a35b, db6d3f8a7f817a85452f8fd100c45d142decd386, fac77b160840f6eb33fea76584830a28066f1576, ab1b01905c471e780ddbb4f3f5e0f9177df60209 to 0.12 branch. Stdlib ERB should work on #2031 release without requiring Erubis.


Update pt-PT.json5

Description
Big update of the translation to Portuguese

The pull request has been updated with missing strings and small corrections.


Handle dir local variables better

Make directory local variables stick around for generating pages. This
means we generate the contents of the page before we open the target
buffer. To make this work, org-static-blog-with-find-file now expects
a string for the contents of the buffer to insert.
Fixes #22.

Thanks a lot, then!


Timestamp should encode milliseconds, not seconds

According to https://github.com/alizain/ulid, the ULID timestamp portion represents the integer number of milliseconds since epoch.
This implementation encodes seconds instead, which makes its timestamps off by 1000 from other implementations.
It should be very easy to fix, I'll try to make a PR.

Thanks for pointing that out. A PR would be great.


proposal: cmd/compile: add tail call optimization for self-recursion only

I know it's been discussed that we wanted to keep the stack trace the same, but if gc only does self recursion call optimisation the stack would roughly stay the same, the only thing that would change is the number of frames for the recursive function call.

While I would prefer full-onTCO, this would be a good start!

The go team was very clear that they wanted to keep the stack traces clean and accurate, complete TCO would completely break that. So that's why self-recursino only makes sense, because 1000 000 call to Foo doesn't really help anybody anyway

See also dup closed bug #15304

because 1000 000 call to Foo doesn't really help anybody anyway

It does help a lot when the args differ from frame to frame.

Also, any tail self recursion can, and most of the time should, be rewritten as a loop.

It's not really a dup, I was asking there for all TCO, which there was indeed good reason not to implement. I've looked and other language will at least have self-recursion or even cyclic recursion TCOed. It could make sense for Go.
also

Also, any tail self recursion can, and most of the time should, be rewritten as a loop.
lol

If you write a loop you're not getting that frame by frame information back anyway (from the stack trace)

If tail recursion is rewritten as a loop there are 2 cases: stackless (eg. n!) or the loop keeps explicit stack (of something, eg. naive fib), replacing the (CPU) frames. So in either case the debug info about the state is at most one fmt.Printf away.
What I wanted to point out is that in a language w/o TCO, one can always rewrite the code to not depend on TCO.

What I wanted to point out is that in a language w/o TCO, one can always rewrite the code to not depend on TCO.

I 100% agree, but some algorithms are so much cleaner when written recursively

This change alone is enough to make me want to use go (again) instead of erlang for many things. Do it and I will love go forever. Do it do it do it. Really. Do it.

Was going to comment (related to unsafe, elsewhere) that removing recursion is exactly the sort of error-prone hand-optimization that can also be used to hide introduced vulnerabilities.  self-TCO ought to be something that a programmer can at least request -- after all, if it's done by hand, those stack frames are just as gone, and debugging is just as impeded, but it also has the chance of human error added.
Note that one of the late-caught bugs in the new SSA back-end was a mistake in the hand-de-recursing of a clever recursive algorithm.  The hand-optimized code usually worked.

Many functional programming languages have excellent support for (general) TCO and it is not an impediment at all for debugging. Code compiled in debug mode can still be instrumented to keep count of self-calls and informations about lost stackframes. In functional languages like Haskell, purity from side-effects helps debugging since only the initial values are needed to know the state of every subsequent call; in Go it's not guaranteed so you lose intermediate stackframes and there's no way to recover them, but since most uses for recursive calls are in algorithms, which I hope are implemented in a mathematically sound manner, the issue is greatly reduced. Everything is moving in this direction, and Go should not be left behind.
Also, as dr2chase noted, I often find myself rewriting beautifully recursive code from their mathematical description to ugly hackish iterative style and it is not easy at all to prove they are completely equivalent until your application in production decides to run an infinite loop because the terminating condition is not met with certain inputs.
Do it.

@sovietspaceship Agree. It's truly hard to write naturally recursive code into loops. I do not see any sence in looking deeply on big stacktraces of calling foo, when we haven't TCO, because all the performance power is lost. Though, the math recursive algorythms are usually good by theoretical side, so one has less chances to be involved in such debugging. I also guess that the aim of TCO-less is a bit more complicate code when wrote bad and a bit more chances to write less idiomatic code. But for sure it the pros worth it. Please, point me somewhere if I'm confused. Thank you for the language.

Would like to add that this would be an amazing feature to have in go. There's just no getting around proper recursion with some algorithms, and if you try, the iterative implementation is terrible to read and understand and, usually, takes way longer to write.
I would love go way more if we did this. I think its a low-impact feature that will help a lot of devs.

What if Go supported compiler directives (compiler hints) in the form of annotations in the comment line directly above a function like the following?
// @tco yCombinator implements the lambda expression that
// enables composition of unpure components in our workflow
func yCombinator(f FuncFunc) Func {
   g := func(r RecursiveFunc) Func {
       return f(func(x int) int {
           return r(r)(x)
       })
   }
   return g(g)
}

I agree with @SophisticaSean in that this would likely be a low impact feature that would help a lot of developers, especially the ones that would like to introduce functional programming (FP) techniques in their apps.
Supporting the @tco annotation compiler hint would allow Go to support TCO in a backwards compatible manner, right?  Optimization for programmers that know what they want, with no ill side effects.  What’s not to love?
If Go offered TCO support, that would increase the performance of FP apps by approx. three fold and make FP in Go generally viable.
p.s. For a detailed discussion of TCO, Recursion, Y-Combinator, Generics, Monads and more please get a copy of my book  (to be released in a few weeks).
Thanks!  Lex

@l3x We do already support compiler annotations (see https://golang.org/cmd/compile/#hdr-Compiler_Directives) but we don't like them.  We would not want to use a compiler annotation for a fundamental mechanism like tail call optimization that will change the behavior of runtime.Callers.
In the past we've discussed adding a become f() statement, that would act like return f() but would do a tail call.  I don't know how much appetite there is for that.

@ianlancetaylor  I can see why the compiler hint would not be the best idea.  Thanks for that info!
Adding a become () statement sounds good to me.
I can't find a current proposal for adding a become () statement.  Perhaps, we could add a proposal for that?
TCO is necessity for people interested in writing functional programming (FP) style code, that is by its nature recursive.  This might be good indicator of how much interest exists for writing FP style code.

Filed issue #22624 to record the idea for Go 2.

Tail-call is not a complete slam-dunk with the existing calling conventions.
Suppose main() calls f(x) tail-calls g(x,y).
The current calling convention has main allocating a single, fixed-size frame large enough for all main's locals and large enough to pass all the parameters to all the things called by main.
In this cases, f, which takes a single parameter.  F cannot tail-call g within the parameter list supplied by main because it is simply not large enough; it could extend main's frame before calling g, but after f-really-g returns to main, main expects its original frame.
It is not as simple as you might hope to "just change the calling convention" because Go runs on small stacks and checks their bounds at each stack-growth; we'd need to be sure that we got the growth and check handshakes right.  There are also stack maps to consider, which I believe are currently referenced to SP -- which will change, if we modify frame sizes to accommodate changing numbers parameters.

@dr2chase What if we were to limit TCO for only functions that accept a single argument?  We could use currying to translate the evaluation of a function that takes multiple arguments into a sequence of single argument functions, right?

@t3x The same problem occurs for single arguments, as that argument can be of arbitrary size.

F cannot tail-call g within the parameter list supplied by main because it is simply not large enough; it could extend main's frame before calling g, but after f-really-g returns to main, main expects its original frame.

It could leave another frame on the stack if necessary, of course, and you could use the return address to detect it. (The returned-to blocks for “tail call” frames could all have the same return address, since all they need to do is pop the frame and update the frame pointer. The size of the tail-call frame could be stored at a known offset.)
The first “tail call” in a chain of calls wouldn't be able to reuse the caller's argument space, but subsequent calls would — that is, we would still have the desired O(1) stack usage for a chain of N tail calls.

We'd need to get the return values sent to the right place, too, but this is an interesting approach.

@bcmills Kind of, but it's not that simple.
Suppose we have f that calls g that then tail calls h.  Just before the tail call, we have:
+---------+
|         |
|    f    |
|         |
+---------+
|rets of g|
+---------+
|args of g|
+---------+
|         |
|    g    |
|         |
+---------+

So how do we modify the stack to have h at the bottom instead?  I see two problems:

There may not be enough room to put arguments to h, as it may have larger arguments than g.
h doesn't put its results in the right place (where f expects them), if its argument size is different than g's.

Any stub would have to solve both of those problems.  So we might introduce a glue routine (invisible to users):
+---------+
|         |
|    f    |
|         |
+---------+
|rets of g|
+---------+
|args of g|
+---------+
|  glue   |
+---------+
|rets of h|
+---------+
|args of h|
+---------+
|         |
|    h    |
|         |
+---------+

That gives us a place to put the arguments to h, and the glue code can copy back the values that h returned to the appropriate place where f expects them.
It all works, but now a sequence of tail calls grows the stack indefinitely.  The question becomes: how to avoid using a glue routine most of the time?  Especially in mutual co-tail-calls, I don't see how to do it.  If g tail calls h, which tail calls g, which tail calls h, etc, and g and h have different arg sizes, you're going to need the glue routine on at least one of the two tail calls.
We could compile specialized versions of every function that might be tail called, taking arguments by pointer instead of directly on the stack (or some other scheme, like extra arg/return offsets).  But that's a lot of extra code, especially because any tail call of a function variable means almost every function might need one of these specialized versions.

The question becomes: how to avoid using a glue routine most of the time?

That's exactly what I'm talking about: if we're about to make a tail call, we check whether the return address for the current frame is the glue handler itself. If it is, we can wipe out the stack up to and including the glue frame and replace it with a new glue frame appropriate to the function we're about to call.
If the return address is not the glue handler, then we need to allocate one and the stack will grow. But only the first argument-growing call in a chain of mutual tail-calls should lack such a frame.

I see, you want to introspect one frame up the stack to see if you can redo the glue frame.
That might work.  A few complications:

All frames in Go are constant sized, so we might need a few of them, power-of-two sized like we do for reflect.call.  Or maybe it can be variable-sized, with the size recorded just above the return value area?
The glue routine is now polymorphic, so it needs to be dynamically typed.  The glue routine can have a few fields where it can record GC info, and the stack scanning & stack copying needs to recognize the glue routine and use its recorded GC info.
If we go for a variable-sized glue frame (instead of the powers-of-two set of fixed-frame glues), then the glue code itself needs to figure out how big its own frame is.  We have frame pointers on x86 at least, so maybe that works.  Not sure if we have them on all architectures.  If not, we'd need to modify the calling convention to leave space that the glue frame can use (similar to how we store the link register on some architectures).

Ok, you've convinced me it is at least plausible.  Certainly not easy.


slice bounds out of range regression

This was fixed in an older version but has reappeared in 1.0.13 (and possibly before). Again, running in Docker container on Unraid server.
I've had it crash several times over the past few days all with a very similar error:
panic: runtime error: slice bounds out of range [1063824:0]
goroutine 231 [running]:
github.com/avfs/avfs/vfs/memfs.(*MemFile).Write(0xc000f89b00, {0xc00067f000, 0xa48, 0x1000})
/src/vendor/github.com/avfs/avfs/vfs/memfs/memfs_file.go:653 +0x697
threadfin/src.thirdPartyBuffer(0x0, {0xc0052a4588, 0x14}, 0x0, 0x0)
/src/src/buffer.go:1698 +0x12e2
created by threadfin/src.bufferingStream
/src/src/buffer.go:224 +0xa58
Unraid Docker
Threadfin 1.0.13

You should NOT be using the old threadfin buffer anymore. FFMPEG or VLC are the only supported options

You should NOT be using the old threadfin buffer anymore. FFMPEG or VLC are the only supported options

Ffmpeg WAS being used.  In the newest version, it seems to have improved but still crashes about every 3 days with the same slice bounds issue.


Have you considered a Wi-Fi beacon implementation

Wi-Fi beacon (as specified in the ASD-STAN doc) should be a merging of what you already did for France (information element 0xdd (221)), but encode the data as it is in OpenDroneID.
This is all real good work!
Gabriel.

I looked at it when I installed version 2.1.1 of the receiver app on my phone, but I have no way of testing it as my phone doesn't support it.
I am currently waiting to see what the UK government is going re remote identification. I was expecting them adopt EN 4709-002, but last I heard they haven't made their mind up.

Parrot just updated the list of Beacon tested phones:
https://github.com/opendroneid/receiver-android/commit/6d0dd4413bc072845c75f8c411018ee0f5c4380d

I don't need a new phone and if I did, its ability to receive 4709-002 remote ids would be way down my required feature list.
If somebody can point me at a way of generating known good beacon signals (without buying a Parrot drone), then I would add beacon support to my ESP32 scanner and then I could do an ESP32 beacon class.

I have added ODID beacons to my id_open library and scanner.
Frames generated by the library are read by the scanner, but I have no way of testing against known good apps or devices.

I have added ODID beacons to my id_open library and scanner.
Frames generated by the library are read by the scanner, but I have no way of testing against known good apps or devices.

Awesome!  I will build/run and test it against a Galaxy S10e w/Android ODID Receiver and let you know of the results.

I was able to get it to work with the ODID Android Receiver after putting the minor (temp) changes that are in my fork.  I was having problems with the 221 IE declared size (253 bytes) not matching the size being transmitted (35 bytes).  So I did a temp hard code just to get it working -- that will need to be re-done.
Also, I added the required App Code and Counter Bytes (counter is not yet working, but the offsets are now correct).  We are going to change the color codes of those in the specification to make it more clear that those need to be set.

Also, as you can see, the current OUI in the ASD STAN spec is "placeholder" where Parrot was using their own.  ASD-STAN has now acquired their own OUI (FA-0B-BC), and the plan is to use this going forward.  ( I haven't made this change yet in the fork or in the Android receiver.  That's likely coming next.
The OUI list is here.

I have updated id_open and id_scanner.
Length should be OK, counter added, #define for selecting OUI.
I don't have a copy of the standard :-).

Will do more testing and let you know.

I have tested this implementation with the receiver app and in the process, found an issue with the receiver app crashing with Wi-Fi Beacons.  It is now fixed as of 2.2.1.  I created a PR to combine messages into a message pack as the message pack is intended.  It was only a minor change of setting the appropriate fields as "valid" to do this.
It now works quite nicely!
An Open Drone ID Wireshark dissector would be handy for validation, so I created it here:
https://github.com/opendroneid/wireshark-dissector

I can see the frames on Wireshark, but I can't get the dissector to work which doesn't surprise me as, as far as I am concerned, Wireshark is not particularly user friendly and I am running it on an old netbook.

I can see the ODID beacon frames, it is just that I am seeing them raw rather than decoded. My ESP32 RID scanner picks them up and decodes them OK.

Ok, good.  Did you double check the .lua file is in the "Personal Lua Plugins" folder?  Also, you can re-load/re-run  what's in that directory using CTRL+SHIFT+L.


Use custom page template API

Feature Description
Use the custom page template API to:

Save the current page as a page template when clicking the relevant button
Display all available page templates when switching to the custom template view

Note that when adding a custom page template, it is added first to the list and the view switches to custom page templates even if the user is currently viewing default page templates.
No error handling for now.
See Figma for further details

Do not alter or remove anything below. The following sections will be managed by moderators only.
Acceptance Criteria

Implementation Brief

@barklund Should we add a separate issue for pagination of the saved templates?


[R] Improve error message when providing a mix of readr and Arrow options

I was trying to solve a user issue today and tried to run the following code:

df = tibble(x = c("a","b",  ""  , "d"))
write_tsv(df, "data.tsv")
open_dataset("data.tsv", format="tsv", skip_rows=1, schema=schema(x=string()), skip_empty_rows = TRUE) %>%
  collect()

which gives me the error

Error: Use either Arrow parse options or readr parse options, not both

which is somewhat obnoxious as I have literally no context provided to know which options are being referred to and what the possible options are.
Also, like, why can't we have a mix of both? This is a totally valid use-case.  I think both a code update and a more informative error message are needed here.
Reporter: Nicola Crane / @thisisnic
Note: This issue was originally created as ARROW-18236. Please see the migration documentation for further details.

Note: an improved error message has already been implemented for the CSV reading options, so this would just need something similar.
Here's the code which improves the messages for the CSV reading: https://github.com/apache/arrow/blob/b413ac4f2b6911af5e8241803277caccc43aa3c4/r/R/dataset-format.R#L440-L454


added metaData, streamName to HandshakeMessage package.

Enhanced Peer Handling, Package Updates, and Refactored Publishing Method: Introduced 'AntPeer' struct to manage peers more efficiently, replacing the streamId list with a versatile list of 'AntPeer' instances. Updated 'HandshakeMessage' struct by adding 'metaData' and 'streamName' fields for improved functionality. Refactored 'publishMessage' method for clearer publishing using 'AntPeer' instances. These changes collectively enhance peer management, align package structures, and simplify the publishing process. Code updates and package modifications complete. Ready for pull request!
Feel free to make changes as needed. But please maintain the idea which is to send the streamName and metaData alongside streamId.

Thank you @MuhammadjonTohirov for your contributions. I appreciate it. 👏
I'll try to merge in my convenient time

Hi @mekya, I appreciate that you responded to 'pull request'. Can you look through and do something about it. It would be great if you merged it to main repository.

Hi @MuhammadjonTohirov ,
Thank you. I've added this to my todo list to review and merge. Thank you for your contribution.
Please add me on linkedin if it's possible.
https://www.linkedin.com/in/ahmetoguzmermerkaya/


Change back to English tags.

Upon a conversation with @aarppe, even though #209 says to use Linguistic Short he realized that English is better.
(I also ran isort on some files...)

🤯🤯🤯
I'll get on it
El mié., 5 de feb. de 2020 17:20, Matt<EMAIL_ADDRESS>escribió:

@Madoshakalaka commented on this pull request.

Reply to this email directly, view it on GitHub
https://github.com/UAlbertaALTLab/cree-intelligent-dictionary/pull/242?email_source=notifications&email_token=AARQE7L35DQX2NRP2GZYOZTRBNJWBA5CNFSM4KQUJKU2YY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCUNZ43Y#pullrequestreview-354131567,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AARQE7JZDXFA2PDLAVMBTNDRBNJWBANCNFSM4KQUJKUQ
.

@Madoshakalaka, it passes type-checking and tests now 😅
I also moved the Python-Levenshtien dependency to [depenencies] as it was a dev dependency before (???)

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@5a0da1e). Click here to learn what that means.
The diff coverage is 91.66%.

@@            Coverage Diff            @@
##             master     #242   +/-   ##
=========================================
  Coverage          ?   81.46%
=========================================
  Files             ?       57
  Lines             ?     2029
  Branches          ?        0
=========================================
  Hits              ?     1653
  Misses            ?      376
  Partials          ?        0

Impacted Files
Coverage Δ

CreeDictionary/CreeDictionary/settings.py
88.57% <ø> (ø)

CreeDictionary/utils/paradigm_layout_combiner.py
56.71% <ø> (ø)

CreeDictionary/CreeDictionary/views.py
50% <0%> (ø)

...ctionary/API/migrations/0005_auto_20200114_2224.py
100% <100%> (ø)

CreeDictionary/API/models.py
84.87% <100%> (ø)

CreeDictionary/DatabaseManager/xml_importer.py
94% <100%> (ø)

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 5a0da1e...e5aa2dd. Read the comment docs.

DERP! Just realized that Python-Levenshtein is a dev dependency, and I forgot to install dev dependencies 😩
This PR has been a trip!


Add windows dll exports

This adds windows symbol exports, via the cmake option WINDOWS_EXPORT_ALL_SYMBOLS. This should catch everything, and the tests run, but there may be some static data members I've overlooked (I'm not sure if constexpr static counts).
Resolves: #55

@Tectu I am concerned that the shared msys build seems to be spinning forever

@0x00002a yep, seems that way. It seems to be the case only with shared: ON. It also seems like the build passes, the tests just don't run to completion.
Might this be related to the spdlog shared binary being "unavailable"? I do think that then it would just crash immediately.

Might this be related to the spdlog shared binary being "unavailable"? I do think that then it would just crash immediately.

I can't see the logs in the CI, can you repro it? The spdlog binary should be copied into the right dir since I had to do it for msvc to work