breaks with drei Bvh

I was having performance degradation whenever the raycaster detects an object occluding the player character then zooms in so i tried using https://drei.docs.pmnd.rs/performances/bvh and wrapped my scene with it but it throws errors
Uncaught TypeError: Cannot read properties of undefined (reading 'count')
    at ensureIndex (chunk-WRUSZE5W.js?v=41f13401:18383:49)
    at buildPackedTree (chunk-WRUSZE5W.js?v=41f13401:19056:5)
    at new _MeshBVH (chunk-WRUSZE5W.js?v=41f13401:21543:7)
    at _BufferGeometry.computeBoundsTree (chunk-WRUSZE5W.js?v=41f13401:21838:21)
    at chunk-WRUSZE5W.js?v=41f13401:22733:26
    at Mesh.traverse (chunk-ZZFAC2JP.js?v=41f13401:5143:5)
    at Group.traverse (chunk-ZZFAC2JP.js?v=41f13401:5146:19)
    at _Object3D.traverse (chunk-ZZFAC2JP.js?v=41f13401:5146:19)
    at Group.traverse (chunk-ZZFAC2JP.js?v=41f13401:5146:19)
    at chunk-WRUSZE5W.js?v=41f13401:22728:13

is it possible to get this to work with Live Demo: Floating Capsule Character Controller

Commenting out the <CharacterModel /> should work without errors

Commenting out the <CharacterModel /> should work without errors

that worked! looks like the problem is only with the current pete character model used in the example.
any idea what's causing the problem exactly?

These two: <mesh ref={rightHandRef} /> and <mesh ref={leftHandRef} />
Not sure why, but removing them resolves the problem.

These two: <mesh ref={rightHandRef} /> and <mesh ref={leftHandRef} /> Not sure why, but removing them resolves the problem.

we should get to the bottom of this because without bvh my fps can drop to 25 but it's a constant 120fps with bvh


New version: GIGABYTE.GigabyteControlCenter version <IP_ADDRESS>

Pull request has been created with komac v2.1.0 :rocket:
Microsoft Reviewers: Open in CodeFlow

Automatic Validation ended with:

Installation failed with exit code -1978335141
2024-04-03 09:29:42.207 [CLI ] Unable to locate nested installer at: C:\Users\VALIDA~1\AppData\Local\Temp\WinGet\GIGABYTE.GigabyteControlCenter.<IP_ADDRESS>\extracted\GIGABYTE Control Center_2024_Jan_release_All_Setup_B24020701.exe

(Automated response - build 876.)


Websockets Google Cloud Implementation

Enhance the core Nitric Google Cloud Providers (Pulumi & Terraform) to add Websockets support.

Looking at a Cloud Run implementation, the scalability would be very limited and very expensive to run. (at most 80 concurrent connections per cloud run instance
A better option might be running a container on GCE with something like:
https://github.com/fastly/pushpin
And connecting that server to websocket servers based on their socket name as a "channel" name.


feat: Validate Interval and IntervalAction before loading from config

Close: #3642
PR Checklist
Please check if your PR fulfills the following requirements:

[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

If your build fails due to your commit message not passing the build checks, please review the guidelines here: https://github.com/edgexfoundry/edgex-go/blob/master/.github/Contributing.md.
What is the current behavior?

Issue Number: #3642
What is the new behavior?
Interval and IntervalAction should be created as a DTO, and call validate() to ensure the data is valid.
Does this PR introduce a breaking change?

[ ] Yes
[x] No

New Imports

[ ] Yes
[x] No

Specific Instructions
Are there any specific instructions or things that should be known prior to reviewing?
Other information

Codecov Report

Merging #3646 (d7bf687) into main (1c9af10) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main    #3646   +/-   ##
=======================================
  Coverage   47.29%   47.29%
=======================================
  Files         112      112
  Lines        9174     9174
=======================================
  Hits         4339     4339
  Misses       4462     4462
  Partials      373      373

Continue to review full report at Codecov.

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


Is there exmaple using your proxy with JWT? I want to check the auth in the proxy like api gateway

Currently, no, but you could suggest an example.
You likely want to use this example.
.WithBeforeSend((c, hrm) =>
        {
            // Set something that is needed for the downstream endpoint.
            hrm.Headers.Authorization = new AuthenticationHeaderValue("Basic");

            return Task.CompletedTask;
        })

@twitchax  How can we implement this token auth with
app.RunProxy(proxy => proxy.UseHttp("https://reqres.in/"));
basically i want to pass it with all the request to for eg. https://reqres.in/

@twitchax  how can we implement the above example?
basically i want to pass token with all the request
something to compliment
app.RunProxy(proxy => proxy.UseHttp("http://google.com"));
In essence, I aim to forward all requests as they are, but with the addition of an authentication token. Could you please provide some suggestions or guidance on how to achieve this? Thank you

Yep, basically, you use the example from the README.  The way ASP.NET works is that you can do pretty much whatever you want with the context in here.
app.RunProxy(proxy => proxy
    .UseHttp((context, args) =>
    {
        // Check the auth token here by inspecting `context.Request.Headers` (or something like that).

        return "http://myhttpserver.com";
    })
    .UseWs((context, args) => "ws://mywsserver.com"));

Thank you so much @twitchax 👯♂


Nginx image for index + tar.gz; pass additional parameters to docker build

Checklist:

[x] Read the Code of Conduct and Contributing Guidelines.

[x] Followed the commit message guidelines.

[ ] Stack adheres to Appsody stack structure.
N/A

Changes
This updates release packaging to also create a nginx docker image containing the index.yaml files and associated tar.gz. This docker image can be used in environments where git release links won't work (e.g. protected by SAML), and other binary repositories aren't desired.
The ci/nginx directory, contains a Dockerfile and nginx.conf file to create an nginx server image (appsody-index) that can serve static index and template resources. A docker-compose.yml file is also present to make the contents of this image easier to test and verify. Use a docker-compose.override.yml file to replace the {{EXTERNAL_URL}} value if necessary for local testing. The nginx container can be added to your local appsody repository.
$ cd ci/nginx
$ docker-compose up verify        # dump index contents
$ docker-compose up -d index   # start nginx locally on port 8008
$ appsody repo add nginx http://localhost:8008/incubator-index.yaml

ci/package.sh generates two index files:

one for stack-based releases that use URLs like this:
{{RELEASE_URL}}/swift-v0.1.4/incubator.swift.templates.simple.tar.gz

another in ci/assets/index-src that looks like this (implying a flat archive structure), which is used both for local testing, and by the (kabanero-like) appsody-index:
{{EXTERNAL_URL}}/incubator.java-spring-boot2.v0.3.6.templates.default.tar.gz

{{EXTERNAL_URL}} is resolved to the associated environment variable value when the appsody-index container starts. ./ci/package.sh replaces that string with the file url for the assets directory when creating the local test repository index.
Packaging templates
A new script ./ci/prefetch.sh has been added. If the PREFETCH_INDEX_YAML environment variable has been defined, it will download each specified yaml,and then download referenced templates to pre-populate ./ci/assets/. If the downloaded file does not contain a version, a small  ./ci/assets/prefetch-<stack_id>-<template_id> script is generated that can be used to compare the version of the stack the template was generated for with the version of the stack in the current repository (which is being used to generate new indexes).
$ export PREFETCH_INDEX_YAML="https://github.com/appsody/stacks/releases/download/swift-v0.1.4/experimental-index.yaml https://github.com/appsody/stacks/releases/download/swift-v0.1.4/stable-index.yaml https://github.com/appsody/stacks/releases/download/swift-v0.1.4/incubator-index.yaml"
$ ./ci/prefetch.sh
$ ./ci/assets/prefetch-java-microprofile-default 1.3.4

./ci/package.sh has been updated to deal with existing template archives with and without the version in the filename.  Any template archive created by the script includes the version in the filename.
Scenario:
# get most recent tags (might need to go to n-1, depending on when you create the tag)
git fetch --all --tags --prune
prev_tag=$(git tag -l  --merged HEAD --sort=creatordate | tail -n1)

# pre-fetch indexes for this branch
PREFETCH_INDEX_YAML="https://github.com/appsody/stacks/releases/download/$prev_tag/experimental-index.yaml \
https://github.com/appsody/stacks/releases/download/$prev_tag/incubator-index.yaml \
https://github.com/appsody/stacks/releases/download/$prev_tag/stable-index.yaml"

# download most recent published/released templates
./ci/prefetch.sh

# prevent creation of missing archives
export PACKAGE_WHEN_MISSING=false

# build only spring boot (scripts fixed to not require base_dir as parameter)
./ci/build.sh incubator/java-spring-boot2

Information about pre-fetched template archives that do not have a version in the name will be saved into files in ./ci/build.
When ./ci/build.sh is run to selectively build the spring boot stack, pre-downloaded templates will be used.
For un-versioned archive files, the side files in ci/build will be used to test that the stack they were built for matches the stack being written into the index, e.g. template was built for swift-v1.2.3, and swift/stack.yaml is also version 1.2.3.
For versioned archives, it is a simple file name match: the archive with the right name either exists or it doesn’t.
Related Issues:
Partial fix for kabanero-io/kabanero-collection#60

Shouldn't this be open against kabanero-io/collections not appsody?

Shouldn't this be open against kabanero-io/collections not appsody?

The PR should be w/in appsody tooling itself (see changes). That it helps resolve an issue with Kabanero is nice.. but the same issue is present for appsody itself (the Appsody CLI will not be able to download SAML-protected links).

With the latest changes the 2 errors I was seeing -

error with date being reported:

- BUILDING stack: experimental/java-spring-boot2-liberty
date: illegal option -- I
usage: date [-jnRu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
            [-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]

and 2) invalid urls being created within the index.yaml files
https://github.com/origin/git@github.com:ebullient/stacks.git/releases/download/java-microprofile-v0.2.8/incubator.java-microprofile.templates.default.tar.gz

these seem to have been resolved.
One question: why have you moved all the assets into subdirectories under the assets dir.
Doing this makes it very difficult to do a Git release as I don’t think git releases can utilize directories.
In the kabanero build we had to add the stack version to the filename, so ended up with a flat directory structure with files like:
assets/incubator.java-spring-boot2.v0.3.5.templates.default.tar.gz

rather than having:
assets/java-spring-boot2-v0.3.5/incubator.java-spring-boot2.templates.default.tar.gz

Would it be possible to do this to hopefully aid the release creation.

If you also want the ngnix docker image published to the DOCKERHUB_ORG you will need to update the release.sh file to add the docker push for that image.

You also do not remove the ci/assets/index-src directory.
So this remains in the ./ci/assets directory when the build has completed.

You also do not remove the ci/assets/index-src directory.
So this remains in the ./ci/assets directory when the build has completed.

Latest changes move non-release resources (like index-src) into ./ci/build (an already ignored directory), to keep the assets directory clean.

Scenario:
# get most recent branch (might need to go to n-1 branch, depending on when you create the tag)
git fetch --all --tags --prune
prev_tag=$(git tag -l  --merged HEAD --sort=creatordate | tail 1)
git checkout tags/$prev_tag -b $prev_tag

# (maybe you need to extract the latest build scripts at this point)
git checkout origin/master -- ci/*

# pre-fetch indexes for this branch
PREFETCH_INDEX_YAML="https://github.com/appsody/stacks/releases/download/$prev_tag/experimental-index.yaml \
https://github.com/appsody/stacks/releases/download/$prev_tag/incubator-index.yaml \
https://github.com/appsody/stacks/releases/download/$prev_tag/stable-index.yaml"

# download most recent published/released templates
./ci/prefetch.sh

# back to master branch (or new tag), use reset if new ci scripts were extracted
git reset --hard origin/master

# prevent creation of missing archives
export PACKAGE_WHEN_MISSING=false

# build only spring boot
./ci/build.sh . incubator/java-spring-boot2

Information about pre-fetched template archives that do not have a version in the name will be saved into files in ./ci/build.
When ./ci/build.sh is run to selectively build the spring boot stack, pre-downloaded templates will be used.
For un-versioned archive files, the side files in ci/build will be used to test that the stack they were built for matches the stack being written into the index, e.g. template was built for swift-v1.2.3, and swift/stack.yaml is also version 1.2.3.
For versioned archives, it is a simple file name match: the archive with the right name either exists or it doesn’t.

I know this PR is for Appsody, but the build / release process is also used for Kabanero. For the creation of the ngnix docker image you are calling it appsody-iindex. Would it be possible to have that name as a variable so that we could use kabanero-index as the name of the image for use in Kabanero.

Also, the ./ci/ngnix/docker-compose.yml has the DOCKERHUB name hardcoded as appsody, so if  someone were to push to a different DOCKERHUB ORG then the docker compose would not pickup the correct image.


Idea: Constructing WHERE filters from an expression.

Currently,
https://github.com/sqlkata/querybuilder/blob/master/QueryBuilder/Base.Where.cs#L124
Only accepts a delegate as argument.
I'm currently working on a delegate-builder that works on runtime, constructing the delegate from specifcations in json recursively. I got it working but it's not the easiest way to go about it.
For the developer in my situation it would be way simpler to work with a Expression tree instead or as an additional option. Like this:
public Q Where(Expression<Func<Q, Q>>)
Constructing the actual where filters wouldn't become harder, because walking through an Expression Tree is not that complicated.
Just a suggestion :) I might even make it sometime.

@Blanen, could you show me an example on what you want to achieve ?

hey @ahmad-moussawi,
can we re-open this issue? I've been working on this a little and you find some first bare bone spagetti code examples in this repo of mine:
MYaSyncQL.WhereExpressions
UnitTests are passing
Please let me know if you are interested to have something like this. Parsing Expressions is tedious and is a lot of work but I think for some basic stuff it would be really useful. This also requires the attributes @mota57 is working on. In the code above I implemented my own version until sqlkata 1.1.8 is out.

@penCsharpener Supporting expressions is out of scope for now,
because it will add a lot of complexity to the core, I prefer to focus on enhancing what we have before releasing the 2.0 and keep things like this to the community.
Thanks for sharing, I will check it out to get an idea anyway.

@penCsharpener the attributes is complete.


Issue with k8s.io/docs/reference/config-api/kubelet-config.v1beta1/

Problem: The link to Logs Options is broken under the Kubelet Configuration
Proposed Solution: The Logs Options file is updated from logs/options.go to logs/api/v1/options.go
Page to Update:
https://kubernetes.io/docs/reference/config-api/kubelet-config.v1beta1/
/kind documentation

/language en

/assign

these files are generated as part of the reference docs for a release

When did this update happen? before or after 1.24 was released?

These update has happened before 1.24 was released

/close
As per the comment


Xformers Missing

Hi!
I keep getting this error on the final cell:
"Traceback (most recent call last):
File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/webui.py", line 11, in
import modules.extras
File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/modules/extras.py", line 9, in
from modules import processing, shared, images, devices, sd_models
File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/modules/processing.py", line 13, in
import modules.sd_hijack
File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/modules/sd_hijack.py", line 13, in
import ldm.modules.attention
File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/ldm/modules/attention.py", line 10, in
import xformers
ModuleNotFoundError: No module named 'xformers'"
Tried deleting the folders and re-running but not luck. Am I missing something obvious? (I assume I am!)

Are you using the latest colab notebook ?

I assume so! Which link is it?

I just clicked it from the Github and got the same error, so yes!

i also have this error

strange as was working all okay yesterday however i notice the colab has been updated

will fix it in a few minutes

<3

Hero!

fixed 👍


Support for Azerty

Space bar does not work with azerty keyboard :8ball:

My keyboard is qwerty and space bar doesn't work for me either...

Interesting. I wonder when the shooting mechanic stopped working. Will have to look into it.


Using threading for to avoid blocking on ES queries

Rewrite the rules loop to use Python threading facilities, allowing rules to be run in parallel in multicore environments. Inspect the performance implications of this and correct for any lock contention or global state issues that may arise.

Async execution of rules would be great and helpful. Can this be achieved soon or there are other features/bugs with more priority?

waiting...

hi @Qmando ,
is elastalert support on multi thread now, or plans to be?

I want to work on this, but could figure out my way around the rule processing flow to lock shared resources properly. If the maintainer could help on this, I would be glad get this working.

Hi everyone.
Few weeks ago I took a look on the code to start work on this feature.
But I realized that to control the shared resources properly (as mentioned by @bananabr) is a bit complicated.
However, I guess that exists an another good approach and I would like to see the @Qmando opinion about it.
Instead of change the core of ElastAlerter class to introduce the ability of his unique instance handle shared resources, my approach consists in create multiple ElastAlerter instances.
Some like this:
import multiprocessing

# ...

def start_client(worker_id):
    client = ElastAlerter(args, worker_id=worker_id)
    client.start()

def main(args=None):
    num_workers = multiprocessing.cpu_count()
    pool = multiprocessing.Pool(num_workers)
    pool.map(start_client, range(0, num_workers))

PS: I omitted a lot of important stuff in the code above for simplicity.
I think that this approach can facilitate the development and improve the performance making use of the multiple processor cores.
What do you guys think?


pkgs: add linux_{zen,lxq} to top-level

Description of changes
Add linux_zen and linux_lqx to top-level pkgs for consistency with the other kernel variants.
Closes #228044. @PedroHLC

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

I have vague memory that we are no longer adding these aliases, cc @fabianhjr for opinions.

I don't have much context but yeah I think the idea was to move to linuxPackages / linuxKernel.packages.
> rg "linuxPackages.*\.kernel" pkgs/top-level/
pkgs/top-level/all-packages.nix
26724:    base = linuxPackages.kernel;
26737:  linux = linuxPackages.kernel;
26740:  linux_latest = linuxPackages_latest.kernel;
26752:  linux-rt = linuxPackages-rt.kernel;
26753:  linux-rt_latest = linuxPackages-rt_latest.kernel;
26757:  linux_hardened = linuxPackages_hardened.kernel;
26759:  linux_4_14_hardened = linuxPackages_4_14_hardened.kernel;
26761:  linux_4_19_hardened = linuxPackages_4_19_hardened.kernel;
26773:  linux_hardkernel_latest = linuxPackages_hardkernel_latest.kernel;
26777:  linux-libre = linuxPackages-libre.kernel;
26779:  linux_latest-libre = linuxPackages_latest-libre.kernel;

Recent kernels are missing and I think *_latest should be removed if that is the direction nixpkgs is going.

But if we search for lnuxKernel.kernels then all the recent ones are here:
> rg "linuxKernel\.kernels" pkgs/top-level/
pkgs/top-level/aliases.nix
899:  linux-rt_5_10 = linuxKernel.kernels.linux_rt_5_10;
900:  linux-rt_5_15 = linuxKernel.kernels.linux_rt_5_15;
901:  linux-rt_5_4 = linuxKernel.kernels.linux_rt_5_4;
902:  linux-rt_6_1 = linuxKernel.kernels.linux_rt_6_1;
925:  linux_4_14 = linuxKernel.kernels.linux_4_14;
926:  linux_4_19 = linuxKernel.kernels.linux_4_19;
927:  linux_4_9 = linuxKernel.kernels.linux_4_9;
928:  linux_5_10 = linuxKernel.kernels.linux_5_10;
929:  linux_5_15 = linuxKernel.kernels.linux_5_15;
930:  linux_5_18 = linuxKernel.kernels.linux_5_18;
931:  linux_5_19 = linuxKernel.kernels.linux_5_19;
932:  linux_5_4 = linuxKernel.kernels.linux_5_4;
933:  linux_6_0 = linuxKernel.kernels.linux_6_0;
934:  linux_6_1 = linuxKernel.kernels.linux_6_1;
935:  linux_6_2 = linuxKernel.kernels.linux_6_2;
939:  linux_rpi0 = linuxKernel.kernels.linux_rpi1;
940:  linux_rpi02w = linuxKernel.kernels.linux_rpi3;
941:  linux_rpi1 = linuxKernel.kernels.linux_rpi1;
942:  linux_rpi2 = linuxKernel.kernels.linux_rpi2;
943:  linux_rpi3 = linuxKernel.kernels.linux_rpi3;
944:  linux_rpi4 = linuxKernel.kernels.linux_rpi4;

pkgs/top-level/all-packages.nix
26705:  linux_testing = linuxKernel.kernels.linux_testing;
26708:  linux_testing_bcachefs = linuxKernel.kernels.linux_testing_bcachefs;
26724:  linux_5_4_hardened = linuxKernel.kernels.linux_5_4_hardened;
26726:  linux_5_10_hardened = linuxKernel.kernels.linux_5_10_hardened;
26728:  linux_5_15_hardened = linuxKernel.kernels.linux_5_15_hardened;
26730:  linux_6_1_hardened = linuxKernel.kernels.linux_6_1_hardened;
26748:  linux_xanmod = linuxKernel.kernels.linux_xanmod;
26750:  linux_xanmod_stable = linuxKernel.kernels.linux_xanmod_stable;
26752:  linux_xanmod_latest = linuxKernel.kernels.linux_xanmod_latest;

Oh then I am wrong, they should be moved to aliases and use the same pattern then.


Support for intelliJ 2021 products

Hello Olivier,
Hoping to see support for latest intelliJ versions?

Hi @rwitchell!
Yes, finally getting some time of work and will be able to give some love to the plugin again :)

amazing - thanks for the reply and happy to bug test 🙂

Update 1.0.3 of the plugin has been pushed to Jetbrains Plugins and is awaiting approval!


Added new characteristics descriptions

Hi, I have added a few new characteristics descriptions. There's also a flash erase force flag that may come handy for debug purposes.

Forgot to say, fixed a small bug (missing "break") for the STATUS ACTIVE characteristic.


Mock service for demo is down

The DemoInstructions.md link to a "mock BC Government service ("Access to Audio")" that is down:

Application is not available
The application is currently not serving requests at this endpoint. It may not have been started or is still starting.

Thanks for pointing this out. We need to update the link to point to https://verified-email-authentication.vonx.io - we are migrating apps and have not (yet) gone through the process of updating all documentation.


Bandages

Topline changes:

Modularise CompleteButton
Modularise BackButton
Modularise Timer display on TopBar
removeHyphens on TopBar stationName
remove dummy-data.json from Examinations/Extras
Routing: Add New includes 'undefined' in route when clicking through from /history/:station/
Color timer red when time elapsed goes over 10 minutes
Add CaseTitle to results page
Add list of uncompleted elements to Revision results screen

Codecov Report

Merging #126 into master will decrease coverage by 7.34%.
The diff coverage is 36.84%.

@@            Coverage Diff             @@
##           master     #126      +/-   ##
==========================================
- Coverage    87.5%   80.15%   -7.35%
==========================================
  Files          15       15
  Lines         112      131      +19
  Branches       11       13       +2
==========================================
+ Hits           98      105       +7
- Misses         11       21      +10
- Partials        3        5       +2

Impacted Files
Coverage Δ

src/components/TopBar/CompleteButton.js
100% <ø> (ø)
:arrow_up:

src/components/TopBar/TopBar.js
100% <ø> (ø)
:arrow_up:

src/components/Pages/Revision/RevisionPage.js
93.33% <100%> (+0.47%)
:arrow_up:

src/components/Pages/Revision/ResultsContainer.js
100% <100%> (ø)
:arrow_up:

src/app.js
61.53% <14.28%> (-12.98%)
:arrow_down:

Continue to review full report at Codecov.

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


Move remaining errors to AlsaError

If the error is returned to player move the error string to the AlsaError enum.

@roderickvd I figured you like it if all possible error strings were moved up into the AlsaError enum.

@roderickvd as a side note I just tested the error handling by unplugging my DAC during playback. It failed as expected but it leaked error messages into our output.
[2021-06-20T18:25:53Z WARN  librespot_playback::audio_backend::alsa] Error writing from AlsaSink buffer to PCM, trying to recover, ALSA function 'snd_pcm_writei' failed with error 'EPIPE: Broken pipe'
ALSA lib pcm.c:8545:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8548:(snd_pcm_recover) cannot recovery from underrun, prepare failed: Broken pipe
[2021-06-20T18:25:53Z ERROR librespot_playback::player] Fatal error, could not write audio to audio sink: Error writing from AlsaSink buffer to PCM, recovery failed, ALSA function 'snd_pcm_recover' failed with error 'EPIPE: Broken pipe'

This is obviously not directly our output.
ALSA lib pcm.c:8545:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8548:(snd_pcm_recover) cannot recovery from underrun, prepare failed: Broken pipe

I think that may be due to the try_recover in the bindings?
    pub fn try_recover(&self, err: Error, silent: bool) -> Result<()> {
        if let Some(e) = err.errno() {
            self.recover(e as c_int, silent) // <-- Here it does not seem to capture the error from recovery?
        } else { Err(err) } // <-- Here instead of returning the the error from recovery it returns the original error.
    }

Either that or it's leaking in from another thread?

Nope, it's not try_recover I tried basically recreating it but actually capturing the error from recover and no change, it still leaks. It must be leaking from another thread or something? Although I still don't like that try_recover just returns the original error. Looking at the C in  snd_pcm_recover it seems maybe it's possible that  snd_pcm_recover can return an error other that what it receives?

As a side note I think I've managed to simplify  write_bytes in alsa.rs.
Here's my version:
    fn write_bytes(&mut self, data: &[u8]) -> io::Result<()> {
        for i in data.iter() {
            self.period_buffer.push(*i);
            if self.period_buffer.len() == self.period_buffer.capacity() {
                self.write_buf()?;
                self.period_buffer.clear();
            }
        }

        Ok(())
    }

Vs what it is currently:
    fn write_bytes(&mut self, data: &[u8]) -> io::Result<()> {
        let mut processed_data = 0;
        while processed_data < data.len() {
            let data_to_buffer = min(
                self.period_buffer.capacity() - self.period_buffer.len(),
                data.len() - processed_data,
            );
            self.period_buffer
                .extend_from_slice(&data[processed_data..processed_data + data_to_buffer]);
            processed_data += data_to_buffer;
            if self.period_buffer.len() == self.period_buffer.capacity() {
                self.write_buf()?;
                self.period_buffer.clear();
            }
        }
        Ok(())
    }

I have no idea if they compile down to something different and/or if there is a performance difference but my version is certianly more concise.

I pushed the above to write_bytes if you don't like it or think it needs to be a separate PR I can revert it.

Yep as @kingosticks points out my refactor is a an epic fail. So I'm going to revert it. Hey, I tried,lol!!!

Principally I think the code checks out but I wonder if we need so many different error types. There are the generalized HwParams and SwParams errors, and the different Unsupported* errors I understand too, it's something you could catch and do differently. But why drill down in separate Parsing* errors and even the Drain? What would be useful use cases for such explicit errors?

Principally I think the code checks out but I wonder if we need so many different error types. There are the generalized HwParams and SwParams errors, and the different Unsupported* errors I understand too, it's something you could catch and do differently. But why drill down in separate Parsing* errors and even the Drain? What would be useful use cases for such explicit errors?

Fair enough. I figured you'd like removing error strings from the "working" code. If you like you can close this. No hard feelings.
As a side note on a side note (lol) my simplified buffer code is actually the same speed (give or take a couple 100 nanosecs) as the current code if this playground gist I made is correct.
https://gist.github.com/rust-play/0d833117d5f5798e7dcfefbd2d934ad9

What would be useful use cases for such explicit errors?

The main reason for such explicit errors is since you insist on forwarding the errors messages up to the player they will be printed there which means someone may have no idea where in the code the error actually happens because the error message lists it's line number from where it was printed in player. The were is just as important as the why or even more so sometimes. If you don't know where you're left hunting for error strings in the code and if they're generic you may have multiple places that throw the same string.

That's one reason I'm more of a fan of printing error messages where they actually happen and let the caller silently fail as opposed to the current situation.

I'm going to go ahead and close this as it doesn't really seem to add any value. @roderickvd if you disagree or think there's more to discuss feel free to re-open.


Question on usage

I have another use-case i'd like to use blart for. Assume I have a series of chunks bounded by timestamp and containing samples.
pub struct Sample {
  pub timestamp: Timestamp,
  pub value: f64
}

pub struct Chunk {
  pub start: Timestamp,
  pub end: Timestamp,
  pub samples: Vec<Sample>
}

I store multiple chunks per timeseries, and later I need to upsert a Sample in a chunk. For this i need to efficiently locate a chunk into which to insert the sample.
It seems to me that chunks.range(new_sample.timestamp..) won't do the trick, but I can't see any means short of iteration from the start.
Edit: chunks would be indexed by chunk.start

So you would be using a TreeMap<Timestamp, Chunk> as your index structure? And you mentioned that the key would be chunk.start?
I think it would possibly work if you did chunks.range(..=new_sample.timestamp).rev(). The ..=new_sample.timestamp will give you an iterator of chunks where the chunk.start <= new_sample.timestamp. The .rev() is so that the first element in the iterator will be the most likely match.

Somewhat off-topic questions:

For this i need to efficiently locate a chunk into which to insert the sample.

When you insert a new sample into a chunk, do you update the start and end bounds of the chunk? Or is it the case that you'd instead insert a new chunk if the new_sample.timestamp is outside the bounds of any existing chunk?

So you would be using a TreeMap<Timestamp, Chunk> as your index structure? And you mentioned that the key would be chunk.start?
Yes.Timestamp is essentially an alias for i64

When you insert a new sample into a chunk, do you update the start and end bounds of the chunk? Or is it the case that you'd instead insert a new chunk if the new_sample.timestamp is outside the bounds of any existing chunk?

In this case I'm specifically looking at upserts. Imagine a TimeSeries struct that tracks its range..
pub struct TimeSeries {
  pub start: Timestamp,
  pub end: Timestamp,
  pub chunks: TreeMap<Timestamp, Chunk>
}

Checking an incoming Sample against the range we can determine if we need to upsert or add a new chunk. It is of course possible that a chunk may have to be re-indexed (we also want to handle the case when chunks are imbalanced w.r.t the number of samples)

Yes.Timestamp is essentially an alias for i64

One thing to note if you're using an i64 (or any unsigned integer) as a key, is that you'll need to apply a mapping so that the ordering of the byte representation matches the ordering of the type. https://docs.rs/blart/latest/blart/struct.ToIBE.html#impl-BytesMapping<i32>-for-ToIBE is the impl you're looking for, and you would combine it with the Mapped<_, _> struct like so:
use blart::{TreeMap, Mapped, ToIBE, BytesMapping};

// assumption
type Timestamp = i64;

type Map = TreeMap<Mapped<ToIBE, Timestamp>, Chunk>

This does make keys a little more difficult to use sadly, but not impossible. Let me know about any difficulties in this part or any proposals to make this translation more transparent. Its definitely a rough area of the crate


Whisper onnxruntime exception on Android

Description
After invoking Whisper recognizer on Android multiple times consecutively, the following error is encountered:
[E:onnxruntime:, sequential_executor.cc:514 ExecuteKernel] Non-zero status code returned while running Expand node. Name:'/Expand' Status Message: invalid expand shape
Caught exception:
Non-zero status code returned while running Expand node. Name:'/Expand' Status Message: invalid expand shape
Return an empty result. Number of input frames: 300, Current tail paddings: 1000. If you see a lot of such exceptions, please consider using a larger --whisper-tail-paddings

Reproduction Steps:
val sampleRateInHz = 16000
val samples = FloatArray(sampleRateInHz * 3)
// feed samples with 3 seconds of audio then send it for decoding.
...
sherpaOnnxOffline.decode(samples, sampleRateInHz)

Environment Details:

Android target API 34
Device arch: arm64-v8a, armeabi-v7a
Whisper-base.en-int8 is used
SherpaOnnx v1.9.11

Could you describe how you created the APK?
Does it work with the APK from us?

No it crashes the same way. You can reproduce this error with SherpaOnnx2Pass app.
Use sherpa-onnx-whisper-base.en model.

Device arch: arm64-v8a, armeabi-v7a

Just want to re-check that you are using sherpa-onnx 1.9.11, right?
That is, are you using this commit https://github.com/k2-fsa/sherpa-onnx/pull/617 ?

Yes I use version 1.9.11, but I've also tried with the last commit from master #5dc2eaf

Btw, this warning is printed sometime before this exception happened:
Overflow! n: 3200, size: 960000, n+size: 963200, capacity: 960000. Increase capacity to: 1920000

Yes I use your example project SherpaOnnx2Pass with v1.9.11, so code from #617 is used.
Nothing is changed from your codebase. Just build your APK, and start recording an audio long enough and this error happens

start recording an audio long enough

How long is this audio?
Are there pauses? If yes, how long is the pause?

Audio used is a 5 minutes conversation, with pauses.
But the error can happen after a couple of seconds or minutes, depending the phone

Does it cause a crash or the APP can continue work?

No the app doesn't crash. It's an exception printed in the logs

How many exceptions did you see? One or many?

There can be several per session

Does it affect the final recognition result?
These logs are only available in logcat.

Yes because when this error occurs the call to decode may freeze for a long time (~10 to 30 seconds) and no results will be returned.

It's seams this happens when this condition offline-whisper-greedy-search-decoder.cc#L148 is not reached:
if (max_token_id == model_->EOT()) {
  break;
}

Then model_->ForwardDecoder() will be called too many times and will end up throwing an exception

Non-zero status code returned while running Expand node. Name:'/Expand' Status Message: invalid expand shape
Return an empty result. Number of input frames: 300, Current tail paddings: 1000. If you see a lot of such exceptions, please consider using a larger --whisper-tail-paddings

Could you use a larger tail padding? You can always use 30000 to restore the 30 seconds constraint of the original whisper model.

With a padding of 30000 it works better, but then decoding is too long. I would like to keep a small padding

Hello,
we have been experiencing the same errors described above with sherpa-onnx 1.9.23 in Ubuntu environment. We have observed the errors at variable frequency, 1-10 cases per 1000 utterances. They occur with various models (base/small/medium/large, int8/float), but mostly with English monolingual models. A part of problematic audio files seem to cause a timeout and do not get transcribed on the Huggingface API available under https://huggingface.co/spaces/k2-fsa/automatic-speech-recognition either. Monitoring the decoding (logging tokens in the for cycle around line 100 looping over text_ctx) we observe that repetitive patterns occur and the EoT is never reached until the cycle runs out. Sometimes the speaker makes indeed repetitions (like repeating a word many times, 5 times or above) sometimes there is no evident cause of getting stuck in a repetitive loop of tokens without reaching EoT. Increasing the tail paddings help only a very little for us.
Through monitoring the predicted_tokens buffer, we attempted to detect if repetitions start to occur and force an EoT after a critical number of repetitions have occured. This efficiently prevented getting stuck and endig up in an empty transcript with all of our problem utterances. We were trying resetting instead of stopping, but the majority of utterances got stuck again and just some finished with success. The drawback of forcing EoT is that the tail of the audio will not be transcribed. But it helps at least preventing spending a lot of time in the for loop. I am wondering if a more advanced fix is available for the problem?
If there is an interest to review this small code extension, let me know, I am happy to create a PR on a fork or just copy-paste the changes since they are not abundant.
Thank you!

The problem is introduced by our modification to whisper.
The original whisper needs 30 seconds of input. If the input is less than 30, then it is padded to 30, which means it has enough padding to detect the EoT.
In the current change, we remove the 30 seconds constraint and if the padding is small, then it may not abe able to detect the EoT. As described in https://github.com/k2-fsa/sherpa-onnx/issues/633#issuecomment-1985826145, restore the original behavior by padding the input to 30 seconds can fix the issue, at the cost of extra computations for extra paddings.

Actually, our problem is that despite using a padding of 30000, we are still getting invalid shape error and an empty transcript.
Here is the call:
sherpa-onnx-offline --whisper-tail-paddings=30000 --whisper-encoder=base.en-encoder.int8.onnx --whisper-decoder=base.en-decoder.int8.onnx  base.en-tokens.txt --num-threads=1 --provider=cpu samples/problem_1.wav
I can see this utterance gets stuck in repeating tokens 11 and 607 alternately until n_text_ctx is reached with no EoT at the end at all.

Can the official whisper implementation decode your problem_1.wav correctly?

Yes, it can. (I have also double checked that sherpa-onnx versions match , I mean I am using the same version for decoding which was used during export.)

Would you mind sharing.the wav file with.us?

Unfortunately I can't, I am bound by severe data privacy constraints. It may however be of importance, that the majority of the utterances I deal with contain non-native English speech (the whisper model is not fine-tuned). I have so far a couple of problem utterances, as I wrote earlier, some indeed contain repetitions where decoding gets stuck at the repeated word. Others seem to be quite standard utterances.

Hi @csukuangfj , I have a new sample producing the same error, I am able to share it with you by discarding third party public. Please let me know if you can accept the file and if so, the way I could send it to you. Thank you.

Hi @csukuangfj , I have a new sample producing the same error, I am able to share it with you by discarding third party public. Please let me know if you can accept the file and if so, the way I could send it to you. Thank you.

Thanks!
Could you send the test wave to
csukuangfj at gmail dot com


Allow setting buffersize and trap the "docker stop" signal SIGTERM

When running statsrelay in Docker the /proc/sys/net/core/rmem_max file is missing, so I added logical to try and read it. If missing 32k will be used or whatever is set via -bufsize $SIZE
Also noticed statsrelay does not stop nicely when 'docker stop' is used. So I fixed that as well.
Regards!

Thanks again!


Support the GPTCache caching

GPTCache is a library for creating semantic cache to store responses from LLM queries.

@hwchase17 ok, thank you so much


Added support for Azure Storage

This PR provides initial support for Azure Storage resources. It populates resources like Azure Storage Account, Queue Service and Queues, Table Service and Tables, File Service and File Shares, and Blob Service and Blob Containers in the graph DB.

@ramonpetgrave64 Completed the requested changes and updated code in the branch! :)


AWS EKS worker node taints

Hello.
As far as I understand pulumi golang doesn't have possibility to create tainted worker node for EKS.
https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
I've found this possibility only for TypeScript.
https://www.pulumi.com/docs/guides/crosswalk/kubernetes/worker-nodes/#pod-scheduling
Is it planned to implement it for golang?

The https://github.com/pulumi/pulumi-eks component is a higher-level API for working with EKS in Pulumi.  It is currently only available in TypeScript, but you can do the same things that higher-level library does in any Pulumi language.  See the implementation of the taints feature here.  The full higher-level Pulumi EKS package is coming to all Pulumi languages soon as part of https://github.com/pulumi/pulumi-eks/issues/408 and https://github.com/pulumi/pulumi-eks/issues/57 (expected ~end of this month).

@lukehoban Hi.

The full higher-level Pulumi EKS package is coming to all Pulumi languages soon as part of pulumi/pulumi-eks#408 and pulumi/pulumi-eks#57 (expected ~end of this month).

Am I right that end of this month is end of october? Could you please tell the approximate timeline for porting of pulumi-eks to golang?

@Kirill-Garbar We were originally targeting end of October. We ran into a couple problems while porting and have revised the timeline and are targeting 11/11 (see also https://github.com/pulumi/pulumi/issues/2430)


Move export button to notebook/toolbar overflow menu

For https://github.com/microsoft/vscode-jupyter/issues/6845

Codecov Report

Merging #6861 (28b8f14) into main (af69181) will decrease coverage by 0%.
The diff coverage is n/a.

@@          Coverage Diff           @@
##            main   #6861    +/-   ##
======================================
- Coverage     68%     68%    -1%
======================================
  Files        410     410
  Lines      28522   28522
  Branches    4263    4263
======================================
- Hits       19610   19438   -172
- Misses      7212    7406   +194
+ Partials    1700    1678    -22

Impacted Files
Coverage Δ

...ience/variablesView/variableViewMessageListener.ts
22% <0%> (-78%)
:arrow_down:

...ent/common/application/webviewViews/webviewView.ts
14% <0%> (-72%)
:arrow_down:

...c/client/datascience/variablesView/variableView.ts
18% <0%> (-62%)
:arrow_down:

src/client/common/application/webviews/webview.ts
13% <0%> (-54%)
:arrow_down:

src/client/datascience/webviews/webviewViewHost.ts
19% <0%> (-53%)
:arrow_down:

...on/application/webviewViews/webviewViewProvider.ts
80% <0%> (-20%)
:arrow_down:

.../datascience/variablesView/variableViewProvider.ts
65% <0%> (-16%)
:arrow_down:

...lient/datascience/variablesView/notebookWatcher.ts
77% <0%> (-13%)
:arrow_down:

src/client/datascience/webviews/webviewHost.ts
80% <0%> (-7%)
:arrow_down:

...datascience/interactive-common/notebookProvider.ts
81% <0%> (-6%)
:arrow_down:

... and 15 more


Add a "what's express popover"

Adds a "what's express" popover to Express/Core tabsets
@gregswinehart this is ready for style nudges!
https://github.com/posit-dev/py-shiny-site/assets/5420529/c60d1a49-b593-47d7-b700-22c2ccb27f87

Thank you sir! I will mess with it shortly.

@gregswinehart I'm going to merge this into rc-express so that it's part of our previews.


Add the rest of the precompiles

Couldn't find tests for elliptic curve operations, So did lots of mocking.
TODO: gas calculations

I took the liberty of resolving the merge conflicts.

Awesome, Thanks @b-mueller

This PR is ancient. Is anybody up for resolving the conflicts an getting it merged?


perf: Improve get icons

Details

On the trace provided by Jason, we observed that getIcons consumes ~400ms as a whole. On the heavy accounts that we have with ~15k reports, we were able to reproduce something similar and got around ~108ms.
The fix is to avoid re-calculating default workspace icons if there's no change. This helps in reducing the execution time to ~54ms.
Before:

After:

Fixed Issues

$ https://github.com/Expensify/App/issues/45528
PROPOSAL:
Tests

Steps:

Change the icon of a workspace and verify it is updated correctly

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

Offline tests

QA Steps

[ ] 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: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb 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 the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[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] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[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 grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[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 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(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[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 the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[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] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

https://github.com/user-attachments/assets/3b67c152-6201-4fee-b22b-c773191ca31a

Android: mWeb Chrome

https://github.com/user-attachments/assets/5dd2e06d-9e20-4650-9c04-1aa788929ec2

iOS: Native

https://github.com/user-attachments/assets/b92853cc-19f7-46af-85c5-6dccf0c308f6

iOS: mWeb Safari

N/A

MacOS: Chrome / Safari

https://github.com/user-attachments/assets/121112b5-f465-440f-a48b-ef361662e3a7

MacOS: Desktop

https://github.com/user-attachments/assets/7ebb9dbf-00d9-42f0-b1f5-62b1004396e6

: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/neil-marcellini in version: 9.0.21-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/Beamanator in version: 9.0.21-4 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
failure ❌

🍎 iOS 🍎
success ✅

🕸 web 🕸
failure ❌

🚀 Deployed to production by https://github.com/Beamanator in version: 9.0.21-4 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Missing section of enabling SQL text collection in Azure Functions

There is a note in this doc:
"Azure Functions requires separate settings to enable SQL text collection, see configure monitoring for Azure Functions to learn more."
But in the link there is no word about how to enable SQL text collection.
Maybe the feed back is for this page https://docs.microsoft.com/EN-US/azure/azure-functions/configure-monitoring?tabs=v2 but nevertheless there is no information on how to enable SQL text collection for Azure Functions.

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

ID: c4ded2ce-d8c3-7118-bec9-865f6225dbe0
Version Independent ID: a4089752-177c-866c-7237-3ac02c7750d9
Content: Dependency Tracking in Azure Application Insights - Azure Monitor
Content Source: articles/azure-monitor/app/asp-net-dependencies.md
Service: azure-monitor
Sub-service: application-insights
GitHub Login: @lgayhardt
Microsoft Alias: lagayhar

@nicklasjepsen Thanks for your feedback.
Assigning to content author @lgayhardt for review.

@nicklasjepsen Thanks for catching that. It looks like the Azure Functions team hasn't updated their documentation yet for enabling SQL text collection in App Insights.
Within host.json set "EnableDependencyTracking": true, and "DependencyTrackingOptions": { "enableSqlCommandTextInstrumentation": true } in applicationInsights.
Example:
{
  "version": "2.0",
  "logging": {
    "applicationInsights": {
      "EnableDependencyTracking": true,
      "DependencyTrackingOptions": {
        "enableSqlCommandTextInstrumentation": true
      }
    }
  }
}

#please-close

@nicklasjepsen Thanks for catching that. It looks like the Azure Functions team hasn't updated their documentation yet for enabling SQL text collection in App Insights.

No problem. It would be great to have that added to the Azure Functions documentation.

@nicklasjepsen Thanks for catching that. It looks like the Azure Functions team hasn't updated their documentation yet for enabling SQL text collection in App Insights.

No problem. It would be great to have that added to the Azure Functions documentation.

I will pass it on to the Azure Functions doc team! Thank you =)


Rename satisfyApiSpec to satisfyApiDef?

OpenAPI version
2 and 3
Is your feature request related to a problem? Please describe.
Some have suggested that what we're calling an API "specification" may be more accurately referred to as an API "definition".
The official OpenAPI 3 Specification arguably supports this:

The OpenAPI Specification (OAS) defines a standard, language-agnostic interface to RESTful APIs which allows both humans and computers to discover and understand the capabilities of the service without access to source code, documentation, or through network traffic inspection. When properly defined, a consumer can understand and interact with the remote service with a minimal amount of implementation logic.

An OpenAPI definition can then be used by documentation generation tools to display the API, code generation tools to generate servers and clients in various programming languages, testing tools, and many other use cases.

Perhaps the OpenAPI Specification defines the rules for the OpenAPI definitions that users write and use. If so, then users should write expect(res).toSatisfyApiDef() rather than expect(res).toSatisfyApiSpec().
Describe the solution you'd like
If users want this change, then we should alias toSatisfyApiSpec with toSatisfyApiDef, and gradually deprecate toSatisfyApiSpec.
Your vote counts
We should only implement this if users actually want this change. Let us know by up/downvoting

It doesn't seem like users want this! Please reopen if you in fact do


[nrf fromtree] arch: arm: cortex_m: align vector table based on VTOR

Enforce VTOR table offset alignment requirements on Cortex-M
vector table start address.
Signed-off-by: Ioannis Glaropoulos<EMAIL_ADDRESS>

This is just a test to check why CI is failing in other PR. Please do not review this.


test: Add tests to the /did/create API [DEV-3198]

[x] Add positive and negative integration tests for /did/create API.

Task linked: DEV-3197 Improve /did/create API

Task linked: DEV-3198 Add tests to the /did/create API


Frontend Project "QUIZ APP" Alignment

Title and Issue number
Frontend Project "QUIZ APP" Alignment
Close #3704
Output
Before

After

Checklist:

[x] I have mentioned the issue number in my Pull Request.
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have created a helpful and easy to understand README.md

Hi @MohitGupta121
Kindly review this pull request.


refine def of  "enzyme activator activity"

Def needs sharpening to match or use parent "enzyme regulator activity"
enzyme regulator activity
Binds to and modulates the activity of an enzyme.
Enzyme activator activity
Increases the activity of an enzyme.
Reported by: ValWood
Original Ticket: geneontology/ontology-requests/11725

This ticket has been superceded:


3.0.2 + error: 'MainActor' is only available in iOS 13.0 or newer

Bug Report
iOS Deployment min target: iOS 13.0
Xcode 16.1 (16B40)
MacOS 15.1 (24B83)
SPM only -> https://github.com/hackiftekhar/IQPullToRefresh.git -> 3.0.2
Current behavior
Getting error as below when build
../SourcePackages/checkouts/IQPullToRefresh/IQPullToRefresh/MainActor+AssumeIsolated.swift:25:11: error: 'MainActor' is only available in iOS 13.0 or newer
extension MainActor {

Expected behavior
Should not get error when compile or build

Done! Thanks for reporting @parmar-mehul


REQUEST:  repo for volcano descheduler

Name for new repository
descheduler
Who should have admin access(subproject owners)?
@kevin-wangzefeng
@william-wang
@Monokaix
Who should have write access?
@william-wang
@kevin-wangzefeng
@lowang-bh
@hwdef
@archlitchi
@Monokaix
Who should be listed as approvers and reviewers in OWNERS?
approvers:
@william-wang
@kevin-wangzefeng
@Monokaix
reviewers:
@william-wang
@kevin-wangzefeng
@lowang-bh
@hwdef
@archlitchi
@Monokaix
What should the repo description be?
Repository for volcano descheuler
Additional context for request.
As described and discussed in https://github.com/volcano-sh/volcano/issues/3889#issuecomment-2559147460, it's better create a new repo named descheduler to include descheduling-related functionality, which is easy to maintain and does not conflict with the main volcano repository, users can choose to deploy only the descheduler to use volcano rescheduling capabilities
Related issue:
https://github.com/volcano-sh/volcano/issues/3889

+1 great!

lgtm
+1

+1

lgtm
+1

+1

descheduler repo is available at: https://github.com/volcano-sh/descheduler

/close


XML data source support

would it be possible to add a xml as data source (instead of json)?

would be great to have xml as data source

good idea, I will consider this

good idea, I will consider this


[SPARK-41629][CONNECT][FOLLOW] Enable access to SparkSession from Plugin

What changes were proposed in this pull request?
This patch allows the planner and command plugins for Spark Connect to access the Spark Session and let other consumers access the configuration provided by the module. Without access to the Spark session the plugins cannot provide their full usability.
Why are the changes needed?
Usability
Does this PR introduce any user-facing change?
Plugins have access to Spark session.
How was this patch tested?
Added assertion in UT that Spark session is not null.

R: @HyukjinKwon @zhengruifeng

merged into master

These aren't API. Configuration is supposed to be internal, and SparkConnectPlanner isn't also supposed to be exposed to the end users, and we don't keep the binary compatibility there.
I'm fine as a one-time thing since this is already merged but let's avoid such change next time.


Replace example causes infinite recursion

If I take the replaceWith example and run it exactly I get an infinite loop.
BinaryExpression(path) {
  path.replaceWith(
    t.binaryExpression("**", path.node.left, t.numberLiteral(2))
  );
}

I made an example here: http://astexplorer.net/#/XYjKjnPM46/3
It makes sense to me why that would happen, but I wanted to know what the most idiomatic way to avoid that would be.  I can obviously add some if logic, but I wasn't sure if that's the best way, is there a way to tell it to automatically skip those nodes that I'm creating?  If there is some better way, it might be worth noting in the docs.
Thanks

Ah right, well you can do either this:
const replaced = Symbol('replaced');

export default function ({types: t}) {
  return {
    visitor: {
      BinaryExpression(path) {
        if (path.node[replaced]) return;
        const replacement = t.binaryExpression("**", path.node.left, t.numberLiteral(2))
        replacement[replaced];
        path.replaceWith(replacement);
      }
    }
  };
}

Or
export default function ({types: t}) {
  return {
    visitor: {
      BinaryExpression(path) {
        if (
          path.node.operator === '**' &&
          t.isNumericLiteral(path.node.right, { value: 2 })
        ) {
          return;
        }

        path.replaceWith(
          t.binaryExpression("**", path.node.left, t.numberLiteral(2))
        );
      }
    }
  };
}

Depending on what you want the semantics to be


Average of Accuracy, Loss, Etc..

🚀 Feature
Average of Accuracy, Loss, Etc.
there will be a parameter called average.
And if the user wants the average of the accuracy so I think this will be easier for some people.
This will be another metric for everyone.
Motivation
I have used this myself a few times
and I think its really easy
Alternatives
I couldn't find any
With best regards,
Ranuga

Feature
Average of Accuracy, Loss, Etc.
there will be a parameter called average. And if the user wants the average of the accuracy so I think this will be easier for some people.
This will be another metric for everyone.
Motivation
I have used this myself a few times and I think its really easy
Alternatives
I couldn't find any
With best regards, Ranuga

and I would create the feature.
If this feature is useful please assign me to this question.
With best regards,
Ranuga


Tool to roll a ZFS dataset back to a pristine clone of an origin dataset/snapshot

Description:
Does what it says in the PR title.
Issues affected:
Resolves #283

This change is

Reviewed 2 of 2 files at r1.
Review status: all files reviewed at latest revision, 1 unresolved discussion.

boot/bin/rollback_clone, line 13 [r1] (raw file):

# If SOURCE is a snapshot, this is relatively simple
# If SOURCE is just a dataset, use the newest snapshot of it.
# I no snapshot exists of the SOURCE dataset, create one to use.

"If" typo

Comments from Reviewable

Review status: 1 of 2 files reviewed at latest revision, 1 unresolved discussion.

boot/bin/rollback_clone, line 13 [r1] (raw file):
Previously, TauZero (Brian Bickerton) wrote…
> "If" typo

Fixed.

Comments from Reviewable

Reviewed 1 of 1 files at r2.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

Reviewed 1 of 2 files at r1, 1 of 1 files at r2.
Review status: all files reviewed at latest revision, all discussions resolved, some commit checks pending.

Comments from Reviewable


fix: Incorrect Icon Used for Light Mode Theme

What would you like to share?
I noticed that the website is currently displaying a moon icon in the light mode theme. While this may seem like a small detail, it can actually have a negative impact on the user experience. The moon icon is commonly associated with dark or night mode themes, while a sun icon is typically used for light mode themes.
Using the wrong icon can confuse users and make it more difficult for them to understand how to toggle between light and dark modes. I would recommend updating your light mode theme to use a sun icon instead of a moon icon. This will help ensure that users can easily identify the current mode and provide a more consistent and intuitive user experience.
https://user-images.githubusercontent.com/103263909/234738077-74345c11-a805-4427-8beb-75f96106082e.mp4
I want to work on it.
Additional information
No response

Thank you for this suggestion and I understand how this might be confusing.  However the icon that is displayed does not represent the mode you are on, but the alternate mode.
We may consider adding a drop down in future in Profile settings (where the user can choose between the modes), but this would be at a later stage in the project rather than now - so I will be closing this issue.

I have looked at various other websites and everyone seems to do it differently. When we redesign the navigation and profile settings etc I think this can be addressed then.
Thank you for the feedback and suggestion 👍

Thanks @eddiejaoude for taking this suggestion.


[DEFECT] ExternalRay test failing

Thank you for the defect report

[X] I am using the latest version of RAVEN.
[X] I have read the Wiki.
[X] I have created a minimum, reproducible example
that demonstrates the defect.

Defect Description
In the regression testing for Mingw, the test tests\framework\InternalParallelTests\ExternalModelRay is consistently failing, and should be considered for CCB exception in PRs while we pursue solutions.
Steps to Reproduce
Run regression tests on main branch
Expected Behavior
Pass tests
Screenshots and Input Files
see https://civet.inl.gov/job/2509941/ for example
OS
Windows
OS Version
No response
Dependency Manager
CONDA
For Change Control Board: Issue Review

[X] Is it tagged with a type: defect or task?
[X] Is it tagged with a priority: critical, normal or minor?
[X] If it will impact requirements or requirements tests, is it tagged with requirements?
[X] If it is a defect, can it cause wrong results for users? If so an email needs to be sent to the users.
[X] Is a rationale provided? (Such as explaining why the improvement is needed or why current code is wrong.)

For Change Control Board: Issue Closure

[ ] If the issue is a defect, is the defect fixed?
[ ] If the issue is a defect, is the defect tested for in the regression test system?  (If not explain why not.)
[ ] If the issue can impact users, has an email to the users group been written (the email should specify if the defect impacts stable or master)?
[ ] If the issue is a defect, does it impact the latest release branch? If yes, is there any issue tagged with release (create if needed)?
[ ] If the issue is being closed without a pull request, has an explanation of why it is being closed been provided?

The suggestion is good to me (CCB).


Remove AUC from all

What does this PR do?
Fixes #1379
Prevents from torchmetrics.classification import * statements.
Before submitting

[ ] Was this discussed/approved via a Github issue? (no need for typos and docs improvements)
[ ] Did you read the contributor guideline, Pull Request section?
[ ] Did you make sure to update the docs?
[ ] Did you write any new necessary tests?

PR review
Anyone in the community is free to review the PR once the tests have passed.
If we didn't discuss your PR in Github issues there's a high chance it will not be merged.
Did you have fun?
Make sure you had fun coding 🙃

@SkafteNicki should we add a very simple test that does this import just to be sure it works and we don't have regressions there?


Update to Documentations

That wasn't a mistake, I know the version is 1.0.2. However I was putting changelog for the changes I had made when you bumped it up to 1.0.0. As I haven't checked to see what changes you made for the 2 additional patches.

@tenorz007 Nothing on the API side as you can see here https://github.com/prodicus/vocabulary/compare/1.0.0...master

@prodicus So what should be in the changelog then....

@tenorz007 got nothing specific in mind as there wasn't anything specific to the API.

@prodicus That means there's no notable changes to be added to the change
log then.....
On Apr 11, 2017 18:01, "Tasdik Rahman"<EMAIL_ADDRESS>wrote:

@tenorz007 https://github.com/tenorz007 got nothing specific in mind as
there wasn't anything specific to the API.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/prodicus/vocabulary/pull/31#issuecomment-293328698,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AIZg-iIdVszIwlrltFEEONndbO_7m50-ks5ru7HtgaJpZM4M576k
.

@tenorz007 yup

@prodicus By the way, I don't think you've been creating releases, just
tags.
On Apr 12, 2017 13:14, "Tasdik Rahman"<EMAIL_ADDRESS>wrote:

@tenorz007 https://github.com/tenorz007 yup
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/prodicus/vocabulary/pull/31#issuecomment-293558037,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AIZg-vSxRqDSfzdjB_g_DOWcoSJftxRPks5rvMA-gaJpZM4M576k
.

Yup. Here is my current workflow.
make all the new changes and commit them to git and then create a tag and
push it to github. Is that the wrong way? Correct me if I am wrong here
Regards,
Tasdik
[image: http://]tasdikrahman.me
http://tasdikrahman.me/
[image: https://in.linkedin.com/in/tasdikrahman]
https://in.linkedin.com/in/tasdikrahman http://github.com/prodicus
http://www.quora.com/Tasdik-Rahman
https://plus.google.com/+TasdikRahman https://twitter.com/tasdikrahman
On Wed, Apr 12, 2017 at 9:45 PM, Chizzy Alaedu<EMAIL_ADDRESS>wrote:

@prodicus By the way, I don't think you've been creating releases, just
tags.
On Apr 12, 2017 13:14, "Tasdik Rahman"<EMAIL_ADDRESS>wrote:

@tenorz007 https://github.com/tenorz007 yup
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/prodicus/vocabulary/pull/31#issuecomment-293558037,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AIZg-vSxRqDSfzdjB_g_
DOWcoSJftxRPks5rvMA-gaJpZM4M576k>
.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/prodicus/vocabulary/pull/31#issuecomment-293629873,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEdMBqxFHwdC8LTrs0MVi-nVKRdJuIEvks5rvPiJgaJpZM4M576k
.


chore: bdd-spring-1575064257 to 0.0.1

chore: Promote bdd-spring-1575064257 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Add a property to text rendering widgets that allows for adding a tooltip when the text is overflowed

In many cases for text widgets, we do not want to show a redundant tooltip (e.g. "This is my text widget with words" with a tooltip of "This is my text widget with words". But it would be useful to show a tooltip with the full content when the text is ellipsized (e.g "This is my text widg..." with a tooltip "This is my text widget with words". It would be useful if there was a tooltipOnOverflow property on Text(and likely on other text widgets with the overflow field).

CC @justinmc
This sounds like a good idea

I agree, we should make it easy to do this.  Maybe we could make this possible in a compositional way before considering adding a parameter to Text.  Something like this:
Tooltip(
  onTriggered: () {
    final Text text = textKey.currentWidget;
    if (text.isOverflowing) {
      return true;
    }
    return false;
  },
  child: Text(
    'very long text',
    key: textKey,
  ),
),

Though currently 1. onTriggered is just a VoidCallback, it doesn't decide whether to show the tooltip or not, and 2. there's nothing easy to determine if the text is overflowing like isOverflowing.
Also just as a side note, I thought that this happened automatically on the web (not Flutter), but it seems like I'm wrong, and you have to manually create a tooltip with CSS and/or JS.


Unable to load yumi_moveit_config in moveit setup asisstant!

I don't understand what i am doing wrong but i can't load yumi moveit config in setup asisstant to edit it.

Okay setup asisstant says that it is unable to locate urdf file yumi.urdf, although in yumi/description/urdf folder there is not file with such an extension. There are only yumi.urdf.xacro, yumi.xacro and some other files

Although usually files with urdf.xacro is possible to load in setup asisstant. So can anyone help me to selve this problem or try yourself if you have the same problem?
P.S Sorry for bad quality pictures, something went wrong.. But as it is possible to understand them and due to time absence I won't try to change them. :)

Hi,
this is a known issue, as I could not find a way to convince moveit to open the xacro files. Probably there is a better way to do it, but at the moment, I suggest to manually run xacro on the yumi.urdf.xacro, passing along as an argument the interface to the robot that you need (either position or velocity) like this:
roscd yumi_description/urdf/ rosrun xacro xacro.py yumi.urdf.xacro prefix:=PositionJointInterface > yumi.urdf
If you come up with a better way (maybe changing something in the setup assistant launch file?) please try it out, test it, and open a pull request. We'd be happy to have this issue solved.
cheers,
T.

A workaround for this could be to create two top-level wrapper xacros that define values for the prefix arg. Those could then be loaded into the MSA directly.
Note that on Indigo the MSA can load xacros that require Jade+ xacro since ros-planning/moveit#540. That may further simplify things.


Continue analyze process on zip file error

Presently, an error in decompressing a particular file embedded in an archive type causes the processing to halt and report the error.  A suggestion was made to continue processing other files in the archive while reporting the error.
One thought might be to have a max or fatal error limit.
The implementation would need to add failed file metadata to the FileEntry object but mark it as "bad" which would be checked etc.  While not necessarily a bug in the decompression i.e. file may be corrupt, this could be an enhancement if enough people are needing this.

I suggest having an output field for failing analysis of a single file or archive (i.e. not actually a fatal error overall) and to continue execution unless you absolutely can't. Otherwise scanning large quantities of files which may contain failures has many interruptions.
-------- Original Message --------
On Apr 8, 2020, 12:57 PM, Guy Acosta wrote:

Presently, an error in decompressing a particular file embedded in an archive type causes the processing to halt and report the error. A suggestion was made to continue processing other files in the archive while reporting the error.
One thought might be to have a max or fatal error limit.
The implementation would need to add failed file metadata to the FileEntry object but mark it as "bad" which would be checked etc. While not necessarily a bug in the decompression i.e. file may be corrupt, this could be an enhancement if enough people are needing this.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

+1 for this. Currently having this issue with scanning. Would be preferable to have a flag to continue unless absolutely necessary to crash out.

@markkuu I have some improvements for this in #204 and we will have more on that once microsoft/OSSGadget#47 is complete.

@guyacosta Per your initial desecription

The implementation would need to add failed file metadata to the FileEntry object but mark it as "bad" which would be checked etc. While not necessarily a bug in the decompression i.e. file may be corrupt, this could be an enhancement if enough people are needing this.

I don't think this is needed. If multiextractor doesn't know how to extract the file properly its not useful to Application Inspector.  If you want a "export invalid entries" option I'd add a new issue to OSSGadget.  I think we can call this fixed (durable to malformed archives) with microsoft/OSSGadget#47 and once we update to use the published nupkg of multiextractor.

This is complete. I brought over the engine from upstream multi extractor.


first draft of ppp

Codecov Report

Merging #165 (47ad67c) into master (93b8d44) will decrease coverage by 0.50%.
The diff coverage is 85.71%.

@@             Coverage Diff              @@
##             master     #165      +/-   ##
============================================
- Coverage     72.94%   72.44%   -0.51%
+ Complexity      608      601       -7
============================================
  Files            88       88
  Lines          1889     1876      -13
  Branches        221      217       -4
============================================
- Hits           1378     1359      -19
- Misses          427      434       +7
+ Partials         84       83       -1

Impacted Files
Coverage Δ

...a/seedu/address/logic/parser/AddCommandParser.java
100.00% <ø> (ø)

.../seedu/address/logic/parser/EditCommandParser.java
93.10% <85.71%> (+0.24%)
:arrow_up:

...a/seedu/address/logic/parser/ArgumentMultimap.java
63.15% <0.00%> (-36.85%)
:arrow_down:

Continue to review full report at Codecov.

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


[SPARK-45562][DOCS] Regenerate docs/sql-error-conditions.md and add 42KDF to SQLSTATE table in error/README.md

What changes were proposed in this pull request?
This pr re-generate docs/sql-error-conditions.md and add 42KDF to SQLSTATE table in error/README.md refer to https://docs.gcp.databricks.com/error-messages/sqlstates.html

Why are the changes needed?
Make GA pass
https://github.com/apache/spark/actions/runs/6874376893/job/18695941494
[info] - SQLSTATE invariants *** FAILED *** (30 milliseconds)
[info]   fx.apply(s) was false 42KDF (SparkThrowableSuite.scala:74)
[info]   org.scalatest.exceptions.TestFailedException:
[info]   at org.scalatest.Assertions.newAssertionFailedException(Assertions.scala:472)
[info]   at org.scalatest.Assertions.newAssertionFailedException$(Assertions.scala:471)
[info]   at org.scalatest.Assertions$.newAssertionFailedException(Assertions.scala:1231)
[info]   at org.scalatest.Assertions$AssertionsHelper.macroAssert(Assertions.scala:1295)
[info]   at org.apache.spark.SparkThrowableSuite.$anonfun$checkCondition$1(SparkThrowableSuite.scala:74)
[info]   at scala.collection.immutable.List.foreach(List.scala:333)
[info]   at org.apache.spark.SparkThrowableSuite.checkCondition(SparkThrowableSuite.scala:73)
[info]   at org.apache.spark.SparkThrowableSuite.$anonfun$new$6(SparkThrowableSuite.scala:138)
[info]   at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
[info]   at org.scalatest.enablers.Timed$$anon$1.timeoutAfter(Timed.scala:127)
....
[info] - Error classes match with document *** FAILED *** (71 milliseconds)
[info]   "...gs-error-class.html)[
[info]
[info]   ### XML_ROW_TAG_MISSING
[info]
[info]   [SQLSTATE: 42KDF](sql-error-conditions-sqlstates.html#class-42-syntax-error-or-access-rule-violation)
[info]
[info]   `<rowTag>` option is required for reading files in XML format.]" did not equal "...gs-error-class.html)[]" The error class document is not up to date. Please regenerate it. (SparkThrowableSuite.scala:346)
[info]   Analysis:
[info]   "...gs-error-class.html)[
[info]
[info] ### XML_ROW_TAG_MISSING
[info]
[info] [SQLSTATE: 42KDF](sql-error-conditions-sqlstates.html#class-42-syntax-error-or-access-rule-violation)
[info]
[info] `<rowTag>` option is required for reading files in XML format.]" -> "...gs-error-class.html)[]"

Does this PR introduce any user-facing change?
No
How was this patch tested?

Pass GitHub Actions
Manual check build/sbt   "core/testOnly *SparkThrowableSuite"

Before
[info] Run completed in 1 second, 205 milliseconds.
[info] Total number of tests run: 19
[info] Suites: completed 1, aborted 0
[info] Tests: succeeded 17, failed 2, canceled 0, ignored 0, pending 0
[info] *** 2 TESTS FAILED ***
[error] Failed tests:
[error]         org.apache.spark.SparkThrowableSuite

After
[info] Run completed in 1 second, 131 milliseconds.
[info] Total number of tests run: 19
[info] Suites: completed 1, aborted 0
[info] Tests: succeeded 19, failed 0, canceled 0, ignored 0, pending 0
[info] All tests passed.

Was this patch authored or co-authored using generative AI tooling?
No

cc @HyukjinKwon @beliefer @sandip-db

LGTM. @LuciferYang  Thanks for the quick fix.

Thanks @dongjoon-hyun @HyukjinKwon @beliefer @sandip-db


Plaid login issue with Testcafe >= v.1.11.0

After upgrading from Testcafe v1.3.0 to v1.11.0, our E2E started to fail when testing Plaid integration.
What is your Test Scenario?
Testing Plaid (https://plaid.com/) login and linking an account to a bank.
What is the Current behavior?
Page's DOM goes blank after going through an authentification.
What is the Expected behavior?
Page's DOM should not go blank. When testing with Testcafe v.1.3.0 up to v.1.10.0, this does not happen
What is your web application and your TestCafe test code?
Attached an app with a frontend and a node backend to reproduce this issue using a Plaid sandbox account.

Complete example attached
[plaid-testcafe.zip](https://github.com/DevExpress/testcafe/files/6305064/plaid-testcafe.zip)
Please check the README file on how to run the frontend, backend and the test. The example is fairly easy and should work on any machine.

Steps to Reproduce:

Click on "Launch Link"

Click on "Continue"

Choose "Chase bank" option

Enter login: user_good/pass_good. Click "Submit".

Success page looks something like this, but the DOM is just

Your Environment details:

testcafe version:                   1.14.0
node.js version:                    14.15.4
command-line arguments:  testcafe chrome e2e/tests/test.js --hostname localhost
browser name and version:  Chrome 89
platform and version:          macOS 10.15.7

Mentioning this bug reproduces also with the latest Testcafe version 1.14.0.

Thank you for providing the example. I have reproduced the described behavior. We will investigate this issue.

Any updates @VasilyStrelyaev?  Has a fix gone out in a new version of Test Cafe?

Mentioning that someone on the team found a workaround.
When the html DOM goes blank, insert this:
await t.closeWindow();
await t.switchToIframe('#plaid-link-iframe-1');
Probably there was an empty popup that was being opened. Doing a closeWindow and then switching back to the iframe seems to fix it for now.
I hope this helps.

@george-vrancianu
Hello,
Thank you for the workaround. Note that you can disable Multiple Windows if you don't need it in your test. This should fix this issue.


fix: vexflow integration with tests and docs

I'm running these changes in my current project at vexflow 1.2.87 and they are working as expected. Was also able to import into garageband.app

Awesome, thanks @jduhls!

#20


Add unit tests for the command line

I figured out how to do it, but I need to take some time to actually write the tests.

Added using Nixt in that latest beta release.


Support npm install

BUG=XWALK-6344

@huningxin is this PR ready for review?

I will wait for new app-tool release to verify this PR. I will ping you after that. Thanks!

Verified with app-tool v0.10.3 release.
ping @halton , PTAL. Thanks!

LGTM with the nits.


Improve Rust implementation

The Rust implementation doesn't stop on the first match but continues to the end of the file. Also the window method is a very slow approach (see comments here https://stackoverflow.com/questions/35901547/how-can-i-find-a-subsequence-in-a-u8-slice )
I suggest this implementation which tripled the performance for me (YMMV because you used a different binary file)
[dependencies]
memmem = "0.1.1"

#![warn(clippy::pedantic)]
use std::{
    fs::File,
    io::{self, Seek, Read},
};

use memmem::{TwoWaySearcher, Searcher};

const CAP: usize = 65536;
const NEEDLE: [u8; 12] = *b"--boundary--";

fn main() -> io::Result<()> {
    let mut file = File::open("/home/kai/temp/file.bin")?;
    let mut count = 0;
    let searcher = TwoWaySearcher::new(&NEEDLE);
    let mut buffer = vec![0; CAP];

    loop {
        count += 1;
        match file.read(&mut buffer)? {
            0 => break,
            length => {
                if let Some(offset) = searcher.search_in(&buffer[0..length]) {
                    println!("Number of chunks {:?}", count);
                    println!("Found index {:?}.", file.stream_position().unwrap() - length as u64 + offset as u64);
                    return Ok(());
                }
            }
        };
    }

    Ok(())
}

I didn't fix the bug where needles that lie across a chunk boundary won't be found.
I'd love to see your numbers updated with that approach.

Indeed your implementation of Rust is faster, I will add the code and update results. Thanks for taking the time. 🙂

will update soon, thanks

Awesome! Thanks for the quick update.
That's looks more like what I expected ;)


Debian support

Love this project and the documentation, but is there any particular reason why debian isn't supported?

Love this project and the documentation, but is there any particular reason why debian isn't supported?

Thank you for your feedback!
If your concern is about the host OS, the reason is mostly because I didn't have the chance to test it on a Debian box.
I assume it could still work as the packages are quite standard, if you want to try that out, you can just add a check for ansible_distribution == Debian in 00,01,02,03 playbooks, as I suppose debian packages are the same and the project is made to use APT for debian-derived distros.
Would you be interested in running this test?
Thank you!!

Ah great, no actual limiting reason then, I'll give it a whirl and tell you what I see.