chore(pip): avoid response buffering

PyPi dependencies contain large .whl files that are buffered in full into memory, only to resolve a dependency tree. This can lead to OOM errors in some environments. There are popular packages that are hundreds of megabytes in size.
In this change, the response is streamed to a temporary file, and the temporary file content is streamed to the ZipArchive, reducing the peak memory. Caching is also now done at a cache-key level, rather than an HTTP response level, as caching HTTP response streams is not possible.
I'm not sure whether the dependencies cache should also be limited by the same env-var that is used for the HTTP responses cache, as the dependencies cache is much smaller. In this PR the cache size is the same in both.
This solves #731

@asaf92-legit please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.
@microsoft-github-policy-service agree [company="{your company}"]

Options:

(default - no company specified) I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.

@microsoft-github-policy-service agree

(when company given) I am making Submissions in the course of work for my employer (or my employer has intellectual property rights in my Submissions by contract or applicable law). I have permission from my employer to make Submissions and enter into this Agreement on behalf of my employer. By signing below, the defined term “You” includes me and my employer.

@microsoft-github-policy-service agree company="Microsoft"

Contributor License Agreement
Contribution License Agreement
This Contribution License Agreement (“Agreement”) is agreed to by the party signing below (“You”), and conveys certain license rights to Microsoft Corporation and its affiliates (“Microsoft”) for Your contributions to Microsoft open source projects. This Agreement is effective as of the latest signature date below.

Definitions.
“Code” means the computer software code, whether in human-readable or machine-executable form,
that is delivered by You to Microsoft under this Agreement.
“Project” means any of the projects owned or managed by Microsoft and offered under a license
approved by the Open Source Initiative (www.opensource.org).
“Submit” is the act of uploading, submitting, transmitting, or distributing code or other content to any
Project, including but not limited to communication on electronic mailing lists, source code control
systems, and issue tracking systems that are managed by, or on behalf of, the Project for the purpose of
discussing and improving that Project, but excluding communication that is conspicuously marked or
otherwise designated in writing by You as “Not a Submission.”
“Submission” means the Code and any other copyrightable material Submitted by You, including any
associated comments and documentation.
Your Submission. You must agree to the terms of this Agreement before making a Submission to any
Project. This Agreement covers any and all Submissions that You, now or in the future (except as
described in Section 4 below), Submit to any Project.
Originality of Work. You represent that each of Your Submissions is entirely Your original work.
Should You wish to Submit materials that are not Your original work, You may Submit them separately
to the Project if You (a) retain all copyright and license information that was in the materials as You
received them, (b) in the description accompanying Your Submission, include the phrase “Submission
containing materials of a third party:” followed by the names of the third party and any licenses or other
restrictions of which You are aware, and (c) follow any other instructions in the Project’s written
guidelines concerning Submissions.
Your Employer. References to “employer” in this Agreement include Your employer or anyone else
for whom You are acting in making Your Submission, e.g. as a contractor, vendor, or agent. If Your
Submission is made in the course of Your work for an employer or Your employer has intellectual
property rights in Your Submission by contract or applicable law, You must secure permission from Your
employer to make the Submission before signing this Agreement. In that case, the term “You” in this
Agreement will refer to You and the employer collectively. If You change employers in the future and
desire to Submit additional Submissions for the new employer, then You agree to sign a new Agreement
and secure permission from the new employer before Submitting those Submissions.
Licenses.

Copyright License. You grant Microsoft, and those who receive the Submission directly or
indirectly from Microsoft, a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license in the
Submission to reproduce, prepare derivative works of, publicly display, publicly perform, and distribute
the Submission and such derivative works, and to sublicense any or all of the foregoing rights to third
parties.
Patent License. You grant Microsoft, and those who receive the Submission directly or
indirectly from Microsoft, a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license under
Your patent claims that are necessarily infringed by the Submission or the combination of the
Submission with the Project to which it was Submitted to make, have made, use, offer to sell, sell and
import or otherwise dispose of the Submission alone or with the Project.
Other Rights Reserved. Each party reserves all rights not expressly granted in this Agreement.
No additional licenses or rights whatsoever (including, without limitation, any implied licenses) are
granted by implication, exhaustion, estoppel or otherwise.

Representations and Warranties. You represent that You are legally entitled to grant the above
licenses. You represent that each of Your Submissions is entirely Your original work (except as You may
have disclosed under Section 3). You represent that You have secured permission from Your employer to
make the Submission in cases where Your Submission is made in the course of Your work for Your
employer or Your employer has intellectual property rights in Your Submission by contract or applicable
law. If You are signing this Agreement on behalf of Your employer, You represent and warrant that You
have the necessary authority to bind the listed employer to the obligations contained in this Agreement.
You are not expected to provide support for Your Submission, unless You choose to do so. UNLESS
REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, AND EXCEPT FOR THE WARRANTIES
EXPRESSLY STATED IN SECTIONS 3, 4, AND 6, THE SUBMISSION PROVIDED UNDER THIS AGREEMENT IS
PROVIDED WITHOUT WARRANTY OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY OF
NONINFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
Notice to Microsoft. You agree to notify Microsoft in writing of any facts or circumstances of which
You later become aware that would make Your representations in this Agreement inaccurate in any
respect.
Information about Submissions. You agree that contributions to Projects and information about
contributions may be maintained indefinitely and disclosed publicly, including Your name and other
information that You submit with Your Submission.
Governing Law/Jurisdiction. This Agreement is governed by the laws of the State of Washington, and
the parties consent to exclusive jurisdiction and venue in the federal courts sitting in King County,
Washington, unless no federal subject matter jurisdiction exists, in which case the parties consent to
exclusive jurisdiction and venue in the Superior Court of King County, Washington. The parties waive all
defenses of lack of personal jurisdiction and forum non-conveniens.
Entire Agreement/Assignment. This Agreement is the entire agreement between the parties, and
supersedes any and all prior agreements, understandings or communications, written or oral, between
the parties relating to the subject matter hereof. This Agreement may be assigned by Microsoft.

@microsoft-github-policy-service agree company="Legit Security"

@melotic

Thanks for the contribution! Would you happen to have some memory benchmarks on this PR? Curious to see the improvement.


Revert SNOW-719900 Remove random alias for subqeury in joins (#669)

Please answer these questions before submitting your pull requests. Thanks!

What GitHub issue is this PR addressing? Make sure that there is an accompanying issue to your PR.
Fixes #NNNN

Fill out the following pre-review checklist:

[ ] I am adding a new automated test(s) to verify correctness of my new code
[ ] I am adding new logging messages
[ ] I am adding a new telemetry message
[ ] I am adding new credentials
[ ] I am adding a new dependency

Please describe how your code solves the related issue.
Please write a short description of how your code change solves the related issue.

@sfc-gh-stan we're reverting this commit in branch release-v1.2.0. It will be included in the next version.


We want more hours in a day

We need more hours in a day. Provides more time to rest and recovery.

Yes please :-)


Library name change request

Library repository URL
https://github.com/RLL-Blue-Dragon/OSS-EC_NXP_MPXA4250A_00000057

Rename
Before) https://github.com/RLL-Blue-Dragon/NXP_MPXA4250A_00000057
after) https://github.com/RLL-Blue-Dragon/OSS-EC_NXP_MPXA4250A_00000057

Hi @RLL-Blue-Dragon. I am confirming your request.
Unlike submissions, this type of request is still handled manually. The Library Manager index maintainer occasionally comes through to clear all the outstanding requests. They will close this issue when it is done. You will get a notification from GitHub at that time.
After that, you can monitor the indexing of the library via its dedicated logs web page.
Information about that here:
https://github.com/arduino/library-registry/blob/main/FAQ.md#can-i-check-on-library-releases-being-added-to-library-manager

Done in https://github.com/arduino/library-registry/pull/1885#issuecomment-1259455512

Thank you!


Error sending the data

Hello,
thanks for this firmware this helps to understand a little more about espnow
I program the transmitter and receiver on tw esp32 dev
I copy the Mac from receiver into the FW for tranmitter (by the way I add now receiver MAC on Receiver FW in setup such to avoid having to run the GetMac before then flash the receiver FW)
Receiver is rebooting every second obviously no receiving)
Transmitter loop on "Error sending the data"
Any idea about what can be the pb ? I try with 2 other Dev board with same result
SCROLLING SERIAL MONITOR IFOUND OUT THIS :
20:34:28.022 -> Succes: Initialized ESP-NOW
20:34:28.022 -> E (334) ESPNOW: Peer interface is invalid
20:34:28.022 -> Failed to add peer

Can you send me receiver code which you changed ?
Also make sure to use rechargeable battery only if you are powering through
battery .
On Mon, 8 Aug 2022 at 8:09 AM, Francis @.***> wrote:

Hello,
thanks for this firmware this helps to understand a little more about
espnow
I program the transmitter and receiver on tw esp32 dev
I copy the Mac from receiver into the FW for tranmitter (by the way I add
now receiver MAC on Receiver FW in setup such to avoid having to run the
GetMac before then flash the receiver FW)
Receiver is rebooting every second obviously no receiving)
Transmitter loop on "Error sending the data"
Any idea about what can be the pb ? I try with 2 other Dev board with same
result
—
Reply to this email directly, view it on GitHub
https://github.com/un0038998/ESPNOW_Transmitter_Receiver/issues/1, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ASDSL56DLRN2IODK54WTYTDVYD2HXANCNFSM5544PWRQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

--
Thanks And Regards,
Ujwal Nandanwar
9920996698

#include <esp_now.h>
#include <WiFi.h>
#include <ESP32Servo.h>
#define SIGNAL_TIMEOUT 1000  // This is signal timeout in milli seconds. We
will reset the data if no signal
unsigned long lastRecvTime = 0;
struct PacketData
{
byte lxAxisValue;
byte lyAxisValue;
byte rxAxisValue;
byte ryAxisValue;
byte switch1Value;
byte switch2Value;
byte switch3Value;
byte switch4Value;
byte switch5Value;
byte switch6Value;
byte switch7Value;
byte switch8Value;
};
PacketData receiverData;
Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
int   led1 = 15;
int   led2 = 16;
int   led3 = 17;
int   led4 = 18;
int   led5 = 19;
int   led6 = 21;
int   led7 = 22;
int   led8 = 23;
//Assign default input received values
void setInputDefaultValues()
{
// The middle position for joystick. (254/2=127)
receiverData.lxAxisValue = 127;
receiverData.lyAxisValue = 127;
receiverData.rxAxisValue = 127;
receiverData.ryAxisValue = 127;
receiverData.switch1Value = LOW;
receiverData.switch2Value = LOW;
receiverData.switch3Value = LOW;
receiverData.switch4Value = LOW;
receiverData.switch5Value = LOW;
receiverData.switch6Value = LOW;
receiverData.switch7Value = LOW;
receiverData.switch8Value = LOW;
}
void mapAndWriteValues()
{
servo1.write(map(receiverData.lxAxisValue, 0, 254, 0, 180));
servo2.write(map(receiverData.lyAxisValue, 0, 254, 0, 180));
servo3.write(map(receiverData.rxAxisValue, 0, 254, 0, 180));
servo4.write(map(receiverData.ryAxisValue, 0, 254, 0, 180));
digitalWrite(led1, receiverData.switch1Value);
digitalWrite(led2, receiverData.switch2Value);
digitalWrite(led3, receiverData.switch3Value);
digitalWrite(led4, receiverData.switch4Value);
digitalWrite(led5, receiverData.switch5Value);
digitalWrite(led6, receiverData.switch6Value);
digitalWrite(led7, receiverData.switch7Value);
digitalWrite(led8, receiverData.switch8Value);
}
// callback function that will be executed when data is received
void OnDataRecv(const uint8_t * mac, const uint8_t *incomingData, int len)
{
if (len == 0)
{
return;
}
memcpy(&receiverData, incomingData, sizeof(receiverData));
mapAndWriteValues();
lastRecvTime = millis();
}
void setUpPinModes()
{
servo1.attach(27);
servo2.attach(26);
servo3.attach(25);
servo4.attach(33);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(led7, OUTPUT);
pinMode(led8, OUTPUT);
setInputDefaultValues();
mapAndWriteValues();
}
void setup()
{
setUpPinModes();
Serial.begin(115200);
WiFi.mode(WIFI_STA);

Serial.print("MAC :");  Serial.println(WiFi.macAddress());*
// Init ESP-NOW
if (esp_now_init() != ESP_OK)
{
Serial.println("Error initializing ESP-NOW");
return;
}
esp_now_register_recv_cb(OnDataRecv);
}

void loop()
{
//Check Signal lost.
unsigned long now = millis();
if ( now - lastRecvTime > SIGNAL_TIMEOUT )
{
setInputDefaultValues();
mapAndWriteValues();
Serial.println("No signal");
}
}
Le lun. 8 août 2022 à 23:10, Ujwal Nandanwar @.***> a
écrit :

Can you send me receiver code which you changed ?
Also make sure to use rechargeable battery only if you are powering through
battery .
On Mon, 8 Aug 2022 at 8:09 AM, Francis @.***> wrote:

Hello,
thanks for this firmware this helps to understand a little more about
espnow
I program the transmitter and receiver on tw esp32 dev
I copy the Mac from receiver into the FW for tranmitter (by the way I add
now receiver MAC on Receiver FW in setup such to avoid having to run the
GetMac before then flash the receiver FW)
Receiver is rebooting every second obviously no receiving)
Transmitter loop on "Error sending the data"
Any idea about what can be the pb ? I try with 2 other Dev board with
same
result
—
Reply to this email directly, view it on GitHub
https://github.com/un0038998/ESPNOW_Transmitter_Receiver/issues/1, or
unsubscribe
<
https://github.com/notifications/unsubscribe-auth/ASDSL56DLRN2IODK54WTYTDVYD2HXANCNFSM5544PWRQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

--
Thanks And Regards,
Ujwal Nandanwar
9920996698
—
Reply to this email directly, view it on GitHub
https://github.com/un0038998/ESPNOW_Transmitter_Receiver/issues/1#issuecomment-1208255165,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABX7RKWPDDLZZT64LQ64MPLVYEPNJANCNFSM5544PWRQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Francis RIQUET

I try firmware TX from
https://randomnerdtutorials.com/esp-now-esp32-arduino-ide/
now the receiver is stable
but if I use your FW I still have error for transmission....
When I quickly compare your FW I didn't notice so much difference
Can it it because I didn't connect any pot or button on the ESP32 ?
Le lun. 8 août 2022 à 23:43, francis riquet @.***> a écrit :

#include <esp_now.h>
#include <WiFi.h>
#include <ESP32Servo.h>
#define SIGNAL_TIMEOUT 1000  // This is signal timeout in milli seconds.
We will reset the data if no signal
unsigned long lastRecvTime = 0;
struct PacketData
{
byte lxAxisValue;
byte lyAxisValue;
byte rxAxisValue;
byte ryAxisValue;
byte switch1Value;
byte switch2Value;
byte switch3Value;
byte switch4Value;
byte switch5Value;
byte switch6Value;
byte switch7Value;
byte switch8Value;
};
PacketData receiverData;
Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
int   led1 = 15;
int   led2 = 16;
int   led3 = 17;
int   led4 = 18;
int   led5 = 19;
int   led6 = 21;
int   led7 = 22;
int   led8 = 23;
//Assign default input received values
void setInputDefaultValues()
{
// The middle position for joystick. (254/2=127)
receiverData.lxAxisValue = 127;
receiverData.lyAxisValue = 127;
receiverData.rxAxisValue = 127;
receiverData.ryAxisValue = 127;
receiverData.switch1Value = LOW;
receiverData.switch2Value = LOW;
receiverData.switch3Value = LOW;
receiverData.switch4Value = LOW;
receiverData.switch5Value = LOW;
receiverData.switch6Value = LOW;
receiverData.switch7Value = LOW;
receiverData.switch8Value = LOW;
}
void mapAndWriteValues()
{
servo1.write(map(receiverData.lxAxisValue, 0, 254, 0, 180));
servo2.write(map(receiverData.lyAxisValue, 0, 254, 0, 180));
servo3.write(map(receiverData.rxAxisValue, 0, 254, 0, 180));
servo4.write(map(receiverData.ryAxisValue, 0, 254, 0, 180));
digitalWrite(led1, receiverData.switch1Value);
digitalWrite(led2, receiverData.switch2Value);
digitalWrite(led3, receiverData.switch3Value);
digitalWrite(led4, receiverData.switch4Value);
digitalWrite(led5, receiverData.switch5Value);
digitalWrite(led6, receiverData.switch6Value);
digitalWrite(led7, receiverData.switch7Value);
digitalWrite(led8, receiverData.switch8Value);
}
// callback function that will be executed when data is received
void OnDataRecv(const uint8_t * mac, const uint8_t *incomingData, int len)
{
if (len == 0)
{
return;
}
memcpy(&receiverData, incomingData, sizeof(receiverData));
mapAndWriteValues();
lastRecvTime = millis();
}
void setUpPinModes()
{
servo1.attach(27);
servo2.attach(26);
servo3.attach(25);
servo4.attach(33);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(led7, OUTPUT);
pinMode(led8, OUTPUT);
setInputDefaultValues();
mapAndWriteValues();
}
void setup()
{
setUpPinModes();
Serial.begin(115200);
WiFi.mode(WIFI_STA);

Serial.print("MAC :");  Serial.println(WiFi.macAddress());*
// Init ESP-NOW
if (esp_now_init() != ESP_OK)
{
Serial.println("Error initializing ESP-NOW");
return;
}
esp_now_register_recv_cb(OnDataRecv);
}

void loop()
{
//Check Signal lost.
unsigned long now = millis();
if ( now - lastRecvTime > SIGNAL_TIMEOUT )
{
setInputDefaultValues();
mapAndWriteValues();
Serial.println("No signal");
}
}
Le lun. 8 août 2022 à 23:10, Ujwal Nandanwar @.***> a
écrit :

Can you send me receiver code which you changed ?
Also make sure to use rechargeable battery only if you are powering
through
battery .
On Mon, 8 Aug 2022 at 8:09 AM, Francis @.***> wrote:

Hello,
thanks for this firmware this helps to understand a little more about
espnow
I program the transmitter and receiver on tw esp32 dev
I copy the Mac from receiver into the FW for tranmitter (by the way I
add
now receiver MAC on Receiver FW in setup such to avoid having to run the
GetMac before then flash the receiver FW)
Receiver is rebooting every second obviously no receiving)
Transmitter loop on "Error sending the data"
Any idea about what can be the pb ? I try with 2 other Dev board with
same
result
—
Reply to this email directly, view it on GitHub
https://github.com/un0038998/ESPNOW_Transmitter_Receiver/issues/1, or
unsubscribe
<
https://github.com/notifications/unsubscribe-auth/ASDSL56DLRN2IODK54WTYTDVYD2HXANCNFSM5544PWRQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

--
Thanks And Regards,
Ujwal Nandanwar
9920996698
—
Reply to this email directly, view it on GitHub
https://github.com/un0038998/ESPNOW_Transmitter_Receiver/issues/1#issuecomment-1208255165,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABX7RKWPDDLZZT64LQ64MPLVYEPNJANCNFSM5544PWRQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Francis RIQUET

--
Francis RIQUET

My code should work as well .
Can you try the exact steps which I followed in video ?
Just use 2 esp32 boards and upload code. Make sure to set the Mac address
in transmitter code. And see if you are receiving data at receiver esp32.
Also the delay I used in transmitter is 50 milliseconds.
In random nerd tutorial he used 2 seconds which is too much .
Upload the print values receiver code and see if you receive data .
Follow the video properly and slowly .
If you get errors at transmitter sometimes , then May be it’s because of 50
milliseconds delay. But that’s fine. You can try increasing the delay but
your project will be slow .
On Mon, 8 Aug 2022 at 11:48 AM, Francis @.***> wrote:

I try firmware TX from
https://randomnerdtutorials.com/esp-now-esp32-arduino-ide/
now the receiver is stable
but if I use your FW I still have error for transmission....
When I quickly compare your FW I didn't notice so much difference
Can it it because I didn't connect any pot or button on the ESP32 ?
Le lun. 8 août 2022 à 23:43, francis riquet @.***> a écrit :

#include <esp_now.h>
#include <WiFi.h>
#include <ESP32Servo.h>
#define SIGNAL_TIMEOUT 1000 // This is signal timeout in milli seconds.
We will reset the data if no signal
unsigned long lastRecvTime = 0;
struct PacketData
{
byte lxAxisValue;
byte lyAxisValue;
byte rxAxisValue;
byte ryAxisValue;
byte switch1Value;
byte switch2Value;
byte switch3Value;
byte switch4Value;
byte switch5Value;
byte switch6Value;
byte switch7Value;
byte switch8Value;
};
PacketData receiverData;
Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
int led1 = 15;
int led2 = 16;
int led3 = 17;
int led4 = 18;
int led5 = 19;
int led6 = 21;
int led7 = 22;
int led8 = 23;
//Assign default input received values
void setInputDefaultValues()
{
// The middle position for joystick. (254/2=127)
receiverData.lxAxisValue = 127;
receiverData.lyAxisValue = 127;
receiverData.rxAxisValue = 127;
receiverData.ryAxisValue = 127;
receiverData.switch1Value = LOW;
receiverData.switch2Value = LOW;
receiverData.switch3Value = LOW;
receiverData.switch4Value = LOW;
receiverData.switch5Value = LOW;
receiverData.switch6Value = LOW;
receiverData.switch7Value = LOW;
receiverData.switch8Value = LOW;
}
void mapAndWriteValues()
{
servo1.write(map(receiverData.lxAxisValue, 0, 254, 0, 180));
servo2.write(map(receiverData.lyAxisValue, 0, 254, 0, 180));
servo3.write(map(receiverData.rxAxisValue, 0, 254, 0, 180));
servo4.write(map(receiverData.ryAxisValue, 0, 254, 0, 180));
digitalWrite(led1, receiverData.switch1Value);
digitalWrite(led2, receiverData.switch2Value);
digitalWrite(led3, receiverData.switch3Value);
digitalWrite(led4, receiverData.switch4Value);
digitalWrite(led5, receiverData.switch5Value);
digitalWrite(led6, receiverData.switch6Value);
digitalWrite(led7, receiverData.switch7Value);
digitalWrite(led8, receiverData.switch8Value);
}
// callback function that will be executed when data is received
void OnDataRecv(const uint8_t * mac, const uint8_t *incomingData, int
len)
{
if (len == 0)
{
return;
}
memcpy(&receiverData, incomingData, sizeof(receiverData));
mapAndWriteValues();
lastRecvTime = millis();
}
void setUpPinModes()
{
servo1.attach(27);
servo2.attach(26);
servo3.attach(25);
servo4.attach(33);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(led7, OUTPUT);
pinMode(led8, OUTPUT);
setInputDefaultValues();
mapAndWriteValues();
}
void setup()
{
setUpPinModes();
Serial.begin(115200);
WiFi.mode(WIFI_STA);

Serial.print("MAC :"); Serial.println(WiFi.macAddress());*

// Init ESP-NOW
if (esp_now_init() != ESP_OK)
{
Serial.println("Error initializing ESP-NOW");
return;
}
esp_now_register_recv_cb(OnDataRecv);
}
void loop()
{
//Check Signal lost.
unsigned long now = millis();
if ( now - lastRecvTime > SIGNAL_TIMEOUT )
{
setInputDefaultValues();
mapAndWriteValues();
Serial.println("No signal");
}
}
Le lun. 8 août 2022 à 23:10, Ujwal Nandanwar @.***> a
écrit :

Can you send me receiver code which you changed ?
Also make sure to use rechargeable battery only if you are powering
through
battery .
On Mon, 8 Aug 2022 at 8:09 AM, Francis @.***> wrote:

Hello,
thanks for this firmware this helps to understand a little more about
espnow
I program the transmitter and receiver on tw esp32 dev
I copy the Mac from receiver into the FW for tranmitter (by the way I
add
now receiver MAC on Receiver FW in setup such to avoid having to run
the
GetMac before then flash the receiver FW)
Receiver is rebooting every second obviously no receiving)
Transmitter loop on "Error sending the data"
Any idea about what can be the pb ? I try with 2 other Dev board with
same
result
—
Reply to this email directly, view it on GitHub
https://github.com/un0038998/ESPNOW_Transmitter_Receiver/issues/1,
or
unsubscribe
<

https://github.com/notifications/unsubscribe-auth/ASDSL56DLRN2IODK54WTYTDVYD2HXANCNFSM5544PWRQ

.
You are receiving this because you are subscribed to this
thread.Message
ID: @.***>

--
Thanks And Regards,
Ujwal Nandanwar
9920996698
—
Reply to this email directly, view it on GitHub
<
https://github.com/un0038998/ESPNOW_Transmitter_Receiver/issues/1#issuecomment-1208255165
,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/ABX7RKWPDDLZZT64LQ64MPLVYEPNJANCNFSM5544PWRQ

.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Francis RIQUET

--
Francis RIQUET
—
Reply to this email directly, view it on GitHub
https://github.com/un0038998/ESPNOW_Transmitter_Receiver/issues/1#issuecomment-1208298827,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASDSL56PZLPMRT24KZD52UDVYET4BANCNFSM5544PWRQ
.
You are receiving this because you commented.Message ID:
@.***>

--
Thanks And Regards,
Ujwal Nandanwar
9920996698

now this Tx firmware work good
/*
Francis RIQUET for SmartElectronic
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files.
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
*/
#include <esp_now.h>
#include <WiFi.h>
// REPLACE WITH YOUR RECEIVER MAC Address
uint8_t receiverMacAddress[] = {0xC8, 0xF0, 0x9E, 0x2F, 0x7F, 0x80};
//uint8_t broadcastAddress[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
// Structure to send data
// Must match the receiver structure
typedef struct struct_message {
byte lxAxisValue;
byte lyAxisValue;
byte rxAxisValue;
byte ryAxisValue;
byte switch1Value;
byte switch2Value;
byte switch3Value;
byte switch4Value;
byte switch5Value;
byte switch6Value;
byte switch7Value;
byte switch8Value;
} struct_message;
// Create a struct_message called myData
struct_message myData;
esp_now_peer_info_t peerInfo;
//***********************************************************************************************************************************
//***********************************************************************************************************************************
//This function is used to map 0-4095 joystick value to 0-254. hence 127 is the center value which we send.
//It also adjust the deadband in joystick.
//Jotstick values range from 0-4095. But its center value is not always 2047. It is little different.
//So we need to add some deadband to center value. in our case 1800-2200. Any value in this deadband range is mapped to center 127.
int mapAndAdjustJoystickDeadBandValues(int value, bool reverse)
{
if (value >= 2200)
{
value = map(value, 2200, 4095, 127, 254);
}
else if (value <= 1800)
{
value = (value == 0 ? 0 : map(value, 1800, 0, 127, 0));
}
else
{
value = 127;
}
if (reverse)
{
value = 254 - value;
}
Serial.println(value);
return value;
}
//***********************************************************************************************************************************
//***********************************************************************************************************************************
// callback when data is sent
void OnDataSent(const uint8_t mac_addr, esp_now_send_status_t status) {
Serial.print("\r\nLast Packet Send Status:\t");
Serial.println(status == ESP_NOW_SEND_SUCCESS ? "Delivery Success" : "Delivery Fail");
}
//**********************************************************************************************************************************
//***********************************************************************************************************************************
void setup() {
// Init Serial Monitor
Serial.begin(115200);
// Set device as a Wi-Fi Station
WiFi.mode(WIFI_STA);
// Init ESP-NOW
if (esp_now_init() != ESP_OK) {
Serial.println("Error initializing ESP-NOW");
return;
}
// Once ESPNow is successfully Init, we will register for Send CB to
// get the status of Trasnmitted packet
esp_now_register_send_cb(OnDataSent);
// Register peer
memcpy(peerInfo.peer_addr, receiverMacAddress, 6);
peerInfo.channel = 0;
peerInfo.encrypt = false;
// Add peer
if (esp_now_add_peer(&peerInfo) != ESP_OK){
Serial.println("Failed to add peer");
return;
}
}
//***********************************************************************************************************************************
//***********************************************************************************************************************************
void loop() {
// Set values to send
myData.lxAxisValue    = mapAndAdjustJoystickDeadBandValues(analogRead(32), false);
myData.lxAxisValue    = mapAndAdjustJoystickDeadBandValues(analogRead(32), false);
myData.lyAxisValue    = mapAndAdjustJoystickDeadBandValues(analogRead(33), false);
myData.rxAxisValue    = mapAndAdjustJoystickDeadBandValues(analogRead(34), false);
myData.switch1Value   = !digitalRead(15);
myData.switch3Value   = !digitalRead(17);
myData.switch5Value   = !digitalRead(19);
myData.switch6Value   = !digitalRead(21);
myData.switch7Value   = !digitalRead(22);
myData.switch8Value   = !digitalRead(23);
esp_err_t result = esp_now_send(receiverMacAddress, (uint8_t *) &myData, sizeof(myData));
if (result == ESP_OK)
{
Serial.println("Sent with success");
}
else
{
Serial.println("Error sending the data");
}
delay(50);
}

Awesome 👏🏻
On Tue, 9 Aug 2022 at 1:27 AM, Francis @.***> wrote:

now this Tx firmware work good
/*
Francis RIQUET for SmartElectronic
Permission is hereby granted, free of charge, to any person obtaining a
copy
of this software and associated documentation files.
The above copyright notice and this permission notice shall be included in
all
copies or substantial portions of the Software.
*/
#include <esp_now.h>
#include <WiFi.h>
// REPLACE WITH YOUR RECEIVER MAC Address
uint8_t receiverMacAddress[] = {0xC8, 0xF0, 0x9E, 0x2F, 0x7F, 0x80};
//uint8_t broadcastAddress[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
// Structure to send data
// Must match the receiver structure
typedef struct struct_message {
byte lxAxisValue;
byte lyAxisValue;
byte rxAxisValue;
byte ryAxisValue;
byte switch1Value;
byte switch2Value;
byte switch3Value;
byte switch4Value;
byte switch5Value;
byte switch6Value;
byte switch7Value;
byte switch8Value;
} struct_message;
// Create a struct_message called myData
struct_message myData;
esp_now_peer_info_t peerInfo;
//***********************************************************************************************************************************
//***********************************************************************************************************************************
//This function is used to map 0-4095 joystick value to 0-254. hence 127
is the center value which we send.
//It also adjust the deadband in joystick.
//Jotstick values range from 0-4095. But its center value is not always
2047. It is little different.
//So we need to add some deadband to center value. in our case 1800-2200.
Any value in this deadband range is mapped to center 127.
int mapAndAdjustJoystickDeadBandValues(int value, bool reverse)
{
if (value >= 2200)
{
value = map(value, 2200, 4095, 127, 254);
}
else if (value <= 1800)
{
value = (value == 0 ? 0 : map(value, 1800, 0, 127, 0));
}
else
{
value = 127;
}
if (reverse)
{
value = 254 - value;
}
Serial.println(value);
return value;
}
//***********************************************************************************************************************************
//***********************************************************************************************************************************
// callback when data is sent
void OnDataSent(const uint8_t
mac_addr, esp_now_send_status_t status) { Serial.print("\r\nLast Packet
Send Status:\t"); Serial.println(status == ESP_NOW_SEND_SUCCESS ? "Delivery
Success" : "Delivery Fail"); } //

//***********************************************************************************************************************************
void setup() {
// Init Serial Monitor
Serial.begin(115200);
// Set device as a Wi-Fi Station
WiFi.mode(WIFI_STA);
// Init ESP-NOW
if (esp_now_init() != ESP_OK) {
Serial.println("Error initializing ESP-NOW");
return;
}
// Once ESPNow is successfully Init, we will register for Send CB to
// get the status of Trasnmitted packet
esp_now_register_send_cb(OnDataSent);
// Register peer
memcpy(peerInfo.peer_addr, receiverMacAddress, 6);
peerInfo.channel = 0;
peerInfo.encrypt = false;
// Add peer
if (esp_now_add_peer(&peerInfo) != ESP_OK){
Serial.println("Failed to add peer");
return;
}
}
//***********************************************************************************************************************************
//***********************************************************************************************************************************
void loop() {
// Set values to send
myData.lxAxisValue = mapAndAdjustJoystickDeadBandValues(analogRead(32),
false);
myData.lxAxisValue = mapAndAdjustJoystickDeadBandValues(analogRead(32),
false);
myData.lyAxisValue = mapAndAdjustJoystickDeadBandValues(analogRead(33),
false);
myData.rxAxisValue = mapAndAdjustJoystickDeadBandValues(analogRead(34),
false);
myData.switch1Value = !digitalRead(15);
myData.switch3Value = !digitalRead(17);
myData.switch5Value = !digitalRead(19);
myData.switch6Value = !digitalRead(21);
myData.switch7Value = !digitalRead(22);
myData.switch8Value = !digitalRead(23);
esp_err_t result = esp_now_send(receiverMacAddress, (uint8_t *) &myData,
sizeof(myData));
if (result == ESP_OK)
{
Serial.println("Sent with success");
}
else
{
Serial.println("Error sending the data");
}
delay(50);
}
—
Reply to this email directly, view it on GitHub
https://github.com/un0038998/ESPNOW_Transmitter_Receiver/issues/1#issuecomment-1208931295,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASDSL5Y6IXSHLFYRBS62KTLVYHT5VANCNFSM5544PWRQ
.
You are receiving this because you commented.Message ID:
@.***>

--
Thanks And Regards,
Ujwal Nandanwar
9920996698

Ok, I will check.
the problem is on the transmitter side when trying to send data and gives
the error message  "Error sending the data"
I will compare and explore slowly to try to find where is PB
Le lun. 8 août 2022 à 23:59, Ujwal Nandanwar @.***> a
écrit :

My code should work as well .
Can you try the exact steps which I followed in video ?
Just use 2 esp32 boards and upload code. Make sure to set the Mac address
in transmitter code. And see if you are receiving data at receiver esp32.
Also the delay I used in transmitter is 50 milliseconds.
In random nerd tutorial he used 2 seconds which is too much .
Upload the print values receiver code and see if you receive data .
Follow the video properly and slowly .
If you get errors at transmitter sometimes , then May be it’s because of 50
milliseconds delay. But that’s fine. You can try increasing the delay but
your project will be slow .
On Mon, 8 Aug 2022 at 11:48 AM, Francis @.***> wrote:

I try firmware TX from
https://randomnerdtutorials.com/esp-now-esp32-arduino-ide/
now the receiver is stable
but if I use your FW I still have error for transmission....
When I quickly compare your FW I didn't notice so much difference
Can it it because I didn't connect any pot or button on the ESP32 ?
Le lun. 8 août 2022 à 23:43, francis riquet @.***> a écrit :

#include <esp_now.h>
#include <WiFi.h>
#include <ESP32Servo.h>
#define SIGNAL_TIMEOUT 1000 // This is signal timeout in milli seconds.
We will reset the data if no signal
unsigned long lastRecvTime = 0;
struct PacketData
{
byte lxAxisValue;
byte lyAxisValue;
byte rxAxisValue;
byte ryAxisValue;
byte switch1Value;
byte switch2Value;
byte switch3Value;
byte switch4Value;
byte switch5Value;
byte switch6Value;
byte switch7Value;
byte switch8Value;
};
PacketData receiverData;
Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
int led1 = 15;
int led2 = 16;
int led3 = 17;
int led4 = 18;
int led5 = 19;
int led6 = 21;
int led7 = 22;
int led8 = 23;
//Assign default input received values
void setInputDefaultValues()
{
// The middle position for joystick. (254/2=127)
receiverData.lxAxisValue = 127;
receiverData.lyAxisValue = 127;
receiverData.rxAxisValue = 127;
receiverData.ryAxisValue = 127;
receiverData.switch1Value = LOW;
receiverData.switch2Value = LOW;
receiverData.switch3Value = LOW;
receiverData.switch4Value = LOW;
receiverData.switch5Value = LOW;
receiverData.switch6Value = LOW;
receiverData.switch7Value = LOW;
receiverData.switch8Value = LOW;
}
void mapAndWriteValues()
{
servo1.write(map(receiverData.lxAxisValue, 0, 254, 0, 180));
servo2.write(map(receiverData.lyAxisValue, 0, 254, 0, 180));
servo3.write(map(receiverData.rxAxisValue, 0, 254, 0, 180));
servo4.write(map(receiverData.ryAxisValue, 0, 254, 0, 180));
digitalWrite(led1, receiverData.switch1Value);
digitalWrite(led2, receiverData.switch2Value);
digitalWrite(led3, receiverData.switch3Value);
digitalWrite(led4, receiverData.switch4Value);
digitalWrite(led5, receiverData.switch5Value);
digitalWrite(led6, receiverData.switch6Value);
digitalWrite(led7, receiverData.switch7Value);
digitalWrite(led8, receiverData.switch8Value);
}
// callback function that will be executed when data is received
void OnDataRecv(const uint8_t * mac, const uint8_t *incomingData, int
len)
{
if (len == 0)
{
return;
}
memcpy(&receiverData, incomingData, sizeof(receiverData));
mapAndWriteValues();
lastRecvTime = millis();
}
void setUpPinModes()
{
servo1.attach(27);
servo2.attach(26);
servo3.attach(25);
servo4.attach(33);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(led7, OUTPUT);
pinMode(led8, OUTPUT);
setInputDefaultValues();
mapAndWriteValues();
}
void setup()
{
setUpPinModes();
Serial.begin(115200);
WiFi.mode(WIFI_STA);

Serial.print("MAC :"); Serial.println(WiFi.macAddress());*

// Init ESP-NOW
if (esp_now_init() != ESP_OK)
{
Serial.println("Error initializing ESP-NOW");
return;
}
esp_now_register_recv_cb(OnDataRecv);
}
void loop()
{
//Check Signal lost.
unsigned long now = millis();
if ( now - lastRecvTime > SIGNAL_TIMEOUT )
{
setInputDefaultValues();
mapAndWriteValues();
Serial.println("No signal");
}
}
Le lun. 8 août 2022 à 23:10, Ujwal Nandanwar @.***> a
écrit :

Can you send me receiver code which you changed ?
Also make sure to use rechargeable battery only if you are powering
through
battery .
On Mon, 8 Aug 2022 at 8:09 AM, Francis @.***> wrote:

Hello,
thanks for this firmware this helps to understand a little more
about
espnow
I program the transmitter and receiver on tw esp32 dev
I copy the Mac from receiver into the FW for tranmitter (by the way
I
add
now receiver MAC on Receiver FW in setup such to avoid having to run
the
GetMac before then flash the receiver FW)
Receiver is rebooting every second obviously no receiving)
Transmitter loop on "Error sending the data"
Any idea about what can be the pb ? I try with 2 other Dev board
with
same
result
—
Reply to this email directly, view it on GitHub
<https://github.com/un0038998/ESPNOW_Transmitter_Receiver/issues/1
,
or
unsubscribe
<

https://github.com/notifications/unsubscribe-auth/ASDSL56DLRN2IODK54WTYTDVYD2HXANCNFSM5544PWRQ

.
You are receiving this because you are subscribed to this
thread.Message
ID: @.***>

--
Thanks And Regards,
Ujwal Nandanwar
9920996698
—
Reply to this email directly, view it on GitHub
<

https://github.com/un0038998/ESPNOW_Transmitter_Receiver/issues/1#issuecomment-1208255165

,

or unsubscribe
<

https://github.com/notifications/unsubscribe-auth/ABX7RKWPDDLZZT64LQ64MPLVYEPNJANCNFSM5544PWRQ

.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Francis RIQUET

--
Francis RIQUET
—
Reply to this email directly, view it on GitHub
<
https://github.com/un0038998/ESPNOW_Transmitter_Receiver/issues/1#issuecomment-1208298827
,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/ASDSL56PZLPMRT24KZD52UDVYET4BANCNFSM5544PWRQ
.
You are receiving this because you commented.Message ID:
@.***>

--
Thanks And Regards,
Ujwal Nandanwar
9920996698
—
Reply to this email directly, view it on GitHub
https://github.com/un0038998/ESPNOW_Transmitter_Receiver/issues/1#issuecomment-1208311711,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABX7RKXMEO3U7C5YEOTMJR3VYEVH5ANCNFSM5544PWRQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Francis RIQUET


⚠ Bofrost.at has degraded performance

In 25e16ef, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2498 ms

Resolved: Bofrost.at performance has improved in 4771078 after 6 minutes.


Add Share Button/Modal

Adds the option to include a Share Button + Modal on an article page.
Use shareable: true in an article’s options to add it to the bottom of the page. The modal uses the same information generated for the Facebook meta tags.
 Nice man. Looks good to go.

Looks good! Only question I have is whether pages should be shareable by default, with an option to disable? @annaquinlan what do you think? I don't have 100% context on this so I might be totally off-base.

Think we're good - I'm going to merge and :shipit:


Which Python versions should we support?

Currently, I think it's

python 2.7
python 3.3
python 3.4

Is 3.3 necessary?

numpy has os-x wheels on pypi for 27, 33, 34 (https://pypi.python.org/pypi/numpy). on the continuum default channels, packages come out for 26, 27, 33, and 34 (conda search scikit-learn | grep 0.15.2). From the download numbers on numpy (vanity numpy==1.9.1), it looks like py34 is more popular than py33, but I don't see any reason to remove it from our omnia-md/conda-recipes, given that it's already working.

The differences between 33 and 34 are small, so supporting it should be easy


Too many # pragma: no cover

In my opinion there are too many # pragma: no cover.
Don't try to have 100% coverage, but focus on writing useful tests.
The coverage report should be a tool for yourself, too many pragma no cover is kinda cheating.
I recommend to remove all of them. If the coverage gets very low, let's think about why is so low and let's plan how we can improve it.
Side note: I see you switched COV_REPORT from html to term-missing. That's OK, I just want to make sure you know how to read the html report.
If you use COV_REPORT := html, then you can easily visualise the coverage of your tests.
open htmlcov/index.html

(I use open on mac, I think it's xdg-open on linux. Alternatively, you can use your favourite browser, such as firefox htmlcov/index.html)

I put some more thought about it. I think you are right. I should remove all of them. I think I sort of miss the point of testing when I was writing the tests in a frenzy.
I am pretty happy with the actual coverage.


Clean up init method signature

Also (at least, what I think is a) minor "improvement" to readability in socket retrying loop.

Oh my goodness. Good catch.


adding tech sector and energy sector scripts

Thankyou so much for your time in contribution to this repository.I have merged the pull request,The results were really very intresting.

Really the results were very fascinating.Are you on linkedin?? Lets connect on it.And What you are currently pursuing??

I'm glad the results were interesting! I was working on testing out some stop-losses and some other things on the project recently too but haven't finished yet. But it's very interesting! I am on linkedin I'll add you there! Recently I was working in user research and data analysis

Can you send me a link to your linkedin?

https://www.linkedin.com/in/akshat-sharma-638b16219/


Add ecto.migrate command in the Readme.

PowEmailConfirmation creates a new migration file which is in effective after ecto.migrate task.

👍


 inside

Motivation
Currently, this doesn't work. Prism.highlightAll() does not find code blocks inside textarea blocks. Editable code can't be achieved?
Description
Editable code that is formatted in realtime
Alternatives
div with contentEditable="true" could substitute for some applications, but I couldn't get Prism.highlightAll() to run from an event handler. See sample code below EDIT: Nevermind. Example won't display right. Here is the example code on my server.
`

function newfunc(x){ console.log(x); } // a function that does stuff
function newfunc(x){ console.log(x); } // a function that does stuff
function newfunc(x){ console.log(x); } // a function that does stuff

`

I needed this too - so I wrote it: https://codebedder.com
You can't syntax highlight the text of a textarea, but you can make it transparent, overlay it on top of a syntax highlighted code block, and sync the text content, font, and scroll between the two. I even added an iframe with live preview.
I hope this minimal code editor helps someone else trying to do the same 🤞

You cannot include other HTML elements inside a <textarea> — that's a browser limitation. Anything inside <textarea> is text. But more fundamentally, a textarea is plain text, it cannot have highlighted areas and such.
There are many libraries built on top of Prism to enable editable textareas, such as Code bedder above, CodeFlask or Prism Live (which is very much WIP) and probably many others.


 Tbh I probably could have done a lot more here and many of the changes are more surface-level, but every little bit helps.

That was kind of cathartic

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

Project coverage is 27.00%. Comparing base (62b0c79) to head (76782d4).
Report is 2 commits behind head on main.

:exclamation:  There is a different number of reports uploaded between BASE (62b0c79) and HEAD (76782d4). Click for more details.
HEAD has 6 uploads less than BASE

Flag
BASE (62b0c79)
HEAD (76782d4)

7
1

Additional details and impacted files
@@             Coverage Diff             @@
##             main    #1588       +/-   ##
===========================================
- Coverage   73.12%   27.00%   -46.13%
===========================================
  Files         289      290        +1
  Lines       14175    14252       +77
===========================================
- Hits        10366     3849     -6517
- Misses       3809    10403     +6594

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


Catalog packages from source build.gradle during directory scans

What would you like to be added:
During directory scans (e.g. w/ the dir: scheme), let's scan build.gradle files on disk as a means of learning about dependencies, and let's surface those dependencies as packages. Today Syft does parse build.gradle files, but only within the context of .jar/.war/etc. files.
Available with Gradle is the ability to create a dependency graph via ./gradlew dependencies.
Why is this needed:
This allows for source code detection of dependencies, even when no dependencies have been installed yet.
Additional context:
For an example repo that has dependencies listed in pom.xml, check out: https://github.com/nedenwalker/spring-boot-app-using-gradle
Note: Once this issue is implemented, we should pull this into Grype to improve Grype's scans of local code repositories.

One note for developers — we may be able to deliver more value sooner by breaking this up into two iterations. Today, there's not a precedent in Syft for dynamic dependency look-ups via network calls.
The value of doing these look-ups is apparent, especially for developer-focused workflows. So we should strongly consider adding a system for this into Syft at some point.
But until then, a lighter weight improvement would be to surface dependencies that are listed explicitly, and accept that transient dependencies won't be discovered until the second iteration.

I've started working on this, I might also add #676 as well.

@bolshoytoster Wow, that's great — thanks! Let us know if we can do anything to help.

Nice, in researching this, also came across some mention that a Gradle lockfile can be created within a project, and so some users may have that. Maven apparently cannot have a lockfile. But we were going to run through this doc and see how it works with the demo spring boot app in the description: https://medium.com/@anthogez/improved-security-testing-for-git-based-gradle-projects-using-lockfile-f0af772a9e25

@luhring

Today, there's not a precedent in Syft for dynamic dependency look-ups via network calls.
I'll might have to implement this since the build.gradle file only includes dependency names and versions.

@bolshoytoster I followed the article I linked about adding a gradle dependency lockfile. My sense is that if a project has a gradle.lockfile present, then it could be used for scanning, without requiring any network calls. If not present, then network calls would be required as you mentioned.

@nedenwalker

@bolshoytoster I followed the article I linked about adding a gradle dependency lockfile. My sense is that if a project has a gradle.lockfile present, then it could be used for scanning, without requiring any network calls. If not present, then network calls would be required as you mentioned.

I can probably do that, I'm not entirely sure if the current package scanning system would allow that but I'll give it a try.

Today, there's not a precedent in Syft for dynamic dependency look-ups via network calls.

I might have to implement this since the build.gradle file only includes dependency names and versions.

Just a heads up, today syft takes the philosophy of not needing to reach out to external sources to enrich the SBOM results. We hope to start doing this in the future, as this would be extremely valuable, however, we need to add it in a way that makes sense for all ecosystems that syft supports.
That is, if we add this feature for java, extending the same concept to python, go, ruby, javascript, etc should be "easy" if the architecture is done correctly.
A good first step for this issue may be to add what can be added from the local files that are available first (though imperfect) and build from there. This would be consistent with the other ecosystem catalogers.

I've opened a pr for this (#707). It doesn't parse gradle.lockfile, I could add that if needed.
I wasn't sure about writing tests, so I left them out. Also the code could probably be optimised a bit more.
Aside from that, it works; it gets the name and version of each dependency and returns it as
pkg.Package{
    Name:         name,
    Version:      version,
    FoundBy:      "java-gradle-cataloger",
    Language:     pkg.Java,
    Type:         pkg.JavaPkg,
})

Hi there, just tested the flow again using the sample repo in the description. The directory scan continues to show no vulns. And then once the binary is built, vulns are found. PR #707 seems to partially address this? But it has only been merged into main and it has not been released yet? As it is, what would next steps be?

Hey @bolshoytoster! I saw you had closed https://github.com/anchore/syft/pull/707.
As of right now, we have merged in the pom.xml support. If you're interested I think we can call this issue closed after merging or working through any changes needed for https://github.com/anchore/syft/pull/707?
I'm happy to work with you on it. Also @nedenwalker if you're interested in reopening or helping with the grade.lockfile support that would be awesome!

Why not parse the output of ./gradlew dependencies itself instead of trying to parse Groovy?


Remove gradle task for uml diagram export puml2png

resolves #228
resolves #156

Closed because of nonconform branch naming.  see #229 for correct one.


Fixing error by removing missing legacy_get_updates_support decorator

Building keras-contrib in a jupyter/tensorflow-notebook causes the error:

AttributeError: module 'keras.legacy.interfaces' has no attribute 'legacy_get_updates_support'

This should fix that error.

Excellent, thank you for the merge!


feat(visits): add "request imaging button" that auto-populate imaging…

Changes proposed in this pull request:

Remove "add visit" button from visits tab (since there's one already) and add a "add imaging request" button instead
Implement logic that populates the fields in NewImagingRequest if the user is redirected there from the visits tab

Note: tests are not implemented yet, and some are failing because i removed some stuff without updating the tests, i want a clearance on the changes i made (about the feature), if everything is good, I'll implement the tests!

There should be a new button added to the patient visits page which allows a user to make a new imaging request quickly.

I cannot yet see where this was implemented on the visits page. I am guessing since a new imaging request is done against a patient's visit, I am guessing this would be a button on each visit line item under the Actions column. I'm checking with the UX/UI team on where the button should be placed
cc @lauggh @StefanoMiC @jackcmeyer

There should be a new button added to the patient visits page which allows a user to make a new imaging request quickly.

I cannot yet see where this was implemented on the visits page. I am guessing since a new imaging request is done against a patient's visit, I am guessing this would be a button on each visit line item under the Actions column. I'm checking with the UX/UI team on where the button should be placed
cc @lauggh @StefanoMiC @jackcmeyer

 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.

 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.


[FEATURE] Kafka different Version and Feature coverage.

This is an issue to summary different Kafka version coverage for other issues like #153, #118.
If there is new requirements, Please comments on this issue.
Currently based publish/consume covered :
Kafka 2.0.0
Clients in tests KafkaIntegrationTest:
golang-sarama(https://github.com/Shopify/sarama): v1.24.1;
golang-confluent-kafka (https://github.com/edenhill/librdkafka.git): v1.1.0;
node-rdkafka (https://github.com/edenhill/librdkafka.git): v1.2.2;
node-kafka-node (https://github.com/SOHU-Co/kafka-node): v5.0.0.
All the client images is under this dir;
Kafka 2.3.0
clients need added into integration tests:

add two new version :
C++:   https://github.com/edenhill/librdkafka/releases/tag/v1.0.0-PRE1  : v1.0.0-PRE1
Flink-Connector:   https://ci.apache.org/projects/flink/flink-docs-stable/dev/connectors/kafka.html    flink-connector-kafka_2.11  （which is Most widely used and maybe most populsar in future. ）

In my production env, the kafka clients are as follow:

客户端
版本

librdkafka
0.11.3, 1.0.0, 1.2.2

kafka-python
1.3.3, 1.4.3

pykafka
2.6.0, 2.7.0，2.8.0

kafka (python)
1.3.5

kafka-client
<IP_ADDRESS>, 1.0.0, 1.1.0, 2.0.0, 2.2.0, 2.4.0

flink-connector-kafka
flink-connector-kafka-0.11_2.11, flink-connector-kafka_2.11

looking forward to finish it

update ,
we also need go sarma : 1.13.0 which is used on our prod filebeat .

client
version

golang-sarama
1.13.0

+1

when I use C++ librdkafka-0.9.5 perf-tool name "rdkafka-performance" to check the kop of pulsar, it  cause pulsar can not product and consume message
use rdkafka-preformance product message
./rdkafka_performance -P -t t-32p -b ss-anping-pulsar-broker-1.tencent-distribute.com:9092  -s 256 -a 0 -c 80000000

then use pulsar-perf can't send message
./bin/pulsar-perf produce -r 8000000 -u pulsar://ss-anping-pulsar-discovery-1.tencent-distribute.com:6650 persistent://menshen-test/perf-e5/t-32p -threads 16 -o 500000  -p 500000 -s 256

10:39:28.476 [main] INFO  org.apache.pulsar.testclient.PerformanceProducer - Throughput produced: 495502.7  msg/s ---    967.8 Mbit/s --- failure      0.0 msg/s --- Latency: mean: 607.272 ms - med: 519.377 - 95pct: 1337.063 - 99pct: 1554.647 - 99.9pct: 1919.967 - 99.99pct: 1950.911 - Max: 1951.295
10:39:38.635 [main] INFO  org.apache.pulsar.testclient.PerformanceProducer - Throughput produced:      0.0  msg/s ---      0.0 Mbit/s --- failure      0.0 msg/s --- Latency: mean:   0.000 ms - med:   0.000 - 95pct:   0.000 - 99pct:   0.000 - 99.9pct:   0.000 - 99.99pct:   0.000 - Max:   0.000
10:39:48.672 [main] INFO  org.apache.pulsar.testclient.PerformanceProducer - Throughput produced:      0.0  msg/s ---      0.0 Mbit/s --- failure      0.0 msg/s --- Latency: mean:   0.000 ms - med:   0.000 - 95pct:   0.000 - 99pct:   0.000 - 99.9pct:   0.000 - 99.99pct:   0.000 - Max:   0.000
10:39:58.705 [main] INFO  org.apache.pulsar.testclient.PerformanceProducer - Throughput produced:      0.0  msg/s ---      0.0 Mbit/s --- failure      0.0 msg/s --- Latency: mean:   0.000 ms - med:   0.000 - 95pct:   0.000 - 99pct:   0.000 - 99.9pct:   0.000 - 99.99pct:   0.000 - Max:   0.000

pulsar: 2.5.0
kop:0.3.0
librdkafka:0.9.5


Add static header to Caddyfile

Tasks

[ ]

Writing the Issue

[ ] Write each task for this issue using checkboxes
[ ] Write all verbal instructions as tasks
[ ] Add labels and assignees

Before Working on the Issue

[ ] Assign yourself
[ ] Share your screen on Discord
[ ] Write which issue you are starting on Slack
[ ] Git: Fetch the latest main
[ ] Git: Create a branch with the name of the issue

Pre-PR Checks

[ ] Insure that changes include only what is necessary for this PR
[ ] Implement necessary Unit tests
[ ] Implement necessary E2E tests
[ ] Perform functionality checks

Test
GET https://sinpro.dev/icon-144.avif


ffmpeg error when create_dataset.py

OS: macOS
Device CPU
Setup Info PyTorch 0.4.1, Python 2.7

When I deal create_dataset.py
ffmpeg report so much erorr as
Application provided invalid, non monotonically increasing dts to muxer in stream 0: 1 >= 1

Setting ffmpeg -vsync to 1, 2, or drop seems to partly solve this problem. But they all drop frames if any timestamp (DTS/PTS) is incorrect.
With -vsync drop, I got 6947 training clips from adobe240fps.
Even with the latest ffmpeg master branch, this problem persists. I suspect we couldn't reproduce the same result as the author's. I'll try to modify dataset creation script to extract frames with opencv video stream...

Opencv extracted 8488 training clips, there are two videos dropped most of their frames - IMG_0179.m4v and GOPR9658.MP4, while most of the videos drop a small partion of frames.
Since IMG_0179.m4v and GOPR9658.MP4 do look problematic with MPC, I'm happy with the opencv results.

@xiedidan can you please share what modifications are to be done to use OpenCV? I am running into the same issue.


feat: [IDP-2799]: Added the API Endpoint to delete the Catalog components

Description

Please describe your changes: Added the API Endpoint to delete the Catalog components

PR lifecycle
PRs must meet these requirements to be merged:

[x] Successful preview build.
[ ] Code owner review.
[x] No merge conflicts.
[x] Release notes/new features docs: Feature/version released to at least one prod environment.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://663b7b4a7985291ea3e36494--harness-developer.netlify.app


Refactors calls to languages.setLanguageConfiguration to declarative descriptions in language-configuration.json

This fixes #98621.
Edit from @alexdima: Since a couple of milestones, it is possible to express everything in the language configuration files, including the wordPattern and the onEnterRules. It is preferable to express the language configuration in JSON because this allows those features to work even when the main extension is not activated.

Markdown changes look good. Should TypeScript also be updated?
https://github.com/microsoft/vscode/blob/d89e2e17a5d1ba37c99b1d3929eb6180a5bfc7a8/extensions/typescript-language-features/src/languageFeatures/languageConfiguration.ts#L58

I guess yes, but lets do that in another PR, otherwise this becomes a Frankenstein!
The typescript-basics language feature currently does not have separate language-configurations for ts and for tsx, however, the typescript-language-features registers different configurations for them.


New function implementations, documentation, cleanups

Add Huber, log logistic, rplus, and box functions
Add DVectorFunctions helpers
Add lasso example
Add additional unit tests
Add documentation
Many assorted cleanups

@staple I start reviewing this PR and I will ping you when I finish. Please do not update this PR in the middle. Thanks!

finished one pass

@mengxr Hi, ready for you to take another look when you have time.

LGTM


get-default-creds failing to find default profile

After generating an aws credentials file from an AD provider get-aws-creds returns an error that 'default profile could not be found'.
It seems that this is because the the get_mfa_serial_if_user raises an exception when it should just return false (having not found an mfa_serial)
Possibly related to #13 .

trial this commit before closing


Fixed a bug where packets would not be truncated if window size wasn't 0.

Hello, thank you for spotting this issue.


Checkbox button

Hello,
is there a plan to add support for - only select one checkbox in group?
https://stackoverflow.com/questions/9709209/html-select-only-one-checkbox-in-a-group
Also what do you think about changing colors for active/hover btn checkbox? They are the same now and it's not easy to differentiate is checked or not on hover when clicking.
Thanks

Hi @pnxsaz
I don't understand your usecase:

"only select one checkbox in group?"

What you are describing is a radio input not a checkbox. That behaviour is build in HTML.
I don't think checkboxes have hover state. Sorry I must be completely lost with your usecase

Behaviour is similar as radio button but allows to unselect.  There is an example at stackoverflow link. Component is https://getbootstrap.com/docs/4.0/components/buttons/#checkbox-and-radio-buttons.

I can understand the "allow to have either none or only one selected" use case (only way to do this with radio buttons is to have a neutral extra radio button acting as the "none"). Not sure how clear it would be to users, unless it's made explicit with the label/legend for the group

Not with radio but with checkbox button. Here is one more example from stackoverflow http://jsfiddle.net/X597P/

@pnxsaz that fiddle uses 3 lines of bootstrap compatible javascript to accomplish that.

Ok, I get it now. Thanks a lot for the clarification. Do you guys think this use case is common enough that it should belong in Bootstrap?
@pnxsaz To be honest I never had to deal with it that's why I might be biased, but I think this makes a perfect case for a bootstrap plugin project.

@andresgalante those are radio buttons, I meant checkbox. There is already button.js file/plugin which could be little bit changed and extended to add possible option.
Here is one more example.
Top radio button label is from B4.
Bottom checkbox button label is custom component which allows only one to be selected or none.
https://gyazo.com/52c7460f9aa954d9df6933bc2464c57b

Yeap I got it, you want to make checkboxes behave like radios.
My point is don't do it and this does not belong in bootstrap. Hacking HTML just because, is wrong.

@pat270 this isn't about the look, but behavior. anyway, it's marked as a feature request now. not sure if it's common enough to warrant inclusion into core bootstrap, leaving it up to the team/@mdo to decide (and then it'll need to be coded)

@andresgalante radio buttons will have one extra button to behave as non selected as you created the example. Checkbox buttons will not have that extra button. However the outcome is the same. There is similar discussion at stackoverflow link I provided in comment section in which I don't wish to go into 😉
Sometimes designers or developers wish to do something bit different. Is the number of views on that stackoverflow question relevant for this to be included I'm not sure. It's just a suggestion.
@bkdotcom just an example to try describing behaviour.

Please, don't add this feature to Bootstrap.

@alecpl agreed.
It's a huge UX anti-pattern.  Should you "need" this behavior for your site, it can easily be implemented with 3 lines of javascript.
For a framework that agonizes whether or not to change the cursor on button hover, this doesn't belong.

How about using validation?
Think about the more generalized case where you have multiple options but only certain combinations are possible; if the number of combinations is low you could do radio buttons for each one of them but otherwise checkboxes with validation might be the only sensible way.

This can be easily achieved with Angular Forms Validation. Somehow onChange set the other values to undefined from the array of options you have and that's it.

Will close this one as it seems to be too specific or confusing for user. Active/hover effect belong to different issue. Thanks for your feedback.


Removing Corona Stages

Until Corona starts working again and issues have been fixed (working with LC right now on this), disable Corona CI so that other PRs can pass through.

This may not be needed anymore. LC got back with me that pdebug has been freed up.


ISDK-2364: Add a Multi-Party Example

This PR adds a new example app focused on multi-party video conferencing and dominant speaker events. It also consumes twilio-video-ios-2.8.0.
I am posting this PR in draft form so we can start discussing the changes as a group. I will continue to work on some outstanding items in the MultiPartyViewÇontroller.
TODO

[x] Ability to mute / unmute local audio
[x] Disable user interaction timer in MultiPartyVC
[ ] Message label UI/UX
[ ] Hide navigation bar in MultiPartyVC
[ ] Add final screenshot to README.md

sounds like the app has some UI bugs -

I'm not sure what to make of the visual glitches. I tried to fix them, by insetting views which helped but still not great. When I hop in the view debugger the glitches go away...


Logging: Fault instruction address

Describe the bug
Every time power on, it will trigger the crash exception.
To Reproduce
Steps to reproduce the behavior:

mkdir build; cd build
west build -b nrf52840dk_nrf52840 zephyr/tests/bluetooth/mesh_shell/
west build -t menuconfig

Zephyr Kernel Version: 2.4.99
[00:00:17.732,574]  bt_mesh_crypto.bt_mesh_beacon_auth: BeaconKey 001245a59b55cee65ede2ecd3706dba~
[00:00:17.732,574]  bt_mesh_crypto.bt_mesh_beacon_auth: NetId c358e9488149e865
[00:00:17.732,574]  bt_mesh_crypto.bt_mesh_beacon_auth: IV Index 0x00000000
[00:00:17.732,604]  bt_mesh_crypto.bt_mesh_beacon_auth: BeaconMsg 00c358e9488149e86500000000
[00:00:17.733,123]  bt_mesh_proxy.bt_mesh_proxy_adv_stop: adv_enabled 0
[00:00:17.734,802]  bt_mesh_proxy.bt_mesh_proxy_gatt_enable:
[00:00:17.833,435]  os: r0/a1:  0x00000004  r1/a2:  0x0000006d  r2/a3:  0x200038d0
[00:00:17.833,465]  os: r3/a4:  0x00000001 r12/ip:  0x00000000 r14/lr:  0x00004e8b
[00:00:17.833,465]  os:  xpsr:  0x61000000
[00:00:17.833,496]  os: Faulting instruction address (r15/pc): 0x0002ef4c
[00:00:17.833,496]  os: >>> ZEPHYR FATAL ERROR 4: Kernel panic on CPU 0
[00:00:17.833,526]  os: Current thread: 0x20000e08 (logging)
[00:00:18.510,375]  os: Halting system
$: ~/zephyr-sdk-0.11.4/arm-zephyr-eabi/bin/arm-zephyr-eabi-addr2line -e zephyr/zephyr.elf -a 0x00004e8b
0x00004e8b
/home/lingao/zephyrproject/zephyr/subsys/shell/shell_log_backend.c:190

autoconf.zip

@trond-snekvik maybe you could take a look at this mesh-related test issue?

@trond-snekvik maybe you could take a look at this mesh-related test issue?

@ioannisg This error is happening on the logging thread, I can't quite see how the mesh shell module is interfering.
Deferring to shell module code owners, but I'll stick around in case there's something wrong in the mesh usage of shell.

@ioannisg This error is happening on the logging thread, I can't quite see how the mesh shell module is interfering.
Deferring to shell module code owners, but I'll stick around in case there's something wrong in the mesh usage of shell.

/home/lingao/zephyrproject/zephyr/subsys/shell/shell_log_backend.c:190:
https://github.com/zephyrproject-rtos/zephyr/blob/889e37b8d9918f28287a2b0dda2529910dd0c068/subsys/shell/shell_log_backend.c#L190
@LingaoM is this the same line you see on your local copy?

/home/lingao/zephyrproject/zephyr/subsys/shell/shell_log_backend.c:190:
https://github.com/zephyrproject-rtos/zephyr/blob/889e37b8d9918f28287a2b0dda2529910dd0c068/subsys/shell/shell_log_backend.c#L190
@LingaoM is this the same line you see on your local copy?

@LingaoM can you attach prj.conf file that was used. It is hard to compare autoconf.

@LingaoM can you attach prj.conf file that was used. It is hard to compare autoconf.


Split out 3rd party JS and CSS

Description
This splits out 3rd party node_modules js and css for better cache hits rates, both for the client and for the cloudfront CDN.
The new files loaded are:

Notes

See https://webpack.js.org/guides/code-splitting/

resulting files

main.bundle.min.css
main.bundle.min.css.map
main.bundle.min.js
main.bundle.min.js.map
vendors~main.bundle.min.css
vendors~main.bundle.min.css.map
vendors~main.bundle.min.js
vendors~main.bundle.min.js.map

There is another level of optimization we could do with code splitting where we only load assets on pages where needed.

And there is yet another level of optimization we could do with code splitting where we could split into the optimal number of files for http download.

Tests
webpack --config webpack.config.prod.js --verbose
see JS files generated add up to the same total size as before, 6.4 MB
load localhost, see site load normally

Did you end up checking how rails treats these bundles? Does the hash on the filename only change if contents change?

I didn't test that because it is stated clearly in the docs and it fits my experience with testing cloudfront. https://guides.rubyonrails.org/asset_pipeline.html#what-is-fingerprinting-and-why-should-i-care-questionmark


[Bug] 24-hour clock stopped working after update

Addon
Timezones
What happened?
After update 24-hour clock doesn't work, shows 12-hour clock regardless of the setting.
What Discord version do you have this issue on?
Stable
Logs
No response
Code of Conduct

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

Fixed in #84


[stable/redis-sentinel] Add Redis Sentinel chart

This PR adds a new Chart for creating Redis Sentinel cluster.
This chart aims for eliminating complexity of setting up Redis Cluster and using custom images.
You can easily create Redis Sentinel cluster from official Redis image

/ok-to-test

@KongZ I understand there may be issues with the other redis chart. Can or have you tried a pull request to that chart to fix those issues?

@mattfarina that means entire chart will be overridden with one PR. Is this OK?

@KongZ In the charts repo we try to avoid multiple charts using the same underlying software in the same way. In the near future we will have a setup that enables that but it's different from here.
Can you connect with the maintainers of the other redis chart about changes?

+1 for this


Caps lock detection

Add the ability to check if caps lock is on to Windows and Linux. Mac always returns false (unable to find documentation for the check on OS X), and mobile implementations don't seem to have a isKeyPressed function.

What's the rational for this? It was discussed before at least on the forum -- in a nutshell, CapsLock isn't useful for the current event system: it's a modifier, not really a key. You most likely might prefer using TextEntered event instead. The scancode API will probably deal with this anyway. The procedure to open feature requests is explained in the contribution guidelines.

Sorry, didn't notice that.

Also, in retrospect this was a very localized need.


Forkable example projects

We'd ideally have projects which users can clone/fork or just 'test drive' with a devcontainer definition.

@sbalnojan This seems related to things you're working on. Is there another issue we should be working out of? If so I can go ahead and close this one.
For context, this was an idea that came up in a meeting with Engineering so it's not a fully fleshed out idea. In general we'd just like to have more projects that people can learn from.

@afolson  Not sure yet. https://github.com/meltano/hub/issues/210 is also related.
I'll assign myself and see after finishing https://github.com/meltano/internal-marketing/issues/613 what makes sense afterwards (and what is still needed).


Fix the bug where instance could reclaim all of its leaving shards

In very rare case, the leaving shards could not be taken back due to rack conflicts.
For example, in a RF=2 case, instance a and b on rack1, instance c on rack2, instance d on rack3,
a and c owns shard 1,
Remove a and c:
1, a give shard 1 to d
2, c give shard 1 to b
Add a and c back:
Now if a tries to get shard 1 back from d there will be a rack conflict because b(on the same rack with a) owns shard 1 as well.
This rack conflict can be resolved by having c take the shard back from b first, then a can take the shard back from d without rack conflict.
This diff introduces a loop that retries the shard reclaiming process as long as some instance are still making progress.
@xichen2020 @prateek @jeromefroe

Coverage increased (+0.003%) to 84.261% when pulling 608726608e14b73e78183e98d48bf32933cfd7e6 on chao-bug-fix into 38aeb9dc311c61540b5fa3bee6d59f58daadf789 on master.

@cw9 I think we should take this chance to write some property tests for m3cluster. We've been adding to m3db recently. They're great at catching these kinds of issues.

@prateek interesting, will look into that

Coverage decreased (-0.1%) to 84.137% when pulling 704a2dea78835c6319dfb08c4f55cb687994fabe on chao-bug-fix into 38aeb9dc311c61540b5fa3bee6d59f58daadf789 on master.


what is best practice to process collisions in planck?

There is an example I found in http://piqnt.com/planck.js/8-Ball with this code:
world.on('post-solve', function(contact) {
    var fA = contact.getFixtureA(), bA = fA.getBody();
    var fB = contact.getFixtureB(), bB = fB.getBody();

    var pocket = fA.getUserData() === pocketFixDef.userData && bA || fB.getUserData() === pocketFixDef.userData && bB;
    var ball = fA.getUserData() === ballFixDef.userData && bA || fB.getUserData() === ballFixDef.userData && bB;

    // do not change world immediately
    setTimeout(function() {
      if (ball && pocket) {
        world.destroyBody(ball);
      }
    }, 1);
  });

So, what is best practice to process collisions in planck? For example I have a multiple bodies with multiple fixtures and I want to listen only 2 bodies was collided. How to achive that?

You are correct, that's how you can listen to collisions (listen to collisions and check if it is between bodies you are interested in).
World is not supposed to change when a 'step' is in progress, so 'setTimeout' is a simple hack to postpone changes. You could also put bodies to be removed in an array and remove them after step is finished.

@shakiba thanks! But when step is finished? is it sync method? When should I call destroyBody?

Generally speaking anywhere outside world's callback/events would work.


ain(vowel) should retain the 'n' sound

Looks good to me. Same old "can you add the relevant unit test, please" :)


Add mechanism to find free-space inside a rom

Freespace finding is crucial, need to provide a way to do it. Depends on #3

Closed with PR #18


Added web profiler and toolbar

As mentioned in #3.
This PR implements a web debug toolbar. It uses the HistoryPlugin.

very cool! i am impressed how simple this looks!

very cool! i am impressed how simple this looks!

Thank you. So am I. I barley wrote any code just some clue to make Httplug\* classes talk with Symfony.

Thank you for your feedback. I've updated the PR.

Sorry, CS fixes probably introduced a few conflicts.

No worries, I've updated the PR.

Cool. How far is it? I am eager to try it in a project. :smile:

I'm done with the implementation, I've received a lot feedback and made some improvements. I have addressed all the issues that were brought up. Now Im waiting for @dbu to give this PR the final thumbs up.

Cool.

thanks a lot for this one, good job!

:+1:

Thank you for merging. I'm also very exited to try this in a project =)


Create a single SHA for patch releases

This script generates a single SHA for patch releases - with the changelog, readme and other sources in the releasable state
Creates a separate branch for the BOM releases - with the snapshot of the version_client.txt file.
Generates a report containing the name of the branches (one for BOM and other for artifacts) and the name of each artifact that needs to be patched.

Fixes #28535

@JimSuplizio I have updated the pipeline trigger. Let me know if you have any other concerns. I have also set the PR to auto-merge so unless you have any other comments, your approval will merge this PR.
/cc: @vcolin7, @srnagar


Type inference tests are unreasonable slow

Many type inference tests take on the order of 100 ms:
0.088s test tests::regression::issue_2683_chars_impl ...
0.089s test tests::traits::argument_impl_trait_type_args_1 ...
0.090s test tests::traits::generic_param_env_1 ...
0.091s test tests::traits::argument_impl_trait ...
0.092s test syntax_highlighting::tests::test_highlighting ...
0.094s test tests::simple::infer_generic_chain ...
0.094s test tests::traits::proc_macro_server_types ...
0.095s test inlay_hints::tests::omitted_parameters_hints_heuristics ...
0.095s test tests::regression::issue_4053_diesel_where_clauses ...
0.095s test tests::simple::infer_argument_autoderef ...
0.095s test tests::simple::infer_method_argument_autoderef ...
0.096s test tests::regression::issue_4966 ...
0.097s test tests::traits::infer_box_fn_arg ...

It seems unreasonable that we take almost 100ms (even in debug) for this:
#[test]
fn generic_param_env_1() {
    check_types(
        r#"
trait Clone {}
trait Trait { fn foo(self) -> u128; }
struct S;
impl Clone for S {}
impl<T> Trait for T where T: Clone {}
fn test<T: Clone>(t: T) { t.foo(); }
                             //^ u128
"#,
    );
}

Full results are here:
https://gist.github.com/matklad/07260b610e05b4815c9c4993abc1cdf5

Aha, @hawkw, @davidbarsky, seems like this is another case of "@matklad complains about tracing being slow in weird scenarios": seems like tracing makes debug code slow, which adds up to substantial overhead when running tests.
See this commit for a reproducible example: https://github.com/matklad/rust-analyzer/commit/363d821958c0b7d96b0dcac08025ad4cb6084164
To be clear, I'm absolutely ok with this being "won't fix, not an explicit design goal", b/c optimizing debug perf does seems a bit weird. But I thought you might want to be aware.

EDIT: hm, let me check if this just amortizes over many tests...

Some more numbers:
For the whole test-suite of ~300 tests , the difference 2.87s vs 2.16ms. This is much less of a difference, but still, 25% overhead is bigger than what I'd naively expect to see.
The overhead for single test in release seems even bigger:
844.55µs vs  5.77ms
The results for the whole suite in --release is
0.51s vs 0.35s
which is perhaps the most worrying bit
Finally, if I manually check if env-var is set before enabling tracing, the overhead goes away:
https://github.com/rust-analyzer/rust-analyzer/commit/8115bef76a4ef5bd82ad7b33261f6f2e50855af4
TO be clear, the CHALK_DEBUG var is not set, the observed overheads are from disabled tracing.

Also, I can not help by notice that EnvFilter::from_env calls a whole bunch of generic code, which slows down consumer's compile times. It might be a good idea to delegate from generic functions to non-generic ones :)

Thanks for digging into this! Acknowledging that I saw this and making this reproducible. I haven't had the time do dig into this yet.

Hmm, this is definitely worth digging into. Thanks for tagging me!

For the whole test-suite of ~300 tests , the difference 2.87s vs 2.16ms. This is much less of a difference, but still, 25% overhead is bigger than what I'd naively expect to see.

I think the 2.16 ms is a typo, but just to be sure, are we actually taking the test suite's runtime from milliseconds to seconds? If that's the case, this seems really incredibly bad...
I checked the lockfile, and it looks like rust-analyzer is on the latest tracing version, that's a bummer --- I was hoping this could be solved by saying "just update to the latest".

Finally, if I manually check if env-var is set before enabling tracing, the overhead goes away:

This is somewhat surprising; the fast path for "no subscriber" and the fast path for "disabled by the subscriber's max level filter" should be only a couple of instructions different...I'll have to do a quick disassembly to make sure that's the case...
Alternatively, I wonder how much of the overhead is constructing the filter/subscriber, as you pointed out. We should look into that, as well.

@hawkw oops, that should be s, not ms of course.

Okay, that, at least, is a little bit less scary. :)
I'm working on digging into some generated assembly for the macros, and I may have some changes for you to try out in a bit!

@hawkw I'll probably won't be able to try them out today (next ~8 hours), but https://github.com/matklad/rust-analyzer/commit/363d821958c0b7d96b0dcac08025ad4cb6084164 contains all the required repro instructions (rust-analyzer is easy to build)

I did some playing around with your reproduction, and it looks like basically all the overhead here is from constructing the subscriber Registry itself.
On my machine, running the tests with setup_tracing commented out entirely gets me:
running 1 test
total: 15.986421ms
test tests::traits::generic_param_env_1 ... ok

and if I don't comment it out, I get
running 1 test
total: 43.29042ms
test tests::traits::generic_param_env_1 ... ok

Now here's where it gets interesting: if I comment out the construction of the HierarchicalLayer and the EnvFilter, so that setup_tracing looks like this:
fn setup_tracing() -> tracing::subscriber::DefaultGuard {
    use tracing_subscriber::{layer::SubscriberExt, EnvFilter, Registry};
    use tracing_tree::HierarchicalLayer;
    // let filter = EnvFilter::from_env("CHALK_DEBUG");
    // let layer = HierarchicalLayer::default()
    //     .with_indent_lines(true)
    //     .with_ansi(false)
    //     .with_indent_amount(2)
    //     .with_writer(std::io::stderr);
    let subscriber = Registry::default() /* .with(filter).with(layer) */;
    tracing::subscriber::set_default(subscriber)
}

...the test takes just as long:
running 1 test
total: 43.691158ms
test tests::traits::generic_param_env_1 ... ok

On the other hand, if I don't construct a Registry, but still construct the filter and HierarchicalLayer, and still call set_default with a clone of the current (no-op) default subscriber, like this:
fn setup_tracing() -> tracing::subscriber::DefaultGuard {
    use tracing_subscriber::{layer::SubscriberExt, EnvFilter, Registry};
    use tracing_tree::HierarchicalLayer;
    let filter = EnvFilter::from_env("CHALK_DEBUG");
    let layer = HierarchicalLayer::default()
        .with_indent_lines(true)
        .with_ansi(false)
        .with_indent_amount(2)
        .with_writer(std::io::stderr);
    drop(filter);
    drop(layer);
    // let subscriber = Registry::default().with(filter).with(layer);
    tracing::dispatcher::set_default(&tracing::Dispatch::default())
}

it's only a teensy bit slower than when we were not calling setup_tracing at all (and that may be noise!):
running 1 test
total: 16.625329ms
test tests::traits::generic_param_env_1 ... ok

So, this strongly suggests that we are spending the remaining ~26ms constructing the Registry itself. Which is definitely not great!
Optimizing the performance of constructing a Registry is not really something we've prioritized so far. They tend to be long-lived and constructed near when the program starts, so constructing one is not generally a hot path. However, I hadn't really thought about unit tests where each test constructs its own subscriber, because a single Registry construction at the beginning of the test suddenly has a much bigger impact!
We should probably try to improve the performance of registry construction for other folks who are building a subscriber per test...especially since that's what I generally tend to recommend for using tracing in tests. It could be worth opening an issue against the tracing issue tracker for this.

My guess is that this line probably dominates Registry construction pretty significantly: https://github.com/hawkw/sharded-slab/blob/8c84f7beb78b20a30aa043da9022364dffff5a1a/src/lib.rs#L268
I think there are potential upstream changes to sharded-slab we can make to improve this. Right now, each shard is initialized eagerly, which wastes a lot of time. We could improve that by initially allocating a MaybeUninit and incrementally initializing new shards as new threads access the slab.  Or, perhaps, we could construct an empty Vec using with_capacity, and push new shards to it when they're needed, so that Vec manages the uninitialized memory for us. However, the downside of that approach is that Vec::push does an unsynchronized add to the vec's length field, so we'd need to add locking here, which is probably a non-starter...

I guess there's maybe a simpler fix here? The filter is trivial, so I think
the Register itself can be patched to only actually do something after it
saw the filter? Not sure how the types are set-up here, but it seems like
it should be possible to delay all the actual work until the call to
set_default, where we can say: "oops, the Filter is trivial, guess we
have nothing to do"?
On Thu, 20 Aug 2020 at 01:02, Eliza Weisman<EMAIL_ADDRESS>wrote:

My guess is that this line probably dominates Registry construction
pretty significantly:
https://github.com/hawkw/sharded-slab/blob/8c84f7beb78b20a30aa043da9022364dffff5a1a/src/lib.rs#L268
I think there are potential upstream changes to sharded-slab we can make
to improve this. Right now, each shard is initialized eagerly, which wastes
a lot of time. We could improve that by initially allocating a MaybeUninit
and incrementally initializing new shards as new threads access the slab.
Or, perhaps, we could construct an empty Vec using with_capacity, and push
new shards to it when they're needed, so that Vec manages the
uninitialized memory for us. However, the downside of that approach is that
Vec::push does an unsynchronized add
https://doc.rust-lang.org/src/alloc/vec.rs.html#1206 to the vec's
length field, so we'd need to add locking here, which is probably a
non-starter...
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/rust-analyzer/rust-analyzer/issues/5792#issuecomment-676798623,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AANB3MYDDGK4TTWGNWCPD7DSBRKZZANCNFSM4QDFPEKQ
.


Replace zig in the cross-compile process with GCC cross-compiler toolchains

Basically we want to use these instead: http://musl.cc/#binaries
Upgrading to zig 0.12 doesn't work when compiling Grafana to arm64 and it's best if we're not locked into a version that isn't likely to be updated.

If we can accomplish https://github.com/grafana/grafana/issues/87327 then we won't need to do this as we'll be able to stop building with CGO 😉


Add Vietnamese language stop words

Add Vietnamese

@hothanhluan Thank you very much for the contribution.
I've merged it right away,


ENH: make custom model definition simpler

Is your feature request related to a problem? Please describe
For ggml models, provide an URI of the bin file is enough.

#420


Event Handling

How do I handle click/touch/drag events?
And make my object react according to these events?

Click, touch, and drag events can be used as specified in Foundation HTML5 Animation, see chapter 7.
Handling user interaction is not in the scope of this library.
Referencing the library description from the README, it is used only to draw.
Rough.js is a light weight (~8k), Canvas based library that lets you draw in a sketchy,
hand-drawn-like, style. The library defines primitives to draw lines, curves, arcs,
polygons, circles, and ellipses. It also supports drawing SVG paths.

There may be other frameworks as @BrianDGLS suggested that you can use with canvas for that. The goal here is to provide drawing primitives that could work with anything else you may want to use.
Note that I am planning a pure SVG renderer for RoughJS as well which will generate SVG nodes rather than draw on canvas. With those, you can use standard DOM event handling.

Any examples there to use native dom events.... Would be nice in main readme?


Dependency resolution fails when there's a --pre dependency

If a dependency depends on a beta version of another dependency, and that dependency is also required for my project, dependency resolution fails.
Sorry, that's probably very hard to read, assume this:

myapp depends on mylib
mylib depends on anotherlib >=1.0b1
run pipenv install anotherlib (unpinned).

It fails to dependency resolution; although it's clear that 1.0b1 should be used in this case.
If you'd like to create a real example to try this out:
$ mkdir test-123
$ cd test-123
$ pipenv install django-afip
$ pipenv install pybarcode
Could not find a version that matches pybarcode==0.7,>=0.8b1
Tried: 0.5.1, 0.6, 0.7, 0.8b1

The reason that I'm mentioning/installing the transitive dependency is because it's explicitly used in my project -- I don't  include transitive dependencies in general, but since it's explicitly being used, it makes sense to do so.
Note that the same scenario can also occur is two of my dependencies depend on a same third dependency, one being pre-relase:

mylib1 depends on otherlib>=1.0b1
mylib2 depends on otherlib

Can you try pipenv lock --pre on your pipfile and then pipenv install.  Or pipenv install --pre anotherlib?

@erinxocon Same issue.
$ pipenv lock --pre
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Updated Pipfile.lock (003755)!
$ cat Pipfile
[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"

[packages]
"django-afip" = "*"

[dev-packages]
$ pipenv install pybarcode
Installing pybarcode…
Requirement already satisfied: pybarcode in /home/hugo/.local/share/virtualenvs/1234-EvxseC16/lib/python3.6/site-packages

Adding pybarcode to Pipfile's [packages]…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  You can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
Could not find a version that matches pybarcode==0.7,>=0.8b1
Tried: 0.5.1, 0.6, 0.7, 0.8b1

Note: django-afip depends on pybarcode>=0.8b1.

I conducted the following test with the pipfile you provided.  I did pipenv lock --pre before I did the pipenv install --three.
test » pipenv install --three                                                                         ~/repos/test
Virtualenv already exists!
Removing existing virtualenv…
Creating a virtualenv for this project…
Using /home/erin/usr/local/bin/python3 to create virtualenv…
⠋Running virtualenv with interpreter /home/erin/usr/local/bin/python3
Using base prefix '/home/erin/usr/local'
New python executable in /home/erin/.local/share/virtualenvs/test-D4unD70y/bin/python3
Also creating executable in /home/erin/.local/share/virtualenvs/test-D4unD70y/bin/python
Installing setuptools, pip, wheel...done.

Virtualenv location: /home/erin/.local/share/virtualenvs/test-D4unD70y                                              Installing dependencies from Pipfile.lock (56b330)…
  🐍   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 35/35 — 00:00:59
To activate this project's virtualenv, run the following:
 $ pipenv shell
test » pipenv install pybarcode                                                                       ~/repos/test
Installing pybarcode…
Requirement already satisfied: pybarcode in /home/erin/.local/share/virtualenvs/test-D4unD70y/lib/python3.6/site-packages

Adding pybarcode to Pipfile's [packages]…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  You can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
Could not find a version that matches pybarcode==0.7,>=0.8b1
Tried: 0.5.1, 0.6, 0.7, 0.8b1
test » pipenv install pybarcode --pre                                                              ~/repos/test 1 ↵
Installing pybarcode…
Requirement already satisfied: pybarcode in /home/erin/.local/share/virtualenvs/test-D4unD70y/lib/python3.6/site-packages

Adding pybarcode to Pipfile's [packages]…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Updated Pipfile.lock (003755)!
test »

I can reproduce your error, but that is intentional.  When you do pipenv install pybarcode, it tries to install the most recent non prerelease version.  When it tries to add the latest version to the pipfile, it see's that there is an already later version there, hence showing you the dependency error.  This is expected.  You will see at the end when I do pipenv install pybarcode --pre, it succeeds when it locks as that version doesn't conflict with the prerelease version in the pipfile.

The main problem here is when one dependency requires somelib>=0.7, and another specifies somelib>=0.8b1, since there's not so much I can do about it.

Actually, the situation is a lot worse than that. If a single dependency depends on another --pre dependency, once both are installed any further uninstall operations also fail, since it seems that pipenv fails to generate the lock file.

I think in this case, pipenv can't really do anything about it but warn you and tell you to do --skip-lock.  pip would have a conflict as well due to that situation, and if it didn't have a conflict then I'm sure once you started to run the program you'd run into conflicting packages.  That's just my theory though.  I'm gonna tag @nateprewitt or @kennethreitz here to give a second (more wise) opinion :)

That is correct. You need to fix the conflict before we can proceed, currently.

My scenario in my last comment doesn't have any conflicts though.


[DOCS] Add support for Apache Doris and StarRocks

Change Logs
Describe context and summary for this change. Highlight if any code was copied.
Impact
Describe any public API or user-facing feature change or any performance impact.
Risk level: none | low | medium | high
Choose one. If medium or high, explain what verification was done to mitigate the risks.
Contributor's checklist

[ ] Read through contributor's guide
[ ] Change Logs and Impact were stated clearly
[ ] Adequate tests were added if applicable
[ ] CI passed

guess for hudi 10.0 or above, guess there is some minimal version of Redshift spectrum one has to use. can you add those details please

@nsivabalan  thanks for noting that. I can followup on redshift spectrum separately in a different PR after gathering those details. If nothing else is blocking can you approve this one ?

@nsivabalan  PR for redshift spectrum fix here- https://github.com/apache/hudi/pull/6577


Support for CoerceValueCallback in Source Generator

The Fody variant of this package is marked as deprecated on NuGet, but it seems like the Source Generator version can not yet replace all usage scenarios, as there is currently no support for CoerceValueCallback/OnCoerceValue.
Would be great if the new package had feature parity, or an alternative/workaround was acknowledged in the README.

You can always use the standard WPF way of defining dependency properties.
Also a PR is always welcome.

@notanaverageman  I've never worked with Source Generators before, but I made an attempt #24.


Highlighting lines only gives an option to run the entire file

Highlighting lines only gives an option to run the entire file

@chipkent we moved that functionality to a hover provider, so if you hover the selection you should see a "Run Deephaven selected lines" button:

That was done with https://github.com/deephaven/vscode-deephaven/pull/110
The issue with the code lens is it caused things to shift around and you could accidentally trigger it when selecting/reselecting some text.
@bmingles maybe we should be using a Code Action provider instead? https://microsoft.github.io/monaco-editor/typedoc/functions/languages.registerCodeActionProvider.html
In any case @chipkent it won't appear as a code lens, as those aren't great to change around when selection is changing in a doc. Run Deephaven File at the top is still provided as a code lens for convenience, as it doesn't appear/disappear/move the document around when you change selection.