Godot doesn't see changes in tool scripts until the editor is restarted when using an external editor

Note: This issue has been confirmed several times already. No need to confirm it further.

Godot version:
3.1.1
OS/device including version:
LinuxMint 19.1 64bit
Issue description:
Godot 3.1.1 don't see changes in scripts that use keywords: tool, export until restart editor.
If I change anything in script that use keywords: tool, export it will still see the same errors as before and don't update inspector gui.
Steps to reproduce:

Crate new script in scene it can be any type
Add tool keyword on top
Add export var test
Check if inspector gui is changed
Try change something about test
Check if inspector gui is changed

Are you sure it never updates, or until first reload? (btw, you can reload scene instead of restarting editor)
The only suspicious behavior I can confirm is that when changing export variable in tool script, it doesn't update the stored unchanged value.

I've run into this same issue when editing tool scripts in an external editor (VS Code).
For example, while editing a Curve node's "curve_changed()" signal handler, the updated functionality does not propagate until I switch to the Script tab in Godot, make a change (eg. put a blank space/anything), hit save, then switch back to the 3D view.

@abhaskumarsinha O didn't thought about this that using external editor can causing that I use VSCode and Atom when I have this bug so maybe it is bug with external editor then.
PS.: VSCode godot-tool are dead :( , consider using atom with language-gdscript

It is these same bug as this: #21956

This also seems to be happening for me in 3.2. I am using Atom as an external editor. I hadn't associated it with using those keywords, but all I have done since I switched to using the external editor has been work on tooling, and I keep having to restart Godot because it is not picking up my changes.

Still valid in 3.2.4 beta4
Interestingly, you can use Soft Reload option in the script editor menu to reload the script properly.

I can confirm this bug is still valid in  v3.3.2.stable.officia.
I build an plugin update tool and override existing classes to update to new version but Godot still shows the old content.
It  happens for all script classes!
Forkflow

run the update from a tool
disable the plugin
override existing plugin script classes by downloaded content form github
force manually rescan
enable the plugin

The plugin is broken because of invalid script classes (is sitll the old content)
Only restart Godot helps
I tryed to force update the filesystem manually by using the EditorFileSystem but it not helps.
func rescan(update_scripts :bool = false) -> void:
	yield(get_tree(), "idle_frame")
	var plugin := EditorPlugin.new()
	var fs := plugin.get_editor_interface().get_resource_filesystem()
	fs.scan_sources()
	while fs.is_scanning():
		yield(get_tree().create_timer(1), "timeout")
	if update_scripts:
		plugin.get_editor_interface().get_resource_filesystem().update_script_classes()
	plugin.free()
```

This is realy fustrating and blocks my to finish the update.

I'm experiencing this issue in 3.3.4.stable.official

Can't reproduce in 4.4.


Ability to share a filter state of the React app via URL

Related #2203

Fail, this is what i see when click the link button or save the URL and paste it:

@danblah
I guess you have taken this screen shot before adding summary to these submissions. If a submission has summary it will be displayed beneath submission name.
Check the below URL, It has 6 submission ids out of these 2 has summary, so those 2 summaries are being displayed.
https://test-apply.opentech.fund/apply/submissions/grouped-applications/?id=9,18,22,23,27,32

I thought this requirement is same as grouped submission sharable link. Now I understand we need a way to share the filter state via URL for react app. Will start to work on this today.

The button to open grouped submissions is misleading here. The user thinks that after applying filters the share button will copy the URL to the clipboard so the current state of React app with applied filters can be shared with other users. We should add a different button to show grouped summary list of submissions. The share button should copy the URL of current state of React view with filters once we have the ability to have a separate URL for it. It will be separate PR from the #2249
@vimal1083 Let's do the following

Change the icon and text on hover to highlight that this button will open grouped submissions.
Create separate PR for this issue.

Good idea to have this as a separate PR and remove it from https://github.com/OpenTechFund/hypha/pull/2249.
@vimal1083 Can we have the filters in the URL for React as we have in Django, that would make it easy to share a filter state?

@frjo
yes, we can have filters in the URL for React. Will create separate PR for this

Development is completed in a branch, will create PR once #2249 is merged.


Typo

One dash is missing in rm -r -force ./pixi-typescript-boilerplate/.git. Should have been --force.

thank you I will fix this asap :)


The View Logs in the  pods of workload can not  show the log

Rancher Server Setup

Rancher version: v2.6.5 and v2.6.6
Installation option (Docker install/Helm Chart):

docker v19.03 install , create as : docker run  --privileged -d -p 80:80 -p 443:443 -v /u01/rancher/rancher:/var/lib/rancher -v /u01/rancher/auditlog:/var/log/auditlog --name rancher --ulimit n
ofile=65536:65536 --ulimit nproc=65536:65536 1a0da26e37fa

Proxy/Cert Details: none

Information about the Cluster

Kubernetes version:just the K3S  LOCAL in the  rancher
Cluster Type (Local/Downstream): LOCAL

If downstream, what type of cluster? (Custom/Imported or specify provider for Hosted/Infrastructure Provider):

User Information

What is the role of the user logged in? (Admin/Cluster Owner/Cluster Member/Project Owner/Project Member/Custom)

If custom, define the set of permissions: Admin

Describe the bug

The View Logs in the  pods of workload can not  show the log , And the rancher container log show that: [ERROR] Unknown error: Operation cannot be fulfilled on preferences.management.cattle.io "logs-range": the object has been modified; please apply your changes to the latest version and try again
To Reproduce

1.select local  cluster
2.go to  workload -> pods
3.choose the View Logs of  one pod on the right
4.press F12  to  open the  chrome console
5.change the time filter of pod log  from  30 Minutes to 1  Hour or the other option，change  more times
6.the chrome console  in the Network  show that: https://172.16.XXX.XXX/v1/userpreferences/user-vrhqf  is 500 internal server error  . And  the  rancher container log show that: [ERROR] Unknown error: Operation cannot be fulfilled on preferences.management.cattle.io "logs-range": the object has been modified; please apply your changes to the latest version and try again
7.press F5 to refresh the website，and then  the View Logs of  one pod  can  not  show  the  log  any  more
8.visit https://172.16.XXX.XXX/v1/userpreferences/user-vrhqf  to  delete the  user  preferences  can  fix this  bug   temporarily
Result
can not see  the container log of pod in the  browser
Expected Result

can see  the container log of pod in the  browser
Screenshots

2.

3.

4.

Additional context

very  like  the issue #37610

If the last comment is correct this should be fixed in 2.6.7
And this is a duplicat of
#5984

#5984
If the last comment is correct this should be fixed in 2.6.7 And this is a duplicate..

oh ，It is my fault，I not search the issue very carefully , thank you very much .  Have a good day.


How to backup and restore?

Is it possible to backup Kafka/zookeeper and restore if there is an issue?

Maybe this can help: https://stackoverflow.com/questions/47791039/backup-restore-kafka-and-zookeeper.


Some users are duplicated

When I manually synced recently-created users from OldCantus, it appears there were several users already present as indexers who were given user accounts in OldCantus since we did the user-indexer merger last year. So I created new user accounts for them. (there are 3-4 people for whom this is an issue) We will have to manually merge these users.

(thanks @JoyfulGen, for doing the heavy lifting to identify these duplicated accounts!)

There's still a tiny issue remaining where single user accounts will appear multiple times in a single widget in the admin area - maybe we'll get around to figuring out why that's happening, but that feels really low-priority. But for the time being, users have been successfully de-duplicated! Closing.


Missing release .deb for librealsense 1.9.7

And when I try to compile from source I get this error:
make
g++ src/hw-monitor.cpp -std=c++11 -fPIC -pedantic -Ofast -Wno-missing-field-initializers -Wno-switch -Wno-multichar -DRS_USE_V4L2_BACKEND pkg-config --cflags --libs libusb-1.0  -mssse3 -c -o obj/hw-monitor.o
In file included from src/uvc.h:8,
from src/hw-monitor.h:8,
from src/hw-monitor.cpp:5:
src/types.h:572:14: error: ‘function’ in namespace ‘std’ does not name a template type
std::function<void()> continuation;
^~~~~~~~
src/types.h:572:9: note: ‘std::function’ is defined in header ‘’; did you forget to ‘#include ’?
src/types.h:25:1:
+#include
src/types.h:572:9:
std::function<void()> continuation;
^~~
src/types.h:580:50: error: expected ‘)’ before ‘<’ token
explicit frame_continuation(std::function<void()> continuation, const void* protected_data) : continuation(continuation), protected_data(protected_data) {}
~             ^
)
src/types.h: In constructor ‘rsimpl::frame_continuation::frame_continuation()’:
src/types.h:578:32: error: class ‘rsimpl::frame_continuation’ does not have any field named ‘continuation’
frame_continuation() : continuation( {}) {}
^~~~~~~~~~~~
src/types.h: In constructor ‘rsimpl::frame_continuation::frame_continuation(rsimpl::frame_continuation&&)’:
src/types.h:583:59: error: class ‘rsimpl::frame_continuation’ does not have any field named ‘continuation’
frame_continuation(frame_continuation && other) : continuation(std::move(other.continuation)), protected_data(other.protected_data)
^~~~~~~~~~~~
src/types.h:583:88: error: ‘class rsimpl::frame_continuation’ has no member named ‘continuation’; did you mean ‘frame_continuation’?
nuation(frame_continuation && other) : continuation(std::move(other.continuation)), protected_data(other.protected_data)
^~~~~~~~~~~~
frame_continuation
src/types.h:585:19: error: ‘class rsimpl::frame_continuation’ has no member named ‘continuation’; did you mean ‘frame_continuation’?
other.continuation =  {};
^~~~~~~~~~~~
frame_continuation
src/types.h: In member function ‘void rsimpl::frame_continuation::operator()()’:
src/types.h:591:13: error: ‘continuation’ was not declared in this scope
continuation();
^~~~~~~~~~~~
src/types.h:591:13: note: suggested alternative: ‘frame_continuation’
continuation();
^~~~~~~~~~~~
frame_continuation
src/types.h: In member function ‘void rsimpl::frame_continuation::reset()’:
src/types.h:599:13: error: ‘continuation’ was not declared in this scope
continuation = {};
^~~~~~~~~~~~
src/types.h:599:13: note: suggested alternative: ‘frame_continuation’
continuation = {};
^~~~~~~~~~~~
frame_continuation
src/types.h: In member function ‘rsimpl::frame_continuation& rsimpl::frame_continuation::operator=(rsimpl::frame_continuation&&)’:
src/types.h:606:13: error: ‘continuation’ was not declared in this scope
continuation();
^~~~~~~~~~~~
src/types.h:606:13: note: suggested alternative: ‘frame_continuation’
continuation();
^~~~~~~~~~~~
frame_continuation
src/types.h:608:34: error: ‘class rsimpl::frame_continuation’ has no member named ‘continuation’; did you mean ‘frame_continuation’?
continuation = other.continuation;
^~~~~~~~~~~~
frame_continuation
src/types.h:609:19: error: ‘class rsimpl::frame_continuation’ has no member named ‘continuation’; did you mean ‘frame_continuation’?
other.continuation =  {};
^~~~~~~~~~~~
frame_continuation
src/types.h: In destructor ‘rsimpl::frame_continuation::~frame_continuation()’:
src/types.h:616:13: error: ‘continuation’ was not declared in this scope
continuation();
^~~~~~~~~~~~
src/types.h:616:13: note: suggested alternative: ‘frame_continuation’
continuation();
^~~~~~~~~~~~
frame_continuation
src/types.h: At global scope:
src/types.h:625:44: error: expected ‘)’ before ‘<’ token
calibration_validator(std::function<bool(rs_stream, rs_stream)> extrinsic_validator,
~             ^
)
src/types.h:633:14: error: ‘function’ in namespace ‘std’ does not name a template type
std::function<bool(rs_stream from_stream, rs_stream to_stream)> extrinsic_validator;
^~~~~~~~
src/types.h:633:9: note: ‘std::function’ is defined in header ‘’; did you forget to ‘#include ’?
std::function<bool(rs_stream from_stream, rs_stream to_stream)> extrinsic_validator;
^~~
src/types.h:634:14: error: ‘function’ in namespace ‘std’ does not name a template type
std::function<bool(rs_stream stream)> intrinsic_validator;
^~~~~~~~
src/types.h:634:9: note: ‘std::function’ is defined in header ‘’; did you forget to ‘#include ’?
std::function<bool(rs_stream stream)> intrinsic_validator;
^~~
make: *** [Makefile:106: obj/hw-monitor.o] Error 1

Hi @Kuchiriel
Why are you installing 1.9.7 specifically, and not one of the later legacy releases (like 1.11.0)?

If this is the only error, I'd try adding #include <functional> to hw-monitor.cpp before any other line.
Not sure why it would compile with Ubuntu but not Arch...

Dit it.
make
g++ src/hw-monitor.cpp -std=c++11 -fPIC -pedantic -Ofast -Wno-missing-field-initializers -Wno-switch -Wno-multichar -DRS_USE_V4L2_BACKEND pkg-config --cflags --libs libusb-1.0  -mssse3 -c -o obj/hw-monitor.o
In file included from src/uvc.h:8,
from src/hw-monitor.h:8,
from src/hw-monitor.cpp:5:
src/types.h:572:14: error: ‘function’ in namespace ‘std’ does not name a template type
std::function<void()> continuation;
^~~~~~~~
src/types.h:572:9: note: ‘std::function’ is defined in header ‘’; did you forget to ‘#include ’?
src/types.h:25:1:
+#include
src/types.h:572:9:
std::function<void()> continuation;
^~~
src/types.h:580:50: error: expected ‘)’ before ‘<’ token
explicit frame_continuation(std::function<void()> continuation, const void* protected_data) : continuation(continuation), protected_data(protected_data) {}
~             ^
)
src/types.h: In constructor ‘rsimpl::frame_continuation::frame_continuation()’:
src/types.h:578:32: error: class ‘rsimpl::frame_continuation’ does not have any field named ‘continuation’
frame_continuation() : continuation( {}) {}
^~~~~~~~~~~~
src/types.h: In constructor ‘rsimpl::frame_continuation::frame_continuation(rsimpl::frame_continuation&&)’:
src/types.h:583:59: error: class ‘rsimpl::frame_continuation’ does not have any field named ‘continuation’
frame_continuation(frame_continuation && other) : continuation(std::move(other.continuation)), protected_data(other.protected_data)
^~~~~~~~~~~~
src/types.h:583:88: error: ‘class rsimpl::frame_continuation’ has no member named ‘continuation’; did you mean ‘frame_continuation’?
nuation(frame_continuation && other) : continuation(std::move(other.continuation)), protected_data(other.protected_data)
^~~~~~~~~~~~
frame_continuation
src/types.h:585:19: error: ‘class rsimpl::frame_continuation’ has no member named ‘continuation’; did you mean ‘frame_continuation’?
other.continuation =  {};
^~~~~~~~~~~~
frame_continuation
src/types.h: In member function ‘void rsimpl::frame_continuation::operator()()’:
src/types.h:591:13: error: ‘continuation’ was not declared in this scope
continuation();
^~~~~~~~~~~~
src/types.h:591:13: note: suggested alternative: ‘frame_continuation’
continuation();
^~~~~~~~~~~~
frame_continuation
src/types.h: In member function ‘void rsimpl::frame_continuation::reset()’:
src/types.h:599:13: error: ‘continuation’ was not declared in this scope
continuation = {};
^~~~~~~~~~~~
src/types.h:599:13: note: suggested alternative: ‘frame_continuation’
continuation = {};
^~~~~~~~~~~~
frame_continuation
src/types.h: In member function ‘rsimpl::frame_continuation& rsimpl::frame_continuation::operator=(rsimpl::frame_continuation&&)’:
src/types.h:606:13: error: ‘continuation’ was not declared in this scope
continuation();
^~~~~~~~~~~~
src/types.h:606:13: note: suggested alternative: ‘frame_continuation’
continuation();
^~~~~~~~~~~~
frame_continuation
src/types.h:608:34: error: ‘class rsimpl::frame_continuation’ has no member named ‘continuation’; did you mean ‘frame_continuation’?
continuation = other.continuation;
^~~~~~~~~~~~
frame_continuation
src/types.h:609:19: error: ‘class rsimpl::frame_continuation’ has no member named ‘continuation’; did you mean ‘frame_continuation’?
other.continuation =  {};
^~~~~~~~~~~~
frame_continuation
src/types.h: In destructor ‘rsimpl::frame_continuation::~frame_continuation()’:
src/types.h:616:13: error: ‘continuation’ was not declared in this scope
continuation();
^~~~~~~~~~~~
src/types.h:616:13: note: suggested alternative: ‘frame_continuation’
continuation();
^~~~~~~~~~~~
frame_continuation
src/types.h: At global scope:
src/types.h:625:44: error: expected ‘)’ before ‘<’ token
calibration_validator(std::function<bool(rs_stream, rs_stream)> extrinsic_validator,
~             ^
)
src/types.h:633:14: error: ‘function’ in namespace ‘std’ does not name a template type
std::function<bool(rs_stream from_stream, rs_stream to_stream)> extrinsic_validator;
^~~~~~~~
src/types.h:633:9: note: ‘std::function’ is defined in header ‘’; did you forget to ‘#include ’?
std::function<bool(rs_stream from_stream, rs_stream to_stream)> extrinsic_validator;
^~~
src/types.h:634:14: error: ‘function’ in namespace ‘std’ does not name a template type
std::function<bool(rs_stream stream)> intrinsic_validator;
^~~~~~~~
src/types.h:634:9: note: ‘std::function’ is defined in header ‘’; did you forget to ‘#include ’?
std::function<bool(rs_stream stream)> intrinsic_validator;
^~~

[Realsense Customer Engineering Team Comment]
@Kuchiriel
Can you try to add the #include  to the include section of "types.h"? you can refer to the latest version types.h, the functional include is there.

@RealSense-Customer-Engineering First, thanks for supporting me in this. I didn't get it, what I need do exactly? Include  #include ?
Thanks!

[Realsense Customer Engineering Team Comment]
@Kuchiriel
I searched online, found out the error you encountered usually because of lacking the include of functional. And from the error message you attached, the error comes form types.h, so I guess you can add the "#include " into the types.h and see if it could fix the problem. Also in the latest version of types.h file, the functional is included in the header file.

[Realsense Customer Engineering Team Comment]
Any update?

@RealSense-Customer-Engineering
Package 'glfw3', required by 'virtual:world', not found
examples/c-tutorial-3-pointcloud.c:20:10: fatal error: GLFW/glfw3.h: No such file or directory
 #include <GLFW/glfw3.h>
          ^~~~~~~~~~~~~~
compilation terminated.

@RealSense-Customer-Engineering There is no package of libglfw3 for Manjaro Linux :/
Can I install manually?

Did you set the installation destination path in CMAKE configuration? or, set "DESTDIR" in make command?

Hi @RealSense-Customer-Engineering, when I just use make, after making those modifications, it compiles sucessfully. But with Cmake I got those errors. I did not set the installation destination path in CMAKE configuration nor seted "DESTDIR" in make command. I'm kinda newbie with C and C++. I'm web developer, but my problem was solved, make works fine. I thank you all for the help! I managed to make pupil run on my system. When I have some time I will try to fix the Cmake issue, and resubmit to AUR.

[Realsense Customer Engineering Team Comment]
Ok, if any update, let us know.


Emit new devices and keep playmode

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

2 of 4 (50.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.03%) to 81.352%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/sonos-device.ts
2
3
66.67%

src/sonos-manager.ts
0
1
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.03%

Covered Lines:
1648

Relevant Lines:
1983

💛  - Coveralls


start_inventory_from_pool does not function properly with items in the hint list

Making the issue here because I can't make it where the apworld is, but this is an ap-side generation issue.
As stated in the title. Failure occurs during slot data. If you start_inventory_from_pool an item, it gets taken out of the item pool. So when you try to use find_item("Magic Dagger", self.player).item after you put the magic dagger in your start_inventory_from_pool list, this step will break it since it can't find the item (since it's not placed on any locations -- it's in your inventory already).
Would need some sort of rewrite to check that the item is actually in the pool, and then gen the hints based off of that.
The quick and easy way would be to check what stuff has been put in start_inventory_from_pool and then take those out of the list, and fill in something like "Magic Dagger is in your pocket" or some joke hint.
Could do this by writing a helper function to check if the item is in the pool, if it is then return its location name and the player who has it, if it isn't then return "your pocket" and your own player slot. It would be the least intrusive this way, imo, and most likely would not require any changes on the mod-side.
I will probably try to work on this myself since I kinda introduced the issue in the first place.

I'll try and tackle this, currently stuck on a car ride for 3 hours with nothing better to do :p but if I can't get it to work I'll leave it to you

This is almost certainly going to require some new logic in the client mod as well since the slot data is used for major hints, so if those items are removed from the item pool those will break as well. Shouldn't be too bad to fix though

I'm sure it could be made to work without changes to the client. All you return is a string for the location name and the slot number for the player who has it.
So if it's not there you could just return "your pocket" or something similar for the location name and your own slot number for the player who has it.
Though, I guess (at least in the current version I have) the major hints aren't really working right anyway, so client changes need to happen regardless

The major hints use the location name to lookup a tunic scene name if the slot matches your own player slot, so probably just that would need to be accounted for

Closing this as it has been fixed in 0.0.2


Describe how to export node templates with the Rancher API

Consolidating into https://github.com/rancher/rancher-docs/issues/583.


Correct tag highlight in Log Graph

Problem
Currently if a commit contains a tag, the tag will be rendered in the log graph with the NeogitBranch highlight group. Worse, though, it can happen, that the tag will be misinterpreted as the remote name:

Before
After

Tech Details
The commit.ref_name might also contain a tag name, which the log graph is currently rendering in the NeogitBranch highlight group. The refname of HEAD with a tag placed on it might look like this:

HEAD -> main, tag: 1.0.0, origin/main, origin/HEAD

A refname of a tag not associated to any branch might look like this:

tag: 1.0.0

This makes the parsing of local_name, remote_name a bit more sophisticated, since we don't know the exact order of them. Naive solution might be to just split ref_name by comma and pattern match:

contains tag: ... -> tag_name
contains / -> remote_name
otherwise -> local_name

No Lua expert, maybe there is a better way to solve this =)

The one sticky thing is that sometimes people (myself included) will use / in a branch name, so you wind up with a remote like origin/fix/thing-112 and a local like fix/thing-112. I've used this to parse that out elsewhere:
upstream = "origin/fix/thing-112"
remote, branch = upstream:match("^([^/]*)/(.*)$")

That pattern reads as:

From the start ^
Capture everything that isn't a "/" ([^/]*)
Ignore the first "/" /
Capture everything else to the end (.*)$

Anyways, in practice, a better heuristic for the "local-vs-remote" problem is that a local branch has zero or more /'s, and a remote has one or more /'s. But that isn't great. So, you could use the above pattern to extract the "remote" name, and compare that to a list of remotes (require("neogit.lib.git").remote.list()). A little tedious, but should be the most correct.
If you wanna mess with that, go ahead. Otherwise this is still an improvement, so I'll take it as-is and try to find time myself

Thanks for the pointers @CKolkey, make sense to me. I try to implement a solution like you suggested over the next couple of days

No problem - I appreciate your attention to detail. Parsing CLI output has a seemingly never ending supply of edge cases.

Okay, turns out parsing all these combinations is quite finicky. I thought it make sense to unit test this behavior as well, so I moved it into require("neogit.lib.git.log").interprete() (if there is a better place for it, let me know).
This function uses now the output of remotes.list() like you suggested and it works quite robustly. For example when two remotes have the same branch on the same commit, they will now be rendered like this:

Don't know why some other tests are failing, on my local machine all is fine. Will investigate

Don't know why some other tests are failing, on my local machine all is fine. Will investigate

Okay so as it turns out, there was a problem with the ordering of where each branch is displayed on the graph. It would depend on the output of git log .... Strangely this is not even consistent between git versions. The CI uses git 2.34, I assume, which produces different behavior than my local git 2.39 =S.
To be most robust, I implement a way to make it independent of the output of git. Now "untracked" branches (i.e. those who doesn't have a remote counterpart) are always listed first, then come the "tracked" ones. See 14dfa5d for an example. Impl isn't the prettiest, but it does the job.

I just merged your other branch, which made a little conflict 😅

Haha, no worries. Just rebased on latest master. Thanks for merging =)

Really great stuff here. Thanks for adding tests, too, there's a general... lack... of that.
Easy merge, thanks for the contributions ;)


[WIP] Fix set-but-unused variable warnings

The third in my quest to make Godot 3.x compile with -Werror on GCC7
I'm going to rebase this commit on top of #10908 once that's merged.

OK, I'll fix your comments.

Please rebase and resolve conflicts.

Ping :)

I've been too busy to spend any time on godot the past days, I haven't forgotten, sorry guys!

Closing for now to reduce the backlog, but of course we'll still be interested in a follow up rebased PR when you get some time - no pressure though, it's a benign warning.


Port request for Visual studio 2022

Port request for Visual studio 2022!

Make a theme for Visual Studio (not Code!) and one for Notepad++


Added documentation and audited NumberInput

Completed the documentation for NumberInput widget in core file and also audited it.

The value from the user was directly getting passed to the platform implementation layer without getting checked as in case when a value of type integer should be passed rather than of type string. Therefore, I instead of passing the value from the user passed the property' value to which the original value passed by the user is getting assigned to after the check.

PR Checklist:

[x] All new features have been tested
[x] All new features have been documented
[x] I have read the CONTRIBUTING.md file
[x] I will abide by the code of conduct

Apart from auditing NumberInput I have also:
-> fixed the initialization problem of it in the gtk module. The widget was not getting initialized since some attributes required at the beginning were not initialized in the core module.
-> implemented some of the methods defined in the NumberInput widget in the gtk module.

Please review the latest changes made.


Mistyped env var in Makefile

In the Makefile I can see:
cp $(CLISRC)/scroll.js $(CLEDST)/scroll.js
I guess, it should be
cp $(CLISRC)/scroll.js $(CLIDST)/scroll.js
Please confirm or correct my understanding!

You are correct.

@tengqm @SaphMB I am sorry, I wanted to fix this, but had no time so far :(

Closed with https://github.com/kubernetes-incubator/reference-docs/pull/61
/close


Bottom navigation (Native)

What
Bottom navigation bars allow movement between primary destinations in an app.

Related
NHS design system community backlog discussion
Progress
Design checklist

[x] Gather evidence and consolidate designs
[x] Create a rough proposal (Figma)
[x] Build a working version (HTML or Native)
[x] Draft guidance
[x] Design sign off

Development criteria

[ ] Make WCAG 2.2 compliant
[x] Add [native library] version
[x] Add Figma version
[ ] Add design system guidance

Accessibility research findings
Magnification users:

For those holding the device horizontally navigation bar takes up a lot of space and user wanted the option so hide
Magnification users found the font size in nav bar too small

“They’re quite tiny I cant read it so it’s a guessing game, if I press this what will happen? Then I have to try and memorise them… and they’re important buttons for getting round”

a thought:

Currently type in the tab bar is a bit small
If we are unable to control the type size via OS settings, might we make it all a bit larger? (Easier to see, more obvious big touch targets)


Deploy CCU2

Hi,
a deploy of a CCU2 version does not work, for CCU3 the deploy works.
./deploy.sh
Unable to find image 'angelnu/ccu:2' locally
docker: Error response from daemon: manifest for angelnu/ccu:2 not found.

@JackGruber - for the CCU2 please use the ccu2 branch -> I will add a checking to the build/deploy to warn about this.

oh, i didn't see that one.

Added check


Requisition for Glove Training Code

Hello Enrico,
Thank you for your code. I'm facing a multi-classification problem of text. Luckly, I find your code can help me, And I want to learn more about your code. However,  the script for GloVe training is missing here. So, could you please send me the script or update it?
Thanks a lot for your help!
yan
Email<EMAIL_ADDRESS>

Hello Yan,
We are really happy that our code helps you in your project.
The script to train GloVe is missing because you can find it on https://nlp.stanford.edu/projects/glove/.
You have to slightly modify the configuration file (according to our README) in order to set the correct embedding vectors proprierties.
Here a snapshot of the site:
Getting started (Code download)

Download the code (licensed under the Apache
License, Version 2.0)
Unpack the files:  unzip GloVe-1.2.zip
Compile the source:  cd GloVe-1.2 && make
Run the demo script: ./demo.sh
Consult the included README for further usage
details

Enrico


fix: Broken Links and Formatting

Fixed Broken links in Quick References Articles section and added links for Style Guides section.

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

Closes #30592

Closed and Reopened this PR to attempt to resolve a specific Travis build failure.

Great, Thanks for the reveiw. Happy to make a difference.


The Question Paper Box

Describe the bug
As we Hover on the  Question paper button the Text of it is Overflown from the white box provided for it's content
Screenshots

Assign me this issue


Often chat messages are not caught by the RCON

Possible caused by the end of multipacket response being attached with the chat message (and the chat message having the wrong packet type). This was observed on Squad version b-<IP_ADDRESS>47.
e.g. packet body: b'\x00\x00\x00\x01\x00\x00\x00[ChatAll] this is example chat\x00\x00'.

Btw also a bug on the official valve RCON implementation. This can be fixed on the official valve RCON by disabling partial responses, but I think you use a custom implementation :(

Can you elaborate on what you mean, perhaps with some links? Never heard of disabling partial responses.

On the python RCON API, in valve/rcon.py, in _consume, disable the part that handles partial responses:

Before doing that, valve's RCON library doesn't register chat messages. Since making this fix, I've been catching them all.

Note to self:
The longer the script is running the more apparent this issue becomes. After a restart it updates perfectly fine every 15s, whereas after several days it sometimes takes several minutes to fetch messages, or they may even be completely ignored. Likely this isn't an issue with the RCON.


Implement pre-commit!

Implement pre-commit with the hooks for clean and neat code.

The pre-commit is implemented well and is now part of GHA checks ! Thanks @PrasadJoshi12 🥇


Mirror function incompatible with non-standard display scaling

Description
If the primary monitor has non-standard scaling (i.e. <> 100%) then the mirrored window (available when displaying websites) is not not sized correctly.

Could this issue be the similar to why I'm experiencing a Black-Screen in mirror mode?
My main monitor is 4k and the 2nd monitor is 1080p.  I'm testing at home.  We are moving to a new hall that already has this software.

@robertkjr3d It's not the screen sizes that are important; it is the scaling.

It likely will only be problem at my home machine...
But on 4K virtually no one uses Scaling at 100%.  It even defaults higher.  Print is too small to read.

@robertkjr3d understood. I believe the problem occurs when scaling is set differently on the 2 monitors (which may well be the case if PC monitor is hi-res and main screens are not)


How to redirect process logs to STDOUT?

Hello,
Could you please point me to the direction to be able to redirect the logs to STDOUT?
I'm running Druid services within individual Docker containers and each of them are launched by:
bin/run-druid SERVICE_NAME conf/druid/cluster/SERVICE_NAME
So far, I've figured by by-passing Druid supervise script I can take over STDOUT and set AWS Log as my container log driver. This way, I can redirect the logs to Cloudwatch without configuring a process to do the forwarding for me.
But, is this the correct way to achieve this? did I miss something in the docs?
Also, there are lots of bootstrapping happening in Druid supervise script which I rather not to miss.

@behdadkh did you find a solution to this? (without skipping the use of supervise)

@tj--- Sorry for late reply! no, not really.. I am still delivering the logs with the above approach.


Make a development dockerfile that doesn't install the bot module, but just runs main directly

This would prevent us needing to run a pip install on each run and should significantly speed up development iteration.

This was done inhttps://github.com/anoadragon453/matrix-reminder-bot/commit/77aa847f51def9ef654d58e38029f7d85600b88a


cache

Page: https://id.react.dev/reference/react/cache

Hi @resir014  I would like to help resolve this issue, can you please update the assignee to me ? thanks!

@FelixFern All yours!

here are the PR closing this issue https://github.com/reactjs/id.react.dev/pull/710


Fix checksum and bug in irc_disentangle dataset

There was a bug in filepath segment:

wrong: jkkummerfeld-irc-disentanglement-fd379e9
right: jkkummerfeld-irc-disentanglement-35f0a40

Also there was a bug in the checksum of the downloaded file.
This PR fixes these issues.
Fix partially #4376.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


the parser doesn't work fine in many sites especially forums

hello @assnctr
I tried your proxy parser, and I can say it's the best Proxy Parser I ever found.
But they're a problem that the parser doesn't scrape proxy from many sites
If any site has the proxies like this the parser don't scrape them
example:
<IP_ADDRESS> | 9999 | 高匿名 | HTTP | 山东省济宁市 电信 | 3秒 | 2019-01-05 23:30:59
<IP_ADDRESS> | 9999 | 高匿名 | HTTP | 辽宁省阜新市 联通 | 1秒 | 2019-01-05 22:30:59
<IP_ADDRESS> | 9999 | 高匿名 | HTTP | 湖南省岳阳市 联通 | 0.3秒 | 2019-01-05 21:30:56
<IP_ADDRESS> | 80 | 高匿名 | HTTP | 中国 移动 | 2秒 | 2019-01-05 20:30:58
Also is there a way to make your parser take all the proxies from http://proxydb.net/ without going so heavy or take ages? because I tried all and it won't work too.
I hope you fix this and make it more advanced when it scrapes these types
Overall great work and thank you In  #Advance.

hello can you update the Proxy Parser to be able to scrape proxies with type of ip port like the sites i sent you above
http://nntime.com/
https://hidemyna.me/
https://www.my-proxy.com/
https://www.proxynova.com/
https://premproxy.com/
http://proxydb.net
i searched for v 1.3.0 BETA and i couldn't fight a download link :(


Private feed implementation

Summary of the changes (in less than 80 chars)
Implements private feeds resolves #142
Used by nuget:
NuGet Sources Add -Name "feed_name" -Source "http://localhost:50557/v3/index.json" -UserName "username" -Password "password"
Addresses https://github.com/bagetter/BaGet/issues/142 https://github.com/bagetter/BaGet/issues/147

Added code to resolve #147

@Regenhardt LMK if you find anything else with it.

LMK if you need anything else

Oh when the handler is in .Web, you could add an extension method so the startup can call it like services.AddAuthentication().AddNugetBasicHttpAuthentication() or something.
Possible calls:
services.AddAuthentication().AddNugetBasicHttpAuthentication() as auth scheme next to calls like ´AddBearerToken() services.AddBasicHttpAuthentication()as complete alternative toAddAuthentication() BaGetterApplication.AddBasicHttpAuthentication()` which would make sure it can only used with BaGetter and not with other applications accidentally that just include BaGetter
I'm not currently fit enough to completely make the choice so, anything with an explanation why would be great.

The apiKey object makes sense. I would split the per/package authentication into separate PR later on. I can implement that. Here I would like to focus on the base with enabling the functionality down the road

BaGetterApplication.AddBasicHttpAuthentication() would require to store extensions in another cs file upper the project scheme, since BaGetter.Core doesnt have auth extensions.

Yup, makes sense to limit that for BaGetterApplication, so it does not interfere with anything else

I have a dilema.
Move ApiKeys into NugetAuthenticationOptions, or leave it in base next to the original ApiKey, both have pros and cons.
But maybe moving it into NugetAuthenticationOptions would be sensible in case another features like the per package/scope auth feature implementation?

I'd say move it into the options object, so the root API key stays as the simple default case where you just want to restrict pushing (I assume many companies just have their feed available in their local network anyway), and the complex options are an optional extension for more sophisticated concepts.

Will do tomorrow

As for me its GTG

I propose that we actually implement full access control with actual user entities... Im currently working on implementing that... I've finished linking packages to accounts. It just needs the following

Implement checks during write operations
Implement DbMigrations for the storage providers
Maybe a UI for updating the users. Right now all of it is managed by the REST endpoint

Id love it you went through it @Regenhardt : https://github.com/bagetter/BaGetter/compare/main...arkangel-dev:BaGetter:main

I understand. But I must say. I come from open-source and corporate. And this implementation is big no go from many point of views, because this means another management and ecosystem locking.
It propably makes sense to create full access control with user entities, but it is definetly not straighfowrard as this. Because many existing users use Azure, Windows AD auth etc.
Simple auth scheme such as this can be later on extended, but I dont think its wise to lock users in this way. Because I could see implemening certificate auth, or something completely different like AWS. It should consider authentication flows like OAuth 2.0 etc, to allow automatization of workflows etc...
I think that the approach should propably be

Implement simple and basic configurable auth - Needed by majority
Thoroughly design Auth API
Allow extension nuget packages to implement and inject them

I just pushed the final commit to my fork, its finished, I understand where you're coming from, what I've done is a very simplified implementation of access control. Just enough to suit my needs and I dont mind if my changes aren't merged into the main fork, but the way I see it, it is bounds better than just multiple api keys having full write access to all packages.
Also i dont understand what you mean by authentication flows like OAuth 2.0... Are you talking about the web page?

Also i dont understand what you mean by

Are you talking about the web page?

What I was trying to say is, that people should have the ability to use the authentication that they have now, if at all possible

I think I got what you mean. The authentication they have now, as in the API key that is currently implemented right?

No, I think the authentication should be in core simple as possible to allow basic control like this PR does.  - Also package control can be added in similiar fasion
And after that everything else should be abstracted out in some way and possibly provide built in solution like your implementation. But there are many possible solutions from simple to complex and it really depends what are the goals with the Bagetter

I dont mind the authentication. I think its really well done... Its the authorization performed when writing to the package list. I think I'll take a stab at implementing the authorization part after your merge 😄

I do like both of your implementations, I think with the extensibility @tomasfil got going on here we could very well extend it using @arkangel-dev 's implementation afterwards, thanks a lot for that! I must admit that, in the beginning, I definitely wanted something like the implementation of @arkangel-dev, but now am excited by the simplicity and extensibility of what @tomasfil built here.
@arkangel-dev How do you actually use your admin controller, do you have your own client? I didn't see a new page for that. Or does the nuget client include an interface for that? There should definitely be a service handling all that from an MVC page, so then there can be both the page and the controller injecting the service.
Also when checking the token, the checks that do not access the database should probably happen before the check that accesses the database to avoid unnecessary DB connections. Also constants for the auth schemes and roles, unless we secretly plan to make roles configurable too in the future so it doesn't matter anyway.
I'd be absolutely ok with a draft PR of your changes so we can track it and have a better space to talk about how to proceed with it, even if it takes months. I removed the stale-issue-bot exactly because development is slow here and I don't think a to-do is done just because I ignored it long enough.
@tomasfil I've gotta look at the latest changes but I think we're good to go too, just don't have time right now, I'll try on the weekend.
I do like the idea of another project having the actual identity implementation, we could have BaGetter reference and use that directly and publish it as NuGet package for other people consuming the library. It would however be nice if it's compatible with ASP.NET Core identity somehow, although I just don't have the overview about that one to even guess how compatible it currently it. That would pave the way to easier addition of other identity systems like oauth2 though.
Similar to how other providers work, the whole identity implementation should only be used (i.e. DB created/migrated and context called) if it is configured at all, if possible the addition should maintain the default configuration of a simple to set up nuget feed with next to no configuration necessary to run. This is of course all speculative about how optional all that can be done. I think BaGetter does have a very nice architecture for these kind of things though.

For my use case, i just make requests manually, but yeah, you should def have a web page. And for the checks, I'll update those. And I'll make a draft after this PR is merged. Thanks!

I will pop into those requests propably next week. Or anyone interested can really

That is the current status of this ?

@hoerup The last thing I know was that @tomasfil wanted to have a look at the change requests.

I am sorry, currrently very busy. I will try my best to work on the requested changes this week.

@tomasfil Okay, but don't stress yourself!

@tomasfil  Just bumbing as not to be forgotten :)

@seriouz @Regenhardt Resolved the comments.

Thanks, gonna take a look when I'm back. I've been in the hospital for a week unfortunately.

Oh yes, way better, walking almost looks normal again 😊. Still getting settled and cleaning up after a month of not being at home, I'm gonna look at this soon, haven't forgotten it don't worry.

I hope the PR merge can be successful and add a private package option. for any teams using this open source project hope for authenticated access rather than open access. this is a very important feature. without this feature, we can only solve it through other additional ways, but this solution does not seem to be based on software engineering principles. so I hope  this PR merge successful soon.

I will just add, that I am using locally deployed image for production sice Jul with 5 developers and everything works as expected, nothing broke yet and we didn't find any security issue of leaking the packages without authorization

The build was broken by https://github.com/tomasfil/BaGetter/commit/0fe5bac368d891883cf18b4b473909603ff495fb
I did fix it.

I’m waiting for your feature to be released because I plan to share it at a local tech meetup, focusing on project and code security. I’m really excited about it and check multiple times a day to see if it’s out yet.

thanks a ton for all ! this given us an amazing and super useful feature. we really appreciate it!

Hi,
great to see private feed getting implemented. I have already deployed it. Only question I have is. While feed is private (access to index.json is protected by basic auth) the Web UI search is not limited, and packages can be downloaded from there. Is there solution to this, which I have overlooked?
Thanks

@theazgra  They can be browsed, but not downloaded when credentials are setup.

But once you insert credentials for download, then your browser remembers it

@tomasfil Ah i See, ok, that makes sense. :) this + path deny in HAProxy is sufficient for our needs. Thanks


Allow custom environments or other setup scripts to bind to Circus events.

Summary
Currently, it's not possible for custom environments, setup scripts, or even other code inside of Jest to bind to events from Circus. This reduces the value of the new test runner when it could be used for a lot of awesome features that aren't possible today without hacks.
Exposing these events generally has the following use-cases:

Jest's own reporter should be more granular than just test files. Circus provides the hooks needed to send that information back to the parent process. This is the first step for that feature.
Some third party code could really use the ability to bind events to specific parts of the test lifecycle. For example, @gribnoysup wrote a great integration for Jest + PollyJS, but it requires manually calling a method in the test context and has to monkey patch it blocks: https://github.com/gribnoysup/setup-polly-jest/blob/master/src/setupJasmine.js#L137

With this change, it's possible to do something like this:
import { addEventHandler, Event } from 'jest-circus'

class MyEnvironment extends NodeEnvironment {
    async setup() {
        addEventHandler(this.onTestEvent.bind(this));
    }

    public onTestEvent(event: Event) {
        if (event.name === 'test_start') {
            ...
        }
    }
}

It also works in setupFilesAfterEnv. The key is that the globals have to be setup first by the environment before calling addEventHandler. When writing documentation, I'll make that clear. Unfortunately, it is difficult to detect when it's called too early and warn the user because of the variety of test environments possible. If you can think of a way, let me know.
I'm planning on writing documentation for this but wanted to put this out there first to get any initial feedback on the implementation and the interface for using it. The events themselves and event metadata are fairly Circus-specific so I think it's ideal that any external users realize that and must import circus directly. This will be less awkward when it's the default test runner.
Open to all feedback.
Test plan

All tests pass, including Circus-specific tests that rely on these events to work properly.
I've developed an integration against this for something I'm working on, so it definitely works. ;)
E2E test will be committed before merge, waiting on feedback on the interface.

@aaronabramov Pretty sure you wrote Circus originally so would appreciate your feedback on what I'm trying to do here.

Codecov Report

Merging #8307 into master will decrease coverage by 0.25%.
The diff coverage is 48.83%.

@@            Coverage Diff             @@
##           master    #8307      +/-   ##
==========================================
- Coverage    62.2%   61.94%   -0.26%
==========================================
  Files         266      266
  Lines       10673    10678       +5
  Branches     2596     2598       +2
==========================================
- Hits         6639     6615      -24
- Misses       3445     3477      +32
+ Partials      589      586       -3

Impacted Files
Coverage Δ

...us/src/legacy-code-todo-rewrite/jestAdapterInit.ts
0% <ø> (ø)
:arrow_up:

packages/jest-circus/src/types.ts
100% <100%> (ø)
:arrow_up:

packages/jest-circus/src/state.ts
37.5% <25%> (-54.17%)
:arrow_down:

packages/jest-circus/src/globals.ts
51.38% <51.38%> (ø)

packages/jest-circus/src/eventHandler.ts
1.17% <0%> (-5.89%)
:arrow_down:

packages/jest-circus/src/utils.ts
13.07% <0%> (-2.31%)
: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 820c2b1...7caef88. Read the comment docs.

This looks really cool! Can we keep this open in RFCish state for a bit? I'd love to mess around with it as well to see how it covers some use cases

@jeysal Definitely, please let me know if you have any feedback.
I'd like to get this into the next release within a week-ish but I'll hold off on merging it until necessary.

Thanks for mentioning setup-polly-jest, @scotthovestadt!
Circus was a big question mark for me when working at that jest <> polly integration as I wasn't sure at all how to do it when jasmine is gone 😅Can't wait to start hacking with this branch to prepare for Circus release 😸

that looks amazing! 👍

I've been using it for a bit now and I feel confident in the interface + no feedback about changing it, will write up docs and then get it merged in shortly!

@palmerj3 does this help with Spotify's http interceptor?

I have some time to try this out today :)

@SimenB oh man this looks like exactly what I need

@scotthovestadt I've played around with this and found a use case that this might not cover well. I tried to wrap the test fn in a Zone (basically in add_test replace fn with someApi.wrap(fn)). With this API there is no way to alter the event that circus receives, so I had to work around it and get the already added test using
const test = state.currentDescribeBlock.tests.find(
   ({name}) => name === event.testName,
);

and then alter that TestEntry. This feels hacky and probably does not compose well with other event handlers. Please do tell me if you know a better way to do this.
As an alternative idea for this API, I would suggest using a chain of handlers that can either perform side effects (which the current API seems to be good at) or modify the events (which is not currently possible):
const handler = (event, next) => {
  switch(event.name) {
    case 'add_test':
      console.log(`side effect for ${event.testName}`);
      next({
        ...event,
        fn: someApi.wrap(event.fn),
      })
      break;
    default:
      next(event);
  }
}

The final next() call would invoke the circus logic, which has no further delegate.
Another thing to note is that the handler example has no state argument. I wanted to ask the somewhat separate question if we absolutely need to expose the state itself. This can probably only be answered by looking at a few use cases, but for example formatNodeAssertErrors almost doesn't use the state (except for state.expand, which is really config, not state, and could be done differently).  I think often it would be sufficient to just include the necessary information in the event so it can be accessed from there. My experiments also wouldn't need the state if the workaround can be replaced with clean event manipulation.
If we manage to cover the relevant use cases while only exposing events, we can move much faster ™. Exposing the state means almost any change to its structure will be breaking because of code like the one at the top of this comment. Exposing events and a way to operate on them, on the other hand, means we can e.g. call handlers on the old deprecated event, convert it to the new format, and then call handlers including circus itself on the new event.
Would love to hear thoughts from everyone involved! This makes a quite large and essential piece of previously internal API public, so I think it's not something to be taken lightly :)

@jeysal Thanks for the feedback!
Public Interface
It's worth noting that the intention of Circus all along was to expose the events and state as public interface so other code could hook into it. It's been a long-standing problem that there's no way to hook into the lifecycle (as evidenced even in this thread by @palmerj3, @gribnoysup, and myself).
Event Mutation
The way Circus works internally is by mutating the event and state objects themselves, and there's no reason other events can't do the same thing. For example, here's the internal code for test_done, which mutates  both event and state.
case 'test_done': {
  event.test.duration = getTestDuration(event.test);
  event.test.status = 'done';
  state.currentlyRunningTest = null;
  break;
}

Any change to this is also going to be basically a refactor of the whole Circus runner. I don't think just dropping in a different way of doing things solves any of the core problems. I'm not saying it can't be improved; I'm just saying if we do, it probably belongs in a major version anyway, since it would be a very large refactor.
There are a couple of improvements that can be made incrementally but I didn't make here because I don't have a use-case for them and didn't want to over-engineer:

Allow event handlers to return Promise<void> and await it. This solves your callback use-case without modifying the interface.
Allow event handlers to set a priority to be called before/after internal event handlers or each other.

Moving Fast
Yes, this exposes more as a public interface. Much of this is already exposed with the json response we offer, and even more of it will be exposed as jsonLines and more granular test reporting is added. The PRs are related-- we need this to even use it internally outside of Circus files.
If we are truly worried about exposing it to the public quickly, I'm happy to hold off on any documentation. We can use it internally for the use-cases I mentioned and have more time to make any breaking changes needed.
If we do choose to document, these points can be clear in the documentation:

It could be marked as "EXPERIMENTAL" in documentation with a caveat that breaking changes may be made with only minor version bumps.
Adding new events, new keys to events, or new parts to the state will not be considered a breaking change. We can maintain old keys that aren't used internally with comments to remove in next major.
Other caveats? Suggestions welcome.

Thanks again for your feedback.

Thanks for the detailed response @scotthovestadt!

Allow event handlers to return Promise and await it. This solves your callback use-case without modifying the interface.

Could you elaborate on how this solves it? It looks to me like the other bullet point about priorities would solve it by making my handler run before circus' handler, not this one 😄

The way Circus works internally is by mutating the event and state objects themselves, and there's no reason other events can't do the same thing. Any change to this is also going to be basically a refactor of the whole Circus runner.

I'm not suggesting dropping mutation internally. I guess my suggestion is not really about immutability either (the whole next thing is kind of optional, just felt cleaner than mutating the object that the next handler in the chain will also receive). After thinking about it some more I'd say it could be described as exposing "event preprocessors", with the key things that distinguish them from event handlers being

that they run before the event handlers, which your priority concept addresses, although I think either way we're unfortunately creating kind of a z-index / Babel plugin situation, and
that they do not have access to circus' state, instead only bending circus to their will by plugging in between globals and event handlers and changing what inputs the circus event handler receives. This is the key to greatly reducing the API surface.

I don't know what exactly you've used custom event handlers for, do you think such an API would be sufficient or are there things which cannot be mapped to event mutations?

I see your point about mutations. My use-case doesn't involve mutation and you've changed my mind to be explicit about documenting that the mutation use-case isn't supported for now. I think at a minimum we'll need some sort of a priority on the event handler stack to support it -- and as you said, that leads to the zIndex situation, so we can weigh supporting that against any use-cases brought up for it.
Long-term, I think it's going to be important to allowing 3rd party proper hooks into the system without going and adding an explicit hook for them everywhere, but we should discuss it more. One use-case that comes to mind for allowing mutations is being able to remove the custom filter external require we have today and instead you could dynamically hook into the events and automatically skip tests you want to filter out (or just remove them). Someone could create a jest-filter package that did this without even needing custom hooks into the codebase like today. A lot of core code could be moved into packages like this. I think it exposes a huge array of possibilities.
... but we'll defer that for now. The use-case I'm trying to solve is to just hook into various stages of the lifecycle so you can do external things, similar to beforeEach, but with access to more data about what's running and without monkey-patching.
I don't think event pre-handlers are a good solution because most of the data you need for events is generated by the default handlers. Exposing the state is probably necessary because you may need data not in a specific event. The state is just an assembly of parts of the event data, you could just re-create it yourself from all the events... and people will do this if we don't expose state. I think what you actually want is to separate event mutation from state mutation, which makes total sense for mutations but would be a large change to Circus. I agree (tentatively, I'd need to write some code to fully grok it).
To sum up what I've learned from your feedback:

Document that mutations are currently unsupported.
Document that things may be added without a breaking change; new events, new keys, etc.
If we do decide to expose mutation, we may want to refactor Circus internals to provide a cleaner way of doing it that separates event mutation from state mutation.

As-is, what we'll document is that you can synchronously listen to events and access read-only event data and state data. I personally think that this is an acceptable public API surface for a major version and can be broken in a future release if needed.
Lastly, I want to note that jest-circus has 20,894 downloads a week compared to jest-jasmine2 at 4,034,301. I think it's OK to mark everything we do with circus as experimental until we ship it as the default to allow us to move fast. Circus is going to be the instrumental in a few key features I want to support:

Granular support for reporting on individual tests within a file.
Streaming all results for JSON and to CLI, reducing memory usage from linear to constant.
Reducing the need for one-off hooks in the codebase, like the custom filter.

For my use-case I would ideally need the event handlers to be blocking in some form. Wait for me to resolve a promise, return, etc. Would give time to configure things and clean up before/after a test is run.
But from a reporting standpoint this gets us closer to individual tests instead of a per-suite level we are at now which is great.

@palmerj3 It's pretty trivial to make the individual event handlers await a Promise if returned, I'll do it in this PR. The EventHandler signature will become:
(event: Event, state: State) => void | Promise<void>;

Simplified implementation: https://github.com/facebook/jest/pull/8344


Fix Transform from readable-stream using create-react-app

I've tried using winston using create-react-app, however I encountered this issue:
https://github.com/winstonjs/winston/issues/1495#issuecomment-432305343
Looking at the bundled code I noticed that the stream variable required from readable-stream was not the one used to extend the class stream.Transform.
The code would look like:
var _stream = __webpack_require__(
  /*! readable-stream */
  "./node_modules/readable-stream/readable-browser.js");

// file content

   }(stream.Transform);

instead of
_stream.Transform

Importing the Transform class works as expected.

Aha!  Good find, hopefully this resolves all the issues for react users!  Thanks!


Renamed dragon entity parts

Also mapped the mask constants in LivingEntity and MobEntity
Closes #2311

Did you check that these names conform with the (to-be) json property names in 1.17?

@YanisBft need to fix merge conflict real quick


some changes that make it so why can use this

So, does this now reuse the current GOPATH? Have you considered doing a local clone from the current GOPATH into a temporary GOPATH? (Not volunteering)
I'm worried that this PR will lead to gx packages with extra cruft due to dirty workspaces.


[AutoScheduler] Allow device specification for AutoScheduler Runners.

Currently, all measurements in the autoscheduler are run on device 0. Although this is fine for most cases, on some platforms with multiple gpus, it may be important to run on a specific device. This small PR adds an optional device argument to the various Runner classes in auto_scheduler/measure to address this limitation.

@tkonolige can you take a look at this PR?

@masahi can you also check to make sure this all looks ok?


VTK parsing error

I have particle data in XML VTU format. I've tried

loading the file into ParaView and exporting it as legacy .vtk files,
converting the file with ParaView's Python interface.

Both yield perfectly fine .vtk files that can be opened correctly by ParaView.
However, both produce parsing errors when I try to run them through splashsurf:
[2023-04-05T16:30:16.737039+02:00][splashsurf][ERROR]   caused by: Failed to load VTK file "test1.vtk"
[2023-04-05T16:30:16.737046+02:00][splashsurf][ERROR]   caused by: Parse error: Alt

It's a bit surprising to me that the legacy output of Paraview does not seem to be supported. Can you upload a VTK file so I can reproduce the issue? I can look into it next week.
I could also consider adding support for the XML format, however I don't have any input files I could use for testing at the moment. So it would also be appreciated if you could provide me some files.
For now you can consider converting the file with the Python tool meshio convert, though you may have to manually specify --output-format vtk42 but I'm not sure about that.

Thanks! I'll have a look.

It seems that vtkio supports XML VTU files, so I thought I might only need to change a few lines to create a PR for this feature. I might look into this when I have some time, but I would greatly appreciate if you would add that feature, since I've never worked with Rust before.

I enabled loading of VTU files, it was indeed just a few lines. You can try it out by installing splashsurf from this repository using
cargo install --git https://github.com/w1th0utnam3/splashsurf.git

I'll release a new version soon, but maybe you can already try out if everything works as expected. I guess you also want to interpolate attributes? So maybe you can try if that works correctly with VTU files.
Unfortunately, I didn't get the legacy VTK loading to work. It seems like depending on the input file Paraview generates legacy VTK files with a syntax that doesn't match what vtkio expects (similar to https://github.com/elrnv/vtkio/issues/21). I'll try to report this in the issue.

Thanks a lot for looking into this.
I now get this error:
ltt027:out_falling_spheres1 erik$ ~/.cargo/bin/splashsurf reconstruct -i fluid_1_93.vtu --cube-size 0.4 --particle-radius 0.014 --smoothing-length 1.2
[2023-04-18T14:01:41.489403+02:00][splashsurf][INFO] splashsurf v0.9.0 (splashsurf)
[2023-04-18T14:01:41.489830+02:00][splashsurf][INFO] Called with command line: /Users/erik/.cargo/bin/splashsurf reconstruct -i fluid_1_93.vtu --cube-size 0.4 --particle-radius 0.014 --smoothing-length 1.2
[2023-04-18T14:01:41.489955+02:00][splashsurf::reconstruction][INFO] Using single precision (f32) for surface reconstruction.
[2023-04-18T14:01:41.490142+02:00][splashsurf::io][INFO] Reading particle dataset from "fluid_1_93.vtu"...
[2023-04-18T14:01:41.491365+02:00][splashsurf][ERROR] Error occurred: Failed to load particle positions from file "fluid_1_93.vtu"
[2023-04-18T14:01:41.491372+02:00][splashsurf][ERROR]   caused by: Failed to load VTK file "fluid_1_93.vtu"
[2023-04-18T14:01:41.491375+02:00][splashsurf][ERROR]   caused by: XML error: Deserialization error: Xml(UnexpectedEof("XmlDecl"))
[2023-04-18T14:01:41.491379+02:00][splashsurf][ERROR]   caused by: Deserialization error: Xml(UnexpectedEof("XmlDecl"))
[2023-04-18T14:01:41.491382+02:00][splashsurf][ERROR]   caused by: Unexpected EOF during reading XmlDecl.
[2023-04-18T14:01:41.491385+02:00][splashsurf][ERROR]   caused by: Unexpected EOF during reading XmlDecl.

Hm, is it possible that the file is partially written or is missing some closing tag for whatever reason?
Unfortunately I only have the XML file you provided so I cannot really reproduce it.

Interesting, both were generated by the same code. I'll try to reproduce that with a smaller file that I can send to you.

fluid_1_91.vtu.zip
This file also fails with
ltt027:out erik$ ~/.cargo/bin/splashsurf reconstruct -i fluid_1_91.vtu --cube-size 0.4 --particle-radius 0.28 --smoothing-length 1.2
[2023-04-18T16:08:10.075408+02:00][splashsurf][INFO] splashsurf v0.9.0 (splashsurf)
[2023-04-18T16:08:10.075498+02:00][splashsurf][INFO] Called with command line: /Users/erik/.cargo/bin/splashsurf reconstruct -i fluid_1_91.vtu --cube-size 0.4 --particle-radius 0.28 --smoothing-length 1.2
[2023-04-18T16:08:10.075515+02:00][splashsurf::reconstruction][INFO] Using single precision (f32) for surface reconstruction.
[2023-04-18T16:08:10.075582+02:00][splashsurf::io][INFO] Reading particle dataset from "fluid_1_91.vtu"...
[2023-04-18T16:08:10.075739+02:00][splashsurf][ERROR] Error occurred: Failed to load particle positions from file "fluid_1_91.vtu"
[2023-04-18T16:08:10.075754+02:00][splashsurf][ERROR]   caused by: Failed to load VTK file "fluid_1_91.vtu"
[2023-04-18T16:08:10.075756+02:00][splashsurf][ERROR]   caused by: XML error: Deserialization error: Xml(UnexpectedEof("</Err(Utf8Error { valid_up_to: 0, error_len: Some(1) })>"))
[2023-04-18T16:08:10.075762+02:00][splashsurf][ERROR]   caused by: Deserialization error: Xml(UnexpectedEof("</Err(Utf8Error { valid_up_to: 0, error_len: Some(1) })>"))
[2023-04-18T16:08:10.075764+02:00][splashsurf][ERROR]   caused by: Unexpected EOF during reading </Err(Utf8Error { valid_up_to: 0, error_len: Some(1) })>.
[2023-04-18T16:08:10.075767+02:00][splashsurf][ERROR]   caused by: Unexpected EOF during reading </Err(Utf8Error { valid_up_to: 0, error_len: Some(1) })>.

It's been generated with the same Julia code (using WriteVTK.jl) as the "source.vtu" file earlier.

Hm, it works if I re-export it as VTU with Paraview and either select to write the data arrays as ASCII, (encoded) binary or appended & encoded. I think the problem is that the XML parser used by vtkio cannot handle the binary encoding in the <AppendedData encoding="raw">...</AppendedData> binary blob. The "encoding" option in Paraview writes it using base64 encoding or something like that which works.
I think for now I cannot do much about that except for reporting this to vtkio. Can I re-post this file to an issue in the vtkio repo?
Maybe you can see if you can set an option in the Julia library to change the encoding for now as a workaround?

Thanks! Feel free to repost the file.
Unfortunately, there doesn't seem to be any options like that for the Julia package. But it's interesting that the first file worked, which was exported by the same package.
For now, I'll use meshio to convert to legacy XML with the option you gave me earlier.

Thanks! Feel free to repost the file.
Unfortunately, there doesn't seem to be any options like that for the Julia package. But it's interesting that the first file worked, which was exported by the same package.

I think for the first XML file the binary blob just happened to not include end of file characters or similar so the XML parser library was able to parse it. Maybe this way of storing raw binary data is just not supported by the library.
Ok, I'll report this with vtkio then.

Thanks! Feel free to repost the file. Unfortunately, there doesn't seem to be any options like that for the Julia package. But it's interesting that the first file worked, which was exported by the same package.

@efaulhaber I just found this page: https://juliavtk.github.io/WriteVTK.jl/stable/grids/syntax/#Data-formatting-options
It seems like you can set the keyword argument append=false to use the inline base64 encoded format that should be supported.

Ah, right. I completely forgot about this.

Here's the file:
fluid_1_0.vtu.zip


Issue 95

Coverage remained the same at 94.098% when pulling ca7d5089c27695e44daef96d020fe2ed28d692eb on issue-95 into 92d7230958366870f04a02d0becef65915861985 on staging.


Tapping checkmark doesn't close camera.

Once I take a picture and I like the preview, I tap the checkmark to close the camera but it doesn't; in fact nothing happens when I tap the checkmark. What's up??

Hey. Sounds like it doesn't have permissions to save. Try making sure these uses are in your AndroidManifest.xml file:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />


opencv CUDA build failure

Host Environment

OS: Windows 10 x64
Compiler:  Visual studio 2019

To Reproduce
Steps to reproduce the behavior:
./vcpkg install opencv[cuda,contrib]:x64-windows
Failure logs
erated_120.i...
-- Downloading https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12/face_landmark_model.dat...
-- Configuring x64-windows
-- Building x64-windows-dbg
CMake Error at scripts/cmake/vcpkg_execute_build_process.cmake:145 (message):
Command failed: "C:/Program Files/CMake/bin/cmake.exe" --build . --config Debug --target install -- -v -j9
Working Directory: C:/vcpkg/buildtrees/opencv4/x64-windows-dbg
See logs for more information:
C:\vcpkg\buildtrees\opencv4\install-x64-windows-dbg-out.log
Call Stack (most recent call first):
scripts/cmake/vcpkg_build_cmake.cmake:96 (vcpkg_execute_build_process)
scripts/cmake/vcpkg_install_cmake.cmake:27 (vcpkg_build_cmake)
ports/opencv4/portfile.cmake:362 (vcpkg_install_cmake)
scripts/ports.cmake:136 (include)
Error: Building package opencv4:x64-windows failed with: BUILD_FAILED
Please ensure you're using the latest portfiles with .\vcpkg update, then
submit an issue at https://github.com/Microsoft/vcpkg/issues including:
Package: opencv4:x64-windows
Vcpkg version: 2020.11.12-nohash
Additionally, attach any relevant sections from the log files above.
Additional context
Tried multiple times.
install-x64-windows-dbg-out.log

Same error with Administrator privileges.

built with Cmake


K8SPS-373: reduce error logs on 1 mysql pod deployment

https://perconadev.atlassian.net/browse/K8SPS-373
DESCRIPTION
Problem:
When using async cluster with 1 mysql pod, the operator prints the following error messages in the log:
ERROR failed to update status {"controller": "ps-controller" ... "error": "check if async is ready: 2024-07-02 13:30:38 ERROR Unable to determine cluster name. clusterHint=cluster1.psasync" ...
and
ERROR failed to update status {"controller": "ps-controller" ... "error": "check if async is ready: unexpected end of JSON input" ...
Cause:
During cluster deployment, the orchestrator is not ready at the same time as the mysql pod is deployed. It responds with an empty body, which is the cause of the unexpected end of JSON input error, or the Unable to determine cluster name error.
Solution:
Check for these errors and print the info messages INFO Async replication not ready: orchestrator: unable to determine cluster name or INFO Async replication not ready: orchestrator: empty response. We do the same checks in other parts of the operator code, we just need to add these missing checks to the isAsyncReady method: https://github.com/percona/percona-server-mysql-operator/pull/717/commits/0b23ce8d913112a74f8bfbe6dd6c146f92d19a54
This PR also fixes K8SPS-369. The orchestrator returns driver: bad connection and dial tcp: lookup cluster1-mysql-1.cluster1-mysql.default on X.X.X.X:53: no such host errors when attempting to connect to a deleted mysql pod. The operator should check for this kind of errors and print INFO messages instead: https://github.com/percona/percona-server-mysql-operator/pull/717/commits/70c481f62384dd92f47a1121a11f6f014016a9a3
CHECKLIST
Jira

[x] Is the Jira ticket created and referenced properly?
[x] Does the Jira ticket have the proper statuses for documentation (Needs Doc) and QA (Needs QA)?
[x] Does the Jira ticket link to the proper milestone (Fix Version field)?

Tests

[ ] Is an E2E test/test case added for the new feature/change?
[ ] Are unit tests added where appropriate?

Config/Logging/Testability

[x] Are all needed new/changed options added to default YAML files?
[x] Did we add proper logging messages for operator actions?
[x] Did we ensure compatibility with the previous version or cluster upgrade process?
[x] Does the change support oldest and newest supported PS version?
[x] Does the change support oldest and newest supported Kubernetes version?

Test name
Status

version-service
passed

async-ignore-annotations
passed

auto-config
passed

config
passed

config-router
passed

demand-backup
passed

gr-demand-backup
passed

gr-demand-backup-haproxy
passed

gr-finalizer
passed

gr-haproxy
passed

gr-ignore-annotations
passed

gr-init-deploy
passed

gr-one-pod
passed

gr-recreate
passed

gr-scaling
passed

gr-security-context
passed

gr-self-healing
passed

gr-tls-cert-manager
passed

gr-users
passed

haproxy
passed

init-deploy
passed

limits
passed

monitoring
passed

one-pod
passed

operator-self-healing
passed

recreate
passed

scaling
passed

service-per-pod
passed

sidecars
passed

smart-update
passed

tls-cert-manager
passed

users
passed

We run 32 out of 32

commit: https://github.com/percona/percona-server-mysql-operator/pull/717/commits/70c481f62384dd92f47a1121a11f6f014016a9a3
image: perconalab/percona-server-mysql-operator:PR-717-70c481f6

Test name
Status

version-service
passed

async-ignore-annotations
passed

auto-config
passed

config
passed

config-router
passed

demand-backup
passed

gr-demand-backup
passed

gr-demand-backup-haproxy
passed

gr-finalizer
passed

gr-haproxy
passed

gr-ignore-annotations
passed

gr-init-deploy
passed

gr-one-pod
passed

gr-recreate
passed

gr-scaling
passed

gr-security-context
passed

gr-self-healing
passed

gr-tls-cert-manager
passed

gr-users
passed

haproxy
passed

init-deploy
passed

limits
passed

monitoring
passed

one-pod
passed

operator-self-healing
passed

recreate
passed

scaling
passed

service-per-pod
passed

sidecars
passed

smart-update
passed

tls-cert-manager
passed

users
passed

We run 32 out of 32

commit: https://github.com/percona/percona-server-mysql-operator/pull/717/commits/c6adaeb2ae89b382c08362251e8d84a4c0d51172
image: perconalab/percona-server-mysql-operator:PR-717-c6adaeb2


.NET Core 2 Preview - TypeLoadException about AuthenticationOptions (changes from Microsoft.AspNetCore.Authentication <IP_ADDRESS> to <IP_ADDRESS>)

System Information (Required)

SDK language: C#
SDK version: 3.6.0-alpha
Development environment - localhost
Runtime:  .NET Core 2.0.0-preview1-005977

Issue Description
The assembly Microsoft.Bot.Connector.AspNetCore, Version=<IP_ADDRESS> has a reference to Microsoft.AspNetCore.Authentication, Version=<IP_ADDRESS>.
At new version Microsoft.AspNetCore.Authentication, Version=<IP_ADDRESS> the class Microsoft.AspNetCore.Builder.AuthenticationOptions does not exists anymore.
Example Code
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
	if (env.IsDevelopment())
	{
		app.UseDeveloperExceptionPage();
	}

	ICredentialProvider botframeworkCredentialProvider = app.ApplicationServices.GetRequiredService<ICredentialProvider>();
	app.UseBotAuthentication(botframeworkCredentialProvider);

	app.UseMvc();
}

TypeLoadException  exception occured when call UseBotAuthentication extension.
System.TypeLoadException occurred
  HResult=0x80131522
  Message=Could not load type 'Microsoft.AspNetCore.Builder.AuthenticationOptions' from assembly 'Microsoft.AspNetCore.Authentication, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60'.
  Source=<Cannot evaluate the exception source>
  StackTrace:
   at Microsoft.Bot.Connector.BotAuthenticationAppBuilderExtensions.UseBotAuthentication(IApplicationBuilder app, ICredentialProvider credentialProvider)
   at Ebix.Wbot.API.Startup.Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) in C:\_dev\WDEV\wbot\src2\Ebix.Wbot.API\Startup.cs:line 39

It's occurs because Microsoft.Bot.Connector.BotAuthenticationAppBuilderExtensions, Version=<IP_ADDRESS> have the extension method public static IApplicationBuilder UseBotAuthentication(this IApplicationBuilder app, ICredentialProvider credentialProvider) try create an Microsoft.Bot.Connector.BotAuthenticationOptions, Microsoft.Bot.Connector.AspNetCore, Version=<IP_ADDRESS> and this type inherits Microsoft.AspNetCore.Builder.AuthenticationOptions,
Microsoft.AspNetCore.Authentication, <IP_ADDRESS>, inexistent type on <IP_ADDRESS> of  same assembly.

@luizcarlosfaria Can you upgrade BotBuilder nuget package to the latest version (v3.8.x) and let me know if you are still experiencing the issue?

Trying to install this package, i have received a issue about System.IdentityModel.Tokens.Jwt version:
Project uses (>= 5.1.3) , Referenced Library (Microsoft.Bot.Builder) uses <IP_ADDRESS>3061554.
This occurs on same environment.
Version conflict detected for System.IdentityModel.Tokens.Jwt.
 Ebix.Wbot.API (>= 1.0.0)
	-> Microsoft.AspNetCore.All (>= 2.0.0-preview1-final)
		-> Microsoft.AspNetCore.Identity.Service.Abstractions (>= 1.0.0-preview1-final)
			-> Microsoft.IdentityModel.Protocols.OpenIdConnect (>= 2.1.3)
				-> Microsoft.IdentityModel.Protocols (>= 2.1.3)
					-> System.IdentityModel.Tokens.Jwt (>= 5.1.3)
 Ebix.Wbot.API (>= 1.0.0)
	-> Ebix.Wbot.Architecture (>= 1.0.0)
		-> Microsoft.Bot.Builder (>= 3.8.0)
			-> System.IdentityModel.Tokens.Jwt (>= <IP_ADDRESS>3061554).

I migrated the BotConnector.AspNetCore authentication handler to 2.0:
https://gist.github.com/Maarten88/9aacc25368601a2d65b417dc90945440
Use it like this:
services
    .AddAuthentication(...)
    .AddBotAuthentication(
                BotAuthenticationSchemeOptions.AuthenticationScheme, // set to "Bearer"
                configuration["MicrosoftAppCredentials:MicrosoftAppId"],
                configuration["MicrosoftAppCredentials:MicrosoftAppPassword"]
    )

Limitation is that the Scheme must be set to "Bearer", if you have other AddJwtBearer authentication then set those to another scheme.
https://gist.github.com/Maarten88/9aacc25368601a2d65b417dc90945440


Fix #47 by using timer in blur code instead of relatedTarget

Previous use of relatedTarget event property didn't work properly on Chrome (problem observed on v40)

@gjsjohnmurray Thank you for this commit.
BTW, does this really work?
blurTimer.clearTimeout()

I suppose this should be clearTimeout(blurTimer), am I right?

You're correct that I should have written clearTimeout(blurTimer) but now that I look closer at it my "fix" isn't doing what I thought it was, because the bad code never gets called.
I need to do some more debugging. Please hold off merging until you hear from me again.

OK, I think my branch #47 is ready to be merged.

Ok, thank you very much, John. I think everything is ok now.


More v0.6.3 backports

I think this includes the remainder of the non-breaking changes since v0.6.2, with a couple of exceptions:

https://github.com/rust-embedded/cortex-m/pull/240 seemed low-impact but had loads of separate commits to cherry-pick
https://github.com/rust-embedded/cortex-m/pull/220 is I think non-breaking but was quite a substantial change, perhaps I could still include it

I did include https://github.com/rust-embedded/cortex-m/pull/226 which adds a new field to Peripherals, but as I understand it that should be a non-breaking change since it's non-exhaustive.
I've updated the CHANGELOG with all the changes from this PR and the previous #248.

I did include #226 which adds a new field to Peripherals, but as I understand it that should be a non-breaking change since it's non-exhaustive.

I think it's only non-exhaustive on master, not 0.6.x (if not, did I accidentally backport that breaking change?)

Aha, no, I merged the clippy fix (manual_non_exhaustive) but it's still non-exhaustive on 0.6.x. I'll remove #226.

bors r+

Looks like the -Dwarnings in CI is causing all nightlies to fail due to a clippy lint? here.

Looks like the -Dwarnings in CI is causing all nightlies to fail due to a clippy lint? here.

I wonder why it's not failing on stable, too.

The lint doesn't seem quite right, either, I don't think it's understood what we're doing. I guess let's not worry about it for 0.6.x and solve it in master which presumably has the same issue?

It can't see through the #[cfg] gate.
We have that in a few HAL impls, too: If you have a match and all arms except for 1 or 2 are cfg-gated it'll recommend an if instead. Unfortunately you cannot #[cfg] gate an if expression or we'd have switched over to that instead...


[FEATURE] Control using the keyboard / accessibility

Is your feature request related to a problem? Please describe.
I have seen that you have already dealt with the topic of accessibility in (https://github.com/sdatkinson/NeuralAmpModelerPlugin/issues/124). Even though I'm not visually impaired and don't rely on a screen reader, I love it when software can also be operated using the keyboard.
Describe the solution you'd like
It would be desirable if all knobs, switches and buttons could be controlled with keyboard commands.
Describe alternatives you've considered
Additional context

Can this be done via MIDI? (Key triggers MIDI command, MIDI command is heard by the plug-in and does what you want)


Glyph rendering optimization using variable length argument expansion

Background
This PR is motivated by the performance characteristics discovered while developing the quadmesh glyph in https://github.com/pyviz/datashader/pull/779. In particular, see the discussion of fixed vs variable length arguments in https://github.com/pyviz/datashader/pull/779#issuecomment-521248206.
The key insight here is that during glyph rendering, the numba optimization of the rendering functions can result in substantially faster code if the input functions contain a fixed number of arguments rather than a variable length argument (e.g. *args).
In the glyph rendering code, this variable length argument is usually called *aggs_and_cols and it contains a list of the aggregate arrays that are being populated and the columns that are used as input to the reduction calculations.  The length of this argument varies depending on the chosen reduction operation, but the length will remain the same for every render call for a given operation.
Implementation
expand_varargs
This PR adds a datashader.macros module that provides the expand_varargs decorator builder.  This decorator builder inputs the desired number of arguments to expand to, and returns a function decorator.  This function decorator will transform the AST of the wrapped function to replace variable length arguments with a fixed number of arguments/variables.
This only makes sense for cases where the only thing the function does with the variable length argument is to pass it along to other functions in star-form.  For example, calling...
@expand_varargs(2)
def example_fn(a, b, *args):
    print(a, b)
    other_fn(a, b, *args)

would transform the function AST into a function equivalent to
def example_fn(a, b, _0, _1):
    print(a, b)
    other_fn(a, b, _0, _1)

If the variable length argument is used in any other context then an error is raised. For example, an error will be raised if the example_fn looks inside args.
@expand_varargs(2)
def example_fn(a, b, *args):
    print(a, b, args[0])
    other_fn(a, b, *args)

:arrow_up: would raise a ValueError.
The whole point of doing this is to transform the input function before it is passed to numba's jit compilation decorator.
Glyph.expand_aggs_and_cols
A new expand_aggs_and_cols method has been added to the Glyph baseclass. This method inputs the append function that will perform the reduction operation, and returns an expand_varargs decorator configured to expand the *aggs_and_cols argument to the correct number of fixed arguments.
Glyph updates
The new decorator has been added to all applicable rendering functions in the points, line, and area glyphs.  I think Trimesh could also benefit from this technique, but it doesn't quite follow the same pattern of passing around the *aggs_and_cols argument, so that will take some refactoring.  raster doesn't currently use the same glyph/aggregation framework.
Performance results
Here are some benchmark comparisons of this branch with master.
Notebooks:

Before: https://anaconda.org/jonmmease/expand_varargs_before/notebook
After: https://anaconda.org/jonmmease/expand_varargs_after/notebook

I tested points, line, and area glyphs using the count, sum, mean, and std reduction operations.  Here is a plot of the results:

Note that the y-axis is time in seconds.
Notice how the improvements grow more significant as the reduction operation get more complex. This corresponds to the *aggs_and_cols argument getting longer.
The speedups for the coming quadmesh glyph should be even more significant than the gains for the area glyph above.
@jbednar @philippjfr

Update: now the Glyph.expand_aggs_and_cols method will return an identity decorator if the NUMBA_DISABLE_JIT environnmet variable is set.
This environment variable is used by numba to disable JIT compilation.  With this change, functions that are wrapped with both @jit and @expand_varargs will remain unchanged when NUMBA_DISABLE_JIT is set.  This makes it possible to debug these functions with a graphical debugger.

@philippjfr this is ready to go apart from that one Travis test flaking out again.  Could you restart it?

all green. merging


Allow building with transformers-0.6.* (GHC 9.6)

GHC 9.6.1 bundles transformers-<IP_ADDRESS>.

I haven't cut an entirely new version, but I've done a revision and reflected this change on Hackage, so you should be able to build <IP_ADDRESS> with transformers-0.6.* now.

Thanks!


ci: temporarily turn off PyPi release upon GitHub release

Temporary change while working on PR Streamline release process #239.
While testing the action to make a GitHub release, I expect that we will be releasing on GitHub multiple times. We don't want each of these test releases to trigger a PyPi release.
When tests are finished, we can either delete all the GitHub test releases, or do a single new release to PyPi which bypasses all intermediate releases.

@psomhorst , I had already asked for a review here, but will bypass that so that I can start testing things already


Correct check-snapshots & handle paths with spaces

When I went to run the tests, my console was flooded with Python stack traces during the snapshot tests from an error stating that unified_diff expects strings. It turns out that the (new?) default behaviour of subprocess.check_output is to return a bytes object instead of a string. Then, even if the contents were equal, the objects would always be different when compared, which would then lead to the bad unified_diff call.
I also added a fix for executing tests from a build folder that contains spaces. I'm not sure if it would be better to fix this on the command itself (in the CMake script), or just handle it in the LIT configuration.
As a side note, I noticed the GitHub workflow file sets up Python 2.7. Shouldn't it be bumped up to Python 3? (I was running the tests using Python 3.10 btw)

Yes you were right, the CI Python needed to be bumped to Python 3 as well. Thanks!


[Proposal] Trim Extension

This is an incomplete PR to propose a new extension method Trim. The same can be achieved with an inefficient combination of SkipWhile, Skip, Reverse and Count. This is more flexible and efficient. It can also provide a more efficient way than the commonly used .Trim method for strings, which has to allocate a whole new string.
Looking for any feedback before adding tests, generating the public/shipped API and so forth.

I'm going to assume that this has been abandoned based on my earlier comment, but happy to re-open if there's follow-up and arguments for pursuing this further.


minio chart version update

Helm improvements in minio chart for example additionalLabels and additionalAnnotations added. Image tag update.

I don't believe the chart.lock is required.
Can you also please update the changelog and the chart version?

Sorry, I've had to argue with the build, which meant you've lost your 1.4.14 space. Can you please merge in main, bump the version, and don't forget the changelog please... then I'll merge it in.

Hi there. I'll close off this PR in a few weeks because it has sat dormant for some time.


feat[ibmsm]: Add support for service_credentials secret type

Description
Add support for service_credentials secret type.
Checklist
Please make sure that your PR fulfills the following requirements:

[x] Reviewed the guidelines for contributing to this repository
[x] The commit message follows the Conventional Commits Guidelines.
[x] Tests for the changes have been updated
[x] Are you adding dependencies? If so, please run go mod tidy -compat=1.21 to ensure only the minimum is pulled in.
[x] Docs have been added / updated
[ ] Optional. My organization is added to USERS.md.

Type of Change

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[x] New tests
[ ] Build/CI related changes
[x] Documentation content changes
[ ] Other (please describe)

Other information

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 73.91%. Comparing base (42a43f0) to head (0f41f6f).
Report is 6 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #629      +/-   ##
==========================================
+ Coverage   72.16%   73.91%   +1.74%
==========================================
  Files          26       26
  Lines        1994     1606     -388
==========================================
- Hits         1439     1187     -252
+ Misses        458      314     -144
- Partials       97      105       +8

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

@werne2j could you please take a look at this PR? thanks.

@werne2j updated now

@werne2j one more ping :)

@werne2j one more ping

@werne2j and one more ping.

@jkayani maybe you can merge?

@jgawor looks like there are conflicts

@werne2j I just updated the PR.

@werne2j one more ping

@werne2j one more ping

@werne2j @jkayani one more ping


Compound google.protobuf.Any messages

This PR adds a cross-platform way of representing lists, maps and function call arguments.
The google.protobuf.Any message is useful for representing values of any type.  There are built-in protobuf wrappers for boolean values, integer values, string values and byte arrays (wrappers.proto), along with timestamps and durations.
Unfortunately there aren't a standard set of built-in wrappers for compound data structures made up of google.protobuf.Any. The messages from struct.proto come close, however the provided Struct and List messages carry a google.protobuf.Value which is constrained to JSON-like values (compared to google.protobuf.Any which can carry any protobuf message).
This PR provides these missing wrappers for google.protobuf.Any.

We're going to take a different approach.