systemd's service unit should set LimitNOFILE to 1048576 like docker does

Description
I've just checked the limit on the max number of opened files for the containerd process on recent version of Container Optimized OS and saw that the process has the limit set to 65536.
I believe it should be set to 1048576 like docker does right now: https://github.com/moby/moby/commit/428d7337e808ec5f4dba1b0aceda002f295cc320
Steps to reproduce the issue:
$ cat /usr/lib/systemd/system/containerd.service | grep LimitNOFILE
LimitNOFILE=infinity
$ systemctl show containerd | grep LimitNOFILE
LimitNOFILE=18446744073709551615
$ cat /proc/$(pgrep containerd | head -1)/limits | grep files
Max open files            65536                65536                files

Describe the results you expected:
$ cat /proc/$(pgrep containerd | head -1)/limits | grep files
Max open files            1048576              1048576              files

Output of containerd --version:
containerd github.com/containerd/containerd 1.2.5 bb71b10fd8f58240ca47fbb579b9d1028eea7c84

I've solved the issue locally by creating a service override for now:
$ cat /etc/systemd/system/containerd.service.d/override.conf
[Service]
LimitNOFILE=1048576
$ systemctl daemon-reload
$ cat /proc/$(pgrep containerd | head -1)/limits | grep files
Max open files            1048576              1048576              files

Does infinity not work anymore?

Looks like nope, it does not. moby/moby@428d733  references https://stackoverflow.com/questions/1212925/on-linux-set-maximum-open-files-to-unlimited-possible/1213069#1213069 which has more info.


Building the tests fails with an ICE on g++ 7.3.1

Just wanted to inform you that is impossible to build the xtl tests on g++ 7.3.1, as that fails with an internal compiler error. I have checked this for both the latest public release (v0.4.4) and the current master branch.
Like all internal compiler errors, this is not your fault, but that of the compiler. Unfortunately, I do not have enough time to allocate in order to build a minimal reproducer and send it to the g++ team for further investigation.
In any case, you may want to add GCC 7.3 to your CI configurations and to add a workaround for this bug to your codebase, as this GCC version is slowly becoming popular (at least in the projects which I work on).
Steps to reproduce:

Get your hands on a GCC 7.3-based system
Clone the xtl repo, checkout the 0.4.4 tag or stay on master
mkdir build && cd build && cmake -DBUILD_TESTS=ON ..
make

Expected outcome:
The tests should build and I should be able to run them.
What actually happens:
After a lot of warnings about unsigned -> signed integer conversions, which are likely unrelated to the issue at hand, the build eventually aborts with this message:
[ 93%] Building CXX object test/CMakeFiles/test_xtl.dir/test_xvariant.cpp.o
In file included from /home/hadrien/Bureau/Programmation/xtl/include/xtl/xvariant.hpp:17:0,
                 from /home/hadrien/Bureau/Programmation/xtl/test/test_xvariant.cpp:11:
/home/hadrien/Bureau/Programmation/xtl/include/xtl/xvariant_impl.hpp: In substitution of     ‘template<long unsigned int I, class ... Ts> using type_pack_element_t = typename     mpark::lib::type_pack_element_impl::type::type [with long unsigned int I = I; Ts = {int, float}]    ’:
/home/hadrien/Bureau/Programmation/xtl/include/xtl/xvariant_impl.hpp:1975:15:   required by     substitution of ‘template<class Arg, typename std::enable_if<(! std::is_same<typename std::decay    <_Tp>::type, mpark::variant<int, float> >::value), int>::type <anonymous>, long unsigned int I,     class T, typename std::enable_if<(std::is_assignable<T&, Arg>::value && std::is_constructible<    T, Arg>::value), int>::type <anonymous> > mpark::variant<int, float>& mpark::variant<int, float>    ::operator=<Arg, <enumerator>, I, T, <enumerator> >(Arg&&) [with Arg = mpark::variant<int, float    >&; typename std::enable_if<(! std::is_same<typename std::decay<_Tp>::type, mpark::variant<int,     float> >::value), int>::type <anonymous> = <missing>; long unsigned int I = <missing>; T = <    missing>; typename std::enable_if<(std::is_assignable<T&, Arg>::value && std::is_constructible<    T, Arg>::value), int>::type <anonymous> = <missing>]’
/home/hadrien/Bureau/Programmation/xtl/test/test_xvariant.cpp:28:13:   required from here
/home/hadrien/Bureau/Programmation/xtl/include/xtl/xvariant_impl.hpp:1975:15: internal compiler     error: unexpected expression ‘I’ of kind template_parm_index
               typename T = lib::type_pack_element_t<I, Ts...>,
               ^~~~~~~~
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugs.opensuse.org/> for instructions.
make[2]: *** [test/CMakeFiles/test_xtl.dir/build.make:375: test/CMakeFiles/test_xtl.dir/test_    xvariant.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:119: test/CMakeFiles/test_xtl.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

confirmed, i can reproduce on Fedora 27

😒

Found a couple of instances of similar ICE for gcc 7.3
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=892719
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84785

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84785

The gcc bug listed above looks very very similar with the type_pack_element_t, and it appears to have been released upstream.

I think we can close this as it was a compiler bug, right?


Error in manual, wrong path on piranhactl

In the usage part of the manual, piranhactl is referenced in etc, rather than in bin.

thanks!

v1.1.3 is released with this fix.


Init CVCalendar with a specific day in current month

I have a problem when i'm instantiate cvcalendar 2 times or more . After the second time I lost the top marker on current day and didSelectDayView() is not called
Overall I can't instantiate cvcalendar with top marker on specific day in the same visible month. Is it possible?
toggleMonthViewWithDate() works only if I'm not in the current month. It will be great if we can select a day by code with a date in parameter

Hello @FabIcar,
The issue you've reported is in the TODO list of things coming in the upcoming release. Check out #28 thread to find more details to come. As for returning to current day it basically works only if the presented week or month view is not equal to the current one. Actually I can implement toggling to current date if you're not selecting one if it makes a sense for you. So let me know.
Regards,
Eugene

I Think the only feature I need at this moment is to select a specific day by code :)
Good job by the way


[typo] syntax looks wrong

Fixed <style> syntax according to the changes recommended.
From <style> p { color: red; } </style> to <style>{` p { color: red; } `}</style>
Here's the image that shows the changes. Thank you!

Fixed in https://github.com/reactjs/react.dev/pull/6641


Don't remember install options

Work in progress for https://github.com/bundler/bundler-features/issues/26 here. But with some failing specs. Would appreciate a quick review.

I would be happy to take a stab at this, provided three's still interest in the feature.
I tried rebasing @andreychernih's branch, but it's too far away in the past, so I'd have to start from scratch (using his work as a guide)


Erinnerung an einen Tagebuch-Eintrag

Feature description

Problem and motivation

Is this something you're interested in working on

Hey @Blausteinstaub 👋
This seems like a duplicate of #294 to me, what do you think?

Oh... Yes, Sorry


HDR missing (Nexus 6P)

Running CM13 with MicroG on a Nexus 6P. Unfortunately, no camera app seems to offer me an HDR option, as if the device doesn't know that it's capable of HDR. HDR seems to be embedded in gapps on the 6P (not the case on other phone models apparently). Is it at all possible to enable this functionality in MicroG somehow?

I have the same problem with MicroG running on Omnirom.


Contract query returns royalty: null

When creating a new contract initialization is successful but when querying collection_info, royalty is null.
2458eb22c91cb8856e09505875ba485ed1688c42 refactors the royalty info state in several places, could this have caused a bug?

@jamesmurdza How are you querying? Mind pasting the query?

@jamesmurdza The query may have changed since you used it last. Here's the updated one: https://github.com/public-awesome/stargaze-contracts/blob/main/contracts/sg721/src/contract.rs#L202

await client.queryContractSmart(addr, { collection_info: {} });
OK, I don't get royalty: null if I query a contract I created on Friday. So it must be in the contract itself.
Is it possible that this could be from validation failure? Nothing changed in my config except for the lines that also changed in the example config.

Do you know what codeId you used for sg721? And do you happen to have the minter contract version number when it was instantiated?

The one that is giving royalty: null is from earlier today, so 76/77. The previous one I tried (which worked), would have been 68/69.

Tooling wasn't updated to work w/ royalty updates. Fixed by https://github.com/public-awesome/stargaze-tools/pull/128.

Thank you Shane!


fix: close the compressed readers after processing metadata

From the documentation:

It is the caller's responsibility to call Close on the ReadCloser when done.

Should only affect compressed requests.

:green_heart: Build Succeeded

the below badges are clickable and redirect to their specific view in the CI or DOCS

Expand to view the summary

Build stats

Start Time: 2022-08-04T04:36:53.803+0000

Duration: 8 min 36 sec

Test stats :test_tube:

Test
Results

Failed
0

Passed
98

Skipped
32

Total
130

:robot: GitHub comments
To re-run your PR in the CI, just comment with:

/test : Re-trigger the build.

run elasticsearch-ci/docs : Re-trigger the docs validation. (use unformatted text in the comment!)


Fixed angular element children selector usage

In jqLite, .children() selector is not able to take an selector argument. Caused by this error, the directive is removing all children, if no full jQuery is used.

Broken tests also broken in develop. ;)

@apinnecke thank you for the PR, I'm fairly new to managing the project and we are slowly starting to ramp back up and reviewing some neglected PRs, is there any chance you could write a test script for the change? It would be a huge help :)

Unfortunately I'm very much out of time these days. Ya, probably could write some tests, but can't tell when that will be. Plus: This change is already covered by the original tests AFAIK, so maybe these are enough? Has to be verified indeed.

@apinnecke Do you have some time to give some love to this PR?

@apinnecke thank you for the PR I finally got to it, I can't merge due to the number of changes since but I added the change to sf-schema.directive.js so thank you again for your help.


Osiris got detected...

some of my friends (alot) happened to get vac banned using osiris
i didn't get it cause of vac bypass loader
we can clearly see the vac wave and the comments on cheater.fun of people getting vac banned

lots of p2cs got "semi-detected", seems more likely vac is detecting a specific feature than any. though, Osiris is open source so it's always a possibility. use VAC bypass by Daniel when you play for best safety

Compile vac bypass loader, remove steam from startup on pc and add the compile vac bypass loader to startup.

Compile vac bypass loader, remove steam from startup on pc and add the compile vac bypass loader to startup.

you know he is talking about his friends right?

No idea, what is detected. Just be safe and dont use one your main

https://i.imgur.com/tOHqIkz.png
I got hit by it too, been using osiris with some changed function names, deleted comments, etc. Probablyx a feature, not the entire source is detected.

cheater.fun is most certainly not a reliable source. the people on there probably have detected injectors or paste siged features.
i doubt Osiris is detected, if it were then my accounts would be VAC banned.
hint: VAC checks your system USN journels for the system partition. this means dont put anything on your C:/ drive. either make a different partition or use a different drive.

I got hit by it too, been using osiris with some changed function names, deleted comments, etc.

changing function names does literally nothing. it doesn't even change the hash like junk code does (which is also useless).
deleting comments also does literally nothing. they are removed by the compiler
please learn what a compiler does and what machine code is

Probably a feature, not the entire source is detected.

or the hooking method. or the hooks. or the use of interfacs.

lmao, my paste is UD more then 1 year

I've been using Osiris with MemJect for 1 year and never got banned.

Osiris is undetected.
I and five of my friends share the same injector and never got banned.
I've changed a few text lines inside our copy of Osiris and added some small fixes or edits, nothing more.
If you get banned, the first thing you should do is to check whether the injector you've ran is detected or not.
Note that if you ran multiple injectors, in the last 30 or even 90 days, no idea, you probably don't know which one caused the ban.

changing function names does literally nothing. it doesn't even change the hash like junk code does (which is also useless).
I have a basic understanding of the compiler, I just didn't think it through. Thanks for pointing it out!
Also, thanks for the tip with the C drive.

If you get banned, the first thing you should do is to check whether the injector you've ran is detected or not.

This is the injector I use.

If you get banned, the first thing you should do is to check whether the injector you've ran is detected or not.

This is the injector I use.

That injector hasn't been updated in 2 years. I wouldn't trust it in your situation. It is probably detected. In addition, since it seems like you have very little knowledge and only "have a basic understanding of the compiler" then I don't think you updated it either.

I use GH injector (open spurce) no ban yet. With vac bypass

lots of p2cs got "semi-detected", seems more likely vac is detecting a specific feature than any. though, Osiris is open source so it's always a possibility. use VAC bypass by Daniel when you play for best safety, as you already do

this is a good and helpful assumption, there are many indications, even if nobody wants to admit it
I know this issue is closed. But i want to share this with you mates:
https://github.com/danielkrupinski/Osiris/issues/1268#issuecomment-601613898

I feel like it's been detected, but not insta ban, they're just flagging accounts and putting them in low trust for delayed ban. For the past week I've been in red trust factor even tho I do everything I can not to be and rarely get called out as I play very legit. Nothing I do is getting me out of red trust

I feel like it's been detected, but not insta ban, they're just flagging accounts and putting them in low trust for delayed ban. For the past week I've been in red trust factor even tho I do everything I can not to be and rarely get called out as I play very legit. Nothing I do is getting me out of red trust

At least one person who understood what I wanted to tell everyone here, thank you!
I have some accounts that do exactly the same and I know when the ban will happen. i hope i am wrong with my guesses. trade everything away from these accounts, the delay is 2-8 weeks.


Completely deprecate page_props() in favor of API's native search

Page props can now finally be completely deprecated. The project will no longer need to do any web scraping, everything can now be retrieved via api endpoints.

Will be closed by 2.0 release.


Add permission to registered users

Is there a possibility that when a user registers on the website that he gets an additional permission in the game?

See #98


shelf: change inline links in README away from api.dartlang.org

This issue was originally filed by @sethladd

The code links in the shelf README point to api.dartlang.org. The package API docs hosting will be disabled from api.dartlang.org in favor of dartdocs.org.
We assume redirects will be setup, but in the meantime, we can point directly to docs in dartdocs.org

This issue has been moved to dart-lang/shelf#36.


MSBuild Move task creates folders

This came up in conversation internally, and it should be documented that Move creates folders.

@rainersigwald,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/msbuild/move-task.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Thanks for making the addition--we appreciate it.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/msbuild/move-task.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Async code in UseBefore (express). Return of action is executed before middleware executed.

I'm trying to get passport and passport-local working, but always getting
0|server   | Error: Can't set headers after they are sent.

I have this async function in passport LocalStrategy

And this in controller:

For anybody experiencing something odd like this.
It's double @Post() decorator. I had exact same @Post("/login") in another action. It broke something.
Sooo... Issue resolved :D


Add BAS

@Tallerik I have to close the request without merging. It includes changes in too many files due to some error, I believe. Please ensure you are familiar with this repository rules located at the bottom of this page and submit a new request with correct information. Thank you for the understanding!


cubeb-core: Handle cubeb_init failure.

ffi::cubeb_init missing try_call! macro.

This change is

This appears to fix the issue reported in Bug 1442640 and Bug 1441596.
Tested locally by disabling pulse audio to cause pa_context_connect to fail.


Cleanup - tests

Codecov Report

Merging #459 (9505b42) into main (f337a6a) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #459   +/-   ##
=======================================
  Coverage   90.52%   90.52%
=======================================
  Files          23       23
  Lines        9926     9926
=======================================
  Hits         8986     8986
  Misses        940      940

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


Can you update source-map to improve performance?

https://github.com/mozilla/source-map/blob/master/CHANGELOG.md
SourceMapConsumer now uses WebAssembly, which is much faster

Absolutely!

I ran into an issue with this and submitted a PR to source-map to fix it https://github.com/mozilla/source-map/pull/330 — will try again once that gets published.

Sweet, thanks for the heads up! I'll take a look soon.

Just published<EMAIL_ADDRESS>with the new source-map 🎉

I decided to revert this change. It broke some people's builds already, and would probably break some more in the coming weeks. I don't think the perf improvements from wasm are worth the time and effort required from the people this affects. Maybe I'll try again in a while.


Add a missing end tag in Configuration documentation

It got lost in the rebase/merging of two commits affecting the same file.

James beat me to it in #2090.


Support a default set of prefixes

When I try to write queries in https://qlever.cs.uni-freiburg.de/wikidata/, it's really annoying because I have to manually look up all the prefixes I need. It doesn't even provide a list of common prefixes I can pick from, I have to go to other sites to find out what they should be.
This query, for example, gives the error Invalid SPARQL query: Prefix skos was not registered using a PREFIX declaration.
https://query.wikidata.org/ on the other hand automatically includes a default set of prefixes which covers the vast majority of queries I write, which makes it much easier to use.
Some people have claimed that QLever does automatically add prefixes but it has never done that for me.

@nikkiwd The QLever UI automatically adds all the prefixes in all situations, whether you are typing, accepting a suggestion, or copying and pasting a query without prefixes from somewhere else. Again, the only reason that happened for your query is because the SELECT is not all uppercase. But this is one issue and not many so I am closing this one.


UP-4694 added Ldap Query escape function to prevent LDAP Injection at…

…tack.  Route to James Wennmacher for review.

I would appreciate it if someone else, especially @cousquer or someone in France who has more experience with international character sets would comment on whether the LDAP search filter escaping is sufficient.  I'm pretty sure if we add escaping of characters above 0x7F that it accommodates international needs but a 2nd opinion is welcome.
See inline comments to the PR, along with section 4 of https://docs.ldap.com/specs/rfc4515.txt where it states

For AssertionValues that contain UTF-8 character data, each octet of
the character to be escaped is replaced by a backslash and two hex
digits, which form a single octet in the code of the character.  For
example, the filter checking whether the "cn" attribute contained a
value with the character "" anywhere in it would be represented as
"(cn=\2a*)".

As indicated by the  rule, implementations MUST escape
all octets greater than 0x7F that are not part of a valid UTF-8
encoding sequence when they generate a string representation of a
search filter.  Implementations SHOULD accept as input strings that
are not valid UTF-8 strings.  This is necessary because RFC 2254 did
not clearly define the term "string representation" (and in
particular did not mention that the string representation of an LDAP
search filter is a string of UTF-8-encoded Unicode characters).

Coverage increased (+0.002%) to 22.878% when pulling 195896e41f49eca09519de428db05455849ef5ec on mgillian:UP-4694 into c8a07a9fb50fb2b986cf6131a29b930afad3c6a8 on Jasig:master.

@jameswennmacher I will have a look at the informations whether the LDAP search filter escaping is enough sufficient. I will contact the relevant people about it.
In french, we've got this kind of UTF-8 characters (look at the first one : "œ" : some people in France will enter indifferently  whether "œ" whether "oe" ... )
œuf, Véronique, à, bâtir,

@jameswennmacher, @mgillian,
The documentation that you mention, said:

implementations MUST escape all octets greater than 0x7F that are not part of a valid UTF-8 encoding sequence

So I do not think we should make escaping on accents, because the search string is supposed to be in utf8 ...
PHP now has its LDAP escaping function (http://php.net/manual/en/function.ldap-escape.php), there should have one in spring-ldap (http://projects.spring.io/spring-ldap/)
The only thing that we have found for java is this:

LDAP Injection Prevention Cheat Sheet (https://www.owasp.org/index.php/LDAP_Injection_Prevention_Cheat_Sheet )

Preventing LDAP Injection in Java (https://www.owasp.org/index.php/Preventing_LDAP_Injection_in_Java ) (outdated but looks like mgillian 's code)

Hope, it helps you.

http://docs.spring.io/spring-ldap/docs/2.1.0.RELEASE/reference/#use-spring-security

In addition to simplifying building of complex search parameters, the LdapQueryBuilder and its associated classes also provide proper escaping of any unsafe characters in search filters. This prevents "ldap injection", where a user might use such characters to inject unwanted operations into your LDAP operations.

http://docs.spring.io/spring-ldap/docs/current/reference/
see for more details :
http://docs.spring.io/spring-ldap/docs/current/reference/#query-builder-advanced

Closing.   See:  https://github.com/Jasig/uPortal/pull/699


[Beta 2.0.0] Updating locale 2, updates locale 1 and 2

I have two feeds with data in EN and in DE, they represent the same content in different language.
Both feeds import strategy are set to update.
The unique identifier is an ID (int).

When importing EN, CraftCMS fills both locale with EN.
When importing DE, it updates both locale with DE.

However, for existing entries, only the specified locale's content should be updated, leaving other locale content alone.

I've actually done some testing on this, and its to duplicate how Craft natively handles locale content. For instance - create a new entry (as you normally would) and enter content for one locale. Upon save, you'll see all other locales have the same content.
Feed Me does the same thing - if an entry doesn't exist, it creates the content for all locales. Then any subsequent local-targeted imports only update the locale its targeting. I've just tested this myself - the first feed creates the entry, putting content in all locales. The second feed, targeted to one locale, only updates content for that locale.

@engram-design The problem is that the second feed updates the content for both locales.
Demonstration : http://quick.as/ovJkIlwDj

Yeah, you're right, thanks for the video, will investigate.

@engram-design Any chance you might have the time to look at this issue?

Bump - marking as priority.

This has been implemented as of Feed Me 2.0 beta 1.


Enum codegen is space-inefficient

In a representative example (published at @yowasp/yosys), the switch for converting errno is generated 10 times, which in total occupy 34 kB of source code, and 27% of the output file. This seems very wasteful.

Yes, an approach here is needed. There is a tracking issue for this in https://github.com/bytecodealliance/jco/issues/41 as a kind of post-parsing Babelesque compression. I agree these WASI error switches are exactly the target for that work.

Ah, got it. Feel free to close in favor of #41.

Continuing to track in #41.


[Bug Report] Custom theme generated missing new/updated CSS for 2.13.0

Element UI version
2.13.0
OS/Browsers version
OSX Chrome, Firefox, IE, Opera, Safari
Vue version
2.6.10
Reproduction Link
https://codesandbox.io/s/vue-sf8hu?fontsize=14&hidenavigation=1&theme=dark
Steps to reproduce
Generate a custom theme from https://element.eleme.io/#/en-US/theme, use that file with latest 2.13.0 file.  You will notice the drawer class has been changed from el-dialog__wrapper to el-drawer__wrapper but that class is not generated in the custom theme CSS file
What is Expected?
Drawer to show
What is actually happening?
Drawer does not show

I have the same problem

add style:
.el-drawer__wrapper {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
overflow: hidden;
margin: 0;
}


chore: Migrate FaqListPresenter to ViewModel

Fixes #1658
Checklist:

[ ] I have checked for PMD and check-style issues
[x] I have read the Contribution & Best practices Guide and my PR follows them.
[ ] My branch is up-to-date with the Upstream development branch.

Changes:
Converted FaqListPresenter to ViewModel.
Unit tests have to be added.

@iamareebjamal Is there some issue with Mergeable or is it not set up properly? I've added WIP in the title but still it's passing.

Yes, it's not very accurate

@iamareebjamal Ready for review.


[SPARK-43806] Add awesome-spark-docker.md

What changes were proposed in this pull request?
Add links to more related images and dockerfile reference.
Why are the changes needed?
Something we talked about in "Spark on Kube Coffe Chats“[1] to add links to more related images and dockerfile reference. Init with [2].
[1] https://lists.apache.org/thread/26gpmlhqhk5cp2fhtzrpl5f61p8jc551
[2] https://github.com/awesome-spark/awesome-spark/blob/main/README.md#docker-images
Does this PR introduce any user-facing change?
Doc only
How was this patch tested?
No

@HyukjinKwon Thanks, merged.


Suggestion: change also background

It would be nice if also the desktop wall paper could change, based on two different choices: one for light and one for dark.
Is it possible?

There are existing tools which allow you to create system-like dynamic wallpapers that respond to time of day or light/dark mode. I quite like wallpapper myself.


RADIOLIB_ERR_CRC_MISMATCH / 0dBm / 0.00dB / 0Hz

CRC errors in Syslog.
I noticed that the data decoded with a CRC error are now stripped of from the syslog.
In the past I could understand and do some analysis on why a crc error was generated, now I just see the message that a crc error occurs but cannot see the original data.
example:
before:  "May  6 19:09:50	<IP_ADDRESS>	1 - IW2EJH-11 CA2RXU_LoRa_iGate_1.3 - - - CRC / CRC-ERROR / øIW2MUK-9;>APJTT1,WIDE1-1:>LoRa_APRS_Tracker 2023.12.27éþ3¥ / -140dBm / -19.25dB / 433Hz"
now: "May 27 15:05:09	<IP_ADDRESS>	1 - IW2EJH-11 CA2RXU_LoRa_iGate_1.3 - - - Rx / RADIOLIB_ERR_CRC_MISMATCH / 0dBm / 0.00dB / 0Hz"
As you can notice, before I could know the problem was a low signal (-140dBm) and I could correlate it to a Ham ID (even if this id is corrupted) looking at other close reports in the syslog. Now, I just know there is an error but I do not know if it is a disturb, a week signal or a rx error.
Would it be possible to get the same info as before in the syslog? or eventually have a switch to enable/disable the data we get for debug?
Thanks

just checked, latest mod to syslog outputs the CRC error message and SNR RSSI and Freq error as requested, so no mod is needed

just checked, latest mod to syslog outputs the CRC error message and SNR RSSI and Freq error as requested, so no mod is needed

Do you say the output to syslog will be back as in the past?
I know the crc mismatch is rubbish but in my case it was usefull most of the time, only one or two characters are wrong, so seeing it in the syslog allow me to understand the source of these CRC errors.

CRC erros are that packets could not be validated as 100% correct.... so 1 , 2 or more wrong characters wont add much info as it would SRRI and SNR or FreqError, right?

For what I think, syslog is a debug tool, so more info we get better it is, we may or may not use a packet with crc errors, if we get it in the log, we may understand something or nothing. If we got nothing in the log, we will never be able to debug anything. If we get SRRI and SNR is already something we can use.
This is my personal opinion, other may think differently

the latest on github has:
CRC Warning, packet (with faulty characters) , SRRI, SNR, Freq Error and all.
please use the latest and test

Great, just tested and I can see everything
Thanks


Inconsistent heading styles

The styles of the various heading levels aren't consistent with what level they represent. I noticed this on the Async in F# article, where the level 3 heading A Note on Threads looks much larger and bolder than the level 2 heading How to Add Parallelism to Async Code:

The overall structure looks like this:

So, Level 3 looks significantly larger than Level2 and Level 2 and Level 4 have the same size.
This should be fixed, so that higher level headings clearly look more important.

@bradygaster is this tracked internally?

I ran into the same issue last week while writing a new topic and @blackdwarf pointed out it was a CSS problem with the site.

The heading structure on the new site looks fine:


[Question] How to get density maps from input image?

Hello @LoraLinH :)
Thank you for sharing the code for the 'Boosting Crowd Counting via Multifaceted Attention' paper.
I'm intended to use it for initial step in a crowd forecasting project.
I was able to execute test.py file and see the mae and mse results 😊
Now, I want to be able to given an input image get its density map. Checking the paper I think it's an output of the Regression Decoder, but I couldn't found it in the code, so would you please point me how to achieve this?
Big thank you in advance.

You can obtain the density map by 'output = model(input)[0]' in the test.py.
Morales Quispe, Marcela @.***> 于2023年5月26日周五 02:07写道：

Hello @LoraLinH https://github.com/LoraLinH :)
Thank you for sharing the code for the 'Boosting Crowd Counting via
Multifaceted Attention' paper.
I'm intended to use it for initial step in a crowd forecasting project.
I was able to execute test.py file and see the mae and mse results 😊
Now, I want to be able to given an input image get its density map.
Checking the paper I think it's an output of the Regression Decoder, but I
couldn't found it in the code, so would you please point me how to achieve
this?
Big thank you in advance.
—
Reply to this email directly, view it on GitHub
https://github.com/LoraLinH/Boosting-Crowd-Counting-via-Multifaceted-Attention/issues/11,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVYQMFWDPBXXSHOFFSUYICDXH6NVXANCNFSM6AAAAAAYPGCZ2U
.
You are receiving this because you were mentioned.Message ID:
<LoraLinH/Boosting-Crowd-Counting-via-Multifaceted-Attention/issues/11@
github.com>

Hello @LoraLinH, thank you for your reply.
I've manage to write such output into an image for the very first iteration, this output is expected right?

Code to generate the image:
outputs = model(inputs)[0] # a tensor of [1,1,117,156] and values between 0-1
outImg = outputs[0][0].detach().cpu().numpy()
cv2.imwrite("test.png", outImg*255)


List as input

This is the second pull request to fix #83

Allow any iterable with items dicts
If using pandas, assume user knows about NAN/integer gotchas
Add Items.from_array

@EvanPP Good point. Yes, I meant the dataframe.
For now, I put the warning in CHANGES.md and in documentation
There are many ways to go:

👍  Add the warning if user used dataframe as an input - could be pesky.
💯  Remove dataframe as an input - goodbye pandas API, but the output will stay consistent
🔢  Skip schema if using pandas.

@victor-torres I am almost sure csv format doesn't treat None and missing fields differently too, meaning we might have discrepancies between schema and data.

@EvanPP I added a warning about NA and schema if using pandas directly


I scanned all the other docs and references, afaict this is the only place where I/we got it wrong. Also confirmed with Vincent that this new version is correct.
🧠 Description of Changes

Switch ttl=None -> ttl=0 for how to disable caching in the query methods of SQL and SnowparkConnection, as specified in the MySQL and Snowflake tutorials.

💥 Impact

Size:

[x] Small
[ ] Not small

Contribution License Agreement
By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.

cc @vdonato @snehankekre

@sfc-gh-jcarroll The docstrings for the query methods, suggest the current version of setting ttl=None is correct. Could you confirm which is correct, @vdonato?

If setting ttl=0 makes cache entries not expire, we should update the docstrings in core.

Both the docstrings and these updates are correct:

ttl = None : Cache the result, and don't ever expire the cache and don't re-run the function as long as the server is running
ttl = 0 : Don't cache the result, re-run the function every time

Ah, thanks for clarifying! I re-read the docstrings and realised I was mistaken. ttl=None caches the query results indefinitely. This is not synonymous with disabling caching.


Generated code assumes std is in scope, sometimes breaks build

Sometimes, a large project has infrastructure crates that are #![no_std], which get linked into some targets that do have std, and some that don't. So it is desirable to have low-level crates that can build in #![no_std] mode, even if std feature gets turned on in the displaydoc crate during global feature unification.
Because of this code: https://github.com/yaahc/displaydoc/blob/master/src/expand.rs#L24
the build breaks in displaydoc generated code:
error[E0433]: failed to resolve: use of undeclared type or module `std`
  --> src/fog/report/validation/src/ingest_report.rs:51:17
   |
51 | #[derive(Debug, Display)]
   |                 ^^^^^^^ use of undeclared type or module `std`
error: aborting due to previous error
For more information about this error, try `rustc --explain E0433`.

My suggestion is:
The code here is subtly flawed:
    quote! {
        trait DisplayToDisplayDoc {
            fn __displaydoc_display(&self) -> Self;
        }

        impl<T: core::fmt::Display> DisplayToDisplayDoc for &T {
            fn __displaydoc_display(&self) -> Self {
                self
            }
        }

        trait PathToDisplayDoc {
            fn __displaydoc_display(&self) -> std::path::Display<'_>;
        }

        impl PathToDisplayDoc for std::path::Path {
            fn __displaydoc_display(&self) -> std::path::Display<'_> {
                self.display()
            }
        }

        impl PathToDisplayDoc for std::path::PathBuf {
            fn __displaydoc_display(&self) -> std::path::Display<'_> {
                self.display()
            }
        }

because the generated code is assuming that std is in scope. But the calling crate may not have an std feature at all and may be no_std.
A friendlier way would be something like,
#[cfg(feature = "std")]
extern crate std;

in the generated code, to make the generated code self-contained.

I see the issue and agree this should be fixed but I don't understand how your proposed solution would end up fixing it.
So my understanding of your solution is that we'd remove the std feature from displaydoc itself and instead insert cfg statements into the generated code so that the libraries that use displaydoc could then be configured for no_std usage. Wouldn't adding the extern crate std; statement to the generated code just make it link in std even on no_std projects? I'm no expert on no_std code but this seems like something most ppl would want to avoid...
it seems like the appropriate solution would be to slap #[cfg(feature = "std")] onto all of the PathBuf referencing impls, but then this seems like it would cause issues where users have to manually add a [features] std = [] section to their Cargo.toml to be able to print Paths and PathBufs in their Display impls, which seems less than ideal as well...
I feel like im missing something >_<

Or wait, is the idea that we'd leave the std feature so people can be careful to not even generate this code, but if they do generate this code because they're compiling something that does link against std already then its fine to just extern std? This makes sense.

Should be fixed by the above PR, lmk if that looks good / fixes your issue and I'll merge it and make a new release.


Can I see somewhere, if there is a new version?

Hi, can I see somewhere if there is a new version of password database before I download 30 GByte or above?

This issue seems open to me.

This issue also seems to be open to me.
Von: Chris @.>
Gesendet: Samstag, 18. März 2023 11:17
An: HaveIBeenPwned/PwnedPasswordsDownloader @.>
Cc: jobifis @.>; Author @.>
Betreff: Re: [HaveIBeenPwned/PwnedPasswordsDownloader] Can I see somewhere, if there is a new version? (Issue #29)
This issue seems open to me.
—
Reply to this email directly, view it on GitHub https://github.com/HaveIBeenPwned/PwnedPasswordsDownloader/issues/29#issuecomment-1474805038 , or unsubscribe https://github.com/notifications/unsubscribe-auth/A6AYK3B57BV5Y5HNMZ5EYS3W4WDSZANCNFSM6AAAAAAV2IYXBA .
You are receiving this because you authored the thread.  https://github.com/notifications/beacon/A6AYK3ANCSBEIOL6QYN5ZXLW4WDSZA5CNFSM6AAAAAAV2IYXBCWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTSX466S4.gif Message ID: @.*** @.***> >

We don't currently have incremental updates. Hash ranges do return ETags but we haven't added support for that to the downloader yet.

We are just in the middle of migrating our downloading tasks from the old cloudflare single version ( 7z) files to the api using this downloader. Thanks for that, great work!!
As also already mentioned by @FreifunkerEZ in #31 we are also currently using the last-modified timestamp of the response header when requesting a specific range.
We would also be very happy to receive incremental updates.
@stebet My question is, will the last-modified timestamp on a specific timerange also be updated on all others ranges, if a hash is added anywhere?
For example with powershell:
# specific range
$Url = 'https://api.pwnedpasswords.com/range/9A674'
# example date 30 days ago
$DBLastModifiedDate = (Get-Date).AddDays(-30)
$Request = Invoke-WebRequest $url
# get last-modified timestamp from response header as powershell datetime
$RemoteLastModifiedDate = [datetime][string]$Request.Headers.'Last-Modified'

# if last-modified timestamp is newer than the specified date start a new download
if ($RemoteLastModifiedDate -gt $DBLastModifiedDate) {
....
}

It should only update on the affected range. We also have ETags that you can use to detect changes.

@stebet Thanks!
So i could also use the http etag to detect the changes. Works like a charm, http status code 304 will returned if the etag does not have changed.
But, just to be sure, this etag is for current range only, right? So it is currently not possible to detect changes over all ranges/hashes?
Then currently for my purpose the only way would be to trigger the update on a regular basis, e.g. every 30 days because I have no way to detect general changes to the database, right?

But, just to be sure, this etag is for current range only, right?

Correct

Same problem for me. Blindly downloading 30 GB without knowing if updates are available is unacceptable for me.

I think a new api endpoint is needed.
wget https://api.pwnedpasswords.com/count
00000:3000
00001:5214
00002:2045
...
FFFFE:9534
FFFFF:2945
I'd love to work on this except that I'd need access to the back end code, and servers.

Hello All,
I have created a tool that does the same job using PHP:
https://github.com/oyeaussie/PHPPwnedPasswordsDownloader
I hope someone finds it useful.
Thanks.

I have created a tool that does the same job using PHP: https://github.com/oyeaussie/PHPPwnedPasswordsDownloader

Nice one, gave you a shout-out here: https://twitter.com/troyhunt/status/1803413986785870323

I have updated my downloader tool with a lot of options. You can now download, update, sort, cache, index hash files with the tool. I have also added a password lookup tool from CLI, which you can integrate into your PHP code.
See the wiki page for more information:
https://github.com/oyeaussie/PHPPwnedPasswordsDownloader/wiki/1.-Description
Also, regarding this issue, read this wiki page:
https://github.com/oyeaussie/PHPPwnedPasswordsDownloader/wiki/9.-Update
I hope the tool helps someone. Cheers!

It seems that https://hibp-downloader.readthedocs.io/en/latest/ manages to only download ranges that have changed based on the etag.

Update: hibp-downloader takes days for the initial download (the same connection and the official downloader takes about 1hour) and resume is broken at least on windows.


Is possible use decorators functionality by other languages?

Hello guys i'm want to use moto server to test my aws connection (batch in this case). My project is wrote in Java spring boot.
I wont to know if is possible use de decorator mock_batch_simple passing env variables or if exists another method to make this.
I'm using docker compose to up the moto server like on the documentation.

Hi @izacgaldino23! If you're running the MotoServer, then the AWS SDK that you use has to set the endpoint_url variable.
Normally the SDK will connect to blah.amazonaws.com, but overriding the endpoint allows your application to talk to the MotoServer instead.
I'm not aware of a way to set the endpoint_url using a environment variable - this will probably have to be set in code.
See our docs: http://docs.getmoto.org/en/latest/docs/server_mode.html#example-usage
And the AWS docs: https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/region-selection.html

Hi @bblommers, i think that i can't explain exactly that i want to do.
Now I can connect into moto server perfectly, my objective now is mock a submitjob for a batch. But to do that i need create a role, a compute environment, a jobQueue and a jobDefinition. This is a lot of implementation to run only my project localy. Searching on internet I discovered that moto has a decorator mock_batch_simple, now I want to know if is possible simulate this behavior in my Java Spring Boot application using env variables on docker-compose or if exists another method to make this.

Ah, gotcha, I misunderstood.
The use case for mock_batch_simple is to verify the input parameters are correct, so the jobQueue and jobDefinition still have to exist. The difference is that it doesn't execute the actual job, but instead always marks it as Success. That makes it a lot quicker, and ensures that people do not have to have Docker installed/running.
So it doesn't quite do what you're looking for.


Added tailscale_update to remove on-boot error

Fixes #34

Thank you for putting this PR together, I really appreciate it.


Add an arn argument so that we can use submit-monitor for community events

Adding ARN as a parameter since GUID is not enough for community events where the ARN needs to have the AWS Account Number of the account that created the community race.

@larsll I have modified it to work like you suggested. However, I am having problems to submit today with this version and with yours as well.  I guess something else is broken there.

That was odd. It submits ok now. Both versions.


Update private-module-registry.md

@mumian

Can you review this PR?
IMPORTANT: When this content is ready to merge, you must add #sign-off in a comment or the approval may get overlooked.

#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

@JFolberth - thank you for your contribution.  Can you capitalize "bicep"?

@mumian Updated.

#sign-off


Tutorial - Next & Previous buttons

Next button on the Tutorial needs to be more obvious - kids didn't know what to do next.  Also consider removing the Previous button.

Fixed by #2146


2D/3D/Script views changing not working after using new Search Help button

When you use new Search Help button in Script Editor and select one entry, you can't change view nor by buttons and hotkeys F1/2/3. Only using Scene docker by clicking nodes or script buttons works.

Duplicate of #2807, it was not that far down in the list ;)


Not enough colors to support more than 10 classes in classifier tree

As it stands it looks like there are only enough colors in colors.py to support up to 10 classes. My work has me trying to classify slightly more than that so it would be great if there was some support to visualize this. I think all that neeeds changing is the color_blind_friendly_colors
To recreate the desired color format I've found that this does quite nicely and will support any current matplotlib colormap:
import matplotlib
import numpy as np

def get_hex_colors(n_classes,cmap_name = "RdYlBu"):

    hex_colors = []
    for i in range(2, n_classes):
        cmap = matplotlib.cm.get_cmap(cmap_name, i)
        hex_colors.append(
            [
                matplotlib.colors.to_hex(rgb, keep_alpha=True)
                for rgb in cmap(np.arange(0, cmap.N))
            ]
        )

    hex_colors.insert(0, None)
    hex_colors.insert(0, None)

    return hex_colors

This then gets implemented in the trees.py as follows:
n_classes = shadow_tree.nclasses()

colors['classes'] = get_hex_colors(n_classes+1,cmap) # added

color_values = colors['classes'][n_classes]

where cmap is just another argument in the function:
viz = dtreeviz(
    rf.estimators_[tree_number],
    X,
    y,
    target_name="target_class",
    feature_names=features_list,
    class_names=class_names,
    cmap = 'viridis'

)
viz.view()

I don't have any strong opinions about the number of bins for histograms so I just manually adjusted this to be something like this:
NUM_BINS = [0, 0, 10, 9, 8, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]

although there may be a more clever way to do this but if this list was just very long it would most likely be safe for the vast majority of users.
I have it working on my local install of dtreeviz but was keen to see what the authors thought. Loving the package so far!

Hi @jlubbersgeo, thanks for your suggestion and effort.
Would be possible to create a PR? it would be easier to test for us also :)

thanks @jlubbersgeo, I will take a look on it in a few days.

implemented by this PR #185


Inconsistencies in KiCad 6 DRC

Hi,
I recently put in a PR that changed the DRC parsing on KiCad 6 - however it still didn't fix my key issue, which was that excluded DRC violations were still appearing as errors, thereby failing my CI builds.
I initially thought this was a parsing error, however when I did a deeper dive, I noticed that the reports that KiAuto outputs were subtly different to the ones generated through the UI. I looked at the KiCad 6 source, and found that DRC reports are created in two, subtly different ways. Specifically:
https://gitlab.com/kicad/code/kicad/-/blob/master/pcbnew/dialogs/dialog_drc.cpp outputs:
    fprintf( fp, "\n** Found %d DRC violations **\n", count );

    for( int i = 0; i < count; ++i )
    {
        const std::shared_ptr<RC_ITEM>& item = m_markersProvider->GetItem( i );
        SEVERITY severity = item->GetParent()->GetSeverity();

        if( severity == RPT_SEVERITY_EXCLUSION )
            severity = bds.GetSeverity( item->GetErrorCode() );

        fprintf( fp, "%s", TO_UTF8( item->ShowReport( units, severity, itemMap ) ) );
    }

However https://gitlab.com/kicad/code/kicad/-/blob/master/pcbnew/python/scripting/pcbnew_scripting_helpers.cpp outputs:
    for( const std::shared_ptr<DRC_ITEM>& item : violations )
    {
        SEVERITY severity = item->GetParent()->GetSeverity();
        fprintf( fp, "%s", TO_UTF8( item->ShowReport( aUnits, severity, itemMap ) ) );
    }

Note that the report generated by Python scripting doesn't handle exclusions. It looks like this is a known issue on the KiCad side: https://gitlab.com/kicad/code/kicad/-/issues/11562
Until the Python API is consistent and reports all the required info, I'd suggest that KiAuto uses the UI automation method, rather than the Python API.
Are you happy with that as a proposed fix? If so, I can put in a PR.

Hi @charliebruce !
I want to avoid using the UI, is really slow and prone to fail.
We could try loading the board.design_settings.drc_exclusions from the project.
I never used it ... do you have an example?

Hi @charliebruce !
Now KiAuto has the -F option for the run_drc command, it forces the use of the GUI. With the use of the interporser this is now quite reliable.
KiBot now has a global option named drc_exclusions_workaround to use this flag until the KiCad issue is solved.
I think this problem is solved now.

Amazing, thanks so much! I'll give this a go.


Change costmatrix log to LOG_TRACE

This Pull Request has been merged by GitConsensus.
Vote Totals

Yes
No
Abstain
Voters

3
0
0
3

Vote Breakdown

User
Yes
No
Abstain

tedivm
✔

dragoonreas
✔

ags131
✔

Vote Results

Criteria
Result

Has Quorum
True

Has Votes
True


Console.WriteLine(char value) overload not displaying in Results Panel

Hello!
I appear to be having an issue displaying the output of the below example code in NetPad:
char a = 'I';
Console.WriteLine("Printing a char");
Console.WriteLine(a);

It appears as though using the Console.WriteLine(char value) overload does not print anything to the Results pane:

NetPad Version: v0.7.1

Thank you for reporting, I'll get this fixed.

Have done some digging into the problem.
In the ExternalScriptRunner.cs a process runs the dotnet application and the output ends up in OnProcessOutputRecevied
{
    "type":"HtmlResultsScriptOutput",
    "output": {
        "body":"

",
        "order":1
    }
}

although the only chars gets parsed weired. Have not checked the dll that gets generated in the tmp/Processes, may be an issue there

@SimonNyvall thanks for digging in. The issue is most likely in the ActionTextWriter which derives from TextWriter. There I'm overriding Write(string value) and WriteLine(string value) but when writing a char it doesn't go through that method and most likely goes through WriteLine(char value). We can override all the overloads from TextWriter but I don't think we need to. Instead we can only override a select few that all the other overloads eventually funnel to.
I imagine WriteLine(char value) will have to be overridden since if I had to guess it would be one of those terminal functions that won't call another overload.

That's great! Go ahead and submit a PR. Thanks for working on this.

PR #240 is merged and fixes this issue. Thank you @SimonNyvall


Helm chart with ingress fails to install - no matches for kind "Ingress" in version "networking.k8s.io/v1beta1"

pi@kube-master: $ helm install wg-access-server --values wg-access-server.yaml --repo https://place1.github.io/wg-access-server wg-access-server
Error: INSTALLATION FAILED: unable to build kubernetes objects from release manifest: unable to recognize "": no matches for kind "Ingress" in version "networking.k8s.io/v1beta1"

Contents of wg-access-server.yaml is:
wireguard:
  config:
    privateKey: "super-secret-here"

persistence:
  enabled: true
  size: 1Gi

ingress:
  enabled: true
  annotations:
    kubernetes.io/ingress.class: traefik
    kubernetes.io/tls-acme: "true"
  hosts:
    - vpn.hooli.xyz
  tls:
    - hosts:
        - vpn.hooli.xyz

Environment
Raspberry Pi running Debian GNU/Linux 11 (bullseye) linux/arm64
pi@kube-master: $ helm version
version.BuildInfo{Version:"v3.7.2", GitCommit:"663a896f4a815053445eec4153677ddc24a0a361", GitTreeState:"clean", GoVersion:"go1.16.10"}

pi@kube-master: $ kubectl version
Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.0", GitCommit:"ab69524f795c42094a6630298ff53f3c3ebab7f4", GitTreeState:"clean", BuildDate:"2021-12-07T18:16:20Z", GoVersion:"go1.17.3", Compiler:"gc", Platform:"linux/arm64"}
Server Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.0", GitCommit:"ab69524f795c42094a6630298ff53f3c3ebab7f4", GitTreeState:"clean", BuildDate:"2021-12-07T18:09:57Z", GoVersion:"go1.17.3", Compiler:"gc", Platform:"linux/arm64"}

Looks like we just need to do some helm branching on the apiVersion in ingress.yaml:
https://github.com/freifunkMUC/wg-access-server/blob/master/deploy/helm/wg-access-server/templates/ingress.yaml#L3
Something like:
{{- if or ( gt .Capabilities.KubeVersion.Major "1" ) ( ge .Capabilities.KubeVersion.Minor "22" ) }}
apiVersion: networking.k8s.io/v1
{{ else }}
networking.k8s.io/v1beta1
{{ end }}

There is a fully updated PR for the Helm chart to modernize it at origin https://github.com/Place1/wg-access-server/pull/167.

@nodesocket We wanted to have a look over the upstream PRs soon anyways. So we'll try to merge this request as well to bring proper helm support back to the fork :)

@nodesocket We merged it to master

@awlx don’t  you have to bump the Helm chart version here and push a new version up to the registry?
https://github.com/freifunkMUC/wg-access-server/blob/master/deploy/helm/wg-access-server/Chart.yaml

@nodesocket true ... forgot about that. Sorry!

@awlx I am seeing the following ErrImagePull. Seems to still be trying to pull from the place1 registry? Humm.
Events:
  Type     Reason     Age                From               Message
  ----     ------     ----               ----               -------
  Normal   Scheduled  61s                default-scheduler  Successfully assigned default/wg-access-server-7986f767fb-gsd8w to kube-worker-5elgu
  Normal   Pulling    16s (x3 over 60s)  kubelet            Pulling image "place1/wg-access-server:v0.5.0"
  Warning  Failed     15s (x3 over 59s)  kubelet            Failed to pull image "place1/wg-access-server:v0.5.0": rpc error: code = Unknown desc = Error response from daemon: manifest for place1/wg-access-server:v0.5.0 not found: manifest unknown: manifest unknown
  Warning  Failed     15s (x3 over 59s)  kubelet            Error: ErrImagePull
  Normal   BackOff    1s (x4 over 59s)   kubelet            Back-off pulling image "place1/wg-access-server:v0.5.0"

@awlx indeed, hard coded to use the place1/wg-access-server repository. Is that right?
https://github.com/freifunkMUC/wg-access-server/blob/master/deploy/helm/wg-access-server/values.yaml#L54

@nodesocket nope it's not sigh need to fix that as well.

@awlx don't we have to bump the helm chart version again to pull down this fix?
https://github.com/freifunkMUC/wg-access-server/blob/master/deploy/helm/wg-access-server/Chart.yaml#L2

@awlx before you bump the helm chart version, looks like the image repo is still incorrect. Should it be ghcr.io/freifunkmuc/wg-access-server?
  Warning  InspectFailed  10s (x2 over 10s)  kubelet            Failed to apply default image tag "ghcr.io/freifunkMUC/wg-access-server:v0.5.0": couldn't parse image reference "ghcr.io/freifunkMUC/wg-access-server:v0.5.0": invalid reference format: repository name must be lowercase


Keyboard pops up after selection is made on mobile devices

Banging my head on this for a while, hoping somebody can point me in the right direction.  On iOS the keyboard is displayed momentarily, however on android it persists when viewed with Firefox or Chrome and is not removed until it looses focus.  Here's the code, not much to it:
<ui-select ng-model="$parent.source_type" theme="bootstrap" title="Choose source type" search-enabled="false">
  <ui-select-match  placeholder="Select a source type ...">{{$select.selected.name}}</ui-select-match>
  <ui-select-choices  repeat="type in source_types">{{type.name}}</ui-select-choices>
</ui-select>

The scenario is:

Web page is displayed.
User touches ui-select element and drop-down opens up.
User selects (touches) desired element from drop-down, drop-down is closed displaying the user selected element.
Keyboard is displayed <<< undesirable event

Am I missing something?
Any ideas on how I could prevent this from occurring?
Is this a bug or feature? <grin>
Thanks for looking,
John

Had the same issue with the keyboard on Android with Chrome, popped up twice when the control got focus and after an item has been selected. Here is a quick and dirty fix for the two unwanted keyboard popups (in reverse order).
In select.js, the ctrl.close....., comment out:
//$scope.$broadcast('uis:close', skipFocusser);
The focusser seems to be a dummy element that receives focus and it looks like it causes the keyboard to pop up, when you select an item and the dropdown closes.
Where it does the #templateCache thing right at the end of select.js, last line (assuming you use selectize):
$templateCache.put("selectize/select.tpl.html","

<input ng-readonly="!$select.searchEnabled"  type="text" autocomplete="off" tabindex="-1" class="ui-select-search ui-select-toggle" ng-click="$select.toggle($event)" placeholder="{{$select.placeholder}}" ng-model="$select.search" ng-hide="($select.selected && !$select.open)" ng-disabled="$select.disabled" aria-label="{{ $select.baseTitle }}">

");}]);
So moving searchEnabled to ng-readonly (instead of ng-hide) lets you keep the placeholder text, does not cause the first keyboard popup and does not cause the height shrinkage, which I also experienced.
Then also where you use the control in your view in the markup: ...... search-enabled="false".
I did not test this thoroughly for side effects.

i have this problem too, you resolve this in elegant way?

No, I reverted back to using html .  I thought leoncc's proposal was interesting, but was too near release of our software to take the risk.

Ok thanks.

+1 for this, would love a fix.

+1

+1

+1 i have this problem too. How to solve this problem?

+1 here!

Tried using jquery blur events on the right elements after a selection with no luck. +1 for a fix.

+1

+1

+1

This is also related to the broader discussion on event handlers with the library.

+1

+1

Careful removing this line:
$scope.$broadcast('uis:close', skipFocusser);
Better off using the skip-focusser attribute.
See docs https://github.com/angular-ui/ui-select/wiki/ui-select

+1

+1

I simply did by writing some css to prevent the keyboard to popup on mobile devices.
.ui-select-container .ui-select-search, .ui-select-container .ui-select-focusser  {
visibility: hidden;
}
You can do this for mobiles specifically by detecting touch devices and adding a class to your body for mobile, like
.classForMobile .ui-select-container .ui-select-search, .classForMobile  .ui-select-container .ui-select-focusser  {
visibility: hidden;
}

@osamaurrehman That saved my life today! thanks.

@leoncc Thanks a lot :)

I was able to create a directive
(function () {
  'use strict';

  angular
    .module('app.directives', [])
    .directive('readOnly', readOnly);

  function readOnly() {
    return function (scope, element, attrs) {
      element.find("input").attr('readonly', 'readonly');
    };
  }

})();

then in the template add the read-only attribute
<ui-select multiple ng-model="group.selectedCategories" theme="bootstrap" ng-disabled="false" sortable="true" close-on-select="false" remove-selected="false" read-only>

part 1. for project requirements on "select.tpl.html" we already have:
ng-show="$select.searchEnabled && $select.open">
so the input hides when search-enabled is false
part 2. to solve the other keyboard placed on this focusser:
<input ng-disabled="$select.disabled" class="ui-select-focusser ui-select-offscreen ng-scope" type="text" id="focusser-0" aria-label="Select box focus" aria-haspopup="true" role="button" disabled="">

I did a CSS fix for mobile resolutions and it works fine:
@media (max-width: @screen-xs-max) {
  .ui-select-offscreen {
    display: none;
  }
}

+2

I've found the following workaround useful: I added skip-focusser="isMobileDevice" attribute, where isMobileDevice is my bool scope variable set during mobile device detection. Thus nothing is changed on desktop.


Not every invocation of ocamlc is through ocamlfind

Specifically, include $(shell ocamlc -where)/Makefile.config is bare, which breaks with OCAMLFIND_TOOLCHAIN.

--- Makefile.old        2016-04-27 04:49:11.000000000 +0400
+++ Makefile    2016-04-27 04:49:49.000000000 +0400
@@ -1,4 +1,4 @@
-include $(shell ocamlc -where)/Makefile.config
+include $(shell ocamlfind ocamlc -where)/Makefile.config

 VERSION = 1.3.2

We've moved to jbuilder. The terrible makefiles are gone!


resolve.alias doesn't work is this plugin

Hello !
It looks like aliases are not correctly transformed in d.ts files.. All the JavaScript code is ok. It's just my d.ts files.

Here my vite config :
import { defineConfig } from 'vitest/config'
import tsconfigPaths from 'vite-tsconfig-paths'
import react from '@vitejs/plugin-react'
import peerDepsExternal from 'rollup-plugin-peer-deps-external'
import dts from 'vite-plugin-dts'

const path = require('path')

// https://vitejs.dev/config/
export default defineConfig({
  test: {
    environment: 'jsdom',
    globals: true
  },
  build: {
    sourcemap: true,
    target: 'esnext',
    minify: false,
    lib: {
      entry: path.resolve(__dirname, 'src/index.tsx'),
      name: 'Mui-phone-number',
      fileName: format => `mui-phone-number.${format}.js`
    },
    rollupOptions: {
      output: {
        sourcemapExcludeSources: true,
        globals: {
          react: 'React',
          '@mui/material/InputAdornment': 'InputAdornment',
          '@mui/material/TextField': 'TextField',
          '@mui/material/IconButton': 'IconButton',
          '@mui/material/styles': 'styles',
          'react/jsx-runtime': 'jsxRuntime',
          '@mui/material/Menu': 'Menu',
          '@mui/material/MenuItem': 'MenuItem',
          '@mui/material/Typography': 'Typography',
          '@mui/material/ListItemIcon': 'ListItemIcon',
          '@mui/material/ListItemText': 'ListItemText'
        }
      }
    }
  },
  plugins: [
    peerDepsExternal(),
    react(),
    tsconfigPaths(),
    dts({
      insertTypesEntry: true
    })
  ]
})

Is anyone has the same issue ?

I initially think this may be some unrobust when using with the vite-tsconfig-paths.
Normally it is as expected when using resolve.alias in the vite config file.
This is one of the main tasks for next version, I still need more time for futher testing, thanks for your patience.

I had read the source codes of vite-tsconfig-paths in last weekend.
It's using some external resolvers to resolve the paths which defined in tsconfig.ts that makes others plugins cannot perceive through vite's hooks.
That is a bad news, it means that this plugins cannot make some cooperations with other plugins.

Oo good catch, so I guess, the better thing to do for now is to rewrite the aliases into the resolve.alias option ?

I did a simple test and it is work well with vite-aliases, you can follow up if there are problems.
Also you can use the resolve.alias directly, is well.

Thank you very much @qmhc ! You can close the issue ;)

@viclafouch would you mind sharing your config? It seems like emitted typescript declarations do not work with vite-aliases.

I have the same issue as well.

same issue here I think we should re open it

Is there no one to maintain it  ?

@DaftPaul  @zhouxinxing Now please use pathsToAliases option of the plugin and you don't need to add any extra plugin.


Use the builder pattern to create authenticators.

Beyond simply moving to the builder pattern for intialization this has a
few other effects.
The DeviceFlow and InstalledFlow can no longer be used without an
associated Authenticator. This is becaus they no longer have any
publicly accessible constructor. All initialization goes through the
Authenticator. This also means that the flows are always initialized
with a clone of the hyper client used by the Authenticator.
The authenticator uses the builder pattern which allows omitting
optional fields. This means that if users simply want a default hyper
client, they don't need to create one explicitly. One will be created
automatically. If users want to specify a hyper client (maybe to allow
sharing a single client between different libraries) they can still do so
by using the hyper_client method on the builder. Additionally for both
AuthenticatorDelegate's and FlowDelegate's if the user does not specify
an override the default ones will be used.
The builders are now exposed publicly with the names of Authenicator,
InstalledFlow, and DeviceFlow. The structs that actually implement those
behaviors are now hidden and only expose the GetToken trait. This means
some methods that were previously publicly accessible are no longer
available, but the methods appeared to be implementation details that
probably shouldn't have been exposed anyway.

Codecov Report

Merging #105 into master will increase coverage by 4.63%.
The diff coverage is 93.66%.

@@            Coverage Diff             @@
##           master     #105      +/-   ##
==========================================
+ Coverage   75.88%   80.52%   +4.63%
==========================================
  Files           9       10       +1
  Lines        1518     1936     +418
==========================================
+ Hits         1152     1559     +407
- Misses        366      377      +11

Flag
Coverage Δ

#stable
80.52% <93.66%> (+4.63%)
:arrow_up:

Impacted Files
Coverage Δ

src/lib.rs
100% <ø> (ø)
:arrow_up:

src/installed.rs
91.1% <100%> (+2.33%)
:arrow_up:

src/authenticator.rs
42.85% <42.85%> (ø)

src/service_account.rs
90.68% <94.11%> (+4.01%)
:arrow_up:

src/device.rs
95.9% <95.74%> (+1.71%)
:arrow_up:

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 4b4d832...e163903. Read the comment docs.

Sorry for the late response.
The change itself seems fine to me, but honestly I don't think that the various new() methods are so complicated as to warrant this change for now. Simply, because it adds more layers when reading documentation, as you now have the type and an ...Impl type, and various methods etc.
Or do you think that the current number of constructor arguments is already too bad?

I guess we have a difference of opinion on which is simpler to read and understand, and that's fine this is your codebase and you should feel free to accept or reject any changes as you see fit. I will accept your decision either way. I feel like the changes to the examples demonstrate why I prefer this approach so to highlight one of the examples:
This is without the builder pattern
    let https = HttpsConnector::new(1);
    let client = Client::builder()
        .keep_alive(false)
        .build::<_, hyper::Body>(https);
    let ad = yup_oauth2::DefaultFlowDelegate;
    let inf = InstalledFlow::new(
        client.clone(),
        ad,
        secret,
        yup_oauth2::InstalledFlowReturnMethod::HTTPRedirect(8081),
    );
    let mut auth = Authenticator::new_disk(
        client,
        inf,
        yup_oauth2::DefaultAuthenticatorDelegate,
        "tokencache.json",
    )
    .unwrap();

this is with the builder pattern
    let mut auth = Authenticator::new(InstalledFlow::new(
        secret,
        yup_oauth2::InstalledFlowReturnMethod::HTTPRedirect(8081),
    ))
    .persist_tokens_to_disk("tokencache.json")
    .build()
    .unwrap();

These do the exact same thing, but previously there were a lot of details that required thinking about. What hyper client should I use, or there's a note to disable keep-alives for some reason, better remember to do that. Let's also clone the same hyper client between the authenticator and the flow so they both can share the same connection pool. What flow delegate do I want? oh, there's a default lets start with that. Now there's a authenticator delegate? Let's use that default. All those questions have sane defaults when using the builder pattern so there's less upfront boilerplate to setting up a correctly working authenticator (while keeping the existing functionality for the users that need it). Additional benefits include enforcing in your API what comments recommend today, namely that a InstalledFlow and DeviceFlow should not be used without a corresponding Authenticator. In my mind that simply removes another potential footgun for users since it's not possible to create those flows directly anymore.
In the end a lot of this is just personal preference, so feel free to do what you think is best. This was merely a suggestion.

I agree, the setup of HTTP client, delegates, etc. is something I hadn't thought of. And the new style is obviously better for usage. As maintainer, it's easy to overlook these kinds of issues as long as it works :)
While you're at it; would you mind changing the names of the builder types (e.g. Authenticator) to say ...Builder (AuthenticatorBuilder), and make AuthenticatorImpl to Authenticator again? When I first looked at the code, it caused a bit of confusion on my side, as I would usually expect some XyImpl to have a corresponding Xy trait, for example. If the type name says Builder, however, it is clear immediately what to expect from using it.

I can change the names to whatever you want, but I wanted to point out that the builders are now the only types users actually see when looking at documentation. AuthenticatorImpl isn't even public, DeviceFlowImpl and InstalledFlowImpl are technically public but are scoped within a private module and the user should not ever see them. Authenticator::build returns an unnamed 'impl GetToken' and that's the only thing the user ends up interacting with. I didn't see value in adding a Builder suffix to each of the builder structs because as far as the public API is concerned there's nothing to confuse it with. Let me know if you would still prefer renaming the types with a Builder suffix.


mod outactive to class paramer

For an explanation of how to fill out the fields, please see the relevant section
in PULL_REQUESTS.md
Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
[Optional Fixes #Issue]
[Optional Deprecated:]

1.3 has been EOL


ci(tskmgr-api): add "Dependency first" task scheduler support #94

Add "Dependency first" task scheduler support #94

@osmolovyk basically your goal is to use a central cache to build libs that have nested dependencies ?

Some reading https://www.dylanpaulus.com/posts/postgres-is-a-graph-database/

https://nx.dev/concepts/task-pipeline-configuration


[D3D9] Incorrectly Rendered Loading Progress Bar in DuLuDuBi Star

Software information
DuLuDuBi Star (Non-Steam)
Game can be found here.
Running the Game
Needs LC_ALL=zh_CN set to work, else it crashes.
Would recommend renaming the game executable to something more readable.
Locale emulator is not compatible with Wine.
System information

Steam Deck
Driver: Mesa 22.2.0 (git-17e5312102)
Wine version: Wine lutris-fshack-7.2-x86_64
DXVK version: V1.10.3 (Still happens on master)

Apitrace file(s)
game.trace.zip
(I nested a .7z inside of a .zip to cheat GitHub)
Log files
game_d3d9.log
game_dxgi.log
Screenshots

Correct Behavior

Notes
This could potentially be annoying to test, because after enough times of launching before a restart, this specific loading screen stops showing up because it all loads faster.

Seem to be a regression from https://github.com/doitsujin/dxvk/commit/609856db35c674b5b61bdfdb62fbb92baed5ca37
Tested on R9 380X mesa-git with the apitrace

Changing the line m_backBuffers.resize(NumBackBuffers + 1); in the above commit back to m_backBuffers.resize(NumBackBuffers); gets rid of the issue. This is equivalent to what d3d9.noExplicitFrontBuffer = True does today and so that also gets rid of it.
doitsujin wants some feedback from Josh before accepting that as a fix so just noting this info here for now.

For the record, if this ends up being the fix, ｿﾖﾁ昻ﾇﾇ.exe is the actual name of the game executable.

SWAPEFFECT_DISCARD + BackBufferCount = 1. So this will be fixed by #3392


fix(NOJIRA-123): self-document file ignore

Extends the Required TypeScript error message to explain that files and folders can be excluded from the check by adding them to .gitignore or .eslintignore.

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


Editor: The popups selecting menu options on mouse move

Tested versions
Bug introduced by this commit: 06c2cda848b4bca8ee2f54a09417a97a7c1384d3
System information
macOS 14.1, Apple M3 Pro
Issue description
~When editing an exported Dictionary property, trying to change the type of a property opens a popup to chose the new type.~
In fact, this seems to be the case of every popup menus. The right click menus for example have the same problem, if you maintain the right click and drag over a menu item, this menu item will be clicked once you start moving the mouse again after releasing the mouse button.
If the mouse doesn't immediatly move after clicking of the edit button, the popup will close itself when the mouse begins to move, using whatever type is under the mouse as the selected type.
Steps to reproduce

Create a script with an exported dictionary
Add this script to a node
Open inspector for this Node
Edit dictionary
Click on the ✎ button
Don't move the mouse for ~1s
Move the mouse

https://github.com/godotengine/godot/assets/3855602/f460ea12-4b91-4a24-89ef-cf220229216e
Minimal reproduction project (MRP)
N/A

I also notice a weird warning in the console, but this one was already showing up before the linked commit.
 scene/main/window.cpp:712 - Entering a window while a window is hovered should never happen in DisplayServer.

After some tests:

If the popup opens under the mouse (which is arguably a bad UI pattern but it exists in multiple places in Godot), moving the mouse after a 250ms delay will activate the menu item hovered by the mouse
If the menu opens with a click (right or left) and the mouse button is not released before the mouse goes over the menu, the menu item hovered by the mouse after the button release will be activated on next mouse movement.
The menu items are now activated on button down instead of button up, which means:

You can't click on an item and drag your mouse over another if you changed your mind
You can't cancel a click on a menu item by dragging outside of the menu popup

The 2 last items are very confusing since it's not how every native menus are working. It breaks users assumption about how to interact with the UI

The first 2 are a bug. Items should activate only on button release, not mouse movement.
The last one is expected behavior. I don't know if it's OS difference, but that's how most apps work (e.g. VS Code, GIMP, Audacity).

If the popup opens under the mouse (which is arguably a bad UI pattern but it exists in multiple places in Godot)

See:

https://github.com/godotengine/godot-proposals/issues/8883

I just checked with a friend who uses mac and he says that this kind of functionality is used there as well, so this might have to do specifically with how Godot handles inputs on macOS. At least with the native mac menus this is how they work.

Ah yes, dragging outside not closing menu is also a bug technically.
I meant that activating the menu (opening popup) on button down is intended, because that's what enables drag activation in the first place.

@KoBeWi Ah ok I see what you mean. But then this is only for buttons that opens a popup right ? Because other buttons, you can drag outside of the button to cancel click too.

I will try later if I can find out what differs between the macos and windows behavior. I have both at home, not at the office, so will check tonight or later this week.

If someone has a Linux to test if the bug is also there ?

I can confirm a regression / unexpected change in behavior on Linux with KDE Plasma on Wayland, using a touchpad.
When I right-click an element e.g. in the FileSystem dock (with the touchpad button), moving the touchpad triggers the selection of one of the item under the cursor, even though I did not tap/click. This is not the intended behavior for me when using a touchpad with tap-to-click enabled.
This is also reproducible with a mouse similarly: Right click on a folder, move the mouse to the right to attempt selecting an item, there's a high probability that one will be selected automatically.
It works if I hold right-click, but that's not feasible on a touchpad, and unconventional with a mouse, at least for me.
In either case, the item under the cursor is not selected on mouse release, but on the first movement after mouse release.

Strange. I just tested with a touchpad as well, and it works fine.
This will be difficult for me to debug since I don't have a mac or linux machine, although my theories based off this section of code in the PR: https://github.com/godotengine/godot/pull/86952
if (!initial_button_mask.has_flag(mouse_button_to_mask(MouseButton::LEFT)) && !initial_button_mask.has_flag(mouse_button_to_mask(MouseButton::RIGHT))) {
	mouse_is_pressed = false;
}

Is that on macOS/linux something is different about how these flags or masks work. Maybe these flags are returning false when the cursor enters the popup menu element on these OS?

Ok, I managed to compile Godot on my Windows machine, and I confirm that the original bug that I described in the issue is not reproduced for me.
The "one cycle click" feature is working both with menu opened via a button or via right click.
But I have the same behavior than on macOS concerning the trigger of action on click press instead of click release.
Perhaps I should update the body of the issue ? I think that those 2 bugs are tightly related.

I'm not sure I understand the 2nd issue. What is the undesired behavior found in the windows build?

@ryevdokimov Good catch, on Windows, we go into the if when the mouse button is released wherever the mouse is, as you said.
On macOS, we don't go into the if when the mouse button is released, but when go into it whenever the mouse enters the menu area.

Interesting.
Would need someone more familiar with the Input code to take a look at this if we want to solve this quickly. I am unfamiliar with that part of the code and couldn't guess why the discrepancy between OS would exist, and whether or not it's by design.
Did you see my question about the 2nd issue? Is there any behavior in the Windows build that is undesirable?

I'm not sure I understand the 2nd issue. What is the undesired behavior found in the windows build?

Since I'm not a native english person, it's a bit difficult for me to explain it clearly by text :-(
Let me try to make a video:
https://github.com/godotengine/godot/assets/3855602/ce3d7e9b-6455-4b9e-83ee-74352396c167
Here, you can see the menu action is selected when I push the mouse button down.
The expected behavior is to trigger the action only on button up. And the selected menu action should then be the one under the mouse cursor when the button is released. If the cursor is out of the menu area when the button is released, it should close the menu.
Here an example of how VSCode menu is working:
https://github.com/godotengine/godot/assets/3855602/c0501ae7-39fd-4b08-a1e8-b729bc0fe7fc

Ah I see. After you you've already clicked (but haven't selected an item), the behavior has regressed so that items are selected on moues-down, which I agree is undesirable. This I can fix. Good catch.

The issue in your last comment will be resolved in this above-mentioned PR.

I've added some print statement to try to understand what is happening.
The problem is that we land in this if

on mouse down/up on windows
on mouse move on macOS. But it's not like we get every move event, just the first one.

Ok, I've just understood that the m variable is valid when it's a mouse movement event while b is valid on mouse button events ><'
So from what I see, on macOS, we get mouse mouvement events only when the mous is over the menu popup, while on windows we get those event wherever the mouse is in the window.

CC @bruvzg

This is why we get this bug: on macOS we can't detect that the mouse button have released outside the popup since we don't have events from outside the popup.

This is a normal behavior, windows should not receive mouse buttons events outside the window, if it is received on Windows it looks like Windows bug.
Closing of the native popups (which require press events outside the window) are done in DisplayServer using global mouse event filter (https://github.com/godotengine/godot/blob/907db8eebcecb97d527edcaff77a1c87a6c068f5/platform/macos/godot_application.mm#L114 in case of macOS, currently it's only handling mouse down events).

It makes sense.
After some thoughts, I'm not sure why we have to do all this dragging and button release tracking ?
Why can't we just react to mouse button up? It should work for all cases ?

If I'm understanding you correctly, then I committed a change to the PR that fixed the other issue to use the DisplayServer to check for mouse state: https://github.com/godotengine/godot/pull/88342
The behavior seems the same in Windows, could some check on linux/macOS?

Yes it's working :-)
But I feel that we are actually trying to workaround a problem: we don't get mouse button up event.
It seems that we don't get mouse button up events (even if it occurs over the popup) if the button down event occured outside the popup menu.
This is a bit unexpected to me, that's the root cause of this convoluted code. Shouldn't be better to make mouse button up events fire in the popup instead ?

Just to confirm, it works for you on macOS?
The issue is it seems that once I initiate a click to make the popup visible (which is initiated outside the context of the popup), the following mouse up will not register in the popup. I can't comment it this is normal behavior.

I though it was, but no, it's not.
The problem is not the detection of the mouse state, it's that we don't get mouse movement events. Which means this code is not called for mouse mouvement outside of the popup. So the problem is still there.

the following mouse up will not register in the popup
Yes I do agree that this is the actual issue. I don't know if it's intended, but all this drag and press detection code is here only because of this :-(

https://github.com/godotengine/godot/blob/076a9f8179eebc9f1a50889794d3f8dd56e2638f/scene/gui/popup_menu.cpp#L591-L594
Is this not getting the mouse state regardless of what context the cursor is in? I'm still confused why this would work in Windows and not on other OS. If there is a bug in Windows that allows it to work that I'm accidently exploiting, I may need to wait for that to get fixed so that I can properly investigate how to make this functionality work.

I just updated the PR to use the DisplayServer to check the position of the cursor as well, maybe this will fix it: https://github.com/godotengine/godot/pull/88342

I think I see what the root of the issue, there's some extra code to redirect MouseMotion event to the popup on Windows, but not on other platforms.

Also, popup input handling seems to be extremely overcomplicated, not sure what it's trying to do at all, should not it just activate item on release?

I think I see what the root of the issue, there's some extra code to redirect MouseMotion event to the popup on Windows, but not on other platforms.

Part of the https://github.com/godotengine/godot/pull/67903 (not sure why it was added only for Windows).

Also, popup input handling seems to be extremely overcomplicated, not sure what it's trying to do at all, should not it just activate item on release?

Mouse up is not registered in the popup when mouse down is initiated to make the popup visible and then subsequently held. I wrote the code within that framework, but it now sounds like a Band-Aid to a bigger issue.

I guess the same code should be applied to mouse button events, since if mouse was pressed all events will be sent (at least by macOS) to the window that have received the press event, until its released. Otherwise, activation on release will never work.

A quick fix for macOS (and probably X11 as well, have not tested it) - https://github.com/godotengine/godot/pull/88366
I'll evaluate other event behavior on all desktop platforms tomorrow, it might be better to do the same redirection to all events.

In fact I do think that it makes sense to not get event happening outside of the pop up window.
But for me, the root problem is that the mouse button release event should be forwarded to the pop up window, even if the button down happened outside it.
Forwarding mouse mouvement events is just a workaround to make our feature work as it is, but we should not rely on mouse movement for this in the first place.

Mouse up is not registered in the popup when mouse down is initiated

This happens with all controls too, not just multi window stuff.

related https://github.com/godotengine/godot/issues/84466

This happens with all controls too, not just multi window stuff.

Good to know there is a rational for it at least. I still don't fully understand why my PR doesn't fix this: https://github.com/godotengine/godot/pull/88342
Doesn't using DisplayServer check state regardless of what context the cursor is in?

@ryevdokimov The problem is not the detection of left/right button state detection. This was already working fine actually :-)
The problem is that the mouse mouvement event are not received when the happen outside of the popup. So the problem is that the _input_from_window_internal function is not called until the mouse enters the popup area.
So what happens is:

You mouse down on the button (the popup doesn't exists yet)
The popup opens
You release the mouse (no event is sent to the popup, so nothing happens)
You move the mouse, you are still outside the popup since your mouse was on the button
There, the behavior is not the same on all platforms:

Windows: an mouse movement event is sent to the popup, the _input_from_window_internal is called. We detect that the mouse moved and that left and right buttons are not pressed and the mouse position is outside the popup. This means that the "on click cycle" is disabled.
Unix: no mouse movement is sent, since it happened outside the popup.

You continue to move the mouse and enter the popup area
A mouse mouvement event is sent to the popup in all platforms, but since we are in 2 different states, different things happens:

Windows: We already have detected that we are not in a "one click cycle", the mouse movement event is ignored (just used for the hover effect)
Unix: We detect a movement with both left and right click released, and we are still waiting for the end of a potential "one click cycle". The code detects that we are inside the popup area, which is the condition to trigger the menu action. So the menu is selected.

Is it more clear ? I can try to make a video with some logs if it can help you visualize what happens in macOS :-) I know it's difficult to imagine this just from text

Please test https://github.com/godotengine/godot/pull/88392 and see if it works as expected on your platforms.

Please test https://github.com/godotengine/godot/pull/88392 and see if it works as expected on your platforms.

Works for me. All the issues it says it will fix seem to be fixed on Windows.

The problem is that the mouse mouvement event are not received when the happen outside of the popup. So the problem is that the _input_from_window_internal function is not called until the mouse enters the popup area.

The PR I was referring to doesn't check against mouse movement anymore to receive button state. It checks against the DisplayServer which I thought will allow capturing state globally from within the popup regardless of where the click was initiated.  Since the problem seems to be resolved though I can ask about it separate from this post.

@ryevdokimov Yes, you don't rely on the event object to get the mouse state, but this doesn't change how the function _input_from_window_internal is called. It is called for any input events, including mouse mouvement events. And your were are relying on the fact the function is called on each mouse mouvement, regardless of how you detect mouse state during the event handling.

@akien-mga It is working on macOS :-)
But as I said, I'm not sure if it's a good fix? Is it expected to receive events that doesn't belongs to the window your control is in?
I do think that fixing https://github.com/godotengine/godot/issues/84466 is a better fix, it's a more expected behavior and would simplify the code of the "one cycle click" feature a lot :-)

I do think that fixing https://github.com/godotengine/godot/issues/84466 is a better fix, it's a more expected behavior and would simplify the code of the "one cycle click" feature a lot :-)

I tried to fix #84466 for this, but it wouldn't work when single window mode was false. Mouse events weren't just being sent to the correct window from the DisplayServer, at least on Windows. See https://github.com/kitbdev/godot/commit/34a2f1846d1f4111c685041cbd2e9db13472d8f0

Huh, I came here searching to see if there was already an issue for this, I see that other people aren't experiencing that on windows but I'm on Windows 11 and I'm experiencing it.
If I right click while moving my mouse to the right/down I reproduce it every time. Only way to properly use right clicks now is if I right click while moving my mouse to the left.

Can't reproduce on 4.2. I'm compiled from master as of 2 days ago.

It seems from the screen record you have that the popup menu takes a bit of time to be actually initialiased (it stays grey for a bit of time) It think that if your mouse enters the popup area before it is fully initialised, you are experiencing the exact same problem we have on macOS.
This is why the proper fix to this is to rely on mouse up event and to not rely on mouse mouvement for this :-)

And i suppose @DanielSnd that #88392 doesn't fix your problem ?

I hadn't tried before, I have now tried #88392 and I can confirm it does indeed fix my problem :)
Thank you!

That's weird ^^' I was expecting it to not fix your problem

That's weird ^^' I was expecting it to not fix your problem

I think it didn't entirely, but did in parts? I just tried again after seeing your comment and this is how it's looking for me at the moment. It doesn't "click" on the place the mouse is, before it would be opening the add child window and such, now it seems to be dismissing the popup but not clicking things on it. But also not every time like it was before.
I do feel this behaviour is different from when I tried and commented yesterday. I'm assuming since this does depend on how long the popup takes to load, when I tried and assumed the behaviour was 100% fixed my popups were loading faster and hiding the issue.

The last one is expected behavior. I don't know if it's OS difference, but that's how most apps work (e.g. VS Code, GIMP, Audacity etc.).

in VS Code and Audacity the items are activated when mouse button is up.

Yeah, it's an OS difference, see https://github.com/godotengine/godot-proposals/discussions/7463 and https://github.com/godotengine/godot/issues/80346

I have reverted the changes in this pull request https://github.com/godotengine/godot/pull/87462, those issues was caused by https://github.com/godotengine/godot/pull/86952, it was an attempt to fix opening the popup and triggering an action in a single mouse click which wasn't working for 4.x because it's no longer embedding the Window by default for the editor. merging this https://github.com/godotengine/godot/pull/87462 which reverts the changes and this https://github.com/godotengine/godot/pull/88392 will fix those issues, and will make the non-embedded PopupMenu recieves the initial mouse release event after opening the Menu.

So given the discussion so far and the multiple related PRs, I think it might be best to start with reverting #86952 to go back to the previous status quo.
Then we can evaluate @bruvzg's and @WhalesState's PRs, and if needed other ones to re-enable what #86952 was trying to achieve without regression. WDYT?
For any such change, we'll need to ensure we test on all platforms with both single-window and multi-window modes.

Just to subscribe and confirm that this is happening on my system. It's almost impossible to use Godot right now!
v4.3.dev.custom_build [fb10e67fe]
Godot v4.3.dev (fb10e67fe) - Ubuntu 22.04.3 LTS 22.04 - X11 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 2060 (nvidia; 535.154.05) - Intel(R) Core(TM) i5-9400F CPU @ 2.90GHz (6 Threads)