samples: mesh: nrf52: revised implementation, fixed bugs, upgrade further to pass PTS test

Removed redudandancy from App & revised overall implementation.
Fixed Bugs. Added & replaced comments to improve code readability.
Upgrade State Binding algorithm by adding ceiling() & constrain
functions.
If particular Server model receive Prohibited values as per
Mesh Model Specification then that message will not get entertained.
Now proper status code will get send if user upgrade
light_lightness_range_state & light_ctl_temperature_range_state.
Signed-off-by: Vikrant More<EMAIL_ADDRESS>

Please do not merge. It is basically created to resolve bugs which are not yet solved as per PTS test.

Codecov Report

Merging #8926 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #8926   +/-   ##
=======================================
  Coverage   52.28%   52.28%
=======================================
  Files         196      196
  Lines       24768    24768
  Branches     5151     5151
=======================================
  Hits        12951    12951
  Misses       9738     9738
  Partials     2079     2079

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 cfd5c9b...c66d3f1. Read the comment docs.

MMDL/SR/GOO/BV-02-C FAIL https://hastebin.com/futahusiru.php
    It failed since transition state concept is not implemented.

MMDL/SR/GOO/BV-02-C
FAIL https://hastebin.com/futahusiru.php https://hastebin.com/siwivonafe.css

because of absence of Transition Time based implementation.

MMDL/SR/GLV/BV-02-C
FAIL https://hastebin.com/horijapaqi.php https://hastebin.com/uluvuceqag.css

because of absence of Transition Time based implementation.

MMDL/SR/GLV/BV-03-C
FAIL https://hastebin.com/ohanupezot.sql https://hastebin.com/tubipuvequ.css

because of absence of Transition Time based implementation.

MMDL/SR/GLV/BV-05-C
FAIL https://hastebin.com/lovuyurana.php https://hastebin.com/evawefahik.css

here I think, last test's TID == current test TID. Hence it get skipped.

MMDL/SR/GPOO/BV-02-C
FAIL https://hastebin.com/aseburahir.php https://hastebin.com/muxapovuqu.css

because of absence of saving OnPowerUp state on SoC flash.

MMDL/SR/GPOO/BV-03-C
FAIL https://hastebin.com/fohejofoxu.php https://hastebin.com/goxigaroxe.css

because of absence of Transition Time based implementation.

MMDL/SR/GPOO/BV-04-C
FAIL https://hastebin.com/ubejuxubem.php https://hastebin.com/punogofota.css

here I think, last test's TID == current test TID. Hence it get skipped.

MMDL/SR/LLN/BV-02-C
FAIL https://hastebin.com/ozayisesud.php https://hastebin.com/owuyixabuj.css

because of failure in proper rounding off float variable

MMDL/SR/LLN/BV-06-C
FAIL https://hastebin.com/etogorotaz.php https://hastebin.com/awiwoxofaj.css

here I think, last test's TID == current test TID. Hence it get skipped.

MMDL/SR/LLN/BV-07-C
FAIL https://hastebin.com/uyinuwolif.php https://hastebin.com/ezukubatuh.css

last test's TID == current test TID. Hence it get skipped.

MMDL/SR/LLN/BV-08-C
FAIL https://hastebin.com/iqugojukok.php https://hastebin.com/etafabemab.css

last test's TID == current test TID. Hence it get skipped.

MMDL/SR/LLN/BV-09-C
FAIL https://hastebin.com/beceteqapi.php https://hastebin.com/dajinuqehi.css

last test's TID == current test TID. Hence it get skipped.

MMDL/SR/LLN/BV-10-C
FAIL https://hastebin.com/osegacazuh.php https://hastebin.com/ihawugipol.css

last test's TID == current test TID. Hence it get skipped.

MMDL/SR/LLN/BV-11-C
FAIL https://hastebin.com/vinolobive.php https://hastebin.com/utitobokes.css

last test's TID == current test TID. Hence it get skipped.

MMDL/SR/LLN/BV-12-C
FAIL https://hastebin.com/ihinefasup.php https://hastebin.com/cuqasavaxa.css

TID is common for Lightness Actual state & Light Lightness Linear state.
So here too beacuse of last_TID == current TID, test failed.

MMDL/SR/LLN/BV-13-C
FAIL https://hastebin.com/uyacuyayug.php https://hastebin.com/ubadejarar.css

TID is common for Lightness Actual state & Light Lightness Linear state.
So here too beacuse of last_TID == current TID, test failed.

MMDL/SR/LLN/BV-14-C
FAIL https://hastebin.com/acuxeseham.php https://hastebin.com/jaxezaveni.css

TID is yet = 0, hence failed.

MMDL/SR/LLN/BV-15-C
FAIL https://hastebin.com/rorohelucu.php https://hastebin.com/dupamuzelo.css

Here TID set to 255....hence things proceed further. But failed
because of absence of Transition Time based implementation.

MMDL/SR/LLN/BV-16-C
FAIL https://hastebin.com/piqacakaru.php https://hastebin.com/ubuxasuraf.css

because of failure in proper rounding off float variable

MMDL/SR/LLN/BV-17-C
FAIL https://hastebin.com/ijitaxamoh.php https://hastebin.com/qujojexure.css

because of absence of saving OnPowerUp state on SoC flash.

MMDL/SR/LLNS/BI-01-C
FAIL https://hastebin.com/aliruzagel.php https://hastebin.com/juqejiroka.css
https://github.com/zephyrproject-rtos/zephyr/pull/8926

This may solve the issue. It would send 0x01 instead 0x02 as status code.

MMDL/SR/LCTL/BV-05-C
FAIL https://hastebin.com/orixiviyij.m https://hastebin.com/atofawilec.css

because of absence of Transition Time based implementation.

MMDL/SR/LCTL/BV-06-C
FAIL https://hastebin.com/owikejifes.m https://hastebin.com/ewuqidahow.css

here I think, last test's TID == current test TID. Hence it get skipped.

MMDL/SR/LCTL/BI-01-C
FAIL https://hastebin.com/ecugijezor.m https://hastebin.com/ohejazulal.css

issue has solved in PR:8793

MMDL/SR/LCTLS/BI-01-C
FAIL https://hastebin.com/cawisevafo.m https://hastebin.com/umoyepukem.css

issue will get solved with PR:8926

MMDL/SR/LCTLS/BI-02-C
FAIL https://hastebin.com/ocahipadir.m https://hastebin.com/ibusomupad.css

issue has solved in PR:8793

@jhedberg @MariuszSkamra
FYI, This is summary of previous PTS logs with reason why we get errors. Still working to make things better.....
MMDL/SR/GOO/BV-02-C
FAIL https://hastebin.com/futahusiru.php https://hastebin.com/siwivonafe.css

because of absence of Transition Time based implementation.

MMDL/SR/GLV/BV-02-C
FAIL https://hastebin.com/horijapaqi.php https://hastebin.com/uluvuceqag.css

because of absence of Transition Time based implementation.

MMDL/SR/GLV/BV-03-C
FAIL https://hastebin.com/ohanupezot.sql https://hastebin.com/tubipuvequ.css

because of absence of Transition Time based implementation.

MMDL/SR/GLV/BV-05-C
FAIL https://hastebin.com/lovuyurana.php https://hastebin.com/evawefahik.css

here I think, last test's TID == current test TID. Hence it get skipped.

MMDL/SR/GPOO/BV-02-C
FAIL https://hastebin.com/aseburahir.php https://hastebin.com/muxapovuqu.css

because of absence of saving OnPowerUp state on SoC flash.

MMDL/SR/GPOO/BV-03-C
FAIL https://hastebin.com/fohejofoxu.php https://hastebin.com/goxigaroxe.css

because of absence of Transition Time based implementation.

MMDL/SR/GPOO/BV-04-C
FAIL https://hastebin.com/ubejuxubem.php https://hastebin.com/punogofota.css

here I think, last test's TID == current test TID. Hence it get skipped.

MMDL/SR/LLN/BV-02-C
FAIL https://hastebin.com/ozayisesud.php https://hastebin.com/owuyixabuj.css

because of failure in proper rounding off float variable

MMDL/SR/LLN/BV-06-C
FAIL https://hastebin.com/etogorotaz.php https://hastebin.com/awiwoxofaj.css

here I think, last test's TID == current test TID. Hence it get skipped.

MMDL/SR/LLN/BV-07-C
FAIL https://hastebin.com/uyinuwolif.php https://hastebin.com/ezukubatuh.css

last test's TID == current test TID. Hence it get skipped.

MMDL/SR/LLN/BV-08-C
FAIL https://hastebin.com/iqugojukok.php https://hastebin.com/etafabemab.css

last test's TID == current test TID. Hence it get skipped.

MMDL/SR/LLN/BV-09-C
FAIL https://hastebin.com/beceteqapi.php https://hastebin.com/dajinuqehi.css

last test's TID == current test TID. Hence it get skipped.

MMDL/SR/LLN/BV-10-C
FAIL https://hastebin.com/osegacazuh.php https://hastebin.com/ihawugipol.css

last test's TID == current test TID. Hence it get skipped.

MMDL/SR/LLN/BV-11-C
FAIL https://hastebin.com/vinolobive.php https://hastebin.com/utitobokes.css

last test's TID == current test TID. Hence it get skipped.

MMDL/SR/LLN/BV-12-C
FAIL https://hastebin.com/ihinefasup.php https://hastebin.com/cuqasavaxa.css

TID is common for Lightness Actual state & Light Lightness Linear state.
So here too beacuse of last_TID == current TID, test failed.

MMDL/SR/LLN/BV-13-C
FAIL https://hastebin.com/uyacuyayug.php https://hastebin.com/ubadejarar.css

TID is common for Lightness Actual state & Light Lightness Linear state.
So here too beacuse of last_TID == current TID, test failed.

MMDL/SR/LLN/BV-14-C
FAIL https://hastebin.com/acuxeseham.php https://hastebin.com/jaxezaveni.css

TID is yet = 0, hence failed.

MMDL/SR/LLN/BV-15-C
FAIL https://hastebin.com/rorohelucu.php https://hastebin.com/dupamuzelo.css

Here TID set to 255....hence things proceed further. But failed
because of absence of Transition Time based implementation.

MMDL/SR/LLN/BV-16-C
FAIL https://hastebin.com/piqacakaru.php https://hastebin.com/ubuxasuraf.css

because of failure in proper rounding off float variable

MMDL/SR/LLN/BV-17-C
FAIL https://hastebin.com/ijitaxamoh.php https://hastebin.com/qujojexure.css

because of absence of saving OnPowerUp state on SoC flash.

MMDL/SR/LLNS/BI-01-C
FAIL https://hastebin.com/aliruzagel.php https://hastebin.com/juqejiroka.css
https://github.com/zephyrproject-rtos/zephyr/pull/8926

This may solve the issue. It would send 0x01 instead 0x02 as status code.

MMDL/SR/LCTL/BV-05-C
FAIL https://hastebin.com/orixiviyij.m https://hastebin.com/atofawilec.css

because of absence of Transition Time based implementation.

MMDL/SR/LCTL/BV-06-C
FAIL https://hastebin.com/owikejifes.m https://hastebin.com/ewuqidahow.css

here I think, last test's TID == current test TID. Hence it get skipped.

MMDL/SR/LCTL/BI-01-C
FAIL https://hastebin.com/ecugijezor.m https://hastebin.com/ohejazulal.css

issue has solved in PR:8793

MMDL/SR/LCTLS/BI-01-C
FAIL https://hastebin.com/cawisevafo.m https://hastebin.com/umoyepukem.css

issue will get solved with PR:8926

MMDL/SR/LCTLS/BI-02-C
FAIL https://hastebin.com/ocahipadir.m https://hastebin.com/ibusomupad.css

issue has solved in PR:8793

MMDL/SR/LLNS/BI-01-C
https://hastebin.com/aliruzagel.php .... I think failed because received status code is 0x02 instead of 0x01.
MMDL/SR/LCTLS/BI-01-C
https://hastebin.com/cawisevafo.m .... I think failed because received status code is 0x02 instead of 0x01.
With this PR:8926 it would send 0x01. Kindly run PTS only for these two.

@jhedberg @MariuszSkamra
PR is ready to be but ...
Wrapping Light Lightness Actual state is very confusion.
Please refer <IP_ADDRESS>.2 vs <IP_ADDRESS>.3....don't know what to follow ? Need help.

@MariuszSkamra
MMDL/SR/LLNS/BI-01-C
https://hastebin.com/aliruzagel.php .... I think failed because received status code is 0x02 instead of 0x01.
MMDL/SR/LCTLS/BI-01-C
https://hastebin.com/cawisevafo.m .... I think failed because received status code is 0x02 instead of 0x01.
With this PR:8926 it would send 0x01. Kindly re-run PTS only for these two ( Please feed info to PTS that "persistent storage for STATE saving" & "transition time" support is absent)

@jhedberg
PR is ready from my side, so please review it.
MMDL/SR/LLN/BV-02-C -> solved
MMDL/SR/LLN/BV-16-C -> solved
MMDL/SR/LLNS/BI-01-C -> solved
MMDL/SR/LCTL/BI-01-C -> solved
MMDL/SR/LCTLS/BI-01-C -> solved
MMDL/SR/LCTLS/BI-02-C -> solved
Others failures are because of

PTS own issue which is starting every new test with same TID value that is zero. Because of that Servers are not reacting to it.
absence of Server's state saving on SoC flash
absence of transition time based implementation which is optional

@jhedberg
Please keep things on Hold.
FYI,
Now I've received response from SIG forum. I will inform you once clears my doubts.

@jhedberg
I've done something wrong while rebasing. :

@jhedberg
Mr. Martin from SIG helped me to clear my doubts. As per that & PTS requirements I've restructure things. Please consider it & review further.
Thank You !!

@jhedberg Kindly wait. During testing I've found some bugs. I will repair them shortly.

@jhedberg
I didn't found any coding bug as of now. I changed PDK board (as client) &  provisioned everything using #meshctl instead of #nRFMesh. Now didn't found that previous bug while re-testing.
I think it was h/w button issue :(

New implementation is tested & now ready to get merged.

@jhedberg New implementation is tested & now ready to get merged.

@jhedberg I've make all suggested changes.

@vikrant8051 thanks. I'll still wait for the PTS results. In the future, could you please split your changes so that each commit contains a single logically independent change. That makes understanding the change history easier and also helps a lot with bisecting (git bisect) when bugs are found.

@jhedberg @MariuszSkamra
As per above mentioned reasons for failing PTS tests, one of the prime reason is PTS's dongle in some consecutive tests, send same TID value to particular Server.
And as per #onoff_level_lighting_vnd_app, if any Server receives same TID value from same Source address, it assumes message has already proceed & current one is retransmitted one & hence Server ignores it.

@jhedberg
Hi, now going to add time stamp based message filter as per Bluetooth Mesh Developer study guide for each Server. So keep things on hold.

@jhedberg Please go through with latest commit for review.

@jhedberg
Is it mandatory for Servers to entertain transition time & delay fields in message ?

@jhedberg
now = k_uptime_get();
if (state->last_tid == tid && state->last_tx_addr == ctx->addr && (now - state->last_msg_timestamp <= 6000)) {
 	return true;
}

Is it really correct implementation ? what if previous sampling of timer happen before timer roll over & next one happen after that ? In that case, now could have some negative value. Am I right ?

@jhedberg
I've added support to entertain messages with transition time & delay. With that it was easy to implement gen_move_set/gen_move_set_unack message handlers.
I need your special attention/guidance for latest commit. Please review it throughly.
@MariuszSkamra
Thanks for latest PTS log. Happy to know that now there are only few failed log. I will repair things shorty.
Thank You to both of you !!

Hi @jhedberg,
https://github.com/vikrant8051/test/tree/master/onoff_level_lighting_vnd_app
Here I've alloted different thread for each Server which internally calls own timer. Will it be better than current implementation ?
Please reply !! Thank You

@jhedberg
Going with separate thread for each Servers (who have to entertain TT & Delay fields).

@jhedberg
All checks have passed. I think most of the suggestions have applied. Please review.
Thanks for latest suggested improvements.
But kindly not that I'm not able to provisioning node with latest Zephyr master tree.
It get provisioned if I used local git directory.

@jhedberg Kindly don't review as of now since I'm upgrading the things.

@jhedberg Now I think PR is ready for review.

@MariuszSkamra @jhedberg
If you are going to run PTS against this PR, then please activate transition time related things.
Note that status from Servers contains only Present state  & not Target state, Remaining Time....(since both parameter are optional for Server)
Hope this weekend it will get merge. Thank You !!

Hi,
I tested this PR against new PTS version 7.3. There might be some changes in tests scenario/behaviour. @vikrant8051 Please take a look. For me it looks like few of the tests that used to pass before fail now.
MMDL/SR-CL/COMP/BV-01-C FAIL https://hastebin.com/upeducodot.sql ( model 0x1007 (Generic Power OnOff Setup Server) requires model 0x1004 (Generic Default Transition Time Server), but it is not present.)

@MariuszSkamra @jhedberg
MMDL/SR/GOO/BV-01-C FAIL https://hastebin.com/cequkamoju.sql

Failed ....because gen_onoff_get execute first instead of onoff_work_handler.
onoff_work_handler is defined in transaction.c & it get triggered by onoff_tt_handler.
onoff_tt_handler is timer function.

Same is happening in other cases. I will repair things shortly.

@MariuszSkamra @jhedberg
Now I think, most of the issues has resolved.
There are four things which are still pending...I will work on it.
But meanwhile could you please re-run PTS for latest changes ?

@MariuszSkamra
Have you considered following commit (4th one) ?
https://github.com/zephyrproject-rtos/zephyr/pull/8926/commits/47473edcf89805ce93f121f895c63a451b2f1b21

@MariuszSkamra @jhedberg
I have edit 3rd commit....so that now if received message has optional parameters then "GET" handler of that particular Sever will send acknowledgment which would contain Target value & TT.

@MariuszSkamra Please re-run PTS against this modified PR.
Now only 3 issues are pending. I hope all others will get pass.

@MariuszSkamra Kindly wait & don't run PTS ....... trying to implement Gen. Default TT Server & Client.
I will inform you about status.

@jhedberg
I've added support for Generic Default tarnsition time Server/Client.
But now I'm not able to get acknowledgment from any Server. Why this so ?
I need your help in this.

recheck

Close/reopen to fix CI

@carlescufi what is CI ?

@carlescufi Ok I got it.

@vikrant8051 CI is continuous integration, the checks that run on Shippable

@jhedberg
Previous issue has solved ....
/* Mapping of message handlers for Generic OnOff Client (0x1001) */
static const struct bt_mesh_model_op gen_onoff_cli_op[] = {
{ BT_MESH_MODEL_OP_2(0x82, 0x04), 1, gen_onoff_status },
BT_MESH_MODEL_OP_END,
};
I had set 3 instead of 1... same for all other Servers.
But in this case why 1 ?
because .... Acknowledgment could be = Present Value + Target Value + Remaining Time

@MariuszSkamra @jhedberg
Now only 2 issues are pending since I've also added "Generic Default transition Server/Client".
As per Mesh Model Specification, if Server received message with no #TT & #Delay (optional parameters) fields then it shall use values set by "Gen. Default Transition Time". Current implementation is also take care of it.
So if time allows you then please do review first & then execute PTS against latest implementation.
Thank You !!

Hi @jhedberg @MariuszSkamra
Waiting for review or new PTS logs. :)
Remaining two issues (regarding Range status) are confusing since don't know what exactly PTS
want from the Node.

@jhedberg
Highlights of latest changes:

now value set by #gen_def_transition_time is going to impact other prime Servers

based on Transition Time field ( which could be default one or could be a part of message itself) tt_counter & tt_delta is calculated for each prime Servers. As per current implementation tt_counter could not be greater than 10.

Reason for previously failed PTS logs :
GET handler (which publishes status of node) executes before thread triggered by Server's timer. That thread was responsible to update present values. Because of that PTS dongle always received previously set value.

Now if tt_counter = 0 then immediately that would update present values.

I've assumed that GET handler will always execute before timer's thread.

Any transaction in process will stop if receive new message.

I need your review/feedback regarding this implementations.

@MariuszSkamra could you please re-run PTS for latest changes ?


Wrong containergroup name specified in Resource Manager template example

The following Azure CLI command under the Resource Manager template example:
az container logs --resource-group myResourceGroup --name gpucontainergroup --container-name gpucontainer
should read:
az container logs --resource-group myResourceGroup --name gpucontainergrouprm --container-name gpucontainer

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

ID: 87729a5b-eda2-985e-678a-45498839f6b8
Version Independent ID: 8ce5224f-6b82-73e7-15dd-32a146c6ad53
Content: Deploy GPU-enabled Azure container instances
Content Source: articles/container-instances/container-instances-gpu.md
Service: container-instances
GitHub Login: @dlepow
Microsoft Alias: danlep

@byrneo Thank you for your feedback . We will investigate and update the thread.

@byrneo The PR has been created with the correct container group name and changes will be live shortly.


Mono does not release any objects of the type event.

Godot version
4.0.dev
System information
Windows 10, Windows 11
Issue description
Each input event increse the holded objects inside the engine. The events will be holded permanent and not destroyed .
When i try to free the Event with .free(), it reduce the hold objects by the engine (however, not all will be destroyed).
Same issue with _UnhandledInput and _UnhandledKeyInput
Steps to reproduce
 public override void _Input(InputEvent @event) { }
Just moving the mouse and u will get this

Minimal reproduction project
No response

Duplicate of #41543, Mono is garbage collected so the memory release will happen whenever it decides it's needed.

Btw disposing and freeing are not working.

Okai. Was figured out. Two issues at the same time. First one (event disposing) can be fixed with .Disposed(). Second memory leak i will open a new ticket.


don't run any debug code when debug flag is off

Not sure of the intention here. Closing, happy to reopen if there's something specific to be changed.


[W5.7][W16-2]Yeo Yi Jia, Amabel

Nice work, found your use of 'PersonChainedComparator' to handle multiple comparators rather interesting. Would love to see it at work when looking to compare 'Person's based on name first, then by other fields.
Perhaps a simple boolean flag and command line input to handle ascending/descending sorting would be very useful.


Image details sometimes brings up details for images that aren't selected

On a gall page, if you click the copyright or image details buttons below the photo, they do not always fetch the info that corresponds to the photo currently displayed. This can lead to misleading copyright statements like this:

On the image details page it is at least clear that you're looking at the details of a different image because it shows you the corresponding image. But it is of course annoying to ask for one piece of information and see another.

Sometimes, however, the photo doesn't load either, so there's no way to know that you're looking at the wrong info.

What browser are you using? In the past I have noticed some weirdness lie this with Firefox (my primary browser) but have not been able to replicate it with Chrome (the browser I use for testing and dev) or Safari (mainly on my phone).

Firefox

Ugh. I am seeing the issue now with Safari on iOS. I will try and find time tomorrow to look at this.


Mcs 725 logging

Logging updates for pipeline.
This does not capture the head node logs.  We maybe should add that, but can do it separately.
Also note: the logs are ALWAYS pushed to S3.  Not just for evaluations.  That seems reasonable to me, but maybe not?

Since this hasn't been approved yet, moving the ConfigParsing around was easier than I thought, and it was dependent on this PR anyway, I merged the config parser fix into this PR.


Breaking change in ElasticSearch 6

Upgraded to ElasticSearch 6, now seeing the following in the ElasticSearch logs when reporting more than one type of metric:

Rejecting mapping update to [metrics] as the final mapping would have more than 1 type: [meter, counter].

See https://www.elastic.co/guide/en/elasticsearch/reference/6.x/removal-of-types.html

https://github.com/AppMetrics/Elasticsearch/issues/20


Fix install.sh script

remove trailing zipball_url and tarball_url from $LATEST var

hmm LATEST always seems fine to me, you're getting other output?

@tj I'm getting this error /usr/local/bin/apex: line 1: {error:Not Found}: command not found.

Ah I see.. interesting. You must be hitting the API rate limit or something? Maybe we should move the curl out of the pipeline and check the exit status

The script tries to curl the following URL which I think is not valid.
https://github.com/apex/apex/releases/download/v0.7.2zipball_url/apex_darwin_amd64

That's not what I get:
$ curl -s https://api.github.com/repos/apex/apex/tags | grep name | head -n 1 | sed 's/[," ]//g' | cut -d ':' -f 2
v0.7.2

I'm getting this:
$ curl -s https://api.github.com/repos/apex/apex/tags | grep name | head -n 1 | sed 's/[," ]//g' | cut -d ':' -f 2
v0.7.2zipball_url

hmm...

@elizar could you paste what you get with curl -s https://api.github.com/repos/apex/apex/tags

This should already be fixed, maybe you are using and older version of install.sh, the one in the master branch sh Io uld display an error if the curl command + grep + sed goes wrong.
Check the last lines of install.sh

@mthenw
[{"name":"v0.7.2","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.7.2","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.7.2","commit":{"sha":"96c66ef9da1cf99c39cb1947ed2bb5f567b4db79","url":"https://api.github.com/repos/apex/apex/commits/96c66ef9da1cf99c39cb1947ed2bb5f567b4db79"}},{"name":"v0.7.1","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.7.1","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.7.1","commit":{"sha":"315cdeaee9ae93f83353c9f2b3e9c94e93086833","url":"https://api.github.com/repos/apex/apex/commits/315cdeaee9ae93f83353c9f2b3e9c94e93086833"}},{"name":"v0.7.0","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.7.0","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.7.0","commit":{"sha":"324bdcb78ca0709186f9d3013645d76f5c0f4a58","url":"https://api.github.com/repos/apex/apex/commits/324bdcb78ca0709186f9d3013645d76f5c0f4a58"}},{"name":"v0.6.1","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.6.1","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.6.1","commit":{"sha":"598a0481c9bf1ae9767623c55251488d297c3f90","url":"https://api.github.com/repos/apex/apex/commits/598a0481c9bf1ae9767623c55251488d297c3f90"}},{"name":"v0.6.0","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.6.0","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.6.0","commit":{"sha":"5c7c03c0a137c273c45347d841755bc69e7760c8","url":"https://api.github.com/repos/apex/apex/commits/5c7c03c0a137c273c45347d841755bc69e7760c8"}},{"name":"v0.5.1","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.5.1","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.5.1","commit":{"sha":"d48f523fc353892c57048bbbc7c5da5b0372bb38","url":"https://api.github.com/repos/apex/apex/commits/d48f523fc353892c57048bbbc7c5da5b0372bb38"}},{"name":"v0.5.0","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.5.0","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.5.0","commit":{"sha":"7abebdc8d45051fb551652366207ca6e9dd50d0f","url":"https://api.github.com/repos/apex/apex/commits/7abebdc8d45051fb551652366207ca6e9dd50d0f"}},{"name":"v0.4.1","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.4.1","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.4.1","commit":{"sha":"a9f85e6a150c42017fcc1d9fd4253c954dd40138","url":"https://api.github.com/repos/apex/apex/commits/a9f85e6a150c42017fcc1d9fd4253c954dd40138"}},{"name":"v0.4.0","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.4.0","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.4.0","commit":{"sha":"8106abc2a04f0673bed5aaae86c8ed24b59d057d","url":"https://api.github.com/repos/apex/apex/commits/8106abc2a04f0673bed5aaae86c8ed24b59d057d"}},{"name":"v0.3.0","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.3.0","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.3.0","commit":{"sha":"5c5a85234131daca776d00582d7b97ed91db9874","url":"https://api.github.com/repos/apex/apex/commits/5c5a85234131daca776d00582d7b97ed91db9874"}},{"name":"v0.2.0","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.2.0","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.2.0","commit":{"sha":"eac51ab6d47bcde0a0e0c3d7269f495b07ac058c","url":"https://api.github.com/repos/apex/apex/commits/eac51ab6d47bcde0a0e0c3d7269f495b07ac058c"}},{"name":"v0.1.0","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.1.0","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.1.0","commit":{"sha":"b9578e29c97f9eadee4960b032954a039a412b9b","url":"https://api.github.com/repos/apex/apex/commits/b9578e29c97f9eadee4960b032954a039a412b9b"}},{"name":"v0.0.2","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.0.2","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.0.2","commit":{"sha":"b614044f5148082cf48a72d75ef182f478fad17c","url":"https://api.github.com/repos/apex/apex/commits/b614044f5148082cf48a72d75ef182f478fad17c"}},{"name":"v0.0.1","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.0.1","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.0.1","commit":{"sha":"ea3a2cfbc0d7704cd76589ad59c15729e852d303","url":"https://api.github.com/repos/apex/apex/commits/ea3a2cfbc0d7704cd76589ad59c15729e852d303"}}]

@fibo I'm pretty sure it's the recent one.

Maybe it's a problem with different behaviour of grep,  head, sed or cut on different OSes. My results:

curl -s https://api.github.com/repos/apex/apex/tags | grep name

    "name": "v0.7.2",
    "name": "v0.7.1",
    "name": "v0.7.0",
    "name": "v0.6.1",
    "name": "v0.6.0",
    "name": "v0.5.1",
    "name": "v0.5.0",
    "name": "v0.4.1",
    "name": "v0.4.0",
    "name": "v0.3.0",
    "name": "v0.2.0",
    "name": "v0.1.0",
    "name": "v0.0.2",
    "name": "v0.0.1",

curl -s https://api.github.com/repos/apex/apex/tags | grep name | head -n 1

    "name": "v0.7.2",

curl -s https://api.github.com/repos/apex/apex/tags | grep name | head -n 1 | sed 's/[," ]//g'

name:v0.7.2

curl -s https://api.github.com/repos/apex/apex/tags | grep name | head -n 1 | sed 's/[," ]//g' | cut -d ':' -f 2

v0.7.2

Could you paste yours?

@mthenw
Here it is:
% curl -s https://api.github.com/repos/apex/apex/tags | grep name | head -n 1 | sed 's/[," ]//g' | cut -d ':' -f 2
v0.7.2zipball_url

Not really sure what's causing that weird behaviour

yeah, but could you pase each step separately? Which OS are you running?

Hmm... I think this is what's causing it.
Totally different results than yours
% curl -s https://api.github.com/repos/apex/apex/tags | grep name

[{"name":"v0.7.2","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.7.2","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.7.2","commit":{"sha":"96c66ef9da1cf99c39cb1947ed2bb5f567b4db79","url":"https://api.github.com/repos/apex/apex/commits/96c66ef9da1cf99c39cb1947ed2bb5f567b4db79"}},{"name":"v0.7.1","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.7.1","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.7.1","commit":{"sha":"315cdeaee9ae93f83353c9f2b3e9c94e93086833","url":"https://api.github.com/repos/apex/apex/commits/315cdeaee9ae93f83353c9f2b3e9c94e93086833"}},{"name":"v0.7.0","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.7.0","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.7.0","commit":{"sha":"324bdcb78ca0709186f9d3013645d76f5c0f4a58","url":"https://api.github.com/repos/apex/apex/commits/324bdcb78ca0709186f9d3013645d76f5c0f4a58"}},{"name":"v0.6.1","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.6.1","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.6.1","commit":{"sha":"598a0481c9bf1ae9767623c55251488d297c3f90","url":"https://api.github.com/repos/apex/apex/commits/598a0481c9bf1ae9767623c55251488d297c3f90"}},{"name":"v0.6.0","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.6.0","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.6.0","commit":{"sha":"5c7c03c0a137c273c45347d841755bc69e7760c8","url":"https://api.github.com/repos/apex/apex/commits/5c7c03c0a137c273c45347d841755bc69e7760c8"}},{"name":"v0.5.1","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.5.1","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.5.1","commit":{"sha":"d48f523fc353892c57048bbbc7c5da5b0372bb38","url":"https://api.github.com/repos/apex/apex/commits/d48f523fc353892c57048bbbc7c5da5b0372bb38"}},{"name":"v0.5.0","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.5.0","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.5.0","commit":{"sha":"7abebdc8d45051fb551652366207ca6e9dd50d0f","url":"https://api.github.com/repos/apex/apex/commits/7abebdc8d45051fb551652366207ca6e9dd50d0f"}},{"name":"v0.4.1","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.4.1","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.4.1","commit":{"sha":"a9f85e6a150c42017fcc1d9fd4253c954dd40138","url":"https://api.github.com/repos/apex/apex/commits/a9f85e6a150c42017fcc1d9fd4253c954dd40138"}},{"name":"v0.4.0","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.4.0","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.4.0","commit":{"sha":"8106abc2a04f0673bed5aaae86c8ed24b59d057d","url":"https://api.github.com/repos/apex/apex/commits/8106abc2a04f0673bed5aaae86c8ed24b59d057d"}},{"name":"v0.3.0","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.3.0","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.3.0","commit":{"sha":"5c5a85234131daca776d00582d7b97ed91db9874","url":"https://api.github.com/repos/apex/apex/commits/5c5a85234131daca776d00582d7b97ed91db9874"}},{"name":"v0.2.0","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.2.0","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.2.0","commit":{"sha":"eac51ab6d47bcde0a0e0c3d7269f495b07ac058c","url":"https://api.github.com/repos/apex/apex/commits/eac51ab6d47bcde0a0e0c3d7269f495b07ac058c"}},{"name":"v0.1.0","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.1.0","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.1.0","commit":{"sha":"b9578e29c97f9eadee4960b032954a039a412b9b","url":"https://api.github.com/repos/apex/apex/commits/b9578e29c97f9eadee4960b032954a039a412b9b"}},{"name":"v0.0.2","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.0.2","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.0.2","commit":{"sha":"b614044f5148082cf48a72d75ef182f478fad17c","url":"https://api.github.com/repos/apex/apex/commits/b614044f5148082cf48a72d75ef182f478fad17c"}},{"name":"v0.0.1","zipball_url":"https://api.github.com/repos/apex/apex/zipball/v0.0.1","tarball_url":"https://api.github.com/repos/apex/apex/tarball/v0.0.1","commit":{"sha":"ea3a2cfbc0d7704cd76589ad59c15729e852d303","url":"https://api.github.com/repos/apex/apex/commits/ea3a2cfbc0d7704cd76589ad59c15729e852d303"}}]

looks like new line signs get trimmed (?)

That's weird. I tried curling other json endpoints but it doesn't remove new lines. Only github api endpoints.
Since it's most likely just an isolated issue. I can probably close this PR.

yeah, I think so.


Change vscode version to 0.10.0

Purpose

Upgrade the Ballerina Integrator VS Code version to 0.10.0.

 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.


Custom seq2seq implementation in tf

Fix #21
Use the new version of seq2seq API instead of using end to end frameworks

it is not finished ... but I don't spend time on this project anymore ... so


Add Nexus and CCM packages to upgradeAllExceptions Config Setting

Is Your Feature Request Related To A Problem? Please describe.
Have too many trial customers running a choco upgrade all on their server and loosing the SSL config for Nexus because they didn't run the upgrade with the correct or any package parameters.
Describe The Solution. Why is it needed?
People don't read the docs. Adding this doesn't allow them upgrade the core services without intentionally wanting to do so.
Additional Context.
NA
Related Issues
NA
┆Issue is synchronized with this Github issue by Unito

For what it's worth, the new version of the Nexus package will retain SSL configuration!
If that change is accepted, we might not need this.


not working in php 7.2

Hi,
thanks for your project.
in php 7.2 obfuscated code not working:
Function create_function() is deprecated
Thanks!

Hi @BiserStoilov
This should work well with PHP 7.2 as well. It doesn't use create_function() as all.
I think, your problem is that the code you want to obfuscate isn't compatible with PHP 7.2+  Please check if there is any create_function() in the code you try to obfuscate.
Hope that helps!

not working for me as well
trying to encrypt laravel controller class in php 7.2

What error do you get @savendra92? Is it without the PHP open/close tags?

'Deprecated' is not really an error.
But it is a warning and information of things that may not work in future.

Deprecated what...? Do you have the full error message? I ask you that because I don't have 7.2 on my machine right now

I will send you tomorrow and thanks for reply.

I get same error:
First on line 151:
Deprecated: Function create_function() is deprecated in C:\Apache24\htdocs\obfuscate\run.php on line 151
Then on line 154:
Deprecated: Function create_function() is deprecated in C:\Apache24\htdocs\obfuscate\run.php(151) : runtime-created function(1) : eval()'d code on line 164
I run PHP 7.2.6 = the latest

Thanks for your reply. I'm afraid, but like I said previously, this warning is from the code you want to obfuscate.
Just for you, try to run a simple example given in README file: https://github.com/pH-7/Obfuscator-Class#example-1
you shouldn't have any warnings there.
You probably don't get that warning only with Laravel, because it changes PHP error_reporting, but this isn't done in "Obfuscator" library. Try to add error_reporting(E_ALL ^ E_DEPRECATED); at the top of your file and the error should be gone.

I will close it for now. Let me know if something else if found and related with THIS library. Thanks

Hi again!
My code:
class Test
{
private static $instance = null;
private function __construct() {
echo 1;
}
public static function getInstance()
{
if(self::$instance == null)
{
self::$instance = new Test();
}
return self::$instance;
}
}
Test::getInstance();
Results is here: https://3v4l.org/QlFJM
Output for 7.2.0 - 7.3.0alpha1
Deprecated: Function create_function() is deprecated in /in/QlFJM on line 166
Deprecated: Function create_function() is deprecated in /in/QlFJM(166) : runtime-created function(1) : eval()'d code on line 177
1
Output for 5.6.30, hhvm-3.18.5 - 3.22.0, 7.0.30 - 7.1.17
1

Had very similar issue with 7.2.1, just gave up and used another method to encrypt. Now I wonder if it really was my code:) Hate to be one of those "me too" people, but this all sounds very familiar.

The code I use is the simple example:
_**The hour (of the server) is 09:19, and will give the following message:
Have a good morning!**_
And I still get the deprecated notice.

Sorry, my bad. You're right. I didn't remember that I used create_function() since I coded this years ago. Indeed, it uses it here https://github.com/pH-7/Obfuscator-Class/blob/master/src/Obfuscator.php#L61
This will have to be replaced by an anonymous function instead. I don't have much time right now, but it will have to be updated anyway in order to support the next PHP versions.

Just created a ticket for it here https://github.com/pH-7/Obfuscator-Class/issues/6


[BUG] Scroll bar showing when there is no need for scroll bar in data list

Bug Description
Scroll bar show when the user selects and collapses all the accordions for the layers

Bug Reproduction

Load some layers
Collapse their accordions

Bug Impact
No response
Bug Screenshots
No response
Bug References
No response
Bug System Information

OS: [e.g. Windows 10]
Browser: [e.g. Google Chrome, Firefox]

┆Issue is synchronized with this Wrike task by Unito

Closing as it was fixed by #2287


Expression for ProfStef is not clickable

but the text says "click on the expression"

It works sometimes (but one has to double click). Closing for now.


commissioning issue of matter over wifi (CON-681)

hello,
i am using esp32-c3 runnig example code of matter light and when i try to do commissioning using chip-tool linux ,it sometimes works or sometimes it failed and when i commission device successfully then i can not on off the led on device logs of on-off command are as follow:
chip-tool logs:
sudo ./chip-tool-debug onoff off 1 1
[1691401142.908425][15408:15408] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /tmp/chip_kvs
[1691401142.908561][15408:15408] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /tmp/chip_factory.ini
[1691401142.908582][15408:15408] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /tmp/chip_config.ini
[1691401142.908598][15408:15408] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /tmp/chip_counters.ini
[1691401142.908662][15408:15408] CHIP:DL: writing settings to file (/tmp/chip_counters.ini-rcPkjs)
[1691401142.908804][15408:15408] CHIP:DL: renamed tmp file to file (/tmp/chip_counters.ini)
[1691401142.908812][15408:15408] CHIP:DL: NVS set: chip-counters/reboot-count = 8 (0x8)
[1691401142.909043][15408:15408] CHIP:DL: Got Ethernet interface: enp1s0
[1691401142.909183][15408:15408] CHIP:DL: Found the primary Ethernet interface:enp1s0
[1691401142.909344][15408:15408] CHIP:DL: Got WiFi interface: wlp3s0
[1691401142.910768][15408:15408] CHIP:DL: Found the primary WiFi interface:wlp3s0
[1691401142.910795][15408:15408] CHIP:IN: UDP::Init bind&listen port=0
[1691401142.910808][15408:15408] CHIP:IN: UDP::Init bound to port=43339
[1691401142.910811][15408:15408] CHIP:IN: UDP::Init bind&listen port=0
[1691401142.910823][15408:15408] CHIP:IN: UDP::Init bound to port=43130
[1691401142.910825][15408:15408] CHIP:IN: BLEBase::Init - setting/overriding transport
[1691401142.910828][15408:15408] CHIP:IN: TransportMgr initialized
[1691401142.910836][15408:15408] CHIP:FP: Initializing FabricTable from persistent storage
[1691401142.910868][15408:15408] CHIP:TS: Last Known Good Time: 2023-06-01T07:38:45
[1691401142.910990][15408:15408] CHIP:FP: Fabric index 0x1 was retrieved from storage. Compressed FabricId 0xAFC85A69BE5EE75C, FabricId 0x0000000000000001, NodeId 0x000000000001B669, VendorId 0xFFF1
[1691401142.911374][15408:15408] CHIP:ZCL: Using ZAP configuration...
[1691401142.912654][15408:15408] CHIP:DL: Avahi client registered
[1691401142.912873][15408:15408] CHIP:CTL: System State Initialized...
[1691401142.912894][15408:15408] CHIP:CTL: Stopping commissioning discovery over DNS-SD
[1691401142.912902][15408:15408] CHIP:CTL: Setting attestation nonce to random value
[1691401142.912905][15408:15408] CHIP:CTL: Setting CSR nonce to random value
[1691401142.912948][15408:15410] CHIP:DL: CHIP task running
[1691401142.912973][15408:15410] CHIP:DL: HandlePlatformSpecificBLEEvent 32784
[1691401142.913016][15408:15410] CHIP:CTL: Stopping commissioning discovery over DNS-SD
[1691401142.913021][15408:15410] CHIP:CTL: Setting attestation nonce to random value
[1691401142.913024][15408:15410] CHIP:CTL: Setting CSR nonce to random value
[1691401142.915580][15408:15410] CHIP:CTL: Generating NOC
[1691401142.918382][15408:15410] CHIP:FP: Validating NOC chain
[1691401142.928792][15408:15410] CHIP:FP: NOC chain validation successful
[1691401142.928800][15408:15410] CHIP:FP: Updated fabric at index: 0x1, Node ID: 0x000000000001B669
[1691401142.928803][15408:15410] CHIP:TS: Last Known Good Time: 2023-06-01T07:38:45
[1691401142.928805][15408:15410] CHIP:TS: New proposed Last Known Good Time: 2021-01-01T00:00:00
[1691401142.928806][15408:15410] CHIP:TS: Retaining current Last Known Good Time
[1691401142.929442][15408:15410] CHIP:FP: Metadata for Fabric 0x1 persisted to storage.
[1691401142.929642][15408:15410] CHIP:TS: Committing Last Known Good Time to storage: 2023-06-01T07:38:45
[1691401142.929855][15408:15410] CHIP:CTL: Joined the fabric at index 1. Fabric ID is 0x0000000000000001 (Compressed Fabric ID: AFC85A69BE5EE75C)
[1691401142.931770][15408:15410] CHIP:TOO: Sending command to node 0x1
[1691401142.931859][15408:15410] CHIP:CSM: FindOrEstablishSession: PeerId = [1:0000000000000001]
[1691401142.931863][15408:15410] CHIP:CSM: FindOrEstablishSession: No existing OperationalSessionSetup instance found
[1691401142.931884][15408:15410] CHIP:DIS: OperationalSessionSetup[1:0000000000000001]: State change 1 --> 2
[1691401142.931889][15408:15410] CHIP:DIS: Resolving AFC85A69BE5EE75C:0000000000000001 ...
[1691401142.932352][15408:15410] CHIP:DL: Avahi resolve found
[1691401142.932378][15408:15410] CHIP:DIS: Node ID resolved for AFC85A69BE5EE75C:0000000000000001
[1691401142.932380][15408:15410] CHIP:DIS: 	Hostname: 84F70366BE3C
[1691401142.932383][15408:15410] CHIP:DIS: 	IP Address #1: <IP_ADDRESS>
[1691401142.932385][15408:15410] CHIP:DIS: 	Port: 5540
[1691401142.932387][15408:15410] CHIP:DIS: 	Mrp Interval idle: 600 ms
[1691401142.932389][15408:15410] CHIP:DIS: 	Mrp Interval active: 400 ms
[1691401142.932391][15408:15410] CHIP:DIS: 	TCP Supported: 1
[1691401142.932394][15408:15410] CHIP:DIS: Lookup clearing interface for non LL address
[1691401142.932408][15408:15410] CHIP:DIS: UDP:<IP_ADDRESS>%wlp3s0:5540: new best score: 2
[1691401142.932410][15408:15410] CHIP:DIS: Checking node lookup status after 0 ms
[1691401142.932412][15408:15410] CHIP:DIS: Keeping DNSSD lookup active
[1691401143.132035][15408:15410] CHIP:DIS: Checking node lookup status after 200 ms
[1691401143.132088][15408:15410] CHIP:DIS: OperationalSessionSetup[1:0000000000000001]: Updating device address to UDP:<IP_ADDRESS>:5540 while in state 2
[1691401143.132099][15408:15410] CHIP:DIS: OperationalSessionSetup[1:0000000000000001]: State change 2 --> 3
[1691401143.132150][15408:15410] CHIP:IN: SecureSession[0x7f6928009920]: Allocated Type:2 LSID:7664
[1691401143.132174][15408:15410] CHIP:SC: Initiating session on local FabricIndex 1 from 0x000000000001B669 -> 0x0000000000000001
[1691401143.145191][15408:15410] CHIP:EM: <<< [E:50595i S:0 M:218439711] (U) Msg TX to 0:0000000000000000 [0000] --- Type 0000:30 (SecureChannel:CASE_Sigma1)
[1691401143.145234][15408:15410] CHIP:IN: (U) Sending msg 218439711 to IP address 'UDP:<IP_ADDRESS>:5540'
[1691401143.145389][15408:15410] CHIP:SC: Sent Sigma1 msg
[1691401143.145404][15408:15410] CHIP:DIS: OperationalSessionSetup[1:0000000000000001]: State change 3 --> 4
[1691401143.858405][15408:15410] CHIP:EM: Retransmitting MessageCounter:218439711 on exchange 50595i Send Cnt 1
[1691401143.858469][15408:15410] CHIP:IN: (U) Sending msg 218439711 to IP address 'UDP:<IP_ADDRESS>:5540'
[1691401144.576551][15408:15410] CHIP:EM: Retransmitting MessageCounter:218439711 on exchange 50595i Send Cnt 2
[1691401144.576616][15408:15410] CHIP:IN: (U) Sending msg 218439711 to IP address 'UDP:<IP_ADDRESS>:5540'
[1691401144.738779][15408:15409] CHIP:DL: Got IP address on interface: wlp3s0 IP: <IP_ADDRESS>
[1691401144.738901][15408:15410] CHIP:DL: HandlePlatformSpecificBLEEvent 32770
[1691401145.772234][15408:15410] CHIP:EM: Retransmitting MessageCounter:218439711 on exchange 50595i Send Cnt 3
[1691401145.772299][15408:15410] CHIP:IN: (U) Sending msg 218439711 to IP address 'UDP:<IP_ADDRESS>:5540'
[1691401147.809958][15408:15409] CHIP:DL: Got IP address on interface: wlp3s0 IP: <IP_ADDRESS>
[1691401147.810088][15408:15410] CHIP:DL: HandlePlatformSpecificBLEEvent 32770
[1691401147.843252][15408:15410] CHIP:EM: Retransmitting MessageCounter:218439711 on exchange 50595i Send Cnt 4
[1691401147.843277][15408:15410] CHIP:IN: (U) Sending msg 218439711 to IP address 'UDP:<IP_ADDRESS>:5540'
[1691401150.984607][15408:15410] CHIP:EM: Failed to Send CHIP MessageCounter:218439711 on exchange 50595i sendCount: 4 max retries: 4
[1691401152.008612][15408:15409] CHIP:DL: Got IP address on interface: wlp3s0 IP: <IP_ADDRESS>
[1691401152.008746][15408:15410] CHIP:DL: HandlePlatformSpecificBLEEvent 32770
[1691401153.597081][15408:15410] CHIP:SC: CASESession timed out while waiting for a response from the peer. Current state was 1
[1691401153.597128][15408:15410] CHIP:IN: SecureSession[0x7f6928009920]: Released - Type:2 LSID:7664
[1691401153.597154][15408:15410] CHIP:DIS: OperationalSessionSetup[1:0000000000000001]: State change 4 --> 2
[1691401153.597172][15408:15410] CHIP:DIS: OperationalSessionSetup[1:0000000000000001]: State change 2 --> 1
[1691401153.597196][15408:15410] CHIP:-: src/protocols/secure_channel/CASESession.cpp:485: CHIP Error 0x00000032: Timeout at examples/chip-tool/commands/clusters/ModelCommand.cpp:62
[1691401153.597471][15408:15408] CHIP:CTL: Shutting down the commissioner
[1691401153.597499][15408:15408] CHIP:CTL: Stopping commissioning discovery over DNS-SD
[1691401153.597515][15408:15408] CHIP:CTL: Shutting down the controller
[1691401153.597531][15408:15408] CHIP:IN: Expiring all sessions for fabric 0x1!!
[1691401153.597546][15408:15408] CHIP:FP: Forgetting fabric 0x1
[1691401153.597570][15408:15408] CHIP:TS: Pending Last Known Good Time: 2023-06-01T07:38:45
[1691401153.597732][15408:15408] CHIP:TS: Previous Last Known Good Time: 2023-06-01T07:38:45
[1691401153.597747][15408:15408] CHIP:TS: Reverted Last Known Good Time to previous value
[1691401153.597770][15408:15408] CHIP:CTL: Shutting down the commissioner
[1691401153.597780][15408:15408] CHIP:CTL: Stopping commissioning discovery over DNS-SD
[1691401153.597793][15408:15408] CHIP:CTL: Shutting down the controller
[1691401153.597805][15408:15408] CHIP:CTL: Shutting down the System State, this will teardown the CHIP Stack
[1691401153.598787][15408:15408] CHIP:DMG: All ReadHandler-s are clean, clear GlobalDirtySet
[1691401153.598843][15408:15408] CHIP:BLE: BleConnectionDelegate::CancelConnection is not implemented.
[1691401153.598869][15408:15408] CHIP:FP: Shutting down FabricTable
[1691401153.598886][15408:15408] CHIP:TS: Pending Last Known Good Time: 2023-06-01T07:38:45
[1691401153.598974][15408:15408] CHIP:TS: Previous Last Known Good Time: 2023-06-01T07:38:45
[1691401153.598983][15408:15408] CHIP:TS: Reverted Last Known Good Time to previous value
[1691401153.599171][15408:15408] CHIP:DL: writing settings to file (/tmp/chip_counters.ini-YP5nap)
[1691401153.599603][15408:15408] CHIP:DL: renamed tmp file to file (/tmp/chip_counters.ini)
[1691401153.599653][15408:15408] CHIP:DL: NVS set: chip-counters/total-operational-hours = 0 (0x0)
[1691401153.599672][15408:15408] CHIP:DL: Inet Layer shutdown
[1691401153.599685][15408:15408] CHIP:DL: BLE shutdown
[1691401153.599699][15408:15408] CHIP:DL: System Layer shutdown
[1691401153.599891][15408:15408] CHIP:TOO: Run command failure: src/protocols/secure_channel/CASESession.cpp:485: CHIP Error 0x00000032: Timeout

@gautam1joshi

it sometimes works or sometimes it failed

This generally should not happen

and when i commission device successfully then i can not on off the led on device logs of on-off

Is the commissioning complete and successful? Please upload (and not paste) the logs from the device side as well as chip-tool side for commissioning as well as control to debug this further.

chiptool_log.txt
esp.txt
yes here it is.

@gautam1joshi The device logs show that the node id being advertised for operational discovery is 1:
I (21899) chip[DIS]: Advertise operational node AFC85A69BE5EE75C-0000000000000001
I (21909) chip[DIS]: CHIP minimal mDNS configured as 'Operational device'; instance name: AFC85A69BE5EE75C-0000000000000001.

But, from the chip-tool, you are using node id 5
sudo ./chip-tool-debug binding read binding 5 1

Am I missing anything?

sorry for mistake, i uploaded wrong file
this is the right one:
chip-tool.txt

So the commissioning is successful. Now you should control using node-id 1 from chip-tool. I would suggest you to redo the following steps:

Reset to factory ESP32-C3 : matter device factoryreset on the console
Commission using chip-tool (pairing ble-wifi command) with node id 1
Control (on/off/toggle) using chip-tool using node id 1

it works after i reset the esp but when i try to do binding step i got error of unsupported cluster so is that mean binding is not supported or something i missing.
this error i get:
binding_chip_tool.txt

it works after i reset the esp but after sometimes it once again not work

This should not happen.

and when i try to do binding step i got error of unsupported cluster so is that mean binding is not supported or something i missing.

Binding cluster server is present when there is a client cluster on the endpoint. If you are using the light example, then it won't be present

This should not happen.

okay so what could be a problem in commissioning?

Binding cluster server is present when there is a client cluster on the endpoint. If you are using the light example, then it won't be present

in that i am using another board which has matter switch code so i am trying to bind them so is that possible?

okay so what could be a problem in commissioning?

There should be no problem ideally. Once commissioned, it should work fine. If it fails, please upload the complete logs -> commissioning and then all the control commands for both chip-tool and the device.

in that i am using another board which has matter switch code so i am trying to bind them so is that possible?

Please follow this: https://github.com/espressif/esp-matter/tree/main/examples/light_switch#2-post-commissioning-setup

esp.txt
chip-tool.txt
chip_tool_command.txt
this are the logs before reset the board

hello,
i once again try to do binding and this time it bind successfully but when switch try to send command it show error like this:
E: 413624 [SVR]Failed to establish connection to node 0x0000000000000006

@gautam1joshi I just want to confirm few things that you are trying...

Commission the light
commission the switch
Set the access control on the light
Bind the light to Switch
Press the button on switch and Light should toggle.

Logs from a single session would really help.. I would suggest please attach logs from light, switch, and chip-tool(along with commands used). So, that we can better help you here, or try to reproduce the issue.

Closing this now. Please re-open by providing the necessary logs


fix(notifications): Sort notifications by created date

Fix for active notification bug where notifications weren't being sorted by creation date

:+1: good enough


Upgrade Conanfile to last v1.x

Mission
The objective is to answer

What is the best 1.x recipe in preparation for 2.0?

Context
Currently the backend recipe was written for 1.28 to 1.33 which is long long ago. There are a lot of 2.0 improvements that have already been made available and the goal is to test them out!

[x] Build system integrations (ToolChain + Deps) see templates
[x] Use new layouts
[x] Use scm to save git hash in recipe (conandata)

Bonus points challenge

What is it like to work with editable layout?
Previously, I'd develop locally... then conan create . and test out the package... that should no longer be the case 😱
What new features could help including the the API schemas?
How does my "directly from cmake" blend with the new layouts? see docs
How do preserve both pure CMake and Conan CLIs builds since CONAN_EXPORTED is removed? Is this required to play nicely with the ecosystem? https://github.com/prince-chrismc/user-management/blob/aa52bf5ca77ab9a6fe792479d6607d4b4234943e/backend/cmake/conan-setup.cmake#L20

Optional upgrades

[ ] Validate deps options with new interface
[ ] Improved deployment runnable apps
[ ] Can I package random certs for the deploy

compatibility.py for forward compatibility with glibc with 2.0 upgrade


Chrome issues with logged in user

Just a note- I was not able to complete steps initially because I kept getting to a screen with 'Couldn't sign you in -> This browser or app may not be secure.' message when using Chrome.  Oddly it worked with Firefox.  After a bit of digging, it turned out the issue was that I couldn't sign in with my Google id because I had another Chrome window open that I was already signed in to.  I could open the app (localhost:xxxxx) in a new tab on that window.

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

ID: 6d19b295-f935-3755-4ca4-9d0717b21e75
Version Independent ID: 747a179e-90b7-de07-e270-82414963048a
Content: Google external login setup in ASP.NET Core
Content Source: aspnetcore/security/authentication/social/google-logins.md
Product: aspnet-core
Technology: aspnetcore-security
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

THanks for the info.


[material-ui][Dialog] Pressing enter to close dialog causes partial focus animation of open dialog button

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Steps to reproduce 🕹
Link to live example: MUI Dialog Docs -> Basic Dialog
Steps:

Go to the MUI Dialog docs page -> Basic dialog section
Click "Open simple dialog" and move mouse away
Hit enter to "click" the auto-focused "Add account" button
The modal will close, and the "open simple dialog" button will be focused with half the on-click animation triggered
It will stay that way until you hover over it and move mouse out

Current behavior 😯
When a dialog closes as a result of hitting enter, the underlying button that opened it gets a frozen partial animation as if it's just been clicked.
Expected behavior 🤔
The button should not partially animate.
Context 🔦
In my own project, I'm using a similar simple dialog with a form on it. When the user presses enter to submit the form, the UX looks strange due to this issue.
I'd like to fix this UX glitch.
Your environment 🌎

npx @mui/envinfo
  System:
    OS: Windows 10 10.0.19045
  Binaries:
    Node: 18.16.1 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.19 - ~\AppData\Roaming\npm\yarn.CMD
    npm: 9.5.1 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Chrome: 118.0.5993.89
    Edge: Spartan (44.19041.3570.0), Chromium (118.0.2088.61)
  npmPackages:
    @emotion/react: latest => 11.11.1
    @emotion/styled: latest => 11.11.0
    @mui/base:  5.0.0-beta.17
    @mui/core-downloads-tracker:  5.14.11
    @mui/icons-material: latest => 5.14.11
    @mui/material: latest => 5.14.11
    @mui/private-theming:  5.14.11
    @mui/styled-engine:  5.14.11
    @mui/system:  5.14.11
    @mui/types:  7.2.4
    @mui/utils:  5.14.11
    @mui/x-data-grid: ^6.14.0 => 6.15.0
    @types/react: latest => 18.2.23
    react: ^18.2.0 => 18.2.0
    react-dom: ^18.2.0 => 18.2.0
    typescript: latest => 5.2.2

Browser: Chrome Version 118.0.5993.89 (Official Build) (64-bit) (on Windows 10)

Is this the animation you're referring to?
https://github.com/mui/material-ui/assets/71297412/ef598dc7-419f-4555-b95e-0d496a9740ee
If so, this is expected behavior—it's intended to communicate where the focus is located.

Yes, that's the one.
Looks like a bug to me, but maybe that's just personal preference.
But why is it only happening when pressing enter within the modal? In my example from the MUI docs, clicking one of the items in the modal closes it and then focus is not shown on that button. Maybe that's expected too?
Any workarounds here? Is there a way to leave the click animation enabled but disable the focus animation shown in your video?


FIX Export registered methods in enabled members report

Issue https://github.com/silverstripe/silverstripe-mfa/issues/443
GridFieldExportButton doesn't apply formatting.  I actually try fixing it that way first here before realizing this is probably bad because the exported data may included HTML link hyperlinks which will looks really bad in a csv
So I think the proper solution is don't manipulate data in a formatting function, instead just create some new 'get' methods that do the data manipulation
Also fixed some phpcs issues

Test failure related.


Configure the dev environment and examples to work on Gitpod

@mickmister Maybe you have some ideas for this one?

@azigler This is a great idea! How I see this working:
Opening this project in Gitpod is meant to help you get started on a ✨new✨ project. First and foremost, we spin up the MM server in one terminal. Then the next goal is to get a new repo alongside the examples repo, and have this added to the Gitpod workspace at runtime. This new repo would have a populated .gitpod.yml that points to the examples repo as the mainConfiguration. This way whenever a new workspace is made from the dev's amazing new repo, they can continue their work as usual.
So now we have a blank repo with a .gitpod.yml file. What do we do next? Some ideas:

Assume they are going to use Typescript and give them a boilerplate project. Typescript is our target language for the framework as Javascript is very common in the industry, and you can do a lot with very little code.
Ask the dev in an interactive terminal what language they want to use, and we fill the new repo with some boilerplate code.
Install one of the hello apps to have some functionality going on in their new project.
Do nothing. The dev is responsible for next steps.

I'm thinking we should also have the Apps plugin automatically cloned in order to tinker with changes with the framework.
One thing I noticed when I tried to open this in Gitpod: I ran docker compose up, and was met with .docker.env: no such file or directory. In the case of Gitpod, we can solve this by creating this blank file automatically when the workspace is created. I'm not sure we can automate around this in the non-Gitpod case. We would want to make this clear in the dev docs that this should be created before running the docker commands.

Something else that would be good for App development in general, is a way to have the server logs filtered so you can see only logs from the Apps plugin. The log messages output by the Apps plugin are often meant to help debug why an App isn't working as intended. This can be done by using tail -f and grep https://serverfault.com/a/793325
tail -f mattermost.log | grep com.mattermost.apps

To accomplish this, we would need to map a volume so the mattermost.log file is accessible from a terminal outside of the server's docker container.
I think having this terminal automatically created in the Gitpod workspace would be immensely helpful.

@mickmister Thanks for diving into this. Regarding this:

We would want to make this clear in the dev docs that this should be created before running the docker commands.

I just went ahead and added a commit to the developer guide so this makes it in the initial merge. Thanks for catching that.

Something else that would be good for App development in general, is a way to have the server logs filtered so you can see only logs from the Apps plugin. The log messages output by the Apps plugin are often meant to help debug why an App isn't working as intended. This can be done by using tail -f and grep https://serverfault.com/a/793325
tail -f mattermost.log | grep com.mattermost.apps

To accomplish this, we would need to map a volume so the mattermost.log file is accessible from a terminal outside of the server's docker container.
I think having this terminal automatically created in the Gitpod workspace would be immensely helpful.

Fantastic idea. I went ahead and updated the docker-compose.yml to facilitate.


Add instructions for backfilling DAG runs and DAG schedules

Overview
Adds an explanation to app-tasks/README.md for how to get backfills going for scene creation.
Additionally, sets DAG concurrency using the .env configuration file
downloaded from S3 and adds scheduling to the two existing import processes.
As noted in #611, it takes a lot of attention to get imports running. That's not great since we all want to have scenes in our local databases, and we should be able to get to that state using our importers.
Checklist

[x] Styleguide updated, if necessary
[x] Swagger specification updated, if necessary

Testing Instructions
To test that the scheduling works as described in the first paragraph of the app-tasks/README.md diff:

vagrant ssh
./scripts/bootstrap to pull in the concurrency setting
./scripts/console airflow-scheduler bash --> airflow resetdb to clear out any existing task runs you may have in your airflow db
docker-compose stop <-- the idea here is to keep only what's necessary running and to control a bit when things come up
Order matters: sometimes if app-server takes too long to come up, the airflow scheduler gets impatient and tries to hit it with new scenes before the API is ready

docker-compose up -d nginx postgres
docker-compose up app-server, then wait for Running com.azavea.rf.Main and binding types to DB types. Leave this up so you can see server side errors.
docker-compose up -d airflow-scheduler airflow-worker

Navigate to localhost:8080. You should have some little light green circles indicating running tasks in this area:

If you don't, wait three minutes and refresh the page.
Wait a while.  They're configured to start on 2016-11-06 right now, so to confirm that this is happening:

./scripts/psql, select datasource, count(*) from scenes group by datasource; every once in a while to see progress

To test the other instructions, just do what they say with the containers mentioned above running.
Closes #611

+1


Site certificate seems to have expired

Please do the needful.

The site is now functional, thanks.


Make sure we install the GCE guest software.

This changed because of: https://salsa.debian.org/cloud-team/debian-cloud-images/-/blob/master/config_space/bullseye/package_config/GCE
Where for bullseye, the upstream class doesn't include the google-compute-engine package.

/lgtm


Replace AssemblyVersion with Version

Description
Replace dependency on updateAssemblyInfo.ps1 with Version property and ADO variables. In order to bring our build and release experience across our repos to a unified process, we need to adopt the way versioning is done our other repos.
Test runs:
WisonVersion = ' ' (https://identitydivision.visualstudio.com/IDDP/_build/results?buildId=1257450&view=artifacts&pathAsName=false&type=publishedArtifacts )
WisonVersion = 7.3.3-preview-test-123 (https://identitydivision.visualstudio.com/IDDP/_build/results?buildId=1257449&view=artifacts&pathAsName=false&type=publishedArtifacts)
WisonVersion = 7.3.3 (https://identitydivision.visualstudio.com/IDDP/_build/results?buildId=1257451&view=artifacts&pathAsName=false&type=publishedArtifacts)
Fixes https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/issues/2393

Thanks @FuPingFranco This looks good.
I think you can still update the github flow, and remove the pack.ps1 script and the buildconfiguration.xml file.
Did you update the process?

I updated the github flow and created a separate task to look into all scripts post this changes. I am working on documentation on the process and will share it asap. Thank you for all the help @jmprieur :)


Add ability to link column to tempo datasource

Is your feature request related to a problem? Please describe.
We're looking to use clickhouse for storing trace data instead of loki and would like the ability to link a specific column to tempo (exactly the same functionality that loki->tempo provides today)
Describe the solution you'd like
Same configuration in the datasource with the same experience of linking a column to tempo so users can click the column's value and be linked to tempo visualization
Describe alternatives you've considered
Nothing outside of forking this plugin and creating our own custom

the feature named 'drived field', it is useful. currently loki  and ElasticSearch and prometheus exeamplar support this. https://grafana.com/docs/grafana/latest/datasources/loki/#derived-fields


Revert "Disable HEIC to JPEG conversion due to OOM errors, see https://reportedcab.slack.com/archives/C9VNM3DL4/p1613245801038700?thread_ts=1610546281.002400&cid=C9VNM3DL4"

This reverts commit b32cb92ca92547e46498aa3e2106cc31c82fe28d.
WIP dump process.memoryUsage before/after HEIC conversion, see https://www.valentinog.com/blog/node-usage/

From https://reportedcab.slack.com/archives/C9VNM3DL4/p1613254694046800?thread_ts=1610546281.002400&cid=C9VNM3DL4:

I added a bit of code before/after the HEIC/JPEG conversion locally to get a better idea of memory usage, from https://www.valentinog.com/blog/node-usage/
const used = process.memoryUsage();
for (let key in used) {
  console.log(`${key} ${Math.round(used[key] / 1024 / 1024 * 100) / 100} MB`);
}

and got the following output:
rss 104.16 MB
heapTotal 49.02 MB
heapUsed 45.49 MB
external 18.73 MB
arrayBuffers 17.19 MB
heic-convert: 5.374s
rss 513.46 MB
heapTotal 240.5 MB
heapUsed 213.47 MB
external 182.33 MB
arrayBuffers 180.79 MB

I don't know what all these numbers mean, but there's definitely a big jump after the heic-convert line, so I'm pretty confident that it's to blame for the OOM on heroku

https://github.com/josephfrazier/Reported-Web/pull/266 would obviate this


Inquiry Marked as Purchase overlay + Impulse request

User should be able to click on an historical inquiry brick and 'mark' it as a purchase.

Shows purple check overlay
Makes request to Impulse to mark the conversation with the appropriate outcome

This depends on an Auth update to Impulse: https://github.com/artsy/impulse/issues/195

After some discussion with @1aurabrown and @ashkan18, it appears we do not need to POST any data to Impulse ourselves. Instead:

We update the user_reported_outcome field of an inquiry to be purchased.
Gravity automatically sends that update to Impulse.
The CR team gets a notification about that self-reported outcome, they vet it, and eventually mark the official outcome of the inquiry as sold.

So we really only need to do step 1.

Also note the issue @mzikherman had originally, I think ideally we'd do auth in Impulse and then call Impulse directly from Force but we can do that in a separate task if we want to proceed with this feature.

FWIW I'd be down to do things the 'right' way from the start, if it makes sense. Most of this code is new tech/new repo so it's greenfield and so maybe we can do it 'properly' (aka directly to Impulse, and not use Gravity as a 'broker').

I think it's possible to satisfy these specific requirements from existing [or slightly modified] APIs, but we are actively trying to shift the authority about these models from Gravity to Impulse. We've already accomplished this for inquiries/conversations from partners' perspective.
It would be a step back to build new collector inquiry features around the old APIs and models. (In many ways, the Impulse modeling better reflects our more recent understanding of inquiries as ongoing conversations that can result in purchases, invoices, etc.)

Let’s definitely do whatever the current preferred way is.
Does this also change in any way how we should be fetching inquiry data or should we stil do that through the existing Gravity endpoints? https://github.com/artsy/metaphysics/issues/549

What data from inquiry request we need?

Assigning this to you @xtina-starr since its just the overlay 'selected' state now. I'll make the Impulse update its own issue.

This is done.


Fix: inconsistent use of caml_stat_* functions

One more patch from the same series:

Hello. I'm doing a large-scale study of C stub sources on OPAM.
Your library makes use of the undocumented caml_stat_* functions, which currently are thin wrappers around malloc, realloc, and free from the C standard library. In future, the implementation of these functions may change, making them incompatible with malloc and breaking the code that abused the old undocumented semantics.
Regardless of whether the change of semantics will happen or not, being consistent about such matters should be considered good style.

Thank you!


useQueries with duplicate query keys returns wrong value from select when placeholderData is not an object

Describe the bug
When passing two queries with the same query key to useQueries, with a select function and a non-object value as placeholder data, the data of both entries in the query results array will be the value of the first call to select.
const results = useQueries({
  queries: [
    { queryKey: ["abc"], queryFn: () => fetchSomething(), placeholderData: null, select: data => ({ id: 1, data }) },
    { queryKey: ["abc"], queryFn: () => fetchSomething(), placeholderData: null, select: data => ({ id: 2, data }) },
  ]
})

// prints { id: 1, data: null }
console.log(results[0].data)

// prints { id: 1, data: null }, but id should be 2
console.log(results[1].data)

This causes a "duplicate key" warning in React, because the id is the same for two items.
Once the fetch is completed the data is correct. It also works if you provide an object value (e.g. {}).
Your minimal, reproducible example
https://codesandbox.io/s/gracious-solomon-pvbv9m
Steps to reproduce

Run the following code in a component.

const results = useQueries({
  queries: [
    {
      queryKey: ["abc"],
      queryFn: () => new Promise(() => {}),
      placeholderData: null,
      select: (data) => ({ id: 1, data }),
      enabled: false
    },
    {
      queryKey: ["abc"],
      queryFn: () => new Promise(() => {}),
      placeholderData: null,
      select: (data) => ({ id: 2, data }),
      enabled: false
    }
  ]
});

console.log(results[0].data)
console.log(results[1].data)

Check the output in the console.

Expected behavior
As a user, I expected the data returned for each query to be mapped using the select-function.
How often does this bug happen?
Every time
Screenshots or Videos
No response
Platform

OS: macOS
Browser: Firefox Developer Edition
Version: 105.0b9

react-query version
v4.3.9
TypeScript version
v4.1.3
Additional context
In our app, we are fetching time series data for some charts based on user configuration. The configuration consists of some UI-stuff (e.g. name and color of the time series) and a query used to fetch the time series. It looks roughly like this:
interface ChartConfig {
  series: TimeSeriesConfig[]
}

interface TimeSeriesConfig {
  label: string
  color: string
  query: { metric: string, method: string }
}

The user has complete freedom to configure their charts, so it is possible for them to include the exact same query in both other charts and in the same chart. The labels and colors however might vary, so we only want data to be cached on the actual query.
We use useQueries to fetch the data and then merge the config with the time series data using select:
const results = useQueries({
  queries: configs.map(config => ({
    queryKey: ['time-series', config.query],
    queryFn: () => fetchTimeSeries(config.query),
    placeholderData: null,
    select: data => ({
      ...config,
      data
    })
  })
})

In some cases, there might not be any time series data available which we signal by returning null from fetchTimeSeries. To allow some things to render before the time series data is fetched, we set placeholderData to null.
Workaround
Since it works correctly when placeholderData is an object, one workaround is to wrap the result in an discriminated union and provide an empty case as placeholderData:
const results = useQueries({
  queries: configs.map(config => ({
    queryKey: ['time-series', config.query],
    queryFn: () => fetchTimeSeries(config.query).then(data => ({ fetched: true, data }),
    placeholderData: { fetched: false },
    select: result => ({
      ...config,
      data: result.fetched ? result.data : null
    })
  })
})

okay, the problem must be somewhere in useQueries. As I can see in the devtools, there is only one observer - which means useQueries re-uses observers based on their keys. I think it's just unexpected that we'd have the same key twice within one useQueries call 🤔
You will see two observers, and things will work fine, if we do:
  const result1 = useQuery({
    queryKey: ["abc"],
    queryFn: () => mockFetch("abc", 1),
    placeholderData: null,
    select: (data) => ({ id: 1, data }),
    enabled: shouldFetch
  });

  const result2 = useQuery({
    queryKey: ["abc"],
    queryFn: () => mockFetch("abc", 2),
    placeholderData: null,
    select: (data) => ({ id: 2, data }),
    enabled: shouldFetch
  });

yep, observers are matched by queryhash:
https://github.com/TanStack/query/blob/357ec041a6fcc4a550f3df02c12ecc7bcdefbc05/packages/query-core/src/queriesObserver.ts#L133
I think this is necessary to make keepPreviousData work and variable length arrays work correctly. I'm not really sure what to do here tbh. Maybe you could split it into multiple useQueries calls to ensure that there is only one call per query key?

This is such an interesting issue, thanks for reporting.

Yes, it certainly is interesting. It was damn near impossible to come up with a name for the github issue, because it so specific. 😅

Maybe you could split it into multiple useQueries calls to ensure that there is only one call per query key?

I'm not sure how I'd do that without breaking the "Thou shalt not use hooks in a for-loop" commandment. I could filter any duplicates and then, instead of using select, try to pair the fetched data with the right config in a useMemo. But it's such a shame, since select is there and makes everything a lot simpler.
It's not really a huge issue for us. The workaround I posted seems to work fine. Besides, there's really no point for users to have two time series with the same query in the same chart, because their plots would be identical. We allow it because it's more convenient if the user can have duplicates while configuring their charts.
Though I am curious as to why it would work when placeholderData is an object or if you use a function? I also tried initialData and that does not have the same problem.

Though I am curious as to why it would work when placeholderData is an object or if you use a function?

because we triple equals compare placeholerData with the one from the previous execution and re-use it if it's equal. Two objects or two functions are never equal, but two nulls are. Maybe we should just remove this "optimization"...

I'm not sure how I'd do that without breaking the "Thou shalt not use hooks in a for-loop" commandment.

I was more thinking of splitting it into two arrays, then call useQueries for both arrays. But yeah, if there could be three equivalent usages as well, you'd need variable useQueries calls 🙈

I think the least we can do is document that useQueries doesn't work well if it contains duplicate keys because observers are re-used and that can lead to shared data between observers like select or placeholderData that are observer specific.

Yeah, that’s a good idea. Should we document the workaround with using a function/object as well?

Would you like to contribute that to the docs?

I will try to get around to doing it this week.


NIFI-5908 Inject locale info into JsonInjector object to make sure we…

… don't lose that information.
Thank you for submitting a contribution to Apache NiFi.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[ ] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[ ] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[ ] Has your PR been rebased against the latest commit within the target branch (typically master)?

[ ] Is your initial contribution a single, squashed commit?

For code changes:

[ ] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[ ] Have you written or updated unit tests to verify your changes?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.

@markap14 @pvillard31 can one of you review since this aims to correct a regression that appears to have been introduced w/ NIFI-5814?
Verify_GeoIP.xml.txt

DB direct download here

I'm a +1, giving a chance to @markap14 to also have a look, otherwise will merge later

@pvillard31 @markap14 @trixpan how did y'all test the ISPEnrich processor? Did someone buy access to the maxmind database for that data? Asking because I just did GeoEnrichIPRecord and am thinking about doing a record enrichment option for ISP data.

Merged to master, thanks @MikeThomsen


Incorrect position for fullscreen startup

My configuration has decorations: full and startup_mode: Maximized.
Opening alacritty (via any normal Gnome method) results in incorrect positioning. The window is the correct size, but positioned too high by the height of the window chrome. This means that the chrome is fully hidden (behind the gnome top bar), and there is a gap at the bottom exposing the window behind:

The same thing happens if it opens on the other monitor, except that the chrome is off the top of the screen.
If I reposition the window (e.g. swap screen and swap back using shortcut keys) it then positions correctly:

System
OS: Fedora 30
Version: 0.4.0 from COPR repsitory
Linux/BSD: Gnome Wayland

Is it actually positioning the window too high, or is it just not rendering any window decorations?

I think it is a positioning issue - if I hit the super key to show the Gnome Activities Overview, the preview of alacritty includes the window decorations (and then when I hit it again, it returns to the incorrect position).

I feel like this might be an issue with Gnome specifically, because of their SSD/CSD approach.
Could you test decorations none, to see if the window is still positioned incorrectly or if that "fixes" it (though without decorations showing at all then obviously).

That appears to behave correctly - prompt is at the top, window fills the screen.

BTW - happy to do some more detailed digging/fix attempts if you can suggest where to start looking.

It would be very helpful if you could try the example of https://github.com/rust-windowing/glutin.
You can just run cargo run --example window in that repository and check if the issue exists there too.

I had to tweak that example to get it to start up maximised (added .with_maximized(true) to the WindowBuilder line).
Running that, it does not show the same issue. It starts up maximised as expected, filling the screen, showing the decoration at the top and with not gap at the bottom.
[FYI - this is actually my other machine because I'm at home now, so Fedora 28. Alacritty 0.4.0 is showing the same bug as originally described on here though]

That's very helpful actually, thanks for testing that.
Could you test with https://github.com/chrisduerr/glutin? It's a fork of mine which should run against a more up to date winit version.

Ahhh. That is showing the incorrect behaviour. Something in winit causing a regression then?

Something in winit causing a regression then?

I'd assume so. I'll report it upstream immediately.

I've reported it upstream in https://github.com/rust-windowing/winit/issues/1312. If you want to help out, checking the exact commit which broke this might help, but it might be good to wait on feedback from the winit people.
If you subscribe to the upstream issue, that should make the feedback loop a bit shorter, then you can answer to them directly.


Translated Scout-App to Hebrew (he)

New translation can be found at

https://docs.google.com/spreadsheets/d/16FtHGThz0-CBz_rf_9QO4zOV7oNmNk2BlwmtvKuzAhs/edit?usp=sharing

Added translations for every row in the 'he' column in the shared spread sheet.
Some fields were already present but their notes included 'Based on google translate'. I changed the incorrect ones and left those which were correct as-is.
Some tweaking might be needed for sentences containing both Hebrew and English since Hebrew is RTL and that might mess up the order of word in the sentence.

@Wootness
Thanks! Do you have a culturally relevant image and CSS/Sass related text to go with it?
For example:

https://github.com/scout-app/scout-app/blob/master/scout-files/cultures/README.md

Yeah sure, here's the image:

The text is a play on words based on the song 'Badad' by the Israeli artist Zohar Argov (shown in the image).
The word Badad (בדד) in hebrew means "alone" and when trying to write the word but with Caps Lock activated it comes out as "CSS" so replacing the words in the chorus give us:
"CSS I shell go, without even a prayer,
CSS, without a future, without hope, without a dream"
It works better in Hebrew as the song is a classic.

Awesome, I've added it to the app. When testing I noticed this:

The formatting should look like this:

(0x01) is an error code.

Yeah I see the problem.
Seems like the middle part of the text, where is says 'Error (0x01)' started from right to left but then switched to left to right at the 'x'

If you could set the direction of this line to RTL for Hebrew it might fix it
Otherwise, maybe you can split the "Error" text and the error code into 2 different divs?

I created a new class, .rtl { direction: rtl; }. Before displaying the alert, we check to see if the culture code equals he or fa, and if so, apply that class to it.
Now it looks like this:

Can you run the app locally and check for any more bugs like that. I have not worked with RTL before, so I'll need to do more research on how best to implement a dynamic solution for switching between LTR and RTL on the fly.
To run locally the first time:

Download and Install Node.js (v4 or higher) - http://nodejs.org
Download and Install Git - http://git-scm.com
In your command line or terminal, cd to where you want to store your copy of Scout-App's source code.
Run git clone https://github.com/scout-app/scout-app.git
Run npm install
Run npm start

If you have any issues running locally, you can view the documentation:

https://github.com/scout-app/scout-app/blob/master/documentation/contributing.md#running-scout-app-locally-for-development

To run locally subsequent times:

In your terminal/command line cd into the folder with Scout-App's source code
Run git checkout master (Makes sure you are on the right branch)
Run git pull origin master (updates the branch)
Run git pull origin (updates the version tags)
Run npm install (updates dependencies)
Run npm start (starts Scout-App)

Well there are a couple of big steps everyone must pass when adapting a LTR ui for RTL languages.
You could choose to do the minimum for convenience or to go out of your way to line up every single element.
A few Examples:

Those titles do not show properly.
The more problematic issue is that the colon is to the right of the words, it should be at the left:

Next thing to do would be move the icons to the right of the words, just like they are to the left in English:

Another something which seems a little off is:

The checkboxes should be to the right of the text:

This as you can see RTL text in must be taken into account in multiple areas in the code. which might add 'noise' to your current codebase (depends on how you take it).
There are a more like those. How do you want to tackle them?

I'm for this, I just need to find some time to work on it to see how best to implement it.

Well, it took a few months, but I've got a good functioning rtl branch that I'll be merging into master soon.

Good to hear! Tell me when it's merged if you need help verifying everything's in place

Hey there!
I've updated the spreadsheet again, new strings were added and translated using Google Translate
Some of them were a little off.

@Wootness
Closing issue. This has been released in Scout-App v2.18.16.