Build fails with glibc>=2.34

Due to the SIGSTKSZ and MINSIGSTKSZ macros being redefined in newer versions of glibc, some header files pulled in from infra fail to compile.
Build log:
[  0%] Building C object q_io/external/portmidi/CMakeFiles/portmidi.dir/pm_common/portmidi.c.o
[  1%] Building C object q_io/external/portmidi/CMakeFiles/portmidi.dir/pm_common/pmutil.c.o
[  2%] Building C object q_io/external/portmidi/CMakeFiles/portmidi.dir/porttime/porttime.c.o
[  3%] Building C object q_io/external/portmidi/CMakeFiles/portmidi.dir/porttime/ptlinux.c.o
[  4%] Building C object q_io/external/portmidi/CMakeFiles/portmidi.dir/pm_linux/finddefault.c.o
/home/aaron/Source/q/q_io/external/portmidi/pm_linux/finddefault.c: In function ‘skip_spaces’:
/home/aaron/Source/q/q_io/external/portmidi/pm_linux/finddefault.c:16:12: warning: implicit declaration of function ‘isspace’ [-Wimplicit-function-declaration]
   16 |     while (isspace(c = getc(inf))) ;
      |            ^~~~~~~
/home/aaron/Source/q/q_io/external/portmidi/pm_linux/finddefault.c:9:1: note: include ‘<ctype.h>’ or provide a declaration of ‘isspace’
    8 | #include "portmidi.h"
  +++ |+#include <ctype.h>
    9 |
/home/aaron/Source/q/q_io/external/portmidi/pm_linux/finddefault.c: In function ‘find_default_device’:
/home/aaron/Source/q/q_io/external/portmidi/pm_linux/finddefault.c:84:13: warning: implicit declaration of function ‘pm_find_default_device’; did you mean ‘find_default_device’? [-Wimplicit-function-declaration]
   84 |         i = pm_find_default_device(pref_str, input);
      |             ^~~~~~~~~~~~~~~~~~~~~~
      |             find_default_device
[  5%] Building C object q_io/external/portmidi/CMakeFiles/portmidi.dir/pm_linux/pmlinux.c.o
/home/aaron/Source/q/q_io/external/portmidi/pm_linux/pmlinux.c: In function ‘pm_init’:
/home/aaron/Source/q/q_io/external/portmidi/pm_linux/pmlinux.c:45:34: warning: implicit declaration of function ‘find_default_device’; did you mean ‘pm_find_default_device’? [-Wimplicit-function-declaration]
   45 |     pm_default_input_device_id = find_default_device(
      |                                  ^~~~~~~~~~~~~~~~~~~
      |                                  pm_find_default_device
[  6%] Building C object q_io/external/portmidi/CMakeFiles/portmidi.dir/pm_linux/pmlinuxalsa.c.o
/home/aaron/Source/q/q_io/external/portmidi/pm_linux/pmlinuxalsa.c: In function ‘alsa_out_open’:
/home/aaron/Source/q/q_io/external/portmidi/pm_linux/pmlinuxalsa.c:36:40: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
   36 | #define GET_DESCRIPTOR_CLIENT(info) ((((int)(info)) >> 8) & 0xff)
      |                                        ^
/home/aaron/Source/q/q_io/external/portmidi/pm_linux/pmlinuxalsa.c:151:20: note: in expansion of macro ‘GET_DESCRIPTOR_CLIENT’
  151 |     desc->client = GET_DESCRIPTOR_CLIENT(client_port);
      |                    ^~~~~~~~~~~~~~~~~~~~~
/home/aaron/Source/q/q_io/external/portmidi/pm_linux/pmlinuxalsa.c:37:37: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
   37 | #define GET_DESCRIPTOR_PORT(info) (((int)(info)) & 0xff)
      |                                     ^
/home/aaron/Source/q/q_io/external/portmidi/pm_linux/pmlinuxalsa.c:152:18: note: in expansion of macro ‘GET_DESCRIPTOR_PORT’
  152 |     desc->port = GET_DESCRIPTOR_PORT(client_port);
      |                  ^~~~~~~~~~~~~~~~~~~
/home/aaron/Source/q/q_io/external/portmidi/pm_linux/pmlinuxalsa.c: In function ‘alsa_in_open’:
/home/aaron/Source/q/q_io/external/portmidi/pm_linux/pmlinuxalsa.c:36:40: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
   36 | #define GET_DESCRIPTOR_CLIENT(info) ((((int)(info)) >> 8) & 0xff)
      |                                        ^
/home/aaron/Source/q/q_io/external/portmidi/pm_linux/pmlinuxalsa.c:293:20: note: in expansion of macro ‘GET_DESCRIPTOR_CLIENT’
  293 |     desc->client = GET_DESCRIPTOR_CLIENT(client_port);
      |                    ^~~~~~~~~~~~~~~~~~~~~
/home/aaron/Source/q/q_io/external/portmidi/pm_linux/pmlinuxalsa.c:37:37: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
   37 | #define GET_DESCRIPTOR_PORT(info) (((int)(info)) & 0xff)
      |                                     ^
/home/aaron/Source/q/q_io/external/portmidi/pm_linux/pmlinuxalsa.c:294:18: note: in expansion of macro ‘GET_DESCRIPTOR_PORT’
  294 |     desc->port = GET_DESCRIPTOR_PORT(client_port);
      |                  ^~~~~~~~~~~~~~~~~~~
/home/aaron/Source/q/q_io/external/portmidi/pm_linux/pmlinuxalsa.c: In function ‘alsa_write_flush’:
/home/aaron/Source/q/q_io/external/portmidi/pm_linux/pmlinuxalsa.c:436:52: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  436 |     VERBOSE printf("snd_seq_drain_output: 0x%x\n", (unsigned int) seq);
      |                                                    ^
/home/aaron/Source/q/q_io/external/portmidi/pm_linux/pmlinuxalsa.c: In function ‘pm_linuxalsa_init’:
/home/aaron/Source/q/q_io/external/portmidi/pm_linux/pmlinuxalsa.c:35:40: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
   35 | #define MAKE_DESCRIPTOR(client, port) ((void*)(((client) << 8) | (port)))
      |                                        ^
/home/aaron/Source/q/q_io/external/portmidi/pm_linux/pmlinuxalsa.c:750:31: note: in expansion of macro ‘MAKE_DESCRIPTOR’
  750 |                               MAKE_DESCRIPTOR(snd_seq_port_info_get_client(pinfo),
      |                               ^~~~~~~~~~~~~~~
/home/aaron/Source/q/q_io/external/portmidi/pm_linux/pmlinuxalsa.c:35:40: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
   35 | #define MAKE_DESCRIPTOR(client, port) ((void*)(((client) << 8) | (port)))
      |                                        ^
/home/aaron/Source/q/q_io/external/portmidi/pm_linux/pmlinuxalsa.c:760:31: note: in expansion of macro ‘MAKE_DESCRIPTOR’
  760 |                               MAKE_DESCRIPTOR(snd_seq_port_info_get_client(pinfo),
      |                               ^~~~~~~~~~~~~~~
[  6%] Linking C static library libportmidi.a
[  6%] Built target portmidi
[  7%] Building C object q_io/external/portaudio/CMakeFiles/portaudio_static.dir/src/common/pa_allocation.c.o
[  7%] Building C object q_io/external/portaudio/CMakeFiles/portaudio_static.dir/src/common/pa_converters.c.o
[  8%] Building C object q_io/external/portaudio/CMakeFiles/portaudio_static.dir/src/common/pa_cpuload.c.o
[  9%] Building C object q_io/external/portaudio/CMakeFiles/portaudio_static.dir/src/common/pa_debugprint.c.o
[ 10%] Building C object q_io/external/portaudio/CMakeFiles/portaudio_static.dir/src/common/pa_dither.c.o
[ 11%] Building C object q_io/external/portaudio/CMakeFiles/portaudio_static.dir/src/common/pa_front.c.o
[ 12%] Building C object q_io/external/portaudio/CMakeFiles/portaudio_static.dir/src/common/pa_process.c.o
[ 13%] Building C object q_io/external/portaudio/CMakeFiles/portaudio_static.dir/src/common/pa_ringbuffer.c.o
[ 14%] Building C object q_io/external/portaudio/CMakeFiles/portaudio_static.dir/src/common/pa_stream.c.o
[ 14%] Building C object q_io/external/portaudio/CMakeFiles/portaudio_static.dir/src/common/pa_trace.c.o
[ 15%] Building C object q_io/external/portaudio/CMakeFiles/portaudio_static.dir/src/hostapi/skeleton/pa_hostapi_skeleton.c.o
[ 16%] Building C object q_io/external/portaudio/CMakeFiles/portaudio_static.dir/src/os/unix/pa_unix_hostapis.c.o
[ 17%] Building C object q_io/external/portaudio/CMakeFiles/portaudio_static.dir/src/os/unix/pa_unix_util.c.o
[ 18%] Building C object q_io/external/portaudio/CMakeFiles/portaudio_static.dir/src/hostapi/jack/pa_jack.c.o
[ 19%] Building C object q_io/external/portaudio/CMakeFiles/portaudio_static.dir/src/hostapi/alsa/pa_linux_alsa.c.o
[ 20%] Linking C static library libportaudio.a
[ 20%] Built target portaudio_static
[ 20%] Building CXX object q_io/CMakeFiles/libqio.dir/src/audio_file.cpp.o
[ 21%] Building CXX object q_io/CMakeFiles/libqio.dir/src/audio_device.cpp.o
[ 22%] Building CXX object q_io/CMakeFiles/libqio.dir/src/audio_stream.cpp.o
[ 23%] Building CXX object q_io/CMakeFiles/libqio.dir/src/midi_device.cpp.o
[ 24%] Building CXX object q_io/CMakeFiles/libqio.dir/src/midi_stream.cpp.o
[ 25%] Linking CXX static library liblibqio.a
[ 25%] Built target libqio
[ 26%] Building CXX object example/CMakeFiles/example_list_devices.dir/list_devices.cpp.o
[ 26%] Linking CXX executable example_list_devices
[ 26%] Built target example_list_devices
[ 27%] Building CXX object example/CMakeFiles/example_sin_synth.dir/sin_synth.cpp.o
[ 28%] Linking CXX executable example_sin_synth
[ 28%] Built target example_sin_synth
[ 29%] Building CXX object example/CMakeFiles/example_square_synth.dir/square_synth.cpp.o
[ 30%] Linking CXX executable example_square_synth
[ 30%] Built target example_square_synth
[ 31%] Building CXX object example/CMakeFiles/example_delay.dir/delay.cpp.o
[ 32%] Linking CXX executable example_delay
[ 32%] Built target example_delay
[ 33%] Building CXX object example/CMakeFiles/example_io_delay.dir/io_delay.cpp.o
[ 34%] Linking CXX executable example_io_delay
[ 34%] Built target example_io_delay
[ 35%] Building CXX object example/CMakeFiles/example_midi_monitor.dir/midi_monitor.cpp.o
[ 36%] Linking CXX executable example_midi_monitor
[ 36%] Built target example_midi_monitor
[ 36%] Building CXX object example/CMakeFiles/example_biquad_filters.dir/biquad_filters.cpp.o
[ 37%] Linking CXX executable example_biquad_filters
[ 37%] Built target example_biquad_filters
[ 37%] Building CXX object test/CMakeFiles/test_bitset.dir/bitset.cpp.o
In file included from /usr/include/signal.h:328,
                 from /home/aaron/Source/q/infra/include/infra/catch.hpp:7712,
                 from /home/aaron/Source/q/test/bitset.cpp:7:
/home/aaron/Source/q/infra/include/infra/catch.hpp:10453:58: error: call to non-‘constexpr’ function ‘long int sysconf(int)’
10453 |     static constexpr std::size_t sigStackSize = 32768 >= MINSIGSTKSZ ? 32768 : MINSIGSTKSZ;
      |                                                          ^~~~~~~~~~~
In file included from /usr/include/bits/sigstksz.h:24,
                 from /usr/include/signal.h:328,
                 from /home/aaron/Source/q/infra/include/infra/catch.hpp:7712,
                 from /home/aaron/Source/q/test/bitset.cpp:7:
/usr/include/unistd.h:640:17: note: ‘long int sysconf(int)’ declared here
  640 | extern long int sysconf (int __name) __THROW;
      |                 ^~~~~~~
In file included from /home/aaron/Source/q/test/bitset.cpp:7:
/home/aaron/Source/q/infra/include/infra/catch.hpp:10512:45: error: size of array ‘altStackMem’ is not an integral constant-expression
10512 |     char FatalConditionHandler::altStackMem[sigStackSize] = {};
      |                                             ^~~~~~~~~~~~
make[2]: *** [test/CMakeFiles/test_bitset.dir/build.make:76: test/CMakeFiles/test_bitset.dir/bitset.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:591: test/CMakeFiles/test_bitset.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

Would you care to propose a fix? It seems to be in the dependent libs.

Once the above-linked PR is merged, we can bump the submodule pointer (also in elements) to fix this.

I merged the PR, but I just realized I already did something like this. Have you tried develop instead of master? I'll check later.

Thanks, BTW!

No problem! I did not know to check develop, but it appears to be behind master by one commit :)


[$1000] [Needs reproduction] Incoming messages are not moving the conversation to the top of the sidebar

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Login with account A, account B & Account C on different devices or browsers
Send few messages from Account B to Account A
Send few messages from Account C to Account A

Expected Result:
Account C message should move to the top
Actual Result:
No shift in LHN. Last message it not on top
Workaround:
unknown
Platform:

Where is this issue occurring?

Web
iOS
Android
Desktop App
Mobile Web

Version Number: 1.1.39-1
Reproducible in staging?: Y
Reproducible in production?: Y
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation

Expensify/Expensify Issue URL:
Issue reported by: @marcaaron
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1644435483404149
View all open jobs on GitHub

Triggered auto assignment to @aldo-expensify (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

@mvtglobally from looking at the code, I think this is like this by design. The "Hi name" conversation doesn't go above "Maria" because there is a pending debt and that makes it higher priority in the list.
Related code:
https://github.com/Expensify/App/blob/c0ea782bacf59ed76b7e865e10dbca981b530307/src/libs/OptionsListUtils.js#L702-L722

@marcaaron since you reported this. Can you please check the above applies to your specific scenario as well?

I don't know what is being reported in this issue, but the sidebar inconsistencies I'm seeing are DRASTIC. A message that I got seconds ago will appear super far down the list of chats in the default mode.

I'll have a look again and see if I can reproduce it the problem

I'm failing to reproduce the problem... what I did:

Use account A to chat to multiple accounts
Log in into the other accounts and send message to A
Didn't see conversations in wrong order at any time

@mvtglobally can you reproduce this problem without using accounts that have pending IOU?

@aldo-expensify Eep! 4 days overdue now. Issues have feelings too...

I'm returning this to the pool with the Needs Reproduction label

I think I experienced the same issue this morn and reported it in #expensify-open-source. Pasting details below.
BUG: Most recent chat isn't showing at top of LeftHandNav (LHN) after clicking on it then going to another chat
Action Performed:
Saw on phone I got a new message from Garrett
Open NewDot, I quit out of it the night before then closed laptop
After a while I refreshed cuz chat wasn't showing (see Notes below)
Saw Garrett chat at top in LHN then clicked, didn't type anything
Clicked another chat
Expected Result: Garrett chat should show at top of LHN since it's most recent chat (below pinned and drafts)
Actual Result: Garrett chat doesn't show at, or near, top (not where it's at)
Platforms: Desktop
Version Number: Version 1.1.39-3
Screenshots or Videos: in :thred: w/ logs (i think)
Notes: Maybe HOLD on this issue since it's likely (:crossed_fingers:) the cause of chats not showing at launch?
https://user-images.githubusercontent.com/22508304/156419255-08ebe5fb-f3c3-463d-af0e-5a2d4e3f1893.mp4
Desktop logs
matt logs mar 2 garrett.txt
Web logs
web logs garrett chat issue.txt
I'm going to move this along and get it posted on Upwork, will leave the Needs Reproduction label on it cuz I'm not sure how to consistently repro.

Current assignee @mallenexpensify is eligible for the External assigner, not assigning anyone new.

Triggered auto assignment to Contributor-plus team member for initial proposal review - @parasharrajat (Exported)

Triggered auto assignment to @mountiny (Exported), see https://stackoverflow.com/c/expensify/questions/7972 for more details.

📣 @rushatgabhane You have been assigned to this job by @mallenexpensify!
Please apply to this job in Upwork and leave a comment on the Github issue letting us know when we can expect a PR to be ready for review 🧑💻
Keep in mind: Code of Conduct | Contributing 📖

Job posted.
https://www.upwork.com/jobs/~01ae855dd14dc2291b
@rushatgabhane can you review and see if you have any ideas on how to reliably reproduce?

Assigning help wanted label as there was some blip again which took it off.

Thanks @mountiny, didn't catch that!

Doubled to $4000
https://www.upwork.com/jobs/~01ae855dd14dc2291b

Not doubling this right now because we don't have clear reproducible steps.  It's possible that it's not occurring any more too.  There was recently an update to load chats faster on startup and that might have fixed this.  Will put on hold next week if no ones experienced this issue again

Bumped to monthly cuz we don't have reproducible steps.  I haven't had the issue happen for a while either

I am going ooo for 5 weeks so I am re-assigning some CME issues assigned to me. This one still awaits reproduction steps! Thank you @roryabraham for help!

@Expensify/contributor-plus feel free to pick this up, I'm unassigning because I'll be OOO.
There are no untriaged proposals yet.

Going to put this on hold since it hasn't happened recently, we still don't have reproducible steps and things might change  with our the Offline work we're doing

Still on hold

Should we close this one given there are no good reproduction steps and this will most likely change a lot with the Offline first initiative/ Marc is focusing on the notifications reliability which would I guess also entail the LHN reliability?
Thinking that keeping the open issues clean is better than keeping many on hold, we can open them later or create new ones with more specific reproduction steps if this becomes a bigger problem.

Agree, this is probably related to a bug with calculating whether something is unread but FWIW I haven't run into this again so I will add it to the issues I'm tracking and we can close it for now.


Expand this proposal to include Unit-related math and utility functions

This issue is more of a discussion starter, not a final suggestion.
The use cases for a Measure object stretch far beyond the currently stated use cases and goals. Constraining the Measure object/API (we could call it an API, right?) to strictly these use cases greatly limits the potential for a standardized measuring API on the web. It makes sense, given that taking input and handling units and measurements is common in many applications.
I argue that inspiration can be taken from the best current state of the art regarding units and measurements on the web.
Among the libraries I've personally explored, is UnitMath.
The notable features offered by UnitMath and not this proposal are, among others:

representing units as variables, with which common operations and conversions can be completed seamlessly
unit splitting
unit simplification
custom units and measurement systems
unit serialization

While not all features offered by this library (or others) should necessarily be included in a standard web API, there is experience in these libraries that could be applied or considered in this proposal to make for a better spec.
I invite @ericman314, the creator of UnitMath, to leave his thoughts here.

Thank you for your response, Eric!
I'd like to add a comment to this point

Even within the same unit "system" (SI, CGS, US, etc.) there can be multiple ways to "simplify" a unit, which depends on context. For instance, when calculating torque, answers are typically expressed in foot pounds or newton meters. The latter is equivalent to joules; would that be an appropriate simplification?

It's funny that I was sure there was no reliable way to solve this preferred unit specificity issue until I glanced over the units.xml, which is referenced in this proposal's Description section.
At around line 400 (393 to be more precise), the unitPreferenceData tag opens, and its contents are the preferred units for various real-world usage areas of different unit categories (analogous to quantities in UnitMath). I am sure these unit preferences can be leveraged to differentiate between the mentioned newton meters and joules when measuring torque.
If custom units are to be supported, they could also be integrated into such a system.
All that needs to be done is allow the API to take these usages as input before returning new units (upon arithmetic operations, conversions, formatting, etc.), just like the example from one of Ben's other proposals: Smart Unit Preferences.
Other than that, I agree with everything you've mentioned.
While this proposal may originate from the needs of the Internationalisation API, I stand by my statement that limiting the Measure API to strictly its needs holds it back enormously.
Getting this API right would eliminate the need for external libraries and all the overhead & friction of integrating them into projects.
Like Temporal did with dates & times, Measure could do with units & measures.
I am truly hopeful we can get units right once and for all. I'd also invite everybody reading this to consider the server-side usages of such an API. The opportunities are so much greater than Internationalisation here.
I'm really looking forward to @ben-allen's opinion on what we've discussed here up until this point.

I'm very excited about this feedback, and about what I've been hearing from people at the TC39 plenary. When I prepared this draft of the proposal, my expectation was that the unit conversion aspect of Smart Units, and then in turn the unit conversion aspect of Measure, would receive significant pushback. However, I've received more or less the opposite, with lots of encouragement to increase the scope of Measure.
> Like Temporal did with dates & times, Measure could do with units & measures.
Wow!  That is both very high praise and very daunting.
> Custom units and systems -- This would indeed be very powerful, and some users would need this if the units they want are not built-in. Alternatively, the spec could include every conceivable unit so it can always handle everyone's needs. But considering there are at least half a dozen definitions of "cup" depending on locale, this could get pretty crazy.
I'm trying to avoid craziness as much as possible, at least right now.  A reason I like CLDR's units.xml as a data source is that they've already done the work on what units are in sufficiently widespread use and have sufficiently stable definitions from locale to locale. This is almost but not quite a proxy for what conversions people might want to make in general. Following on your example, for my part I'm loathe to dive into the array of slightly different definitions of "cup", since

Discoverability becomes a concern
If we drastically expand the number of measurements, the size of the data becomes a concern. If we're just using the units.xml units, we're only dealing with about 8kb.

> Converting between volumes and mass is common in recipes, and this could be done by multiplying or dividing by a density.
Ah, once again the cups unit is a concern/problem. We've carefully dodged this in Smart Units by selecting units that aren't involved in cooking. It feels a little bit like a joke stating this in these terms, but it is absolutely not.
Thank you for the encouraging feedback! More on all of this in a bit -- I'm in the middle of a major revision of the proposal.

CLDR's units.xml is indeed a solid base to start with. It also includes most of the units anyone could want.
If data size is a concern we want control over, we could use a fork of their file, including, excluding, adding & modifying its contents to better wrap the API. We'd then need to also consider the issue of maintaining said file and keeping in mind concerns of backward compatibility.

I'm trying to avoid craziness as much as possible, at least right now. A reason I like CLDR's units.xml as a data source is that they've already done the work on what units are in sufficiently widespread use and have sufficiently stable definitions from locale to locale. This is almost but not quite a proxy for what conversions people might want to make in general. Following on your example, for my part I'm loathe to dive into the array of slightly different definitions of "cup", since

Discoverability becomes a concern
If we drastically expand the number of measurements, the size of the data becomes a concern. If we're just using the units.xml units, we're only dealing with about 8kb.

It's understandable to avoid such complications as much as possible.
However, designing the API so developers can add their custom units would solve this issue and, to some extent, the issue of data size. This way, developers can consult the supported units (which are already mostly the stable, "official", internationally standardized ones) and add the ones they need as they see fit.
Maybe Eric could give some advice on this topic if he's got the time & availability, once the initial revised API you work on is done. I recommend this because his system for adding custom units is very flexible and new units can be specified in terms of pre-existing units, constants, etc.
An alternative, or even better, complementary way of adding custom units could be loading a raw XML/JSON file in the shape of units.xml (or whatever structure the API ends up using) through a function. This way, both web pages and servers could quickly inject new units in the API from their resource directories.
I'm not experienced in contributing to web standards but would like to help as much as I can with this proposal, as it would solve a major pain point in one of my personal projects.

One decision that needs to be made early on is what arithmetic operations Measure will support. If it only has to support simple conversion, and possibly addition and subtraction, then units like meter, meter-squared, and meter-per-second could be completely separate and independent. This alone would probably meet the needs of most use cases.
But if you're aiming to make a fully-featured API to support multiplication, division, and other operations, it will need to have a deeper understanding of the physical relationships between units like meter and meter-per-second. Whether this extends to arbitrary dimensions that may not have a true physical meaning (for example, kg^7), or is restricted to a set of known physical quantities is up to you. But these decisions will affect how units and custom units are defined, and whether units.xml will work as-is.
I think a fully-featured API for units would be amazing. We might even convince some folks in the science and engineering communities to give Javascript a try. At the very least, it would lower the barrier to entry for making educational science- and engineering-related websites. There are really a lot of potential applications.

You may be interested in this, @josdejong


Allow ToolTask.GetProcessStartInfo to be overridden

Current ToolTask implementers are able to set values for previously undefined environment variables and to override previously defined variable values via the EnvironmentVariables property. They are not, however, able to remove Environment Variables which should not be passed down to the ToolTask's child process.
This inability to manage a ToolTask's environment creates issues particularly in the builds of programs whose behavior is affected by the process environment like https://github.com/dotnet/cli. A ToolTask which invokes such a program needs to be able to selectively provide a clean process, ensuring deterministic build behavior. Of course, sometimes it makes sense for such variables to flow, but there is not a current option for preventing that flow without re-implementing ToolTask.
@AndyGerlicher @rainersigwald @livarcocc

@piotrpMSFT a build is failing because you changed the public surface (new virtual method). Can you please run ./cibuild.sh --target CoreCLR locally and commit the changes it generates?

@dotnet-bot test this please

Restarting the PR to get rid of the Mono jobs

I validated that the other workaround does not work. The Environment Variables set to null come out as "" anyways.
Can we merge? I'd love to get CLI moving forward...

I missed @cdmihai's earlier comment. Will do!

@cdmihai I ran:

git clean -xfd
./cibuild.sh --target CoreCLR

Once finished, I saw no changes that were not .gitignored. am I missing a flag?

The tool that regenerates the public API is Windows only... We discussed this at length and decided it would be rare that a non-Windows person would change our public API.
cibuild.cmd --target All --scope build on a Windows machine should give you what you want.  If you don't have access to a Windows machine, I can clone your repo and run it.  Sorry for the hassle!

I just updated the api surface (manually), let's see if that was sufficient.

Thanks @rainersigwald

Rebased + squashed to rtw. Will merge when green.

@dotnet-bot test Windows_NT Build for Desktop please

@dotnet-bot test Windows_NT Build for Desktop please


bug in arange when using the Dask backend

If arange is called without all three positional arguments (start, stop, step) it seems to fail for the Dask backend. It checked that it works as expected for both NumPy and CuPy.
This reason is due to the default implementation in dask_backend.py:
https://github.com/Quansight-Labs/unumpy/blob/b54321be35f7ac6df28cc30b8b9c85379883381e/unumpy/dask_backend.py#L83-L85
Here all three arguments will be in *args even if some are None. However, inside of dask.array.arange, len(args) is used to determine behavior. Here len(args) is always 3, so if any of them are None, there will be a bug:
https://github.com/dask/dask/blob/ec16e5ff53c4ff660267061323727ddfbb05f588/dask/array/creation.py#L297-L306
To reproduce
import uarray as ua
import unumpy as np
import unumpy.dask_backend as DaskBackend

with ua.set_backend(DaskBackend):
    ret = np.arange(9)

A solution seems to be just removing the default arange definition from dask_backend.py. Was that there for an older version of Dask where arange had not yet been implemented?

A solution seems to be just removing the default arange definition from dask_backend.py. Was that there for an older version of Dask where arange had not yet been implemented?

I believe not.


Update the node provide faq to include two more questions.

Update the node provide faq to include validation script and network bandwidth.

@zire I'll merge without your review. You can do a post-review afterward.


feature: allow disabling of require-mock feature

🚀 Feature Proposal
A flag to allow the disabling of the (recursive) replacement of a module's require function, to improve testing speed for projects that don't need it.
Motivation
We have a sizeable JavaScript project with many files. So many files in fact that the replacement of the require function with a requireModuleOrMock function is starting to make a large difference in the runtime of our tests.
A small subset of our tests, when run with native jest 26.4.2
$ time jest -i
       24.88 real        26.00 user         3.82 sys

When putting in the following (hacky) patch to disable the require replacement:
jest-runtime/index.js
-----------------------------
    if (filename.endsWith('.test.js')) {
      // To keep the magic globals available in the test files themselves
      Object.defineProperty(localModule, 'require', {
        value: this._createRequireImplementation(localModule, options)
      });
    } else {
      // Otherwise use a stock 'require' function
      Object.defineProperty(localModule, 'require', {
        value: require('module').createRequireFromPath(filename)
      });
    }

Our runtime looks like this:
$ time jest -i
       10.05 real        10.86 user         1.14 sys

In our project, the runtime overhead of this feature seems to be about 150%. We have hundreds of test suites like this one, each of them paying this penalty.
I'd gladly trade the ability to be able to mock the importing of a module--and rewrite the handful of tests that use it--for a 60% reduction in test times.
Example
Add a new flag moduleMocking (default: true):
$ jest --no-module-mocking [...]

// or configured through jest.config.js

Pitch

Why does this feature belong in the Jest core platform?

The Jest core platform implements this functionality without offering a way to disable it. I don't want it yet I'm forced to pay for it in execution time.

It's not just mocking, it's also what gives transformation of source code (for both future/custom syntax and code coverage) and code execution within a sandbox (e.g. allowing you to use window when writing tests for the browser and isolation between tests). So disabling the custom require (and import) would mostly defeat the purpose of using Jest over e.g. mocha in the first place (except for the watch mode, possibly?).
To speed up tests you might wanna consider reducing the dependency tree (meaning less files to evaluate). But disabling such a core feature of Jest is not really something we wanna do.
As a last resort you can plug in your own runtime that does whatever you want. I don't think it's documented, but it's moduleLoader: https://github.com/facebook/jest/blob/fe5b29aa8718d222a17574dc5d033e84d897ea9f/packages/jest-runner/src/runTest.ts#L114

@rix0rrr did you manage to alleviate the overhead?

@SimenB I'm curious why jest-runtime recursively requireModuleOrMock the children of node_modules.  For example, my projects depends on sequelize and when I profile a jest execution, I see that jest-runtime is requireModuleOrMock on node_modules/sequelize/lib/data-types.js (see screenshot below).  There is no reasonable prospect of needing to mock that module.  I admit that I may be missing something obvious; ultimately just curious if this behaviour is by design?  Thanks.

Oh that's a very fair point. I didn't even think that far ahead, but you are correct.

@rthreei yes, that's how requiring modules work - it's depth first following each require statement as we find them. In the example of sequelize I assume not every test you have needs a real sequelize, so you can mock it out and remove that entire tree from those tests.  Of course testing with the real module is very useful for more integration type tests, but for unit tests you often don't need it

@SimenB I think the suggestion is that there may be no need to use your own hooked version of require for transitive dependencies in node_modules.
The chances we'd be interested in on-the-fly-compilation, mocking, and code coverage of those modules is small.

Compilation, code coverage: (typically) only our own code
Magic globals: definitely only our own code
Mocking: (typically) only our first-level dependencies

There might be (potentially substantial) performance gains to be had by deferring to built-in require() for transitive dependencies, especially for libraries that have complex dependency trees.
Yes, mocking the direct dependency (thereby preventing the transitive tree from being loaded) would technically work, but it seems like a hard-to-use and blunt tool to achieve something that could be transparent. Plus, it probably reduces the value of your tests as you are now only testing up to the library boundary, and no longer testing the integration of your code and theirs.
(Of course, of those features, mocking is the most contentious one. I can imagine someone to have mocked a transitive dependency—even though they probably shouldn't have. For backwards compatibility it should therefore be an option)

That's still ignoring the sandboxing I brought up in my previous comment. We need to load all code per sandbox so they can run in their own environment (DOM or Node) and so that anything that messes with globals are contained and predictable. And we cannot execute some code within one realm and some in another.
Your suggestion will make it incredibly hard to reason about what can do e.g. global.fetch =  and work and what wouldn't. And you would 100% break integration with libraries as e.g. instanceof checks does not work between realms.

Jest will never add an option to purposefully break the sandbox and the guarantees that brings - that's the basis of Jest's value proposition. But if you wanna ignore those guarantees because it works for your specific use case I again recommend providing your own moduleLoader via config and overriding requireModuleOrMock (and possibly some more stuff) to just use node's native require

I guess I don't understand how sandboxing works well enough.  😅
Thanks for being patient! Got the message loud and clear.

That's perfectly fine, I'm sorry if my message came across as confrontational. I know not many people have poked at the vm API of node, so it's sorta hard to know  what details to provide in responses. I very much want to make Jest faster and allow optimizations to occur, so please keep ideas coming. But module loading/caching is probably not the avenue to pursue as it'll mean compromising on some core features of Jest. That said, it's almost guaranteed that we could so parts of it in a better way, so it's not like it's a "don't touch topic".

Thanks @SimenB !

But if you wanna ignore those guarantees because it works for your specific use case I again recommend providing your own moduleLoader via config and overriding requireModuleOrMock (and possibly some more stuff) to just use node's native require

I couldn't find documentation on moduleLoader.  Is there much to it?

Thanks @SimenB !

But if you wanna ignore those guarantees because it works for your specific use case I again recommend providing your own moduleLoader via config and overriding requireModuleOrMock (and possibly some more stuff) to just use node's native require

I couldn't find documentation on moduleLoader.  Is there much to it?


Add Product and Properties models

Useful if you want to expose product Wix properties.

Why do we need to make these public? All others are internal now...

It was because I used them in my application.
I'm making a second tool to easily add Properties in a Wix installer, following the Remember Properties Pattern.
I'm not adding this feature to Wax itself because I don't want to break your UI, but I can send you my project if you're interested, or I can add it in your solution and send you a PR.


Hyper not stripping Connection header field

Hyper sends TCP-FIN to the latest build of apache traffic server right after sending the request data if I mention 'Connection':'Keep-Alive' in my request header.

@persiaAziz I'm afraid I'll need a little bit more information. Can you provide the code you're using please?

`#import h2.connection
import json
from hyper import HTTPConnection
import hyper
import argparse
def getResponseString(response):
string = "HTTP/2 {0}\r\n".format(response.status)
string+='date: '+response.headers.get('date')[0].decode('utf-8')+"\r\n"
string+='server: '+response.headers.get('Server')[0].decode('utf-8')+"\r\n"
return string
def makerequest(port):
hyper.tls._context = hyper.tls.init_context()
hyper.tls._context.check_hostname = False
hyper.tls._context.verify_mode = hyper.compat.ssl.CERT_NONE
conn = HTTPConnection('localhost:443'.format(port), secure=True)

sites={'www.example.com'}
#print("port---------",port)
responses = []
request_ids = []
hdr={'Host':'www.example.com','Connection':'Keep-Alive'}
for site in sites:
        request_id = conn.request('GET',url=site,headers=hdr)
        request_ids.append(request_id)

    # get responses
for req_id in request_ids:
    response = conn.get_response(req_id)
    print(getResponseString(response))
    #body = json.loads(response.read().decode("utf8"))
    #responses.append(body)
#print(responses)

def main():
parser = argparse.ArgumentParser()
parser.add_argument("--port","-p",
type=int,
help="Port to use")
args=parser.parse_args()
makerequest(args.port)
if name == 'main':
main()
`

You can reproduce the issue with the above code. It is the Connection field in the header that causes the issue.

@persiaAziz Do you get an exception in this code? I suspect you will.

Yes I do @Lukasa it tells me 'stream forcefully closed' as I try to read the response

Can you print the full stdout?

python3.5 h2client.py -p 443 Traceback (most recent call last):   File "h2client.py", line 46, in <module>     main()   File "h2client.py", line 43, in main     makerequest(args.port)   File "h2client.py", line 31, in makerequest     response = conn.get_response(req_id)       File "/usr/local/lib/python3.5/dist-packages/hyper/common/connection.py", line 129, in get_response     return self._conn.get_response(*args, **kwargs)   File "/usr/local/lib/python3.5/dist-packages/hyper/http20/connection.py", line 312, in get_response     return HTTP20Response(stream.getheaders(), stream)   File "/usr/local/lib/python3.5/dist-packages/hyper/http20/stream.py", line 230, in getheaders     self._recv_cb(stream_id=self.stream_id)   File "/usr/local/lib/python3.5/dist-packages/hyper/http20/connection.py", line 768, in _recv_cb     self._get_stream(stream_id)   File "/usr/local/lib/python3.5/dist-packages/hyper/http20/connection.py", line 289, in _get_stream     raise StreamResetError("Stream forcefully closed") hyper.http20.exceptions.StreamResetError: Stream forcefully closed

Hrm. Can you run pip install -U h2 and try again please? I'm interested to see if you can get a different exception.

hmm now It actually complains about that field
Traceback (most recent call last):   File "h2client.py", line 46, in <module>     main()   File "h2client.py", line 43, in main     makerequest(args.port)   File "h2client.py", line 26, in makerequest     request_id = conn.request('GET',url=site,headers=hdr)   File "/usr/local/lib/python3.5/dist-packages/hyper/common/connection.py", line 121, in request     method=method, url=url, body=body, headers=headers   File "/usr/local/lib/python3.5/dist-packages/hyper/http20/connection.py", line 281, in request     self.endheaders(message_body=body, final=True, stream_id=stream_id)   File "/usr/local/lib/python3.5/dist-packages/hyper/http20/connection.py", line 555, in endheaders     stream.send_headers(headers_only)   File "/usr/local/lib/python3.5/dist-packages/hyper/http20/stream.py", line 98, in send_headers     conn.send_headers(self.stream_id, headers, end_stream)   File "/usr/local/lib/python3.5/dist-packages/h2/connection.py", line 803, in send_headers     headers, self.encoder, end_stream   File "/usr/local/lib/python3.5/dist-packages/h2/stream.py", line 788, in send_headers     headers, encoder, hf, hdr_validation_flags   File "/usr/local/lib/python3.5/dist-packages/h2/stream.py", line 1119, in _build_headers_frames     encoded_headers = encoder.encode(headers)   File "/usr/local/lib/python3.5/dist-packages/hpack/hpack.py", line 229, in encode     for header in headers:   File "/usr/local/lib/python3.5/dist-packages/h2/utilities.py", line 368, in _validate_host_authority_header     for header in headers:   File "/usr/local/lib/python3.5/dist-packages/h2/utilities.py", line 302, in _reject_pseudo_header_fields     for header in headers:   File "/usr/local/lib/python3.5/dist-packages/h2/utilities.py", line 274, in _reject_connection_header     "Connection-specific header field present: %s." % header[0] h2.exceptions.ProtocolError: Connection-specific header field present: b'connection'.

Yup, that's what I thought.
So, the Connection header field is not allowed in HTTP/2. You should find this problem resolved if you remove it from your request. However, I'm going to consider this an open bug: hyper should strip it automatically anyway.

Just a bit more information on this. I upgraded to h2==2.5.0 today and my code using the HTTP20Adapter with requests stopped working. I went back and tested the current example in the hyper docs and it hits this issue as well. This is because a 'Connection' headers appears in Request's default headers list.
I was originally going to suggest patching the adapter, but after reading through this it looks like it's a somewhat more pervasive issue. I believe what you're suggesting is stripping the 'Connection' header on all HTTP/2 connections if encountered, rather than raising an exception. Is that correct @Lukasa? I'd be willing to take a swing at this if no one else has started work on it.

That's exactly what I'm suggesting. I'm happy for you to take a swing at it.

This should now be resolved python-hyper/hyper-h2#382 on the master branch and available in hyper-h2's next release (2.6.0).

How to work around it?

@hupantingxue The easiest thing to do is just to install from the development branch for now.


Language Decoder is giving incorrect values

Note that it does not fail if we are using elm-only (see: https://ellie-app.com/s7nr2SkYVCza1).
It fails when Elm-pages hydrates after the pre-render, so nothing is wrong with this library.


Avoid sentinel-0 restarts

Because the system comes up in stages, sentinel-0 zero always errors out and restarts once or twice before things stabilize. Is there a way to avoid this?

No.  Tell me if there is a good way to avoid it...


Question on the Beaver's generation

Doest ESPN uses any two-party protocol to generate the Beaver triple ?
Or just re-use CrypTen's TTP/TFP provider for the beaver generation ?

We do re-use CrypTen's TTP/TFP provider for the beaver generation. You can find additional details in the paper.
I am closing this issue as the question has been answered.

I mean, if a TTP/TFP is used, then it might be unfair to directly compare with COINN, GForce et al. which are helper-less.

The TTP is only used in the pre-computation phase and we do not benchmark this part for any of the protocols. We only measure online time.


Downloaded folder naming

Is it possible to remove these "_" and add " - " between artist and manga title？

The underscore means there was an invalid character in that position, it isn't a way to separate the artist from the title

I knew that,i mean if the underscore could be removed and replace by "nothing"?

Fixed in 2.5.0, the old galleries must be renamed manually

Thank you!


max  battery bank's  ?

in theory there can be  15 BMS Moduls on the RS485 Bus .
But it seams after  >5 battery bank entry's  i get some memory problems.
Iam not sure where the code  crashes .  look like during mqtt  or debug preparing.

You could try to add a single sensor (f.e. total voltage) per BMS. Does the ESP survive in this case? The ESP cashs if you hit the resource limits.


Add JS Split provider

Add JS frontend Split provider

Fixed @beeme1mr, thanks!

Hey @beeme1mr, while trying to fix my missing DCO signoffs, I somehow ended up with an extra commit in this branch with a change to package.json. I didn't mean to change that. Can you resolve the conflict and ignore that? There's probably a way for me to fix it but I don't want to mess this up even more.

Sure @joshsirota, I've opened up a separate PR that includes the changes.
https://github.com/open-feature/docs.openfeature.dev/pull/201


crontab under bos

I have a small script for bos.
The script works perfectly under the user bos.
I would like to execute the script for bos via crontab. I have tried crontab -e under root, bitcoin and bos. Crontab does not execute the script for bos for any user.
I also have lnd-charge that I use under the bitcoin user. I also have a script for lnd-charge that I run as bitcoin user in crontab -e without any problems.
It seems to me that the crontab in the user bos is ineffective.
the crontab is:
*/5 * * * /home/bos/check-process.sh
Unfortunately I don't have a log to show or I can't find it.
How can I run a script intended for bos with crontab -e?

Try:
*/5 * * * sudo -u bos /home/bos/check-process.sh

Thank you @openoms
I have already tried this and tested it again this morning with user bos, bitcoin and root. The script is not executed.
If I execute the same command under the user bos, it works. So it's not the script.
The permissions look like this:
-rwxr-xr-x  1 bos bos 1041 Oct  4 16:22 check-process.sh
Where can I check what the crontab is doing?
Maybe I can find a note.

Here is my plan for a better understanding of what exactly I have in mind.
I have activated the telegram service under BOS. With this command, bos telegram works perfectly:
screen -dmS torify bos telegram --connect KEY-from-TelegramBot
I put this command in a file with the name "telegram".
In the file "telegram" there is only the command:
torify bos telegram --connect myKEY-from-TelegramBot
When I run the command ./telegram under the USER bos it works.
Basically, I just wanted a crontab that looks like this.
@reboot bos sleep 120 && /home/bos/telegram >> /dev/null 2>&1
I tried with all USER in the crontab -e, also with sudo -u. Nothing helped.
I thought it was the command @reboot or sleep that I applied in crontab.
So I wrote a small script that checks if the telegram script is running, and if not, it is started.
Here is the script:
#!/bin/bash

####################
#
# Script: Checking process and if it is not running will start that process
#
####################

#*** CONFIG ***

CMD_PATH="/home/bos/start-telegram/" # Root Path to Script
declare -a PROCESSES=('telegram'); # Script File Name

PRINT_TITLE_SCRIPT="Telegram on Start" # Script Title

#*** Vars ***
CHECK=$0

LOG_LOCATION=/dev/null
DATE=`date`

#*** Function ***
function monitor_process {
    local OUTPUT=$(ps ax | grep -v grep | grep -v $CHECK | grep $1)
    # Check the process if it is running?
    if [ "${#OUTPUT}" -gt 1 ] ; then
        # Server is running
        echo "  [*] Process ($1) is running."
    else
        # Service is not running, run the consumer process
        echo "  [x] Start Process ($1)"
        $CMD_PATH$1 > $LOG_LOCATION &
        # $CMD_PATH$1 &
    fi
}

#*** Start ***
echo " *** Running - Start $PRINT_TITLE_SCRIPT ( $DATE ) ***"

for var in "${PROCESSES[@]}"
do
  monitor_process ${var}
done

echo " *** Finished - $PRINT_TITLE_SCRIPT ***"
exit

Here is the test for the script
If the telegram service is not active!
I do the following command under  USER root
root@raspberrypi:~# sudo -u bos /home/bos/start-telegram/check-process.sh
 *** Running - Start Telegram on Start ( Tue  5 Oct 13:36:48 BST 2021 ) ***
  [x] Start Process (telegram)
 *** Finished - Telegram on Start ***

Normally I should receive a message on my Telegram that looks like this.
Connected to NODE ⚡ NAME 111111
but there is no such message in my Telegram
Here: .... it runs... the script does nothing... that's ok.
bos@raspberrypi:~/start-telegram $ /home/bos/start-telegram/check-process.sh
 *** Running - Start Telegram on Start ( Tue  5 Oct 13:41:53 BST 2021 ) ***
  [*] Process (telegram) is running.
 *** Finished - Telegram on Start ***

I have found out that the script works under the USER bos.
In the USER bos with crontab -e the script is not executed.
#*/5 * * * * /home/bos/start-telegram/check-process.sh  2>&1
In USER admin and root with crontab -e the script is not executed
#*/5 * * * * sudo -u bos /home/bos/start-telegram/check-process.sh  2>&1

After restarting the node, I get the following after the command
root@raspberrypi:~# sudo -u bos /home/bos/start-telegram/check-process.sh
 *** Running - Start Telegram on Start ( Tue  5 Oct 15:03:01 BST 2021 ) ***
  [x] Start Process (telegram)
**bos is not in the sudoers file.  This incident will be reported.**
 *** Finished - Telegram on Start ***

the bos user is not in sudoers so don't have sudo in any of the scripts running with the bos user.
make sure lines are not commented out in the crontab and use absolute paths like:
30 */4 * * * sudo -u bos /home/bos/.npm-global/bin/bos reconnect
this applies to the scripts also.

Thank`s Perfect,
through your tip I found the solution.
I only changed the file "telegram" to
screen -dmS torify /home/bos/.npm-global/bin/bos telegram --connect myKEY-from-TelegramBot
now the crontab runs every 5 min and checks the script if the Telegram service of BOS is running.
*/5 * * * * /home/bos/start-telegram/check-process.sh >> /home/bos/start-telegram/cronlog.log 2>&1
It would suffice to create a crontab with
@reboot bos sleep 300 && /home/bos/telegram >> /dev/null 2>&1
The script "check-process.sh" checks whether the service has started and restarts if necessary. It's nice but almost excessive for such a small thing. We do everything to find a solution. :-)
openoms  thank you for taking the time to do this.

to get bos run as a service is the way to go. Service file will restart on bot crashes and keeps care on everything and logging will be much better.
This is my working service file

[Unit]
Description=Balance of Satoshis Telegram Bot
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
WorkingDirectory=/home/bos/balanceofsatoshis
ExecStart=/home/bos/.npm-global/bin/bos telegram --connect 123456789
User=bos
Group=bos
Restart=always
TimeoutSec=120
RestartSec=15
[Install]
WantedBy=multi-user.target

@openoms should changing to systemd instead of crontab be a new issue?

It could even be a PR or just noted in the FAQ

@ChuckNorrison woudl you mind opening a new PR (or issue) on this?

@ChuckNorrison woudl you mind opening a new PR (or issue) on this?

This looks more like a feature, the bos installation currently does not setup a cron or service. This feature would need a menu entry to setup bos telegram and create the desired service file.
The process needs a telegram bot creation and api key from telegram. the bos will ask for this if not setup. This is a bit special and maybe not that easy to solve without starting bos manually. A documentation for the service file solution via menu entry could be easy.

made a PR with menu options to install telegram as service
https://github.com/rootzoll/raspiblitz/pull/3446


Fixed a bug in the way the kernel traverses through the file system

The current implementation assumes that there are at least two zero bytes (\0) at the end of each string literal. However, it may not always be the case as it is up to the compiler where it decides to place them.
For instance, if I use the following path names within the file system, the program works as expected.
const CFilesystem::TFS_Driver CFilesystem::gFS_Drivers[] = {
    { "GPIO_FS", "DEV:gpio", &fsGPIO_FS_Driver },
    { "MONITOR_FS", "DEV:monitor\0", &fsMonitor_FS_Driver },
};

However, if I drop the \0 at the end of "DEV:monitor\0" the code will break as it attempts to further create a file "GPIO_FS", which is stored right after "DEV:monitor" in memory. This can be verified by looking at the .ELF file using the following command readelf kernel.elf -x.rodata.
Case (1) - Code works

Case (2) - Code does not work

I first check if the loop was terminated due to \0 and if so, I will NOT skip the : or / character as it is simply not there. Hopefully this solves the issue.

Díky, skutečně se jedná o nezamýšlenou chybu. Zmergováno do hlavní větve.


Flutter is supported now, right?

Should we update the readme?

Not quite yet. I haven't published the flutter plugin yet, because I haven't added iOS support. I'm working on that now.

when approximately should we expect flutter support?

I saw that Wasmer has IOS support now, so we are getting there, I guess :)
https://wasmer.io/posts/wasmer-2.1

any update to support iOS?

I've been working on it from time to time, but it's not my top priority. The main issue is that I'm running into a long series of linker errors. I have no experience with iOS, so they're taking a long time to fix, and each time I fix one there's another. So I don't have an ETA.
If any iOS build system experts want to take a crack at fixing it, you can clone the branch and try flutter run in flutter_wasm/example. The layers of build scripts are: flutter run -> flutter_wasm/ios/flutter_wasm.podspec -> flutter_wasm/bin/ios_setup.dart -> wasm/bin/setup.dart -> cargo/clang.
One other weird thing I've noticed is that if I run flutter_wasm/bin/ios_setup.dart directly, the build progresses further (though I still get other linker errors). So the iOS build system must be doing something strange to the environment variables.

I believe you need a dummy swift method that invokes your rust library because somehow xcode considers them as unused and strip them


Suppressing static initializers causes the fallback telemetry provider callback to not be called

Repro steps:

Define RESULT_SUPPRESS_STATIC_INITIALIZERS
Include wil headers after the define
Use SetResultTelemetryFallback to set a telemetry provider callback
Use an error macro (e.g. throw and catch using CATCH_LOG)

Expected: the telemetry callback should be hit
Actual: callback is not hit
Narrowed it down to the following line never being called in result.h
g_pfnGetContextAndNotifyFailure = GetContextAndNotifyFailure;
WilInitialize_Result should make the global assignment and consumers should invoke WilInitialize_Result. (In the event that static initializers are disabled)

Your assessment is correct. By defining RESULT_SUPPRESS_STATIC_INITIALIZERS, you are assuming responsibility for calling the proper initialization functions yourself. In this case it means calling WilInitialize_Result from main/DllMain.

WilInitialize_Result is missing the assignment which is the bug I'm calling out

Ahh, I see. I suppose that any existing consumers of SetResultTelemetryFallback don't define RESULT_SUPPRESS_STATIC_INITIALIZERS (there are very few today; it's primarily intended for consumers who can't link against a CRT). In that case I'd agree - it should ideally be set when given a 'create' command

looks like this is resolved so I'll mark this closed.


Segmentation fault (core dumped)

why I follw your steps and met this error and can you help me to solve it?
when I run "python visualize.py"

you may should check your computer setting.
I guess it's a computer setting problem.


Updating var.kubernetes_version or var.orchestrator_version does not update kubernetes version of the system pools

Is there an existing issue for this?

[X] I have searched the existing issues

Greenfield/Brownfield provisioning
greenfield
Terraform Version
1.5.2
Module Version
7.1.0
AzureRM Provider Version
3.61.0
Affected Resource(s)/Data Source(s)
var.kubernetes_version / var.orchestrator_version
Terraform Configuration Files
module "aks" {
  source  = "Azure/aks/azurerm"
  version = "7.1.0"
  ....

 kubernetes_version                         = var.kubernetes_version
 node_pools = var.node_pools
  ....
}

tfvars variables values
var.kubernetes_version
var.orchestrator_version

Debug Output/Panic Output
NA

Expected Behaviour
In Azure, the system pools should be updated with the kubernetes version specified, not just the nodes specified in var.node_pools.
Actual Behaviour
When updating both var.kubernetes_version and var.orchestrator_version, the kubernetes versions of the system pools don't get changed. The versions of any extra nodes specified in var.node_pools DO get changed, however the system pools don't.
Steps to Reproduce
Update var.kubernetes_version/var.orchestrator_version whilst also having extra node pools specified in var.node_pools.
Important Factoids
None
References
No response

Hi @fleetwoodstack thanks for opening this issue.

When updating both var.kubernetes_version and var.orchestrator_version, the kubernetes versions of the system pools don't get changed. The versions of any extra nodes specified in var.node_pools DO get changed, however the system pools don't.

May I ask what is kubernetes versions of the system pools and extra nodes? Could you please point out the corresponding resource argument? Thanks!

@fleetwoodstack Is this happening for minor version upgrades or patch version upgrades ? Could you please provide the reproduction steps with actual values ? thank you

I'm closing this issue since no response from the user @fleetwoodstack , please feel free to reopen it if you have any further questions.

Sorry for late reply - my notifications were going to an old email.
@lonegunmanb the last time this happened (today) the kubernetes version was 1.26 and we tried upgrading this to 1.27. No changes were reported in the terraform plan. We had to upgrade this manually in the portal instead.
Here is the the same block but with the values, does that help? Can you replicate at all?
module "aks" {
  source  = "Azure/aks/azurerm"
  version = "7.3.2"

  ...

  kubernetes_version                         = "1.26"
  automatic_channel_upgrade                  = "patch"

  ...

  # Node Pools
  node_pools = {
    name                  = "myexample"
    vm_size               = "Standard_F8s_v2"
    orchestrator_version  = "1.26"
    upgrade_settings = {
      max_surge = 25
    }
  }
}

@zioproto this is happening for minor version upgrades. We just upgraded from kubernetes_version 1.26 to 1.27 and the same thing happened (we had to manually upgrade them in the azure portal).

@zioproto that was it! Thank you so much!!


ESP_1AE1A6 (eufy robovac) not discovered

in short: can't flash the device - is it not supported, or is something else wrong?
I have a (slightly) different setup so logs aren't that helpful, but I have collected to info that I could.
My setup:

A Eufy robovac 30C - never connected to the internet, unclear what version it has or how to check
separate Access point: with vtrust-flash SSID, running a local dnsmasq
laptop with debian11 running the tuya-convert scripts with wifi/ap/dhcp bits commented out in setup_ap.sh

with wired connection to the AP, so WIFI in config.text is enp2s0

"any other device" connected to the vtrust-flash ssid

after running apconfig.py the situation is as follows, all devices connected to vtrust-flash:

robovac: hostname ESP_1AE1A6	mac: C8:2B:96:1A:E1:A6 ip: <IP_ADDRESS>

port 6668 seems to be open but nothing else

C82B96 is in the OUI list of espressif

AP: <IP_ADDRESS>
debian: ip <IP_ADDRESS>

the device is not in EZ config mode
(not sure what that is, or how to trigger it - but it shouldn't be required - if I understand apconfig.py correctly)
Smartconfig (which sends out a broadcast many time ?) times out, logs essentially empty:

tuya-discovery (-udp.log ) doesn't list anything except listening on 6666/6667
mosquito (-mqtt.log) listening on 1883
web listening on port 80
-psk is empty
(-wifi obviously not relevant)

(a version of ) the robovac is flashable as listed on the tasmota page, but maybe mine is not.... or somebody can find a mistake in my setup? any help would be much appreciated.
Thanks!

Hi @fundef1,
Sounds like you're most of the way there. You've got the device configured for the vtrust-flash network, so the next step is getting the device to talk to our mock server.
Is your dnsmasq configured to send all traffic to your machine running the fake server script?
Can you check the server script output for any signs of connection?

hi @kueblc thank for the follow-up... yeah, i think/hope i'm close, just not there yet.
in short: no dnsmasq wasn't specifically configured at all. I didn't see any dnsmasq config in the scripts either. if you can let me know which dns entries to point to where i'll give that a shot.
anyway, in the mean time I've simplified the setup a bit. I now have an AP running on the debian machine. and the scripts run as-is. (had to add a sudo on the AP capability check with iw) but now there's a bit more life. the mosquitto logs look suspicious, i'll dig a bit deeper... in the meantime here are the logs as right now::
1653811217: mosquitto version 2.0.11 starting
1653811217: Using default config.
1653811217: Starting in local only mode. Connections will only be possible from clients running on this machine.
1653811217: Create a configuration file which defines a listener to allow remote access.
1653811217: For more details see https://mosquitto.org/documentation/authentication-methods/
1653811217: Opening ipv4 listen socket on port 1883.
1653811217: Opening ipv6 listen socket on port 1883.
1653811217: mosquitto version 2.0.11 running
^C1653811365: mosquitto version 2.0.11 terminating

new client on port 443 from <IP_ADDRESS>:42364
could not establish sslpsk socket: [SSL: NO_SHARED_CIPHER] no shared cipher (_ssl.c:1123)
don't panic this is probably just your phone!
new client on port 443 from <IP_ADDRESS>:42374
could not establish sslpsk socket: [SSL: NO_SHARED_CIPHER] no shared cipher (_ssl.c:1123)
don't panic this is probably just your phone!
^CTraceback (most recent call last):
  File "/home/jo/tuya-convert/scripts/./psk-frontend.py", line 113, in <module>
    main()
  File "/home/jo/tuya-convert/scripts/./psk-frontend.py", line 106, in main
    r,_,_ =  select.select(readables, [], [])
KeyboardInterrupt

Listening for Tuya broadcast on UDP 6666
Listening for encrypted Tuya broadcast on UDP 6667
^C

Listening on <IP_ADDRESS>:80
[I 220529 10:00:36 web:2239] 302 GET /generate_204 (<IP_ADDRESS>) 1.87ms
[I 220529 10:00:36 web:2239] 200 GET / (<IP_ADDRESS>) 1.21ms
[I 220529 10:00:36 web:2239] 302 GET /generate_204 (<IP_ADDRESS>) 0.74ms
[I 220529 10:00:37 web:2239] 302 GET /generate_204 (<IP_ADDRESS>) 0.66ms
[I 220529 10:00:37 web:2239] 304 GET / (<IP_ADDRESS>) 1.01ms
[I 220529 10:00:38 web:2239] 302 GET /favicon.ico (<IP_ADDRESS>) 0.66ms
[I 220529 10:00:38 web:2239] 304 GET / (<IP_ADDRESS>) 0.73ms
[I 220529 10:00:38 web:2239] 302 GET /generate_204 (<IP_ADDRESS>) 0.62ms
[I 220529 10:00:40 web:2239] 302 GET /generate_204 (<IP_ADDRESS>) 0.94ms
^CReceived SIGINT, exiting...
System info
===========
61ba060
Linux tosh 5.10.0-13-amd64 #1 SMP Debian 5.10.106-1 (2022-03-17) x86_64 GNU/Linux
OpenSSL 1.1.1n  15 Mar 2022
Dnsmasq version 2.85  Copyright (c) 2000-2021 Simon Kelley
Compile time options: IPv6 GNU-getopt DBus no-UBus i18n IDN2 DHCP DHCPv6 no-Lua TFTP conntrack ipset auth cryptohash DNSSEC loop-detect inotify dumpfile

This software comes with ABSOLUTELY NO WARRANTY.
Dnsmasq is free software, and you are welcome to redistribute it
under the terms of the GNU General Public License, version 2 or 3.
hostapd v2.9
User space daemon for IEEE 802.11 AP management,
IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
Copyright (c) 2002-2019, Jouni Malinen<EMAIL_ADDRESS>and contributors
Python 3.9.2
===========
Attempting to stop wpa_supplicant
Stopping NetworkManager...
Failed to stop network-manager.service: Unit network-manager.service not loaded.
Configuring AP interface...
RTNETLINK answers: File exists
Starting DNSMASQ server...
Starting AP on wlp3s0...
Configuration file: /dev/stdin
Using interface wlp3s0 with hwaddr 1a:6a:65:df:04:de and ssid "vtrust-flash"
wlp3s0: interface state UNINITIALIZED->ENABLED
wlp3s0: AP-ENABLED
wlp3s0: AP-STA-CONNECTED c8:2b:96:1a:e1:a6
wlp3s0: AP-STA-CONNECTED 60:ab:67:e8:0f:95
wlp3s0: interface state ENABLED->DISABLED
wlp3s0: AP-STA-DISCONNECTED 60:ab:67:e8:0f:95
wlp3s0: AP-STA-DISCONNECTED c8:2b:96:1a:e1:a6
wlp3s0: AP-DISABLED
wlp3s0: CTRL-EVENT-TERMINATING
nl80211: deinit ifname=wlp3s0 disabled_11b_rates=0
AP closed
Stopping DNSMASQ server...
Restarting NetworkManager...
Failed to restart network-manager.service: Unit network-manager.service not found.

update, added a default mosquitto.conf with a single listener on 1883. Behaviour is still the same, no connections logged.
(I believe i previously didn't see the mosquitto conf issue as i was running everything as root, now just as a regular user)
1653812866: mosquitto version 2.0.11 starting
1653812866: Config loaded from /home/jo/tuya-convert/scripts/mosquitto.conf.
1653812866: Opening ipv4 listen socket on port 1883.
1653812866: Opening ipv6 listen socket on port 1883.
1653812866: mosquitto version 2.0.11 running
^C1653812995: mosquitto version 2.0.11 terminating

You'll want to set up your dnsmasq to redirect all traffic to the machine running the fake server. Once you get this set up, I think you should be good to go.
https://github.com/ct-Open-Source/tuya-convert/blob/61ba060b8567eacd02813db431967cbe9fd23401/scripts/setup_ap.sh#L39-L47
Note the --address argument, where it maps # (wildcard) to $GATEWAY (by default <IP_ADDRESS>).

1653811217: Starting in local only mode. Connections will only be possible from clients running on this machine.

This does seem suspicious, though you've already solved this, I hadn't realized that mosquitto's default behavior had changed. I'll probably want to include a default config in the next release.
I see in your web log that your IoT device is indeed connecting to your vtrust-flash AP, so you can skip the pairing step from now on. There is no need to connect a secondary device to the vtrust-flash, this is only to facilitate EZ config (and you used AP config anyway).

thanks for the response, i did spot the --address line later on, even with that added... still no luck.
Once the ESP_ is connected I can't get any response out of it.
Am I correct in assuming that the smartconfig.py script is responsible for triggering a firmware update?
there is a region setting US.... any point in fiddling with that? (tried EU but behaviour isn't any different)

alright that does help narrowing it down. so it's essentially a captive portal setup?

Yes you can think of it like a captive portal. We direct all traffic to a fake registration server that allows it to complete the initialization process, trigger the firmware upgrade, and then provide the firmware binary.

(at least the one on port 80, not clear on what PSK does yet)

Older firmware used http in plaintext. Tuya attempted to patch against tuya-convert by implementing a PSK based https. We subsequently found a flaw in their implementation that allowed us to decrypt the traffic and forward it to our fake registration server to keep tuya-convert working. (They have now patched this vulnerability too so tuya-convert only works on first and second gen Tuya devices, continuing the game of cat and mouse)

so I am not running any of the scripts, only an access point with embedded dnsmasq (including an address=/#/... line)

Are you sure you're mapping # to the IP of the machine running the fake registration server?

the ESP_ does not do any DNS request upon reconnecting to the AP

This makes sense, the device only needs to resolve the domain once, so if it connected without the captive portal it already had the IP address of the real registration server.
Those requests to resolve a3.tuyaus.com are a very good sign indeed.

so what would the next step in the process be? a request to port ... the pskfrontend.py script?

It should then connect to the fake registration server directly over port 80 (if running 1st gen firmware), or tunneling via PSK frontend over 443 to the fake registration server (if 2nd gen). Fingers crossed it doesn't have patched firmware.

Allright! As in literally All is Right ;-)
after putting the webserver back in place it was smooth sailing all the way.
Thanks for your help.


Allow slotting in own IMessageResolver

This is useful in case we want to define our own way of translating
the codes in the thymeleaf templates.
(Note see also https://github.com/jamesagnew/hapi-fhir/pull/876, where you asked for a unit test. This commit is the same as that one, but includes the unit test, and rebased to the master branch. So that other pull request is no longer necessary.)

Coverage increased (+0.02%) to 74.438% when pulling 729bbe04d0fd1bcce2981d8b88f66ef1ad42071e on RuthAlk:own_message_resolver_3.6.6 into 794d9145e9197f875b84e72108629668ac5261fc on jamesagnew:master.


can't mix specific sim, array, and covary

eg for iz:
vary={
  {P,'I',10:10:50} % spike frequency adaptation % THIS BREAKS IT

  {P,'a',.02; P,'b',.2 ; P,'c',-50; P,'d',2;  P,'I',15} % tonic bursting
  {P,'a',.01; P,'b',.2 ; P,'c',-65; P,'d',8;  P,'I',30} % spike frequency adaptation
  {P,'a',.02; P,'b',.2 ; P,'c',-65; P,'d',6;  P,'I',7}  % spike latency
  {P,'a',.03; P,'b',.25; P,'c',-52; P,'d',0;  P,'I',0}  % rebound burst
  {P,'a',1;   P,'b',1.5; P,'c',-60; P,'d',0;  P,'I',-65}% bistability
  {P,'a',.02; P,'b',1  ; P,'c',-55; P,'d',4;  P,'I',1}  % accomodation
  {P,'a',-.02;P,'b',-1 ; P,'c',-60; P,'d',8;  P,'I',80} % inhibition-induced spiking
  {P,'a',-.026;P,'b',-1; P,'c',-45; P,'d',0;  P,'I',70} % inhibition-induced bursting
  };

This duplicates https://github.com/DynaSim/DynaSim/issues/143.
On Wed, May 3, 2017 at 5:59 PM, Erik A. Roberts<EMAIL_ADDRESS>wrote:

eg for iz:
vary={
{P,'I',10:10:50} % spike frequency adaptation % THIS BREAKS IT
{P,'a',.02; P,'b',.2 ; P,'c',-50; P,'d',2;  P,'I',15} % tonic bursting
{P,'a',.01; P,'b',.2 ; P,'c',-65; P,'d',8;  P,'I',30} % spike frequency adaptation
{P,'a',.02; P,'b',.2 ; P,'c',-65; P,'d',6;  P,'I',7}  % spike latency
{P,'a',.03; P,'b',.25; P,'c',-52; P,'d',0;  P,'I',0}  % rebound burst
{P,'a',1;   P,'b',1.5; P,'c',-60; P,'d',0;  P,'I',-65}% bistability
{P,'a',.02; P,'b',1  ; P,'c',-55; P,'d',4;  P,'I',1}  % accomodation
{P,'a',-.02;P,'b',-1 ; P,'c',-60; P,'d',8;  P,'I',80} % inhibition-induced spiking
{P,'a',-.026;P,'b',-1; P,'c',-45; P,'d',0;  P,'I',70} % inhibition-induced bursting
};
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/DynaSim/DynaSim/issues/164, or mute the thread
https://github.com/notifications/unsubscribe-auth/AGGOVbvCPI0tBhIcIiVULehbZ-ZT0NHQks5r2PjRgaJpZM4NQAcf
.

this isn't related to plot data. you can't even do the sim

goal: combine vary syntax:
% Syntax 1: vary={{object, variable, value1},{object, variable, value2},...}
%   - this is useful for simulating an arbitrary set of parameter values
% Syntax 2: vary={object, variable, values; ...}
%   - this is useful for varying parameters systematically (described later)


Update group messages to expect ClientEnvelopes

tl;dr

Updates the group messages blockchain reader to expect ClientEnvelope payloads instead of raw messages.

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#247  👈
#246
#245
#243
#241
#239
#238
#237
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @neekolas and the rest of your teammates on  Graphite

Merge activity

Oct 21, 4:02 PM PDT: A user merged this pull request with Graphite.


document exceptions for metrics/regression

What does this PR do?
Part of #5434

[x] init.py
[x] explained_variance.py
[x] mean_absolute_error.py
[x] mean_squared_error.py
[x] mean_squared_log_error.py
[x] psnr.py
[x] r2score.py
[x] ssim.py

Fixes #<issue_number>
Before submitting

[x] Was this discussed/approved via a GitHub issue? (not for typos and docs)
[x] Did you read the contributor guideline, Pull Request section?
[x] Did you make sure your PR does only one thing, instead of bundling different changes together?
[x] Did you make sure to update the documentation with your changes? (if necessary)
[x] Did you write any new necessary tests? (not for typos and docs)
[x] Did you verify new and existing tests pass locally with your changes?
[x] Did you update the CHANGELOG? (not for typos, docs, test updates, or internal minor changes/refactorings)

PR review
Anyone in the community is free to review the PR once the tests have passed.
Before you start reviewing make sure you have read Review guidelines. In short, see the following bullet-list:

[x] Is this pull request ready for review? (if not, please submit in draft mode)
[x] Check that all items from Before submitting are resolved
[x] Make sure the title is self-explanatory and the description concisely explains the PR
[x] Add labels and milestones (and optionally projects) to the PR so it can be classified

Did you have fun?
Make sure you had fun coding 🙃

Hello @prajakta0111! Thanks for opening this PR.

In the file pytorch_lightning/metrics/regression/explained_variance.py:

Line 62:1: E101 indentation contains mixed spaces and tabs
Line 62:1: W191 indentation contains tabs
Line 63:1: W191 indentation contains tabs
Line 64:1: W191 indentation contains tabs

Do see the Hitchhiker's guide to code style


Better handling of unexpected results.

The underwriter_staging_smoke job occassionally fails in circleci because this script reaches the 10 minute timeout (example: https://circleci.com/gh/StatesTitle/underwriter/12345). The script that's used to run the runscope api tests doesn't handle unexpected responses well so it's hard to tell based on the output alone if it's failing because the runscope tests are taking longer than 10 minutes or because there's some other unexpected response.
 But I really have no idea. I'm not familiar with any of this, I just saw the failed circleci job and got curious.
I also moved the deadline check into the while loop because it's a little simpler. I think it makes it more obvious when the script exits due to timeout.
I tested these changes locally a bit and they seem ok.
I know this script was forked from an upstream project. It looks like States Title has made other changes to this script in our fork that don't exist upstream. I'm not planning on trying to contribute these changes upstream, but please let me know if people think that's important.

FYI - this is a public repo. You may not want these ST-specific comments in the public record :)

@ddemetri Good point, thanks for mentioning. I'm not sure there's much I can do about it (and the info isn't super sensitive), but will investigate.

I agree with @schavery. P.S. Hi @schavery !

Cool, thanks @schavery and @ddemetri. FYI when I squashed and merged I changed the commit message to be a little more appropriate for merging upstream.


TdsRow updates

Codecov Report

Merging #71 (8187881) into main (81e1fbe) will decrease coverage by 0.01%.
The diff coverage is 96.92%.

@@            Coverage Diff             @@
##             main      #71      +/-   ##
==========================================
- Coverage   97.33%   97.32%   -0.01%
==========================================
  Files          96       96
  Lines        5356     5420      +64
==========================================
+ Hits         5213     5275      +62
- Misses        143      145       +2

Flag
Coverage Δ

pytest
97.32% <96.92%> (-0.01%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Files Changed
Coverage Δ

pylegend/core/language/tds_row.py
90.14% <86.66%> (-0.94%)
:arrow_down:

pylegend/tests/core/language/test_tds_row.py
100.00% <100.00%> (ø)


Improve performance when creating large amounts of Data objects

Description
When creating a large amount of Data objects in a single request cycle the repeated calls to app() that are used to resolve the dependencies for the DataFromSomethingResolver causes a performance bottleneck.
Implementation
This PR registers the DataFromSomthingResolver as a singleton in the service provider and adds a reset() method on the class so that the internal state can be reset. This allows it to continue working when being called by either from() or  withoutMagicalCreationFrom(). This decreases the overall calls to the app() helper function (and subsequently reduces the downstream calls to other "magic methods" that resolve the dependancies) when instantiating a new Data object and increases the performance.
Tests
Run the automated test suite and ensure that it completes successfully.
Performance Tests
Using xdebug profiling and webgrind to to analyze the results I have seen an improvement in speed of approximately 12-18% when creating 30K instances of a Data object.  I have provided the Data object class ZipCode and customer caster class ZipCaster, as well as the sample dataset that was used for the testing. I have also provided a test script that was used to run the test 10 times and show the average.
zips.txt.zip
ziptest.php.zip
ZipCode.php.zip
ZipCaster.php.zip
Unzip and move the zips.txt.
Make sure the ziptest.php script has the right path to find the zips.txt file and run the script.
php ziptest.php

Hi @pjkellar,
Thanks for the PR, I really like the idea and it's a good PR. But adding these reset methods makes the code so complicated, and it just doesn't feel right.
We're working on a next major version of laravel-data, let's remove these two parameters from the constructor and add them to the execute method. Then the reset method isn't required anymore.
The problem is, it will take a few months before this next version will be released so for now I'm afraid you'll have to wait a bit or add this into your own project by extending some parts.


Remove conversion webhook

We want to "Remove the deprecated APIs (remove from spec.versions for each CRD). In v1.7"

https://github.com/jetstack/cert-manager/issues/4057

That will be done in a separate PR because it is rather a large changeset:

https://github.com/jetstack/cert-manager/pull/4635

But before we can do that we need to remove the conversion webhook because,
without the non-v1 API versions the conversion webhook becomes obsolete,
and once the legacy API versions are removed from  the CRDs,  the conversion integration tests fail.
So here we:

remove the conversion webhook handlers and associated tests from the webhook server
remove the conversion webhook configuration stanzas from all the CRD templates
remove the conversion related integration tests

Removed the conversion webhook and all associated configuration and tests

In future we may well need to use the conversion webhook again (i.e. if we ever add a new non-v1 API kind). Is it worth keeping around the handlers & scaffolding for this, even if no CRDs are registered to point at it?

I'd prefer to delete the code to reduce maintenance burden and to avoid any extra sample API code for integration testing.
The deleted code can always be recalled from git history (as long as the person involved knows that that there used to be a conversion mechanism).
And in future conversion might be done using code from controller-runtime which is well documented and has its own tests:

https://book.kubebuilder.io/multiversion-tutorial/tutorial.html
https://github.com/kubernetes-sigs/controller-runtime/blob/b5eeb7106d2360ba7e282c66cd7c65d6c57c6be4/pkg/conversion/conversion.go

👍 - I was thinking you could just switch the integration tests to use this API group instead (which already defines 2 versions & conversions between them): https://github.com/jetstack/cert-manager/tree/master/pkg/webhook/handlers/testdata/apis/testgroup
That way our own Webhook struct could continue to support conversion, but we just don't use it in our built binary right now (as we don't have any conversions that need to be performed).

And in future conversion might be done using code from controller-runtime which is well documented and has its own tests:

Sure thing - though we will need to consider the way certificates are grabbed for this, as our webhook can't fetch certificates using cert-manager itself.

@munnerz I've got the conversion integration tests working with the sample API CRDs and modified the webhook options to allow overriding of the conversion handler rather than the conversion scheme (as discussed this morning).
PTAL.

/retest

/kind cleanup

@munnerz I've rebased this on top of your webhook config work. PTAL

/lgtm


Thread hang for Stage/MapStage op when setting inter_op_parallelism_threads=1

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 16.04
TensorFlow version (use command below): tf-nightly
Python version: 3.6.8

Describe the current behavior
Thread will hang if setting inter_op_parallelism_threads=1.
Standalone code to reproduce the issue
from six.moves import queue as Queue
import threading

import tensorflow as tf
from tensorflow.python.framework import dtypes
from tensorflow.python.framework import ops
from tensorflow.python.framework.ops import disable_eager_execution
from tensorflow.python.ops import array_ops
from tensorflow.python.ops import data_flow_ops
from tensorflow.python.platform import test

disable_eager_execution()
tf.config.threading.set_inter_op_parallelism_threads(num_threads=1)  # pass if set 2

class ThreadHangTest(test.TestCase):
    """test Stage/MapStage"""

    def testStage(self):
        capacity = 3
        with ops.device(test.gpu_device_name()):
            x = array_ops.placeholder(dtypes.int32, name='x')
            stager = data_flow_ops.StagingArea([dtypes.int32, ], capacity=capacity, shapes=[[]])

        queue = Queue.Queue()
        with self.session() as sess:
            def thread_run():
                for i in range(capacity + 1):
                    sess.run(stager.put([x]), feed_dict={x: i})
                    queue.put(0)

            t = threading.Thread(target=thread_run)
            t.daemon = True
            t.start()

            try:
                for i in range(capacity + 1):
                    queue.get(timeout=1)
            except Queue.Empty:
                pass

            for i in range(capacity):
                sess.run(stager.get())

    def testMapStage(self):
        capacity = 3
        with ops.device(test.gpu_device_name()):
            x = array_ops.placeholder(dtypes.int32, name='x')
            pi = array_ops.placeholder(dtypes.int64, name='pi')
            map_stager = data_flow_ops.MapStagingArea([dtypes.int32, ], capacity=capacity, shapes=[[]])

        queue = Queue.Queue()
        with self.session() as sess:
            def thread_run():
                for i in range(capacity + 1):
                    sess.run(map_stager.put(pi, [x], [0]), feed_dict={x: i, pi: i})
                    queue.put(0)

            t = threading.Thread(target=thread_run)
            t.daemon = True
            t.start()

            try:
                for i in range(capacity + 1):
                    queue.get(timeout=1)
            except Queue.Empty:
                pass

            for i in range(capacity):
                sess.run(map_stager.get())

if __name__ == '__main__':
    test.main()

@GHGmc2
I have tried in colab with TF version 2.2.0-rc3 and i am seeing the below error.(
UnrecognizedFlagError: Unknown command line flag 'f').Please, find the gist here.Thanks!

@GHGmc2
I have tried in colab with TF version 2.2.0-rc3 and i am seeing the below error.(
UnrecognizedFlagError: Unknown command line flag 'f').Please, find the gist here.Thanks!

This may be the problem of colab, check here

@GHGmc2 Are you encountering the same problem with Tensorflow 2.1, 2.2rc2, 2.2rc3 ?

@GHGmc2 Are you encountering the same problem with Tensorflow 2.1, 2.2rc2, 2.2rc3 ?

Yes.
For some reason, we need to set inter_op_parallelism_threads=1, and found that the thread is hanging, the code snippet is from stage_op_test.py and map_stage_op_test.py, I just make it cleaner.

I think this is working as intended. The issue is that the StagingArea.put() operation is blocked because you're pushing in one more than capacity. That occupies a thread.
That means that the StagingArea.get() operation, which is supposed to get an element and unblock the put() can't really proceed because it has no threads to run on.


Import to new table from csv/xlsx

Is your feature request related to a problem? Please describe.
Import data with built in creation of table (with detection of data types) will be really useful in some situations, like ad hoc reporting.
Describe the solution you'd like
Well, after selecting file should be scanning phase (of part or full file), based on table content, table creation, and insert data to newly created table.
Describe alternatives you've considered
Additional context

Hello @KrzysztofDusko,
Are you aware of the data transfer feature? It allows you to import data from various sources, including CSV files, into existing and new tables.
You can learn more here: https://github.com/dbeaver/dbeaver/wiki/Data-transfer

Thank you!


Export: Improve usability of command line interface

I'm barely scratching the surface of the changes needed to make the
--export command line interface easy to use, but this should already
improve things somewhat.

Streamline can_export() templates check in all platforms, checking
first for the presence of official templates, then of any defined
custom template, and reporting on the absence of any.
Shouldn't change the actual return value much which is still true if
either release or debug is usable - we might want to change that
eventually and better validate against the requested target.

Fix discrepancy between platforms using custom_package/debug and
custom_template/debug (resp. release).
All now use custom_template, which will break compatibility for
export_presets.cfg with earlier projects (but is easy to fix).

Use can_export() when attempting a command line export and report
the same errors that would be shown in the editor.

Improve error reporting after a failed export attempt, handling
missing template and invalid path more gracefully.

Cleanup of unused stuff in EditorNode around the export workflow.

Improve --export documentation in --help a bit.

Fixes #16949 (at least many of the misunderstandings listed there).
Fixes #18470.

CC @Calinou @fire @Keetz @lekoder @razcore-art and anyone else who uses the --export command line for CD and might have been pulling their hair over the badly documented and happily erroring interface.
If some could test this PR to confirm that it does not break your (by now hopefully functional) workflow, and also see if some of the misunderstandings and errors referenced in other issues are now better handled, this would be great :)
It's still the same wonky arguments expected without good validation, but at least it should show meaningful errors in most cases now.
Note that the custom_package/ category used in some platforms in export_presets.cfg has been renamed to custom_template/ for consistency with desktop platforms. You can fix it in your projects with sed -i export_presets.cfg -e "s/custom_package/custom_template/g" (but only if you're not using the same config for 3.1.x).

Maybe we should also change the CLI export path to be specified relative to the current directory (rather than the project root). This will break many build scripts, but it may be worth it if we're breaking export_presets.cfg compatibility at the same time.

Maybe we should also change the CLI export path to be specified relative to the current directory (rather than the project root). This will break many build scriptswe but it may be worth it if we're breaking export_presets.cfg compatibility at the same time.

I don't think it's worth it. You can use an absolute path already if you don't want a path relative to the project root. And breaking compat on the <path> argument would impact a lot more users than renaming custom_package/{release,debug} to custom_template/{release,debug} in mobile/web platforms.


[Bug] BE crashes with bvar::detail::SamplerCollector::sampling_thread

Search before asking

[X] I had searched in the issues and found no similar issues.

Version
1.2.0
What's Wrong?
One of our BE was not able to be started, as a result we removed the BE;
After that other BEs fails with below error frequently. Please kindly help.
*** Query id: 0-0 ***
*** Aborted at<PHONE_NUMBER> (unix time) try "date -d @1680507855" if you are using GNU date ***
*** Current BE git commitID: Unknown ***
*** SIGSEGV address not mapped to object (@0x35) received by PID 2863096 (TID 0x7f9f169ff700) from PID 53; stack trace: ***
0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) at /root/doris/be/src/common/signal_handler.h:420
1# 0x00007F9F13DFF2B7 in /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so
2# JVM_handle_linux_signal in /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so
3# 0x00007F9F13DF80AC in /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so
4# 0x00007F9F173ED090 in /lib/x86_64-linux-gnu/libc.so.6
5# bvar::Reducer<long, bvar::detail::AddTo, bvar::detail::MinusFrom >::SeriesSampler::take_sample() in /root/apache-doris-be-1.2.0-bin-x86_64/lib/doris_be
6# bvar::detail::SamplerCollector::run() in /root/apache-doris-be-1.2.0-bin-x86_64/lib/doris_be
7# bvar::detail::SamplerCollector::sampling_thread(void*) in /root/apache-doris-be-1.2.0-bin-x86_64/lib/doris_be
8# start_thread in /lib/x86_64-linux-gnu/libpthread.so.0
9# __clone in /lib/x86_64-linux-gnu/libc.so.6
What You Expected?
BE should not exit
How to Reproduce?
It's like when we run some query on big tables such exception shows in be.out
Anything Else?
No response
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

after investigation we found this happens when we're querying a very large table without partition key in where conditions. hope this helps.


Clean up the printing of the types, show the short url

Display collection which was omitted previously
show the github name you would use in templates to refer to the type.

@bmelville


Windows -- SerialPortError access denied error=5

Hello team, I'm having trouble making the connection.
SerialPortError access denied error = 5

I'm using flutter for desktop, do I need to add some special permission to be able to run on windows?
Thanks

@srnunio do you still face the issue?


Google YOLO Block Mediator Integration

Provided that Direct Path to Product is now on hold, we should finish the google YOLO block mediator integration alone.
This should also fix the issue where the colors pages doesn't successfully redirect user to the primary CTA link.
Resolves: MWPW-138366
Test URLs:

Before: https://stage--express--adobecom.hlx.page/express/colors/pink?martech=off
After: https://bm-google-yolo--express--adobecom.hlx.page/express/colors/pink?martech=off

Codecov Report

Merging #431 (ca185c5) into stage (8b49c03) will increase coverage by 0.11%.
Report is 20 commits behind head on stage.
The diff coverage is 37.50%.

@@            Coverage Diff             @@
##            stage     #431      +/-   ##
==========================================
+ Coverage   31.13%   31.25%   +0.11%
==========================================
  Files         124      124
  Lines       25200    25153      -47
==========================================
+ Hits         7847     7861      +14
+ Misses      17353    17292      -61

Files
Coverage Δ

express/blocks/marquee/marquee.js
87.90% <100.00%> (+0.12%)
:arrow_up:

express/blocks/columns/columns.js
34.93% <50.00%> (+0.08%)
:arrow_up:

...ss/blocks/fullscreen-marquee/fullscreen-marquee.js
12.22% <50.00%> (+0.42%)
:arrow_up:

express/scripts/utils.js
31.17% <25.00%> (-0.02%)
:arrow_down:

express/blocks/hero-color/hero-color.js
19.28% <16.66%> (-0.25%)
:arrow_down:

... and 6 files with indirect coverage changes
:mega: Codecov offers a browser extension for seamless coverage viewing on GitHub. Try it in Chrome or Firefox today!


pretty-print flag wrongly adds spaces between multiple negation pseudo-classes (:not)

Originally reported on Google Code with ID 37
What steps will reproduce the problem?
1. Create a test.css file:

    em:not(.a):not(.b) {
      color: red;
    }

2. Create a pretty-printed file with:
    $ java -jarclosure-stylesheets.jar --pretty-print --output-file ./test.p.css test.css

3. Check its contents:

    $ cat test.p.css
    em:not(.a) :not(.b)  {
      color: red;
    }

This is wrong, because the space added between both :not pseudo-classes changes the
meaning of this selector. The desired 'em' element will not be selected.

What is the expected output? What do you see instead?

The correct output is produced without the pretty-print flag:

    $ java -jar tools/closure-stylesheets.jar --output-file ./test.c.css test.css
    $ cat test.c.css
    em:not(.a):not(.b){color:red}

What version of the product are you using? On what operating system?

Revision: 86bb800d79a3
Chrome 27.0.1453.116

Please provide any additional information below.

The following change seems to fix this issue (unsure if this is the right fix though).

$ git diff
diff --git a/src/com/google/common/css/compiler/passes/PrettyPrinter.java b/src/com/google/common/css/compiler/passes/PrettyPrinter.java
index 8a37b7c..9da9ab7 100644
--- a/src/com/google/common/css/compiler/passes/PrettyPrinter.java
+++ b/src/com/google/common/css/compiler/passes/PrettyPrinter.java
@@ -347,7 +347,7 @@ public class PrettyPrinter extends DefaultTreeVisitor
   public void leavePseudoClass(CssPseudoClassNode node) {
     if (node.getFunctionType() == FunctionType.NOT) {
       deleteEndingIfEndingIs(", ");
-      sb.append(") ");
+      sb.append(")");
     }
   }

Reported by alo.and on 2013-07-04 21:51:44

This is already fixed. I verified with:
em:not(.a):not(.b) {
    color: red;
}

Then:
$ java -jar ../closure-stylesheets/build/closure-stylesheets.jar --pretty-print test-bug-56.gss

produces:
em:not(.a):not(.b) {
  color: red;
}


Release notes for Opencast 8.0

HI @rrolf, a made a couple small notes. The Paella version and extra indents seem to be the most important.


Add support of LIKE predicate builder

It would be nice to have:
    films.stream()
        .filter(Film.TITLE.like("The*Only"))
        .forEach(...)

This is a large thing to do considering it will impact many modules.


compat_mode per FileHandle

KvikIO's compatibility mode is now per FileHandle thus changing compatibility mode, effects all new FileHandles that doesn't sets the compat_mode argument explicitly but it never effect existing FileHandles.

@jakirkham thanks for the review

Thanks Mads! Replied above

@jakirkham thanks for the review, think I addressed all of it.

@gpucibot merge

Thanks @jakirkham !


Homework 07: Task 13: Grader Check: 2 Message Error (Medium)

In Homework 07 for Task 13, the grader check "2 message" outputs "Each element of deck_statistics is between 0 and 13 inclusive", which is incorrect as the 13 should really be a 1 because each statistic is a proportion that should be in [0, 1].

Oops. I misread one of the tasks, so my understanding of that error message was wrong. There is no problem. I don't know how to delete issues once open, so I'll close it with this comment (if it lets me).


[WIP] deps: bump kubernetes-sigs/karpenter

Fixes #N/A
Description
Bumps kubernetes-sigs/karpenter to v0.33.1.
How was this change tested?
/karpenter snapshot
Does this change impact docs?

[ ] Yes, PR includes docs updates
[ ] Yes, issue opened: #
[x] No

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.02%) to 82.45%

Totals

Change from base Build<PHONE_NUMBER>:
0.02%

Covered Lines:
4914

Relevant Lines:
5960

💛  - Coveralls

All E2E tests have passed 🎉 Holding until we're ready to do the upstream release, this can be merged once we replace the pseudo-tag with the v0.33.1.

Posting the link to the test results before replacing the pseudo-tag with the proper release tag. link