Fix import of private function for flask 2.0.0

Flask commit b146a13f633b0e2e26e3b8383b3db0feb563bc83
moved def _endpoint_from_view_func from src/flask/helpers.py to src/flask/scaffold.py
It looks like this will be released with flask 2.0.0

Why was this issue closed and the PR branch deleted? The patch has not been released.

@rena2damas It has been fixed in PR #915 in a way that does not require importing private flask functions, but it has not been released yet.

@schuderer the merged fix was only added after my comment was made


[Move VM] enforce canonical ULEB encodings

Motivation
Make sure that our ULEB encoding of u32 and u16 integers in Move VM are unique.
Test Plan
cargo x test -p vm number_tests

Related PRs
Initially, I made these observations while working on #2987

sorry I am not clear what this is doing, can you articulate a bit more?
thanks

@dariorussi When two distinct bitstrings can decode into the same value, then the serialization is not "canonical". This can cause various compatibility and security concerns, for instance: (1) people may not agree on the hash of a given value (if hashing is based on serialized bits); (2) valid bitstrings of arbitrary sizes may or may not be accepted (e.g. decode([0x80, ... 0x80, 0x00]) = 0).
This diff makes sure to only accept minimal-size ULEB128 encodings for u16 and u32 integers.

@bors-libra r=vgao1996

:pushpin: Commit 234dd59 has been approved by vgao1996

:hourglass: Testing commit 234dd592b4c7ae08b57c85a6e1d9e446077fd575 with merge<PHONE_NUMBER>8bc13af7fe0519eef4b737e2828852...

:sunny: Test successful - checks-actions_land_blocking_test, checks-circle_commit_workflow
Approved by: vgao1996
Pushing<PHONE_NUMBER>8bc13af7fe0519eef4b737e2828852 to master...


InMemoryWebStorage error in 1.8.2

Hi there, first up a big thanks for this library. It is super helpful. I have been playing around with the client in a very basic react application (no redux) and everything has been working great until today when I decided to try the InMemoryWebStorage for my user store.
Im hoping i'm just missing something simple but when I set:
userStore: new OIDC.InMemoryWebStorage()
When my application starts / loads it gives me an error from oidc-client-min.js which says "TypeError: this._userStore.get is not a function"
I am using version 1.8.2 and my basic code is as follows:
import OIDC from "oidc-client";

const OidcSettings =: {
      authority: "http://localhost:5000",
      client_id: "js",
      response_type: "code",
      scope: "openid profile api1",
      revokeAccessTokenOnSignout: true,
      automaticSilentRenew: true,
      redirect_uri: "http://localhost:3000/signincallback",
      silent_redirect_uri: "http://localhost:3000/silentsignincallback",
      post_logout_redirect_"http://localhost:3000",
      userStore: new OIDC.InMemoryWebStorage()
    }
const userMgr: OIDC.UserManager = new OIDC.UserManager(
    OidcSettings
);

Thanks in advance for any help.

So funny thing -- as I was reading this, I was thinking "I've never heard of this InMemoryWebStorage before". Turns out I wrote it (I guess), but I had forgotten about it. Comparing it to the WebStorageStateStore they are not implementing the same interface. So that explains it. I guess I never intended for InMemoryWebStorage to ever really be used. Either that, or I have amnesia.

Haha, that made me chuckle. In which case I should probably not be using it.
I thought I would see how it worked after reading issue / comments on item #830 - it seemed like it was something that was going to be added to the documentation.and I was just curious

@Kevinio04  Hi, i'm also trying to use InMemoryWebStorage but i set it as the store for the WebStorageStateStore

userStore: new WebStorageStateStore({ store: new InMemoryWebStorage() }),
stateStore: new WebStorageStateStore({ store: new InMemoryWebStorage() }),

@brockallen i don't know if it's a bug or i'm using it wrong, but the problem that i have in this case is that when i hit the signinRedirectCallback() after authenticating in the identity provider i get the error Error: No matching state found in storage

@tomthebearded  try setting only the userStore , not the stateStore.
I believe the stateStore must persist across pageloads because it needs to put in before the auth redirect and then grab it out after the callback. Then it removes it from local storage and your user info, access token etc is stored 'in memory'.
Works for me anyway. Thanks for posting how to use the InMemoryWebStorage, couldn't find this anywhere.

@tomthebearded Thanks for showing how to use InMemoryWebStorage.
Regarding signinRedirectCallback, I think that's only expected to work when someone was redirected from the identity server into your application. They'll end up at your post_logout_redirect_url with a token in the Fragment Identifier (i.e. "#id_token=..."). If this token is present, signinRedirectCallback should work. Otherwise, it won't.
We basically accept that behavior as part of our workflow, like this:
private async tryToSignIn(manager: UserManager) {
    try {
        // If the user was just redirected here from the sign in page, sign them in.
        await manager.signinRedirectCallback();
        console.debug("User was redirected here via the sign-in page. They are now signed in.");
    } catch (error) {
        console.debug("Sign-in redirect callback doesn't work. Let's try a silent sign-in.", error);
        // Barring that, if the user chose to have the Identity Server remember their
        // credentials and permission decisions, we may be able to silently sign them
        // back in via a background iframe.
        await manager.signinSilent();
        console.debug("Silent sign-in completed.");
    }
}

I'm not a big fan of using try/catch in the ordinary app workflow, but I don't think there's any API call to detect whether the signInRedirectCallback() would work, and I don't want to rely on implementation details like checking the URL for a token in the URL Fragment.

I'm going to close this since it turns out that the InMemoryWebStorage is compatible with the normal web storage APIs. As I mentioned above, I don't recall why I thought this was a good idea and I've never used this in any apps. So I guess some people are? And I guess it's working for them -- if course it would only work for the userStore... but it's lifetime doesn't seem practical to me.

@brockallen i don't know if it's a bug or i'm using it wrong, but the problem that i have in this case is that when i hit the signinRedirectCallback() after authenticating in the identity provider i get the error Error: No matching state found in storage

Yes, the state store is needed across redirects, so there's no way in-memory one would work for that.


document error

Hi，i found a error on the document @https://shardingsphere.apache.org/document/current/cn/manual/sharding-jdbc/configuration/config-spring-boot/#数据分片-数据脱敏
When using sharding and encrypt function at the same time, the configuration should be
spring.shardingsphere.sharding.encrypt-rule.xxx
instead of
spring.shardingsphere.encrypt.xxx

yeah,you are right. The master branch has been updated, but has not been deployed to the official website. you can see pr

already update.


[CI] Created build CI

Signed-off-by: Esteban Martinena<EMAIL_ADDRESS>

I noticed test failures due to QT on both this action and, as a consequence, the nightly.
It seems the workflow here uses a flag for colcon test:
QT_QPA_PLATFORM=offscreen colcon test --packages-select rmf_traffic_editor

I wonder if it would fix the issue?

Edit: Noted it's already in the workflow, I wonder if either the flag is not being passed to colcon test or there is some other difference in the image I'm not catching

For some reason, it's not setting the QT specific env variable. Investigating.
https://github.com/open-rmf/rmf_traffic_editor/actions/runs/3071883178/jobs/5012288157#step:7:42

I believe this is superseded by #457.


using MsTestTrxLogger' VS2015 with vstest.console.exe results with Could not find a test logger with URI or FriendlyName

Hi,
I'm using Visual studio 2015 Ent.
I'm trying to use 'MsTestTrxLogger' with vstest.console.exe and I get the following error:
Error: Could not find a test logger with URI or FriendlyName 'MsTestTrxLogger'.
my usage syntax is:
vstest.console.exe   myTestDll.dll    /Tests:test0001    /logger:MsTestTrxLogger

Hi @EyalShlomi,
Did you copy the binaries to C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\Extensions?
Depending on your VS version and your architecture, the folder might be slightly different, I remember that it can be a bit confusing to figure out which is the right one, this was the folder that worked for me. If you're using VS 2015, you might need to copy it to the folder under the version number 14.0.

Hi,
Yes I did.
only after restart of PC the error stopped.
Testing it right now.

Interesting, I didn't remember it needed a restart. Anyway, I'm glad it's solved!


GoLand is misspelled ("Gogland") at https://golang.org/doc/editors.html

Please answer these questions before submitting your issue. Thanks!
What version of Go are you using (go version)?
N/A (documentation issue)
Does this issue reproduce with the latest release?
N/A (documentation issue)
What operating system and processor architecture are you using (go env)?
N/A (documentation issue)
What did you do?
If possible, provide a recipe for reproducing the error.
A complete runnable program is good.
A link on play.golang.org is best.
What did you expect to see?
"GoLand"
What did you see instead?
"Gogland"

(Gogland was renamed to GoLand.)

This is addressed in https://golang.org/cl/75811/


CRAYSAT-1837: Improve python-csm-api-client build

IM:CRAYSAT-1837
Reviewer:Ryan
python-csm-api-client builds were taking approximately 35 mins to complete the build.
Will improvise it to take less amount of time by adding poetry.lock file that resolves the dependencies
Summary and Scope
python-csm-api-client builds are taking 35 minutes
To improvise the build to take less amount of time, we added the poetry.lock file which is an auto generated script from Poetry 1.5.1
poetry.lock file already has its transitive dependencies.
As we added poetry.lock file Jenkins does not need to resolve its dependencies, which takes a minimal amount of time.
Issues and Related PRs
Resolves CRAYSAT-1837.
Testing
List the environments in which these changes were tested.
Test description:
Will observe the Jenkins build pipeline of python-csm-api-client.
It takes only around 1m 36s to complete the build pipeline after adding poetry.lock file
Risks and Mitigations
Minimal
Pull Request Checklist

[x] Version number(s) incremented, if applicable
[x] Copyrights updated
[x] License file intact
[x] Target branch correct
[x] CHANGELOG.md updated
[x] Testing is appropriate and complete, if applicable
[x] HPC Product Announcement prepared, if applicable

PR corresponds to the python-csm-api-client build issue: https://github.com/Cray-HPE/python-csm-api-client/pull/26

Update the copyright line in the files changed with the year

Copyright is from the dockerfile changes to get unstable build. So we don't merge it, will stash that commit


Bug: Additional code to fetch the images ID that are made Public

Creating this PR to get the content reviewed and merged for one of the bug we have for scale tile work
1115
Description:
For the Specturm scale tile work, we are creating the below mentioned three images and that needs to be made public so that can be accessed by the end users. Ideally these images are created on our internal Perf accounts and we have created the images and for the same to work we have creating a mapping file.
Where we would have the image id mentioned for each region. So when a end user provides the image name on the input parameter through schematics the code should be able to fetch the image id and associate that to the specific VSI.
With respect to that we are trying to make changes here on this code because, we want to fetch the image id for compute and storage nodes as this repo would be baked on the custom image for controller node.
Changes done:

we are just creating a variable named image id and using the same variable as locals. As we have passed the same variable ID for the input file creation for controller node i.e (terraform.tfvars.json)
upon fetching the image, we are validating the same at the locals added and passing the same locals details as the image id for compute and storage.

Changes added at terraform code for schematics:
https://github.ibm.com/IBMSpectrumScale/ibm-spectrum-scale-ibm-cloud-schematics/blob/image_map/main.tf#L56-L78

@mamuthiah @sasikeda Am not able to add you as reviewers. Could you please help me to review this PR.
Meanwhile I already spoke to @mamuthiah  as what is the requirement and why we are adding this code changes.


Make cors middleware built-in

Is your feature request related to a problem? Please describe.
It's common to configure CORS headers in API endpoints. Laconia at the moment does not provide anything out of the box to configure CORS.
Describe the solution you'd like
CORS capability must be provided built-in and configured through environment variables. The reason it must be configured through environment variables is because CORS must also be configured in AWS API Gateway.
For example if serverless framework is used, it may look like:
  my-function:
    handler: myfunction.handler
    environment:
      LACONIA_ADAPTER_CORS_ORIGIN: https://my-domain.co.uk
    events:
      - http:
          method: get
          path: foobar
          cors:
            origins: https://my-domain.co.uk

The function code:
const adapterApi = require("@laconia/adapter-api");

// Automatically reads LACONIA_ADAPTER_CORS_ORIGIN and respond with CORS headers
const apigateway = adapterApi.apigateway()

exports.handler = laconia(apigateway(app)).register(instances);

The above code will return a HTTP api gateway response with this header:
'Access-Control-Allow-Origin': https://my-domain.co.uk

ORIGIN is used instead of ORIGINS in the environment variable, because I don't think we HTTP protocol allow multiple origins.
Acceptance Criteria

The example composition in our documentation will need to be updated as it's configuring cors at the moment
Must be able to set CORS headers on error

@laconiajs/contributors Sorry I should have started this issue as a discussion. But it would be great if you can review the above public contract / API.


*: Update docs references to v0.6.1

Supercedes #553

Confusing that this fails Travis. This branch is fix-documentation and Travis is trying to pull fix-docs (a prior branch).
warning: Could not find remote branch fix-docs to clone.
fatal: Remote branch fix-docs not found in upstream origin
The command "eval git clone --depth=50 --branch=fix-docs https://github.com/coreos/matchbox.git coreos/matchbox " failed. Retrying, 2 of 3.

Reset the author to ensure the Git commit hash changed and pushed again. All is right again. I believe if Travis sees a commit hash it has seen before on a different branch, it re-runs that other branch and reports the status back. Just my theory.


Add CUDA API runtime API list

Fix #1956.
CuPy wraps CUDA runtime API. But it is not documented yet.

pfnCI, test this please.

Jenkins CI test (for commit 92a61478a3dcb2b51545eaef19b9de57b1f00ef3, target branch master) failed with status FAILURE.

Thanks, I fixed.

pfnCI, test this please.

LGTM!

Jenkins CI test (for commit 839552bf4d932585786d2add845893e8931de085, target branch master) succeeded!


allowing configuring addr/port

When using outside deno deploy a hard coded port number is very limiting, this makes it confgurable

Hi @satyarohith, I've updated the code to use Deno.ListenOptions and the latest std.


updateRssi always returns 0

Hi,
very simple case, I connect to the device and try to updateRssi, but the function always return non-errors but value 0.
Best, JH

It's not implemented yet. Probably a better unimplemented behavior would be to return the last-known RSSI rather than 0.
So far I haven't found any way in Windows to get the RSSI of a device while it is connected. While it's not connected, it's easy enough to listen for the next advertisement and read the RSSI from that. But there are no advertisements as long as it's connected.

some progress in this issue?


Benchmark against Numpy

Foremost, thanks for this amazing project!
I noticed that on the benchmark section on the readme there are only comparisons between Elixir/Erlang libraries, which are not that fast/used.
Would be possible to benchmark against Numpy ? So we get a perspective against the most used library on this domain and how well  we can expect matrex to perform?

Hi!
That's a great idea! Given I have almost zero experience with python this won't be that easy, though.
I think, we can start with existing numpy benchmarks and building some very similar setups with matrex.

@sleepiejohn, here are preliminary results, run on the same MacBook Pro 2015.
But I believe they are not very correct, because it looks like NumPy did not use BLAS.
Anyway, on initialization operations (zeros, ones & eye) we are surely ahead of NumPy.
Need python's AVS (airspeed velocity) specialist to verify results.
## MatrexBench (Elixir)
benchmark name       iterations   average time
time_zeros_100          1000000   1.55 µs/op  (1.5x slower)
time_ones_100           1000000   2.00 µs/op    (same)
time_eye_100             500000   3.08 µs/op      (1.8x faster)
time_eye_3000               500   2251.93 µs/op  (6.8x faster)
time_dot_d_dot_b_c        50000   65.08 µs/op (1.2x faster)
time_dot_trans_a_at       10000   142.30 µs/op (4x faster)
time_dot_trans_at_a       10000   261.85 µs/op (6x faster)
time_dot_a_b               5000   647.39 µs/op    (4x faster)

NumPy bench (Python)
[ 32.43%] ··· Running bench_core.Core.time_eye_100                      5.56μs
[ 35.14%] ··· Running bench_core.Core.time_eye_3000                    15.47ms
[ 45.95%] ··· Running bench_core.Core.time_ones_100                     2.18μs
[ 56.76%] ··· Running bench_core.Core.time_zeros_100                    951.36ns
[  5.00%] ··· Running bench_linalg.Eindot.time_dot_a_b                   2.42ms
[ 10.00%] ··· Running bench_linalg.Eindot.time_dot_d_dot_b_c          79.69μs
[ 15.00%] ··· Running bench_linalg.Eindot.time_dot_trans_a_at          606.27μs
[ 25.00%] ··· Running bench_linalg.Eindot.time_dot_trans_at_a          1.67ms

Interesting results. I read the benchmark documentation on numpy repo, seems that it just need to be run, everything else is configured already.
I did search for the BLAS implementation which numpy uses, you can  check running python -c "import numpy; print(numpy.show_config());" but the SO awnser also states that it is not very accurate, the best is to use ldd on *nix OSes like:
$ ldd $PYTHON_HOME/Lib/site-packages/numpy/core/multiarray.so

Another benchmark shows Matrex is about 2 times faster, than NumPy in matrix dot product.
This article tells us that NumPy itself is not the fastest beast in the Python world.

Yes you are using Accelerate, as am I using Intel MKL (Windows).
Numpy isn't the fastest implementation, but is the most used.
I was wondering to do a minst benchmark too! For a more "real case" bench. If I found something I will let you know!

Found this nice implementation, but seems it uses back propagation. Should give us an idea of how to implement only with numpy. Other alternative is to use scikit although it is a higher level of abstraction.

I translated the Ng course exercises to python using both plain numpy and scikit-learn as an exercise a while back so there might be something useful in here https://github.com/chrismcg/machine_learning_ng

@chrismcg that's great, because functions in Matrex.Algorithms module are also ported from my Ng course exercises, so, they should be very comparable!

@chrismcg, I've peeked into you code — you use some built-in optimizer via op.minimize,
while I optimize with fmincg(), ported from Octave to Elixir.
So the comparison would not be correct between those.
And Python's optimizer is several times faster, yes. Would be nice to have some of these in matrex too.
I plan to to fine tune numpy's built-in benchmarks — increase number of iterations, so that we could compare them to matrex honestly.

Ah yes, I was concentrating on the ML bits so just used the built in optimization code. I'd love if there were more optimization choices on the beam. It could be worth seeing if GSL & dirty threads would work.

Finally made the comparison. Matrex was so much faster than NumPy because NumPy uses 64-bit floats by default, while Matrex uses 32-bit floats.
After bringing element size to the same value they seem to be on par in performance: Matrex twice as fast on element-wise operations, while NumPy is 8% faster on dot product.


gimpPlugins.fourier: fix loading

Motivation for this change
Fixes: https://github.com/NixOS/nixpkgs/issues/112545
cc @jsravn
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[x] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 112700 at 32d3da48 run on x86_64-linux 1

4 packages marked as broken and skipped:

gimpPlugins.exposureBlend
gimpPlugins.texturize
glimpsePlugins.exposureBlend
glimpsePlugins.texturize

16 packages built:

gimp-with-plugins
gimpPlugins.fourier
gimpPlugins.gap
gimpPlugins.gimplensfun
gimpPlugins.lightning
gimpPlugins.lqrPlugin
gimpPlugins.resynthesizer
gimpPlugins.waveletSharpen
glimpse-with-plugins
glimpsePlugins.fourier
glimpsePlugins.gap
glimpsePlugins.gimplensfun
glimpsePlugins.lightning
glimpsePlugins.lqrPlugin
glimpsePlugins.resynthesizer
glimpsePlugins.waveletSharpen

16 suggestions:

warning: license-missing
Package is missing a license
Near pkgs/applications/graphics/gimp/plugins/default.nix:151:5:
    |
151 |     meta.broken = true; # https://github.com/lmanul/gimp-texturize/issues/1
    |     ^

warning: license-missing
Package is missing a license
Near pkgs/applications/graphics/gimp/plugins/default.nix:159:5:
    |
159 |     NIX_LDFLAGS = "-lm";
    |     ^

warning: license-missing
Package is missing a license
Near pkgs/applications/graphics/gimp/plugins/default.nix:223:5:
    |
223 |     meta.broken = true;
    |     ^

warning: license-missing
Package is missing a license
Near pkgs/applications/graphics/gimp/plugins/default.nix:37:5:
   |
37 |     PKG_CONFIG_GIMP_2_0_GIMPDATADIR = "${placeholder "out"}/${gimp.targetDataDir}";
   |     ^

warning: maintainers-missing
Package does not have a maintainer. Consider adding yourself?
Near pkgs/applications/graphics/gimp/plugins/default.nix:112:5:
    |
112 |     meta = with lib; {
    |     ^

warning: maintainers-missing
Package does not have a maintainer. Consider adding yourself?
Near pkgs/applications/graphics/gimp/plugins/default.nix:151:5:
    |
151 |     meta.broken = true; # https://github.com/lmanul/gimp-texturize/issues/1
    |     ^

warning: maintainers-missing
Package does not have a maintainer. Consider adding yourself?
Near pkgs/applications/graphics/gimp/plugins/default.nix:159:5:
    |
159 |     NIX_LDFLAGS = "-lm";
    |     ^

warning: maintainers-missing
Package does not have a maintainer. Consider adding yourself?
Near pkgs/applications/graphics/gimp/plugins/default.nix:209:7:
    |
209 |       maintainers = [ ];
    |       ^

warning: maintainers-missing
Package does not have a maintainer. Consider adding yourself?
Near pkgs/applications/graphics/gimp/plugins/default.nix:223:5:
    |
223 |     meta.broken = true;
    |     ^

warning: maintainers-missing
Package does not have a maintainer. Consider adding yourself?
Near pkgs/applications/graphics/gimp/plugins/default.nix:37:5:
   |
37 |     PKG_CONFIG_GIMP_2_0_GIMPDATADIR = "${placeholder "out"}/${gimp.targetDataDir}";
   |     ^

warning: maintainers-missing
Package does not have a maintainer. Consider adding yourself?
Near pkgs/applications/graphics/gimp/plugins/default.nix:75:5:
   |
75 |     meta = with lib; {
   |     ^

warning: missing-phase-hooks
installPhase should probably contain runHook preInstall and runHook postInstall.
Near pkgs/applications/graphics/gimp/plugins/default.nix:150:5:
    |
150 |     installPhase = "installPlugin src/texturize";
    |     ^

warning: missing-phase-hooks
installPhase should probably contain runHook preInstall and runHook postInstall.
Near pkgs/applications/graphics/gimp/plugins/default.nix:164:5:
    |
164 |     installPhase = "installPlugin src/wavelet-sharpen"; # TODO translations are not copied .. How to do this on nix?
    |     ^

warning: missing-phase-hooks
installPhase should probably contain runHook preInstall and runHook postInstall.
Near pkgs/applications/graphics/gimp/plugins/default.nix:199:5:
    |
199 |     installPhase = "
    |     ^

warning: missing-phase-hooks
installPhase should probably contain runHook preInstall and runHook postInstall.
Near pkgs/applications/graphics/gimp/plugins/default.nix:57:5:
   |
57 |     installPhase = "installScripts ${src}";
   |     ^

warning: unclear-gpl
gpl3 is a deprecated license, check if project uses gpl3Plus or gpl3Only and change meta.license accordingly.
Near pkgs/applications/graphics/gimp/plugins/default.nix:80:7:
   |
80 |       license = with licenses; [ gpl3 free ];
   |       ^

Result of nixpkgs-review pr 112700 at 32d3da48 run on aarch64-linux 1

2 packages built:

gimpPlugins.gimplensfun
glimpsePlugins.gimplensfun

2 suggestions:

warning: maintainers-missing
Package does not have a maintainer. Consider adding yourself?
Near pkgs/applications/graphics/gimp/plugins/default.nix:209:7:
    |
209 |       maintainers = [ ];
    |       ^

warning: missing-phase-hooks
installPhase should probably contain runHook preInstall and runHook postInstall.
Near pkgs/applications/graphics/gimp/plugins/default.nix:199:5:
    |
199 |     installPhase = "
    |     ^

Thank you!


release: v1.2.1

[v1.2.1] (Feb 27 2024)
Feat:

Improved user experience based on customer feedback:

Excluded display of 👍👎 emojis during message streaming.
Modified URL text messages from bots to be parsed as links.
Fixed display of code snippets which had been broken since the self-service https://github.com/sendbird/chat-ai-widget/pull/87.

Fix:

Replaced Channel module with GroupChannel to address issues.
Used isLoading and isPending along with isFetching in useChannelStyle query hook to get the loading status.

I'll rebase once #97 is merged.

/bot create ticket

[Creating Ticket] 🔖 Done https://sendbird.atlassian.net/browse/SDKRLSD-1142


US-14895: updated the header text for CoB

Update the Header for the Change of Bank flow.

@AkhilaHMRC - I have confirmed the welsh translation and also created a new value in the 2 jsons.


Issue-11-Changes-Activation-Deactivation-Features

Preparing review...

PR Analysis

🎯 Main theme: Adding account deletion and deactivation features
📌 Type of PR: Enhancement
🧪 Relevant tests added: No
✨ Focused PR: Yes, the PR is focused as it introduces two new features related to account management: deletion and deactivation. All changes in the PR are related to these features.
🔒 Security concerns: No, the PR does not introduce any obvious security issues. However, it's important to ensure that the account deletion and deactivation features are properly secured and can only be accessed by authorized users.

PR Feedback

💡 General PR suggestions: The PR is generally well-structured and the code changes are consistent with the stated purpose of the PR. However, there are a few areas that could be improved. First, the PR lacks a description, which should be added to provide context and rationale for the changes. Second, it appears that no new tests have been added to verify the new functionality. It is recommended to add unit tests for the new features to ensure they work as expected and prevent regressions in the future. Finally, some methods could benefit from more detailed comments explaining their purpose and functionality.


recognizing generated source code in build/generated/sources/annotationProcessor/java

I am using AutoValue (https://github.com/google/auto) code generator, but found that the source code in build/generated/sources/annotationProcessor/java is not picked up automatically. I have to configure the project with this
sourceSets {
    main {
        java {
            srcDir tasks['compileJava'].options.generatedSourceOutputDirectory.getAsFile().get()
        }
    }
    test {
        java {
            srcDir tasks['compileTestJava'].options.generatedSourceOutputDirectory.getAsFile().get()
        }
    }
}

to let vscode pick up the generated code, otherwise there will be unresolved class error:
@AutoValue
abstract class CsvRowTest implements Serializable {
    @SchemaCreate
    public static CsvRowTest create(String a, String b) {
       // the class AutoValue_CsvRowTest is generated automatically into build/generated/sources/annotationProcessor/java
       // not picking up this directory will cause this class unresolved.
       return new AutoValue_CsvRowTest(a, b);
    }

    public abstract String getA();
    public abstract String getB();
}

Is it possible to have vscode-gradle to pick up the directory build/generated/sources/annotationProcessor/java automatically?

I think the unresolved class error you mentioned is reported by redhat.java extension, repository: https://github.com/redhat-developer/vscode-java. vscode-gradle will now report any error in Java files, but Gradle files.
If I'm guessing right, I suggest you open an issue in the above repository to discuss this issue. FYI the vscode-gradle project also uses the similar mechanism to solve this issue, see: https://github.com/microsoft/vscode-gradle/blob/bba4bfffa690a45f804d76058cc8a5a7ad5e985b/gradle-server/build.gradle#L38-L42

Thanks. I must be somehow brain-dead, mistaking the two repositories/


KAFKA-15239: Fix system tests using producer performance service

QuotaTest uses ProducerPerformanceService which is where the issue is located. This is the test instance that is failing.
[INFO:2023-07-24 05:00:40,057]: RunnerClient: Loading test {'directory': '/opt/kafka-dev/tests/kafkatest/tests/client', 'file_name': 'quota_test.py', 'cls_name': 'QuotaTest', 'method_name': 'test_quota', 'injected_args': {'quota_type': 'client-id', 'old_client_throttling_behavior': True}}
...
Exception: No output from ProducerPerformance

If we look at ProducerPerformanceService stderr logs in ./results, we have the reported exception.
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/kafka/common/utils/ThroughputThrottler
	at org.apache.kafka.tools.ProducerPerformance.start(ProducerPerformance.java:101)
	at org.apache.kafka.tools.ProducerPerformance.main(ProducerPerformance.java:52)
Caused by: java.lang.ClassNotFoundException: org.apache.kafka.common.utils.ThroughputThrottler
	at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
	... 2 more

There are other system tests that use ProducerPerformanceService, and are failing for the same reason.
TC_PATHS="tests/kafkatest/tests/client/quota_test.py::QuotaTest.test_quota" _DUCKTAPE_OPTIONS="--max-parallel=1 --deflake=1  --parameters '{\"quota_type\":\"client-id\",\"old_client_throttling_behavior\":true}'" bash tests/docker/run_tests.sh
TC_PATHS="tests/kafkatest/sanity_checks/test_performance_services.py::PerformanceServiceTest.test_version" _DUCKTAPE_OPTIONS="--max-parallel=1 --deflake=1 --parameters '{\"version\":\"<IP_ADDRESS>\",\"new_consumer\":false}'" bash tests/docker/run_tests.sh
TC_PATHS="tests/kafkatest/sanity_checks/test_performance_services.py::PerformanceServiceTest.test_version" _DUCKTAPE_OPTIONS="--max-parallel=1 --deflake=1 --parameters '{\"version\":\"<IP_ADDRESS>\"}'" bash tests/docker/run_tests.sh
TC_PATHS="tests/kafkatest/sanity_checks/test_performance_services.py::PerformanceServiceTest.test_version" _DUCKTAPE_OPTIONS="--max-parallel=1 --deflake=1 --parameters '{\"version\":\"<IP_ADDRESS>\",\"new_consumer\":false}'" bash tests/docker/run_tests.sh
TC_PATHS="tests/kafkatest/sanity_checks/test_performance_services.py::PerformanceServiceTest.test_version" _DUCKTAPE_OPTIONS="--max-parallel=1 --deflake=1 --parameters '{\"version\":\"1.1.1\",\"new_consumer\":false}'" bash tests/docker/run_tests.sh

if we loaded a 1.0.0 server-common class that depended on a class which was missing from DEV clients, I would expect that to fail.

These changes are just for the ProducerPerformanceService, and we only need clients on dev release because ThroughputThrottler moved there. That said, I don't like this approach and I see the risk you mention, so I'm opened to proposals.

If possible, I think we should eliminate this long-range version mixing and compatibility boundaries, rather than move them around, because they're already seem to be in the least-impactful place and are still causing problems.

Can you explain better what you mean here?

Hi @gharris1727, thanks for the clarification and sorry for the delay, I've been busy with other stuff.

By "version mixing" I mean that artifacts from two different versions from different versions are present on the classpath at the same time.

I see, but that's not the case here, we either LATEST_0_9 or DEV_BRANCH. We do not load different module versions at the same time on the classpath, so there is no compatibility boundary to consider. Am I missing something?

I see, but that's not the case here, we either LATEST_0_9 or DEV_BRANCH. We do not load different module versions at the same time on the classpath, so there is no compatibility boundary to consider. Am I missing something?

These commands are being run in the context of a kafka installation with a particular version. The version used is the node.version that this condition is based on. The kafka-run-class.sh script adds the jars from the installation to the CLASSPATH, before finally calling the java runtime.
So for example, if the node.version is 1.0.0, this condition will be true, and the script will add DEV jars to CLASSPATH. kafka-run-class.sh then finds the 1.0.0 jars and adds them to CLASSPATH. This means that on the classpath at runtime we should have:

DEV tools
DEV tools-dependant-libs
DEV clients (with your change)
1.0.0 tools
1.0.0 tools-dependant-libs
1.0.0 clients
1.0.0 core
1.0.0 everything else

When the same jar is present, the classpath is ordered such that the earlier injected CLASSPATH jars take precedence, so the DEV tools version is the one that is loaded.
After all, the ProducerPerformance class depends on the Producer from clients, and this code didn't inject the clients before. And if the original condition didn't fire, then the CLASSPATH was left alone, and the final classpath constructed by kafka-run-class.sh only had DEV jars on it.

So for example, if the node.version is 1.0.0, this condition will be true, and the script will add DEV jars to CLASSPATH. kafka-run-class.sh then finds the 1.0.0 jars and adds them to CLASSPATH.

This shows my lack of knowledge on Kafka STs. I see it now. Thanks.

In https://github.com/apache/kafka/pull/13313 I explored eliminating the artifact mixing, but it turned out that the 0.8.x tools was missing functionality, and so I had to inject the 0.9.x tools jar. I think we can do something similar here, try to remove the artifact mixing, and if that fails, find an intermediate version that can be injected instead of trunk.

Yeah, I'll try to do that and give an update.

@fvaleri That does appear to work, because server-common is not being excluded from tools-dependant-libs like the clients is. I don't think this was intentional, I think it was accidentally left out when server-common was added as a dependency in #12469 . There is a compatibility boundary between server-common and clients in this case, but that was already there before your change.
If we choose not to change this compatibility boundary from between server-common + clients to between tools + server-common, then I think the fix you propose is possible. I agree with your reasoning that server-common is a reasonable dependency for the connect-runtime, even if it's only present use is the ThroughputThrottler. I don't really mind whether it's in clients or server-common, as long as it's visible in the dependent modules.
If someone later moves the compatibility boundary, and reduces the range of the version mixing (by changing the if condition to if node.version < LATEST_1_1) then moving this class around will have no effect anyway, so this fix doesn't make it any harder to add more fixes later.
Can you revert the changes in producer_performance.py? they don't seem to have an effect anymore.

That does appear to work, because server-common is not being excluded from tools-dependant-libs like the clients is.

Exactly.

If we choose not to change this compatibility boundary from between server-common + clients to between tools + server-common, then I think the fix you propose is possible.

I think we can improve further as you say, but probably it's better to do it in a separate PR, starting from working code.

Can you revert the changes in producer_performance.py? they don't seem to have an effect anymore.

Done.
Thanks again for the help, appreciated.

System test failures appear to be due to reasons other than classloading/dependency issues. The producer performance tests appear to work normally.
tests/kafkatest/tests/core/zookeeper_migration_test.py::TestMigration.test_pre_migration_mode_3_4@{"metadata_quorum":"ISOLATED_KRAFT"}
tests/kafkatest/tests/core/zookeeper_migration_test.py::TestMigration.test_upgrade_after_3_4_migration
tests/kafkatest/tests/core/mirror_maker_test.py::TestMirrorMakerService.test_bounce@{"clean_shutdown":false,"security_protocol":"SASL_PLAINTEXT"}
tests/kafkatest/tests/core/mirror_maker_test.py::TestMirrorMakerService.test_bounce@{"clean_shutdown":false,"security_protocol":"SASL_SSL"}
tests/kafkatest/tests/core/reassign_partitions_test.py::ReassignPartitionsTest.test_reassign_partitions@{"bounce_brokers":true,"reassign_from_offset_zero":false,"metadata_quorum":"ISOLATED_KRAFT"}
tests/kafkatest/tests/core/reassign_partitions_test.py::ReassignPartitionsTest.test_reassign_partitions@{"bounce_brokers":true,"reassign_from_offset_zero":false,"metadata_quorum":"ZK"}
tests/kafkatest/tests/streams/streams_smoke_test.py::StreamsSmokeTest.test_streams@{"processing_guarantee":"at_least_once","crash":false,"metadata_quorum":"ISOLATED_KRAFT"}
tests/kafkatest/tests/core/downgrade_test.py::TestDowngrade.test_upgrade_and_downgrade@{"version":"2.7.1","compression_types":["none"],"static_membership":false}
tests/kafkatest/tests/core/downgrade_test.py::TestDowngrade.test_upgrade_and_downgrade@{"version":"2.7.1","compression_types":["none"],"static_membership":true}
tests/kafkatest/tests/core/downgrade_test.py::TestDowngrade.test_upgrade_and_downgrade@{"version":"2.7.1","compression_types":["zstd"],"security_protocol":"SASL_SSL"}
tests/kafkatest/tests/streams/streams_broker_bounce_test.py::StreamsBrokerBounceTest.test_broker_type_bounce@{"failure_mode":"hard_shutdown","broker_type":"controller","num_threads":1,"sleep_time_secs":120,"metadata_quorum":"ZK"}
tests/kafkatest/tests/streams/streams_broker_bounce_test.py::StreamsBrokerBounceTest.test_broker_type_bounce@{"failure_mode":"hard_shutdown","broker_type":"leader","num_threads":1,"sleep_time_secs":120,"metadata_quorum":"ZK"}
tests/kafkatest/tests/streams/streams_upgrade_test.py::StreamsUpgradeTest.test_rolling_upgrade_with_2_bounces@{"from_version":"3.1.2","to_version":"3.6.0-SNAPSHOT"}
tests/kafkatest/tests/streams/streams_upgrade_test.py::StreamsUpgradeTest.test_rolling_upgrade_with_2_bounces@{"from_version":"3.2.3","to_version":"3.6.0-SNAPSHOT"}
tests/kafkatest/tests/tools/replica_verification_test.py::ReplicaVerificationToolTest.test_replica_lags@{"metadata_quorum":"ISOLATED_KRAFT"}
tests/kafkatest/tests/tools/replica_verification_test.py::ReplicaVerificationToolTest.test_replica_lags@{"metadata_quorum":"ZK"}
tests/kafkatest/tests/core/network_degrade_test.py::NetworkDegradeTest.test_rate@{"task_name":"rate-1000-latency-50","device_name":"eth0","latency_ms":50,"rate_limit_kbit":1000000}

Thank you @fvaleri for diagnosing this test regression and promptly fixing it!


Clicking on references codelens shows Loading... forever

Issue Type: Bug

Enable the references codelens for typescript
For any symbol, run Find All References. Notice that you see the results in the peek window
Escape
For the same symbol, click on the references codelens above it. Notices that you see "Loading..." forever.

This happens only in Insiders and not in Stable (1.25)
I notice the same for Go, so this might not be a language specific issue
VS Code version: Code - Insiders 1.26.0-insider (adfa9ce9778a6e79197477fcc60cb5420a31979a, 2018-07-10T05:19:09.185Z)
OS version: Windows_NT x64 10.0.17134
Installed Extension: Go

Duplicate of #53902


Exporting PDF with pictures don't work

The profile image is not exported with the file in pdf format. Result: a white space instead of the image in the pdf.

This is dependent on the URL of where the image is hosted. If you use the internal upload feature, this shouldn't be a problem, but with any other URLs, CORS comes into play and that gets a little messy.


Confusing positional parameter advice

http://luigi.readthedocs.org/en/stable/_modules/luigi/parameter.html#Parameter shows that the default value for positional is True, but a few lines below that in the docstring it recommends positional=False, which leads to confusion.
The purpose of the flag is not very clear either.

I think the recommendation positional=False applies to the case when you have parameter in an abstract base class. We should qualify that docstring a bit

I myself would like to think of the reason for the default to be only historical. :)
Closing, @mausch, please let us know if you still find the new wording to be unclear.

Thanks! This is a very nice improvement.
It would be great to have examples of when one would use true or false in this flag.

Well. Maybe not the nicest, but you can always git grep positional= or search online on github

Cheers


Add WITH (ONLINE=ON) to MS SQL indexes creation

If we upgrade V2 to V3, we have existing database with millions of record and creating index may be time-consuming.
To anticipate it, Indexes IX_Streams_IdOriginal and IX_Streams_IdOriginalReversed (and other indexes as well) better to specify  WITH (ONLINE=ON)
https://github.com/SQLStreamStore/SQLStreamStore/blob/80189cdac3151d5f990600567953ea3be9dad4a2/src/SqlStreamStore.MsSql/ScriptsV3/CreateSchema.sql#L37
Unfortunately it is required to add conditional logic as not all sql server editions support   WITH (ONLINE)  https://stackoverflow.com/questions/50407490/how-to-create-nonclustered-index-with-online-if-available
Btw, even WITH (ONLINE=ON) may cause blocks on the final stage
https://dba.stackexchange.com/questions/41181/why-does-create-index-with-online-on-block-access-to-the-table-over-a-period/50139#50139

When I created the index, I got

Warning! The maximum key length for a nonclustered index is 1700 bytes. The index 'IX_Streams_IdOriginal' has maximum length of 2004 bytes. For some combination of large values, the insert/update operation will fail.

Does it mean, that MS SQL in reality support not more than 848 characters, not 1000 as declared in schema?
(it's not a problem for my IdOriginal values)


validateField incorrectly returns true on empty required fields

<template name="main">
    {{> quickForm id='form' schema=schema validation='keyup' }}
</template>

Template.main.helpers({
  schema() {
    return new SimpleSchema({
      label: {
        type: String
      }
    })
  },
});

Render the page, then run AutoForm.validateField('label', 'form') in console. It will return true, although the field is required and currently empty. It seems validateField will always return true here, as I am unable to get any other result.
AutoForm.validateForm() returns proper validation errors. They can be directly contradictory as validateForm will complain about the field being required, yet validateField will always return true.

+1

I get the same as @abecks. I am using<EMAIL_ADDRESS>and<EMAIL_ADDRESS>A empty mandatory text field is validated true, while the form is validated false... for this reason no validation error messages are shown.

The autoform-validation.js _validateField function has a skipEmpty argument. It seems that skipEmpty is the default when looking at autoform-events.js keyup events, which causes validation to be skipped, so SimpleSchema cannot apply it requiredValidation check...
var skipEmpty = !(event.keyCode === 8 || event.keyCode === 46); //if deleting or backspacing, don't skip empty
if ((validationType === 'keyup' || validationType === 'submitThenKeyup')) {
      var key = getKeyForElement(event.currentTarget);
      if (!key) return;
      validateField(key, formId, skipEmpty, onlyIfAlreadyInvalid(validationType));

it seems this optimisation is preventing required fields from being validated - can it be removed?


Date handling updates

To avoid having multiple conflicts, this PR is based on top of #97 and includes all changes from it. Updates, as discussed in opentargets/platform#1161:

last_evaluated_date is now supported for somatic_mutation evidence strings as well
gene2variant.date_asserted is now optional

Changes look good. I have run the validator with the schema version of @tskir and the 20.09 EVA file and it is correct so I'm mergin it.
Thank you for your cooperation @tskir!


Incomplete documentation

I am evaluating Databricks as part of a trial vs. competitors such as Snowflake.
This page is inadequate.  Problems:

How is authentication set up so that DataBricks can read from azure storage?  This page seems to assume something has been set up but it isn't mentioned and there is no link to other pages that contain this information.  Answer:  need to use a SQL statement like:  SET fs.azure.account.key.yourazurestorageaccountname.blob.core.windows.net=yourstorageaccount key.  Other variations are possible, e.g. dfs instead of blob.  The storage account key should NOT be surrounded in quotes.  I wasted two hours trying to working this out since the error messages are not helpful.
It does not explicitly mention that the COPY INTO command seems unable to infer the schema from a target delta table.  Instead it must be specified field-by-field as shown in the example.  This needs to be called out in the page since on most other platforms the COPY INTO statement will infer the schema from the TARGET TABLE instead of either assuming everything is a string or guessing the schema from the CSV file (product feedback:  this is pretty stupid, since the structure of the target table is the best definition).
Why is this page under the Databricks version 7.x runtime reference (even though it says "latest" in the page URL) - or rather why are there no references for Databricks version 8/9?
The brackets are in the wrong place for the COPY_OPTIONS argument, it should be:  COPY_OPTIONS('force'='true') NOT COPY_OPTIONS 'force'=('true') as shown in this page.

This has left me with a sour taste in comparison to the more complete/easier to read documentation of your competitors.

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

ID: da84d7fc-2505-85c9-e06c-e90326fd1b64
Version Independent ID: 12874e82-0e59-c172-5831-ada04f2ef3e0
Content: COPY INTO (Delta Lake on Azure Databricks) - Azure Databricks - Workspace
Content Source: databricks/spark/latest/spark-sql/language-manual/delta-copy-into.md
Service: azure-databricks
GitHub Login: @mssaperla
Microsoft Alias: saperla

@cbailiss Thanks for the feedback !  I have assigned this issue to content author to investigate and update the document as appropriate.

Thanks for your dedication to our documentation. Unfortunately, we have been unable to review your issue and apologize for the delayed response. The requested updates have not yet been made. The timeline for resolution varies based on resourcing. We've created an internal work item (DOC-7011) to incorporate your suggestions. We are closing this issue for now, but feel free to comment here as necessary.
#please-close

#please-close


Update build dependencies

Updated the following build dependencies:

Gradle upgraded 4.10.3 -> 8.8
OSGI plugin migrated to biz.aQute.bnd.builder plugin
JUnit upgraded 5.8.2 -> 5.10.3
Checkstyle upgraded 6.18 -> 9.3

Closes #412


turborepo does not propagate the SIGINT signal event.

What version of Turborepo are you using?
1.0.23
What package manager are you using / does the bug impact?
npm
What operating system are you using?
Mac
Describe the Bug
On most node.js applications is a common practise adding a cleanup handler in order to close open DB connections
Turborepo does not seem to propagate the exit signals from the CLI towards the applications running.
Expected Behavior
Once upon SIGINT gets triggered I would expect all the open applications to grab the signal in order to do some cleanup.
To Reproduce
The bug is reproducible through the kitchen-sink example, just add a "graceful shutdown" hook in the Express.js application as described in the official documentation

Confirmed. Thanks for the write up! Over the weekend I researched the solution: we need to call cmd.ExecWithContext and have all task commands share a context as well as use a signal and channel to listen to SIGINT and trigger cleanups.
This could also be possibly related to #205, but I’m not sure

For SIGINT specifically (keyboard interrupt), the signal is actually delivered to all child processes and graceful cleanups are run. However, the output for all of the child processes is routed via turbo, which does not currently have a signal handler installed. You can verify this by changing your shutdown handler to do something like write to a file.
I ran an experiment based on your suggestion of adding the graceful shutdown to apps/api in kitchen-sink:
const runningServer = server.listen(port, () => {
  log(`api running on ${port}`);
});
process.on("SIGINT", () => {
  log("SIGINT signal received: closing HTTP server");
  runningServer.close(() => {
    log("HTTP server closed");
    fs.writeFileSync("sigint", "exited");
  });
});

Run yarn dev in kitchen-sink, and after everything is running hit Ctrl+C to send SIGINT. Output will stop immediately, because it is routed via turbo. However, you should find the sigint file in apps/api. @vorillaz  Can you verify whether your handlers are actually not running, or if you are just unable to see the output? If they are actually not running, can you describe how you are sending the SIGINT signal?
It's possible that turbo needs to handle other signals, but I think this is separate from the issue of propagating a failure that results from running a task like in #470

Hey @gsoltis thanks for the feedback, I definitely cannot see the output on my dev environment but that's not my main concern.  As I am using turborepo to spin up individual process I am facing open ports when I am using Ctrl + C in order to stop the monorepo. More precisely I am using fastify-graceful-shutdown in order to free the server's port, upon restarting the ports are still bound and I can see there are db connections hanging.

@vorillaz When you use Ctrl+C to stop the monorepo, can you verify that all of the server processes have in fact exited? I wonder if one of them might be hanging, but you can't see it due to turbo having exited. If nothing else, the OS should close the connection to the database when the process exits, so it's an indication that it might still be running.
One thing I am considering is having turbo wait for child processes to exit upon receiving SIGINT, since I think that would help diagnose scenarios like this one.
I will also see if I can reproduce the issue with fastify-graceful-shutdown.

@vorillaz quick update on results of my fastify experiment. I am to reproduce this behavior if I block the thread in the graceful shutdown handler:
fastify.after(() => {
  fastify.gracefulShutdown((signal, next) => {
    while (true) {}
  });
});

In this case, after hitting Ctrl+C, my node process was visible in the output of ps, and subsequent attempts to start the process hit the port reuse error.
Is it possible that you are doing something blocking in your shutdown handler? Can you check ps after Ctrl+C?


More Realm.domain migration.

Automated message from Dropbox CLA bot
@rishig, it looks like you've already signed the Dropbox CLA. Thanks!

I merged the Zephyr commit, since that one looks great!
But the rest of the changes are pretty hard to be confident in:

For the first commit, it should be several, with things like "actions: Remove realm.domain from log_event calls." etc., and each commit message should explain why the change is correct if it isn't obvious (E.g. for log_event it would be that this is just logging output and it still tells you which realm it was, and similarly for the print statement parts).  But the validate_user_access_to_subscribers_helper case is totally different and somewhat subtle, and should be separate.
The second commit has the same problem.  And in fact is broken as a result: The test_report hunks of the second commit belong in the third commit.

When reviewing a set of changes, what you really want to experience is a block of changes with an explanation in the commit message as to why the change is desired and correct (often can be pretty short, but there's basically never harm in being too verbose), and then you look at the changes, and the explanation makes clear why all of those changes are correct and one should be happy with them being made.  It takes a lot of mental energy to read your statsd + internal_send_message commit, because it's two totally unrelated changes, one of which fixes a bug that the realm vs. individual user signup messages disagree about the topic, and the second of which updates our statsd graph reporting to use a different key.
When looking at each hunk of the diff, a reviewer has to figure out which change it's part of.  In practice, all but the most experienced reviewer will just be looking at whether all the changes replaced realm.domain with realm.string_id, and not be able to effectively think about what the implications of each such change might be.
When you do this sort of refactoring, my recommended approach for generating such a branch is as follows:

Read code and pick a thing you want to change first, e.g. the log_event calls (usually it's best to pick the easiest/least coupled to other code things first, because it shrinks the size of the git grep you're looking at, and thus makes it easier to correlate related changes in the more complex places).
Change the N places that should be changed for the same reason.  If N is large, you may want to break it up by section/file/whatever.  Resist the temptation to change other parts of your larger project for now; your goal is to either finish a commit that changes what you want, or, if you find you need to do something else first, do a git stash, do the newly-discovered prerequisite, and then git stash apply and return to your original change.  It's totally fine to have several commits in a series that change the same code rather than just changing it to the final state once.
Make a commit with a brief explanation (which if you have our pre-commit hook setup will run the linter), and start running the backend tests, while reading code / grep output for what to change next.  Since test-backend only reads files in at startup, you can even start editing if you think the tests are very likely to pass.
Pick another, link print statements in management commands.  Do the same thing.

If you find you want to do changes somewhat more randomly as part of figuring out your plan, that's potentially fine, but then a good way to construct a readable/testable branch is to just redo the changes the way I described above, using git diff hacky-version to check whether things look right and that you end up in the same final state as before.
I guess this is enough of an essay that I'll work on putting it into our developer docs.

Nice, the new version is great!  Merged after dropping the migrations commit and adding some history to one commit message.  Thanks @rishig!


Provide a version for tini

@gsong this fixed this error:
standard_init_linux.go:185: exec user process caused "exec format error"

Codecov Report

Merging #100 into development will not change coverage.
The diff coverage is n/a.

@@             Coverage Diff              @@
##           development     #100   +/-   ##
============================================
  Coverage        53.74%   53.74%
============================================
  Files               58       58
  Lines             1816     1816
  Branches           199      199
============================================
  Hits               976      976
  Misses             827      827
  Partials            13       13

Continue to review full report at Codecov.

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


Inappropriate hindi transliteration

Code:
from indicnlp.transliterate.unicode_transliterate import ItransTransliterator
from indicnlp import loader
from indicnlp import common
common.set_resources_path(INDIC_RESOURCES_PATH)
loader.load()
ItransTransliterator.to_itrans('मैं आज आपकी किस प्रकार सहायता कर सकता हूँ?', 'hi')

Output:
mai.m aaja aapakii kisa prakaara sahaayataa kara sakataa huuँ?

Output using google translator:
jaanakar achchha laga. main aaj aapakee kis prakaar sahaayata kar sakata hoon?
There is unnecessary use of '.' and 'uँ' in romanization. What can be the best solution that gives appropriate and presentable transliterated output.

Thanks for letting us know.
Since this is a transliteration issue that is not related to the IndicTrans model (which is a translation system). Can you please open this issue at indicnlp library repo instead?


Hepatocyte showing in FTU Explorer for kidney FTU

@katyb @bherr2 @supriyabidanta
I saw hepatocyte, liver CT, in the data for a kidney FTU, for some reason: https://github.com/hubmapconsortium/hra-ui/blob/main/apps/ftu-ui/src/assets/TEMP/ftu-cell-summaries.jsonld
In FTU Explorer, see on right:

PS: There are also lung secretory cells and airway cells in the table for the kidney FTU:

@andreasbueckle, @bherr2 - Has this been completed? This is what I see today:

Yes, it appears that this is completed. We are still fixing the issue of why the hepatocyte (liver cell) appears in other organs (due to popV): https://github.com/hubmapconsortium/hra-workflows-runner/issues/37

Thank you @andreasbueckle !


Task config

What does this implement/fix? Explain your changes.

This PR adds new adds following new args to task config

hf_revision (allows locking to certain commit)
hf_filter (allows filtering the datasets)

Set defaults as early as possible for lighteval task config
Removing of unused args from task class:

      self.save_queries: bool = False
      self.logfile_name: Optional[Path] = None
      self.is_main_process: bool = False

Improved typings

I noticed that following args are unused, maybe we should create issue to implement that functionality or remove it ?

    frozen: bool = False
    output_regex: Optional[str] = None

Looks great !
the output_regex is legacy from the harness, we needed it for bigbench tasks but this is now handled by the metrics direclty. Frozen was to make sure the task did not change over time but we are now using task versioning for this.


No way to allow a callback to return void or a type.

I want to have a function with the following type:
callback: () -> (() | number)
...such that you can either return void (not nil), or a number.
Unfortunately, this is a syntax error.

There is currently no way to type this function, and I do not want to have to change every consumer I have to return nil to get around this.
Unsure if this is a bug or a feature request, I went with bug.

Ah, looks like this method of returning optional return types just isn't supported.

You'd typically model this as () -> number?

I'm pretty sure that wouldn't let me return void when I tried, unknown if I'm mistaken

Yeah, this feature requires union type packs, which is not something we even have as a concept in the type inference engine just yet. Once that's a thing, I'd imagine the syntax to write this is () -> (() | number) or something close to that.

() -> number? already works if the return is explicit.


Adds better-controlled environment tests using tox

Changes Unknown when pulling fa49fe299d3d0806cff57677481bfe9534847330 on ababic:tox-setup into ** on rkhleics:master**.

Changes Unknown when pulling 450e7770da88f1813f580337c07711e0429d5cc2 on ababic:tox-setup into ** on rkhleics:master**.

Changes Unknown when pulling 638bde57bde12859c797dabc8679ca114facdd16 on ababic:tox-setup into ** on rkhleics:master**.

Changes Unknown when pulling 4187dacbe64779187ab165b23a4895ad60bffc4f on ababic:tox-setup into ** on rkhleics:master**.

Changes Unknown when pulling f493e85207e2708e7352bb667eead95677e01ae3 on ababic:tox-setup into ** on rkhleics:master**.


fix broken JAVA patterns

some Java patterns had broken file links in their JSON configs.
This PR fixes those instances without making functional changes

also adding some rule improvements after experiments


Comparison API

Description
I recently ran across an issue where I needed to see if a given url (not the current url) was within a given scope of routes.  In this case, I wanted some special behavior to happen only when certain links were clicked.
Suggestion
I realized this could be accomplished if Ziggy provided an is() or isSame() api that allowed one to see if a given url matched the signature of a route name.  For example:
route().url('https://example.com/task/1').is('tasks.show')

The key here is that the task ID or any other route params are not required to check if the route matches.
I don't think this would take too much extra work since there is already the route().current() api.
Alternatives
If I had the task ID or the other route params I could just do a simple comparison:
route('https://example.com/task/1') == route('tasks.show', task.id)

Or if I could somehow hijack Ziggy's api I could use the route().current() api to see if the url matches the route.
Unfortunately this isn't how Ziggy gets the location url (it gets it directly from the window):
https://github.com/tighten/ziggy/blob/23e5caa0478359374b900fe53bcbe960f13a19f5/src/js/Router.js#L109-L117
So that means this doesn't work:
Ziggy.url = 'https://example.test/tasks/1'
route().current('tasks.show')

Overall, I think this would be a good addition since many other functional apis have a similar comparison feature and it wouldn't be too difficult to implement (practically all that is needed is a url() method to set the this._config.location and an alias from is() to current()
Let me know what you think, I would be happy to submit a pull request for this.

Actually what you're describing might already be possible—Ziggy uses the window by default but if you pass it a config that includes a location object it will use that instead, that's what lines 113-115 of the snippet you included are doing.
This was added in #432 to support server side rendering, but I think it'll work for you. Try something like this:
route(undefined, undefined, undefined, {
  ...Ziggy,
  location: {
    host: 'example.com',
    pathname: '/task/1',
  },
}).current('tasks.show');

You could wrap that in a helper or something if you need to do it often.

@bakerkretzmar Thanks!  That works perfectly.  However, I think it would still be nice to include a shortcut to this inside Ziggy.

Perhaps an alternative would be to do something like:
route().find('https://example.com/tasks/1') // returns ['tasks.show', 1]

Although I think finding a url's route match is more difficult than asking if the url matches a given route.

Actually I think you can already do that too 😅
const r = route(undefined, undefined, undefined, {
  ...Ziggy,
  location: {
    host: 'example.com',
    pathname: '/task/1',
  },
});

r.current(); // 'tasks.show'
r.params; // { task: 1 }

I'm not sure how I feel about adding methods for this directly to Ziggy, seeing as it's already possible and could easily be wrapped in a custom helper function if you need to do it a lot. PRs always welcome of course, but just a heads up before you spend time on it that I don't think we would decide to add this right now.

@bakerkretzmar Oh sweet, thanks.  Maybe these work arounds could be documented?  Or maybe just reference this issue if someone wants to do this?


Lassonet Python library data input

Dear Devs,
My name is Dufot Nicolas, working on picture classification using neural networks (with PyTorch).
I found your publication "LassoNet: A Neural Network with Feature Sparsity" very interesting and your function LassoNetClassifier is very useful to prioritize pixels and identify informative sub parts of the image for complex pictures classification.
I took mnist_classif.py script in the example folder in the aim to adapt the LassoNetClassifier to my pictures datas.
I have understand the numpy array X_train, X_test, y_train, y_test input with X for the pixels datas and y for the classification labels.
In the mnist_classif.py, datas in X_train and X_test are mono channel pixels (black and white MNIST dataset).
The data looks like this: [ [pixels datas for picture 1] [pixels datas for picture 2] ... [pixel datas for picture n] ]
I.E: a list of pictures presented as a list of pixels values.
This is working for mono channel pixels, the question is: how to insert into this my 3 channels colored pictures ?
My datas look like: [ [[ pixels datas for channel 1 picture 1 ] [ pixels datas for channel 2 picture 1 ] [ pixels datas for channel 3 picture 1 ]] ... [[ pixels datas for channel 1 picture n ] [ pixels datas for channel 2 picture n ] [ pixels datas for channel 3 picture n ]]]
IE: A list of pictures presented as 3 sub lists detailing 3 values per pixels, one value per channels. This is the standard datas presentation using PyTorch
How to deal with it ?
Second question, linked to the first: how to specify network parameters using LassoNetClassifier ? how to make it work with my dataset ?
Actually, when I try to use LassoNetClassifier with my arrays, the error "RuntimeError: mat1 and mat2 shapes cannot be multiplied (2436x28 and 3x2)" occurs. I have seen this error many times with PyTorch, this is due to bad shape parameters for the different neuronal layers, which also depend on the image input size and channels numbers (you see the link with first question)
So, configuration of the neuronal network needs to be adapted to my dataset (higher image size than in MNIST dataset).
Have a nice day,
Cordially.

Did you try reshaping your input to be (samples, dimensions)? Each sample should be a vector.

Thank you for your quick answer.
When you say "samples", you talk about one vector by samples or more ?
Colored pixels are 3 vectors samples !
I made some test with your tool by converting my colored dataset into black and white pixels (one vector). It is working well but loosing some infomations as colors are important in my study.
Hope we will find a solution to deal with colored datasets.
Cordially,


rs2::config Match Streams' Resolutions

Required Info

Camera Model
D400

Firmware Version
<IP_ADDRESS>

Operating System & Version
Ubuntu 18.04

Kernel Version (Linux Only)
5.4.0-72-generic

Platform
PC

SDK Version
2.44.0

Language
C++   + OpenCV

Segment
Robot

Feature Request Description
I am looking to use cv::hconcat and cv::vconcat to combine unaligned images from the camera, but currently the only way that I can get guarantee that the dimensions of the output images is to use the below code where I explicitly put the dimensions to match even though rs-enumerate-devices output shows that they have matching resolutions with the same fps.
rs2::config config;
config.enable_stream(RS2_STREAM_DEPTH, 1280, 720, RS2_FORMAT_Z16);
config.enable_stream(RS2_STREAM_COLOR, 1280, 720, RS2_FORMAT_BGR8);

Can there be methods added to rs2::config that matched the enabled streams to the highest or lowest matching resolutions available?

Hi @foohyfooh  Including the RGB format in such a mechanism could be problematic, as it has minimum and maximum resolutions (highlighted in the table below) that are not supported on the depth and infrared formats.  So forcing depth and infrared to match to RGB resolutions could cause a Failed to resolve requests error at pipeline start as the program would be unable to fulfill the requested configuration.
It may be viable if color resolution was synced to depth instead, so that the minimum and maximum RGB resolutions possible were 424x240 and 1280x720.  There would also be the issue of setting an FPS speed that was supported by all formats though to ensure that they were all configured to operate at the same speed.
There are no plans to add such a feature though as far as I am aware.  Using the camera's default configuration or defining a specific cfg configuration for streams individually works well for the majority of RealSense users.

Thanks for your response.
While you have stated that there are no specific plans to add this feature, I want to still at least clarify my request. It was not to force the depth camera to go to a higher or lower resolution that it doesn't support, but rather to match the highest or lowest resolution that they both support, example being Depth 1280x720 @ 6Hz Z16 and Color 1280x720 @ 6Hz BGR8 are both supported and thus can be returned as a valid configuration of highest matching resolutions.

Thank you very much for the clarification.
On the D435 / D435i and D455 camera models, the optimal depth accuracy resolution is 848x480, whilst on D415 the optimal depth accuracy resolution is 1280x720.
https://dev.intelrealsense.com/docs/tuning-depth-cameras-for-best-performance#section-start-by-operating-at-optimal-depth-resolution-for-the-camera
So whilst depth can be set to 1280x720, it may not be the best choice in terms of depth accuracy on the D435/i and D455 models.

Hi @foohyfooh  Do you require further assistance with this case, please?  Thanks!

No further assistance is required.

Okay, thanks very much @foohyfooh for the confirmation!  I will close the case now,

I have made a naive implementation that addresses the feature request for anyone who comes along with a similar issue.
#include <set>
#include <tuple>
#include <iostream>

using resolution_tuple = std::tuple<int, int, int>;

std::set<resolution_tuple> getResolutionIntersection(rs2_stream color, rs2_format color_format, rs2_stream depth, rs2_format depth_format) {
    // TODO: Make the device a parameter
    // TODO: Extend for more than 2 sensors
    rs2::context context;
    rs2::device_list devices_list = context.query_devices();
    rs2::device device = devices_list[0];
    std::vector<rs2::sensor> sensors = device.query_sensors();

    std::set<resolution_tuple> color_profiles, depth_profiles, intersection;

    for (rs2::sensor sensor: sensors){
        std::vector<rs2::stream_profile> profiles = sensor.get_stream_profiles();
        for(rs2::stream_profile profile: profiles){
            if (rs2::video_stream_profile video_profile = profile.as<rs2::video_stream_profile>()){
                resolution_tuple p = std::make_tuple(video_profile.width(), video_profile.height(), profile.fps());
                if(profile.stream_type() == color && profile.format() == color_format){
                    color_profiles.insert(p);
                } else if(profile.stream_type() == depth && profile.format() == depth_format){
                    depth_profiles.insert(p);
                }
            }
        }
    }

    std::set_intersection(color_profiles.begin(), color_profiles.end(), depth_profiles.begin(), depth_profiles.end(), std::inserter(intersection, intersection.begin()));
    return intersection;
}

rs2::config getLowestMatching(rs2_stream color, rs2_format color_format, rs2_stream depth, rs2_format depth_format) {
    std::set<resolution_tuple> intersection = getResolutionIntersection(color, color_format, depth, depth_format);
    // Since the set is internally sorted we can use intersection.begin() or (--intersection.rend()) to get the first element
    resolution_tuple resolution = *(intersection.begin());
    int width = std::get<0>(resolution), height = std::get<1>(resolution), fps = std::get<2>(resolution);
    std::cout << "width: " << width << " height: " << height << " fps: " << fps << std::endl;
    rs2::config config;
    config.enable_stream(color, width, height, color_format, fps);
    config.enable_stream(depth, width, height, depth_format, fps);
    return config;
}

rs2::config getHighestMatching(rs2_stream color, rs2_format color_format, rs2_stream depth, rs2_format depth_format) {
    std::set<resolution_tuple> intersection = getResolutionIntersection(color, color_format, depth, depth_format);
    // Since the set is internally sorted we can use intersection.rbegin() or (--intersection.end()) to get the last element
    resolution_tuple resolution = *(--intersection.end());
    int width = std::get<0>(resolution), height = std::get<1>(resolution), fps = std::get<2>(resolution);
    std::cout << "width: " << width << " height: " << height << " fps: " << fps << std::endl;
    rs2::config config;
    config.enable_stream(color, width, height, color_format, fps);
    config.enable_stream(depth, width, height, depth_format, fps);
    return config;
}

Thanks so much @foohyfooh for sharing your code with the RealSense community!  :)


Add Juneteenth

https://www.nytimes.com/2021/06/17/us/politics/juneteenth-holiday-biden.html

Merged in beta.. thx a lot 👍


Substeps in a step

Hi folks!
This may be a repetition of another issue.  But since the old issue never got a real answer i thought i could ask again for it; you guessed it, im asking for the functionality of substeps.
I dont really want a complex thing about it, i just want several divs in a step, which get the class active and past like normal steps, when you navigate through the presentation.
I hope you could help me, cause my css-only workaround doesnt worked.
Thanks in advance
David

But since the old issue never got a real answer i thought i could ask again for it;

Sorry that the old issue didn't get a proper response. The project has been inactive for some time and the development is just starting to move again. So we are closing this as a duplicate of #81 and will be tracking this request in the old issue.
Thanks for opening the issue anyway!


Updated license date

Updated license date to 2015 for new year.

Lol, did you automate this?

Lol, did you automate this?

Unfortunately not. I wish I knew how.

Unfortunately not. I wish I knew how.

Does this actually matter? I'm not updating the licenses on the like hundred repos I have access to lol

Does this actually matter? I'm not updating the licenses on the like hundred repos I have access to lol

It matters for new code written this year


Home page JPG

Hey @headphone-rachit Can I please have the screenshot of the second UI design that you have made here?

@all-contributors please add @headphone-rachit  for design


There seems to be a bug when exporting variables

I created this issue as soon as I discovered it, so I haven't made the bug reproducible correctly (I tried to check it with rhai-tools, but the AUR version is 1.15 which does not have the bug).
I have a map.rhai file that imports the file token.rhai as token. When I "run" it, I get the error:
48: "semanticTokenColors": ${token::semantic_colors}
                             ^ Variable not found: token::semantic_colors

Basically I'm creating a text file using Rhai as a preprocessor, and such error should not appear (variable exists). If I delete line 48 of map.rhai, I don't get the error, but the result is incorrect: it appears that ${workbench::colors} has been swapped with ${token::colors}.
The bug seems to have been introduced in commit<PHONE_NUMBER>6d17903e41566275ea08a72583343b and still remains. When I go back to the previous commit (f86609ed7cca142624a81f2987c8287615518b50) everything works fine.

it appears that ${workbench::colors} has been swapped with ${token::colors}.

Is there a reason why you suspect this?

@ejaa3   Thanks for catching this.  Can you confirm that the fix works?  It has landed.  Thanks!

Yes, it works normally again. Thank you.

Great! I'll release a new version later today.

Version 1.16.2 released with the fix.


Test/fix: polkadot xcm

Some minor changes in interlay xcm that I'd like to deploy soon, and also xcm tests in preparation for opening the channels.
In the future I'd like to look into the possibility of merging kintsugi & interlay xcm tests, but I have a feeling that like the runtime config it would be very problematic

@sander2 for de-duplicating these tests you may want to look at Acala's setup: https://github.com/AcalaNetwork/Acala/blob/master/runtime/integration-tests/src/setup.rs


Storage Rent Research

Research how/whether HFS has any expiry implementation
Research the progress of state/storage rent in Ethereum (a lot of ethresearch reading must be done on this)

Research output:
https://www.notion.so/limechain/State-Expiry-c24cf0c6b79a42e0ac31da2bf82a01f1


[PromQL] Percentile parsing

Proposal
Use case. Why is this important?
When add an incorrect parameter for quantile function, a result is loaded
Nice to have' is not a good use case :)
You can test it with: "percentile(2.0, metric...)
Bug Report
What did you do?
Just execute command below on Prometheus
What did you expect to see?
An error message
What did you see instead? Under which circumstances?
A result (+inf)
Environment

Prometheus version: 2.3.1

May I ask why this makes a difference to you? Changing this would be a breaking change, as it is the documented behaviour of our quantile functions.

This is valid, though not particularly sane, PromQL.

In our bugscrub we've decided that this is expected behaviour and we will document this case.

Should it really be +Inf or NaN?

+Inf, this is the documented behaviour in the code.

Just checking, if this Issue is open to pick?
Or if it is the expected +inf behavior, we are good to close this issue as well.

It's the expected behavior, but the idea is to document the behavior in case nonsensical parameter values are picked.
The documentation change probably has to happen here: https://prometheus.io/docs/prometheus/latest/querying/operators/#aggregation-operators

φ<0: -Inf
φ>1: +Inf
φ is NaN: NaN ← and this actually doesn't work, results in index out of range [-9223372036854775808]

I filed #10117 for the latter.

@beorn7 I see #10117 was closed as completed, so this issue should ok to close, right? Or am I missing something?

Yes, bug fixed and documentation added. Thank you very much. Closing this.


Handle all datagrams - Add Python bindings

Thanks :+1:
I took the liberty to  push some minor changes to your branch.
LGTM.


[cloud_firestore]: Could not reach Cloud Firestore backend.

Future getdata() async {
    Firestore db = Firestore.instance;
    var data = await db.collection('event_details').getDocuments();
    var details = data.documents.toList();
    details.forEach((element) {
      print(element.documentID);
    });
  }

W/Firestore(  885): (21.3.0) [OnlineStateTracker]: Could not reach Cloud Firestore backend. Backend didn't respond within 10 seconds
W/Firestore(  885):
W/Firestore(  885): This typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.
Reloaded 1 of 537 libraries in 344ms.

@zeyadsharo Could you provide some context around when this issue shows up:

Does it show up in all cases or just sometimes?
Is it happening on a particular platform iOS or Android?
Any steps to reproduce?
Are you seeing the same with the example app in this repo?
Can you try using the pre-release version of the firestore plugin and see if the issue persists?


Dark box artifact around text

Regardless of what gifsicle settings I put (even --lossy=0), I get a darker box around updated text that I don't see in any of the demo GIFs on the README.

Update: It turns out this was only the result of gnome image viewer displaying it incorrectly. It looks fine once uploaded.


[Vanilla+] Looting More Contagious Flesh

Using Looting enchantment to get more Contagious Flesh.

It's on my ToDo list :)

I would implement it like this:

7.5% base change
per level of looting: 2.5% (leading to a total of 15%, incl. the base chance)
a drop can be either one or two pieces of flesh

that's good for a balanced drop

please check out the latest version 1.4.1
https://modrinth.com/mod/contagion/version/rPbnX4mH

please reopen if needed :)


Adding undefined/null check for container.lat scenarios.

Resolves #47

@caseycesari Any thoughts on taking a look at this?  631ef53 should be straightforward enough.  f9e7f50 isn't really necessary, it's just a quick fix for the jshint task.

@hparkertt Hey, thanks for the reminder, and the fix. Any chance you could add a test? If not, I can add one this week and get this released. Thanks.

@caseycesari The tests are in, but I noticed a limitation of GeoJSON that I might try and fix right off.  The limitation is that you cannot specify multiple geometry mappings in the param object that do not have similar nested property paths.  The buildGeom function returns false at line 234 and at line 252, not allowing the params.geom loop to continue and attempt to find a matching nested property path with a different geometry type.

Hi @caseycesari I've added a few issues that can be labeled as 'enhancements'.  I probably could have done it a little cleaner, but I've created pull requests for each issue.  Overall, here is what I've done:

I resolved #47 here
I created #49 and resolved that with #51
I resolved #34 with #52
I created #50 and resolved that with #53

At this point we should focus discussion for each issue in it's own page; I only listed this out here because this is where our conversation started.  This library is a really great, simple tool, and I hope these changes help give it a little extra functionality!
Thanks!

@hparkertt Oh wow! Thanks for all of these PRs. I'm going to try and get through these over the next couple days.

This looks good. Merging.


Python client library support for cuda shared memory in gRPC V2

libb64-dev needs to be installed on the jetson devices as well. Can you add this to the jetson-setup file? I will ssh into the machines and install them manually for now.

Sure


Python 3 support

I am proposing to https://github.com/dgilland/pushjack instead of PyAPNS and Python-GCM libraries. We're going to have to test this out.

So I've started this feature on my fork, the codebase became much cleaner but I'd like to add a feature to this though.
As it is now all push notifications are sent individually to every token, while both GCM and APNS supports batching to up to 100 devices simultaneously.
pushjack comes with batch handling OOB so I'd recommend utilizing that, it will take some more time though.

Nice! I like what you're doing so far. i've been busy the last 3 months so couldn't get the time to implement this myself. Let me know if you think we can work on this together.

Well I think I'm done so far to the point where it does the exact same thing as the previous code, I would like to spend some time on batch sends though because the latest project I'll be using this in will have great use of that.

Although I'd suggest bumping the major version instead because pushjack has no support for plaintext GCM notifications.

Batch sends would be great! However, i suggest keeping them in a different change set than py3 support. So if you're done with the py3 changes, let's have a look at the PR and merge it, then we can work on the batch sends and release them both together into a new major version.
In fact, V2 of django-pushy has been targeted to include py3 support if you remember our last discussion.


Add STREAM variables

Made a API wrapper as a helper to fetch the stream title and game https://github.com/jenslys/twitch-api-wrapper

Only downside of this is that the API returns nothing if the streamer is offline

Uses https://stedolan.github.io/jq/ to fetch the json values, so this needs to be installed to be on existing servers. sudo apt-get install jq
adds STREAM_TITLE and STREAM_GAME as variables to be used in STREAM_TITLE for example

API_CALLS needs to be set to TRUE before using the variables

Related issue/request: https://github.com/jenslys/autovod/issues/17

Todo:

[x] Add jq to install script, docker and readme
[x] Testing

Might merge this into a dev branch once its cleaned up, so i can start working #23.

Works from the testing i have done.
closes #17
Will clean everything up once I move all variables to a separate config file.

Working as expected ! Good work @jenslys thank you !


test: Automated tests for improved Mongo CRUD + flaky fixes

Description

This PR includes cypress scripts fixes for stable CI runs + CRUD Mongo improvements

Type of change

New tests for increased coverage for CRUD cases

How Has This Been Tested?

CI runs

Checklist:

[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my own code
[X] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[X] My changes generate no new warnings
[X] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes

/ok-to-test sha=ed4f4b0

/ok-to-test sha=841bb16

/ok-to-test sha=a06c097

/ok-to-test sha=cdef47a

/ok-to-test sha=cdef47a

/ok-to-test sha=8a2f15a

/ok-to-test sha=6227fd1

/ok-to-test sha=f4e0963

/ok-to-test sha=eff3eb5

/ok-to-test sha=8700863


chore: release 3.2.4

:robot: I have created a release *beep* *boop*
3.2.4 (2019-07-29)
Bug Fixes

deps: update dependency pumpify to v2 (#409) (aea90b3)

This PR was generated with Release Please.

Release is at https://github.com/googleapis/nodejs-speech/releases/tag/v3.2.4

The release build has started, the log can be viewed here. :sunflower:

:egg: You hatched a release! The release build finished successfully! :purple_heart:


discussion: publish a pre-release for nightly builds

We build RisingWave nightly in Buildkite but the link is very deep to find.
Because RisingWave is under rapid development and we hope to provide the latest features to users, is it possible to publish a pre-release build on the GitHub releases page? For example, https://github.com/datafuselabs/databend/releases

http://risingwave-nightly-pre-built-binary.s3-website.us-east-2.amazonaws.com/


Custom template?

Hi, great work!
Any plans to extend Esdoc to be able to render using custom templates?

@stefanwalther Hi, thank you :smile:
Now, ESDoc supports to include js/css in output HTML.(config.scripts/config.styles).
And I plan to provide 2 hook points.

after parsing tag(you can handle meta data)
after building document(you can handle HTML)

I think that full scratch custom templates are very high cost to template owner.
And keeping high quality with using it is very hard.
So, for now, I do not plan to it officially.
Will this answer help you?

Yes, thx ... looking forward to see more possibilities to customize ...

@stefanwalther ESDoc supports plugin feature. see https://esdoc.org/api.html#plugin-feature for more information.


Network Routers REST API

Add capability to retrieve network routers directly

@gildub this looks promising, but can you add some tests to prove that this works?

@imtayadeway, I added the test file, thanks.

@imtayadeway,

I've removed the subcollection
I've added tests for the bulk query in spec/requests/api/collections_spec.rb for the query itself (200) and in spec/requests/api/network_routers_spec.rb for the (403)
I've also added the default query in spec/requests/api/collections_spec.rb  which I believe makes parts of spec/requests/api/network_routers_spec.rb redundant

Thanks @gildub for the API Enhancement.  LGTM !!


Texture coordinates incorrect

In RemoveVertexPass, CalculateError(ref vertices[i0], ref vertices[i1], out p, out pIndex) returns a p that comes from neither of vertices corresponding to i0 or i1, so MergeVertexAttributes does not interpolate attributes properly.

The fact that the resulting p is different from both vertices i0 and i1 is entirely expected, since it could be an adjustment for preventing the mesh to loose most of its shape during mesh decimation.
The resulting p doesn't have much to do with the interpolated texture coordinates however, but pIndex does. It's badly named, but it's essentially a value between 0 and 2. 0 means that the attributes from the first vertex will be kept, 1 means that the attributes from the second vertex will be kept, and 2 means that they will be interpolated half-way (linear interpolation 50%).
Would you mind explaining what the problematic result is? Is it texture bleeding, or warped coordinates? Do you have a screenshot or a sample mesh that you could share?

2 means that they will be interpolated half-way (linear interpolation 50%).
I don't think this is what should happen. It results in textures being warped.
.
I wrote a test that made a flat grid mesh (z = 0, and x and y ranging from 0 to 1) with texture coordinates identical to the x and y of the vertex coordinates. My assumption is that the texture coordinates after the reduction will still be (nearly) identical to the vertex coordinates so that the texture appearance is preserved. I fixed this in a fork by getting the barycentric coordinates of p within the triangle and using that to weight the attributes from all three vertices of the triangle.

My assumption is that the texture coordinates after the reduction will still be (nearly) identical to the vertex coordinates so that the texture appearance is preserved.

This would be my assumption as well. I have noticed that the texture coordinates would sometimes get scewed. But what you are saying totally makes sense. I'm not sure why I never thought of that. Let me do some testing on this as well. Thank you!

I just tested it with a flat grid mesh, just as you described, and I can not see any warped texture coordinates like what you are showing (without any modifications to the code).
After decimation

Before decimation

I am doing the testing through Unity however, but that shouldn't affect the decimation unless there is a problem elsewhere in the code?
I still want to test your suggested fix however. So I would like to get hold of a mesh that ends up with warped texture coordinates. Is your grid not uniform or something? I am trying to figure out why we would get such different results. Are you using the latest version of MeshDecimator?

In the commit https://github.com/Whinarn/MeshDecimator/commit/a2f626c87f59ff1279680d4b905f3aedbaae65a7 of branch barycentric-attribute-interpolation I implemented vertex attribute interpolation using the barycentric coordinates within the triangles during the decimation. And in my personal tests I have noticed a slight improvement. Is this what you had in mind?

Closing this issue because the project is being archived. Consider using UnityMeshSimplifier instead, if you are using Unity.


Fix use_sim_time not modifying clock

Previously, when attaching a node that has 'use_sim_time' set to true,
we were not setting ROS time on any previously attached clocks or creating a subscription
to the /clock topic. This change fixes that by calling the TimeSource setter.
Added unit tests that fail without this fix.

I wonder if there was an update in colcon or the ros-tooling action that changed the behavior of "colcon_defaults". I don't see any reason why CI should start failing with the changes in this PR.

Fixed CI in https://github.com/osrf/ros2_java/pull/89 and rebased this PR.


Need to refactor change quantity action to use Flask-RESTX

As an Inventory Manager
I need to refactor the change quantity action from a basic Flask application to one that uses FlaskRESTX
So that I could provide Swagger documentation with very
little effort
Details and Assumptions

Current routes.py and models.py is practiced with TDD and have 95% coverage

Acceptance Criteria
Given the Flask application
When HTTP error occurs
Then return JSON error messages instead of HTML error messages.

This function is deprecated


Follow upstream versioning and use "released versions"

It'd be great if your "packaging" followed the upstream versioning, and if it were built from "released versions" (i.e. tags in upstream repository).
For now, unless I missed the info somewhere, one can't really tell which upstream commit your 0.9.3 "release" is based on.
We're using libphonenumber on the server side in Java and I was just asked to review a change that brought it to the client side, through webjars.org, and was surprised to read the version as 0.9.0 while we're using libphonenumber 7.0.10 in Java.

It's a 0.x because this isn't 1:1 compatible with libphonenumber and because there is no way to distinguish my adding/changing a feature which breaks backwards compatibility or upstream doing the same. I'll add something in the README which identifies which version it is based off of, but I'm not going to track upstream version numbers since both values are valuable pieces of information.
Closing, but look for a new release tonight based on 7.2.4.

Thanks, that makes sense.
(and thanks for the new release)


Inconsistent syntax highlighting for C#

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.61.2
OS Version: Windows 10 21H1

Some keywords have the wrong scope causing weird syntax highlighting
Steps to Reproduce:

Use more recent C# features such as target-typed new or the is not operation or the and/or keywords in a switch statement
Open the command pallete
Use the command "Developer: Inspect Editor Tokens and Scopes"

Sample code
using System;

namespace HelloWorld
{
	public class MyClass
	{
		public MyClass()
		{
		}
	}

	class Program
	{
		static void Main(string[] args)
		{
			var stringArr = new[] { "", "" }; // new shows as keyword which is probably the expected behavior
			MyClass myClassInstance = new(); // new shows as a function call

			if (myClassInstance is not null) // is shows as keyword but not shows as a type annotation
			{
			}

			int x = 10;
			switch (x)
			{
				case > 1 and < 5 or 10: // both and and or show as variable names
					break;
				default:
					break;
			}
		}
	}
}

Screenshots:

Thank you for the clear sample and screenshots! I've moved the issue into the repository that we pull our C# syntax highlighting grammar from: https://github.com/dotnet/csharp-tmLanguage/issues/232


State array gets emptied after a method call

I am trying to perform a filter on a Preact state array. From the HTML I call the search method.
Somehow the state array gets emptied from the moment I call:
this.startSearch.bind(this).
note: in the code underneath I've skipped the part where I fill the array.
export default class ItemList extends Component {
    state = {
        itemList: []
    }

startSearch(input){
    console.log(this.state.itemList)
    }

render() {
   return (
    <input type="text" id="inputField" value={this.state.searchInput} onInput={this.startSearch.bind(this)}></input>
    )}

```Any idea what I am missing out here?

I think this should be on the preact repo?


Revisions to housing burden calculation and for addressing standard error measurements using CalEnviroScreen methodology

Addresses #1024 and #1029.
There are two notebooks that address two fundamental problems: 1) reliability based on ACS sample estimates of the population and 2) the original request posed by Blair.

One notebook proposes an alternative methodology to address the systematic problem in CHAS data. Specifically, CHAS data is based on American Communities Survey (ACS) estimates, which come from a sample of the population, and hence are unreliable if based on a small sample or population size.

The standard error and relative standard error were used to evaluate the reliability of each estimate using CalEnviroScreen’s methodology (page 129).
This is was done to propose one way to address a comment about small sample size checks (line 274 in etl.py in the hud_housing module). The related task can be found here.
The sources for this methodology are cited in this notebook and I have added detailed comments there.
I also compared the derived scores with the 4.0 version of Calenvironscreen (notebook was not committed), but I have attached a snapshot of the two derived column estimate, comparing (left to right):

hbrd_score
hbrd_rank
Housing Burden
Housing Burden Pctl

Note: Although this methodology reflects 3.0, the updated 4.0 still maintains the same methodology (please see page 14).

The second notebook makes adjustments as a revision to the denominator that more closely resembles the (as I understand) intent behind Blair's response. This actually addresses #1024.

@lucasmbrown-usds @switzersc-usds - Would it make sense to send this back to Blair for his re-review so that we could get some of his thoughts on the proposed methodology and the interpretation of poverty - as he originally shared?

@lucasmbrown-usds @BethMattern Regarding this issue, #244, my questions are:

Did we ever come to a consensus on this?
After reviewing the analysis in this housing burden PR's outcome results and eligible tracts, I think one reason why such a phenomenon occurs lies in the usage of how relative population estimates are computed using the ranked percentiles.

@lucasmbrown-usds @esfoobar-usds I am moving this in order for someone else to take over. This thread and context is sufficient.

Closing based on @saran-ahluwalia 's recommendation that we not move to this alternative definition of housing burden.