App manifest 1.19 and devPreview October updates

Note: Requirements Targeting changes covered here: https://github.com/MicrosoftDocs/msteams-docs/pull/11018
Updates for 1.19 and devPreview manifest references:

copilotExtensions > copilotAgents
defaultLocalizationFile

Also updated:

Updated loc schema reference from 1.16 to 1.19 (1.17 changes included)
What's new (Preview, GA)
Link to Copilot agent loc guidance from Teams loc article

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/resources/schema/manifest-schema-dev-preview.md
85
129
link
:white_check_mark:

msteams-platform/resources/schema/manifest-schema.md
86
113
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/resources/schema/manifest-schema-dev-preview.md
85
129
link
:white_check_mark:

msteams-platform/resources/schema/manifest-schema.md
86
113
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/concepts/build-and-test/apps-localization.md
88
11
link
:white_check_mark:

msteams-platform/resources/schema/localization-schema.md
99
4
link
:white_check_mark:

msteams-platform/resources/schema/manifest-schema-dev-preview.md
85
129
link
:white_check_mark:

msteams-platform/resources/schema/manifest-schema.md
86
113
link
:white_check_mark:

msteams-platform/whats-new.md
90
91
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/concepts/build-and-test/apps-localization.md
88
11
link
:white_check_mark:

msteams-platform/resources/schema/localization-schema.md
99
4
link
:white_check_mark:

msteams-platform/resources/schema/manifest-schema-dev-preview.md
85
130
link
:white_check_mark:

msteams-platform/resources/schema/manifest-schema.md
86
114
link
:white_check_mark:

msteams-platform/whats-new.md
90
91
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/concepts/build-and-test/apps-localization.md
88
11
link
:white_check_mark:

msteams-platform/resources/schema/localization-schema.md
99
4
link
:white_check_mark:

msteams-platform/resources/schema/manifest-schema-dev-preview.md
85
130
link
:white_check_mark:

msteams-platform/resources/schema/manifest-schema.md
86
114
link
:white_check_mark:

msteams-platform/whats-new.md
90
91
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/concepts/build-and-test/apps-localization.md
88
11
link
:white_check_mark:

msteams-platform/resources/schema/localization-schema.md
99
4
link
:white_check_mark:

msteams-platform/resources/schema/manifest-schema-dev-preview.md
85
130
link
:white_check_mark:

msteams-platform/resources/schema/manifest-schema.md
86
114
link
:white_check_mark:

msteams-platform/whats-new.md
90
91
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Thank you very much @v-ramyas5! I've incorporated your suggestions.

Thank you very much @v-ramyas5! I've incorporated your suggestions.

Thank you @erikadoyle for incorporating the changes.

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/concepts/build-and-test/apps-localization.md
88
11
link
:white_check_mark:

msteams-platform/resources/schema/localization-schema.md
99
4
link
:white_check_mark:

msteams-platform/resources/schema/manifest-schema-dev-preview.md
85
130
link
:white_check_mark:

msteams-platform/resources/schema/manifest-schema.md
86
115
link
:white_check_mark:

msteams-platform/whats-new.md
90
91
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/concepts/build-and-test/apps-localization.md
88
11
link
:white_check_mark:

msteams-platform/resources/schema/localization-schema.md
99
4
link
:white_check_mark:

msteams-platform/resources/schema/manifest-schema-dev-preview.md
85
130
link
:white_check_mark:

msteams-platform/resources/schema/manifest-schema.md
86
115
link
:white_check_mark:

msteams-platform/whats-new.md
90
91
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

This PR is now obsolete. New 1.19 docs playload is here: https://github.com/MicrosoftDocs/msteams-docs/pull/11697


remove unecessary version

Detailed Description
remove un used version in satip/init.py
or
only use versin in satip/init.py and load this in setup.py
Context
good to keep things tidy
Possible Implementation
see above

Closed by #132


Lengths of legend and hap files do not match

Hello. I am trying to run RAREsim but I keep getting an error message saying "Lengths of legend 28687 and hap 28686 files do not match". Moreover, there is run-to-run variability with the same input files and the hap file lengths in other runs are 28684, 28685, etc. I checked the lengths of the hap files generated by Hapgen and they seem to be of the expected size (28687). I believe this might have something to do with the "sparse" function in "rareSim.pyx" - either the generation of the sparse matrix file and/or loading it? I am running Raresim v 2.0, with Hapgen v 2.1.2, on an Ubuntu 20.04 machine. Any help would be much appreciated. Thanks in advance.

Hi Harish, are you receiving an error when running the setup.py script? If so, the C code could not be fully compiling and causing issues with the sparse matrix.

I see a bunch of warnings, but no error, when I run setup.py. These are the last few lines of the compilation:
At top level:
rareSim.c:6072:18: warning: ‘__pyx_f_7rareSim_from_bytes’ defined but not used [-Wunused-function]
 6072 | static PyObject *__pyx_f_7rareSim_from_bytes(PyObject *__pyx_v_s) {
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~
zip_safe flag not set; analyzing archive contents...
__pycache__.rareSim.cpython-310: module references __file__

Hi Jessica,
Thank you for replying to my post on Github. If it’s easier, we can try to resolve this over email and then post the solution on Github. I would really like to get this resolved soon. I am up for chatting over a video call if that’s easier for you. Thank you so much. I really appreciate your help.

Best,
Harish

On Mar 12, 2024, at 2:16 PM, Jessica Murphy @.***> wrote:
Hi Harish, are you receiving an error when running the setup.py script? If so, the C code could not be fully compiling and causing issues with the sparse matrix.
—
Reply to this email directly, view it on GitHub https://github.com/RMBarnard/raresim/issues/13#issuecomment-1992277539, or unsubscribe https://github.com/notifications/unsubscribe-auth/AG5I72DVKXSOG3NUF46MGMDYX5BA3AVCNFSM6AAAAABDBX6YU2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJSGI3TONJTHE.
You are receiving this because you authored the thread.

I could do email or Github - whichever is easiest for you. Are you using the latest version of raresim cloned from the Github repo? An update to the C code for the sparse matrix was made a couple of months ago.

I have tested the 4 versions under Releases - v1.0, v 2.0, v2.1.0 and v2.1.1.

The C code update was made after the latest pre-release (v2.1.1) so I would clone the code directly from the repo (git clone https://github.com/RMBarnard/raresim.git) and see if that works.

Hello,
I remember back in the fall I had created a branch locally to experiment
with doing a re-architect of raresim to simplify the code and eliminate the
need for the C lib entirely so that debugging would be more friendly. I'll
go find that branch and see what kind of progress I made since this C lib
has been causing issues for quite a while now.
On Tue, Mar 12, 2024 at 1:59 PM Jessica Murphy @.***>
wrote:

The C code update was made after the latest pre-release (v2.1.1) so I
would clone the code directly from the repo (git clone
https://github.com/RMBarnard/raresim.git) and see if that works.
—
Reply to this email directly, view it on GitHub
https://github.com/RMBarnard/raresim/issues/13#issuecomment-1992462754,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AWUI4EAEJ25WOODX367N7TLYX5NC7AVCNFSM6AAAAABDBX6YU2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJSGQ3DENZVGQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Hello,
Sorry to take so long to get to this, life has been quite busy lately. I remember back in the fall I had created a branch locally to experiment with doing a re-architect of raresim to simplify the code and eliminate the need for the C lib entirely so that debugging would be more friendly. I'll go find that branch and see what kind of progress I made since this C lib has been causing issues for quite a while now. If I can get something that works end to end up and running, I'll push it and then testing can be done on it

My old branch got lost but I went ahead and recreated it and essentially re-did the entire C-based lib in Python. In initial testing, the converting of a haps file to a haps.sm file appears works and I was able to get it to have the same (if not slightly better) space efficiency with the compression. I want to do a little more testing with it and I need to implement the ability for it to read from a g-zipped file, but it looks promising.

Thank you for your comments. I tried the latest version of the code on the Github repo (not any of the releases and pre-releases) and I no longer get the "Lengths of legend and hap files do not match" error.
However, I am noticing that the number of positions in the pruned haplotypes file is significantly (about an order of magnitude) lower compared to the original haplotypes file. Is this expected? Why/how is this happening? How are we supposed to deal with the missing data?

Can you expand on your question? During the pruning process, any rows of all zeros will be removed from the haplotype (and legend) files. At one point the -z parameter was added to try to tell the program not to remove such rows, but I think success with that flag has been somewhat hit or miss.
Would that explain what you are seeing or are you seeing a different issue?

Hi Harish, as Ryan said, pruned variants are removed from the files but we're working on updating the z flag so that those rows don't have to be removed. Once the z flag is updated, we'll make a new release that also includes the C update. As for now, we've been using the following work around in R to add the rows of zeros back into the haplotypes.
haps.pruned.all = data.frame(matrix(0, nrow=nrow(leg.all), ncol=ncol(haps.pruned))) haps.pruned.all[which(leg.all$id %in% leg.pruned$id),] = haps.pruned

Thank you, Ryan and Jess. That makes sense. But I am seeing some examples where rows are removed even though they do not contain all zeros. Is this expected, and if so, is there an explanation for this?

If I had to take a guess without debugging, I would say it is likely the rows that you are seeing get removed are being pruned by the pruning algorithm. If the row has some ones in it but then all of them are pruned out, it will result in removal of the row.


¿website!

Would a website be helpful to get folks aware of the community calls? I put together https://dat-comm-comm.netlify.com/ while watching some basketball =). I could add it here or keep it in it's own repo.
The issues are pulled in on each build (Can add webhook for new issue => netlify build).

in a website branch?

Yep that'd work! Could also be a subdirectory.

Cool work @joehand !!! If I can help you with something let me know.
Thinking about hooks, maybe with a new issues hook (with the meeting label?), we can update the site.  The new branch would be used when we add notes, which are linked to a meeting.
In this case, I think maybe a merge on master hook will be more useful. What do you say?

Yeah, having some sort of hooks into the github would be nice, often people forget to update websites if we're used to using github as the medium of comm

Yep, I setup a hook to rebuild on any issue update (that is the best github can do), see hook here if admin. I'm only pulling in open issues with the meeting label for the site.
Not quite following the other points:

The new branch would be used when we add notes, which are linked to a meeting.

In this case, I think maybe a merge on master hook will be more useful. What do you say?

About the other points, they are only valid if we want to show the meeting notes on the new comm-comm site. That is why I mention the hook on merge to master (when a PR got merged). We usually create a PR for the meeting notes. But maybe we can just link to /meeting-notes and that will be much simpler.

Ah yes, makes sense! I thought about doing that but seemed like a harder design problem =). I'll PR to add subdir.


Get node name from spec.nodeName instead of indirectly from pod.

spec.nodeName allows to get node name directly, without
using pod and podnamespace as intermediate steps.
This PR resolves #41

/lgtm


chore(TDI-43892): change COMPONENT_INSTALLER_PREFIX from installer

What is the current behavior? (You can also link to an open issue here)
https://jira.talendforge.org/browse/TDI-43892
What is the new behavior?
https://jira.talendforge.org/browse/TDI-43892
Please check if the PR fulfills these requirements

[x] The commit message follows Talend standard
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features) ?
[ ] The code coverage on new code >75%
[ ] The new code does not introduce new technical issues (sonar / eslint)

What kind of change does this PR introduce?

[ ] Bugfix

[ ] Feature

[ ] Code style update (formatting, local variables)

[ ] Refactoring (no functional changes, no api changes)

[ ] Build / CI related changes

[x] Other... Please describe:
backport
Does this PR introduce a breaking change?

[ ] Yes

[x] No

Pull request test result: failure :x:


loadURL for webview gives exception

I am having some trouble with this API (.loadURL. If I dont have the src attribute in the webview to start with, then the loadURL gives an error -
My code -
function updateWebviewURL(u) {
var webv = document.getElementById('mainwebview');
if (webv) {
webv.loadURL(u);
webv.style.display = 'block';
}
};
Uncaught TypeError: Cannot read property 'loadURL' of undefined
node_modules/electron-prebuilt/dist/Electron.app/Contents/Resources/atom.asar/renderer/lib/web-view/web-view.js:410
using electron-prebuilt version 0.36.7
Anyone else seen this scenario?

This is the expected behavior if the dom-ready event has not been fired yet on the web view.
From the docs, http://electron.atom.io/docs/v0.36.5/api/web-view-tag/#methods

Note: The webview element must be loaded before using the methods.

Example

webview.addEventListener("dom-ready", function() {
    webview.openDevTools();
});

Has the dom-ready event fired on your webview before you called loadURL? You need to set the src attribute for the dom-ready event to fire I believe.

ok got it. Thanks for clarification.


Categories for Saved Tweets [REQ]

Over the time, the saved tweets might be quite alot as they are gathered from accounts with diverse backgrounds and contexts.
Would be nice if there a way to categorizing them, by creating folders/categories/branches  and even sub-categories (tree-style).

Closing as a duplicate of #169


Not working

Connection not possible why?
root@ZanderCodes /home/DevTest/dwgd # docker network create --driver=dwgd -o dwgd.endpoint=localhost:10101 -o "dwgd.seed"="mBC/d6mDPe9kYL2OHKg8c0M7XIx2wh5s4KuO0wn6jWY=" -o "dwgd.pubkey"="MKy40E9eTcABrAa6e6Xh9rED9JPTBBZFUGaxI8gRKUM=" --subnet="<IP_ADDRESS>/24" --gateway=<IP_ADDRESS> dwgd-net
3d34e106b781955dfad9958d0d7aaef4949c2da7b7db27cc5a5c13bceb8f5a84
root@ZanderCodes /home/DevTest/dwgd # docker run -it --rm --network=dwgd-net --ip=<IP_ADDRESS> busybox
/ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet <IP_ADDRESS>/8 scope host lo
       valid_lft forever preferred_lft forever
7197: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue qlen 1000
    link/[65534]
    inet <IP_ADDRESS>/24 brd <IP_ADDRESS> scope global wg0
       valid_lft forever preferred_lft forever
/ # ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>): 56 data bytes
^C
--- <IP_ADDRESS> ping statistics ---
4 packets transmitted, 0 packets received, 100% packet loss
/ #

WG-Config:
[Interface]
Address = <IP_ADDRESS>/24
PrivateKey = OC+Wi1RAqTLZAKaM791SzPUH8Sh87fRqmq8jFEILplM=
ListenPort = 10101

[Peer]
AllowedIPs = <IP_ADDRESS>/0

Hello!
The problem lies in the fact that the wireguard config doesn't have a PublicKey  section for its Peer.
In your specific case you should generate the public key like such:
$ dwgd pubkey -s "mBC/d6mDPe9kYL2OHKg8c0M7XIx2wh5s4KuO0wn6jWY=" -i <IP_ADDRESS>
V6AXcoewAVspbGggxKkVitSFsBXcwL63PNpfKjr4/n0=

and use it in your wireguard config:
[Interface]
Address = <IP_ADDRESS>/24
PrivateKey = OC+Wi1RAqTLZAKaM791SzPUH8Sh87fRqmq8jFEILplM=
ListenPort = 10101

[Peer]
AllowedIPs = <IP_ADDRESS>/32
PublicKey = V6AXcoewAVspbGggxKkVitSFsBXcwL63PNpfKjr4/n0=

I tested it on my environment with the latest release and it works, let me know if this solves your problem.

I have tested, but I don't know is not working.
Here are my logs from the console.
dwgd log:
root@ZanderCodes /home/DevTest/dwgd # ./dwgd -v
2023/11/03 12:57:16 Running with the following configuration: &{Db:/var/lib/dwgd.db Verbose:true Rootless
:true}
2023/11/03 12:57:16 Using 'ip' utility at the following path: /usr/sbin/ip
2023/11/03 12:57:16 Using 'nsenter' utility at the following path: /usr/bin/nsenter
2023/11/03 12:57:16 Starting to listen for events
2023/11/03 13:02:32 CreateNetwork: {"NetworkID":"489958ba7755b42e6e6dcf9e045dd92e07595fa2b49ca82a1e6b1c53
ca582b47","Options":{"com.docker.network.enable_ipv6":false,"com.docker.network.generic":{"dwgd.endpoint"
:"<IP_ADDRESS>:10101","dwgd.pubkey":"GEigZKLB3GKNDT3TegPpxBFG8AYOmvQ4PQ5QH1ix4xc=","dwgd.seed":"OE09Cd
WGeGyONcRIJ7vMrvJL9ndXntInYFoDiAfhAEk="}},"IPv4Data":[{"AddressSpace":"LocalDefault","Pool":"<IP_ADDRESS>/2
4","Gateway":"<IP_ADDRESS>/24","AuxAddresses":null}],"IPv6Data":[]}
2023/11/03 13:03:02 CreateEndpoint: {"NetworkID":"489958ba7755b42e6e6dcf9e045dd92e07595fa2b49ca82a1e6b1c5
3ca582b47","EndpointID":"3bc25d293fa69f699da922ee8218abb175f6591daf323e37a6ed214430681a8f","Interface":{"
Address":"<IP_ADDRESS>/24","AddressIPv6":"","MacAddress":""},"Options":{"com.docker.network.endpoint.expose
dports":[],"com.docker.network.portmap":[]}}
2023/11/03 13:03:02 Join: {"NetworkID":"489958ba7755b42e6e6dcf9e045dd92e07595fa2b49ca82a1e6b1c53ca582b47"
,"EndpointID":"3bc25d293fa69f699da922ee8218abb175f6591daf323e37a6ed214430681a8f","SandboxKey":"/var/run/d
ocker/netns/d70e0e330823","Options":{"com.docker.network.endpoint.exposedports":[],"com.docker.network.po
rtmap":[]}}
2023/11/03 13:03:02 EndpointInfo: {"NetworkID":"489958ba7755b42e6e6dcf9e045dd92e07595fa2b49ca82a1e6b1c53c
a582b47","EndpointID":"3bc25d293fa69f699da922ee8218abb175f6591daf323e37a6ed214430681a8f"}
2023/11/03 13:03:02 EndpointInfo: {"NetworkID":"489958ba7755b42e6e6dcf9e045dd92e07595fa2b49ca82a1e6b1c53c
a582b47","EndpointID":"3bc25d293fa69f699da922ee8218abb175f6591daf323e37a6ed214430681a8f"}
2023/11/03 13:03:54 Leave: {"NetworkID":"489958ba7755b42e6e6dcf9e045dd92e07595fa2b49ca82a1e6b1c53ca582b47
","EndpointID":"3bc25d293fa69f699da922ee8218abb175f6591daf323e37a6ed214430681a8f"}
2023/11/03 13:03:54 DeleteEndpoint: {"NetworkID":"489958ba7755b42e6e6dcf9e045dd92e07595fa2b49ca82a1e6b1c5
3ca582b47","EndpointID":"3bc25d293fa69f699da922ee8218abb175f6591daf323e37a6ed214430681a8f"}

Docker:
root@ZanderCodes /home/DevTest/dwgd # docker network create --driver=dwgd \
-o dwgd.endpoint=localhost:10101 -o dwgd.seed="OE09CdWGeGyONcRIJ7vMrvJL9ndXntInYFoDiAfhAEk=" \
-o dwgd.pubkey="GEigZKLB3GKNDT3TegPpxBFG8AYOmvQ4PQ5QH1ix4xc=" --subnet=<IP_ADDRESS>/24 \
--gateway=<IP_ADDRESS> dwgd_net

Wireguard:
[Interface]
Address = <IP_ADDRESS>/24
PrivateKey = 8JBdwaTzkQ/dZujsFtjDxYL8iLGLuR1FEFe4QWaAwkc=
ListenPort = 10101

# SEED = OE09CdWGeGyONcRIJ7vMrvJL9ndXntInYFoDiAfhAEk=
# Test-Container
[Peer]
AllowedIPs = <IP_ADDRESS>/32
PublicKey = 3GQjZNWQvYw5a3Y3UB7u+VV07D/Zvh8tAOIcWFMHAWc=

Container:
root@ZanderCodes /home/DevTest/dwgd # docker run -it --rm --network=dwgd_net --ip=<IP_ADDRESS> busybox
/ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet <IP_ADDRESS>/8 scope host lo
       valid_lft forever preferred_lft forever
7577: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue qlen 1000
    link/[65534]
    inet <IP_ADDRESS>/24 brd <IP_ADDRESS> scope global wg0
       valid_lft forever preferred_lft forever
/ # ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>): 56 data bytes
^C
--- <IP_ADDRESS> ping statistics ---
12 packets transmitted, 0 packets received, 100% packet loss

Can you tell me what's going on?

thanks for the logs, those are helpful.
I tried the exact same thing on my machine and it works (debian bookworm amd64 too).
What might be useful would be a wg show of the interface server.

also a docker --version could help.

Thanks for helping 👍
root@ZanderCodes ~ # docker --version
Docker version 24.0.2, build cb74dfc

no problem!
I have a feeling that the problem you are facing haven't got much to do with dwgd itself.
Maybe it would be good to disable these two:
interface: wg-97bbb329730d
  public key: V6AXcoewAVspbGggxKkVitSFsBXcwL63PNpfKjr4/n0=
  private key: (hidden)
  listening port: 49291

peer: MKy40E9eTcABrAa6e6Xh9rED9JPTBBZFUGaxI8gRKUM=
  endpoint: localhost:10101
  allowed ips: <IP_ADDRESS>/0
  transfer: 0 B received, 9.25 KiB sent
  persistent keepalive: every 25 seconds

and try again only with the dwgd0 interface.
From there you can add back whatever you want and see what breaks.

Closing this since no activity.


Upgrade mbedOS to 5.7

Are there any plans to upgrade the version of the underlying Mbed OS? It is now pretty outdated (which I realize might make the migration even more difficult...).
Among other things there are CMSIS hardware accelerated math functions that would be super useful when running TensorFlow Lite on the MXChip :)

Ping? @ArthurMa1978


ci: Fir 29771 remove dev usage from node sdk ci

Removed enviroment parameter from integration tests actions

Integration tests are passing: https://github.com/firebolt-db/firebolt-node-sdk/actions/runs/7782160115

https://github.com/firebolt-db/firebolt-node-sdk/actions/runs/7784498016


Multi statement bulk insert

I've been wondering what the best way to achieve a bulk insert as part of a multi statement transaction is.
I have 3 tables that I need to update all at once, and here is the SQL query I use for that.
INSERT INTO `FAB_BCGH` (`OCNO`, `CUSTNAME`, `STYLENO`, `STYLDESC`) VALUES(1, 'FATFACE', 'w2526', '12t1g13g')
on duplicate key update BCGUNIQ = LAST_INSERT_ID(BCGUNIQ);
SELECT LAST_INSERT_ID() INTO @last_inserted_id_var_1;
INSERT INTO FAB_BCGD(BCGUNIQ, ITEMCODE, ITEMDESC, TTLROLLGEN) VALUES (@last_inserted_id_var_1, '2i2ht12t', 'white', 1000)
on duplicate key update BCGLINE = LAST_INSERT_ID(BCGLINE), TTLROLLGEN = TTLROLLGEN + VALUES(TTLROLLGEN);
SELECT LAST_INSERT_ID() INTO @last_inserted_id_var_2;
INSERT INTO FAB_BCGR (`BCGUNIQ`, `BCGLINE`, `ROLLNO`, `RLENGTH`, `RWIDTH`, `PONO`) VALUES (@last_inserted_id_var_1, @last_inserted_id_var_2, '123456', 100, 50, '21t8h12h'), (@last_inserted_id_var_1, @last_inserted_id_var_2, '12367', 100, 50, '21t8h12h')
on duplicate key update BCGREVL = LAST_INSERT_ID(BCGREVL);
COMMIT;

As you can see, I update the third table with two sets of values. However, the insertion of those values depends on the @last_inserted_id_var_1 and @last_inserted_id_var_2 variables.
I tried to do the same with this library in the following format.
(Here nestedData is of the following format):
[ [ 79, 56, 1, 15, 'NJPO1603761' ],
  [ 79, 56, 2, 15, 'NJPO1603761' ],
  [ 79, 56, 3, 15, 'NJPO1603761' ],
  [ 79, 56, 4, 15, 'NJPO1603761' ] ]

connection.query(`
 BEGIN;
 INSERT INTO FAB_BCGH (OCNO, CUSTNAME, STYLENO, STYLDESC) VALUES(${mysql.escape(OC)}, ${mysql.escape(CustName)}, ${mysql.escape(StyleNo)}, ${mysql.escape(StyleDesc)})
      on duplicate key update BCGUNIQ = LAST_INSERT_ID(BCGUNIQ);
      SELECT LAST_INSERT_ID() INTO @last_inserted_id_var_1;
      INSERT INTO FAB_BCGD(BCGUNIQ, ITEMCODE, ITEMDESC, TTLROLLGEN) VALUES (@last_inserted_id_var_1, ${mysql.escape(ItemNo)}, ${mysql.escape(ItemDesc)}, ${mysql.escape(tableData.length)})
      on duplicate key update BCGLINE = LAST_INSERT_ID(BCGLINE), TTLROLLGEN = TTLROLLGEN + VALUES(TTLROLLGEN);
      SELECT LAST_INSERT_ID() INTO @last_inserted_id_var_2;
      INSERT INTO FAB_BCGR (BCGUNIQ, BCGLINE, ROLLNO, RLENGTH, RWIDTH, PONO) VALUES (@last_inserted_id_var_1, @last_inserted_id_var_2, (?), (?), (?))
      on duplicate key update BCGREVL = LAST_INSERT_ID(BCGREVL);
      COMMIT;`, [nestedData], function(err, results, fields) {
      console.log(results)
      connection.release()
      if (err) {
        throw err
      }
    })

However, this doesn't work. I get the following error when I run the above transaction.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?), (?)) on duplicate key update BCGREVL = LAST_INSERT_ID(BCGREVL);
Now, presumably, the library doesn't allow partially parameterized queries like the above for bulk inserts? I'm not sure.
I had to hack my way around it by doing the following
connection.query(`
     BEGIN;
     INSERT INTO FAB_BCGH (OCNO, CUSTNAME, STYLENO, STYLDESC) VALUES (${mysql.escape(OC)}, ${mysql.escape(CustName)}, ${mysql.escape(StyleNo)}, ${mysql.escape(StyleDesc)})
     on duplicate key update BCGUNIQ = LAST_INSERT_ID(BCGUNIQ);
     SELECT LAST_INSERT_ID() INTO @last_inserted_id_var_1;
     INSERT INTO FAB_BCGD(BCGUNIQ, ITEMCODE, ITEMDESC, TTLROLLGEN) VALUES (@last_inserted_id_var_1, ${mysql.escape(ItemNo)}, ${mysql.escape(ItemDesc)}, ${mysql.escape(tableData.length)})
     on duplicate key update BCGLINE = LAST_INSERT_ID(BCGLINE), TTLROLLGEN = TTLROLLGEN + VALUES(TTLROLLGEN);
     SELECT LAST_INSERT_ID() INTO @last_inserted_id_var_2;
     SELECT @last_inserted_id_var_1 as index1, @last_inserted_id_var_2 as index2;
     COMMIT;
   `, function(err, results, fields) {
     if (err) throw err
     const { index1, index2 } = results.map(r => {
       if (Array.isArray(r)) {
         return r
       }
     }).filter(r => r)
       .flat()[0]
     const nestedData = tableData.map(rollObj => {
       return [index1, index2, rollObj.roll, rollObj.length, PONumber]
     })
     connection.query(`
       INSERT INTO FAB_BCGR (BCGUNIQ, BCGLINE, ROLLNO, RLENGTH, PONO) VALUES ?
       on duplicate key update BCGREVL = LAST_INSERT_ID(BCGREVL);
     `, [nestedData], function(err, results, field) {
       if (err) throw err
     })
     connection.release()
   })

Now, I don't believe that this is the best way to achieve the results I want. Is there a better way to do what I want?

Hi, and sorry you're having trouble. Have you enabled multi statement support on your connection? https://github.com/mysqljs/mysql/blob/master/Readme.md#multiple-statement-queries

@dougwilson - Hi, no need to apologise. I love the work you're doing with this lib and how active you are with it! Thank you for that!
Yes, I have the multi statement support enabled. Multiple statements work fine. I'm just having trouble with partially parameterizing a query. Is that even possible?

I apologize again, haha. I try to triage issues in the morning before work and I overlooked your specific syntax error. The syntax error is because there are three placeholders in your query (the ?) but in the values array you only passed in one value (that array of arrays) so the other two ? had no values to be expanded.
I'm not sure I understand what you're trying to do by reading this issue so far. Maybe would it be possible to show the exact SQL you were expecting that code (the first block) to send to the server, given the javadcript and variable?

No need to apologise.
Let me start off by explaining exactly what I'm trying to do. There might be an easier way to do what I'm attempting. I have a scenario where I have three tables (I'll call them FAB_BCGH, FAB_BCGD and FAB_BCGR. I'm picking these names because these are the names I've assigned in my query, so it'll be easier to follow along).
The relationship between FAB_BCGH and FAB_BCGD is 1 -> many. The relationship between FAB_BCGD and FAB_BCGR is 1 -> many. Now, when I send data to the server, I want to insert a record into FAB_BCGH, insert 1+ records into FAB_BCGD, and insert 1+ records into FAB_BCGR.
The other thing I want to take care of is if a duplicate record exists in either FAB_BCGH or FAB_BCGD, I don't want to insert a new record. Instead, I want to find the pk of the previously inserted record in the table with the duplicate key.
Here is the SQL query I am running in my editor which gives me the results I want.
BEGIN;
INSERT INTO `FAB_BCGH` (`OCNO`, `CUSTNAME`, `STYLENO`, `STYLDESC`) VALUES(1, 'FATFACE', 'w2526', '12t1g13g')
on duplicate key update BCGUNIQ = LAST_INSERT_ID(BCGUNIQ);
SELECT LAST_INSERT_ID() INTO @last_inserted_id_var_1;
INSERT INTO FAB_BCGD(BCGUNIQ, ITEMCODE, ITEMDESC, TTLROLLGEN) VALUES (@last_inserted_id_var_1, '2i2ht12t', 'white', 1000)
on duplicate key update BCGLINE = LAST_INSERT_ID(BCGLINE), TTLROLLGEN = TTLROLLGEN + VALUES(TTLROLLGEN);
SELECT LAST_INSERT_ID() INTO @last_inserted_id_var_2;
INSERT INTO FAB_BCGR (`BCGUNIQ`, `BCGLINE`, `ROLLNO`, `RLENGTH`, `RWIDTH`, `PONO`) VALUES (@last_inserted_id_var_1, @last_inserted_id_var_2, '123456', 100, 50, '21t8h12h'), (@last_inserted_id_var_1, @last_inserted_id_var_2, '12367', 100, 50, '21t8h12h')
on duplicate key update BCGREVL = LAST_INSERT_ID(BCGREVL);
COMMIT;

The reason I have three placeholders is because the nested array I'm creating is of the following format:
[ [ a, b, c, d ],
  [ e, f, g, h ],
  [ i, j, k l ],
  [ m, n, o, p] ]

So, I would need three placeholders then right?

So you should only need a single placeholder, right? At least, I'm not following where the number of placeholders being three would come from given that example.Like which expansion rule are you trying to trigger with that value?

Sorry, the nested array above should have only three columns.
I have 3 placeholders because I have three columns I need to bulk insert values for in FAB_BCGR. The first two columns are populated by @last_insert_id_var_1 and @last_insert_id_var_2.
All the examples I see for bulk insert, insert the entire row through the array. I, unfortunately, don't have that option.
I was also going off this issue where you suggested using multiple placeholders for different values.

Thanks, but I guess I would like to help come up with a solution, but I'm still not clear on what you're expecting the final SQL to look like in order to understand. I'm not sure I understand what you're trying to do by reading this issue so far. Maybe would it be possible to show the exact SQL you were expecting that code to send to the server, given the javadcript and variable?

It sounds like I may be missing something but I thought I posted the exact SQL i was after 2 comments up?
Here is the nestedData variable
[[123456, 100, 50, '21t8h12h'],
  [123678, 100, 50, '21t8h12h']]

Now, when I run the following SQL query using mysql
connection.beginTransaction(function (err) {
      if (err) throw err
      connection.query(`
        INSERT INTO FAB_BCGH (OCNO, CUSTNAME, STYLENO, STYLDESC) VALUES (${mysql.escape(OC)}, ${mysql.escape(CustName)}, ${mysql.escape(StyleNo)}, ${mysql.escape(StyleDesc)})
        on duplicate key update BCGUNIQ = LAST_INSERT_ID(BCGUNIQ);
        SELECT LAST_INSERT_ID() INTO @last_inserted_id_var_1;
        INSERT INTO FAB_BCGD(BCGUNIQ, ITEMCODE, ITEMDESC, TTLROLLGEN) VALUES (@last_inserted_id_var_1, ${mysql.escape(ItemNo)}, ${mysql.escape(ItemDesc)}, ${mysql.escape(tableData.length)})
        on duplicate key update BCGLINE = LAST_INSERT_ID(BCGLINE), TTLROLLGEN = TTLROLLGEN + VALUES(TTLROLLGEN);
        SELECT LAST_INSERT_ID() INTO @last_inserted_id_var_2;
        INSERT INTO FAB_BCGR (BCGUNIQ, BCGLINE, ROLLNO, RLENGTH, PONO) VALUES (@last_inserted_id_var_1, @last_inserted_id_var_2, ?)
        on duplicate key update BCGREVL = LAST_INSERT_ID(BCGREVL);
      `, nestedData, function(err, results, fields) {
        if (err) {
          return connection.rollback(() => {
            throw err
          })
        }
        connection.commit(err => {
          if (err) {
            return connection.rollback(() => {
              throw err
            })
          }
          console.log('Committed')
        })
        console.log(results)
      })
    })

I want the following SQL result:
BEGIN;
INSERT INTO `FAB_BCGH` (`OCNO`, `CUSTNAME`, `STYLENO`, `STYLDESC`) VALUES(1, 'FATFACE', 'w2526', '12t1g13g')
on duplicate key update BCGUNIQ = LAST_INSERT_ID(BCGUNIQ);
SELECT LAST_INSERT_ID() INTO @last_inserted_id_var_1;
INSERT INTO FAB_BCGD(BCGUNIQ, ITEMCODE, ITEMDESC, TTLROLLGEN) VALUES (@last_inserted_id_var_1, '2i2ht12t', 'white', 1000)
on duplicate key update BCGLINE = LAST_INSERT_ID(BCGLINE), TTLROLLGEN = TTLROLLGEN + VALUES(TTLROLLGEN);
SELECT LAST_INSERT_ID() INTO @last_inserted_id_var_2;

INSERT INTO FAB_BCGR (`BCGUNIQ`, `BCGLINE`, `ROLLNO`, `RLENGTH`, `PONO`) VALUES (@last_inserted_id_var_1, @last_inserted_id_var_2, '123456', 100, 50, '21t8h12h'), (@last_inserted_id_var_1, @last_inserted_id_var_2, '12367', 100, 50, '21t8h12h')
on duplicate key update BCGREVL = LAST_INSERT_ID(BCGREVL);
COMMIT;

If you look at the last INSERT statement, which is right after the line break, you'll notice there are two sets of VALUES being provided. I want to be able to provide an N set of values.
However, when I insert those N sets of values, I need the two variables:
@last_inserted_id_var_1 and @last_inserted_id_var_2. Unfortunately, I can't seem to do something like the following
INSERT INTO FAB_BCGR (BCGUNIQ, BCGLINE, ROLLNO, RLENGTH, PONO) VALUES (@last_inserted_id_var_1, @last_inserted_id_var_2, ?), nestedData, function(err, results, fields) {}

This only inserts the first row from my nested array. I'm not sure why, though.
If I try to change it to
INSERT INTO FAB_BCGR (BCGUNIQ, BCGLINE, ROLLNO, RLENGTH, PONO) VALUES (@last_inserted_id_var_1, @last_inserted_id_var_2, ?, ?, ?), nestedData, function(err, results, fields) {}

I get the following error:
Column count doesn't match value count at row 1
Hopefully, this explains more clearly what I was trying to accomplish?

A nesteddata array does not work for your usecase.
If you have an nested array like:
nesteData = [[123456, 100, 50, '21t8h12h'], [123678, 100, 50, '21t8h12h']];

This is transformed with the values escaped into:
(123456, 100, 50, '21t8h12h'), (123678, 100, 50, '21t8h12h')
Which is convenient when you got a simple Bulk-Insert like:
INSERT INTO myTable (A,B,C,D) VALUES ?

and have the end result of:
INSERT INTO myTable (A,B,C,D)
 VALUES (123456, 100, 50, '21t8h12h'), (123678, 100, 50, '21t8h12h')

Your example SQL-String would have the result:
INSERT INTO FAB_BCGR (BCGUNIQ, BCGLINE, ROLLNO, RLENGTH, PONO)
VALUES (
    @last_inserted_id_var_1,
    @last_inserted_id_var_2,
    (123456, 100, 50, '21t8h12h'),
    (123678, 100, 50, '21t8h12h')
)

What you try to do is:
Mixing serverside mysql variables @last_inserted_id_var_1, @last_inserted_id_var_2 with clientside data provided by JavaScript.
So building the Query with mysql.escape() is the way to go for your usecase, even if it looks a bit ugly.
The 'nestedData' functionality is convenient for simple Bulk-Statements. Under the Hood it use mysql.escape() just the same as you have in one of your examples.

@kai-koch So when you say

So building the Query with mysql.escape() is the way to go for your usecase, even if it looks a bit ugly.

can you give me an example of what that would look like for my use case? Is it the same as what I've already done using two separate transactions?

@redixhumayun
var myData = [[1, "a", 3], [4, "b", 6], [7, "c", 9]],
    i = 0, iLen = myData.length, sql = '';

for (i; i < iLen; i += 1) {
    sql = 'INSERT INTO myTable (ID1, ID2, A, B, C)'
        + ' VALUES (@last_inserted_id_var_1, @last_inserted_id_var_2, '
        + [
            con.escape(myData[i][0]), con.escape(myData[i][1]), con.escape(myData[i][2])
        ].join(', ') // [1,2,3].join(', ') = '1, 'a', 3'
        + ');';
    // INSERT INTO myTable (ID1, ID2, A, B, C) VALUES (@last_inserted_id_var_1, @last_inserted_id_var_2, 1, 'a', 3);
    // INSERT INTO myTable (ID1, ID2, A, B, C) VALUES (@last_inserted_id_var_1, @last_inserted_id_var_2, 4, 'b', 6);
    // INSERT INTO myTable (ID1, ID2, A, B, C) VALUES (@last_inserted_id_var_1, @last_inserted_id_var_2, 7, 'c', 9);
    con.query(sql, function (err, results, fields) {
        // this is the anonymous call back for one insert only
        // each query is enqued to be exacuted somewhen after the this tick
        if (err) { throw err; }
        console.log(results];
        console.log(fields);
    });
}
// => next tick the callback start coming in

In this code the whole myData array will be processed at once and each row creates an own query and callback. so if you have many data-rows enable multiple line statements or do only chunks of the data array , and wait for the callbacks to come back and then enqueue more rows only.
How many rows at once depends on your server setup, but it is certainly not a good idea to queue up 10000 Rows in one event loop tick. (Overhead in Node.JS and DOS-ing your DB-Server.)

Or the short answer would have been:
"yes the way you already did it." ;-)

@kai-koch I just realised I never thanked you for your answer! So, thank you!


Allow for export ONNX model with dict inputs

This allows for passing in inputs of dict type to the export_onnx, enabling exported model with the original inp/out names.

LGTM overall, I'm worried that for models with multiple inputs, the proper input order will not be preserved by a Dict unless it is an OrderedDict.
It might be safer to have input_names as a separate arg whose names should match the order of the sample input. Having a warning if the Dict is not ordered might also be ok though. If we keep Dict the transformers integration should be updated to use an ordered one.

Added the followings:

Warning if sample batch passed in is a dict but not an ordered dict
From transformers side, the sample batch constructed as OrderedDict

looks like quality needs to run @natuan


Update Go SDK examples

Proposed changes
This PR proposes several Go SDK example changes. The latest version of the Golang Docker client (v1.13.1) includes several changes that are not reflected in the Docker docs:

client.NewClientWithOpts is no longer available;
client.ContainerWait no longer returns (<-chan container.ContainerWaitOKBody, <-chan error). Rather, it returns (int64, error).

This motivate the following changes:

Update the Run a container section to use client.NewEnvClient() and the new ContainerWait return values;
Update Run a container in the background to use client.NewEnvClient();
Update List and manage containers to use client.NewEnvClient();
Update Stop all running containers to use client.NewEnvClient();
Update Print the logs of a specific container to use client.NewEnvClient();
Update List all images to use client.NewEnvClient();
Update Pull an image to use client.NewEnvClient();
Update Pull an image with authentication to use client.NewEnvClient();
Update Commit a container to use client.NewEnvClient() and the new ContainerWait return values.

These changes are consistent with the latest versions of the client package, which can be found here.
Changes can be seen on Netlify.
Unreleased project version (optional)
Related issues (optional)
I have used the Docker docs "Edit this page" option - no issue to link.

@flaviuvadan Thanks for update.
@thaJeztah Could you please review the suggested changes?

The latest version of the Golang Docker client (v1.13.1)

Ah, yes, I suspect you got bit by go modules 😞. Unfortunately, the introduction of go modules caused go get (and equivalents) to break when using the docker client as a dependency.
Where previously go get would give you the latest code from master, Go modules now give you the latest tagged release that "looks like SemVer". In this case that's v1.13.1 (which is over three years old); we recently integrated the tags from the docker/docker-ce repository so probably now you'll get v17.12.1-rc1, which Go modules also considers a SemVer tag, and which is the branch-point from master.
The best approach to get a version of the docker api client that matches a docker release, is to specify the tag of that release in your go.mod (e.g., v19.03.8 to get the current release).
Unfortunately things get more complicated (or at least confusing) from there, because go modules does not work with release branches (which is what's often used for projects that actively maintain multiple releases (including golang itself));
docker run -it --rm -v (pwd):/project -w /project golang:1.14.2
Create your main.go
package main

import (
	"context"
	"fmt"

	"github.com/docker/docker/api/types"
	"github.com/docker/docker/client"
)

func main() {
	ctx := context.Background()
	cli, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation())
	if err != nil {
		panic(err)
	}

	containers, err := cli.ContainerList(context.Background(), types.ContainerListOptions{})
	if err != nil {
		panic(err)
	}

	for _, container := range containers {
		fmt.Println(container.ID)
	}
}

Initialize go modules and add v19.03.8 of the docker dependency;
export GO111MODULE=on
go mod init myproject
GO111MODULE=on go get<EMAIL_ADDRESS>
# go: downloading github.com/docker/docker v17.12.0-ce-rc1.0.20200309214505-aa6a9891b09c+incompatible
# go: github.com/docker/docker v19.03.8 => v17.12.0-ce-rc1.0.20200309214505-aa6a9891b09c+incompatible

This is where things get confusing, because due to go modules not supporting release branches, it will replace the version you picked with some (seemingly) random version. That version is based on the "latest" tag it finds on the master branch that looks like SemVer. In our case, v17.12.0-ce-rc1; the version that will be picked also depends on which version of Go is used (they broke this in the last couple of releases).
Your go.mod will now look something like this (notice that even though the version is shown as v17.12, the actual commit (https://github.com/moby/moby/commit/aa6a9891b09c) matches v19.03.8;
module myproject

go 1.14

require github.com/docker/docker v17.12.0-ce-rc1.0.20200309214505-aa6a9891b09c+incompatible // indirect

To prevent confusion, you may want to add a comment to your go.mod to explain what the actual version is. Also be aware that if your project is not a "final" project, but meant to be used as a module in other projects, that things might still break (go modules will likely pick the actual v17.12.0-ce-rc1, which is two years old).
If your project is intended to be used as a module for other projects, you may want to add a replace rule to your go.mod to forcibly break dependent projects (preventing them to get an incorrect version); similar to https://github.com/moby/buildkit/blob/c62983bbdee18c2bab62ccd8ee1727b86243de76/go.mod#L84 (I think that repository needs to be updated to use anything > 17.12 now :disappointed:)
We're still looking at options to make this easier to work with, but it's quite complicated. The repository uses tags for the binary releases, and has never used SemVer. With Go modules, Golang now assumes that any tag on a repository is created for Go modules (and implicitly assumes that anything that looks like SemVer must be SemVer); even though we don't try to break compatibility between releases, our API client (and other packages) are not SemVer (they match the docker releases, and may introduce changes in the Go "api").

@thaJeztah, I now see the problem. Yes, the project that I am working on definitely brought in v1.13.1. Thank you for the detailed explanation! This was a great lesson/reminder. I guess there are no changes that are required for now, so I will close the PR. You mentioned "I think that repository needs to be updated to use anything > 17.12 now". Could I pick that up?


Re-enable some tests after Python 3.9 is dropped

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

Project coverage is 0.00%. Comparing base (31adb00) to head (e800d5b).
Report is 78 commits behind head on main.

Additional details and impacted files
@@          Coverage Diff           @@
##            main   #4067    +/-   ##
======================================
  Coverage   0.00%   0.00%
======================================
  Files        106     107     +1
  Lines      13582   13824   +242
======================================
- Misses     13582   13824   +242

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


Links are broken or pointing to old data

The links under the line no longer work correctly.
Go to GitHub, and download the tss_tools.zip file.

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

ID: 70ed7e4c-0e62-887f-e3aa-db50bcb9d2b9
Version Independent ID: 4d40f939-2773-a34b-ff7b-4f9d8e29878b
Content: Troubleshoot problems on the DHCP server
Content Source: WindowsServerDocs/troubleshoot/troubleshoot-problems-on-dhcp-server.md
Product: windows-server
Technology: troubleshoot
GitHub Login: @Deland-Han
Microsoft Alias: delhan

@Deland-Han , Sir please verify this PR #6132, and merge if correct.

The change looks good to me but I don't have the permission to merge the PR.

Hi @mattdreher,
Thanks again for contacting Microsoft. We value your feedback.
A documentation change has been made with an updated link and instructions for the TSS tools and will be live after the next business day. We will now be closing this thread.
Thank you and have a most pleasant day.
#please-close


getting error Exception: Prerequisite not met : No OIDC provider found for cluster 'my-cluster'!

I am trying to set up an a efs using Python script with dynamic provisioning.
getting an error: Exception: Prerequisite not met : No OIDC provider found for cluster 'my-cluster'!
Env: python3
OS: MacOs

Whats the output of this ? Did you follow this : https://github.com/aws-samples/amazon-efs-developer-zone/tree/main/application-integration/container/eks/dynamic_provisioning ?
$ export CLUSTER_NAME=efsworkshop-eksctl
$ eksctl utils associate-iam-oidc-provider --cluster $CLUSTER_NAME --approve
I am not able to reproduce the issue


merge

If you can rebase this and provide some notes on what the changes are I would probably merge it.


[CI-NO-BUILD]  Add System info collection tool

Use quotes consistently; double quotes when you need substitutions; single quotes otherwise.

Please add sign-off in the commit.

Committee message should be:
"RHEL-1472: Add System info collection tool"


NamelessMatchSpec::from_str more strict than MatchSpec::from_str

It seems like NamelessMatchSpec is more particular than MatchSpec when parsing.
My test:
   let ms1 =
       MatchSpec::from_str("python ==2.7.*.*|>=3.6", ParseStrictness::Lenient).expect("nameful");
   let ms2 =
       NamelessMatchSpec::from_str("==2.7.*.*|>=3.6", ParseStrictness::Lenient).expect("nameless")

My output:
thread 'main' panicked at src/main.rs:64:82:
nameless: InvalidVersionSpec(InvalidConstraint(RegexConstraintsNotSupported))

Thanks for this report, it triggered a deeper investigation. I fixed this in #738 .
So basically what happened is that actually ==2.7.*.* is an unsupported version because it basically says: I want exactly 2.7.*.*. Because of the exact equality rattler will deduce that 2.7.*.* must be a regular expression which is not supported by rattler. Thats why you get the RegexConstraintsNotSupported error.
However, through some historic conda magic that rattler also implements (when parsing in lenient mode), in some cases (if there is no build string) the == part of the version in matchspec is removed. That turns ==2.7.*.* into 2.7.*.* which is still not actually a valid version because that still looks like a regex, but rattler just interprets this as 2.7.* (in lenient mode again).
Anyway, with #738 both matchspec and the nameless variant implement this behavior. However, in strict mode the removal of a == is not performed anymore so in strict mode this specific matchspec will give a parser error.

Thanks! Looking forward to the next rattler_conda_types build to give it another go.


[Doc Improvement][Uninstall behavior for personal app with bot]

Removing dev preview information as the docs are GA'd

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/bots/how-to/conversations/subscribe-to-conversation-events.md
88
23
link
:white_check_mark:

msteams-platform/whats-new.md
93
35
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Docs Build status updates of commit 5d2bae1:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/bots/how-to/conversations/subscribe-to-conversation-events.md
:white_check_mark:Succeeded
View

msteams-platform/whats-new.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/bots/how-to/conversations/subscribe-to-conversation-events.md
88
23
link
:white_check_mark:

msteams-platform/whats-new.md
93
35
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Docs Build status updates of commit 901fa1b:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/bots/how-to/conversations/subscribe-to-conversation-events.md
:white_check_mark:Succeeded
View

msteams-platform/whats-new.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


allow running script from anywhere using FILE

see #129
the minimal way to call workflow is now with arguments like so
workflow(
    name = "...",
    on = listOf()
    sourceFile = __FILE__,
    rootFolder = __FILE__.absoluteFile.parentFile.parentFile.parentFile,
) {
    ...
}

optional arguments are

gitRootFolder, by default finds the first folder up the filetree that contains a .git folder
targetFolder, by default $gitRootFolder/.github/workflows/
targetFileName by default the basename of the script + .yml (eg. build.main.kts -> build.yml)

i wonder if we can do shenanigans to find the git root automatically instead of requiring the user to provide it

i wonder if we can do shenanigans to find the git root automatically instead of requiring the user to provide it

See https://docs.github.com/en/actions/learn-github-actions/environment-variables#default-environment-variables and GITHUB_WORKSPACE env var. Since we work on a GitHub-centric library, I think it's perfectly fine to depend on it :smiley:
(I didn't review the code yet, just noticed your comment.)

but we cannot depend on that when its being run by a user
i was more thinking along the lines of git rev-parse --show-toplevel

True. Yeah, if it would simplify the library API, we could try to find the root. Maybe instead of calling git we could simply traverse up the directory tree and check if a given directory contains .git directory? Should be a bit faster and we stay in the JVM world instead of calling a CLI.

i will try to implement this

so.. does this look like a acceptable PoC ? i am using it in a private project sucessfully for about a month successfully

Thanks, will review within several days, busy time here.

Looks like the PR description is outdated, could you update it? Especially the usage example.

Replaced by #271, and marked you as co-author there ;) Thanks again!


Implement remote sidebar rendering

It would be nice if we could render the content in the sidebar from somewhere other than AppsScript itself.
i.e. we should be able to have a web server located elsewhere, like a NGINX or nodejs server to server the content.  Currently, we use "static files" created from HtmlService.createHtmlOutputFromFile('html/mailman') to serve the content, but maybe we can use
HtmlService.createHtmlOutput('

obsolete - this is the approach we are taking for mailman 2.0


Schedule Design Meetings for First Responders

Targeting July - after the holiday - will be based on facilitators availability

Had an initial planning session with group - aiming to pull together specific dates/times by July 8th

Dates are set - July 27, Aug 9 and Aug 10 - all three from 2:00 - 4:30 pm.  Placeholders sent to planning committee calendars and posted on NC Open Pass calendar


[Event Request] Codeunit 414 "Release Sales Document" - OnBeforePerformManualCheckAndRelease

Hi, would it be possible to modify the OnBeforePerformManualCheckAndRelease event in codeunit 414 (Release Sales Document) by adding the IsHandled parameter, like this:
    procedure PerformManualCheckAndRelease(var SalesHeader: Record "Sales Header")
    var
        PrepaymentMgt: Codeunit "Prepayment Mgt.";
        ApprovalsMgmt: Codeunit "Approvals Mgmt.";
        IsHandled: Boolean;
    begin
        // Modified Event begin
        // OnBeforePerformManualCheckAndRelease(SalesHeader, PreviewMode);
        IsHandled := false;
        OnBeforePerformManualCheckAndRelease(SalesHeader, PreviewMode, IsHandled);
        if IsHandled then
            exit;
        // Modified Event end

                with SalesHeader do
            if ("Document Type" = "Document Type"::Order) and PrepaymentMgt.TestSalesPayment(SalesHeader) then begin
                if TestStatusIsNotPendingPrepayment then begin
                    Status := Status::"Pending Prepayment";
                    Modify;
                    Commit();
                end;
                Error(Text005, "Document Type", "No.");
            end;

        if ApprovalsMgmt.IsSalesHeaderPendingApproval(SalesHeader) then
            Error(Text002);

        IsHandled := false;
        OnBeforePerformManualRelease(SalesHeader, PreviewMode, IsHandled);
        if IsHandled then
            exit;

        CODEUNIT.Run(CODEUNIT::"Release Sales Document", SalesHeader);

        OnAfterPerformManualCheckAndRelease(SalesHeader, PreviewMode);
    end;

    [IntegrationEvent(false, false)]
    local procedure OnBeforePerformManualCheckAndRelease(var SalesHeader: Record "Sales Header"; PreviewMode: Boolean; var IsHandled: Boolean)
    begin
    end;

#11263
Thanks!

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


Implement partial transpilation

In the current implementation, if a peerProject is set:

contracts are transpiled
anything else, declared at the file level, is NOT transpiled. This includes :

interfaces: I think these should not be transpiled
libraries: This should not be transpiled, except maybe functions that take contract (that are transpiled) as arguments.
custom errors: I think these should not be transpiled
free functions: Same as functions in libraries. We only need to transpile them if they take arguments that are contract.
UDVT: I think these should not be transpiled

Are these assumptions reasonables?

Functions in libraries don't have contract arguments, and use interfaces instead.
Free functions  don't have contract arguments, and use interfaces instead.
Both of the above do not call functions that take contract arguments

I tink this is ok, because in order to call such functions, they would either need to get these as arguments, or do a casting.

If the assumptions are ok, do we want to check them?

Are these assumptions reasonables?

I think they are reasonable, but moreover if they are broken I don't think it would cause any correctness/security issues, only usability issues. If you agree with that, I don't think we need to validate the assumptions.


Project: Replacement/Upgrade for Zillow

Project name
Housing Assistant
Description
Zillow is a leading real estate marketplace that helps you find, buy, rent, or sell homes. (https://www.zillow.com/)
The issue with Zillow is that it is not very user friendly. You need to perform a search on the location you are interested in and you would have to perform a lot of filtering in order to get your desired house. Searching for your ideal house is therefore cumbersome. See below:

Having a personal assistant in purchasing a home would be easier for the customer. The customer can search for the ideal home by answering the personal assistant questions and it can even search through images! For example, it can find for a house in the Texas state for prices below 280,000 USD with at least 2 bedroom with white interiors. It would then search for the database for photos of houses with the set parameters with white interiors.
Data was obtained from Zillow and placed in pdf files. The system would help purchasers buy their ideal home. The name of the bot is Casabot.
Language
English
Project Repository URL
https://github.com/zzulueta/azure-search-openai-demo
Deployed Endpoint URL
https://app-backend-fwtxqwv2vipts.azurewebsites.net/
Project video
https://yeaps-my.sharepoint.com/:v:/p/ziggyzulueta/ET4Dvf_1EQ5LmCRWCvcFaDUB3UVk2vd3Wg_nC5BgkAumZQ?e=iHrZrP&nav=eyJyZWZlcnJhbEluZm8iOnsicmVmZXJyYWxBcHAiOiJTdHJlYW1XZWJBcHAiLCJyZWZlcnJhbFZpZXciOiJTaGFyZURpYWxvZy1MaW5rIiwicmVmZXJyYWxBcHBQbGF0Zm9ybSI6IldlYiIsInJlZmVycmFsTW9kZSI6InZpZXcifX0%3D
Team members
Ziggy Zulueta
Showcase Consent
Yes

@zzuleta We're hoping to showcase everyone's projects, but I realize your endpoint now points to a new data source, and your video is error'ing. I'm happy to showcase BeSSSfriend if you're okay with that?

Hi Pamela,
Sure. I also changed the endpoint. I had to provide a demo to a government
institution here with there data:
GPT + Enterprise data | Sample (app-backend-pbfxghys4abbm.azurewebsites.net)
https://app-backend-pbfxghys4abbm.azurewebsites.net/
Regards,
Ziggy Zulueta
Microsoft MVP Azure AI Services
8x Microsoft Certified
Microsoft Certified Azure Solutions Architect
Microsoft Certified Azure AI Engineer
On Wed, Feb 28, 2024 at 3:38 AM Pamela Fox @.***> wrote:

@zzuleta We're hoping to showcase everyone's projects, but I realize your
endpoint now points to a new data source, and your video is error'ing. I'm
happy to showcase BeSSSfriend if you're okay with that?
—
Reply to this email directly, view it on GitHub
https://github.com/microsoft/AI-Chat-App-Hack/issues/93#issuecomment-1967463884,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJ4KH2WWQ42ZWWATIADM2PTYVYYZ3AVCNFSM6AAAAABDCYP7RKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNRXGQ3DGOBYGQ
.
You are receiving this because you authored the thread.Message ID:
@.***>


Display frozen after voltage drops to 6.36V

I’m using egzumer v0.22, on a Quansheng UV-K5(8), made in January 2024.
No other firmware, except factory and egzumer v0.20, was previously loaded.
Steps:

display: MR channel on A, MR scan on B
backlight settings: BackLt = 1 min, BLMin = 4, BLMax = 9
radio already open for a few hours before incident

Actual result: after battery voltage drops to 6.36V, the display freezes, backlight remains on, radio still draws current from battery that continues to discharge.
I started to measure the battery, but when it reached 5.60V (~5 min) I decided to shut the radio off, by power button.
Expected result: after battery voltage drops to 6.36V, the radio should shut-off, to protect the battery.

Battery is protected by an internal BMS circuit. It will cut off the voltage when it drops below certain point. This is how majority of li-ion powered devices work.
The freezing of the radio is a hardware design issue. There is nothing that can be done about that, that would make any sense.


[Bug]: v8 coverage lowers when more tests are executed

Version
29.7.0
Steps to reproduce

Clone https://github.com/TWiStErRob/repros/tree/main/jest/v8-flaky-coverage
npm install
npm test -- --runInBand wrapped.test.js -> tests pass, coverage 100%
npm test -- --runInBand -> tests pass, coverage missing lines

Expected behavior
Everything passes and coverage is better or equivalent to when only a single test is executed.

Actual behavior
File that is covered by a single test file to 100% loses coverage when an additional test is executed. The additional test calls the original function.

Additional context
Anything relevant changed in the repro will make it work correctly. So:

v8 -> babel ✅
changing the order of execution of tests (sorted.js < -> >) ✅
We used a testSequencer to consistently reproduce the issue, otherwise it was flaky!
changing the order via removing --runInBand ✅
We also used this to consistently reproduce the issue, otherwise it was flaky!

Environment
System:
    OS: macOS 14.1.2
    CPU: (12) arm64 Apple M2 Pro or (10) arm64 Apple M1 Pro
  Binaries:
    Node: 20.10.0 - /opt/homebrew/opt/node@20/bin/node
    npm: 10.2.3 - /opt/homebrew/opt/node@20/bin/npm
  npmPackages:
    jest: ^29.7.0 => 29.7.0

Also on github actions ubuntu-latest (so Ubuntu 22.04 and x64).

Hi
This seems to be the same problem as in my issue https://github.com/jestjs/jest/issues/14764
Have you tested this with Node 20.9.0?

I found that comment following two lines in node_modules/collect-v8-coverage/index.js will fix it.
    //await this.postSession('Profiler.stopPreciseCoverage');

    //await this.postSession('Profiler.disable');

Just to clarify, @cenfun are you saying that you have another repro without jest?

Can also verify that commenting out both lines work.

Still an issue.

still an issue

Yep, confirmed 20.9.0 -> 20.10.0 causes it.
Raised nodejs/node#51251
Still a issue and same problem with the upgrade

Seems it can be fixed with await this.postSession('Debugger.enable');
see https://github.com/SimenB/collect-v8-coverage/pull/235/files

This is still an issue. Is there any progress?

I posted this originally on: https://github.com/nodejs/node/issues/51251
Reposting here in case it's helpful...
I have been facing the same issue: my coverage report was 100% with 20.9.0, but as of 20.10.0, it now reports less than 100% coverage and somewhat randomly flags lines not covered.
I noticed that I get the same coverage reporting flakiness with 18.20.2 (I initially saw this issue when my GitHub actions started to fail). Coverage works fine with 18.19.1.
So there seems to be a change between 18.19.1 and 18.20.0 that causes the issue as well as between 20.9.0 to 20.10.0.
This is now causing my GitHub CI/CD actions to fail since GitHub is using 18.20.2.

@kmccammon - we are facing exactly the same issue.

Can't call it closed stale without a triage...

Can't call it closed stale without a triage...

Agreed, I'm stuck on node version 18.19.1 until this coverage issue is resolved.

I think we can safely say this project is abandoned:
https://github.com/jestjs/jest/issues?q=is%3Aclosed+label%3A"Needs+Triage"+label%3AStale
A ton of them are closed without a single comment.

not stale

.

Also stuck on node version 18.19 or 20.9 until this coverage issue is resolved.

Can confirm still happening; For those of you whom don't need to --runInBand, running with more than one worker thread fixed the particular problem for me.
npx jest -w 2 ...

Running with more than one worker did not fix the problem for me.

.

also hit this. certainly not stale !
Adding the comments worked for me

@SimenB any chance to pick this up?

not stale

Hi,
We have actually ~50 nodeJS services stuck on node 20.9.0 because of this issue.
Is there any known workaround?

.

I think the render is overlaping
await this.postSession('Profiler.stopPreciseCoverage');
await this.postSession('Profiler.disable');


Installer disconnects SSH when trying to set static IP

PiVPN Issue Template

Console output of curl install.pivpn.io | bash
root@pi:~# . pivpn.sh
:::
::: You are root.
::: Verifying free disk space...
:::
::: Checking apt-get for upgraded packages.... done!
:::
::: There are 11 updates available for your system!
::: We recommend you update your OS after installing PiVPN!
:::
-bash: nslookup: command not found
::: Your static IPv4 address:    <IP_ADDRESS>
::: Your static IPv4 gateway:    <IP_ADDRESS>
::: Critical: Unable to locate configuration file to set static IPv4 address!
Connection to pi.local closed.

Is it because nslookup is not found ?

Installed nslookup and upgraded apt update (was missing a gpg key, that might be a problem), the installer is now running correctly.

Closing issue as it seems to be solved.


Add pt_regs handling in aya-bpf/args.rs for riscv64

This patch introduces pt_regs handling in aya-bpf/args.rs for
the riscv64 architecture. The current CI is disabled for riscv64
because this implementation is missing.

I have referred to https://github.com/riscv-non-isa/riscv-elf-psabi-doc/blob/master/riscv-cc.adoc#risc-v-calling-conventions for the register convention.


Speed up integration tests pipeline

We should speed up our integration tests pipeline since it takes ~1h to complete.
Some ideas could be:

Parallel test images upload and data plane or control plane build (or both)
Parallel Kafka cluster deploy and data plane or control plane build (or both)

Expected Behavior
integration tests pipeline tasks << 1h
Actual Behavior
integration tests pipeline takes ~1h
Steps to Reproduce the Problem

Just run integration tests

Additional Info

Increasing parallelism had been tried in other repositories and there are no advantages.
The main pipeline flow is in https://github.com/knative-sandbox/eventing-kafka-broker/blob/master/test/e2e-common.sh
Ideally, we don't introduce too many bash scripts or functions

/area test
/kind performance

We're at 45 min.

Parallel test images upload and data plane or control plane build (or both)
Parallel Kafka cluster deploy and data plane or control plane build (or both)

Those don't help that much and they add complexity. (verified in https://github.com/knative-sandbox/eventing-kafka-broker/pull/607)

Can this be considered done? Any other ideas you wanna try? :)

I see serving is using a very high parallel number:
https://github.com/knative/serving/blob/0751aed142e00726647a2042fcc1f587a9a7827a/test/e2e-tests.sh#L136
let's try this.

Let's close this, we've got 15m improvements, which is good for now.


Dm/mailing list update

converts newsletter sign up form to use a different provider

LGTM - leaving it for @joeconwaystk to merge when he's good with it.

@dmays this g2g?


Feature/prevent click event

I added this feature to prevent the click event when a key is pressed, it avoids some conflicts with other components like https://github.com/shentao/vue-multiselect when an action is triggered on click (in this case, dropdown list closes).

Coverage decreased (-0.09%) to 5.217% when pulling cefb1ab8821f607a1916016b09e1a3bc82246520 on yonmey:feature/prevent-click-event into 3ba60f3e41937cfed5c8b3e69d1b5fb60c29ae10 on icebob:master.

Coverage decreased (-0.09%) to 5.217% when pulling cefb1ab8821f607a1916016b09e1a3bc82246520 on yonmey:feature/prevent-click-event into 3ba60f3e41937cfed5c8b3e69d1b5fb60c29ae10 on icebob:master.


Remove obsolete build constraints

This is obviously a low priority "code janitor" cleanup, but code hygiene is important to keep bit-rot (aka entropy) under control.


Test Issue created at Fri, 04 Jun 2021 09:56:33 GMT

Test issue body  Fri, 04 Jun 2021 09:56:33 GMT

Comment on issue at Fri, 04 Jun 2021 09:56:36 GMT


Fix display name and date alignment

Details
Fix the display name and date alignments
Fixed Issues
$ https://github.com/Expensify/App/issues/14269
Tests

Go to any chat
Verify that the display name and date are aligned at the bottom of the text

[x] Verify that no errors appear in the JS console

Offline tests
N/A
QA Steps
Same as tests

[ ] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

@Expensify/design or @shawnborton does it looks as expected?
Web

Desktop

Android

iOS

Android mWeb

iOS mWeb

@luacmartins PR Screenshots are not loading can you check?

@Santhosh-Sellavel all yours for review!

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

The latest screenshots does it looks good? cc: @shawnborton @luacmartins @MariaHCD

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

@luacmartins Can you update the latest screenshots in the PR?

@Santhosh-Sellavel done!

@luacmartins have you checked this https://github.com/Expensify/App/pull/14304#issuecomment-1402375369?
Seem still something is off to me, is it just to me?

Hmm yeah, based on those screenshots, it does look like the timestamp sits below the sender:

@shawnborton I just checked this branch it seems fine at my end. Strange.

Hmm @Santhosh-Sellavel any idea what's causing this?
It seems like between this issue and the other alignment issue, we're getting a lot of inconsistencies in various platforms/screenshots.

hmm I'm seeing a small alignment issue on mWeb Chrome and Safari 🤔 Not sure what's causing it yet.

@luacmartins i just debugged and fixed the issue. Actually there is not need to add lineHeight and need to reduce paddingTop: 4 to paddingTop: 2.
Also verified it doesn't cause regression on Web.
Code Changes:

     chatItemMessageHeaderTimestamp: {
         flexShrink: 0,
         color: themeColors.textSupporting,
         fontSize: variables.fontSizeSmall,
-        paddingTop: 4,
-        lineHeight: variables.lineHeightNormal,
+        paddingTop: 2,
     },

@luacmartins
I find all platforms are off, i.e compare this screenshots with screenshots in the description.
@MariaHCD Can you post what you see on Web & Desktop?
Honestly, I'm confused about what's happening here, before worrying about Inconsistent between platforms, there is an inconsistency between author screenshots & reviewer screenshots 😕 .
cc: @shawnborton

I updated the PR and screenshots using this suggestion. Ready for another review!

That feels pretty good to me. It might not be perfectly baseline aligned, but I think it's a good improvement and it feels consistent across platforms.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

Here are new screenshots can you confirm this looks @shawnborton @luacmartins

Yup, this feels pretty good to me!

@Santhosh-Sellavel seems like this looks good now. Can you complete the checklist please?

Yes will do!

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/luacmartins in version: 1.2.63-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/thienlnam in version: 1.2.63-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Extra space in icon shortcode

I use the icon shortcode to display a row of linked icons only. I use this format:
[{{<icon class="fa fa-github">}}](https://github.com/metbril)
[{{<icon class="fa fa-gitlab">}}](https://gitlab.com/metbril)

When put in a row, an extra whitespace character is added after each icon. This shows as an underscore, which is ugly.

This underscore can be removed by removing the blank line in the shortcode. I will submit a tiny PR for this.

Hi @metbril, thank you so much 💝.
This is a very nice catch and a nice learning of how shortcuts work for me 👍.
The behavior should be fixed with https://github.com/janraasch/hugo-scroll/commit/789ff52256b8f232710f280c5a992178d98e11c1.
Enjoy 👋🏻,
Jan.


Respell resourceManager.setCCloudSchemaRegistryCluster() to take list of clusters in bulk.

Main callpoint for setCCloudSchemaRegistryCluster() is from preloadEnvironmentResources(), which could call with whole list of all of the ccloud schema registries.
Refactor to accept a list, then wholly resetting the stored value, and doing so just once, not for each schema registry found within that loop.

What arrays/lists of Schema Registry clusters are we expecting here? Or is this to specifically gather up each SR cluster across all available CCloud environments and add to extension state at once?

What arrays/lists of Schema Registry clusters are we expecting here? Or is this to specifically gather up each SR cluster across all available CCloud environments and add to extension state at once?

The latter. We already know the whole set of them from the graphql response. Gather those up into a single array, pass to storage all at once instead of one at a time. Is a baby optimization, but spotted it while prepping the pre-caching work and didn't want to mix it in with that branch.


Make certain editor callbacks thread-safe

The current design goal for the editor API is that it's not meant to be thread-safe. However, certain callbacks can be called from contexts that shouldn't contain explicit thread awareness. Therefore, the way to go is make those callbacks thread-safe, which is what this PR does.
A bit of story:

In #71670 we could affect a specific component since it is its own class.
In #71280 we could keep the editor API thread-unsafe because the affected functions were always called through a "bridge" that allowed to keep both ends unaware of threading.

Fixes #77235,

Thanks!


advertise flag ignored

Hi i have configured a cluster with two nodes (two vm into virtualbox), cluster start correctly but advertise flag seems to be ignored by consul

vm1 (app) ip <IP_ADDRESS>
vm2 (web) ip <IP_ADDRESS>

docker-compose vm1 (app)
version: '2'
services:
    appconsul:
        image: progrium/consul
        ports:
            - <IP_ADDRESS>:8300:8300
            - <IP_ADDRESS>:8301:8301
            - <IP_ADDRESS>:8301:8301/udp
            - <IP_ADDRESS>:8302:8302
            - <IP_ADDRESS>:8302:8302/udp
            - <IP_ADDRESS>:8400:8400
            - <IP_ADDRESS>:8500:8500
            - <IP_ADDRESS>:53:53/udp
        hostname: node_1
        command: -server -advertise <IP_ADDRESS> -bootstrap-expect 2 -ui-dir /ui
        networks:
            net-app:

    appregistrator:
        image: gliderlabs/registrator
        hostname: app
        command: consul://<IP_ADDRESS>:8500
        volumes:
            - /var/run/docker.sock:/tmp/docker.sock
        depends_on:
            - appconsul
        networks:
            net-app:
networks:
    net-app:
        driver: bridge
        ipam:
            config:
                - subnet: <IP_ADDRESS>/24

docker-compose vm2 (web)
services:
    webconsul:
        image: progrium/consul
        ports:
            - <IP_ADDRESS>:8300:8300
            - <IP_ADDRESS>:8301:8301
            - <IP_ADDRESS>:8301:8301/udp
            - <IP_ADDRESS>:8302:8302
            - <IP_ADDRESS>:8302:8302/udp
            - <IP_ADDRESS>:8400:8400
            - <IP_ADDRESS>:8500:8500
            - <IP_ADDRESS>:53:53/udp
        hostname: node_2
        command: -server -advertise <IP_ADDRESS> -join <IP_ADDRESS>
        networks:
            net-web:

    webregistrator:
        image: gliderlabs/registrator
        hostname: web
        command: consul://<IP_ADDRESS>:8500
        volumes:
            - /var/run/docker.sock:/tmp/docker.sock
        depends_on:
            - webconsul
        networks:
            net-web:
networks:
    net-web:
        driver: bridge
        ipam:
            config:
                - subnet: <IP_ADDRESS>/24

After start i not have error about advertise flag but the services has registered with private ip of internal network instead with IP declared in advertise (<IP_ADDRESS> and <IP_ADDRESS>), any idea?
Attach log of node_1, but they are the same as node_2
appconsul_1       | ==> WARNING: Expect Mode enabled, expecting 2 servers
appconsul_1       | ==> WARNING: It is highly recommended to set GOMAXPROCS higher than 1
appconsul_1       | ==> Starting raft data migration...
appconsul_1       | ==> Starting Consul agent...
appconsul_1       | ==> Starting Consul agent RPC...
appconsul_1       | ==> Consul agent running!
appconsul_1       |          Node name: 'node_1'
appconsul_1       |         Datacenter: 'dc1'
appconsul_1       |             Server: true (bootstrap: false)
appconsul_1       |        Client Addr: <IP_ADDRESS> (HTTP: 8500, HTTPS: -1, DNS: 53, RPC: 8400)
appconsul_1       |       Cluster Addr: <IP_ADDRESS> (LAN: 8301, WAN: 8302)
appconsul_1       |     Gossip encrypt: false, RPC-TLS: false, TLS-Incoming: false
appconsul_1       |              Atlas: <disabled>
appconsul_1       |
appconsul_1       | ==> Log data will now stream in as it occurs:
appconsul_1       |
appconsul_1       |     2017/06/13 14:57:24 [INFO] raft: Node at <IP_ADDRESS>:8300 [Follower] entering Follower state
appconsul_1       |     2017/06/13 14:57:24 [INFO] serf: EventMemberJoin: node_1 <IP_ADDRESS>
appconsul_1       |     2017/06/13 14:57:24 [INFO] serf: EventMemberJoin: node_1.dc1 <IP_ADDRESS>
appconsul_1       |     2017/06/13 14:57:24 [INFO] consul: adding server node_1 (Addr: <IP_ADDRESS>:8300) (DC: dc1)
appconsul_1       |     2017/06/13 14:57:24 [INFO] consul: adding server node_1.dc1 (Addr: <IP_ADDRESS>:8300) (DC: dc1)
appconsul_1       |     2017/06/13 14:57:25 [ERR] agent: failed to sync remote state: No cluster leader
appconsul_1       |     2017/06/13 14:57:25 [ERR] agent: failed to sync changes: No cluster leader
appconsul_1       |     2017/06/13 14:57:26 [WARN] raft: EnableSingleNode disabled, and no known peers. Aborting election.
appconsul_1       |     2017/06/13 14:57:48 [ERR] agent: failed to sync remote state: No cluster leader
appconsul_1       |     2017/06/13 14:58:13 [ERR] agent: failed to sync remote state: No cluster leader
appconsul_1       |     2017/06/13 14:58:22 [INFO] serf: EventMemberJoin: node_2 <IP_ADDRESS>
appconsul_1       |     2017/06/13 14:58:22 [INFO] consul: adding server node_2 (Addr: <IP_ADDRESS>:8300) (DC: dc1)
appconsul_1       |     2017/06/13 14:58:22 [INFO] consul: Attempting bootstrap with nodes: [<IP_ADDRESS>:8300 <IP_ADDRESS>:8300]
appconsul_1       |     2017/06/13 14:58:23 [WARN] raft: Heartbeat timeout reached, starting election
appconsul_1       |     2017/06/13 14:58:23 [INFO] raft: Node at <IP_ADDRESS>:8300 [Candidate] entering Candidate state
appconsul_1       |     2017/06/13 14:58:23 [WARN] raft: Remote peer <IP_ADDRESS>:8300 does not have local node <IP_ADDRESS>:8300 as a peer
appconsul_1       |     2017/06/13 14:58:23 [INFO] raft: Election won. Tally: 2
appconsul_1       |     2017/06/13 14:58:23 [INFO] raft: Node at <IP_ADDRESS>:8300 [Leader] entering Leader state
appconsul_1       |     2017/06/13 14:58:23 [INFO] consul: cluster leadership acquired
appconsul_1       |     2017/06/13 14:58:23 [INFO] consul: New leader elected: node_1
appconsul_1       |     2017/06/13 14:58:23 [INFO] raft: pipelining replication to peer <IP_ADDRESS>:8300
appconsul_1       |     2017/06/13 14:58:23 [INFO] consul: member 'node_1' joined, marking health alive
appconsul_1       |     2017/06/13 14:58:23 [INFO] consul: member 'node_2' joined, marking health alive
appconsul_1       |     2017/06/13 14:58:26 [INFO] agent: Synced service 'app:dockerdata_solr_1:8983'
appconsul_1       |     2017/06/13 14:58:26 [INFO] agent: Synced service 'app:dockerdata_appconsul_1:8302'
appconsul_1       |     2017/06/13 14:58:26 [INFO] agent: Synced service 'app:dockerdata_appconsul_1:8302:udp'
appconsul_1       |     2017/06/13 14:58:26 [INFO] agent: Synced service 'app:dockerdata_appconsul_1:8301'
appconsul_1       |     2017/06/13 14:58:26 [INFO] agent: Synced service 'app:dockerdata_appconsul_1:8500'
appconsul_1       |     2017/06/13 14:58:26 [INFO] agent: Synced service 'app:dockerdata_appconsul_1:8300'
appconsul_1       |     2017/06/13 14:58:26 [INFO] agent: Synced service 'consul'
appconsul_1       |     2017/06/13 14:58:26 [INFO] agent: Synced service 'app:dockerdata_mysql_1:3306'
appconsul_1       |     2017/06/13 14:58:26 [INFO] agent: Synced service 'app:dockerdata_appconsul_1:8400'
appconsul_1       |     2017/06/13 14:58:26 [INFO] agent: Synced service 'app:dockerdata_appconsul_1:53:udp'
appconsul_1       |     2017/06/13 14:58:26 [INFO] agent: Synced service 'app:dockerdata_appconsul_1:8301:udp'

Thanks for any reply

The problem is version of compose file, v2 and v3 have same problem, work only with compose file v1