SCC errors regarding seccomp are missing provider name

As you can see in the following snippet (@@@ prefixed line), the seccomp errors look like they occur in the context of the hostmount-anyuid provider,
but they are actually not - they occur in the consideration of an scc called "kubevirt-controller" (which made this tricky to debug)
E1109 09:04:41.472725       1 util.go:72] pods "virt-export-vme-test-cvrbnzr8k7ts" is forbidden: unable to validate against any security context constraint:
[
provider "containerized-data-importer": Forbidden: not usable by user or serviceaccount
provider "anyuid": Forbidden: not usable by user or serviceaccount,
provider restricted-v2: .spec.securityContext.fsGroup: Invalid value: []int64{107}: 107 is not an allowed group,
provider "restricted": Forbidden: not usable by user or serviceaccount,
provider "nonroot-v2": Forbidden: not usable by user or serviceaccount,
provider "nonroot": Forbidden: not usable by user or serviceaccount,
@@@provider "hostmount-anyuid": Forbidden: not usable by user or serviceaccount, pod.metadata.annotations[seccomp.security.alpha.kubernetes.io/pod]: Forbidden: seccomp may not be set, pod.metadata.annotations[container.seccomp.security.alpha.kubernetes.io/vme-test-cvrbnzr8k7ts]: Forbidden: seccomp may not be set,
provider "machine-api-termination-handler": Forbidden: not usable by user or serviceaccount,
provider "bridge-marker": Forbidden: not usable by user or serviceaccount,
provider "hostnetwork-v2": Forbidden: not usable by user or serviceaccount,
provider "hostnetwork": Forbidden: not usable by user or serviceaccount,
provider "hostaccess": Forbidden: not usable by user or serviceaccount,
provider "hostpath-provisioner-csi": Forbidden: not usable by user or serviceaccount,
provider "linux-bridge": Forbidden: not usable by user or serviceaccount,
provider "kubevirt-handler": Forbidden: not usable by user or serviceaccount,
provider "rook-ceph": Forbidden: not usable by user or serviceaccount,
provider "node-exporter": Forbidden: not usable by user or serviceaccount,
provider "rook-ceph-csi": Forbidden: not usable by user or serviceaccount,
provider "privileged": Forbidden: not usable by user or serviceaccount
]

Please provide a clear reproducer


[3.19.0] mv: rename core to sync-4.7.8/core: Directory not empty

Goals
Install pods on a second machine.
Expected Results
On the first machine bundle exec pod update succeeded and updated the Podfile.lock accordingly. Doing a bundle exec pod install on a second machine with having the following in Podfile.lock
- Realm (3.19.0):
    - Realm/Headers (= 3.19.0)
  - Realm/Headers (3.19.0)
  - RealmSwift (3.19.0):
    - Realm (= 3.19.0)

is expected to just succeed without any errors.
Actual Results
bundle exec pod install --verbose
[...]
-> Installing Realm (3.19.0)
 > Git download
 > Git download
     $ /usr/bin/git clone https://github.com/realm/realm-cocoa.git /var/folders/r7/0xvdqbpn5991qb0sz4dz7ssh0000gp/T/d20191004-29275-1ewmwr8 --template= --single-branch --depth 1 --branch v3.19.0
     Cloning into '/var/folders/r7/0xvdqbpn5991qb0sz4dz7ssh0000gp/T/d20191004-29275-1ewmwr8'...
     Note: checking out '69a4f4c73c877bf6df4cc416d1590a5e42426cc0'.

     You are in 'detached HEAD' state. You can look around, make experimental
     changes and commit them, and you can discard any commits you make in this
     state without impacting any branches by performing another checkout.

     If you want to create a new branch to retain commits you create, you may
     do so (now or later) by using -b with the checkout command again. Example:

       git checkout -b <new-branch-name>

     $ /usr/bin/git -C /var/folders/r7/0xvdqbpn5991qb0sz4dz7ssh0000gp/T/d20191004-29275-1ewmwr8 submodule update --init --recursive
     Submodule 'Realm/ObjectStore' (https://github.com/realm/realm-object-store.git) registered for path 'Realm/ObjectStore'
     Cloning into '/private/var/folders/r7/0xvdqbpn5991qb0sz4dz7ssh0000gp/T/d20191004-29275-1ewmwr8/Realm/ObjectStore'...
     Submodule path 'Realm/ObjectStore': checked out '25018d4e5428989adcaa5e78cf9beba8bb51b9a7'
     Submodule 'external/catch' (https://github.com/catchorg/Catch2) registered for path 'Realm/ObjectStore/external/catch'
     Cloning into '/private/var/folders/r7/0xvdqbpn5991qb0sz4dz7ssh0000gp/T/d20191004-29275-1ewmwr8/Realm/ObjectStore/external/catch'...
     Submodule path 'Realm/ObjectStore/external/catch': checked out '6860c8def0ba7559bf077515b7a7ff63ad3444f8'
 > Running prepare command
   $ /bin/bash -c  set -e sh build.sh cocoapods-setup
   core is not a symlink. Deleting...
   Downloading dependency: sync 4.7.8 from https://static.realm.io/downloads/sync/realm-sync-cocoa-4.7.8.tar.xz
   mv: rename core to sync-4.7.8/core: Directory not empty
[!] /bin/bash -c
set -e
sh build.sh cocoapods-setup

core is not a symlink. Deleting...
Downloading dependency: sync 4.7.8 from https://static.realm.io/downloads/sync/realm-sync-cocoa-4.7.8.tar.xz
mv: rename core to sync-4.7.8/core: Directory not empty

More
The permissions inside of $TMPDIR for directories like the above are the following:
drwx------      2 <the-user>  staff      64 Oct  3 04:11 d20191003-96746-42crc8

These are the same permissions on both, the first machine and the second.
Version of Realm and Tooling
Realm framework version: 3.19.0
Realm Object Server version: 3.19.0
Xcode version: 11.0 (11A420a)
macOS version: Mojave Latest
Dependency manager + version: CocoaPods  v1.8.1

Deleting $TMPDIR/sync_bin and Pods/Realm/core should fix this.

rm -rf $TMPDIR/sync_bin did the trick. Thanks


Hyprland crashes when connecting a VR headset

Running the Monado OpenXR runtime crashes Hyprland as soon as the headset initialises. VR headsets are non-desktop screens and should be ignored according to the DRM-lease protocol (which Hyprland implemented with PR #588), but that seems not to be happening for whatever reason. Sway's implementation, which is what Hyprland's was based on as far as I understand, works correctly.
The log shows the "Not configuring non-desktop output" debug line so I believe it gets identified correctly (Monitor.cpp, line 68), but then Hyprland apparently tries to configure the screen anyway?
[LOG] Searching for matching rules for org.wezfurlong.wezterm (title: monado-service ~)
[LOG] Window rule workspace 4 silent -> wezterm matched 314688b0 [monado-service ~]
[LOG] Window 314688b0 set title to monado-service ~
[LOG] Searching for matching rules for org.wezfurlong.wezterm (title: monado-service ~)
[LOG] Window rule workspace 4 silent -> wezterm matched 314688b0 [monado-service ~]
[LOG] Window 314688b0 set title to monado-service ~
[LOG] Adding completely new monitor.
[LOG] Registered signal for owner 314effb0: 310fe9c0 -> 314f0100 (owner: )
[LOG] Registered signal for owner 314effb0: 310fea50 -> 314f0168 (owner: )
[LOG] Registered signal for owner 314effb0: 310fea40 -> 314f01d0 (owner: )
[WARN] No rule found for DP-3, trying to use the first.
[WARN] No rules configured. Using the default hardcoded one.
[LOG] Not configuring non-desktop output
[LOG] Applying monitor rule for DP-1
[LOG] Setting preferred mode for DP-1
[LOG] Monitor DP-1 -> destroyed all render data
[LOG] LayerSurface 3147b290 arranged: x: 1080 y: 240 w: 3440 h: 28 with margins: t: 0 l: 0 r: 0 b: 0
[LOG] LayerSurface 3147b000 arranged: x: 1080 y: 240 w: 3440 h: 1440 with margins: t: 0 l: 0 r: 0 b: 0
[LOG] Monitor DP-1 layers arranged: reserved: 0.000000 28.000000 0.000000 0.000000
[LOG] Monitor DP-1 data dump: res<EMAIL_ADDRESS>scale 1.00, transform 0, pos 1080x240, 10b 0
[LOG] LayerSurface 3147b290 arranged: x: 1080 y: 240 w: 3440 h: 28 with margins: t: 0 l: 0 r: 0 b: 0
[LOG] LayerSurface 3147b000 arranged: x: 1080 y: 240 w: 3440 h: 1440 with margins: t: 0 l: 0 r: 0 b: 0
[LOG] Monitor DP-1 layers arranged: reserved: 0.000000 28.000000 0.000000 0.000000
[LOG] Applying monitor rule for HDMI-A-1
[LOG] Setting preferred mode for HDMI-A-1
[LOG] Monitor HDMI-A-1 -> destroyed all render data
[LOG] LayerSurface 3147c1d0 arranged: x: 0 y: 0 w: 1080 h: 1920 with margins: t: 0 l: 0 r: 0 b: 0
[LOG] Monitor HDMI-A-1 layers arranged: reserved: 0.000000 0.000000 0.000000 0.000000
[LOG] Monitor HDMI-A-1 data dump: res<EMAIL_ADDRESS>scale 1.00, transform 3, pos 0x0, 10b 0
[LOG] LayerSurface 3147c1d0 arranged: x: 0 y: 0 w: 1080 h: 1920 with margins: t: 0 l: 0 r: 0 b: 0
[LOG] Monitor HDMI-A-1 layers arranged: reserved: 0.000000 0.000000 0.000000 0.000000
[LOG] Applying monitor rule for HDMI-A-2
[LOG] Setting preferred mode for HDMI-A-2
[LOG] Monitor HDMI-A-2 -> destroyed all render data
[LOG] LayerSurface 3145aa40 arranged: x: 4520 y: 160 w: 2560 h: 1600 with margins: t: 0 l: 0 r: 0 b: 0
[LOG] Monitor HDMI-A-2 layers arranged: reserved: 0.000000 0.000000 0.000000 0.000000
[LOG] Monitor HDMI-A-2 data dump: res<EMAIL_ADDRESS>scale 1.00, transform 0, pos 4520x160, 10b 0
[LOG] LayerSurface 3145aa40 arranged: x: 4520 y: 160 w: 2560 h: 1600 with margins: t: 0 l: 0 r: 0 b: 0
[LOG] Monitor HDMI-A-2 layers arranged: reserved: 0.000000 0.000000 0.000000 0.000000
[WARN] No rule found for DP-3, trying to use the first.
[WARN] No rules configured. Using the default hardcoded one.
[LOG] Applying monitor rule for DP-3
[LOG] Callback 314f0190 -> 314f0188,  removed.
[LOG] Callback 314f0128 -> 314f0120,  removed.
[LOG] Callback 314f01f8 -> 314f01f0,  removed.
[LOG] Registered signal for owner 314effb0: 310fe9c0 -> 314f0100 (owner: )
[LOG] Registered signal for owner 314effb0: 310fea50 -> 314f0168 (owner: )
[LOG] Registered signal for owner 314effb0: 310fea40 -> 314f01d0 (owner: )
[WARN] No rule found for DP-3, trying to use the first.
[WARN] No rules configured. Using the default hardcoded one.
[LOG] Not configuring non-desktop output
[LOG] Setting preferred mode for DP-3
[ERR] Couldn't commit output named DP-3

I don't own anything VR-related and thus can't debug this. PRs welcome.

I'm not exactly a C++ coder, but i get the feeling, since the original PR for DRM-leasing supposedly worked, the bug might have been introduced by commit #1f72237? That commit introduced a second call to applyMonitorRule in Monitor.cpp that isn't covered by the original non_desktop check as far as I can tell?

git bisect??

Never used it, but I manually reverted that line, and it didn't help. Still crashes, so applyMonitorRule still gets called. Maybe it would make sense to add the check to that function directly? It already contains the check for manually disabled monitors, so why not add the non_desktop check there as well?


feat(markdown): add gfm support

Why
I wanted to add some table display of the technologies used for a project but commonmark doesn't support tables
How
Add gfm (Github Flavored Markdown) plugin to ReactMarkdown renderer
How to test
Launch the project from this branch, inside a section fill a markdown table, it should display properly

a
b
c

e
f
g

Thank you for the contribution :)


Not processing private key is 0

In the current code, when passing a string private key with all 0s, a private key can be generated and signed. And that's not compliant.

in current implementation,  0 private key is not detected. In real, 0 private key is not allowed, and should be guarantee by user.

The most important thing is that the 0 private key cannot be used to sign.


Don't exit on sendto errors

The error string (e.g. “Permission denied” or “Network is unreachable”) is printed at the end of the line
This adds another integer array to the ping_all function (int* errors), which stores which errno each host generated, if any
Fixes issue #1

Thanks

Sendto error handling.


⚠ Bofrost.es has degraded performance

In 2c255a2, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1468 ms

Resolved: Bofrost.es performance has improved in 2ebb611 after 6 minutes.


Is not kubectl inspect gpushare, is kubectl-inspect-gpushare

In gpushare-scheduler-extender/docs/userguide.md, Is not kubectl inspect gpushare, is kubectl-inspect-gpushare!

It's a kubernetes new features after v1.12. Please take a look at the docs: https://kubernetes.io/docs/tasks/extend-kubectl/kubectl-plugins/.

Ok. Thank you.
https://kubernetes.io/docs/tasks/extend-kubectl/kubectl-plugins/#naming-a-plugin
Naming a plugin
As seen in the example above, a plugin determines the command path that it will implement based on its filename. Every sub-command in the command path that a plugin targets, is separated by a dash (-). For example, a plugin that wishes to be invoked whenever the command kubectl foo bar baz is invoked by the user, would have the filename of kubectl-foo-bar-baz.


Fixup to path to script

Codecov Report

Merging #947 into master will decrease coverage by 0.09%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           master     #947     +/-   ##
=========================================
- Coverage   47.87%   47.78%   -0.1%
=========================================
  Files          76       76
  Lines        5226     5226
=========================================
- Hits         2502     2497      -5
- Misses       2570     2573      +3
- Partials      154      156      +2

Impacted Files
Coverage Δ

pkg/plugin/aggregation/aggregator.go
71.79% <0%> (-3.21%)
:arrow_down:

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 ff5326e...3bb1dbd. Read the comment docs.


[lnn] structs

WRT the last commit, it was discussed offline and we decided to implement alternative versions of pusharr that correct pusharr's behavior, so the last commit will be undone by my next commit(s).

The last commit fixed the test in both ln and lnn - I realized that the test was failing in lnn because the event handlers were listed in reverse order in the amm output of the lnn front-end. Since the JSR is single-threaded, it runs handlers in the order they're defined, and the reverse order was causing the handler with emit exit 0 to run first, so the test would only fail for lnn running on JS. Since the order is supposed to be non-deterministic, we decided offline that the test should be fixed, not the compiler code.


Fix post install

As post-install call jupyter command, it under the hood calls node, so it should be available in the environment.
File "/Users/xmn/omnisci/lib/python3.7/site-packages/jupyterlab/commands.py", line 1758, in _node_check
    node = which('node')

Often we need to conda install node before it is available.

Node is already defined as dependency somewhere (I don't remember right now where). Using $PREFIX/bin/jupyter ... it cannot find  node from $PREFIX, that is why I needed to  include $PREFIX to $PATH ...

Yeah, node should be on the path

@scopatz not sure, is there anything else I should change here in this PR? thanks!

LGTM


0.2.0_rc2 - exception on docker shutdown

Cloud Connection
Shutdown docker container
2021-12-25 12:58:29 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/config/custom_components/lennoxs30/init.py", line 396, in async_shutdown
await self._api.shutdown()
File "/usr/local/lib/python3.8/site-packages/lennoxs30api/s30api_async.py", line 240, in shutdown
await self.logout()
File "/usr/local/lib/python3.8/site-packages/lennoxs30api/s30api_async.py", line 254, in logout
resp = await self.post(url, headers=headers, data=None)
File "/usr/local/lib/python3.8/site-packages/lennoxs30api/s30api_async.py", line 344, in post
resp = await self._session.post(url, headers=headers, data=data, ssl=self.ssl)
File "/usr/local/lib/python3.8/site-packages/aiohttp/client.py", line 381, in _request
raise RuntimeError("Session is closed")
RuntimeError: Session is closed

Fixed with changes in API


making stack of computation class private

Even though it's pretty obvious to us two what these pull requests are part of, can you please still fill them in with a full description and link to the original master issue.
Also, where is my cute animal picture 😄

:))) Sorry about that. I have filled the documentation, and took the opportunity to upload my cute cat's photo :)

Excellent cat-in-a-bag!


rapids_export_write_language no longer generates cmake dev warnings

Description
The rapids_export_write_language function would generate CMake code that would try and do set(var PARENT_SCOPE) in the root directory. This would cause CMake developer warnings to appear.
This resolves the issues by adding root level guards around the set commands, and setting up each rapids-cmake test to have developer warnings as errors.  Due to https://github.com/rapidsai/rapids-cmake/issues/680 we mark some tests with NO_DEV_ERRORS so that they continue to pass while we wait to 2025 to bump the minimum required CMake version.
Checklist

[x] I am familiar with the Contributing Guidelines.
[x] New or existing tests cover these changes.

/merge


https://forum.ragezone.com/f922/getting-packet-structures-opcodes-using-792436 (file: README.md, status code: 404)

not exists


fix miss in-process

fix #1097

I haven't tested it, but looks good to me.

I have test on it.
I works  in more cases on ConditionOnClass


Putting data on edges (or not)

This is a design topic which has been discussed a bunch internally at my current company, and which is not addressed in the design tutorial. IIRC at Shopify we ended up at (what I believe to be) the correct answer without much discussion and never really thought about it, but in hindsight I think that was a fluke, and it's worth making an official design ruling on. This should probably be worked into the design tutorial, or tacked on as another appendix or something.
My current belief is:
While there are some cases where putting data directly on connection edge types is OK, there are many where it ends up causing issues, and should be avoided; it is best to adopt the simple rule never to put data on edge types. This may result in a few extra types in the schema, but simplifies reading/interpretation because it becomes safe to assume that edge types are always just boilerplate and can be safely ignored.
The cases where putting data on edges can cause issues include:

When you have a many-to-many relation, with connections running both ways from A to B and also from B to A. Putting data directly on the edge would require you to duplicate fields between the A-to-B-edge type and the B-to-A-edge type.
When you have several types (A, B, C), all with one-to-many relationships to the same type (X). This is solvable, but you would have to remember to create/use AXEdge and BXEdge etc. instead of the standard/default generated XEdge, which can't reasonably have edge-data for two or more different relationships.
When you have a mutation operating on the relationship between an A and a B, in which case that mutation would have to duplicate fields from the edge type, or return an edge type directly (in addition to whichever of A or B isn't covered by the edge), which is gross.
Probably others I'm not thinking of right now.

If edges are boilerplate and can just be ignored, then why do we have them? There is the nodes field, which is equivalent to edges.map(&:node). Is that enough?
One field that's generally put on edges is the cursor, to start a pagination from that specific edge, rather than the end of the current page. Not sure how much we use that, but would that be still be useful?

In the scenario where data is actually naturally stored on the edge (e.g. in a friend relationship between two users, with status and timestamps etc on the edge), then, without the data on edge, we'd need a UserFriend type to capture that data. If the nodes aren't of the same type (e.g. a User has a relationship with a Shop), then we'd need a UserShop and ShopUser type, and remember to create/use those?


Zero sized fontdata files

Godot version
3.5.3, 3.5.2
System information
Mac OSX Sonara 14.0
Issue description
When using custom fonts on Godot 3.5.2 and 3.5.3 it works on the desktop, (Mac OSX Sonara), but fails on iOS and android.
It turns out that Zero sized fontdata files are being generated and placed in the android build folder, which results in deploying an app that is unable to display any words. iOS builds also result the same problem.
Steps to reproduce
Im still trying to narrow down what causes this problem. I was not having a problem with the last build several weeks ago, and I am not sure what has changed. I have tried this on 3.5.3 and 3.5.2 on Sonara and the sam problem occurs.   I am posting this here in case anyone else stumbles across this problem and we can compare notes.
Minimal reproduction project
Im still not quite sure what specific steps/configs/settings are needed to cause the fontdata files to be zero sized. There are no other errors appearing anywhere as far as I can see. I will update this issue if I can work out the problem.
Because of the ambiguous nature of this report, it might be best to close it, I realize it's a difficult thing for anyone to action without more information. I just wanted to throw the information out there for now while I investigate.
There are errors inside the console while exporting,
--- Debugging process stopped ---
Cannot get class 'FontFile'.
Cannot get class 'FontFile'.
Cannot get class 'FontFile'.
Cannot get class 'FontFile'.
Cannot get class 'FontFile'.
Resource file not found: res://.godot/imported/myfont.ttf-cab768305abef906ec195b5d076b3bb3.fontdata.

And Xcode prints the following in the Xcode console while running a build on iOS:
ERROR: Cannot get class 'FontFile'.
   at: _get_parent_class (core/class_db.cpp:323) - Condition "!ti" is true. Returned: StringName()

When I run on android, I also see this in the console:
 Can't open file from path 'res://.godot/imported/fontname.ttf-6ed56f0d53cf0169db8e930304e44c42.fontdata'

Interestingly though the font data files are size zero, is that meant to be the case?
# ls -haltr ./android/build/assets/.godot/imported/
total 0
drwxr-xr-x@ 3 name  staff    96B Oct 31 16:46 ..
-rw-r--r--@ 1 name  staff     0B Oct 31 16:46 font1.ttf-cab768305abef906ec195b5d076b3bb3.fontdata
-rw-r--r--@ 1 name  staff     0B Oct 31 16:46 font2.ttf-5b15a48858c9b95b06e0dabe6be37061.fontdata

What font family did you try to import in Godot? This may help narrow down the issue (even if this font isn't publicly downloadable).

I rolled back the code to the last successful build, and it won't generate the fonts on Godot 3.5.2 or 3.5.3, so I suspect perhaps it's something related to a change in OSX. Im 99.9% sure it's not related to the fonts.
(All together there are 6 fonts of different types. Some smaller and some larger, some only containing English, and some containing other languages. The strange thing is, my last build a few weeks ago worked fine.)

Im closing this issue for now. I was able to solve the problem by quitting Godot, and manually removing every single .import file in the project. I also removed a font that, while it worked fine in Godot for  me, it had some warnings when opened with OSX Font Book.


remove legacy code in FF shim

looks like (thanks @jan-ivar) the URL.createObjectUrl fallback was never needed in Firefox.

LGTM but want to get input from @jan-ivar.

Just checked this, looks good.

lgtm (sorry, I'm backlogged in github).


Null value edited then deleted results in empty string

I have a model property with a null value, I then do the following:

edit it, giving it a value
save (i.e. click the 'tick' button)

Then I:

edit it, removing the value
save (i.e. click the 'tick' button)

The model value is not returned to null, instead it is an empty string. I would expect it to be null.

Worth noting that this problem seems limited to text inputs, number inputs are set to null when empty

i think you can handle it by onbeforesave event.
if(empty == data){
data = null;
}

Is this still an issue?

@AndrewIsh is this still an issue?

Apologies for the delay in replying. The fix that @zhendong590 suggests obviously works, I guess it's now more a question of whether reverting to an empty string rather than null is desirable behaviour for angular-xeditable to be doing? My personal feeling is that reverting to null would be proper behaviour.


Add License File

I noted that setup.py indicates MIT license but the project does not contain a LICENSE file. It would be a stronger signal and thus lower risk to incorporate this project by integrators if a LICENSE file were included that matches that indicated in setup.py.
I would normally submit a PR but since this issue involves licensing, I would recommend that the authors or existing maintainers incorporate. Can you please add the MIT License file to this project?

Should be fixed now.


add tab title rename logic

I added tab title rename logic
It allows you to rename tabs without affecting tab node paths as it is now
To be honest, this solution looks bad. If you have an advice on haw to improve it I would be happy to make an update but now it is something at least

Hey @Lemonbrush, thanks for the contribution!
Renaming tabs is a very nice addition, much needed if you ask me.

If you have an advice on haw to improve it I would be happy to make an update but now it is something at least

I think tab naming should be kept in the DockableLayout resource instead of the DockableContainer. This way it would be easily editable without any code and would get properly serialized.
Not sure if it makes more sense to put this in the DockableLayout itself, like hidden_tabs is, or if it makes sense to put this in the DockableLayoutPanel. I guess the first option is better, because one could rearrange the panels several times and the name mapping would be kept in the same place, much simpler.


RS Bridge: isItemCrafting returns false when item being crafted is a sub-craft

Descripe
In a RS network, when you have two items able to be crafted, Item A and Item B, where Item B uses Item A as an ingredient, and you trigger the crafting of item B (which thus invokes item A as a sub-craft), isItemCrafting returns false on Item A. I would expect it to return true, since it is currently being crafted.
Steps to reproduce

Attach a computer to a RS network.
On that network, start crafting item B.
Call isItemCrafting on item A.
Check the result.

Multiplayer?
Yes
Version
0.7.6r
Minecraft, Forge and maybe other related mods versions
Forge 36.2.22 Minecraft 1.16.5 RefinedStorage 1.9.16
Screenshots or Videos
No response
Crashlog/log
No response

I'll let this issue open. But there is currently no way for me to check if an item is an ingredient of one recipe.

So is this an issue with the Refined Storage API not exposing the correct information? If so, I can refer this issue to Refined Storage's issue tracker.

Not really an issue
But It does not seem that RS has a way in their api to see if an ingredient is currently crafting.
But sure, you can make an issue at the Refined Storage's issue tracker.

I am uncertain if this is even expected behaviour. I just created a discord bot interface using the RS bridge on our server and when i try autocrafting with the bot I need to know if the item is currently being created. If it was checking if the item is part of a recipe being crafted, then that would mean that - when crafting is finished - the item i was checking was not created (i.e. was directly used).

I'll close this now.
Ingredients will not be caught by isItemCrafting. Since this is also not possible with the current state of the RS Api.
Returning true for crafting ingredients could also lead to confusion if a user wants to know if a real item is crafting, but it's just true cause of an ingredient.


Considering merge NotebookLM into microcourse

A couple of ideas about the NotebookLM yesterday:

Podcast for AC: make a podcast series for AC scientific paper. This way, we’d expand the reach and make it easier for students and SDL scientists to stay up to date with each other’s research. Instead of reading through everything, they could just listen during their commute or in their free time.
Here’s an example I tried using the paper other shared in slack:
https://notebooklm.google.com/notebook/71d889ab-6b87-4277-a8ad-631017f65cbd/audio

Microcourse Summaries as Podcasts: do short podcast summaries at the start of each section or chapter of a microcourse. Some students find the text-heavy format a bit overwhelming, so a quick audio intro could make the material more engaging and helpful.
I gave it a try with the course1.5 as tutor guidance:
https://notebooklm.google.com/notebook/38e1c9a3-1000-4af7-9917-ce195005222f/audio

Really interesting idea. I listened to both, and I think there's potential there. Could you comment on what documents and instructions you provided for each?
Did you end up needing to tune things? Any general impressions about the process or comments on the quality compared to input time spent?
A few specifics I remember (I should have taken notes while listening):

HT-READ isn't from University of Toronto, and last time I checked, the alloy references weren't quite as close to autonomy as the podcast suggested (in part because automating such high temperatures, solid handling, and complex processing steps can be really challenging)
Most of the concrete studies weren't too much on the practical side, and the dialogue seemed to suggest the SDL field is further in this application than it actually is. It captured the motivation and context nicely though
It seemed to miss a fair bit of applications other than "drug discovery and materials science" (i.e., it repeated that a number of times, but I think that may be too narrow and generic). For example, I think there was an optoelectronics section and a reaction optimization section. I think it would benefit from going into more detail about the topics, and I think being shorter and cutting some of the repetition or "fluff"
the conversational aspect of it makes it pretty easy to listen to. I think it also has a lot of value and friendliness for less technical audiences
nice that it brought up the 1970's example, and the different types of hardware you might see (e.g., flow chemistry, micro fluidics, mobile robots)
I think the "questioner/interviewer" voice could benefit from more probing / skeptical questions (while maintaining and overall positive attitude). Likewise, I think the "expert" voice could benefit from toning down the hype with a more balanced view of pros, cons, limitations, and risks, while still maintaining an overall favorable and excited/optimistic tone about the topics.

I think the episodes could be a bit shorter. Or maybe it's ok as-is if some of the "fluff" gets replaced with more technical specifics.
Was the second podcast provided any of the tutorial content, or just the overview page? It might be worth also giving it some of the text from knowledge checks and assignment instructions.
Did you give the first podcast a PDF of the manuscript?

The way the first podcast was generated, I modified the prompt a couple times to fine tune it, and most of your comments can be modified in the script. I think this way is meant to be used to give a general background of what's going on.  All I fed the model was that paper and some note summaries (where mod focus was required).
For the second assignment tutor, I just send the tutorial to the model. i don't think it's quite enough to be used as a lab guide, at the moment it can be used at most as an introduction to each subsection, or a summary at the end.
Mehrad Ansari  has a thought to incorporate this feature into his pdf summary project.

Another try:
https://notebooklm.google.com/notebook/659771fd-9a3f-4b75-a8bd-82087de6a480/audio
This time, I combined more digested notes, but the time control is not work. Still too long.

(NOTE: above was based on Miracle_2024_Autonomous R&D of structural materials_COSSMS.pdf). Agreed that 30 minutes is too long for a 10 page perspective.

I think this type of podcast is well-suited for thematic introductions rather than focusing on a single paper

That seems to be the case. Let's give it some thought if/how this could be integrated into the courses. @mehradans92, feel free to weigh in. I know there are some other tools more geared towards processing single papers. Open to thoughts.

What I can think of for now is that the microcourse could have a subscription-like feature (maybe for registered users or a new service?), releasing a weekly summary podcast. This would cover research highlights from the week (noteworthy papers), condensed into key insights by us, along with some potential connections to SDL. This way, it not only captures current research frontier but also touches on relevant content from certain microcourse sections

I think this may be outside of the scope of the microcourse, though it's worth keeping in mind. I also want to be really cautious of the volume of AI generated content we release - since the level of careful curation will need to increase with how much we're publicizing or advocating for it.

Great ideas. Love it. Couple of things, I agree with @sgbaird that we should try to limit the audio time, 5 minute audio containing the top with key points form the paper. Not sure this is a hyperparameter as of now we can change as they have not released an API for NotebookLM. I came across this gradio app that might be useful. Overall, I think this is really cool and can be a great addition to micro-courses (as in a quick course summary) and also what we have developed in Spock (not fully done yet but soon to be released). See example on Slack:

Nice find! Looks like https://huggingface.co/spaces/gabrielchua/open-notebooklm lets you choose short (1-2 min) or medium (3-5 min).
It looks like this isn't really tunable and is somewhat random on the NotebookLM side: https://www.reddit.com/r/notebooklm/comments/1fnyv6o/longer_podcasts/.

Yeah same thing. I read that Reddit too.
So Looks like they just pass it in the input prompt, hoping it would listen lol
https://huggingface.co/spaces/gabrielchua/open-notebooklm/blob/main/app.py#L111
Have you tried this @SissiFeng to see if it actually works?

I'm using the gradio above. it hasn't output the audio properly after a few tries.
And it limits the prompt a lot in the code (maybe for the consideration of fast deployment).
I’m trying to reference its code.

I'm using the gradio above. it hasn't output the audio properly after a few tries. And it limits the prompt a lot in the code (maybe for the consideration of fast deployment). I’m trying to reference its code.

Maybe best to check existing issues in that repo, raise a new one if available, and then wait for a response or update from the devs? Could be a long endeavor, and we're not entirely sure of the quality.

Per @mehradans92's comment, perhaps we just try to force NotebookLM to give something really short.

I checked the code for gradio repo above, and it's a shell for other speech generation packages, not the api for NotebookLM (as far as I know only the meta version of NotebookLlama has an open api interface at the moment)

I'm using the gradio above. it hasn't output the audio properly after a few tries. And it limits the prompt a lot in the code (maybe for the consideration of fast deployment). I’m trying to reference its code.

So @SissiFeng what do you mean by "it hasn't output the audio properly"? Like it wouldn't shorten it based on the length you input?
@sgbaird one thing we can do about quality is to maybe use it on a handful of our own papers and then judge the quality.


[BUG]The money from the account was lost

Describe the bug
I have version 1.1.2 installed. Node has stopped syncing. I upgraded to version 1.1.3, removed ./sit and fully synced. And my wallet dropped. There is no money on the balance, the staking is similar. And there were 200 coins. What could be the problem?
The recovery phrase is correct. Farming began again. Remote harvesters are not seen on old keys.
To Reproduce
Steps to reproduce the behavior:
Expected behavior

Screenshots

Desktop

OS: Linux 20.04
CPU: Intel Xeon 8175M

Additional context

Is your wallet fully synced?

Is your wallet fully synced?

yes.

You can run command "sit farm summary" on your farmer to check your staking balance.

these 0.125 earned yesterday. stacks of accounts coincide with the old ones. And whether the account coincides with the old one, I don't know, I didn't write it down, it's my fault.
I restored the main machine with the keys I had on the combines, and the main machine saw all the combines. But there are no coins, there are none.

It seems that you upgrade from version 1.0.2 not 1.1.2. The mainnet has been restarted since 1.1.0.
https://www.sitnetwork.org/post/the-voting-result-of-restart

If you upgrade from 1.1.2 and you staked coins into your staking address, it won't disappear because the balance was recorded on the blockchain even if you delete your .sit folder.
Or maybe you have different plot files. The staking address is derived from the farmer public key which stored in your plot file.

I have no other files. As you can see from the screen, all the flesh tightened up, I have no other 13k plots)) But for some reason there is no previous account. Well, we'll have to mine them again. Although I understand what you are talking about, everything had to be on the blockchain.
Now I decided to delete the entire folder and re-synchronize, it should pull up everything in the blockchain. By the way, there were no attacks on the network? 51% or something else?

There were no attacks on the network.

then such a question / idea in chia is it possible to create several wallets ... perhaps another wallet was accidentally created and there are 0 coins in it, is it possible?


Import openapi3 document in playground

:x: There is undocummented changes. Run chronus add to add a changeset or click here.
The following packages have changes but are not documented.

:x:@typespec/openapi3
:x:@typespec/playground

Show changes

You can try these changes at https://cadlplayground.z22.web.core.windows.net/prs/3750/
Check the website changes at https://tspwebsitepr.z22.web.core.windows.net/prs/3750/


Invalid default value for elements of type

In types.xsd time is defined as a simple double, however inside state.sdf a string value of the form "0 0" is used as default. The documentation agrees with the latter and says it should be of the form "{seconds} {nanoseconds}.
I implemented a local fix inside types.xsd of the form
  <xsd:simpleType name="time">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="\d+ \d+"/>
    </xsd:restriction>
  </xsd:simpleType>

However, it still makes sense to bring it up as an issue here, since I don't know if this is the preferred solution.

The suggested fix makes sense to me

I believe "{seconds} {nanoseconds}" is what's used by Gazebo classic, so the fix makes sense to me too.


Optimize Node children management

Adding and removing child nodes is now constant time (including name validation), speed up should be huge.
Searching for node paths as in ("path/to/node") should be far faster too.
The rest of the operations will likely be a small bit slower and user memory, which is acceptable given that the goal of this PR is to produce more "all rounder" performance.

This changes the children management and makes it a hashmap, optimizing most StringName based operations. Most operations should be severe speed up without breaking compatibility.
This should fix many issues regarding to node access performance, and may also speed up editor start/end, but benchmarks are needed. So if you want to test, please make some benchmarks!
Further improvements in performance will be achieved with the removal of NOTIFICATION_MOVED_IN_PARENT, but this is left for a future PR. Done #75701.

This may help in resolving https://github.com/godotengine/godot/issues/71182 and/or https://github.com/godotengine/godot/issues/75369, though the bottlenecks may be elsewhere.

@lawnjelly makes sense, but then it sounds like this is just a matter of CanvasItem hooking to removed child notification on its own to fix this precise issue.

@RedworkDE ah I just realized that my latest commit re-adding NOTIFICATION_MOVED_IN_PARENT really messes things up. I am not sure I will be able to get the optimization done properly until I remove this notification.

Opened #75701 which needs to be merged before this one can be fixed.

@RedworkDE could you please also check memory usage difference? I saw somewhere that the new approach with hashmap will consume much more RAM.

Memory usage of a node with lots of children goes up about 10%:
First rows are bytes, second rows are the increase over master.

commit
10000
20000
30000
40000
50000
60000
70000
80000
90000
100000

5fbbe3be0b3da034557eae0a5066f784d72df4a9
11401336
22605304
33907448
45733944
59422456
68685304
84763896
91929592
103289592
123038200

1
1
1
1
1
1
1
1
1
1

6e78200
12605452
25013116
37355260
50549532
65278044
75580892
92175196
101560444
113960444
134749052

1.11
1.11
1.10
1.11
1.10
1.10
1.09
1.10
1.10
1.10

c4c6d63a51a3af094115121228bfc30ef02e9a9d
12605452
25013116
37355260
50549532
65278044
75580892
92175196
101560444
113960444
134749052

1.11
1.11
1.10
1.11
1.10
1.10
1.09
1.10
1.10
1.10

f6763970aaed5f9f1bfc4b9890af81fe2307a75c
12605452
25013116
37355260
50549532
65278044
75580892
92175196
101560444
113960444
134749052

1.11
1.11
1.10
1.11
1.10
1.10
1.09
1.10
1.10
1.10

And since I am now posting here anyways: some performance numbers as well with some more scenarios and a version with the other PR included:
First rows are ms for the operations with 10'000 children (see code).

commit
adding
deleting
insert_second
move_first
removing_random
removing_reverse
shuffle

5fbbe3be0b3da034557eae0a5066f784d72df4a9
35.00
52.00
1204.33
1185.33
361.33
738.00
596.33

1.00
1.00
1.00
1.00
1.00
1.00
1.00

6e78200
41.67
61.00
1637.67
6969.00
1589.67
1375.33
205.33

1.19
1.17
1.36
5.88
4.40
1.86
0.34

c4c6d63a51a3af094115121228bfc30ef02e9a9d
44.33
57.33
2349.00
7404.00
1642.00
1380.33
413.67

1.27
1.10
1.95
6.25
4.54
1.87
0.69

f6763970aaed5f9f1bfc4b9890af81fe2307a75c
38.67
789.33
2287.00
7681.33
2439.67
2055.00
396.33

1.10
15.18
1.90
6.48
6.75
2.78
0.66

Code for the operations
	var adding = func(count : int):
		perf_check("adding\t%d" % [count], func():
			var root = Node.new()
			for i in count:
				root.add_child(Node.new()))
	var deleting = func(count : int):
		perf_check("deleting\t%d" % [count], func():
			var root = Node.new()
			for i in count:
				root.add_child(Node.new())
			root.free())
	var move_first = func(count : int):
		perf_check("move_first\t%d" % [count], func():
			var root = Node.new()
			for i in count:
				var node = Node.new()
				root.add_child(node)
				root.move_child(node, 0))
	var insert_second = func(count : int):
		perf_check("insert_second\t%d" % [count], func():
			var root = Node.new()
			var first = Node.new()
			root.add_child(first)
			for i in count:
				first.add_sibling(Node.new()))
	var removing_reverse = func(count : int):
		perf_check("removing_reverse\t%d" % [count], func():
			var root = Node.new()
			for i in count:
				root.add_child(Node.new())
			for i in count:
				root.remove_child(root.get_child(0)))
	var removing_random = func(count : int):
		perf_check("removing_random\t%d" % [count], func():
			var root = Node.new()
			for i in count:
				root.add_child(Node.new())
			var rnd = RandomNumberGenerator.new()
			rnd.seed = 0
			for i in count:
				root.remove_child(root.get_child(rnd.randi_range(0, count - i - 1))))
	var shuffle = func(count : int):
		perf_check("shuffle\t%d" % [count], func():
			var root = Node.new()
			for i in count:
				root.add_child(Node.new())
			var rnd = RandomNumberGenerator.new()
			rnd.seed = 0
			for i in count:
				root.move_child(root.get_child(rnd.randi_range(0, count - i - 1)), rnd.randi_range(0, count - i - 1)))

No changes in algorithmic complexity, but everything other than shuffling the nodes children seems to be a lot slower in this PR, but i may have just some changes that should be made when integrating the notification PR.

Are there any scenarios I should be testing where this is expected to be good/bad or that someone needs in particular?

@RedworkDE Simple addition/removal cases are not going to be much of a difference, and increase in memory usage is expected. That said, #75701 needs to be merged and I need to rebase this one upon it, otherwise there will not be much of a point in benchmarking for now.

Are there any scenarios I should be testing where this is expected to be good/bad or that someone needs in particular?

Hash table is for finding children by name faster. Operations that don't use name are likely same or (hopefully only slightly) slower. How much hash table helps presumably will depend how often named operations are used, and whether they are bottlenecks.
For the other PR #75701, the original issue I noticed the problem is #61929 , this was when I was writing mesh merging, which does a lot of node sorting. See also #65581 and #74672 which contain more explanations / info, these were fixes for the same problem in 3.x. Note that this problem is most noticeable (becomes pathological) with large numbers of the children - the problem tends to scale with the square of the number of children, so in "normal" situation you may not notice it.
Things that are likely to have a lot of improvement, all when there are large number of children in a parent node (say 10,000 or more):

Deleting large numbers of children (first to last) in the same parent (not just deleting the parent node)
Moving large numbers of children particularly at the start of the child list
Detaching / attaching children, same as above

The reason is that each deletion / move / attach / detach potentially invalidates the draw index of every child following the one changed. At present each time an operation is done, the entire remaining list of children is updated with a NOTIFICATION_MOVED_IN_PARENT, and a call to VisualServer (in the case of canvas items / layers). This can happen repeatedly for every child moved.
So if you have 10,000 children, deleting the first 10 children (1 by 1) can result in approx 100,000 notifications.
With the flush once approach these notifications are deferred and only occur once per frame or tick.

Possibly related crash. Looks related. Was excited to try this out, so built and ran my project, but it quits when trying to run, black screen, then drops back to the editor:
ERROR: FATAL: Index p_index = 2 is out of bounds (size() = 2).
   at: get (./core/templates/cowdata.h:155)

================================================================
handle_crash: Program crashed with signal 4
Engine version: Godot Engine v4.1.dev.custom_build (92b7a9603aa2395be6bf361067096538ba393c45)
Dumping the backtrace. Please include this when reporting the bug to the project developer.

-- END OF BACKTRACE --
================================================================

Compatibility Mode.
Let me know if I should open a separate issue

Latest build resolved my crash above

A few quick numbers: First commit is current master, second is from before the two other optimization commits, third is this PR.
Benchmark sources live in https://github.com/RedworkDE/GodotNodeBenchmark/tree/master/benchmarks for now
Results look pretty good so far, but there seems to be some issue with using add_sibling to insert nodes.

commit
add_sibling
adding
adding_named
adding_named_duplicate
creating
deleting
lookup_by_added_name
lookup_by_index
lookup_by_name
move_to_first
move_to_first_reverse
removing
removing_random
removing_reverse
shuffle

c151d3231f8e5d207f64055c60c70967dd5351b5
292.67
97.33
19746.00
94.00
239.00
85.33
224.67
16.33
234.67
457.00
610.00
133.33
71.00
33.67
276.33

1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00

49a196277f86977d08cc10b6bb878427ae54a964
877.00
136.00
19440.00
153.67
221.00
71.67
224.67
17.00
247.67
1049.67
2070.33
647.67
305.33
24.00
842.00

3.00
1.40
0.98
1.63
0.92
0.84
1.00
1.04
1.06
2.30
3.39
4.86
4.30
0.71
3.05

1e7c0ff9ba4e302b72637098417a4cf795053298
1515.00
113.67
72.67
120.33
223.33
91.67
227.67
26.33
244.00
221.67
424.33
3.67
5.67
44.67
172.33

5.18
1.17
0.00
1.28
0.93
1.07
1.01
1.61
1.04
0.49
0.70
0.03
0.08
1.33
0.62

@RedworkDE add_sibling is likely going to be very hard to optimize, if possible. It's not used very often though.
The big missing thing from the benchmarks is get_node() (passing a cached node path) which is likely far faster with this PR. The thing is though, how often it is really worth optimizing this.
In all, it looks like this PR makes node operations more "all rounder" in general, by making some take a bit more, but avoiding the hard corner cases (like removing random nodes, renaming or add named).

get_node is about 50x faster than before.
I did look some into what is happening with the add_sibling and apparently interleaving adding and moving nodes is really slow now.
func a():
	for n in count:
		root.add_child(children[n])
	for n in count:
		root.move_child(children[n], 0)
func b():
	for n in count:
		var child = children[n]
		root.add_child(child)
		root.move_child(child, 0)

before b takes about half the time of a, but with this PR it is 30x slower, and for some reason when moving to index 1 instead it is only 5x slower???.

commit
add_all_then_move_first
add_and_move_first
add_and_move_second
add_sibling
add_sibling_fake
adding
adding_named
adding_named_duplicate
creating
deleting
get_index
get_parent
lookup_by_added_name
lookup_by_index
lookup_by_name
lookup_by_node_path
move_to_first
move_to_first_reverse
removing
removing_random
removing_reverse
shuffle

c151d3231f8e5d207f64055c60c70967dd5351b5
467.67
289.33
289.33
285.67
289.33
90.33
19691.67
89.33
224.33
80.00
20.67
15.67
243.00
18.00
254.67
140.33
454.00
609.67
110.00
63.33
29.33
281.67

1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00

49a196277f86977d08cc10b6bb878427ae54a964
1067.00
893.00
898.00
919.33
896.33
150.67
19806.00
154.00
220.67
70.67
16.33
18.67
235.67
17.33
240.67
129.33
1075.33
2066.33
606.00
258.67
23.33
710.00

2.28
3.09
3.10
3.22
3.10
1.67
1.01
1.72
0.98
0.88
0.79
1.19
0.97
0.96
0.95
0.92
2.37
3.39
5.51
4.08
0.80
2.52

1e7c0ff9ba4e302b72637098417a4cf795053298
233.00
6844.67
1484.00
1512.67
1528.00
121.33
71.67
113.67
230.00
90.67
30.33
15.67
249.33
28.00
271.67
3.33
274.33
495.33
6.00
6.67
41.00
198.33

0.50
23.66
5.13
5.30
5.28
1.34
0.00
1.27
1.03
1.13
1.47
1.00
1.03
1.56
1.07
0.02
0.60
0.81
0.05
0.11
1.40
0.70

Also a table with memory use for the various operations, notably get_index. the lookups and moving now allocate memory (that remains allocated after the return):

commit
add_all_then_move_first
add_and_move_first
add_and_move_second
add_sibling
add_sibling_fake
adding
adding_named
adding_named_duplicate
creating
deleting
get_index
get_parent
lookup_by_added_name
lookup_by_index
lookup_by_name
lookup_by_node_path
move_to_first
move_to_first_reverse
removing
removing_random
removing_reverse
shuffle

c151d3231f8e5d207f64055c60c70967dd5351b5
1331072
1331072
1331064
1331064
1331064
13048320
1048576
13048456
101600000
-114649592
0
0
0
0
0
0
0
0
-131072
-131072
-1048576
0

1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
n/a
n/a
n/a
n/a
n/a
n/a
n/a
n/a
1.00
1.00
1.00
n/a

49a196277f86977d08cc10b6bb878427ae54a964
1331072
1331072
1331064
1331064
1331064
9848512
1048576
13048456
101600000
-114649592
0
0
0
0
0
0
0
0
-131072
-131072
-1048576
0

1.00
1.00
1.00
1.00
1.00
0.75
1.00
1.00
1.00
1.00
n/a
n/a
n/a
n/a
n/a
n/a
n/a
n/a
1.00
1.00
1.00
n/a

1e7c0ff9ba4e302b72637098417a4cf795053298
+1946188
+1946188
1945912
1945912
1945912
17559100
5559356
17559236
108800000
-126360444
1048576
0
131072
1048576
131072
0
131072
131072
-320000
-320000
-3200000
131072

1.46
1.46
1.46
1.46
1.46
1.35
5.30
1.35
1.07
1.10
n/a
n/a
n/a
n/a
n/a
n/a
n/a
n/a
2.44
2.44
3.05
n/a

@RedworkDE I added a special case, so adding a child after moving it should now be cheap.

@RedworkDE The added memory usage is expected, because of the worst case allocators in the hashtables.

Can't read your latest post, but in any case thanks hugely for the help testing and benchmarking this!!

godotengine_GH-75627_RedworkDE.ods
Just a copy-paste/screenshot of RedworkDE's data, in case it was being shown badly by Github.
Thx again @RedworkDE.

Thanks to everyone involved!

Adding and removing child nodes is now constant time (including name validation), speed up should be huge.

and may also speed up editor start/end, but benchmarks are needed

Is it OK that nodes addition, which is one of the most common use cases, became 20% slower? The other like nodes creation, get_parent(), free() etc. also doesn't look promising.
Of course I could miss something from the data in comparison table. Interesting how this will influence real use cases like editor start/end and user projects.

@akien-mga Ah, I was expecting more review/testing before merging it. Well YOLO.
@arkology Its a tradeoff. Keep in mind that this went together with #75701, #75760 and  #75797, which already hugely optimize children addition and other operations. Adding children is already very fast now, and far faster than 3.x.
This change has a small penalty in base cost for performance and memory usage, but in exchange it optimizes many other common use cases that had abysmal performance (as in, adding named children, get_node() or removing children in random order -again, all very common use cases- were very slow with large number of nodes and this makes them fast).

What is the difference between "adding" and "adding_named". Why such huge gap?

(Just some thoughts).
Also from table it's interesting that adding one node and than use add_sibling() will be faster than before these pull requests with optimizations. But usual add_node() (how ofter anyone used named nodes? I don't think it was often) became 27% slower which is really huge. As I see, most common operations I uses 90% of time got slower and I should set name to nodes so it doesn't get slower.
Anyway more proper testing from users will say final word. I think it's worth specially highlight these changes in the next post so users can give more feedback if things get worse. Can't wait to try it all in the new RC.

What is the difference between "adding" and "adding_named"

Named children need to be validated for name conflicts. Unnamed (these with bunch of @s in name) are auto-generated and they are faster to insert.

how ofter anyone used named nodes? I don't think it was often

Any scene you instantiate has named nodes...

@seppoday Adding named means adding a child that has a name, this is currently very slow. As an example, if you have something you brought via preload/packed_scene its most likely going to be named, hence if you add too many its going to start slowing down. This PR fixes that.
@arkology Named nodes is very common, if you do add_child (preload("res://some_scene.tscn") ) this is a named node. As I said also, nothing is slower than before because of other optimizations (that made it these past days) had a lot more significant impact on improving this situation than the drawbacks this creates.

that.

What is the difference between "adding" and "adding_named"

Named children need to be validated for name conflicts. Unnamed (these with bunch of @s in name) are auto-generated and they are faster to insert.

how ofter anyone used named nodes? I don't think it was often

Any scene you instantiate has named nodes...

Looking at test values. Adding named are now faster than adding (no named)...

Any scene you instantiate has named nodes...

Named nodes is very common, if you do add_child (preload("res://some_scene.tscn") ) this is a named node.

Oh, my fault, I fully forgot about scenes instantiation...  Sorry about that. I should stop creating most of the nodes in runtime via scripts 😅 Or set their names to get speedup.
Anyway I'm happy with any optimizations in Godot and looking forward to test results from other users! (Based on the results of what I tested in my project, the times are about the same, maybe a bit slower. But since I did not test properly (just runtime nodes creation in some corner case), the results cannot be called reliable.)

Adding was 83 ms. Now is 105 ms.
Adding Named was 17777 ms. Now is 65.8 ms (!)

Interesting, could something be done with addition of unnamed nodes...

Interesting, could something be done with addition of unnamed nodes...
@arkology Why do I bother writing :( As I just mentioned, it was already heavily optimized, if you compare with 4.0 its most likely much faster already even after this PR was merged.

I'll just cut conversation. Overall PR is amazing in some cases. There just was some question (probably unnecesary) from noobs (including me). I think we can just close disscusion and move on :P
Good job everyone!

Even if they're both faster than before due to other PR's, it would seem that if you create a node with .new(), it is now a valid optimization technique to give it a name before calling add_child()? That seems odd, so I'm not surprised they asked several times. It'd also be an important thing to note if people somehow still run into bottllenecks with adding nodes.

There are three scenarios for node naming:

Give the node a name which will be unique and not cause conflict (fastest). This requires you to know all possible siblings and assumes that the logic you use in your script to set the create that unique name String/StringName is free/cheap.
Give the node no name, in which case its name is auto-generated not to conflict with siblings, and this is fast, but a bit less so than not having to do anything (first case).
Give the node a name which conflicts with an existing sibling, in which case the logic to de-duplicate the name will be a bit slower (but has been greatly optimized). This is the slowest case, and also a very common one (e.g. create 10000 instances of a packed scene with "Bullet" root node).

@L4Vo5 Giving it a name and then adding is not necesarily faster, what is faster is adding it once it has a name. This is very useful when using PackedScene and creating instances of it. Node::add_child() is already very fast, so I would not worry too much trying to find out how to use it most efficiently.

I was curious about the "optimization" of giving nodes a unique name before adding them: The very simple name generator of just using a counter is 50% slower than just adding the node unnamed, so there is no point in doing that.
Also the second row from my benchmarks is before reduz two other optimzation prs, so adding unnamed nodes is really still 20% faster than before.


Typo in sbt 0.13 docs

This sentence:
"When reacting to changes the incremental compiler has to goals that are at odds
with each other"
It's "two goals", not "to goals".
https://i.imgur.com/JqO4iL8.png
This bug also appears to affect the 1.0 documentation:
https://www.scala-sbt.org/1.0/docs/Understanding-Recompilation.html

Found another typo in the same section:
"Implementation of incremental recompilation
This sections goes into details of incremental compiler implementation. It’s
starts with an overview of the problem incremental compiler tries to solve and
then discusses design choices that led to the current implementation."
It's "It starts" not "It’s starts".

Hi @JohnReedLOL Thanks for the report.
If you're up for contribution, the file is located here - https://github.com/sbt/website/blob/develop/src/reference/02-DetailTopics/01-Using-sbt/50-Incremental-Recompilation.md


Giving a way to override HOSTNAME

Ignored purge curl
Added Version on the IAM Policy

HI @mbabineau,
thank you for creating this docker image. I could not figure out another way to allow an alb to check the health of a zookeeper target group over HTTP, and wrapping exhibitor allows me.
As a further point, I think that merging this PR into the docker image would make life easier for all those people that like me need to deploy a  zookeeper cluster on AWS ECS.
I am using terraform with an autoscaling group to launch the EC2 instances, which means that the local private instance IP to use as HOSTNAME is only obtainable from within the container. I believe this is a current limitation of terraform.
If you or the maintainers could find a moment to check and merge this, it would be much appreciated.
To workaround this I also tried to pass a custom entrypoint which specify a new wrapper.sh, but that would need more terraform configuration to provision the new file into the host at bootstrap time.


Add nullability annotations to core.d.ts and es6.d.ts

| null and | undefined where appropriate.

As expressed in the original PR, indexers do not have | undefined. I have added it to the ES6 collection accessors like Map.get however. I think that's better.

I haven't added | null or | undefined to functions that stringify their parameter and thus accept null and undefined, eg Symbol(null) is the same as Symbol("null"). It doesn't seem right to allow null just for that.

1. ES6's String.normalize's form parameter was typed as string - changed to union of string literals.
1. Map and Set methods that are specced to return this were not annotated as : this, changed accordingly.
I can split the changes into separate PRs if you want. I just fixed them as I came across them while doing the first one.
The other changes became too big and will be in another PR.
jake runtests passes.

thanks!

The other changes are in https://github.com/Microsoft/TypeScript/pull/7664


Formatting of annotations on return statements

Original code:
@Suppress("AsCollectionCall")
return map.asMap()

After ktfmt:
@Suppress("AsCollectionCall") return map.asMap()

My issue with this is that it makes the return statement much harder to parse when reading code, especially if that statement isn't the last one in a method. This formatting makes sense for properties/variable declarations but a lot less for returns I think.

Also see https://github.com/facebook/ktfmt/issues/316 which is about annotations with parameters, so it would apply to your example too.
Personally, I feel all annotations should just be put on their own line. That would solve many poorly looking cases.

That's a fair issue


Delete feature + other

@AlbertoCasasOrtiz and @suhlrich, everything seems to be ready here. Could you please take a look before we merge? It goes together with https://github.com/stanfordnmbl/opencap-api/pull/16

I tested and everything worked as expected. Scanned code briefly, but a more thorough review from @AlbertoCasasOrtiz would be good.


Restyling checkboxes in partner areas,  part II

Summary
There are a few checkboxes in the system that are not showing properly.  We got some of them addressed via PR #4280, but there's more!  Fix'em!
Why
Reduce confustion and frustration
Details
We have found the following additional checkboxes that are not showing properly.   Note:  deficiencues observed using Chrome, which is the only browser we officially support)
Here is a list of more checkboxes that we know need fixing:

on partners/children,  "Show Active Only?"
on partners/families, "Include Archived?"
on partners/profile/edit, "No Social Media Presence"

You can look at the PR 4280 for how a similar issue has been solved.
Criteria for completion

[ ] the fields noted above look/feel/work like checkboxes
[ ] Please provide screenshots in your PR

Bonus round

[ ] Find others that need attention -- there might not be any!

I can take it.

It's yours!  Thanks!

Hey @Hitin!  How's this coming along?

It does look right now.  Closing.


Question for Forward lld (gaussian prior) and entropy estimation in MMILB Module

positive = -(mu - y)**2/2./torch.exp(logvar)
Is "positive" vector (above in line 152) for the p(y|x) ~ N(y|µθ1(x), σ2 (x) I)? where is the -(lnσ + C) items in the probability density function for Normal distribution ?Why is it missing?

Hi, This code is directly copied from the official implementation code of the paper Improving Multimodal Fusion with Hierarchical Mutual Information Maximization for Multimodal Sentiment Analysis, Please refer to the official implement here.
https://github.com/declare-lab/Multimodal-Infomax/blob/cd0774c5a712ca5f1a5497dbf27dde11cade7434/src/modules/encoders.py#L152
We also find some other errors in symbols (including the Eq. (3) $I(X;Y) =E_{p(x,y)} [\log \frac{q(y|x)}{p(y)} ]+ E_{p(\mathbf{y})}[KL(p(y|x) || q(y|x))]$ Should be modified as $I(X;Y) =E_{p(x,y)} [\log \frac{q(y|x)}{p(y)} ]+ E_{p(\mathbf{x})}[KL(p(y|x) || q(y|x))]$ . But what is the "-(lnσ + C) items" in the probability density function of Normal distribution in your question? (If you want to further discuss the problem, you can find me through email<EMAIL_ADDRESS>


Entry's FontSize is ignored

Bug

Version Number of Control: 1.0.4
Device Tested On: Android 6 API 23
Simulator Tested On: Default Android Emulator

Expected Behavior
FontSize sets the size of the text in the input.
Actual Behavior
FontSize is ignored.

Also, notice that on the last example, the bottom line of the input touches the text. So FontSize seems to have some kind of effect, but not as much as expected xD
Steps to reproduce the Behavior
<Entry Placeholder="Entry (FontSize=8)" FontSize="8" />
<xfx:XfxEntry Placeholder="XfxEntry (FontSize=8)" FontSize="8" />
<xfx:XfxEntry Placeholder="XfxEntry (FontSize=2)" FontSize="2" />

Thanks for your work!

The problem here is that the Hint text is not being obeyed.

Fixed in the develop branch

hi, but this fix is include in versione 1.1.1 in nuget?

hi, but this fix is include in versione 1.1.1 in nuget?
It is now, yes.

i tried on android  but not work

Set the FontSize. The Hint will now match the Text size.


Fix blueprint route for ""

url_prefix = '/posts'
rule = ''

Expected result /posts, instead got /posts/.

I think the new behavior is more technically correct. Just like the root of the application is '/', not '', the root of a blueprint is the prefix plus a slash. However, we can go back to the previous behavior. Maybe become more strict in 1.1.

@davidism I think 1.0.1 should be a fix version, but it actually break the routing behavior. Flask 1.0 won't force a redirect of /test to /test/, but Flask 1.0.1 will.

I think I might just revert the whole thing. I've been messing with it and can't figure out a clean way to differentiate between intended and unintended slashes. At some point we just have to hope that users understand that prefix + rule can result in double slashes if they aren't consistent.

I've adjusted it a little bit to allow more cases.
The following are still not allowed: ('', '') and ('', 'bar') because they result in "rule must start with slash". This means the dev needs to be consistent with whether the bp's rules start with slashes.
prefix = ''
@bp.route('')  # ValueError
@bp.route('/')  # '/'
@bp.route('bar')  # ValueError
@bp.route('/bar')  # '/bar'

prefix = '/'
@bp.route('')  # '/'
@bp.route('/')  # '/'
@bp.route('bar')  # '/bar'
@bp.route('/bar')  # '/bar'

prefix = '/foo'
@bp.route('')  # '/foo'
@bp.route('/')  # '/foo/'
@bp.route('bar')  # '/foo/bar'
@bp.route('/bar')  # '/foo/bar'

prefix = '/foo/'
@bp.route('')  # '/foo/'
@bp.route('/')  # '/foo/'
@bp.route('bar')  # '/foo/bar'
@bp.route('/bar')  # '/foo/bar'

Given that neither of these ValueError cases would have been possible in 0.12 either, I'm comfortable leaving it out, I think it's more consistent with how app routes work. I can make them both work but I think the consistency it enforces is better.

GLTM now.

@davidism I think a6a6810 broke something else we were doing in 1.0, which was:
prefix = '/team'
@bp.route('/')  # '/team/'
@bp.route('.csv')  # '/team.csv', but now fails

That was never intended to work.


Thumbnails do not scroll

I have increased the size of thumbnails. But there is no scroll functionality on the thumbnails. Would be a good addition to have.
Thanks!

@anantheswarg881 Can you share me screenshot?

Here is the screenshot. Please fix this. I love this gallery very much. I have tried other galleries. But they do not work well with data changes like adding images. Thanks!

fixed in v2.1.0


Event for toggle checkbox

Issue Type (delete the irrelevant ones)

[x] Enhancement Request

Specs
2.4.4
What browser?
Chrome
It's not a bug, but a behavior that would be nice to have. I need to have an event to know when the user clicked on the checkbox that is created when I choose to have select-options.
Currently, I can only have an event @on-select-all but I need to have an event that will be triggered when I click on any of the checkboxes.
My scenario is the following:
I determine whether a register is enabled or not with the checkboxes. So, the checkbox will be true for a register that is enabled and false otherwise.
Another thing that I don't know how to do is how to set a specific list of checkboxes to true programatically.
Thanks.

hey @jprivillaso for individual checkboxes you can use @on-row-click. if selection mode is enabled, params.selected will tell you whether the row that was clicked on was selected or unselected. refer to this example: https://jsfiddle.net/aks9800/keLjcssn/
for pre-selected rows, just set a property in your row item -  vgtSelected: true
This should solve all your concerns. closing.


In the Removal Reasons dialog, collapse Header and Footer to just their titles

When removing something, reasons are collapsed to their Titles in an effort to conserve vertical space. However the header and footer are fully expanded. They should be collapsed to just the title.

No! Why you ask? Just because I can.

Also yes, makes sense.

I have no idea how to phrase these requests so they are concise but don't come across as demands


Hetzner agents are (still) not cleaned up every time

Jenkins and plugins versions report

Environment

Jenkins: 2.361.1
OS: Linux - 5.4.0-105-generic
---
ace-editor:1.1
analysis-model-api:10.17.0
ansicolor:1.0.2
antisamy-markup-formatter:2.7
apache-httpcomponents-client-4-api:4.5.13-138.v4e7d9a_7b_a_e61
authentication-tokens:1.4
bootstrap5-api:5.2.1-2
bouncycastle-api:2.26
branch-api:2.1046.v0ca_37783ecc5
build-blocker-plugin:1.7.8
build-monitor-plugin:1.13+build.202205140447
caffeine-api:2.9.3-65.v6a_47d0f4d1fe
checks-api:1.7.5
cloud-stats:0.27
cloudbees-folder:6.758.vfd75d09eea_a_1
cobertura:1.17
code-coverage-api:3.1.0
command-launcher:90.v669d7ccb_7c31
copyartifact:1.47
credentials:1189.vf61b_a_5e2f62e
credentials-binding:523.vd859a_4b_122e6
dark-theme:245.vb_a_2b_b_010ea_96
data-tables-api:1.12.1-3
display-url-api:2.3.6
docker-commons:1.21
docker-workflow:521.v1a_a_dd2073b_2e
downstream-build-cache:1.7
durable-task:500.v8927d9fd99d8
echarts-api:5.3.3-1
extended-read-permission:3.2
font-awesome-api:6.2.0-3
forensics-api:1.16.0
git:4.12.1
git-client:3.12.0
git-server:99.va_0826a_b_cdfa_d
gitlab-api:5.0.1-78.v47a_45b_9f78b_7
gitlab-branch-source:640.v7101b_1c0def9
gitlab-plugin:1.5.35
handy-uri-templates-2-api:2.1.8-22.v77d5b_75e6953
hetzner-cloud:66.v5cb45cbd155e
instance-identity:116.vf8f487400980
ionicons-api:28.va_f3a_84439e5f
jackson2-api:2.13.3-285.vc03c0256d517
jacoco:3.3.2
jakarta-activation-api:2.0.1-1
jakarta-mail-api:2.0.1-1
javax-activation-api:1.2.0-4
javax-mail-api:1.6.2-7
jaxb:2.3.6-1
jdk-tool:55.v1b_32b_6ca_f9ca
jersey2-api:2.37-1
jquery3-api:3.6.1-1
jsch:<IP_ADDRESS>.va_e9ee26616e7
junit:1143.v8d9a_e3355270
lockable-resources:2.16
mailer:438.v02c7f0a_12fa_4
matrix-project:785.v06b_7f47b_c631
mina-sshd-api-common:2.9.1-44.v476733c11f82
mina-sshd-api-core:2.9.1-44.v476733c11f82
parameterized-trigger:2.45
pipeline-build-step:2.18
pipeline-groovy-lib:612.v84da_9c54906d
pipeline-input-step:451.vf1a_a_4f405289
pipeline-milestone-step:101.vd572fef9d926
pipeline-model-api:2.2114.v2654ca_721309
pipeline-model-definition:2.2114.v2654ca_721309
pipeline-model-extensions:2.2114.v2654ca_721309
pipeline-stage-step:296.v5f6908f017a_5
pipeline-stage-tags-metadata:2.2114.v2654ca_721309
pipeline-utility-steps:2.13.0
plain-credentials:139.ved2b_9cf7587b
plot:2.1.11
plugin-util-api:2.17.0
popper2-api:2.11.6-1
prism-api:1.29.0-1
role-strategy:561.v9846c7351a_41
saml:4.352.vb_722786ea_79d
scm-api:621.vda_a_b_055e58f7
script-security:1183.v774b_0b_0a_a_451
scriptler:3.5
snakeyaml-api:1.32-86.ve3f030a_75631
ssh-agent:295.v9ca_a_1c7cc3a_a_
ssh-credentials:305.v8f4381501156
ssh-slaves:2.846.v1b_70190624f5
sshd:3.249.v2dc2ea_416e33
structs:324.va_f5d6774f3a_d
theme-manager:1.5
timestamper:1.20
token-macro:308.v4f2b_ed62b_b_16
trilead-api:2.72.v2a_3236754f73
variant:59.vf075fe829ccb
warnings-ng:9.20.0
workflow-aggregator:590.v6a_d052e5a_a_b_5
workflow-api:1192.v2d0deb_19d212
workflow-basic-steps:994.vd57e3ca_46d24
workflow-cps:2801.vf82a_b_b_e3e8a_5
workflow-durable-task-step:1199.v02b_9244f8064
workflow-job:1239.v71b_b_a_124a_725
workflow-multibranch:716.vc692a_e52371b_
workflow-scm-step:400.v6b_89a_1317c9a_
workflow-step-api:639.v6eca_cd8c04a_a_
workflow-support:838.va_3a_087b_4055b
yet-another-build-visualizer:1.16

What Operating System are you using (both controller, and any agents involved in the problem)?
Ubuntu 20.04 as the host, Jenkins is running inside a Docker container, using the image jenkins/jenkins:lts.
Reproduction steps
Unclear...

Observe agents being created and deleted according to the expectation of the configured shutdown policy
Wait some time, maybe restart Jenkins, ...unclear
Observe agents being not being deleted anymore, even though the configured shutdown policy would mandate it. to the expectation of the configured shutdown policy

Expected Results
Agents are always deleted according to the configured shutdown policy.
Actual Results
After a while, agents are not deleted anymore but are used basically as if they would be static agents.
Anything else?
After manually deleting those stale agents in Jenkins, Jenkins creates new ones when there is demand and there is a chance these new agents actually are being cleaned up again according to the configured shutdown policy.
Example:
Consider the following screenshot from our Jenkins' cloud statistics:

In this screenshot you can see three areas: blue, red and purple.

The purple area denotes the agents that were created and removed according to the expectation of the shutdown policy
The red area denotes agents that were not shut down automatically and were deleted manually
The blue area denotes an agent that was created after the manual clean up and that was deleted automatically according to the expectation of the shutdown policy.

Maybe important additional information:

The Docker container was restarted (re-created) on 2022-10-01 14:24:33 which is in between of the purple and the red area. So basically after the Jenkins container was recreated, the shutdown policy did not work anymore.
In the logs I don't see any log message of the Hetzner plugin between 2022-10-01 21:20:42 and 2022-10-05 07:33:00 (basically during the agents were stale, i.e. the red area)
What I see a lot in the log is an exception of the form [0]. However, I think this is exception is caused by maybe a bug in another plugin. It also happens during times when the Hetzner plugin deletes agents as expected.

[0]
2022-10-04 22:28:49.554+0000 [id=108311]	SEVERE	hudson.plugins.plot.CSVSeries#loadSeries: Exception trying to retrieve series files
Also:   hudson.remoting.Channel$CallSiteStackTrace: Remote call to hcloud-ttvgwgquximu2tex
		at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1784)
		at hudson.remoting.UserRequest$ExceptionResponse.retrieve(UserRequest.java:356)
		at hudson.remoting.Channel.call(Channel.java:1000)
		at hudson.FilePath.act(FilePath.java:1186)
		at hudson.FilePath.act(FilePath.java:1175)
		at hudson.FilePath.list(FilePath.java:2125)
		at hudson.FilePath.list(FilePath.java:2108)
		at hudson.FilePath.list(FilePath.java:2092)
		at hudson.plugins.plot.CSVSeries.loadSeries(CSVSeries.java:149)
		at hudson.plugins.plot.Plot.addBuild(Plot.java:720)
		at hudson.plugins.plot.PlotBuilder.perform(PlotBuilder.java:235)
		at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123)
		at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:101)
		at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:71)
		at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
		at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
		at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
		at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
		at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
		at java.base/java.lang.Thread.run(Thread.java:829)
java.io.IOException: Expecting Ant GLOB pattern, but saw '/home/jenkins/workspace/vices_infrastructuretest_SA-8466/jenkins-sgapplianceInfrastructureTesttest.csv'. See https://ant.apache.org/manual/Types/fileset.html for syntax
	at hudson.FilePath.glob(FilePath.java:2162)
	at hudson.FilePath$ListGlob.invoke(FilePath.java:2143)
	at hudson.FilePath$ListGlob.invoke(FilePath.java:2128)
	at hudson.FilePath$FileCallableWrapper.call(FilePath.java:3492)
	at hudson.remoting.UserRequest.perform(UserRequest.java:211)
	at hudson.remoting.UserRequest.perform(UserRequest.java:54)
	at hudson.remoting.Request$2.run(Request.java:376)
	at hudson.remoting.InterceptingExecutorService.lambda$wrap$0(InterceptingExecutorService.java:78)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)

Hi @sandrinr, thank you for bug report.
I'm afraid this looks like what we have seen in past and we have no fix available for.
Can you please provide:

what's configured shutdown policy on affected agents
output of this script executed in script console

Hi @rkosegi, thanks for picking it up.
Now, it happened again. Again after a restart of the Jenkins Docker container. Again the first node(s) spawned did not get shut down when they should be.

The output of the script
true
HetznerServerInfo(sshKeyDetail=SshKeyDetail(created=2022-03-23T06:14:25+00:00, fingerprint=31:b3:c1:4f:d4:6b:5f:97:b4:50:f1:1f:3e:4d:49:7c, labels={jenkins.io/managed-by=hetzner-jenkins-plugin, jenkins.io/credentials-id=..}, name=..., publicKey=...), serverDetail=ServerDetail(name=hcloud-jdawffnkmzmsg2l5, status=running, created=2022-10-09T03:48:11+00:00, publicNet=PublicNetDetail(), privateNet=[], serverType=ServerType(name=cpx41, description=CPX 41, cores=8, memory=16, disk=240), datacenter=DatacenterDetail(name=nbg1-dc3, description=Nuremberg 1 DC 3, location=LocationDetail(name=nbg1, description=Nuremberg DC Park 1, country=DE, city=Nuremberg)), image=ImageDetail(type=snapshot, status=available, name=null, description=Generated by jenkins_node_hetzner_cloud_image.jenkins)))
true
-------------
Result: [cloud.dnation.jenkins.plugins.hetzner.HetznerServerComputer@2ede2248]

As I see it that node should be shut down (all conditions are met).

Adding another datapoint: The issue was currently happening for us all the time. There were no automatic deletion of agents  anymore. Also restarts did not help.
What I did now, is to go to the Cloud settings and change the shutdown policy to time out based, save and change it back to, billing cycle based and saved. Now agents were automatically deleted as expected. My guess is that it will now work for a while until it stops working again.

Hi @sandrinr, this is very interesting finding. I will try to find some time soon to look into that.

@sandrinr I hope I fixed root cause, but I want to emphasize that when you restart Jenkins controller, plugin assumes that no servers were running.

@rkosegi We have the fix in operation for a while now and never experienced the issue again. Thank you very much for the fix 🙏 .

@sandrinr that are great news, thanks for confirmation.


RHOAIENG-1119: Add new candidate-image-tag-reference parameter

This PR stacks upon #215 and #217. It will be held until those are merged, but it can still be reviewed, by just reviewing the new commit(s). This PR is the main change for the RHOAIENG-1119.
Description
This will allow overriding the internal image registry reference, and
use any other image registry, repo, and tag instead.
There's a default set for the new param to maintain the old behaviour,
and the same value is set in the example PipelineRun files by default.
How Has This Been Tested?

make go-test run successfully
Example pipelines run manually using default value for new parameter, proving that existing behaviour works as expected.
Example pipelines run, with the new parameter set to quay.io/grdryn/$(params.model-name):$(params.model-version)-candidate, proving that an external registry can easily be used for the candidate image, as can be seen in the following screenshot (see tag 1-candidate):

Merge criteria:

[x] The commits are squashed in a cohesive manner and have meaningful messages.
[x] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[x] The developer has manually tested the changes and verified that the changes work

/hold until #215 and #217 are reviewed and merged.

Looks good to me too. Should I go ahead and add a /lgtm?

@biswassri you're absolutely welcome to add /lgtm here too :slightly_smiling_face: It won't get merged until either the ci/prow/test-ai-edge check passes, or we explicitly skip it.

Looks good to me too. @grdryn just a quick question, the candidate tag in the bike-rental pipeline run is just for an example right?

Yes, both of our PipelineRun files are just examples, so the value for the candidate tag that I've added to them (they both have the same value) is just adding to the examples. You are welcome to change it to any other sane value in any other registry/repo/tag, as long as the pipeline service account has access to be able to push there (done by linking a secret, typically).

/lgtm

/unhold


feat(upgrade-responder): support requestSchema in setup script

https://github.com/longhorn/upgrade-responder/issues/47
https://github.com/longhorn/longhorn/issues/5235

cc @PhanLe1010 @roger-ryao

@mergify backport v1.5.x


feature/2 mechanism to set span kind depending on operation name

Basic structure, but not implemented yet
Passing the spankindSelector
Test added

The code looks good to me!
I’ve merged a smaller PR, which caused a test conflict in this one. Could you please resolve the conflict and address a small linter issue? Once those are fixed, it’ll be ready for merge, and I’ll follow up with a new release.
Thanks!

Yes, the two PRs are actually touching the same code, but since I made them independent, a collision is expected. I will sync and update the PR.
BTW: assert.Equal expects first "expected", then "actual". I changed this in the one place.

The conflict has been resolved.

The conflict has been resolved.

looks like something goes wrong an everything is failing now 😅

What do you mean? Can you fix the pipeline on main and I will update this branch.

I just see that the tests are failing on my side, I will update this

Tests are fix, the rest are your pipelines.

Thanks for your contribution!
I’ve taken care of the linter issue, and everything looks good to go now.

Grüsse aus Frankfurt nach Berlin.

Grüsse aus Frankfurt nach Berlin.

I'm new in Berlin so
Mein Deutsch ist nicht besonders gut,


keyDown event showing wrong keyCOde on Mac HTML5

openfl 8.3 on  HTML5 target, if press CMD key alone, event generated shows:
command key: true
keyCode: 291  ('[')
It's unclear why it shows keyCode to be 291 which is clearly a bug. Pressing CMD and '[' together also produces the same keyCode.

It looks like we have improvements to the key code handling on HTML5, that's not released yet, in the Lime project:
https://github.com/openfl/lime/commit/4a8125e03641d1dc7bf18b6e6d779b1d24e7d3cb#diff-5f4ea7a1bc77d2611bd3abce960fc726
I'd be happy to know/hear if this resolves your issue, or if we still need additional cases to handle this on macOS

thanks! I will let you know once this enhancement is released with Lime


Merge problems between base-config and molecule.yml. Causing create.yml ERRORS

Issue Type

Bug report

Molecule and Ansible details
ansible 2.7.10
molecule 2.20.1

Molecule installation method (one of):

pip

Ansible installation method (one of):

pip

Detail any linters or test runners used:
Desired Behavior
I would like my base-config to merge with molecule.yml correctly. Actually the params dockerfile   and image from base-config.yml are ignored and skipped in the "Create Dockerfiles from image    names" task. I would like the molecule_yml.platforms object to be merged between base-config.yml and molecule.yml at this step.
Actual Behaviour
So, currently, my use case is that i have this base-config.yml :
---
dependency:
  name: galaxy
driver:
  name: docker
lint:
  name: yamllint
  options:
    config-file: ../../.yamllint
platforms:
  - image: jrei/systemd-debian:9
    dockerfile: ../../../../test/molecule/Dockerfile.j2
    command: /lib/systemd/systemd
    env:
      container: docker
  - image: jrei/systemd-centos:7
    dockerfile: ../../../../test/molecule/Dockerfile.j2
    command: /lib/systemd/systemd
    env:
      container: docker
provisioner:
  name: ansible
  playbooks:
    create: ../../../../test/molecule/create.yml
    destroy: ../../../../test/molecule/destroy.yml
    converge: ../shared_files/converge.yml
  inventory:
    links:
      host_vars: ../../../../inventories/molecule/host_vars
  lint:
    name: ansible-lint
scenario:
  converge_sequence:
    - dependency
    - create
    - prepare
    - converge
    - destroy
  test_sequence:
    - lint
    - destroy
    - dependency
    - syntax
    - create
    - prepare
    - converge
    - idempotence
    - side_effect
    - verify
    - destroy
verifier:
  name: testinfra
  directory: ../shared_files/tests
  options:
    vvv: true
  lint:
    name: flake8

I set my molecule.yml as following :
---
platforms:
  - name: molecule-bash-deb
  - name: molecule-bash-rhel
provisioner:
  log: true
scenario:
  name: default

I faced this error using molecule -c ../../test/molecule/base-config.yml test :

And as you can see here, i added some debug :

I added a task in the create.yml playbook to check the content of {{ molecule_yml.platforms }}. And I can see that there are only molecule.yml variables 🧐
When i decide to fill image parameter in my molecule.yml, it gives me the same error but with dockerfile parameter. And when i decide to fill dockerfile param in my molecule.yml, all works good and the variables used well came from my base-config.yml.
That's why I'm sure that the problem is only from here :

**I'm currently investigating to make a PR by myself but if you can drive me it would be good ! **
And PS yes i saw that PR passed : https://github.com/ansible/molecule/pull/2287/files.
So I tried with molecule 2.22 & molecule 3.0a4 and it's not works too for image and dockerfile params in the "Create Dockerfile from image names" step. (from create.yml)

This is not a bug, this is how dictionaries are merged. Lists inside them override, they are not merged. Once you define platforms, nothing from base will be reused.

Ok ty for your response @ssbarnea !
I may have miss understood the code, sorry 😅


@skydoves, How do I add swiping viewpager images in Android

Swiping viewpager scrolled horizontally

@skydoves, How do I add swiping viewpager images in Android

Using a ViewPager that scrolls fragments, each fragments contains one image only in the XML.


Improve Error Message for invalid credential scopes

Hi Team,
I've been using autorest for a while to create REST clients (typescript) based on OpenAPI specs and it's been really helpful. Recently when I had to generate a new client, I started to get the following error at my application startup:
Type Error [ERR_INVALID_URL]: Invalid URL
I had to narrow down the code of auth/core library to realize that it was a problem with the format of the credential scopes our APIs use, which are not URLs. Hence, the error is thrown at the following line:
https://github.com/Azure/azure-sdk-for-js/blob/49c614ab91d8f206a97d5bc401fb23b3aa9d22c0/sdk/core/core-http/src/serviceClient.ts#L1070
Could we have a better error message for this to avoid other people spending too much time on troubleshooting?
Thank you in advance.

related code was introduced in PR #12752.  @joheredi do you remember whether the scopes are required to be valid URLs?

related code was introduced in PR #12752. @joheredi do you remember whether the scopes are required to be valid URLs?

@jeremymeng it seems it does not since it instantiates a URL object which accepts only valid URI strings.

@guigiani yes, I wonder whether we should relax the requirement and remove new URL() call that validates urls

I'm fine with removing the check. @jeremymeng is this something you want to whip up a quick PR for?

yes I can work on a PR

it was a problem with the format of the credential scopes our APIs use, which are not URLs

one more question @guigiani, is it expected that you will use credential scopes that are not URLs but still valid for your scenario?

if we just want a better message we can do similar as keyvault does https://github.com/Azure/azure-sdk-for-js/blob/647e8e67e368962151b5c6d39beaddead45b359e/sdk/keyvault/keyvault-common/src/challengeBasedAuthenticationPolicy.ts#L54-L58

it was a problem with the format of the credential scopes our APIs use, which are not URLs

one more question @guigiani, is it expected that you will use credential scopes that are not URLs but still valid for your scenario?

@jeremymeng yes! ['read','write','delete'] for example.
Now, the current situation can be workaround if we instantiate the core client with an empty array of scopes and implement a custom getToken callback which basically does an http request with whatever shape the auth provider expects. That's how I did. Is up to you guys to decide whether relax the array or change the error message. Just wanted to give my 2 cents here.

@guigiani thanks for the information! We will remove the URL validation.

@guigiani I noticed that you referred core-http code.  Our latest version of autorest.typescript code generator no longer introduces dependency on @azure/core-http. Instead newer and better libraries are used. We are planning to deprecate core-http soon.  So you may want to consider moving to the latest version of code generator.

I believe the fix should be released in the latest version of core.


Add docs for using badger as meta engine

It should be highlighted that badger allows only one client, as mentioned here: https://github.com/juicedata/juicefs/issues/1415#issuecomment-1035946711

Fixed by https://github.com/juicedata/juicefs/pull/1579


WIP: Start of TF-IDF

Some issues:
how to specify the corpus?
In order to do TF-IDF we need each document separate so we can do document frequency. Or we need a compiled representation of the corpus indicating the presence or absence of each character.
Right now, this tfidf function just takes one or more paths to indicate the documents in the corpus.
This is less than optimal because:
User has no control on tokenization & transformation of corpus documents (lowercase? stopwords? etc).
Is there a better way to specify a corpus?
Perhaps another function preparecorpus or something that takes a bunch of docs and turns them into a count based representation?
character encodings
This currently doesn't work on python 2 most likely because of NLTK issues with character encodings. I'm not sure if this affects other functions
acquiring corpora
The NLTK corpora sometimes have additional content in them. Also, they are in different file formats (not UTF-8 for some reason). Right now textkit isn't great about handling non-utf8 formats.

The directory format makes sense to me but I'm assuming that's because I don't fully grok the motivation behind the json docs (since I wasn't as much a part of developing the visualizations themselves.)
It looks good otherwise.


WIP Patch Ganesha to use device number as fsid for overlayfs

fixes https://github.com/kubernetes-incubator/nfs-provisioner/issues/60
Still need to test this doesn't break anything. appears to work fine with overlayfs & devicemapper storage drivers. Opened https://github.com/nfs-ganesha/nfs-ganesha/issues/140 to ask for help.

Tested working (read/write to shares) with overlay, overlay2, devicemapper. Also did as thorough a look as I could through ganesha that this doesn't break anything. Based on the ability to configure what type of fsid to use https://github.com/nfs-ganesha/nfs-ganesha/blob/next/src/config_samples/config.txt#L348, including device #, I believe this is safe. The problem with using that config option is, it only re-indexes existing "fs-fsid"s, so if the fs-fsid was discarded from the beginning it won't help.


[Datadog] Add terms APIs

MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Contribution checklist:

[ ] I commit to follow the Breaking Change Policy of “no breaking changes
[ ] I have reviewed the documentation for the workflow.
[ ] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

[ ] Ensure to check this box if one of the following scenarios meet updates in the PR, so that label “WaitForARMFeedback” will be added automatically to involve ARM API Review. Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs, all “removals” and “adding a new property” no more require ARM API review.

Adding new API(s)
Adding a new API version
Adding a new service

[ ] Please ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If there are following updates in the PR, ensure to request an approval from API Review Board as defined in the Breaking Change Policy.

[ ] Removing API(s) in stable version
[ ] Removing properties in stable version
[ ] Removing API version(s) in stable version
[ ] Updating API in stable version with Breaking Change Validation errors
[ ] Updating API(s) in preview over 1 year

Please follow the link to find more details on PR review process.

/azp run automation - sdk

@qiaozha Help on the cli extension generation failure?

@limingu in your readme.python.md https://github.com/limingu/azure-rest-api-specs/blob/limgu/datadog1028/specification/datadog/resource-manager/readme.python.md
You need to change this part

python:
  no-namespace-folders: true
  output-folder: $(python-sdks-folder)/datadog/azure-mgmt-datadog/azure/mgmt/datadog
no-namespace-folders: true
output-folder: $(python-sdks-folder)/datadog/azure-mgmt-datadog/azure/mgmt/datadog

python:
  basic-setup-py: true
  output-folder: $(python-sdks-folder)/datadog/azure-mgmt-datadog
basic-setup-py: true
output-folder: $(python-sdks-folder)/datadog/azure-mgmt-datadog

into

python:
  no-namespace-folders: true
  output-folder: $(python-sdks-folder)/datadog/azure-mgmt-datadog/azure/mgmt/datadog

python:
  basic-setup-py: true
  output-folder: $(python-sdks-folder)/datadog/azure-mgmt-datadog

no-namespace-folders: true
output-folder: $(python-sdks-folder)/datadog/azure-mgmt-datadog/azure/mgmt/datadog

basic-setup-py: true
output-folder: $(python-sdks-folder)/datadog/azure-mgmt-datadog

@changlong-liu  Does our document recommend the first way ? Which should be incorrect for autorest.az's consideration. Can we change it into the second day I suggested above?

Hi @limingu , @qiaozha ,
Move package-version to {python-mode=create} section can fix it. Something like this:

@changlong-liu I don't think it's a good idea. Because the parameter is at the top level. which will impact other code generator as long as we load readme.python.md in other code generator. what if autorest az also has a parameter called package-version.
The better way should let the what's for track2 python sdk stays only in track2 python sdk configuration.

/azp run automation - sdk

/azp run automation - sdk

/azp run automation - sdk

Hi @qiaozha , we can design this more precisely.
A keypoint is the "basic-setup-py" should be accompanied with a "package-version", I guess it's a new restriction in autorest.python

/azp run automation - sdk

ARM team has signed off. See: https://github.com/Azure/azure-rest-api-specs-pr/pull/2309

ARM Review comments already provided, please resolve the comments and and followup with SDK team to merge.

/azp run automation - sdk

@PhoenixHe-msft , could you please merge it? ARM team has signed off. Thanks!