SEP-10: Accept challenge transactions through clock drift

What version are you using?
I am using version github.com/stellar/go v0.0.0-20210803084429-90666abbac1d
What did you do?
When I called  txnbuild.ReadChallengeTx, I encountered the following error
transaction is not within range of the specified timebounds (currentTime=1628051970, MinTime=1628052011, MaxTime=1628052911)
What did you expect to see?
May you help to apply the same fix to stellar/go?
https://github.com/stellar/js-stellar-sdk/commit/cdeb65cd118a17a467152a5b9413fd74ce74a3d2

cc @leighmcculloch @morleyzhi

Hi @masterhung0112, yes I can. Although looking at the change made to the JS SDK, I'm not sure why we're applying the grace period to the MaxTime. The diff between he client and server clocks is only a problem when the client needs to read the transaction returned by the server. The anchor may expect and even require that the SDK raise an error if the currentTime is past MaxTime.

Hi @JakeUrban, you can fix in any way you think it's best for stellar/go. Thank you very much.
Probably there's no need to apply grace period to the MaxTime.

@JakeUrban I applied the grace period in both directions of the timeout because the client's clock can be wrong in either direction. And even with the grace period implemented, in production, we get sporadic instances of people still failing the timeout challenges, though we don't track which direction they're wrong.

I'm uneasy with two of our SDK implementations doing different things in the case of maxTime drift. It seems to me they should be consistent. I guess there are two arguments made here:

The client expects no grace period for max time
Max time grace period in practice won't help much

I'm having trouble seeing the downside to adding the grace period to maxTime. If the downside is significant, we should also fix the JS SDK though.
@leighmcculloch thoughts?

The client expects no grace period for max time

Just to clarify, the server is the one that may expect no grace period. The challenge could be expired by the time it's sent back to the server, but if the grace period is applied to the max time the server may still validate it.

There is some prior discussion here too: https://github.com/stellar/stellar-protocol/pull/1007/files#r674358006.
Something we discussed there is that it's becoming more common for JWT implementations to not validate the iat value due to clock drift and the value having less value than expiration. It's also not uncommon for JWT libraries to add a grace period to their checks. For example the JWT library we use in Go projects has a 1 minute grace period by default (https://github.com/square/go-jose/blob/v2/jwt/validation.go#L59). The challenge min time is very similar to the iat value in JWTs, so I think the grace period on the min time is being very conservative.
I agree it is unnecessary to add clock drift to the max time if it is big, but on the same note, it isn't material to add it when it is large. If the challenge validity is purposefully small, such as 15 minutes for single message sessions, which I think is what some SEP-30 servers use, then adding clock drift is worthwhile to both. 15 minutes is what we specify in the SEP-10 doc itself as a default expiration.
For connected devices like phones and servers I would think a drift of more than 5 minutes would be rare, but I don't have data. Servers don't need much grace and that's the primary use of the min/max time to scope validity at the server. The client should validate the min/max time to make sure it isn't signing something for the distant future as part of some complex attack, but we could use larger grace periods on clients.
Maybe it is worth making the grace period configurable, and making recommendations to use larger values on client, and smaller on server. We can default to small and make it overridable on clients.
What do you think?

I just ran the numbers: it looks like, among Vibrant users, something like 0.85% of users experience the transaction timeout error, and that is mostly Android users (but the vast majority of our users are Android, so we might not have enough iOS samples).

weird - I would naively expect most Android devices to ntp sync automatically.

@morleyzhi Are you able to gleam what sort of grace period would help in those cases? It's possible there is no reasonable grace period we could set for those users. For example, if a phone has a wrong timezone set it can be many hours off even if it is displaying a correct HH:MM to the user. It may not be possible to help those cases without simply disabling time validation on clients all together.

@leighmcculloch I don't think the timezone setting would matter because your UNIX timestamp doesn't care about timezone.
About our whole question: based on our metrics, of the 36 people who experienced a timestamp error, 58% (21 people) went on to eventually succeed.
In diving into a handful of users' event streams, it looks like many of them would fail, only to succeed a few seconds later. So I have no idea what the real story is! There doesn't seem to be a great difference between the event time and the processing time (which I'm assuming is local and Mixpanel server time, respectively). It also varies across SEP-10 servers. So I'm not sure of the full picture here, and unfortunately we need to make a release to add more diagnostics to get a bigger picture.

I don't think the timezone setting would matter because your UNIX timestamp doesn't care about timezone.

It can. How it can happen is the user has the wrong time zone set and manually changes their time to appear accurate. The resulting UTC time is wrong. I doubt this would be a common problem, but a previous product I worked on saw this happen with users after we released something that had a time dependent component.

only to succeed a few seconds later

This would suggest their time differences are very close to the expiry time + grace period, which is odd. Maybe something else is going on here that's unrelated?

@morleyzhi What do you think about making the grace period configurable in the JS SDK and setting it higher in clients?

I like the idea of parameterizing the grace period, but adding that is a breaking change for languages that don't support defaults for optional parameters, including Go. I'm happy to make the change if thats the route we want to take though.

In the go sdk which is primarily used in server side applications there less value in making it configurable. In sdks used in servers and clients, like the js sdk, there's value. Your #3824 pr is targeting a major version though, so it's fine to change the function signature of we want to go sdk to be configurable.


Connect and receive events out of order

I am developing a HTTP server with the latest ESP32 AT firmware (036e3556684ba6b721d8df3f96d7358c8147b7a2) using the UART interface connected to a STM32 host controller.
It seems that under some circumstances the TCP CONNECT event is sent after a +IPD event.
Example (sent by the ESP32 module)
...
+IPD,1,369:GET /web/index.html HTTP/1.1 (+ a lot of data)
1,CONNECT
Recv:1000 bytes
SEND OK
The last two lines are put out because of another transmission from the host controller to the ESP32 module in the past, so this should be OK.
In other cases it looks like this, which would also be my expectation:
1,CONNECT
+IPD,1,369:GET /web/index.html HTTP/1.1 (+ a lot of data)
So I wonder why in some cases the CONNECT event is sent out of order. At the moment I use the CONNECT event to internally reset my HTTP parser. But when the events are sent out of order, this behavior would erase the previously received data.

Hi，
The  CONNECT event is that your client connected the server you created.

Hi @xcguang ,
I understand that the CONNECT means that a client connected my server. But the problem is, that under some circumstances, the CONNECT event is sent delayed by the ESP32 module. What I am seeing is that sometimes payload data is sent BEFORE the CONNECT event is put out.

Hi,
Is the issue solved?
Now we add AT+CIPRECVMODE and AT+HTTPCLIENT command. Maybe you can try them.


Add Raccoon Digital Marketing as an official user

Adds Raccoon Digital Marketing as an official Argo user

Checklist:

[] Either (a) I've created an enhancement proposal and discussed it with the community, (b) this is a bug fix, or (c) this is a chore.
[ ] The title of the PR is (a) conventional, (b) states what changed, and (c) suffixes the related issues number. E.g. "fix(controller): Updates such and such. Fixes #1234".
[ ] I have written unit and/or e2e tests for my change. PRs without these are unlike to be merged.
[x] Optional. I've added My organization is added to the USERS.md.
[ ] I've signed the CLA and required builds are green.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Hi @RafaelMarquesRodrigues. Our official users list has moved to https://github.com/argoproj/argo/blob/master/USERS.md. Could you please add your company there?

I've updated my branch and moved the link location, thanks @simster7


Fix tomcat group dependency loop.

Otherwise you get:
Invalid relationship: File[/srv/tomcat/instance] { require => Group[tomcat] }, because Group[tomcat] doesn't seem to be in the catalog

@salekseev could you please test if latest version still have an issue?

@salekseev this PR is old and not mergeable anymore. I close it, feel free to reopen if it is still relevant.

Yeah, sorry for dropping out of this conversation. We have stopped using this module in production so it has become irrelevant for us.


Feature/tvist1 599 addition of template placeholders

https://jira.itkdev.dk/browse/TVIST1-599

Adds hearing startedOn as a placeholder in mail templates
Adds activeAgendaDate property to CaseEntity and modifies it when
AgendaCaseItem is created
AgendaCaseItem is removed
Agenda date is modified
Agenda is finished

Look good. It's not obvious (to me) what “activeAgendaDate” actually is. I suppose it's the date from the active agenda on a case, and if I'm correct “dateForActiveAgenda” may be a better name.

That is exactly what it is. The renaming you proposed is good. Updated in f8cf54bfc3b318219aae691ea5f492c7d3a0099b.


Video Tutorial on how to build a USBValve

I thought I would post this here. I made a video tutorial on how to build a USBValve. Anyone should be able to follow this tutorial and build one at home. Feel free to post/share it and I hope those interested in this project find it helpful! Youtube Video
Also as the project evolves if a different PCB emerges feel free to reach out and I will be happy to create an updated video tutorial.

Wow @Tz1rf awesome work!
If it's ok for you I'd like to link it in the README file of the project.
Thanks a lot!

Yes you can link where ever you would like. You don't need my permission to distribute the video. Feel free to share it/post it anyplace you want.

Thanks!!

@Tz1rf May I re-upload  your video on BiliBili?
YouTube has been banned in China,so that's pretty difficult to access the original link of your amazing video for Chinese users. :(
I'll mark the original link in the description. ;)
Thank you for your video :D

I would prefer that you don't. Re-uploading my video is not the same as sharing/posting it using the youtube link.

I would prefer that you don't. Re-uploading my video is not the same as sharing/posting it using the youtube link.

Thanks for your reply, I will not re-upload this video :D

I created a video showing how to flash the firmware to the Valve as well as how to use the device. https://youtu.be/Tp8xvrlqxUY

Awesome! Thank you very much! I'm going to link also this one in the README.
Thanks!


Issue on RPI

Hi,
I installed the libgpib with success and validate test (ibtest) with a 8753ES connected with ni usb hs device.
8753-companion was build ans installed with success, despite the fact that an error regarding unsigned long showed up and I replace it with the %ull in a printf directive to fix the error (it concern HP8753comms.c):
 g_string_append_printf( stCalKit, "OFSD %.17le; OFSL %.17e; OFSZ %lg; MINF %lu; MAXF %lu; %s; STDD; ",
                    pStandard->offsetDelay, pStandard->offsetLoss, pStandard->offsetZ0,
                    pStandard->minFreqHz, pStandard->maxFreqHz,
                    pStandard->connectorType == eConnectorTypeCoaxial ? "COAX" : "WAVE");

=> %lu replaced by %llu to fix the error.
Then installation goes well.
But when executing the companion I got following issues while trying getting trace ( and the app finally crash):
Here's the journal after  a --debug 7 when loading the app.
chris@raspberrypi:~ $ journalctl -t hp8753 -f
-- Journal begins at Tue 2023-02-21 03:02:30 CET. --
mars 14 10:51:30 raspberrypi hp8753[1760]: Cannot query identity - cannot proceed
mars 14 10:51:43 raspberrypi hp8753[1760]: Ending
mars 14 10:53:50 raspberrypi hp8753[2185]: Starting
mars 14 10:53:50 raspberrypi hp8753[2185]: Linux raspberrypi 6.1.21-v7l+ #1642 SMP Mon Apr  3 17:22:30 BST 2023 armv7l
mars 14 10:53:50 raspberrypi hp8753[2185]: HP8753 Companion version: v1.28.3
mars 14 10:54:04 raspberrypi hp8753[2185]: 🖊 HP8753: IDN?;
mars 14 10:54:04 raspberrypi hp8753[2185]: 🖊 HP8753: 5 / 5 bytes
mars 14 10:54:04 raspberrypi hp8753[2185]: 👓 HP8753: 40 bytes (50 max)
mars 14 10:54:04 raspberrypi hp8753[2185]: IDN returns "HEWLETT PACKARD,8753ES,US39172545,7.74
"
mars 14 10:54:04 raspberrypi hp8753[2185]: Cannot query identity - cannot proceed
After startup I need to configure manually the GPIB number 16 to get the "contat established" mention at the bottom left on the window.
As soon as I push "Get Trace" button, it show up:"Cannot query identity- cannot proceed", a second press will crash the app.
It's installed on a PI400:
Linux raspberrypi 6.1.21-v7l+ #1642 SMP Mon Apr  3 17:22:30 BST 2023 armv7l GNU/Linux
Sincerely,

OK, I was assuming a purely numeric S/N when parsing the IDN? string.
I've fixed that now. Please pull the changes and try again.
(Thanks for reporting the issue.... with each new model tried there are always a few issues.)_

I did the re-installation but I got the same issue:
chris@raspberrypi:~/8753-comp/HP8753-Companion/build $ journalctl -t hp8753 -f
-- Journal begins at Tue 2023-02-21 03:02:30 CET. --
mars 15 11:20:58 raspberrypi hp8753[8837]: Cannot query identity - cannot proceed
mars 15 11:21:18 raspberrypi hp8753[8837]: Ending
mars 15 11:21:33 raspberrypi hp8753[8869]: Starting
mars 15 11:21:33 raspberrypi hp8753[8869]: Linux raspberrypi 6.1.21-v7l+ #1642 SMP Mon Apr  3 17:22:30 BST 2023 armv7l
mars 15 11:21:33 raspberrypi hp8753[8869]: HP8753 Companion version: v1.29.1
mars 15 11:21:36 raspberrypi hp8753[8869]: 🖊 HP8753: IDN?;
mars 15 11:21:36 raspberrypi hp8753[8869]: 🖊 HP8753: 5 / 5 bytes
mars 15 11:21:36 raspberrypi hp8753[8869]: 👓 HP8753: 40 bytes (50 max)
mars 15 11:21:36 raspberrypi hp8753[8869]: IDN returns "HEWLETT PACKARD,8753ES,US39172545,7.74
                                           "
mars 15 11:21:36 raspberrypi hp8753[8869]: Cannot query identity - cannot proceed

Can you look at the code an make sure this line in HP8753comms.c  is as shown ..
https://github.com/VK2BEA/HP8753-Companion/blob/21e4430b0f65aec4f4c12cae80b2259a4161bd9e/src/HP8753comms.c#L510

Here's the source code I cloned from GIT (and installed):
nConv = sscanf( ASCIIanswer, "%50[^,],%50[^,],%50[^,],%d.%d", sManufacturer, sProduct, sSerial, &ver, &rev );
It's the same.

OK, thanks for double checking.
I see I introduced a problem when I changed that line and now do 5 conversions rather than 4 (which is checked a few lines below). I've updated again, please check with the new version.

Hi,
it works well now!
Working with 4 parameters view, a get trace ill displays S11 and S21.
Is there a trick to display S12 and S22?
Sincerely,

So with the ES, you can get 4 traces at the same time?   Nice ...
It would not be to difficult for me to modify (adding two more channels) but I have no way to test it.
I guess the HPGL plot shows them.


The Azure CLI Task does not fail when a command fails

Required Information
Type: Bug
Task Name: Azure CLI
Environment
Server: Azure Pipelines
Account Name: mtcdenver
Project Name: Azure Demos
Build Definition Name: demo-whack-a-mole-admin
Build Number: #20190401.2
Agent: Hosted
Issue Description
When a command within the Azure CLI task fails, subsequent commands within the script continue to run and the task is marked as successful, causing the build or release process to conitnue.  The Azure CLI task only fails if there is a failing exit code on the last command, which is not how any script runner should be expected to work.
Any failing exit code returned from any command should immediately terminate the script and mark the task as failed.
Task logs
Relevant log snippet:
2019-04-01T23:40:40.9454429Z /bin/sh: 1: slkjdflsdkjfsd: not found
2019-04-01T23:40:40.9455322Z The command '/bin/sh -c slkjdflsdkjfsd' returned a non-zero code: 127
2019-04-01T23:40:40.9455855Z 2019/04/01 23:40:39 Container failed during run: build. No retries remaining.
2019-04-01T23:40:40.9456310Z failed to run step ID: build: exit status 127
2019-04-01T23:40:40.9456648Z
2019-04-01T23:40:40.9457059Z Run ID: cj1t failed after 1m25s
2019-04-01T23:40:40.9671327Z ERROR: Run failed

However the task continues to run other commands after, and marks itself as successful.
Full Debug Logs

We have run into this issue with a customer project that looking to bring a large Heroku app into Azure and Azure DevOps. Would be great if this script worked like many/most of the others out there.

I often recommend use of the Azure CLI task to build and push containers as well, as it's nice to be able to interact with ACR without creating a seperate service principal.  However with how things are designed now I need an incredibly over complicated script to check each previous lines success and only continue if it's really working.

@jlorich @cwiederspan The Azure CLI task relies on the scripting environment’s behaviour. For inline scripts, the task actually creates a batch script (in Windows) or bash script (in Linux) with the specified commands and executes the script. So the behaviour of whether to exit on individual command failure or not is dependent on the script & scripting environment. The default behaviour for batch script (Windows) is to exit on failure, while the same for bash script (Linux) is to continue irrespective of return code.
@jlorich Since you are running the script on Ubuntu agent, your script is simply continuing further without considering the return code of individual commands. If you want to alter this behaviour, you need to modify your script appropriately – either explicitly check for command return code for specific commands or alter the script execution behaviour. E.g., in order to achieve the latter in Ubuntu, you can probably add “set -e” command to the start of your script.
Let us know if this doesn't work for you.

Perhaps this is just a lacking in the documentation then, as both myself and a number of others have ran into this in the past - especially with inconsistencies depending on the build agent that is running.   I think this has led to a number of various issues that have been filed here in the past too. For an external script file, setting set -e makes sense, for an inline script to me that was already the expected behavior.  It gets especially confusing since there are "fail on standard error" and "continue on error" options in the GUI, but neither really perform what I feel the general expectation would be.
To me having adding an option that sets 'set -e' for you, and tweaking the descriptions may help prevent this confusion in the future.  For example, if the options were:

Fail task immediately if a command fails
Fail task after script execution on StandardError

This would make it quite clear what is happening, and provide the option to write a release task that is not dependent on the underlying agents behavior.

Thanks @jlorich for the feedback. Adding @pulkitaggarwl to consider the feedback in the next version of the task. For now, since you are unblocked, I'm closing this issue. Feel free to reach out to us, if you need any further help.

Since I see no open feature request: Is there an option now? Will we get one?
It’s easy to forget to add set -e for every single CLI task, it would be great to set it globally once.

Indeed, please add it as option in the bash step

But it doesn't work, haha

@stodirascu that does not sound correct. failOnStderr lets a task fail when there is any output on the error stream, there is no check whether or not the output of a command is 0 (or any failure).

Aha, I see, @kappmeier. Then +1 for this to be reopened.


Zend\Json and PHP Built-in JsonSerializable Interface Inconsistency

Background Story:
I was facing a problem with JsonRenderer not displaying the content of protected properties of the objects, digging into the docs i found a page (http://framework.zend.com/manual/2.2/en/modules/zend.json.objects.html#encoding-php-objects) wich informe that i should implement toJson() method in this object that is called on Zend\Json\Json::encode()
So i asked on IRC and with @ocramius help i figure out that the problem is that this not work because aparently JsonRenderer use the PHP built in json_enconde() wich expects that your object implements JsonSerializable Interface.
Long story short: this leads to a discussion about the consistency of the use of Zend\Json and PHP Built in Json functions arround the many Zend components.
@ocramius said that the main reason of ZF implement your own Json class is because "Zend\Json actually supports exceptions, while json_* are a mess of warnings :P"
But we should be aware that change the implementation of the several components wich use built-in json_* functions can lead to a major breackage, besides of the fact that JsonSerializable Interface is only present in PHP>5.4 so i would like to propose an approach to the problem:

All components should check if Zend\Json is avaliable and if yes use it. Zend\Json should check if there is a method JsonSerialize() (today it checks if there is a method toJson() ). If Zend\Json is not present (the case of an individual component being used instead of the full framework) it should use built-in json_* functions. On both cases the developer should only implement one method ( JsonSerialize() ) the atual implementation leads to problems where one need to implment two methods to do the same thing if the same object is used with two components with different approachs.

We can implement it progressively in order to avoid BC breakes:

We change the actual behavior of Zend\Json to check first if toJson() method is avaliable and use it, if not check if JsonSerialize() is present and use it.
Then we change the behavior of the other components that use json_* functions to use ´Zend\Json´ if it's avaliable.

I think this could BC objects that implements either toJson() and JsonSerialize(), because toJson() gets precedence in the Zend\Json. we can solve it with a flag that invert precedence.

Depracted the use of toJson().
At the time of ZF3 launch we completely remove the toJson() check and change the check for the existence of JsonSerialize() to the check of instanceOf JsonSerializable since ZF3 will be at least PHP 5.4+ (Several BC breakes here, but since it will be postpone to zf3 launch these BC breakes are acceptable).

I think i didn`t forget nothing but if i did, please make suggestions.

This issue has been closed as part of the bug migration program as outlined here - http://framework.zend.com/blog/2016-04-11-issue-closures.html


[BEAM-7751] Add a CoGroupByKey load testing Jenkins job

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[x] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

 Should the phrase be added to the readme?

@pabloem I noticed that there is no load test section in the readme, I'll add it in a separate PR and document all the tests there. Let's merge this as is

@pabloem WDYT? Can we merge it?

I created a JIRA issue for README here

Thanks! Merging


Output from zebra-dump-parser and bgpreader are different

Hi All,
I am downloading below MRT file from RIS and trying to parse it via zebra-dump-parser and pybgpstream
wget https://data.ris.ripe.net/rrc00/2023.01/updates.20230120.1420.gz
As you can see in below output, according to zebra-dump-parser we have one BGP update containing 3 announced prefixes. But in the case of bgpreader it is split into 3 different BGP updates instead of 1. Is this right behavior ?
Output from zebra-dump-parser
TYPE: BGP4MP/BGP4MP_MESSAGE_AS4 AFI_IP
FROM: <IP_ADDRESS>
TO: <IP_ADDRESS>
BGP PACKET TYPE: UPDATE
ORIGIN: IGP
AS_PATH: 49134 53356 6939<PHONE_NUMBER>6 16397 15830<PHONE_NUMBER>6
NEXT_HOP: <IP_ADDRESS>
ANNOUNCED: <IP_ADDRESS>/24
ANNOUNCED: <IP_ADDRESS>/24
ANNOUNCED: <IP_ADDRESS>/24

Output from bgpreader
U|A|1674224400.000000|singlefile|singlefile|||49134|<IP_ADDRESS>|<IP_ADDRESS>/24|<IP_ADDRESS>|49134 53356 6939<PHONE_NUMBER>6 16397 15830<PHONE_NUMBER>6|52976|||
U|A|1674224400.000000|singlefile|singlefile|||49134|<IP_ADDRESS>|<IP_ADDRESS>/24|<IP_ADDRESS>|49134 53356 6939<PHONE_NUMBER>6 16397 15830<PHONE_NUMBER>6|52976|||
U|A|1674224400.000000|singlefile|singlefile|||49134|<IP_ADDRESS>|<IP_ADDRESS>/24|<IP_ADDRESS>|49134 53356 6939<PHONE_NUMBER>6 16397 15830<PHONE_NUMBER>6|52976|||

Yes, this is by design.
BGPStream decomposes a single update ("record" in BGPStream terminology) into one "elem" per prefix -- this is because almost nobody cares about processing the update itself, they care about the prefixes contained in the update.
If you really care about the way the prefixes were packed together by the router, then you can iterate over records and for each record, iterate over its elems (this is what is happening under the hood when you iterate over a stream in pybgpstream).
You can read more about this here: https://bgpstream.caida.org/docs/encoding

Thanks @alistairking
Let me try iterating through BGPRecords instead of BGPElems.


Update hello-world.js

Summary by Sourcery
Documentation:

Add a comment explaining the purpose of the hello-world.js script.

This is the most basic and there is no requirement for this one. Add something more relevent next time.


Allow non-Default extras

Solves #153.
This PR will need a semver bump, since these are breaking changes.

Cheers!


Fix 311 lint errors

Hi @sevazhidkov! A few comments:

We use double quotes for the outer quotation. We are formalizing this by adopting the jQuery coding standard.
You should make all pull requests against the develop branch, if it exists for the repository in question.
Please summarize your pull requests. In this case, it would be a list of the type of lint errors you are fixing.


unkown issue

PS C:\Users\alexg> git clone https://github.com/peter-hunt/skyblock.git Cloning into 'skyblock'... remote: Enumerating objects: 3289, done. remote: Counting objects: 100% (495/495), done. remote: Compressing objects: 100% (319/319), done. Rremote: Total 3289 (delta 301), reused 320 (delta 167), pack-reused 2794eceiving objects:  97% (3191/3289), 2.71 MiB | 758.00 Receiving objects: 100% (3289/3289), 2.72 MiB | 763.00 KiB/s, done. Resolving deltas: 100% (2473/2473), done. PS C:\Users\alexg> cd skyblock PS C:\Users\alexg\skyblock> python -m skyblock Installing Assets... Assets Installed! Traceback (most recent call last):   File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\lib\runpy.py", line 197, in _run_module_as_main     return _run_code(code, main_globals, None,   File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\lib\runpy.py", line 87, in _run_code     exec(code, run_globals)   File "C:\Users\alexg\skyblock\skyblock\__main__.py", line 18, in <module>     skyblock_main()   File "C:\Users\alexg\skyblock\skyblock\__main__.py", line 14, in skyblock_main     main()   File "C:\Users\alexg\skyblock\skyblock\function\util.py", line 34, in result     return func(*args, **kwargs)   File "C:\Users\alexg\skyblock\skyblock\menu.py", line 51, in main     clear()   File "C:\Users\alexg\skyblock\skyblock\function\util.py", line 44, in clear     call(['clear'])   File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\lib\subprocess.py", line 349, in call     with Popen(*popenargs, **kwargs) as p:   File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\lib\subprocess.py", line 951, in __init__     self._execute_child(args, executable, preexec_fn, close_fds,   File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\lib\subprocess.py", line 1420, in _execute_child     hp, ht, pid, tid = _winapi.CreateProcess(executable, args, FileNotFoundError: [WinError 2] The system cannot find the file specified

Are you running on windows? This project is only intended for Mac/Linus systems.
I also seem to miss the subprocess module in the requirements.txt, I'll add that soon.

Wait, it's the problem inside the module...
I'm sorry but this project currently doesn't support Windows (cuz I can't get it to work on Windows)


Many feature requests.

I will check if any of these are already added and update this.

Sneak through Sweet Berry Bushes without taking damage
You take damage on magma blocks even while sneaking
If a skeleton is on fire it will have a chance to shoot a flaming arrow. Flaming arrows will cause some burning damage if they hit you (70% chance by default)
Sleeping in a bed will heal the player by a configurable amount
Sleeping will cure negative and positive potion effects
Fix fire damage not always giving cooked drops caused by inconsistency with how loot tables check if the mob was on fire. The vanilla mechanic only checks for "damage over time" fire damage and not instant fire damage. This has lead to many edge cases where things like the vanilla Camp Fire block and various fire mechanics in other mods will not cause mobs to drop the correct items
Expand the vanilla feature that allows zombies to spread fire to their targets if they attack without an item to all mobs
Strippable blocks can be stripped in a crafting table with an axe
Concrete powder can be solidified in a crafting table with a water bucket
The glass bottle received after drinking a potion will automatically be moved into an already existing stack of glass bottles in your inventory (if available)
Chests can be opened through item frames, causing the item not to be rotated.  Drop food to breed them
Wild wolves are able to be bred. Allow for some neat natural systems
Plants that fall on dirt or grass will automatically plant. Applies to saplings, wheat seeds, pumpkin seeds, melon seeds, beetroot seeds, carrots, and potatoes
Make grass and long grass spread naturally over time
Remove hitboxes from long grass. Hitboxes are shown when using shears. Seeds can be gathered by using a hoe on the ground below them
Make leaves passable by removing collision from them
Leaves decay fast when outside the range of a log block
Allow boats to pass through lily pads without breaking them. Also allows entities to rise through the bottom of a lily pad
Farmer villagers will deposit excess items into a nearby chest
When a log on fire burns, it drops A charcoal (Also makes charcoal fireproof)
Doors and trapdoors open adjacent doors and trapdoors of the same type. Works when opened by hand or with Redstone
Right-click signs to edit text
Destroyed signs preserves text
Right-click a Cauldron with a Heart of the Sea to create an infinite water source
XP sources give their XP directly to the player that earns them (other than the Ender Dragon). This would reduce lag on big servers
The heads of tipped arrows render the color of their status effect
Cobblestone and stone brick blocks, slabs, stairs, and walls will turn mossy when in rain or surrounded by water and will dry out again when in sunlight
Cauldrons can't be filled with water in the Nether
Falling into a water-filled cauldron will save you from fall damage just like normal water
Fix water in cauldrons rendering as opaque. Make water render as translucent as intended
Fix end portals only rendering from above
Remove the glowing effect from potions, this will make potion colors more visible
Disable the warning that displays when loading a world that uses experimental settings
Allow zombies to break wooden doors placed in all directions - https://youtube.com/watch?v=jQJL2L_clvE
Projectiles can break glass
Spawn eggs can be thrown
Disable random chicken egg-laying. Instead, chickens will lay one or two eggs when breeding
Increase the chance of spawning a chicken when throwing an egg to 80%
Chickens drop feathers randomly.
Zombies can break doors on the normal and easy difficulty.

275ac1a1e0290fa8e600e617c6fa5c258e3f5fb7
Please pick 6 or so of these that you really want and make individual issues for them.

275ac1a1e0290fa8e600e617c6fa5c258e3f5fb7
Please pick 6 or so of these that you really want and make individual issues for them.

I will open new issues for the best features from these. A few new ones after You decide if you want or not something from these I opened for now.

I will open new issues for the best features from these. A few new ones after You decide if you want or not something from these I opened for now.


Update faq.md

a small error in the link

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks!


build: Update to use released SDK

Signed-off-by: Leonard Goodell<EMAIL_ADDRESS>

If your build fails due to your commit message not passing the build checks, please review the guidelines here: https://github.com/edgexfoundry/device-mqtt-go/blob/main/.github/Contributing.md
PR Checklist
Please check if your PR fulfills the following requirements:

[x] I am not introducing a breaking change (if you are, flag in conventional commit message with BREAKING CHANGE: describing the break)
[x] I am not introducing a new dependency (add notes below if you are)
[ ] I have added unit tests for the new feature or bug fix (if not, why?) N/A for build PRS
[ ] I have fully tested (add details below) this the new feature or bug fix (if not, why?) N/A for build PRS
[ ] I have opened a PR for the related docs change (if not, why?) N/A for build PRS

Testing Instructions
N/A for build PRS
New Dependency Instructions (If applicable)
N/A for build PRS

recheck

Codecov Report

Merging #322 (0b96a0d) into main (f142b7d) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #322   +/-   ##
=======================================
  Coverage   21.66%   21.66%
=======================================
  Files           5        5
  Lines         480      480
=======================================
  Hits          104      104
  Misses        363      363
  Partials       13       13

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update f142b7d...0b96a0d. Read the comment docs.


Cannot open rtsp stream from VLC

rtsp-simple-server v0.14.2
VLC version 3.0.12
A rtsp audio stream is published to a remote server (VPS) running Debian10 Linux and rtsp-simple-server.
The publishing is done using ffmpeg from Linux and the command
'ffmpeg -ac 1 -f alsa -i hw:CARD=CODEC,DEV=0 -acodec libmp3lame -ab 32k -content_type audio/mpeg -vn -f rtsp  rtsp://<uname>:<pwd>@<Stream URL>:8554/<path label>'.
( < .... > is a confidential string of the type indicated between < >)
I can connect to the stream using ffmpeg and a command 'ffmpeg -i rtsp://<Stream URL>:8554/<path label> -c copy stream.mp3'
Problem:
Opening the stream from VLC (comand 'Open Network Stream') with the network URL rtsp://<Stream URL>:8554/<path label> does not work.
Logging results:
Debug logging on VLC:
.....
main debug: connection succeeded (socket = 35)
main debug: net: opening <IP_ADDRESS> datagram port 9258
main debug: net: opening <IP_ADDRESS> datagram port 9259
satip error: Failed to play RTSP session
satip error: read error: Operation now in progress
satip error: Failed to teardown RTSP session
main debug: net: connecting to <Stream IP Address> port 8554
main debug: connection succeeded (socket = 35)
access_realrtsp warning: Cseq mismatch, got 1, assumed 0
access_realrtsp debug: rtsp connected
access_realrtsp warning: only real/helix rtsp servers supported for now
main debug: no access modules matched
main debug: dead input
qt debug: IM: Deleting the input
main debug: changing item without a request (current 0/1)
main debug: nothing to play
main: end of playlist, exiting
main debug: exiting
.....
The rtsp-simple server log gives:
.....
[client :50028] connected (plain)
[client :50028] ERR: path has changed, was '<path label>', now is 'stream=0'
[client :50028] disconnected
.....
Any suggestion how to get VLC to open the stream?

strange: using VLC from a Windows10 computer the stream does start. So this appears to be something VLC/Linux <>rtsp-simple-server specific or perhaps a plain VLC/Linux bug.

Hello, to fix this i need a dump of the data exchanged between the server and the target (network dump), that can be generated in this way:

Download wireshark (https://www.wireshark.org/)
Start capturing on the interface used for exchanging RTSP (if the server and the target software are both installed on your pc, the interface is probably "loopback", otherwise it's the one of your network card)
Start the server and replicate the issue
Stop capturing, save the result in .pcap format
Attach

Regarding corrupted frames, in the configuration try increasing these parameters
readBufferCount: 512
readBufferSize: 2048

I seem to have a similar problem.  This is happening only 3.0.12 - same source stream works fine on 3.0.11. Logs:
err.txt
Broken:
gherlein@alien:~$ cvlc --version
VLC media player 3.0.12 Vetinari (revision 3.0.12-1-0-gd147bb5e7e)
VLC version 3.0.12 Vetinari (3.0.12-1-0-gd147bb5e7e)
Compiled by buildd on lgw01-amd64-039.buildd (Mar  9 2021 16:42:00)
Compiler: gcc version 10.2.1 20210306 (Ubuntu 10.2.1-21ubuntu1)
Working:
gherlein@mars:~$ cvlc --version
VLC media player <IP_ADDRESS> Vetinari (revision <IP_ADDRESS>-0-g52483f3ca2)
VLC version <IP_ADDRESS> Vetinari (<IP_ADDRESS>-0-g52483f3ca2)
Compiled by buildd on lgw01-amd64-035.buildd (Sep 22 2020 21:11:26)
Compiler: gcc version 10.2.0 (Ubuntu 10.2.0-9ubuntu2)

not a rtsp-simple-server issue.


In my device always comes lat and lon 0.0

good morning,  can help me
i had created an app for control of bike tours, during the tour will be saved the coordinates of a cyclist on local database and i used RxLocationManager for catch lat and lon, but in my device lat and lon always comes 0.0.
i use GcmNetworkManager for execute in background to
dribble the doze mode and kotlin, but i think that not have incompatibilities
this is my service:
`
class CoordinatorService : GcmTaskService() {
private var location: Location? = null

override fun onRunTask(p0: TaskParams?): Int {

    retrieveCoordinate();
    lockThreadUntilLocationNotNull()

    if(location == null || location?.latitude == 0.0){
        Log.i("log_cat", "ERRO")
        return GcmNetworkManager.RESULT_RESCHEDULE
    }else{
        Log.i("log_cat", "SUCESSO")
        return GcmNetworkManager.RESULT_SUCCESS
    }

}

private fun retrieveCoordinate() {
    val locationRequestBuilder = LocationRequestBuilder(applicationContext)

    locationRequestBuilder.addLastLocation(LocationManager.NETWORK_PROVIDER, LocationTime(20, TimeUnit.SECONDS), IgnoreErrorTransformer(null))
            .addRequestLocation(LocationManager.GPS_PROVIDER, LocationTime(60, TimeUnit.SECONDS))
            .setDefaultLocation(Location(LocationManager.PASSIVE_PROVIDER))
            .create()
            .subscribe(object : Subscriber<Location>() {
                override fun onCompleted() {}
                override fun onError(e: Throwable) {}
                override fun onNext(l: Location) {
                    location = l
                    Log.i("log_cat", l.latitude.toString() +" "+ l.longitude.toString())
                }
            })
}

private fun lockThreadUntilLocationNotNull() {
    while (location == null) {
        SystemClock.sleep(1000)
    }
}

}
`
manifest already has:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
on logcat two lines:
0.0 0.0
ERRO
the most intresting is that in other device the same code generate lat e lon correctly, my device is android 5 and other device is android 6,
all permissions have granted and gps e wifi connected, i check this before start the service on Activity
what wrong in my device/app?

Hi :) Sorry for delay.
My colleague had the same issue on a single device with Android 8. And it has disappeared after one day.
It seems like Android LocationManager cannot receive location from any provider.
Can you please call requestSingleUpdate on UI thread. Do you receive any events in LocationListener?

@Zellius I have the same issue and I call requestSingleUpdate on UI thread like you said,but I did't receive any event,so wht's the problem?

@BDwuzhou Did you tried to use the LocationManager.NETWORK_PROVIDER? Do you have same issue?
Android LocationManager will not call any LocationListener's method if the device cannot receive a Location from the provider. Usually network provider works better than gps. Especially inside buildings. But it may not work too.
Does my example work on your device? Did you tried to run your code on the emulator and send fake locations? You can try to send fake location on your device too via apps.


Twitter benchmark refactoring

Dynamic batch size (as a multiple of copies_per_tweet_k) must be allowed in docs_upsert
The full graph must be imported in the index_file
All insertions must be imported in transactions, to avoid state corruption

Fixed by me in 406ca7c6392748dda1f7394f0863652146389524.


Simplify ParquetFileArrowReader Metadata API

Which issue does this PR close?
Follow on from #1716
Rationale for this change
As pointed out by @alamb https://github.com/influxdata/influxdb_iox/pull/4743/files/5fccaab1f94f7e5b8b69ab35ea11c151cb1b8a2d#r885642739 the UX of getting the parquet schema from a ParquetFileArrowReader is not great.
What changes are included in this PR?
Adds a parquet_schema member function that returns the schema.
It also deprecates the get_metadata function, as it doesn't need a mutable reference nor to return a clone, and replaces it with a metadata function that is consistent with the equivalent method on FileReader.
Are there any user-facing changes?
A function is deprecated

Codecov Report

Merging #1773 (71cfed9) into master (28949f1) will decrease coverage by 0.00%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master    #1773      +/-   ##
==========================================
- Coverage   83.39%   83.39%   -0.01%
==========================================
  Files         198      198
  Lines       56138    56142       +4
==========================================
- Hits        46819    46818       -1
- Misses       9319     9324       +5

Impacted Files
Coverage Δ

parquet/src/arrow/arrow_reader.rs
96.13% <0.00%> (-0.75%)
:arrow_down:

arrow/src/datatypes/datatype.rs
65.42% <0.00%> (-0.38%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 28949f1...71cfed9. Read the comment docs.

🎉


Add Features to help with MacOS Mojave 64-Bit / Metal Transition

Feature Suggestion:

Implement a way to add switch to only install 64 bit / Metal versions of programs from brew / cask / etc. Providing a warning if only 32 bit / OpenGL / OpenCL is available in brew doctor (on compatible devices).
Provide warnings during installation if a package only has a 32-bit / OpenGL / OpenCL version or has a 64 bit / Metal version but is not installed. Allow this warning to be turned on/off and permission to install 64 bit / Metal version instead so it's less invasive.
Implement a way to list only 32 bit  / OpenGL / OpenCL packages that do not have 64 bit / Metal.

Motivation:

"Starting with macOS High Sierra 10.13.4, apps that have not been updated to use 64-bit processes produce a one-time alert when opened. This gives users advance notice that they are running 32-bit software, which will not be compatible with macOS in the future. "
"Apps built using OpenGL and OpenCL will continue to run in macOS 10.14, but these legacy technologies are deprecated in macOS 10.14. Games and graphics-intensive apps that use OpenGL should now adopt Metal. Similarly, apps that use OpenCL for computational tasks should now adopt Metal and Metal Performance Shaders." See Deprecations in the new macOS Mojave

Purpose:

This allows Homebrew users to circumvent / minimize this warning from happening:

Further motivates the developer community to update packages to a 64 bit architecture.
Helps Homebrew's future transition in providing compatible software easier when the transition date is set (see https://support.apple.com/en-us/HT208436).
Keeps all packages pristine and healthy for when the transition is fully implemented.

Alternatives considered:

Manually checking each package and keep track for the architecture before installing it.

This allows Homebrew users to circumvent / minimize this warning from happening

Does this happen with Homebrew applications?
If it does this is an interesting idea but it's something we'd need to review a PR for rather than do ourselves.

@MikeMcQuaid Yes, this happens with Homebrew applications, especially a lot of them within homebrew cask. Will work on doing a PR.


Missing on YT music

I've been listening on Google podcasts and received an email the other day that YT Music will be the new platform for podcasts.  Syntax doesn't show up over there yet, I'm wondering if there's something you all can do about that?

Interesting - Ill take a look into why

seems youtube music doesnt ingest RSS feed yet, they will, but we are also going to have the podcast done in video soon so we will publish that

sounds good, thank you... don't want to imagine my car rides without Syntax!


#16 Update for Senzing Python SDK package

Pull request questions
Which issue does this address
Issue number: #16

#15


Add batchcmd:path

Is your feature request related to a problem? Please describe.
There's some issue with batchcmd handling in project (vs, cmake), see #2244, currently the workaround is to test every parameter using path.is_absolute, which means we have to mark every path as absolute for it to be properly handled (since vs and cmake root can be different from project).
Describe the solution you'd like
-- Turns resources into includables headers
rule("compile_shaders")
	on_load(function (target)
		target:add("deps", "NazaraShaderCompiler")
		target:set("policy", "build.across_targets_in_parallel", false)
	end)

	before_buildcmd_file(function (target, batchcmds, shaderfile, opt)
		local nzslc = target:dep("NazaraShaderCompiler")

		-- add commands
		batchcmds:show_progress(opt.progress, "${color.build.object}compiling.shader %s", shaderfile)
		local argv = {"--compile", "--partial", "--header-file", batchcmds:file(shaderfile)} -- a batchcmds:file function
		batchcmds:vrunv(nzslc:targetfile(), argv, {envs = {XMAKE_SKIP_HISTORY = "y"}})

		local outputFile = path.join(path.directory(shaderfile), path.basename(shaderfile) .. ".nzslb.h")

		-- add deps
		batchcmds:add_depfiles(shaderfile)
		batchcmds:set_depmtime(os.mtime(outputFile))
		batchcmds:set_depcache(target:dependfile(outputFile))
	end)

A batchcmds:file function which can be called to obtain correct file path relative from whom generate batchmcd (vs/cmake project generator)
Describe alternatives you've considered
Using path.absolute but I don't think it's a good solution
Additional context
No response

I'm not talking about a vs-specific feature, but a project-generation helper.
We could totally make it so batchcmds:path(X) returns X by default, but that could be overriden by project generator (or even other utilities requiring a batchcmd).

project-generation is also specific feature, all project generator are both plugin.
batchcmd is generic module, it does not know them. and only project generator need modify root project directory.

I agree, but then batchcmd could allow to set an origin folder without knowing about project that uses it.
for example
regular:
            local batchcmds_ = batchcmds.new({target = target})
            script(target, batchcmds_, {}) -- batchcmd:path(x) returns x

vs project generator:
            local batchcmds_ = batchcmds.new({target = target, path_handler = function (dir) return _make_dirs(dir, vsxprojdir) end})
            script(target, batchcmds_, {})

with ```lua
function batchcmds:path(X)
if self.path_handler then
return self.path_handler(X)
else
return X
end
end

so no need for a dependency between batchcmds and plugins

so, why do not use target:data_set() ? batchcmds does not care about path

vs project can't know when a parameter is a path or not, the idea would be to add a batchcmds:path function that can be called when we want to use a path as a parameter so we can give the possibility to override it, I don't know how to override path otherwise.

vs project can't know when a parameter is a path or not, the idea would be to add a batchcmds:path function that can be called when we want to use a path as a parameter so we can give the possibility to override it, I don't know how to override path otherwise.

project generator need not handle path parameter, only call target:data_set("plugin.vs.projectdir") to save root directory.
and you can handle path in your rules. you can also use target:data_set("translate_path", function(path) end) to add a custom helper function to your all rules. or add a helper module, them use import to use it.

I don't know if I'm using xmake directly or vs project generator when a rule on_batchcmd is called,

local projectdir = target:data("plugin.vs.projectdir")
if projectdir then
   -- handle vs project path
end

so how can I translate paths without modifying the vs generator?

we need only modify generator to add plugin.vs.projectdir once. and your solution need also modify vs generator.
local batchcmds_ = batchcmds.new({target = target, path_handler = function (dir) return _make_dirs(dir, vsxprojdir) end})

why should we implement a solution per generator instead of having a common way to handle it?

batchcmds does not care about path, why should we have to modify a generic module just to implement an issue only related to the generator plugin?

That's the point where I think we disagree, I think batchcmds should have an utility to handle paths because referencing files is essential to call commands, and this isn't an issue only for vs since CMake generator requires code to handle this as well, and I think makefile generator requires it too, since we can generate project files in a folder. Le lun. 11 avr. 2022 à 12:21, ruki @.> a écrit :
…
I don't know if I'm using xmake directly or vs project generator when a rule on_batchcmd is called, local projectdir = target:data("plugin.vs.projectdir")if projectdir then -- handle vs project pathend so how can I translate paths without modifying the vs generator? we need only modify generator to add plugin.vs.projectdir once. and your solution need also modify vs generator. local batchcmds_ = batchcmds.new({target = target, path_handler = function (dir) return _make_dirs(dir, vsxprojdir) end}) why should we implement a solution per generator instead of having a common way to handle it? batchcmds does not care about path, why should we have to modify a generic module just to implement an issue only related to the generator plugin? — Reply to this email directly, view it on GitHub <#2258 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAW5AXJQKG2YH5LG7MDEUSTVEP4IXANCNFSM5TCBM63Q . You are receiving this because you authored the thread.Message ID: @.>

cmake genertor is also project generator, it still be an issue only related to project generator plugin.

Modifying each project generator is unavoidable, and even if batchcmds.path is used, it is still necessary to modify each project generator to add the corresponding path script.
It would also make sense to keep some common state values for each project generator, not just to fix this issues.
We could also have a more generic configuration name for all project generators, e.g. plugin.project.rootdir

we can also pass the path script in project generator.
project generator/main.lua
target:data_set("plugin.project.translate_path", function(dir)
    return _make_dirs(dir, vcxprojdir)
end)

before_buildcmd_file(function (target, batchcmds, shaderfile, opt)
    local translate_path = target:data("plugin.project.translate_path")
    if translate_path then
        shaderfile = translate_path(shaderfile)
    end
end

Ok, but since this isn't a vs-specific issue, but concerns all generator that doesn't rely on xmake, we should set a standard name

this is a reasonable solution, but it's a bit cucumbersome next to a simple function to call to translate path as suggested, I think, it's pretty much the same solution but more verbose

But now I can only provide this final solution, and using plugin.project.translate_path as key is also more readable, and other users can also know that this is for the project generator.
I have improved it on dev. you can try it.
before_buildcmd_file(function (target, batchcmds, shaderfile, opt)
    local translate_path = target:data("plugin.project.translate_path")
    if translate_path then
        shaderfile = translate_path(shaderfile)
    end
end

I did this and it works, thanks.
-- Compile shaders
rule("compile_shaders")
	on_load(function (target)
		target:add("deps", "NazaraShaderCompiler")
		target:set("policy", "build.across_targets_in_parallel", false)
	end)

	before_buildcmd_file(function (target, batchcmds, shaderfile, opt)
		batchcmds:show_progress(opt.progress, "${color.build.object}compiling.shader %s", shaderfile)

		local nzslc = target:dep("NazaraShaderCompiler"):targetfile()
		local translate_path = target:data("plugin.project.translate_path") or function (p) return p end

		-- add commands
		local argv = {"--compile", "--partial", "--header-file", translate_path(shaderfile)}
		batchcmds:vrunv(translate_path(nzslc), argv)

		local outputFile = path.join(path.directory(shaderfile), path.basename(shaderfile) .. ".nzslb.h")

		-- add deps
		batchcmds:add_depfiles(shaderfile)
		batchcmds:set_depmtime(os.mtime(outputFile))
		batchcmds:set_depcache(target:dependfile(outputFile))
	end)

it's a bit cucumbersome to have to handle the case where this function doesn't exist but at least it works, thanks again. Don't we have to update cmake and makefile project generators as well?

Don't we have to update cmake and makefile project generators as well?

we need not update them, only vs/vsxmake generator use different project directory.
other generators have not this issus

Unless you specify a different output directory
xmake project -k cmake my_custom_folder

I did some tests, actually almost every project generator is broken when using an output folder.
xmakefile, vs and vsxmake work fine but cmake, ninja, make are broken, I couldn't test xcode.
They reference file as if they were at the project root:
Showcase: bin/linux_x86_64_debug/Showcase
bin/linux_x86_64_debug/Showcase: bin/linux_x86_64_debug/libNazaraAudio-d.so bin/linux_x86_64_debug/libNazaraGraphics-d.so bin/linux_x86_64_debug/libNazaraPhysics2D-d.so bin/linux_x86_64_debug/libNazaraPhysics3D-d.so bin/linux_x86_64_debug/libNazaraWidgets-d.so bin/linux_x86_64_debug/libNazaraOpenGLRenderer-d.so bin/linux_x86_64_debug/libNazaraVulkanRenderer-d.so build/.objs/Showcase/linux/x86_64/debug/examples/Showcase/main.cpp.o
	@echo linking.debug Showcase
	@mkdir -p bin/linux_x86_64_debug
	@$(LD) -o bin/linux_x86_64_debug/Showcase build/.objs/Showcase/linux/x86_64/debug/examples/Showcase/main.cpp.o $(Showcase_LDFLAGS) > build/.build.log 2>&1

Because of other generators I haven't tested much to modify the output directory. This should be a separate issue, and you can open a new issue.

This could be fixed by the same feature though


change pagination md-label

Cant put this to work.
Setting a inline label or from an object, the label dos not change, and if a put more then one word (white spaces), console will show some errors.
demo
http://codepen.io/anon/pen/vOMVRp?editors=101

The pagination label is an object. I did this so non-english apps could also change the 'of' text. I've updated your Pen

Oh, right.
Thanks!


"Remove Endscreen" cannot be disabled

The option Remove Endscreen cannot be disabled. Even when there is no tick in the checkbox in the options, it will still remove the endscreen on all videos. Very annoying on music videos and lots others.

Dev build 548


networkmanager_dmenu: 2.3.0 -> 2.3.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/firecat53/networkmanager-dmenu///repology.org/project/googler/versions.
meta.description for networkmanager_dmenu is: Small script to manage NetworkManager connections with dmenu instead of nm-applet
meta.homepage for networkmanager_dmenu is: https://github.com/firecat53/networkmanager-dmenu
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 2.3.1 with grep in /nix/store/9yyym484y369p1prc454i0vmnhklyhnz-networkmanager_dmenu-2.3.1
found 2.3.1 in filename of file in /nix/store/9yyym484y369p1prc454i0vmnhklyhnz-networkmanager_dmenu-2.3.1

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
networkmanager_dmenu

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/9yyym484y369p1prc454i0vmnhklyhnz-networkmanager_dmenu-2.3.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A networkmanager_dmenu https://github.com/r-ryantm/nixpkgs/archive/36d6b0bd9dd69babcc4ecde227eebbfa5a311d26.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/9yyym484y369p1prc454i0vmnhklyhnz-networkmanager_dmenu-2.3.1
ls -la /nix/store/9yyym484y369p1prc454i0vmnhklyhnz-networkmanager_dmenu-2.3.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

networkmanager_dmenu

Maintainer pings
cc @jensbin for testing.

LGTM


Escape percentage symbol in TikZ output

Today I created the issue (#395) and now I decided to solve it myself.
I have created an optional parameter escape_pct_latex in the function get_tikz_code so that it is possible to escape the % symbol.
This is done because in LaTeX the percentage symbol stays for comment and so the graphics won't render correctly.

I don't like this too much. It seems easier and more explicit to me to just adopt the titles etc. in the first place. Escaping all percentage characters is also too much. -- Who knows where it's not supposed to be escaped?

I don't like this too much. It seems easier and more explicit to me to just adopt the titles etc. in the first place. Escaping all percentage characters is also too much. -- Who knows where it's not supposed to be escaped?

So in your opinion this should be done only for the axes etc. in the _axes.py file? Or do think to escape % is a bad idea at all?

So in your opinion this should be done only for the axes etc. in the _axes.py file? Or do think to escape % is a bad idea at all?

I think it's a bit specific. Why %? There are many other signs that need escaping in LaTeX, e.g., _, &, {, $. If you try to cover all of those cases, you're basically trying to write a LaTeX parser. I think it's best to be clear and promise that tikzplotlib won't change anything. This way, the user has full control (by putting the correct strings into the titles, axes, etc.).

So in your opinion this should be done only for the axes etc. in the _axes.py file? Or do think to escape % is a bad idea at all?

I think it's a bit specific. Why %? There are many other signs that need escaping in LaTeX, e.g., _, &, {, $. If you try to cover all of those cases, you're basically trying to write a LaTeX parser. I think it's best to be clear and promise that tikzplotlib won't change anything. This way, the user has full control (by putting the correct strings into the titles, axes, etc.).

Ok I see what you mean. If there are parameters in the function call then the user would also have full control.
Nevertheless: Thanks for this great project.

If there are parameters in the function call then the user would also have full control.

Well, the difference is that the user doesn't know exactly what's happening when the parameter is escape_special_latex_characters or something along those lines. It's implicit, and as The Zen of Python says:

Explicit is better than implicit.

Nevertheless: Thanks for this great project.

And thanks for the contribution to you!


feat(SFINT-4849): Insight Smart Snippet

SFINT-4849
This PR is to build a Headless smart snippet controller using an insight engine.
So this splits the existing headless-smart-snippet into a core version of the controller and two specific versions: search and insight.
The only difference between the two use-cases were pretty much the analytics being sent by the different controllers, so I chose to create an "analyticsClient" for the smart snippet controllers to allow them to inject each method that sends the proper analytics events while the state is updated the exact same way for both versions.

Oh I just saw the package-lock with ~60k LOC changed. Probably a npm version mismatch ?


Support For Unique Enums

Right now it isn't possible to have a unique enum field that works in any useful way.
I think the only way to implement this would be creating a new function specifically for creating unique enum fields, something like:
const RadioSchema = createUniqueEnumField('id');

const MyForm = z.object({
  radio: MyUniqueEnum.enum(["one", "two"])
})

Needs to be able to pass in options at the form level and only be passed to the mapping once per field component type.

Alternatively, might remove the enum values feature altogether. Seems to be causing a lot of confusion and may be a footgun, even though it sounds really cool on paper.

wait could you explain more about this decision? i would definitely want to define the possible options in the schema not in the component usage..


API key public

Please check line 28

Thanks. I'll look into it.

Please check line 28

check it out i fixed it


feat : Coding Profile Launcher

It is basically an extension where you can launch your all coding proflies of different websites.

hey @harshita214 , Kindly assign me this issue under JWOC'22 , In present I am working on this issue ...............

@ayush-sleeping assigned
All the best 👍

Completed - #49


Gradle/Jithub Error

Could you define apple skin to be a valid release
Could not find local-repo:appleskin-1.0.11-dev:null

Fixed as it now uses appleskin from its correct maven


disable copilot suggestion in single file ( for solving coding problem without cheating)

I practice coding problems regularly. Even though many platforms support VS Code keybindings, I still prefer coding in VS Code. Especially when I'm not actually testing, the VS Code debug feature is really helpful.
However, Copilot is too smart. I guess I could disable the Copilot extension temporarily, but currently, I move the cursor frantically when the shadow font suddenly appears.

This repo is for issues specific to the code editor. Please file this feature request on https://github.com/community/community/discussions/categories/copilot


Log async backtraces after test timeouts

To make it easier to debug in CI why a particular test gets hung.
This is an invasive change, as it requires annotating all async
functions with async_backtrace::framed, and using a custom proc macro
(slatedb_test_macros::test) rather than the standard tokio::test
macro for test functions.

cc @criccomini @rodesai — not entirely sure y'all will feel good about this invasiveness (and possibly performance implications!) of this change, but I've been wanting to get a feel for async backtraces for a while, and SlateDB is a much better test bed for this experiment than Materialize. Let me know what you think. Only the first commit is meant for review; the second commit just injects a hang so you can see what the timeout test failures look like now.

Thanks for looking into this! As you say, this is pretty invasive. I've actually just started a style guide yesterday to try and clarify what we prioritize in PRs, and simplicity/no-surprises is pretty high on the list. I'm afraid the changes need here are a bit too much for the benefit they provide. With that in mind, I'm inclined to decline this PR. I'll leave the PR open for a bit to let others comment, though.

Yeah, makes sense. I’d also be up for iterating on the approach here to get to a better cost/benefit tradeoff, if y’all think there’s enough potential upside to be worth it:

We can avoid the async_backtrace annotations by trying the tasktrace library. The traces provided by tasktrace are not as good, but also the way async_backtrace infects a codebase is pretty ugly. I was having some trouble getting tasktrace to produce any output at all, but it could be worth giving it another shot.
We could give up on async backtraces and settle for sync thread backtraces. Like, literally spawn gdb in the SIGTERM handler and ask it to noninteractively dump backtraces for all threads. Non traditional, but I think it would work, and the complexity would be localized to the SIGTERM handler.
We could additionally avoid introducing the custom proc macro by requiring (in the style guide) that every test function start with a call to register the SIGTERM handler. Makes it unfortunately easy to forget to do so, but also avoids the magic of a proc macro.

Also happy to just abandon this entirely and accept that async backtraces are still too hard in 2024. :) cargo-nextest might be a better home for a gdb-on-SIGTERM integration, too.

cargo-nextest might be a better home for a gdb-on-SIGTERM integration, too.

This is kinda what I was thinking. This feels like it should live outside of slatedb's source. Ideally, nextest should do this. I poked around but didn't see an extension/plugin interface in nextest. Perhaps they're willing to take a PR for this? @sunshowers is this something y'all would be interested in?

Also easy enough for me to package it up as a standalone crate outside of Slate or nextest, if preferable. With the downside that there’d be some friction if we needed to iterate on the logic.

@benesch This was the option I was considering 😆 . Does nextest support extensions or plugins? I couldn't find anything but I just did a cursory skim. If it does, I'd be fine with hosting a separate slatedb/nextest-timeout-backtrace repo and publish to crates.io. We already do this for our fork of TiDB's fail-parallel.

Will look into it later tonight!

Maybe a cargo plugin would work? All we really need is to hook into the SIGTERM and dump the stack.

hey! what did you have in mind -- could you be more specific?

@sunshowers Ya! Thanks for chiming in. What we're trying to do is get a stack dump when we have a slow test that nextest kills. We want nextest to kill slow tests, and have configured it to do so, but right now it's a little hard to see what the state of the slow test was.

Oh interesting -- so basically, if a test is slow or terminates unexpectedly (maybe with a particular signal), run a script to dump a bunch of output (in your case gdb)? That definitely sounds extremely useful! Yeah, nextest doesn't support this at the moment, though it should.
Would you be ok filing a feature request? https://github.com/nextest-rs/nextest/discussions/new?category=feature-requests

Precisely! Having nextest support configuring a script to run on timeout strikes me as a really nice way to slice it. Putting something gdb-specific in nextest core felt a bit off.

Opened https://github.com/nextest-rs/nextest/discussions/1906

I don't really have much to add, but just wanted to say thanks @benesch for digging into this! I actually might be ok with async_backtrace if we had some way to enforce that it's used, and could quantify the performance hit - IMO having actual traces for async stuff is super valuable - it's just so much better than logs if you're trying to debug any kind of hung process, which happens all the time (unfortunately I imagine more so in async land). But it looks like a best-effort thing where we have to be diligent about using the macro, which might be net-negative (misleading diagnostics can be worse than no diagnostics). So I'm +1 with the outcome from the discussion above.

and could quantify the performance hit

It's also likely possible to use a #[cfg_attr(test)] annotation to only enable async backtraces in tests. Or #[cfg_attr(debug_assertions)] to only enable async backtraces in debug builds. Then there'd be no performance hit in release builds.

Thanks for the discussion, everyone! Sounds like there's general appetite for trying to get something working with gdb, and a general acceptance that async backtraces aren't quite there yet. I've moved this into draft, and I'll circle back on it in a few weeks once cargo-nextest supports timeout and/or termination scripts.
@sunshowers—thank you as always for being awesome. cargo-nextest is such a dream.

I pushed up a change to the current macro to invoke gdb -ex 't a a bt' when SIGTERM is received. Looks pretty good, IMO! Here's the test output:
https://github.com/slatedb/slatedb/actions/runs/12077852320/job/33681350259
If for some reason it turns out to be hard to add support for this to cargo-nextest, it'd be pretty easy to package up slatedb-test-macros::test in a crate that lives outside of this repo.


ssl_assert_hostname option

Is your feature request related to a problem? Please describe.
I'm doing port forwarding hence the https validation fails with Error [ERR_TLS_CERT_ALTNAME_INVALID]: Hostname/IP does not match certificate's altnames.
Describe the solution you'd like
Many http request libraries come with an option to ignore SSL validation errors.
Example: ssl_assert_hostname=false but it should be true by default.
Describe alternatives you've considered
I'm currently using some custom code to do it since I can't use this tool.

have you tried NODE_TLS_REJECT_UNAUTHORIZED=0


But I don't have a "scripts" folder

I inherited a CRA-generated project and I'm new to react.  It has not been ejected, but our package.json looks like this:
    "build": "rm -fr build && npm run env-config && cross-env NODE_ENV=production webpack --config internals/webpack/webpack.prod.babel.js --color -p --progress",
    "build:clean": "npm run test:clean && rimraf ./build",
    "build:dll": "node ./internals/scripts/dependencies.js",
    "start": "cross-env NODE_ENV=development node server",
    "start:tunnel": "cross-env NODE_ENV=development ENABLE_TUNNEL=true node server",
    "start:production": "npm run test && npm run build && npm run start:prod",
    "start:prod": "cross-env NODE_ENV=production node server",

and there is no "scripts" folder.  I desperately want to use react-app-rewired for the sake of the babel-plugin-styled-components plugin.  But after two hours of thrashing, I cannot.  Help wanted :) #

If the project has not been ejected, there should be a node_modules/react-scripts folder (react-scripts being a dependency of create-react-app).
Normally in a non-ejected project we would expect to see the start/build sections of package.json to look like:
"start": "react-scripts start",
"build": "react-scripts build"

The project you've inherited looks like they have made a lot of customisations that are unique to the project. Judging by the snippet you posted above it does not appear to be using the create-react-app scripts anymore. Have a quick look in the "internals" directory in the project - it looks like it is maintaining its own webpack configuration in there. You may be able to simply add the babel-plugin-styled-components plugin as part of the project's .babelrc or package.json babel section as described in the react-app-rewired's Readme in the Jest configuration section.
The issue you will run into trying to use react-app-rewired to make changes is that each of the react-app-rewired scripts for start/build/test try to call the react-scripts (or an equivalent package as specified in the --scripts-version parameter) start/build/test scripts - which you do not appear to be currently using. It means that the react-app-rewired scripts will be unable to do what your package.json is currently doing. Since it appears that you are already not using the react-scripts package to start/build/test the project, I think you'll find that you are able to directly modify the webpack build/server start configurations directly.
Look at your files for "./server.js" (or ts, or whatever the extension is) and the "./internals/scripts" and "./internals/webpack" directories.

Thank you so much for the reply.  Yes, I do see Webpack configs and I have tried to just add the plugin, but I for some reason it won’t build.  Oh well, I’m going to close this issue if you haven’t already, but thanks again for the reply!  Much appreciated.

On Dec 12, 2017, at 1:32 AM, Janeene Beeforth<EMAIL_ADDRESS>wrote:
If the project has not been ejected, there should be a node_modules/react-scripts folder (react-scripts being a dependency of create-react-app).
Normally in a non-ejected project we would expect to see the start/build sections of package.json to look like:
"start": "react-scripts start",
"build": "react-scripts build"
The project you've inherited looks like they have made a lot of customisations that are unique to the project. Judging by the snippet you posted above it does not appear to be using the create-react-app scripts anymore. Have a quick look in the "internals" directory in the project - it looks like it is maintaining its own webpack configuration in there. You may be able to simply add the babel-plugin-styled-components plugin as part of the project's .babelrc or package.json babel section as described in the react-app-rewired's Readme in the Jest configuration section.
The issue you will run into trying to use react-app-rewired to make changes is that each of the react-app-rewired scripts for start/build/test try to call the react-scripts (or an equivalent package as specified in the --scripts-version parameter) start/build/test scripts - which you do not appear to be currently using. It means that the react-app-rewired scripts will be unable to do what your package.json is currently doing. Since it appears that you are already not using the react-scripts package to start/build/test the project, I think you'll find that you are able to directly modify the webpack build/server start configurations directly.
Look at your files for "./server.js" (or ts, or whatever the extension is) and the "./internals/scripts" and "./internals/webpack" directories.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/timarney/react-app-rewired/issues/168#issuecomment-350995701, or mute the thread https://github.com/notifications/unsubscribe-auth/ABtQQL9PEJILhH4afQbh4QUmLzpK_5UTks5s_kg_gaJpZM4Q-ees.

Larry Gerndt
650.669.0335
Emerging Truths http://www.emergingtruths.com/


PowerShell from "Example 1" returns a "The request is invalid" error

When I run the PowerShell from "Example 1", I get a "The request is invalid" error.
I can run it successfully if I change the "Query" and "QueryType" properties from "Scope" to "query" and "queryType". (there might be other solutions without changing the properties' casing)

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

ID: 6e9f57e3-04f9-8e00-efc5-e7b0bd6ebf6c
Version Independent ID: 4bbaa69b-d41e-6290-acdb-35eb06ffb9d3
Content: Create definitions - Microsoft Graph v1.0
Content Source: api-reference/v1.0/api/accessreviewset-post-definitions.md
Product: governance
Technology: microsoft-graph
GitHub Login: @isabelleatmsft
Microsoft Alias: MSGraphDocsVteam

Please refer to this comment.


Configure the Exercism Directory to the installation Path

Right now, the CLI would be configured to fetch the exercises in the directory in which the CMD is opened. This should be defaulted to the installation directory.

This has been fixed. A new version is coming very soon.


Support v4

Support react-router v4 with history v4.
Use new dependency query-string for supporting query parameter present in old version of react-router coupled with history (< v4).
A simple new query_support parameter is available, please check updated README.
This PR make react-router-redux compatible with react-router v4 and history v4 and migration easy.
Example of Rooting:
import React from 'react';
import {Provider} from 'react-redux';
import {Router} from 'react-router';
import {syncHistoryWithStore} from 'react-router-redux';
import {createHashHistory} from 'history';

// routes conifg
import Routes from '../routes';

const Root = ({store}) => {
    const history = syncHistoryWithStore(createHashHistory(), store, {query_support: true});

    return (<Provider store={store}>
                <Router history={history}>
                    <Routes/>
                </Router>
    </Provider>);
};

Note routerMiddleware takes in parameter history, so it's better to put the declaration of your history in a file and import it for passing it to syncHistoryWithStore and routerMiddleware ;)

This isn't the route I want to take this library. For one, query string parsing doesn't belong here. Also, you don't want to replace the properties of the original history object, as that would be destructive to the history singleton in Router <=3.x.

query-string is just a support... I hope we could talk about it and add a deprecated warning telling people to use search instead of query... Thought it would be a great extra tool for helping people migrating from their previous codebase.
I do want to replace properties from the original object for supporting v4, putting an extra check for supporting router <= 3.x is easily doable.
Sorry to help...

I think supporting v4 is a must, even with a @next or @v4support tag in npm, since some people needs react-router v4 that's synced with redux in their React-Native project.

Yep I agree with you @linonetwo , for now for making it work with react router v4, I simply use this modified version of sync.js, it's a hard fix, maybe want work for everyone, but make the trick in my case:
import queryString from 'query-string';
import {LOCATION_CHANGE} from 'react-router-redux';

const defaultSelectLocationState = state => state.routing;

/**
 * This function synchronizes your history state with the Redux store.
 * Location changes flow from history to the store. An enhanced history is
 * returned with a listen method that responds to store updates for location.
 *
 * When this history is provided to the router, this means the location data
 * will flow like this:
 * history.push -> store.dispatch -> enhancedHistory.listen -> router
 * This ensures that when the store state changes due to a replay or other
 * event, the router will be updated appropriately and can transition to the
 * correct router state.
 */
export default function syncHistoryWithStore(history, store, {
    selectLocationState = defaultSelectLocationState,
    adjustUrlOnReplay = true,
    query_support = false,
} = {}) {
    // Ensure that the reducer is mounted on the store and functioning properly.
    if (typeof selectLocationState(store.getState()) === 'undefined') {
        throw new Error(
            'Expected the routing state to be available either as `state.routing` ' +
            'or as the custom expression you can specify as `selectLocationState` ' +
            'in the `syncHistoryWithStore()` options. ' +
            'Ensure you have added the `routerReducer` to your store\'s ' +
            'reducers via `combineReducers` or whatever method you use to isolate ' +
            'your reducers.',
        );
    }

    let initialLocation;
    let isTimeTraveling;
    let unsubscribeFromStore;
    let currentLocation;

    // What does the store say about current location?
    const getLocationInStore = (useInitialIfEmpty) => {
        const locationState = selectLocationState(store.getState());
        return locationState.locationBeforeTransitions || (useInitialIfEmpty ? initialLocation : undefined);
    };

    // Init initialLocation with potential location in store
    initialLocation = getLocationInStore();

    const withoutQuery = obj => obj ? {
        hash: obj.hash,
        pathname: obj.pathname,
        key: obj.key,
        state: obj.state,
        search: obj.search,
    } : obj;

    // If the store is replayed, update the URL in the browser to match.
    if (adjustUrlOnReplay) {
        const handleStoreChange = () => {
            const locationInStore = getLocationInStore(true);

            // if we support query we need to compare without the nested query object
            if (query_support) {
                const currLoc = withoutQuery(currentLocation),
                    locInStore = withoutQuery(locationInStore),
                    initLoc = withoutQuery(initialLocation);

                if (currLoc === locInStore || initLoc === locInStore) {
                    return;
                }
            }
            else if (currentLocation === locationInStore || initialLocation === locationInStore) {
                return;
            }

            // Update address bar to reflect store state
            isTimeTraveling = true;
            currentLocation = locationInStore;

            history.replace({
                ...locationInStore,
                action: 'PUSH',
            });
            isTimeTraveling = false;
        };

        unsubscribeFromStore = store.subscribe(handleStoreChange);
        handleStoreChange();
    }

    // Whenever location changes, dispatch an action to get it in the store
    const handleLocationChange = (location, action) => {
        // ... unless we just caused that location change
        if (isTimeTraveling) {
            return;
        }

        // Remember where we are
        currentLocation = query_support ?
        {
            ...location,
            query: queryString.parse(location.search), // add query support
        } : location;

        // Are we being called for the first time?
        if (!initialLocation) {
            // Remember as a fallback in case state is reset
            initialLocation = currentLocation;

            // Respect persisted location, if any
            if (getLocationInStore()) {
                return;
            }
        }

        // Tell the store to update by dispatching an action
        store.dispatch({
            type: LOCATION_CHANGE,
            payload: currentLocation,
        });
    };

    // init store
    handleLocationChange(history.location);

    const unsubscribeFromHistory = history.listen(handleLocationChange);

    // History 3.x doesn't call listen synchronously, so fire the initial location change ourselves
    if (history.getCurrentLocation) {
        handleLocationChange(history.getCurrentLocation());
    }

    // The enhanced history uses store as source of truth
    history.listen = (listener) => { // eslint-disable-line no-param-reassign
        // Copy of last location.
        let lastPublishedLocation = getLocationInStore(true);

        // Keep track of whether we unsubscribed, as Redux store
        // only applies changes in subscriptions on next dispatch
        let unsubscribed = false;
        const unsubscribeFromStore = store.subscribe(() => {
            const currentLocation = getLocationInStore(true);
            if (currentLocation === lastPublishedLocation) {
                return;
            }
            lastPublishedLocation = currentLocation;
            if (!unsubscribed) {
                listener(lastPublishedLocation);
            }
        });

        // / History 2.x listeners expect a synchronous call. Make the first call to the
        // listener after subscribing to the store, in case the listener causes a
        // location change (e.g. when it redirects)
        if (!history.getCurrentLocation) {
            listener(lastPublishedLocation);
        }

        // Let user unsubscribe later
        return () => {
            unsubscribed = true;
            unsubscribeFromStore();
        };
    };

    history.unsubscribe = () => {  // eslint-disable-line no-param-reassign
        if (adjustUrlOnReplay) {
            unsubscribeFromStore();
        }
        unsubscribeFromHistory();
    };

    return history;
}
``

Is this me, or @timdorr you just deleted two comments here?
Can't find the comment from @linonetwo nor mine...

I found a simpler approach. Each component being passed into the route needs to be wrapped with the withRouter HOC provided by react-router-dom and then overload the componentWillMount method with a new implementation that will update the redux store.
Example:
const withReduxConnectedRouter = (component) => connect()((() => {
  const myComponent = withRouter(component);
  myComponent.prototype.componentWillMount = function() {
    this.unlisten = this.context.router.listen((location, action) => {

      this.props.dispatch({
        type: 'ROUTER_LOCATION_CHANGE',
        location
      });
      this.forceUpdate();
    });
  };
  return myComponent;
})());

const RootRouter = (props) => (
    <Router history={history}>
        <div>
            <Route path="/" component={withReduxConnectedRouter(App)} />
        </div>
    </Router>
);

Thanks @steven10172 for your code. I will test it tomorrow :)
Does it work with time traveling thanks to DockMonitor? Is it adaptable to react-hot-loader last version?
I've just updated the code of sync.js in my fork, Feel free to use it.
But be carefull, @timdorr just deleted two of my comments in this thread and the comment of @linonetwo.
I won't be surprised if he delete this comment and yours...
The rage in strong with this one...
cheers ;)

@GuillaumeCisco I have not tested it throughly so I do not know, but it doesn't solve the problem of the redux store updating and needed to be reflected in the UI.


Add scripts for partially building subsets of projects in this repo

This repo contains a lot of stuff. Building all of it is not necessarily what you want to do. We should add build scripts or MSBuild targets so you can build subsets of projects from this repo.
This repo currently has these subsets of projects:

.NET (C#)
C++
Visual Studio extensions
NPM packages
Java projects (using Gradle)
Wix projects (windows installers)
Projects for Deb, rpm, zip, tar.gz installers
Projects for the shared framework and targeting packs

Furthermore, projects could also be broken down by categories

Test projects
Samples
Shipping product assemblies
Reference assemblies (once #3610 is done)

Proposals

I believe the most common scenario for running build.cmd is for contributors to build enough projects so they can open Visual Studio and continue work from there. Therefore, I propose build.cmd with no arguments should print a message about usage and compile just enough to make most .sln files work in this repo.

> build.cmd
Warning: running the build script without arguments will only build a subset of assets.
Run `build.cmd -help` for more details on usage.

Add additional flags for build.cmd to build the various groups mentioned above. Example usage might look like this:

build.cmd -jar
build.cmd -npm
build.cmd -vsix
build.cmd -installers
build.cmd -managed
build.cmd -native

These flags could also be combined.
build.cmd -jar -npm -vsix

Finally, we can add a flag for building everything, which would be invoked by CI. build.cmd -all.

Update build.cmd to build subdirectories. Example usage:

cd src/Servers/Kestrel/
../../../build.cmd .

This would build the projects in src/Servers/Kestrel/.

On 3, why not have a local build.cmd for feature areas like kestrel? It can refer to the root one if it needs to.

I would be okay with that, but only if build scripts in subdirectories are just sugar for invoking the root build script. Example:
@ECHO OFF
SET RepoRoot="%~dp0..\.."
%RepoRoot%\build.cmd '%~dp0' %*


Question about JWT refresh

Hi, I can successfully login to the ACVP server, however, when I try to upload my vector set, I get the error,
***ACVP [ERR][log_network_status:1467]--> [{"acvVersion":"1.0"},{"error":"The provided JWT expired at 2020-06-18 05:04:15Z and is no longer valid. The JWT claims may be refreshed through the renewal process described in the specification."}]
I don't find there are any specification about it. May I know how to solve this problem?

Hello,
This is a result of a recent change with how the NIST server communicates errors to the client, and I am working on fixing it right now. A temporary fix is to use --resume_session testSession_XXXXX.json where XXXXX is the test session ID number printed at the beginning of the original session.
Thanks,
Andrew

Thank you for your quick reply, the temporary solution works, hope the problem could be fixed soon, thanks.

Hi, @abkarcher
I have no problem at download vector set by your temporary solution, but when I upload, I get a new error.
$: ./app/acvp_app --hash --vector_upload answer.json --resume_session testSession_XXXXX.json
***ACVP [STATUS][acvp_upload_vectors_from_file:1017]--> Uploading vectors from response file...
***ACVP [STATUS][acvp_upload_vectors_from_file:1142]--> Sending responses for vector set 239804
***ACVP [ERR][log_network_status:1466]--> 400 error received from server. Message:
***ACVP [ERR][log_network_status:1467]--> [
{
"acvVersion": "1.0"
},
{
"error": "Validation error(s) on JSON payload.",
"context": [
"Vector set not in \u0027processed\u0027 status.",
"Unable to submit results when vector set in \u0027failed\u0027 status."
]
}
]
***ACVP [ERR][acvp_upload_vectors_from_file:1145]--> Failed to submit test results for vector set - skipping...
***ACVP [STATUS][acvp_upload_vectors_from_file:1142]--> Sending responses for vector set 239806
***ACVP [ERR][log_network_status:1466]--> 400 error received from server. Message:
***ACVP [ERR][log_network_status:1467]--> [
{
"acvVersion": "1.0"
},
{
"error": "Validation error(s) on JSON payload.",
"context": [
"Vector set not in \u0027processed\u0027 status.",
"Unable to submit results when vector set in \u0027failed\u0027 status."
]
}
]
***ACVP [ERR][acvp_upload_vectors_from_file:1145]--> Failed to submit test results for vector set - skipping...
***ACVP [STATUS][acvp_upload_vectors_from_file:1142]--> Sending responses for vector set 239807
***ACVP [ERR][log_network_status:1466]--> 400 error received from server. Message:
***ACVP [ERR][log_network_status:1467]--> [
{
"acvVersion": "1.0"
},
{
"error": "Validation error(s) on JSON payload.",
"context": [
"Vector set not in \u0027processed\u0027 status.",
"Unable to submit results when vector set in \u0027failed\u0027 status."
]
}
]
***ACVP [ERR][acvp_upload_vectors_from_file:1145]--> Failed to submit test results for vector set - skipping...
***ACVP [STATUS][acvp_upload_vectors_from_file:1142]--> Sending responses for vector set 239808
***ACVP [ERR][log_network_status:1466]--> 400 error received from server. Message:
***ACVP [ERR][log_network_status:1467]--> [
{
"acvVersion": "1.0"
},
{
"error": "Validation error(s) on JSON payload.",
"context": [
"Vector set not in \u0027processed\u0027 status.",
"Unable to submit results when vector set in \u0027failed\u0027 status."
]
}
]
***ACVP [ERR][acvp_upload_vectors_from_file:1145]--> Failed to submit test results for vector set - skipping...
***ACVP [STATUS][acvp_upload_vectors_from_file:1142]--> Sending responses for vector set 0
***ACVP [ERR][log_network_status:1466]--> 400 error received from server. Message:
***ACVP [ERR][log_network_status:1467]--> [
{
"acvVersion": "1.0"
},
{
"error": "Invalid JSON provided.",
"context": [
"Unable to deserialize body into two objects"
]
}
]
***ACVP [ERR][acvp_upload_vectors_from_file:1145]--> Failed to submit test results for vector set - skipping...
***ACVP [STATUS][acvp_upload_vectors_from_file:1158]--> Tests complete, checking results...
***ACVP [STATUS][acvp_get_result_test_session:2701]--> Test session complete: some vectors failed, reporting results...
***ACVP [STATUS][acvp_get_result_test_session:2702]--> Note: Use verbose-level logging to see results of each test case
***ACVP [STATUS][acvp_list_failing_algorithms:796]--> Failing algorithms:
***ACVP [STATUS][acvp_list_failing_algorithms:798]-->     SHA-1
***ACVP [STATUS][acvp_list_failing_algorithms:798]-->     SHA2-224
***ACVP [STATUS][acvp_list_failing_algorithms:798]-->     SHA2-256
***ACVP [STATUS][acvp_list_failing_algorithms:798]-->     SHA2-384
***ACVP [STATUS][acvp_list_failing_algorithms:798]-->     SHA2-512
Is this error also relates to this issue?  Ps. The uploaded response vectors are all valid and correct.

Hello,
I haven't seen this before, but that seems like NIST is not happy with the responses somehow - you might be best off making an issue here to see if they can provide more information for what went wrong:
https://github.com/usnistgov/ACVP
I can't think of an immediate situation in which the client would cause issues here - though note that using --resume_session with --vector_upload is unnecessary (and doesn't do anything).

Actually, looking more closely, there seems to be a "vector set 0" in your responses file - this indicates that there is some sanity issues with either the original test cases or the response. Are you able to create a new test session and see if it has the same issues?

Hi, @abkarcher
Thanks for all your replies. It is so interesting that all the issues are disappeared now. I can request a new testSession, download, and upload with no problem at this time. But today morning and afternoon, it happens to be the error above.

Hi, @abkarcher
Should I close this issue? It seems not a client issue. I have not pull any code from libacvp, but the problems are all disappered.

Hello,
I'll go ahead and close it, but will poke around in the code a bit more to make sure there's nothing that may have caused this during --vector_req.
I will be making a PR soon to fix the refresh issue as well.
Thanks,
Andrew

Okay, thanks.


OpMode Selectable via Robot Controller phone

We would like to be able to select, run, and stop an OpMode via the Robot Controller phone.  The primary purpose is to be able to prototype and demo mechanisms without the need of a Driver Station.
The OpMode would be controlled via digital and analog ports (i.e. switches and pots) on the controller network.  Telemetry would be displayed on the Robot Controller phone.
Support for gamepads connected to Robot Controller phone would be nice, but not essential.

FWIW, safety concerns aside, using OpenRC Turbo you could modify the default OpMode and change it from StopRobot to something else.

FWIW, safety concerns aside, using OpenRC Turbo you could modify the default OpMode and change it from StopRobot to something else.

That's worth a lot, thanks.
With the stock SDK, if I have a StopRobot OpMode class in my TeamCode, does that override the SDK's StopRobot?

No, that would not work. There are a couple places which directly reference the OpModeManagerImpl.DefaultOpMode class, so you will need to use OpenRC to be able to modify those.

A combined DS/RC has periodically been discussed over the years, beginning with the first year using the Android platform.  For a number of reasons the decision has always been not to implement this feature.


skeleton-typescript-webpack: duplicate identifier a since last skeleton update

:point_up: 15. Oktober 2016 23:06
Apparently the minified version of VelocityJS 1.2.3 in Materialize leads to an error:
ERROR in [default] D:\skeleton-typescript-webpack\node_modules\materialize-css\bin\materialize.js:1:6433
Duplicate identifier 'a'.

Reason (left: Velocity 1.2.3, right: Velocity 1.3.0):

This is probably due to TS update in the skeleton and could be solved by creating an own materialize-css with Velocity 1.3.0.
While this has no impact on the resulting app and we probably cannot solve this by ourselves (maybe try custom minification though), it's good to have this documented.

:point_up: 17. Oktober 2016 17:08

@kennyfowler wrote:
i would recommend to extend the installation instruction for webpack where you mention to exclude materialize from uglify (which is used in the production build of the aurelia-webpack-skeleton): you have to add a separate bundle (entry) for materialize (or other multiple modules), then you can exclude this bundle from uglify.
const baseConfig = {
  entry: {
    'app': [/* this is filled by the aurelia-webpack-plugin */],
    'aurelia-bootstrap': coreBundles.bootstrap,
    'aurelia': coreBundles.aurelia.filter(pkg => coreBundles.bootstrap.indexOf(pkg) === -1),
    'materialize': ['materialize-css']
  },
  output: {
    path: outDir,
  }
}

and then
require('@easy-webpack/config-uglify')
        ({debug: false, exclude: ['materialize']})

Not relevant in the light of v1