Fix CPU hog in config save for large users.conf

If the realm file (users.conf) exceeds a certain size (about 30000 lines) saving this file causes a massive CPU hog. I have provided a branch that demonstrates the issue:
https://github.com/Curly060/gitblit/tree/show-user-config-save-cpu-hog-bug
https://github.com/gitblit/gitblit/compare/master...Curly060:show-user-config-save-cpu-hog-bug
So simply check out this branch and run the ConfigUserService class from there. But beware: Depending on the CPU you have, this might take from 20s up to several minutes!
This patch here simply replaces the usage of JGits Config classes with a much more efficient and far more simple class.
I know that Gitblit was not made for big workgroups and clearly this is a big users.conf. Nevertheless, saving 60000 lines should not hog a CPU like that.

Hi Ingo!
Thanks you for bringing this to attention and providing a fix. I will have a look at it as soon as I find the time.
Out of curiosity, do you run Gitblit for such large workgroups or how did you encounter that behaviour?

Gitblit is used at the company I work at and this company is indeed a very big global company. We use a forked version of the Gitblit Atlassian Crowd Plugin which syncs users from Crowd to Gitblit. Unfortunately the plugin only ever adds new users and never removes dead ones, so over time the users.conf has grown quite large (~62000 lines).
So recently gitblit had started to hang for several minutes quite often. Eventually this got so frustrating that I finally investigated the problem in detail.
tl;dr: JGit internally uses an array to handle Config files and about 1 billion(!!) loop runs occur when storing those 62k lines.
Now the gory details ;)
When Gitblit saves the users.conf, it rebuilds the config from scratch like this:
for (user : users) {
config.setXXX(); // with up to 18 such setXXX() methods
}
for (team : teams) {
config.setXXX(); //with up to 8 such setXXX() methods
}
These methods all internally call the setStringList() method which calls replaceStringList(). The JGit Config class  holds an array of ConfigLine items.  And for every setXXX method it first creates a new array of size "old array size + string list size",copies all entries and then always(!) runs through that entire(!) array doing some string comparisons ("am I in the right section and subsection?").
While this may be fine for small config files like they exist in typical git repositories, it certainly is not when the files grow larger. As I was saying, 62k lines result in approx. 1 billion internal loop runs in the Config class.
What makes the whole situation even worse is that the write method of ConfigUserService is synchronized! So if this method takes a minute, all other attempts to write need to wait this minute. And the next write of course takes another minute again. It's quite deadly ;)
So that's why I decided to replace the config save logic with a much simpler one. Now saving takes 200ms or so.

Great!
Have you tested your class and could you provide some unit tests for it? I am trying to increase the test coverage to make supporting Gitblit easier in the future.
Have you ever encountered something like in #938?  Are you sure that your class is not susceptible to data loss?
That sounds like an impressive setup. If you have forked the Crowd plugin, would it be easy to make it also delete users? With a quick search I found two plugins, but didn't have a closer look.
Can I ask how large your developer base in Gitblit is, i.e. actual developers, not dead user entries? If you have many developers maybe there are other problems that you have come across with Gitblit?

I have made the following tests, that were all successful:

Load existing config file and write it again with both, old and new logic, then sort and compare => both files were identical
run the patched version of Gitblit in our test environment (with Crowd plugin enabled) and make operations that trigger saving the users.conf
run a local patched version against some of my own repositories with some local tests users and make operations that trigger saving the users.conf

But you are quite right, this may not be enough testing. After all, our users do not have all properties of the UserModel set. So yes, unit tests are probably a very good idea. However, I am not that deep in Gitblit source that I may catch all cases - and I will have to find the time to write those. So this might take a while.
About issue https://github.com/gitblit/gitblit/issues/938:
I wouldn't expect my class to cause such behaviour. It simply replaces StoredConfig / FileBasedConfig of JGit with a different implementation. The rest of the logic of GitBlit stays the same: build whole config first, then save (to a temp file) and only if that temp file exists and is not empty, do the rename.
About the crowd plugin: I haven't had a look at the code there yet, but yes, it should be possible to delete users again. However, fixing the config saving seemed like easiest thing to do :)
About the developer base: Hard to say, but in the last 7 days there were commits from ~180 different committers. Using git shortlog and some bash scripting: ~380 commiters in the past year. Amount of repos: 660
So far, Gitblit has served well for the past couple of years, I'd say. This config save thing was the only major issue that I ways aware of in the past 3 years that I work there.

I just noticed: The UserServiceTest class already implicitly tests pretty much everything. It creates various attributes in UserModel and TeamModel, saves them to the file individually, reads the file again and checks if those attributes are still the same. Would that not be sufficient testing then?

Thanks for your answer and for enduring my questions. :)
Yeah, I guess you are right that the existing tests should suffice.

Have you tested your class and could you provide some unit tests for it? I am trying to increase the test coverage to make supporting Gitblit easier in the future.
Have you ever encountered something like in #938? Are you sure that your class is not susceptible to data loss?

I'm still sorry about this one :cry:
Really nice catch and cool implementation, Ingo!

Really nice catch and cool implementation, Ingo!

We have built gitblit with this patch and deployed it on prod a week ago. This has solved the CPU hogging problem completely and now gitblit runs just fine.

This change has now been active for over 3 months in our company and it runs perfectly fine and without any issues. Any chance this gets merged?

Ya, I had an issue with it, why it didn't use the StoredConfig interface, but since I haven't gotten around to comment or change it since then, and since it is proven to work and fixes a problem, I just merged right now.

About the StoredConfig:
I have done this on purpose to clearly show that in this place using the JGit Config class is not applicable at all!
The trouble with StoredConfig is that it unfortunately is not really an interface, it's an abstract class extending the  Config class from JGit.
If I had extended from StoredConfig not only this would have forced me to override load() (which makes no sense in my implementation), no, it would have pulled in all the setXXX methods which are responsible for this CPU hog in the first place.
But the whole point of this fix was to avoid exactly these methods, hence, a completely new implementation.
Yes, I know this is not ideal, but actually it is the fault of JGit which does not provide clean interfaces for its Config classes...
Oh, and thanks a lot for merging :)

Ah, yes, that rings a bell. I guess I had found that out, too, but then for some reason forgot about the PR again. So thanks for the reminder.

Or, checking the builds, maybe it was because it uses Java 8, so it would need to be part of 1.10, as I keep 1.9 on Java 7.


UI - Persistent Volume plugin naming should match Kubernetes naming

What kind of request is this (question/bug/enhancement/feature request):
Enhancement
Steps to reproduce (least amount of steps as possible):
Navigate to Cluster->Storage->Persistent Volumes
Click Add Volume
Expand Volume Plugin list
Notice that following Volume Plugin names don't match any documented Kubernetes volume types:

Local Node Disk
Local Node Path

Expected Result:
Volume plugin naming should match documented Kubernetes naming so that a user can easily discern what the plugins are.
Propose to rename:
Local Node Disk -> Local
Local Node Path -> HostPath
Rancher 2.3.2

Tested in rancher\rancher:master-head version 781cd0fdc.
Create a cluster.
In Cluster -> Storage -> Persistant volumes -> Add Persistent Volume
In Volume Plugin dropdown:
Naming now reflects documented Kubernetes naming.


chore: fix Cargo.lock

PR Type
Enhancement, Documentation

Description

Updated the comment for CACHE_SIZE and MAX_BLOCKS_NOT_SAVED constants in src/bin/importer_offline.rs
Clarified that the cache size must be large enough to hold slots and accounts for the specified number of blocks
Improved documentation to better explain the relationship between cache size and block processing

Changes walkthrough 📝
Relevant filesDocumentation

importer_offline.rsImprove documentation for cache size constants

src/bin/importer_offline.rs
Updated comment for CACHE_SIZE and MAX_BLOCKS_NOT_SAVED constants  Clarified the relationship between cache size and block processing

+2/-2

💡 PR-Agent usage: Comment /help "your question" on any pull request to receive relevant information

Final benchmark:
Run ID: bench-4012861467
Git Info:

Branch: main
Commit: 7876879
PR: #1893

Configuration:

Target Account Strategy: Default (Random)

RPS Stats: Max: 1308.00, Min: 653.00, Avg: 1111.00, StdDev: 67.21
TPS Stats: Max: 1277.00, Min: 948.00, Avg: 1078.08, StdDev: 76.59
Plot: View Plot


[discussion] would Try.lift() make sense?

I wrote myself a little helper function, I wonder whether it would make sense to make a PR for javaslang.
my use-case is this:
list.map(x -> runIoOperation(x, getParameterWhichCouldThrow()));

Can't do that because both runIoOperation & getParameterWhichCouldThrow() can throw checked exceptions.
I could extract getParameterWhichCouldThrow() in its own variable with Try wrapping too I guess.
I could also wrap runIoOperation in a new function which would return a Try too.
But I spotted for instance CheckedFunction1.lift, which is:
static <T1,R> Function1<T1,Option<R>> lift(CheckedFunction1<T1,R> partialFunction)

So I wrote for myself:
private static <T,U> Function1<U, Try<T>> tryLift(Try.CheckedFunction<U,T> tryGetter) {
    return x -> Try.of(() -> tryGetter.apply(x));
}

private static <U> Function1<U, Try<Void>> runLift(Try.CheckedConsumer<U> tryGetter) {
    return x -> Try.run(() -> tryGetter.accept(x));
}

(actually they could be overloaded)
with that I can do...
list.map(runLift(x -> runIoOperation(x, getParameterWhichCouldThrow())));

Now actually that returns a List<Try<Void>> so I combine that with sequence to get a Try<Void>:
Try.sequence(list.map(runLift(x -> runIoOperation(x, getParameterWhichCouldThrow()))))
    .map(x -> null);

In a way maybe this potential new Try.lift wouldn't make sense unless combined with sequence.. At least in this use case.
So I'm wondering whether I'm doing it wrong or whether it would actually be worth including such a Try.lift in javaslang?

Look into #1381: you can use it like list.map(CheckedFunction1.of(x -> runIoOperation(x, getParameterWhichCouldThrow())).trusted()), or recover at needed steps

Hi @emmanueltouzery, thank you for your suggestion.
I think the idea of @valery1707 is applicable to your use-case. With the addition of CheckedFunction.liftTry methods (see this comment) we have all we need.
Adding a Try.lift that makes use of sequence would be too special.
If you agree we can close this issue.

Of course! I think CheckedFunction.liftTry is exactly what I suggested, so i'm a happy camper =D


keep street and civic number distinct @cristianolongo

Issue by @cristianolongo
In the events.json I observe that the field street is a string containing the civic number also. It should be in a separate field.

@cristianolongo - why is this an issue in your opinion?


Add config file for cri-containerd.

Currently, cri-containerd only have flags. We should add a configuration file for ease to use.
Probably use toml which containerd is using.

Missed the part about toml here.. Won't that become an issue with the kubernauts who are all used to yaml and are not familiar with toml?


Bulk scrap popup fires when changing tabs in MechBay

NastyJohnny01/12/2021
Every time I open the MechBay, or change tabs in MechBay (Mechs/Storage/Componets), or exit a mech modification, I get a popup asking if I am Sure I want to scrap all stored mech parts. (total value x million credits)
Scrap all Mechs Popup.
Attachment file type: archive
RogueLogs.zip
14.04 MB
DrBwaa01/12/2021
@FrostRaptor here's another of these

Nothing in any of  the logs, so must be something in the UI triggers.

Nothing in any of  the logs, so must be something in the UI triggers.

Tightened up constraints for selection, should be fixed in 0.8.7

Tightened up constraints for selection, should be fixed in 0.8.7


[Bug Report] vue.js:564 [Vue warn]: You may have an infinite update loop in a component render function.  (found in )

Element UI version
2.0.4
OS/Browsers version
Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1
Vue version
2.2.6
Reproduction Link
https://jsfiddle.net/pj71jkyw/
Steps to reproduce
I use el-table in template, after compiled, Chrome  console many error :
vue.js:564 [Vue warn]: You may have an infinite update loop in a component render function.  (found in )
What is Expected?
No error
What is actually happening?
Many errors

你好大兄弟，饿了么UI 2.0 需要vue 2.5.2 及以上 吧vue升级下就能解决

Please update your vue version to 2.5.2

Thx😶

从elemntUI 1.3.7 升级到2.0.8, hover el-tooltip等组件就会报这个wanrning.将Vue升级到2.5.2, 2.5.13后问题依然存在.

thanks!


Wave sort in C++ #225

🛠 Issue #225
👨💻 Changes proposed
Added wave sort algorithm in C++
✔ Check List

[x] My code follows the code style of this project.
[x] This PR does not contain plagiarized content.
[x] The title of my pull request is a short description of the requested changes

📷 Screenshots

Done with Changes.
And this is the output screenshot.

Added the comments that explains the approach of algorithm of wave sort


Unable to connect to the server: dial tcp w.x.y.z:80: i/o timeout

With respect to issue #498
Same steps followed. However (on server side, Docker image for ubuntu not used, Apache not installed on Ubuntu container, hence port 80 not free)
Hence timeout occurs.
[root@localhost pachyderm]# make MANIFEST=manifest launch
GOPATH/bin must be on your PATH to access these binaries:
GO15VENDOREXPERIMENT=1 go install ./src/server/cmd/pachctl ./src/server/cmd/pach-deploy ./src/server/cmd/pachctl-doc
kubectl -s <IP_ADDRESS> create -f manifest
Unable to connect to the server: dial tcp <IP_ADDRESS>:80: i/o timeout
Makefile:107: recipe for target 'launch' failed
make: *** [launch] Error 1

Similar to #498. Your problem here is likely that you don't have port forwarding setup correctly or something like that. However it's not a Pachyderm issue, I'd recommend taking this issue to the kubernetes team they'll be much more able to help you with issues like this one.


Cannot push to HA registry with NFS storage

We're encountering issues in OpenShift with multiple replicas using shared NFS volume. If the load balancer uses round robin algorithm while choosing registry replica, there's almost 100% probability the push will fail.
It can be easily reproduced outside of OpenShift with current docker.io/registry:2 image. NFS storage is exported like this:
/var/shared <IP_ADDRESS>/24(rw,sync,all_squash)

It's mounted to 2 nodes with default options:
<IP_ADDRESS>:/var/shared on /mnt/shared type nfs4 (rw,relatime,vers=4.0,rsize=8192,wsize=8192,namlen=255,hard,proto=tcp,port=0,timeo=14,retrans=2,sec=sys,clientaddr=<IP_ADDRESS>,local_lock=none,addr=<IP_ADDRESS>)

Each node runs docker registry in a container with command:
docker run --rm --name upstream-registry -e REGISTRY_LOG_LEVEL=debug -e REGISTRY_HTTP_SECRET=asecret -v /mnt/shared/upstream-registry:/var/lib/registry:rw -p 5001:5000 docker.io/registry:2

Push either fails like this:
docker -D push <IP_ADDRESS>:5010/miminar/hello-world
The push refers to a repository [<IP_ADDRESS>:5010/miminar/hello-world] (len: 1)
975b84d108f1: Pushing 1.024 kB
digest invalid: provided digest did not match uploaded content

Or like this:
docker push <IP_ADDRESS>:5010/miminar/hello-world
The push refers to a repository [<IP_ADDRESS>:5010/miminar/hello-world] (len: 1)
975b84d108f1: Pushing 1.024 kB
blob upload unknown

I can successfully reproduce with docker-1.8.2. With 1.7.1 there's non-zero probability of successful push.
If, however, we switch to source balance algorithm, the push succeeds with high probability.
Here's a config file of HAProxy load balancer (running on one of the nodes) that switches between them:
global
    log                     /dev/log local0 debug

    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
    stats socket /var/lib/haproxy/stats

defaults
    mode                    http
    option                  httplog
    option                  dontlognull
    option                  http-server-close
    option                  forwardfor       except <IP_ADDRESS>/8
    option                  redispatch
    retries                 3
    timeout http-request    120s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000

frontend  main *:5010
    default_backend             app

backend app
    balance roundrobin
    server  node1 <IP_ADDRESS>:5001       check
    server  node2 <IP_ADDRESS>:5001 check

Log of the first replica: http://fpaste.org/288790/raw/
Log of the second replica: http://fpaste.org/288791/raw/
Have you encountered these issues? Are you working on a solution? Can we help?
We have a patch for older version of distribution which brings successful rate close to 100%. I'll rework it on current master and reference it here so you can take a look.

There are nfs options that make the push work like a charm: noac and actimeo=0. noac is a no-go because a push takes forever (90 seconds with 390 MB image).
With actimeo=0 it's much better. The same image is pushed within 12 seconds.
Here are complete mount options for noac:
<IP_ADDRESS>:/var/shared on /mnt/shared type nfs4 (rw,relatime,sync,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,acregmin=0,acregmax=0,acdirmin=0,acdirmax=0,hard,noac,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=<IP_ADDRESS>,local_lock=none,addr=<IP_ADDRESS>)

And for actimeo=0:
<IP_ADDRESS>:/var/shared on /mnt/shared type nfs4 (rw,relatime,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,acregmin=0,acregmax=0,acdirmin=0,acdirmax=0,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=<IP_ADDRESS>,local_lock=none,addr=<IP_ADDRESS>)

@miminar Looks like NFS isn't flushing the writes from one instance to another. Read-after-write consistency is a requirement of the backend.
Let's take a peak at the registry logs. Also, please make sure you are running 2.2.

@stevvooe Attached logs show version=v2.2.0.
Also referencing bugzilla.

@miminar You are on the write track for troubleshooting this issue. The error message is coming at the point where the registry is trying to verify data downloaded to the temporary location. I'd recommend instrumenting that area carefully to see if you can get it to report the hash of data received, to confirm that is differs. You may also try reading it back in that same request (expensive) to see what the state is at the time of that read.
Is there some sort of fsync call we could add?

@stevvooe I don't think it will solve the issue. I can easily preproduce with sync mount option which, according to NFS(5) manpage, means:

If the sync option is specified on a mount point, any system call that
writes data to files on that mount point causes that data to be
flushed to the server before the system call returns control to user
space. This provides greater data cache coherence among clients, but at
a significant performance cost.

close() actually does the same as fsync():

If neither sync nor async is specified (or if the async option is specified),
the NFS client delays sending application writes to the server until any of
these events occur:
Memory pressure forces reclamation of system memory resources.
An application flushes file data explicitly with sync(2), msync(2), or fsync(3).
An application closes a file with close(2).
The file is locked/unlocked via fcntl(2).

Presence of the data on the server doesn't ensure their availability to other NFS clients if they cache.
I don't think this has a simple solution apart from:

tuning client NFS mount options
tell the load balancer to serve the same client with the same replica
making retries for read/stat operations

@miminar I agree with your analysis.
Are you able to find an NFS configuration where this doesn't happen?

We are getting the same problem with NetApp NFS Storage. One possible solution for that would be caching IP address for the repo on the client side and using it for pushing all blobs  from the same repo.

We started recommending using export lines:
/<example_fs> *(rw,root_squash,no_wdelay)

And running load balancer with source balance algorithm as described above.
This makes registry in ha setup behave well on nfs storage for us.

Closing the issue.

To be clear, the registry requires read-after-write consistency on the backend.

Hi from 2020!
We achieved stable results in cluster mode with lookupcache=positive NFS mount option without session stickiness. Performance overhead is negligible.


Use antialiasing for the circles in the 3D editor rotation gizmo

Follow-up to https://github.com/godotengine/godot/pull/51250.
This is a crude approach that relies on drawing a second translucent circle. While not as good as proper polygon antialiasing or 2D MSAA, it looks OK in practice.
Preview
100% editor scale

200% editor scale

Could we make the axis letters still visible even when the axes point away from the camera?
In Blender:

What we have:

Such way we could avoid some weird moment at which none of the axis letters is visible and make the gizmo more recognizable.

Could we make the axis letters still visible even when the axes point away from the camera?

This is what was changed by https://github.com/godotengine/godot/pull/51250.

What we have:

Did the letters being offset weird happen before https://github.com/godotengine/godot/pull/51250? I don't think I changed any of the letter positioning code, and it still looks fine to me (at least on 3.x):

This is a crude approach that relies on drawing a second translucent circle. While not as good as proper polygon antialiasing or 2D MSAA, it looks OK in practice.

Could you add a before and after screenshot so it's easier to see the difference?

Could you add a before and after screenshot so it's easier to see the difference?

I added comparison images to OP.

I'm not sure that before image is completely accurate, the text color change was from https://github.com/godotengine/godot/pull/51250

@LightningAA Yes they did. And the offset might be caused by display scaling.
At v4.0.dev.custom_build [a4c863791], this occurs
Display Scale 150%

Display Scale 100%

@floppyhammer I'd open a separate issue for that to keep this PR on topic.


Update Transmission to 2.94

Please update Transmission to 2.94
This issue can help you.
Also you can see this Dockerfile, they use flag --repository http://nl.alpinelinux.org/alpine/edge/main

Thank you, I will wait for the release of Alpine 3.8, and update.

@zgist and please add PUID and PGID environment variables for running transmission with correct permissions.

Sure, I'll add custom permissions tomorrow.

https://github.com/vgist/dockerfiles/commit/481d80d7a134b74d10c5827527d3ffa8b5f36af8
custom volume permissions done

Thank you for your job.
But i created better (imho) docker image with transmission. You can merge my code, if you want.

You are right, I choose usermod groupmod command to moodify user, thanks.


shortcut feature added with messages

All the shortcuts with proper blockly messages has been added. Any new shortcuts can be added or the existing ones can be removed whenever required.

blockly german message spellings has been corrected here as well


Integrating Apache Lucene into OSS-Fuzz

Description
Hi Apache Lucene developers,
We have prepared the initial integration of Apache Lucene into Google OSS-Fuzz which will provide more security for your project.
Why do you need Fuzzing?
The Code Intelligence JVM fuzzer Jazzer has already found hundreds of bugs in open source projects including for example OpenJDK, Protobuf or jsoup. Fuzzing proved to be very effective having no false positives. It provides a crashing input which helps you to reproduce and debug any finding easily. The integration of your project into the OSS-Fuzz platform will enable continuous fuzzing of your project by Jazzer.
What do you need to do?
The integration requires the maintainer or one established project committer to deal with the bug reports.
You need to create or provide one email address that is associated with a google account as per here. When a bug is found, you will receive an email that will provide you with access to ClusterFuzz, crash reports, code coverage reports and fuzzer statistics. More than 1 person can be included.
How can Code Intelligence support you?
We will continue to add more fuzz targets to improve code coverage over time. Furthermore, we are permanently enhancing fuzzing technologies by developing new fuzzers and bug detectors.
Please let me know if you have any questions regarding fuzzing or the OSS-Fuzz integration.

Thank you. Your contribution is appreciated but Lucene already uses what you call a "fuzzer" - a reproducible, pseudo-random component assembly for tests... In fact, we have used it for many years now and indeed it's been successful at finding bugs in both Lucene and the JVM runtime. I'm not sure if there's any added value in what this patch provides.

Hello @dweiss, great to hear that Apache Lucene is already using fuzzing!
The big value is that computation power is sponsored by Google and that it is fuzzed by Jazzer the most modern state of the art fuzzer for JVM languages which maximise code coverage automatically based on feedback and which is enhanced regularly with new bug detectors.
Please let me know if you have further questions regarding OSS-Fuzz and Jazzer.

I checked the patch in the related issue. It fuzzes analyzer creation with some data and also has some fuzzing for IndexSearcher. That's nothing new, e.g., we have our own Analysis Fuzzer already: https://github.com/apache/lucene/blob/main/lucene/analysis.tests/src/test/org/apache/lucene/analysis/tests/TestRandomChains.java
So I disagree with adding another fuzzing engine into Lucene. We have a library called "randomized-testing" which provides everything needed. Almost every test in Lucene has fuzzing included, the example above is just a very special one with a very wide range of components tested. Background: Lucene is using randomized testing since around 2012. Here is a talk from 2014 by @dweiss about it: https://2019.berlinbuzzwords.de/14/session/randomize-your-tests-and-it-will-blow-your-socks.html
At moment we have fuzzing not only in our own tests, the so called "Policeman Jenkins" Server (https://jenkine.thetaphi.de) runs our test suite in an endless loop and on top of that each run is using a different Java version and different settings for garbage collection and java's pointer size.
If you provide computing power to Lucene and ASF we are happy to use it, but it is enough to run Lucene's test suite in a loop.

In the analyzers example given there, it is a good one to see the differences.
Both approaches (OSS Fuzz and existing TestRandomChains) test "random analysis chains", but the current TestRandomChains also tests all possible ctors of these analysis components (not just the default constructor), and injects random stuff into them. Default constructor is usually tested anyway in the component's own unit tests with fuzzed data (see testRandomData() methods everywhere). fuzzing the ctors in this way, finds problems e.g. if a component is e.g. missing a sanity or range check on an integer parameter. This might even be more productive overall than actually feeding "fuzzed data".
The current TestRandomChains also doesn't require us to "register" any new components, it just discovers all Tokenizers, CharFilters, TokenFilters, etc that are available. This ensures we catch problems in new analyzers that get added.
As far as actual data fuzzing, it is more than just randomized data, have a look at our base analyzers test class, it is a "torture chamber" for analyzers and will find things such as thread-safety/race issues as well: https://github.com/apache/lucene/blob/main/lucene/test-framework/src/java/org/apache/lucene/tests/analysis/BaseTokenStreamTestCase.java
All analyzers use this class for "fuzzing" in their own unit test: TestRandomChains is just an "integration test" that then combines them together.
It is also important to think about how much time it takes to debug a failure, too. The current setup across both unit and integration tests makes it pretty easy to spot when the problem is a specific analyzer component, vs some crazy "interaction" between more than one of them. Nobody wants to debug a integration test if they can debug a unit test.
We did a lot of work with BaseTokenStreamTestCase/TestRandomChains such as adding special logging of the analysis chain, adding "ValidatingTokenFilter" at every step,etc.  It still sucks to debug this stuff when it fails, we have a lot of analyzers :)

So I disagree with adding another fuzzing engine into Lucene. We have a library called "randomized-testing" which provides everything needed. Almost every test in Lucene has fuzzing included, the example above is just a very special one with a very wide range of components tested. Background: Lucene is using randomized testing since around 2012. Here is a talk from 2014 by @dweiss about it: https://2019.berlinbuzzwords.de/14/session/randomize-your-tests-and-it-will-blow-your-socks.html

The talk was interesting, and Randomized Testing is a great contribution to explore complex boundary conditions and to find unexpected edge cases. However, the approach is quite different, which is fine because it fits your use case.
Modern fuzzing is coverage-guided, which means the tested code is instrumented to give the fuzzer feedback about code coverage and further insights when executing a test case. The fuzzer then optimizes its mutations to generate inputs that maximize code coverage and pass checks in the code, such as string comparisons. Furthermore, Jazzer has specialized bug detectors that detect various classes of vulnerabilities like command injections, insecure deserialization, or attacker-controlled class loading.
Based on that, I suggest we continue the OSS-Fuzz Onboarding without a maintainer. This way, you don't get any findings notifications from OSS-Fuzz. We will then receive finding reports from OSS-Fuzz, and we will make sure that we communicate interesting findings with you. You can still be added as maintainers afterward if you later see an added value in the findings you get. Thanks all for the contribution.

Sure, never enough bug reports. I keep wondering what does it report as a legitimate error/ problem if the patch catches a lot of what can be thrown from the inside, for example:
https://github.com/google/oss-fuzz/pull/9772/files#diff-f3b3b0a611aa50e69c4823a63b6e760d6c607a635e584a14f836146bc49de48eR195-R196

Sure, never enough bug reports. I keep wondering what does it report as a legitimate error/ problem if the patch catches a lot of what can be thrown from the inside, for example: https://github.com/google/oss-fuzz/pull/9772/files#diff-f3b3b0a611aa50e69c4823a63b6e760d6c607a635e584a14f836146bc49de48eR195-R196

Every caught exception in the fuzz target was already triggered by the fuzzer during local testing very fast e.g. IllegalStateException. We just catch them to let the fuzzer continue and find more severe bugs such as out of memory issues or bugs detected by Jazzer bug detectors.
Note: This PR is just an initial integration, future enhancements are planned.

Now we have started to do some bug triaging of bugs from OSS-Fuzz. There are multiple issues discovered with the fuzzer, for example OutOfMemory or StackOverflow, that we can disclose one by one or by giving you access via email to the oss-fuzz platform. Should we disclose them here through public issues or do you prefer through<EMAIL_ADDRESS>mailing list?

Just open public issues.
Actually not all of those errors would be fixed, because Apache Lucene does not always do all possible checks, as performance is more important than an OOM (caused by "wrong usage").


Feature request: push scripts with exec plugin

Do you think it would be usefull to have an option to push scripts from puppet server to clients the same way that python plugin does it?
I like to do it in my environment, since this gives me an option to have a central repository for all scripts, they get updated through puppet and it's easy to see what scripts are loaded on each server...
I used to have a custom exec manifest, but now I've changed yours, so it works similar to Python one:

Added script_source variable
Added module variable
Added file function

  if $script_source {
    file { "${module}.script":
      ensure  => $ensure,
      path    => "${conf_dir}/${module}.sh",
      owner   => 'root',
      group   => $collectd::params::root_group,
      mode    => '0640',
      source  => $script_source,
      require => File[$conf_dir],
      notify  => Service['collectd'],
    }
  }

I'm no puppet master, so this might not be the nicest solution, but it works for me:) If you have any recommendations on how to perfect it, I can try and fix it and do a PR...
Matej

If the python plugin supports that feature then I would have no problem accepting it for the exec module

This would be fine. The python plugin does this. If I understand this, we could add a source to cmd, rather than exec:
https://github.com/voxpupuli/puppet-collectd/blob/master/manifests/plugin/exec/cmd.pp
The python plugin has this functionality in module.


VSTest should publish artifacts to BAR

VSTest is included in the dotnet/toolset project, but VSTest doesn't publish to BAR so updates have to inserted manually.  You can enable BAR publishing without switching to Arcade using something like this template.  You can see an example of this being used in source-build-reference-packages, and example of the build it produces here.
Let me know if you have any questions or need help with this.

This is done. Related to #1941


Objective-C Import

Hello all,
thanks for this great library.
I'm having trouble using the library with objective c.
I've added the objective-c branch to the Podfile as follows:
pod "TLPhotoPicker", :git =>   'https://github.com/tilltue/TLPhotoPicker.git', :branch => 'objective-c'
I tried importing the library using:
@import TLPhotoPicker;
and
#import "TLPhotoPicker-Swift.h"
However either way I can only access TLPhotosPickerViewController; delegates and other classes do not seem accessible. I definitely can't run the objective-c sample code specified in the README. Am I doing something wrong?
Thanks

Hi, @Offek
Some class (e.g. TLPhotosPickerViewController) have open access control level.
Please can you explain what you want to access other class property or something?

Hi, @tilltue
I'm trying to run the example in the README, but nothing works everything seems to be undefined.
I can only manage to open TLPhotosPickerViewController, but I can't do anything with it as the delegate is "undefined" and therefore unusable. Therefore I can't seem to do anything in Objective C code. I was wondering if anyone else is also experiencing these issues.

Hi, @tilltue
I'm trying to run the example in the README, but nothing works everything seems to be undefined.
I can only manage to open TLPhotosPickerViewController, but I can't do anything with it as the delegate is "undefined" and therefore unusable. Therefore I can't seem to do anything in Objective C code. I was wondering if anyone else is also experiencing these issues.

What is the exact problem are you facing? I am using that branch in my objective-c project and it works.

Hello @rizwan95, thanks for your time.
Do you use Cocoapods to import the project, or did you copy the project locally? How do you import it? Using the TLPhotoPicker-Swift.h file?
When I download the project using cocoapods (objc branch) and import using TLPhotoPicker-Swift.h (or @import), I’m only able to open TLPhotosPickerViewController, but it doesn’t call the delegate. Xcode says the delegate is undefined. The sample code in the readme is not working due to the same issue, everything is undefined except TLPhotosPickerViewController.

As of now, can you please drag and drop the files?

Hi,
I found out how to use it correctly.
It would be nice if you could update the Objective-C documentation to hopefully help more people in the future and prevent confusion. This is how I got it to work with Cocoapods:
pod "TLPhotoPicker", :git => 'https://github.com/tilltue/TLPhotoPicker.git', :branch => 'objective-c'
#import "TLPhotoPicker-Swift.h"

TLPhotosPickerViewController *picker = [[TLPhotosPickerViewController alloc] initWithPHAssets:^(NSArray<PHAsset*> *assets) {
        NSLog(@"selected assets: %@", assets);
} didCancel:^{
        NSLog(@"Picker Cancelled");}];
[self presentViewController:picker animated:YES completion:nil];

Yes, as you said the documentation needs to be updated. We have only little information about objective-c usage.
https://github.com/tilltue/TLPhotoPicker/tree/objective-c


PlatformException(IO_ERROR, A network error occurred trying to lookup the supplied coordinates (latitude: 24.808313, longitude: 46.602053)., null, null)

I am getting an error "PlatformException(IO_ERROR, A network error occurred trying to lookup the supplied coordinates (latitude: 24.808313, longitude: 46.602053)., null, null)" whenever I try to convert latitude and longitude to address.
Before it was working fine but since last 7 days I'm facing this issue. (Note: Only facing this issue in android physical device)
I TRIED
Change wifi and also mobile data
Restarted my android physical device (Huawei Nova 3)
Updated the latest version (currently using geocoding: ^2.0.2)

I'm getting the same error as well, I tried adding breakpoints and apparently when going step by step and slowing down it works as it should. Maybe there's something going on with ongoing Flutter operations that are blocking this method from executing. Nevertheless, if we could get an update on this issue by the creator of the package would be great.

I actually thought it was the breakpoint fixing it, but apparently it was only working the first time I called it (not because of the breakpoint) and every time after that it's failing.

This issue is  caused by the rate limitations related to the free services provided by Android (see README and also issues #9, #12, #23, #28, 35# and #49).
I will be closing this issue now as there is nothing I can do about this error. You are simply hitting the limitations of the free services provided by Google and Apple.


Magic Numbers cop proposal

Is it possible to write a cop to detect Magic Numbers?:

Unique values with unexplained meaning or multiple occurrences which could (preferably) be replaced with named constants

It might be overkill for incrementations of 1:
count += 1

but other places it will be in order:
DAYS_IN_WEEK = 7

days += DAYS_IN_WEEK

You probably want to exclude 0 as well, for example:
puts 'balance positive' if my_sum > 0

In this case 8 is replaced with a constant, but not so for 1, which makes sense IMHO.
BITS_IN_BYTE = 8

mask = (1 << BITS_IN_BYTE) - 1

If you take a look at the specs of RuboCop you'll see plenty of uses of numbers to check the size of anything. There's little point in having them as constants.

So where does it make sense?

I'm just saying it's not easy to come up with a check that will yield no false positives.

Fair enough. Lets start with the easy ones: Which are clearly magic numbers and which are not.

I want to support this proposal. I'm keen to extract magic numbers in my code and suggest it in reviews.
But how can @bbatsov's concern be addressed? Literal numeric values frequently appear in tests and should not be extracted to a constant. Should Rubocop ignore tests and specs somehow?

How about this proposal for the rule?
Any numeric literal

appearing in a comparison expression (>, ==, eql, <, etc.)
whose values are other than -1, 0, or 1

is flagged as a magic number?
This is suitably conservative, I think. For example, it won't trigger on @maasha's example of mask = (1 << BITS_IN_BYTE) - 1. It also won't trigger in RSpec tests because the literals are usually supplied to an assert expression, and not used in a comparison.

@fj That makes enough sense. I wonder who has enough know-how or energy to put together a PR? Getting it working on Rubocop itself would be a significant achievement.

If anyone wants to work on this - please, step forward. Otherwise I'll close this ticket for lack of activity.

For anyone still interested in this feature, my colleague and I have published this gem:
https://github.com/bodacious/rubocop-magic_numbers/
Feedback welcome

I would be happy to, if there was interest from the Rubocop team?  @bbatsov wdyt?


Implement EpisodeChart.tsx

EpisodeChart is a  component that uses TeamChart to display the top 10 teams in any given year. I also added one more prop to TeamChart to take in tournament dates. I'll implement EpisodeChart automatically listing tournament dates later, for now there is only placeholder code that shows up in bc22.
Closes #783 :rocket:

@Desperationis see how the charts don't fill the section card? Is this how they look on your end?

Hi Lowell, thanks for the feedback. I'm a little hosed studying for finals right now but once that is settled I'll do the tweaks

@acrantel after hitting my head against the django wall for a few days this is actually ready for review :sunglasses:

oh also closes #844 because i forgot to split into two prs

idk whats happening but I approve


Update dependency @aws-crypto/sha256-js to v5

This PR contains the following updates:

Package
Type
Update
Change

@aws-crypto/sha256-js (source)
dependencies
major
4.0.0 -> 5.2.0

Release Notes

aws/aws-sdk-js-crypto-helpers (@aws-crypto/sha256-js)
v5.2.0
Compare Source
Features

support ESM artifacts in all packages (#752) (e930ffb)

v5.1.0
Compare Source
Bug Fixes

Update tsc to 2.x (#735) (782e0de)

Features

Use @smithy/util-utf8 (#730) (00fb851), closes #699

v5.0.0
Compare Source

feat!: drop support for IE 11 (#629) (6c49fb6), closes #629
chore!: Drop Node 14 Support (#678) (4bae6e9), closes #678

BREAKING CHANGES

Remove support for IE11

Co-authored-by: texastony<EMAIL_ADDRESS>
Node 14 is no longer supported nor tested.

4.0.1 (2023-05-22)
Bug Fixes

correct package naming in "browser" fields (#625) (24d8c2b)

Configuration
📅 Schedule: Branch creation - "before 4am on the first day of the month" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Self-Hosted Renovate Bot. Find all logs here.

 You will not get PRs for any future 5.x releases. But if you manually upgrade to 5.x then Renovate will re-enable minor and patch updates automatically.
If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.


Create background job to cleanup BlacklistedTokens

Currently, on user logout, a BlacklistedToken is created so that subsequence use of the token will be rejected by authentication.
However, there is no cleanup process that destroys expired tokens.
Need to create a background task that will run [daily] that will destroy expired tokens

this must mean that some expired tokens arent being deleted. I believe there is a background task is being ran everyday at 4:30am

Maybe is here, in models/blacklisted_token.rb
Should it be "destroy_all" instead of "delete_all"? .
class BlacklistedToken < ApplicationRecord
    belongs_to :user

    def self.delete_expired_tokens
        self.where("expires_at < ?", Time.current).delete_all
    end
end

will check it out


Preserve single line blocks when emitting.

:+1:

@CyrusNajmabadi This change has some odd effects on empty functions with default parameter values and/or destructuring patterns. Specifically, the preamble code we generate for those constructs isn't included in an empty function if the curlies are on the same line. For example, for this function
function foo(x = 0) { }

we generate
function foo(x) { }

but if you put the curlies on different lines we generate
function foo(x) {
    if (x === void 0) { x = 0; }
}

You could argue that there is no reason to generate the preamble as there are no statements in the function, but it certainly is odd that placing curlies on different lines makes a difference.

Actually default initializers can still have side-effects, so if this hasn't been fixed it's a bug.


feat: Rebase Deep Subtree on top of latest IAVL tree version

Overview
Rebase Deep Subtree on top of latest IAVL tree version

Checklist

[x] New and updated code has appropriate documentation
[x] New and updated code has new and/or updated testing
[x] Required CI checks are passing
[x] Visual proof for any user facing features like CLI or documentation updates
[x] Linked issues closed with keywords

Closing this to rebase on top of a branch forked off of release/0.19.x instead: https://github.com/celestiaorg/iavl/pull/25


UI updates bucket 1

Summary
MM-23417 - Updating UI for post area
MM-23062 - Updating post menu UI
MM-22817 - Updating header UI
Ticket Link
https://mattermost.atlassian.net/browse/MM-23417
https://mattermost.atlassian.net/browse/MM-23062
https://mattermost.atlassian.net/browse/MM-22817

Creating a new SpinWick test server using Mattermost Cloud.

Mattermost test server created! :tada:
Access here: https://mattermost-webapp-pr-5240.test.mattermost.cloud

Account Type
Username
Password

Admin
sysadmin
Sys@dmin123

User
user-1
User-1@123

Awesome! Few top of mind thoughts to chat through with team:

The reply count is not remaining in the channel when not hovering
We should look at the weights of the input box and search box
Can we remove the "Add Comment" button? Not sure what purpose it serves since we don't have it in the center pane
The post input area doesn't look like it's matching spec (ie adding the attach button on the left of the drafted text. That "may?" also help with post alignment, example:

New commit detected. SpinWick will upgrade if the updated docker image is available.

@esethna Addressed the comment count and the add comment button based on our call.

Mattermost test server updated with git commit 11e86ec0f7061b4e9b93e6fd04d79c10ff5db608.
Access here: https://mattermost-webapp-pr-5240.test.mattermost.cloud

New commit detected. SpinWick will upgrade if the updated docker image is available.

Mattermost test server updated with git commit d5567ec0f66d9ae9a18f60333266fba9c47da5fa.
Access here: https://mattermost-webapp-pr-5240.test.mattermost.cloud

Thanks @asaadmahmood - please at-mention me once PM and Dev reviews are done and I'll QA... Thanks!

New commit detected. SpinWick will upgrade if the updated docker image is available.

New commit detected. SpinWick will upgrade if the updated docker image is available.

New commit detected. SpinWick will upgrade if the updated docker image is available.

Test server creation failed. See the logs for more information.

Mattermost test server updated with git commit dbd391b76677fd89fd8b943b7db15f3a35350781.
Access here: https://mattermost-webapp-pr-5240.test.mattermost.cloud

Test server creation failed. See the logs for more information.

New commit detected. SpinWick will upgrade if the updated docker image is available.

Mattermost test server updated with git commit 31325d4a4d94fa84a26aa9addcc3ebfd8574bf0d.
Access here: https://mattermost-webapp-pr-5240.test.mattermost.cloud

New commit detected. SpinWick will upgrade if the updated docker image is available.

Mattermost test server updated with git commit 74e0a961daee744c3dc1e3c9796f7eea1d699eb4.
Access here: https://mattermost-webapp-pr-5240.test.mattermost.cloud

@asaadmahmood can you verify these icons are using the same opacity?

Also adding @deanwhillier for review

@asaadmahmood one more comment. Is the search icon smaller than others in this view?

@esethna Yes, the post box icons are the same color, and the I updated the search icon.

New commit detected. SpinWick will upgrade if the updated docker image is available.

New commit detected. SpinWick will upgrade if the updated docker image is available.

New commit detected. SpinWick will upgrade if the updated docker image is available.

Test server creation failed. See the logs for more information.

Test server creation failed. See the logs for more information.

Mattermost test server updated with git commit d033e9fdf4671f3af1126960b3b3e9f11f5472b0.
Access here: https://mattermost-webapp-pr-5240.test.mattermost.cloud

Can we consider separating PR's for different tasks? I know they might be related but it makes it harder to review and rollback changes if necessary.

@nevyangelova If we want to separate changes, we may have to wait for 1 PR to get in, so I can then reuse a bunch of the code used in that PR for the other 2 changes as well.
Eric assigned Dean for this PR, so he and Brad will be reviewing it, if Dean thinks that the changes are a lot, and wants to separate them, then we can go through the effort of doing that.
The changes are pretty straightforward instead of being considerable ones, it's just that various files are touched for class changes etc.
And then snaps being updated.
If we exclude the snaps and jsx files, we just have 27 scss files.
And if you look at those scss files, then most file changes in the scss files are just changing the theme variables to fall under the 4pt/8pt grid system that we want to follow.
Out of those 27 scss files, more than 10 files are just being touched to change the variables to fall under the grid.
Example shown below:

If I separate out just the post menu changes etc, I think we may still have more than 40 files touched, because again, as i said, the variable changes are just touching a bunch of scss files, and then the class changes are just touching a few files here and there.

@asaadmahmood  I see the reasons for having this PR as it is, I just meant to keep in mind for the future.

Most definitely @nevyangelova.

Done @nevyangelova

New commit detected. SpinWick will upgrade if the updated docker image is available.

Mattermost test server updated with git commit 52830579c1058304d4644a49e0c931a9768bd030.
Access here: https://mattermost-webapp-pr-5240.test.mattermost.cloud

@esethna Yes, the post box icons are the same color

@asaadmahmood are you sure? I just inspected an the post draft icons are 56% and the header icons are 48%

Here's the same image corrected:

@esethna I thought you were asking about the icons that are in the post draft area, so those 2 are the same.
But the icons in the header and the post area are different.
@matthewbirtch @andrewbrown00 Do we want to make them the same?

Ya, let's do it. I think it makes perfect sense to make them the same. Does that go for the post hover menu icons as well?

@asaadmahmood Actually I think we're missing part of the hover effect on the post hover menu buttons. For example, in the header, the icons themselves darken slightly when hovered.

In the post hover menu we are just showing the background hover effect, but the icons themselves don't change opacity. We should probably have the hover effect increase the intensity of the icon color itself, similar to the header icons:

@esethna That was implemented, maybe it got removed due to some changes I did recently.
I will add it back again, and make the colors the same for the icons as well.

@esethna Done, made them consistent.

New commit detected. SpinWick will upgrade if the updated docker image is available.

Mattermost test server updated with git commit 7d866e10e8adee4d687978203ee38ec63910d6ab.
Access here: https://mattermost-webapp-pr-5240.test.mattermost.cloud

@lindy65 this is ready for QA

cc// @deanwhillier if you have any feedback on it. BC and NA reviewed already

New commit detected. SpinWick will upgrade if the updated docker image is available.

Mattermost test server updated with git commit a0f9bcd7d7cfd08f633954ca2e9aaaf6b87bb7e9.
Access here: https://mattermost-webapp-pr-5240.test.mattermost.cloud

Thanks @asaadmahmood @esethna
I've tested on the PR and, after going through all the above comments and updates, I did not find any issues.
I am, however, concerned about the removal of the Add comment button in the RHS as many Cypress, Selenium, Rainforest and manual tests either refer to or make use of this button.

Hmm, @lindy65 good point. @asaadmahmood thoughts on adding back in the add comment button but improving the styling? Instead of removing it completely

@esethna I'd keep the styling, because we haven't introduced the new button styling yet. If I change that button, the other button may be inconsistent from it.
Once we introduce the button styling, the Add Comment button should update as well.

@asaadmahmood okay works for me, thanks

New commit detected. SpinWick will upgrade if the updated docker image is available.

New commit detected. SpinWick will upgrade if the updated docker image is available.

@lindy65 Added the Add comment button back again, you can test it.

Test server creation failed. See the logs for more information.

Mattermost test server updated with git commit de3ea63c41a467c3e1dae2a7ed3d1af774454721.
Access here: https://mattermost-webapp-pr-5240.test.mattermost.cloud

New commit detected. SpinWick will upgrade if the updated docker image is available.

Mattermost test server updated with git commit 67ab2c2cda59750b5e30107719bcf8139cdc0ece.
Access here: https://mattermost-webapp-pr-5240.test.mattermost.cloud

Test server destroyed


How to send Analytics events which contain uniquely identifiable user info when I am not using Cognito for user login mangement?

Hi guys,
I am trying to implement the Mobile Hub setup for couple of my products, one of which is available for Android and one which is a React based web app. I have my own custom login setup at end up of which I assign to every user a uniquely identifiable id.
For Android, I am using the Pinpoint SDK, which allows me to send custom events. There is also a provision in the SDK to set a customer user identifier :

Assign user IDs to endpoints by doing either of the following:
Manage user sign-up and sign-in with Amazon Cognito user pools.
Use the PinpointManager class to assign user IDs to endpoints.

Now if my understanding is correct, there is no Pinpoint library available right now for react-web. Which leads me to use Amplify Analytics for sending similar custom events which will hit Pinpoint.
However, at no point in the documentation which I can find here, are there any methods described to set some uniquely identifiable user properties before sending custom events.
Am I understanding the use cases incorrect, or is this something under development ?

@gauravko yes this feature is still in development. You can check this pr https://github.com/aws/aws-amplify/pull/437 which is to enable users to customize the userId and other attributes for pinpoint endpoint request.

Hi @powerful23 , thanks for the quick reply and providing the commit. Looking forward to this getting merged. Do ping me if you need any 3rd party testing to be done. Cheers!

#437 has been merged


Add Polygon tetuBAL-80BAL-20WETH stable pool to the whitelist

Description
Add Polygon tetuBAL-80BAL-20WETH stable pool to the whitelist
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Dependency changes
[ ] Code refactor / cleanup
[ ] Documentation or wording changes
[x] Other

How should this be tested?
Please provide instructions so we can test. Please also list any relevant details for your test configuration.

[ ] Pool should be visible at the  balancer app

Visual context
Please provide any relevant visual context for UI changes or additions. This could be static screenshots or a loom screencast.
Checklist:

[x] I have performed a self-review of my own code
[ ] I have requested at least 2 reviews (If the PR is significant enough, use best judgement here)
[x] I have commented my code where relevant, particularly in hard-to-understand areas
[x] If package-lock.json has changes, it was intentional.
[x] The base of this PR is master if hotfix, develop if not

@olegnat Hey, thanks for PR. Although it doesn't say it in the how-to (I'll fix that), you need to branch off the master branch and base your PR on it too so that we can deploy straight away. If you could change that for me, I can help get this merged.
Because you probably branched off develop here you will need to kind of start again and create a new branch off master with the same changes or cherry-pick your commits from this one. Otherwise, all our changes on the develop branch which haven't been merged yet will be included with your changes.

New PR will be created to master


Dark mode

A dark mode, possibly based on the prefers-color-scheme media query, would be nice! Given that this uses Monaco, leveraging some existing theme should be fairly straightforward.

Absolutely, thanks for the suggestion. I'm also a VS Code dark theme user! Happy to take PRs if anyone is interested in implementing this.

Hi, I just made a PR for dark mode, please let me know if you want any changes :)


Unavailable on ”the Cognitive Services VSIX package”

We could not implement the trial in accordance with this page's instructions.
Maybe we need to change to "Nuget", Please change the instructions.

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

ID: 1df9d0f9-f84c-2e24-9ea2-9956af815b92
Version Independent ID: 0437ab02-8f50-17df-10be-219beddec22b
Content: Visual Studio Connected Service - Computer Vision - Azure Cognitive Services
Content Source: articles/cognitive-services/Computer-vision/vs-computer-vision-connected-service.md
Service: cognitive-services
Sub-service: computer-vision
GitHub Login: @ghogen
Microsoft Alias: ghogen

@Hideginyo, Thanks for the feedback! We are taking a look into this and will get back to you soon.

@ghogen In the Extensions and Updates dialog box, search for Cognitive Services, we couldn't see the Cognitive Services VSIX package. Could you please check on this.

The extension is here, but I'm seeing that it fails to install on VS 2019 16.x.  Investigating.

This is being tracked as a product issue. Closing the doc issue. #please-close


feat(esp_http_client): Add function esp_http_client_response_header (IDFGH-12954)

Add function esp_http_client_response_header for esp_http_client component.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Hello @PWZER
Thanks for the MR.
AFAIK we can retrieve the response headers using the event handler. Is there any specific reason to add the API?

Hello @PWZER
As this feature is already supported and the example also have the relevant code here, I am closing this PR. Please feel to reopen if you have more information for why to use the approach in this PR.
Thanks.


Fold button in sidebar for categories.

Since I'm running a translation website, I truly like the sidebar layout for fast browsing. However since there will likely be many things in the sidebar, is it possible to have a fold button there? Even the possibility to scroll only the sidebar (dunno if it's possible right now, can't really test it) would be greatly appreciated.

Also is there anything I'm missing since the red "marker" in the sidebar seems like it's not working from me?

The left sidebar is scrollable.
The red "marker" is obtained by comparing the page url and the url you set in the navtigation.yml, Maybe the url of the page and the url you set are not the same.

Great!
Yup it was a typo that caused the absence of the red marker, fixed it now. Would it be possible to have "fold" buttons for category elements?

While I'm at it, I found that the Next/Previous Links at the end of the article are swapped, as can be seen here. Is there a way to change this behaviour or is there something I'm doing wrong?

it depends on the sort of posts.
For now, TeXt only support sorting by publish data. You can make "Prologo" newer than "Capitolo 1".

Articles whit sidebar.toc now support section navigator (previous and next navigator), maybe you can update your theme.


Improving core allocation experiment readme

Fixes core allocation experiment readme
Summary of changes:

updated readme.

Testing done:

none.

run integration tests


chore: release version 1.4.0

Pull Request Test Coverage Report for Build<PHONE_NUMBER>5
Details

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 92.376%

Totals

Change from base Build<PHONE_NUMBER>3:
0.0%

Covered Lines:
10250

Relevant Lines:
11096

💛  - Coveralls


Add Gradle as a build system

Includes #53
Converts the project to use Gradle (http://gradle.org/), and includes the Gradle wrapper which allows building using ./gradlew build
If you would not like this change, I am ok with keeping it local to my machine.
My personal opinion is that Gradle is the best build system so far, and does everything that Maven does and more. I have not deleted the pom.xml for Maven.

Hey,
thx, but I don't want to change the build system, I seem to like maven.
I don't really know what using gradle will accomplish?
Also, I can't switch, since the management of deployment to Sonatype and Maven Central is all done by a maven profile...

I don't want to preach, but I think Gradle is just the best build system.
It can do everything Maven can, and the build.gradle file is more readable than Maven's pom.xml. The build.gradle for this project can be seen here: https://github.com/robertsmieja/clarity/blob/1d8f51b824911b11ccc9dcd915a0db3409a0858f/build.gradle
By Sonatype do you mean Sonatype Nexus? Gradle has support for publishing to Maven: https://docs.gradle.org/current/userguide/publishing_maven.html
If you're interested I'd be happy to help, but if you're not, I won't press the issue. It's your project after all. :)

I have to work with gradle every day and I still don't understand what the hype is about, even so far that it is getting to a point where people pressure developers to change it.
Yes, it is more readable than a pom, but in most cases projects don't do much more than adding dependencies. In exchange, I feel like half the developing time is now waiting for the build to finish.  Almost everyone I know curses it when coming from Maven.

That doesn't seem right. At my job, it cut down nightly build times in half. It also provides the Gradle Wrapper so new contributors don't have to configure or install Maven, and can run the gradlew.bat or gradlew scripts.
It's target audience is medium or larger enterprise projects, but it also works well for simple projects as it takes care of the default configurations, since a simple build file for a Java project is ten lines or less.
Like I said, I won't press the issue, but I'm more than happy to more to help if @spheenik wants to give it a try.

Hi,
for me, gradle is ant in disguise.
 This is exactly why I wont switch to it.
I WANT a standard process that my IDE can understand.
Atm, I am in a project where they build a Java EE application with gradle. Of course, the IDE does not understand build.gradle completely, so you manually have to click around to have some libraries in ear/lib.
I come from hell with buggy ant scripts, and while I agree that the pom is verbose because of XML, I prefer it.
For example: I am working on clarity in Intellij. I find out I wanna work on the protobufs, so I temporarily add clarity-protobuf as a module. IDE knows without a click that clarity-protobuf is a dependency from clarity, and will build (and deploy) any changes to -protobuf first. When I am finished, I mvn deploy once in clarity-protobuf, so the jar is in my local maven repo, remove the module, done. Everything is just integrated so nicely.
Also: I don't only need to do maven-deploy, I need to deploy to sonatype-oss. Atm, this works with a single click from the IDE for snapshots (mvn deploy) or two if I wanna relase (check release profile, mvn deploy).
If I take your gradle script, I have a nicely looking script, but all this is gone.
To get it back, I'd need to http://jedicoder.blogspot.de/2011/11/automated-gradle-project-deployment-to.html
Here is an example build.gradle that accomplishes that: https://github.com/GradleFx/GradleFx/blob/develop/build.gradle (120 SLOC).
My pom.xml does that in 70 SLOC: https://github.com/skadistats/clarity/blob/master/pom.xml
So much for verbosity...
Nope, don't wanna change.


Fresh Islands and twind classes error

Hello,
OS version : MacOS Catalina 10.15.7
Deno version : 1.33.0
Fresh version : 1.1.5
When i tried to used twind classes in islands sometimes the classes in

Thanks for filing an issue. It's a bit hard for me to reproduce the error based on the screenshots alone. Can you share a github repository or something similar where the error is visible?

Closing because we haven't heard back from the issue author.

Hi @marvinhagemeister,
I'm in the process of setting up a github repository.
I'll get back to you soon.
Sorry for the delay
Thank you for your understanding.


XML generation and parsing

The overall goal of this PR is to add a profile parser and a profile writer.
To do so, the Base class is extended with 3 main functions:

.from_xml(): creates an instance of the class by parsing an xml fragment
.updates_from_xml(): updates an instance of the class by parsing an xml fragment
.to_xml() : allows to export, for a specified profile, the python object as an etree.Element.

reader.py leverages .from_xml() and .updates_from_xml() to parse different profile (CGMES or custom) to create a dictionary of objects of the form {"_mRID": corresponding_python_object}
writer.py exports the python objects to generate the xml Profiles
This PR builds upon the work of https://github.com/sogno-platform/cimgen/pull/39

You are correct wrapped_class_comment shoud be used in enum_template. In the same way wrapped_comment should be implemented for enum instances as it is not the case currently in cimgen.py
Concerning your test in test_load_all.py, it tries to instantiate all classes in resource folder. However, classes generated with primitive_template.mustache, dataclass_template.mustache and enum_template.mustache cannot be instantiated.
One of the goals of the previous PR was to avoid creating classes that are then never instantiated.

Classes such as Integer or Float are therefore instances of the class Primitive.
Datatype classes such as CurrentFlow are instances of the class CIMDatatype. Theses classes provide information on a value (unit, multiplier, ...).
Enum classes such as UnitSymbol cannot be instantiated either.

To test these classes the best way is to test their attributes directly.
I fixed the pyright type test error by setting the attribute_class to the name of the class instead of the object itself.
It will make it less straightforward to retrieve the unit, multipler or type of the attribute_class but fixes the issue and simplifies the class_template.mustache

@tom-hg57 Can you update your review based on the most recent commits of @HUG0-D ?


python3Packages.wxPython_4_0: remove unused dependencies

Motivation for this change
wxPython_4_0 is currently broken because GStreamer 0.1 is broken. wxPython_4_0 apparently supports GStreamer 1.0, but looking closer at the package, I realized that the GStreamer dependency, along with many others, are not actually used.
The build still succeeds even after removing many of the dependencies, and there is no way they are needed at runtime because the package retains no references to them.
I also re-enabled format hardening, because that appears to have been unnecessarily inherited from wxPython 3, and the build still succeeds.
I have not tested this on macOS.
cc @FRidh @tbenst @evils
Things done

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

[x] NixOS
[ ] macOS
[ ] 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"
[ ] 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)
[x] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

fwiw, in a failed attempt to get wxPython 4.1 to work for kicad, i copied the wxPython 4.0 package, checked the dependencies they listed for 4.1 and separated the ones not listed as a dependency
there seems to be a fairly large overlap between those and the ones you removed
https://github.com/evils/nixpkgs/commit/101d1e9b36102e4e80496106f7bb25b6f6d06c8b#diff-78d98acc609d3ebd6964dfc105e7fe2dR24

@lopsided98 I’m not sure this is advisable. There indeed may be some unneeded packages but many of these are necessary. See https://github.com/wxWidgets/Phoenix#id8

Despite what the documentation says, the lack of a reference to them basically proves they are not actually used by our build. I don't see how this PR can cause any new problems due to missing dependencies, because those dependencies are already missing from the build output.
Perhaps some configure flags or something else should be added to cause the build to actually make use of those dependencies, but that can be done in a different PR.

I used diffoscope to compare the output with and without this PR (changing gstreamer 0.10 to 1.0 to make it eval), and there were no differences other than a different  $out.

this PR fixes kicad's scriptingSupport

I added another commit that removes the wrapPythonPrograms invocation from installPhase. This was causing double wrapping because wrapPythonPrograms automatically runs during the fixup phase.

@lopsided98 I expect that most of them are not statically linked. For example, without libjpeg wxPython is bound to crash as soon as anything involving a jpeg happens

I'm not sure what you mean about static linking. This PR has no effect on the package output; I verified this with diffoscope. Therefore any potential problem like you describe already happens without this PR.

for example, I expect import wx to fail with ImportError: libjpeg.so.8: cannot open shared object file: No such file or directory https://discuss.wxpython.org/t/wxpython-on-fedora-31/34483.
It's actually quite rare that devs take the time to specify all the binary dependencies of python packages, and I trust their judgment more than ours for what is needed...

Again, how can this start happening if there is no change to the package ?
None of those dependencies are propagated, and even if they were that would show up as a change in the output because propagatedBuildInputs are placed in the nix-support/propagated-build-inputs file.

have you tried import wx? Note that doCheck = false.
It does seem that you identified a bunch of packages that should be listed in propagatedBuildInputs instead of buildInputs, but removing them outright will break the package.
If we want to go the route of removing dependencies that the devs say are necessary, proof isn't in the build succeeding but in the tests succeeding.
If you remove libjpeg from buildInputs, then libjpeg.so.8 is not going to be found. My understanding is that packages put in buildInputs are also available at run-time.

Yes, import wx succeeds.
In Nix, the only thing that really matters is the output. No change in the output means no change in the dependencies that are available at runtime. 'buildInputs` are not available at runtime unless they are referenced by the output.
As far as I can tell, the documentation seems to be listing the dependencies required to build both wxPython and wxGTK. wxGTK links against libjpeg, gstreamer and others, while wxPython only links against wxGTK.

at least for wxPython 4.1, it seems like building the version of wxWidgets (wxGTK) they include with it is required
i think the documentation indeed assumes you're building both, as this is the upstream expected build process

@lopsided98 Really appreciate the help maintaining this package, but you are wrong about buildInputs. They are available at runtime. See https://github.com/NixOS/nixpkgs/blob/c3c258c6fd0b70fcbe7141ff747b525c87dd9d20/pkgs/development/interpreters/python/mk-python-derivation.nix#L36
Also:
test.nix:
with import <nixpkgs> {};
stdenv.mkDerivation {
    name = "test";
    buildInputs = [ git ];
}

$ git
[...]

The wxPython Phoenix (4.0==first phoenix release) team is very clear that these dependencies are for Phoenix:

On Ubuntu the following development packages and their dependencies should be installed in order to build Phoenix. Other debian-like distros will probably also have these or similarly named packages available. Extrapolate other package names accordingly for other linux distributions or other unixes.

That works in nix-shell because nix-shell sets up the build time environment for the test derivation.
Nix has no concept of runtime dependencies other than those that are referenced by the output. No change in the output means no change in the runtime dependencies.

Maybe @FRidh can resolve this debate. In python packages, are buildInputs available at runtime?

@lopsided98 is indeed correct. If the output (using e.g. diffoscope) doesn't change when the libraries are removed, they are indeed not used at all. And buildInputs don't automatically become runtime dependencies, they need to actually be referenced in the final $out for that to be the case.
That said, even though all these libraries are removed, some of them are still referenced and used, such as libjpeg:
$ nix-shell -p 'python3.withPackages (p: [ p.wxPython_4_0 ])' -I nixpkgs=$PWD \
  --run 'strace python -c "import wx" 2>&1 | grep libjpeg.so'
openat(AT_FDCWD, "/nix/store/j8616aadakr67ynjndlnz2qf233svfmz-wxwidgets-3.0.4/lib/libjpeg.so.62", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[...]
openat(AT_FDCWD, "/nix/store/cx86r4i3nwvywqi0l04qfkcj1k07iyrf-libjpeg-turbo-2.0.4/lib/x86_64/libjpeg.so.62", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/cx86r4i3nwvywqi0l04qfkcj1k07iyrf-libjpeg-turbo-2.0.4/lib/libjpeg.so.62", O_RDONLY|O_CLOEXEC) = 3

and libtiff:
$ nix-shell -p 'python3.withPackages (p: [ p.wxPython_4_0 ])' -I nixpkgs=$PWD \
  --run 'strace python -c "import wx" 2>&1 | grep libtiff.so'
openat(AT_FDCWD, "/nix/store/j8616aadakr67ynjndlnz2qf233svfmz-wxwidgets-3.0.4/lib/libtiff.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[...]
openat(AT_FDCWD, "/nix/store/824zv3ch52nshl9yzgn7byrjgb36iib2-libtiff-4.1.0/lib/x86_64/libtiff.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/824zv3ch52nshl9yzgn7byrjgb36iib2-libtiff-4.1.0/lib/libtiff.so.5", O_RDONLY|O_CLOEXEC) = 3

Maybe more.
I think the best thing to do here is to figure out if wxPython's build would complain about missing libraries. Because if it does, then we don't have to worry, since the build here passes and can therefore find all necessary libraries.

I can also confirm that diffoscope doesn't show any significant changes before and after this PR, so this is essentially just a code cleanup that can't break anything. But I say let's take this opportunity to verify the package still works and has all deps it needs.

Huh, ok sounds like I am indeed wrong! Thank you both for educating me. I did not realize that Nix would not make the buildInputs available at runtime if the hash does not appear in the output. This actually explains a lot of problems in the Python and Julia ecosystem that rely on various versions of find_library. seems like for dynamically loaded libraries wrap_program is the main option.
wxPython itself uses find_library all over the place: https://github.com/wxWidgets/Phoenix/search?q=find+library&unscoped_q=find+library
So apologies for mistakenly opposing these changes, I understand now why it doesn’t make it any worse off, but it does highlight for me that some of these libraries may indeed still be runtime dependencies that we are missing.

I looked into enabling the tests, but ran into various tooling related errors. I also tried pythonImportsCheck, but that claimed the module could not be found.
I don't really have time to look into fixing the tests. This was supposed to be a quick and safe fix to unbreak a relatively important dependency, so I would like to get it merged without making it more complex than it needs to be.

I looked into enabling the tests, but ran into various tooling related errors. I also tried pythonImportsCheck, but that claimed the module could not be found.

python by default will add the $PWD to sys.path, and can sometimes mess with imports because some compiled files won't be present.

I think it would be a good idea to make sure this package works before unbreaking it.

I ran the demo application included in the source and everything seemed to work.
I did notice that some more dependencies were listed in the requirements.txt file, so I added them to propagatedBuildInputs. They are only needed for certain modules, so maybe it makes more sense for downstream packages to pull in those dependencies if needed (which is probably what was done previously). For example, the demo application uses a module that needs six, but not ones that need numpy or pillow, so those dependencies would needlessly become part of the closure.

I'd love to see this PR being merged (or something being done to get wxpython4 working again)!
Is there anything i could help with?
Cheers!

After some more thought, I decided to remove my last change (adding the propagated dependencies from requirements.txt). These are not new dependencies, so they have probably already been added to downstream packages where needed, and I don't see a reason to change that as part of this PR.
I believe this PR is ready to be merged.

I guess we can always add more deps later if needed. This does at least unbreak the package partially for now

I'm confused, was this supposed to add pillow and numpy or not?
AFAICT It added them to the argument set but forgot to add them to the propagatedBuildInputs, and then they later got removed from the argument set because they were unused.

Those packages were the ones I was talking about here: https://github.com/NixOS/nixpkgs/pull/94108#issuecomment-670059622. I initially added them, then removed them from propagatedBuildInputs but forgot to remove them from the argument set.

https://github.com/wxWidgets/Phoenix/blob/64e5d863f7833f10df6a0fbcf3221a730562224b/requirements/install.txt appears to impose runtime requirements for numpy and pillow.
What should be done?

They should probably be added, I just decided they were out of scope for this PR since they didn't seem to be needed by any dependents at the time.

Hm. https://discuss.wxpython.org/t/does-wxpython-4-0-6-must-also-install-numpy/32969/2
Of course it's never simple..

Hi @robinD42 , can you maybe clarify the dependency situation with numpy and pillow in wxPython?
Is there anything significant to pay attention to across versions?
Is there a list of other more optional packages somewhere? (see above post)
Specifically I would appreciate clarification on

Apparently wxPython has numpy and pillow them as runtime dependencies because they're needed relatively often, but they're actually kind of optional?
Additionally there are "other packages" that are used less commonly, which are also runtime dependencies, but they aren't listed in the requirements because they're needed less often?

in relation to https://discuss.wxpython.org/t/does-wxpython-4-0-6-must-also-install-numpy/32969/2 .
If I have your attention anyway, would you consider packaging wxPython with https://python-poetry.org/ ?
I hear good things about it. (I could open an issue on the Phoenix issue tracker I guess).
(It's not obvious whether the specific optional dependency handling is any better though at the time of https://stackoverflow.com/questions/60971502/python-poetry-how-to-install-optional-dependencies )
https://github.com/wxWidgets/Phoenix/issues/1932 is already asking to make these dependencies optional, and they seem to have done a little work looking at what's needed where.

I've filed https://github.com/NixOS/nixpkgs/pull/127768 , so I think any additional discussion should go there.


feature: Auth component

Requests:

https://discord.com/channels/983865673656705025/1177071497974648952/1222581598831120385

ION-227

Would be great to make the current adapters a bit more flexible:
CodeAdapter
Proper error handling for expired authorization cookie i.e.
- if (!authorization) throw new UnknownStateError();
+ if (!authorization) return ctx.forward(c, await config.onCodeExpired(c.req.raw))

OauthAdapter
Make the underlying openid-client configurable for custom oauth providers that require a different config.
Happy to open a PR but not sure if it's worth because I am assuming that the implementation might change anyway once you fully release that component.

When will this be updated to v3?

ok did a digging around and found this: https://github.com/sst/ion/blob/dev/sdk/js/src/auth/adapter/oauth.ts
Tried to set it up using this example as reference: https://github.com/sst/ion/blob/dev/examples/aws-auth/src/auth.ts
event tho i have adapted the example to use the oauth params (very similar with v2 one). When I try to use the adapter to auth by navigating to the generated auth URL.  I am getting 'Missing redirect_uri'

@klclee I was able to get auth working in v3 using a Google OIDC connector.
TL;DR
Here's a gist where I show how I got it working on my end
If you're on the SST Discord, I posted this message which briefly explains on the confusion that many are hitting (including me, initially).
Full explanation, if you care...
SST team, forgive me if this terminology clashes which how you plan to document it, but this is the mental model that helped me figure out how to replicate the slick v2 auth flow using the v3 components that exist as of now. Feel free to tell me to revise/remove this if is clashes with your intentions
The handler created by calling auth.authorizer(...) (in v3) essentially provides an "outer" OAuth flow which uses whatever adapter(s) you want internally, which expects your app to follow a typical authorization code flow to get back a custom JWT session token.
The adapter(s) may then perform an "inner" OAuth/OIDC flow depending on the adapter, but that is separate from the "outer" flow provided by the SST authorizer. The confusion I'm seeing around Discord and here seems to be in not understanding the difference there.
v2 auth abstracted all that away nicely by providing the auth.attach(...) method which gave you a backend proxy to handle that "outer" authorization code flow, and then you could use the Session.parameter(...) or Session.cookie(...) methods to pass the resulting custom JWT session token back to your frontend however you wished.
Since v3 does not (yet?) have those abstractions in place, I believe the correct approach is to build your own "outer" flow which uses the authorizer created by auth.authorizer(...). In my case, I created a backend proxy similar to what v2 provided via auth.attach(...), but you could do it any number of ways.
The confusion is that some people (including me, at first) are just trying to link to <your-authorizer-url>/google/authorize directly from the frontend without any parameters, assuming that it'll handle the authorization code proxying for you like auth.attach(...) did in v2. That's what causes the Missing redirect_uri error, because the authorizer is expecting the parameters needed to kick off an authorization code flow.
My gist linked above is a bit hacky in how it wires things up, but it is (I believe) correctly following the "outer" and "inner" proxying, and safely isolates all auth knowledge to the backend. The result is that (just like in v2), you can link to https://your-backend-api.com/auth/google from your frontend, and there is a proxy handler which will forward that to the authorizer with the proper parameters, perform the authorization code flow, and then callback to your frontend URL with ?token=<token> where <token> is the custom JWT session defined by createSessionBuilder().


Favicon_Update index.html

Added favicon

This Pr is raised for issue #22 , I request you to please have a look on this Pr . Thankyou

@jaibhedia please assign me also in this PR. Otherwise gssoc will not count it.
Also the correct label is gssoc
Not GSSO24 please change.


aaaaxy: 1.3.372 -> 1.3.393

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/divVerent/aaaaxy/releases.
meta.description for aaaaxy is: A nonlinear 2D puzzle platformer taking place in impossible spaces
meta.homepage for aaaaxy is: https://divverent.github.io/aaaaxy/
Updates performed

Golang update

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.3.393 with grep in /nix/store/rn196xnd142k3jc0q59gpp9q683na369-aaaaxy-1.3.393
found 1.3.393 in filename of file in /nix/store/rn196xnd142k3jc0q59gpp9q683na369-aaaaxy-1.3.393

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
aaaaxy

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/rn196xnd142k3jc0q59gpp9q683na369-aaaaxy-1.3.393 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A aaaaxy https://github.com/r-ryantm/nixpkgs/archive/7969fb76a63418d3cc650398fe6260869dd73e30.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/rn196xnd142k3jc0q59gpp9q683na369-aaaaxy-1.3.393
ls -la /nix/store/rn196xnd142k3jc0q59gpp9q683na369-aaaaxy-1.3.393/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

aaaaxy

Maintainer pings
cc @Luflosi for testing.

Duplicate of #224311 and superseded by #224680.


Use require instead of assert for passphrase package

Replaces just for the passphrase package, part of #628
Signed-off-by: Riyaz Faizullabhoy<EMAIL_ADDRESS>

LGTM pending CI!  :)


Create did:webplus CLI tool

The goal here is to provide a commandline interface tool that performs the basic user-centric functions of did:webplus.  Features should include:

"Unsafe" DID resolver (does no verification, simply fetches DID documents from VDR; this is the same model as did:web)
"Thin" DID resolver (relies on a VDG to fetch/verify DID documents)
"Full" DID resolver (does all verification of a DID's microledger itself with no need to use/trust a VDG)
Very basic filesystem-based edge wallet, managing one set of keys (i.e. one key for each key purpose) at a time.  This is not necessarily meant to be a production-grade wallet.
Ability to interact with a remote VDR in order to create/update DIDs

Nice-to-have features:

DID document store for "full" DID resolver, which stores all fetched DID documents and their verification status, so that network operations can be minimized (and eliminated in some cases).
Ability to verify contents of a local VDR filesystem
Ability to self-publish DIDs by generating all the files expected of a VDR on a website serving only static content, e.g. Apache, Github pages, Gitlab pages, etc.  This should include ability to manage and execute webhooks based on DID updates.
Github actions to run the CLI tool to self-host VDR on one's Github pages.  Similar for Gitlab pages.

Initial pass completed by https://github.com/LedgerDomain/did-webplus/pull/26
More features that are listed here would be good to implement, so keeping this open for now.


Could you pick a license?

Sorry but this isn't really an issue. I would like to use this in a modpack (which is beta don't worry. Im not planning to release until its less buggy) I would like to ask if you could select a license OTHER than All Rights Reserved as I cannot use this in a modpack as I don't have the rights to use it!

Done :)


Timing out on uploading bundle

I'm using DigitalOcean without ssh keys to deploy, and it worked a couple of weeks ago. I made a few unimportant changes and tried to deploy again, but this time it times out.

events.js:72
throw er; // Unhandled 'error' event
^
Error: Timed out while waiting for handshake
at null._onTimeout (/home/ubuntu/.nvm/v0.10.35/lib/node_modules/mup/node_modules/nodemiral/node_modules/ssh2/lib/client.js:138:17)
at Timer.listOnTimeout [as ontimeout] (timers.js:112:15)

What could be the problem? Haven't made any changes in my settings so something must have changed on this end.

This seems to be an issue with my work environment, since it worked perfectly from another workstation. Still would appreciate some pointers on what could have gone wrong...


[Enhancement] Allow bot messages to be visible from Minecraft

Existing Issues Searched

[X] I confirm that I have searched for existing issues before reporting to avoid duplicate reporting.

Description
Currently, whenever a bot sends a message, its not viewable from Minecraft
I suggest a config option that allows bots to have their messages be visible from Minecraft, potentially showBotMessages?
You might want to make sure to ignore webhooks, as they could cause the server to read its own messages
Images showing a bot not being visible from Minecraft

Please try the latest build version and see if there is any problem.

Thank you, it shows the bot's message now


wayland: fix cross

meson needs to invoke nm from binutils during build

Motivation for this change
Things done

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

[ ] NixOS
[ ] macOS
[ ] 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"
[ ] 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
[ ] Fits CONTRIBUTING.md.

Please target staging.

See nm being mentioned in the postPatch? I think the issue is that it's not doing anything anymore. We should probably convert this from a sed to a patch so we'll catch this in the future.


Using C# 9.0 init accessors in a custom function gives an error inside Visual Studio extension

When using init accessors or  primary constructors on records inside a custom (*.nt.cs) function
public class Sum
{
    public int X { get; init; }
    public int Y { get; init; }
}

Or
public record Sum(int X, int Y)

Gives the following error
error CS0518: Predefined type 'System.Runtime.CompilerServices.IsExternalInit' is not defined or imported

To fix the error you need to add the following code inside the custom function.
namespace System.Runtime.CompilerServices
{
    [EditorBrowsable(EditorBrowsableState.Never)]
    internal static class IsExternalInit { }
}

It would be great if this can be added automatically by the Visual Studio extension itself.

We will see about that, officially only .net standard 2.0 and C# 7.3 are supported in user scripts.


Add Træfɪk to API Gateways list

I found it while looking at other items in this part of the list.

Nice addition, thank you!


[Matcha] Retryable Error Class

Due to recent and more frequent alerts with the Matcha solver
Matcha inner solver error: SwapQuery result parsing failed: {"reason":"Server Error"}

Aug 2 (2x)
Aug 1 (3x)
July 31 (3x)
July 30 (2x)

We implement an error class MatchaResponseError (analogous to the work done for Paraswap Error Classification). At this moment we have only encountered "ServerError` and they do not appear together in groups so it seems like a reasonable decision to retry here.
With this in mind we follow the same pattern as in the Paraswap solver, classifying response errors and retrying to a max of 2 times before making one final attempt and finally returning whatever error was last. This should, at least, reduce the noise in our alert channel.
Note: This required a slight refactoring of the existing settle_ordermethod that broke up the large match statement into smaller pieces. If this is an issue of readability, I would be happy to perform this refactor first.
Test Plan
Added three unit tests for the retry cycle: retry till i) succeeds ii) exceeds, iii) don't retry.

If we find ourselves implementing this type of retry logic in other single order solvers as well, we could also implement an abstract "retyring solver" that operates on an abstract error type which implements should_retry. This way we don't have to copy paste that retry loop in each solver.

Yes. I had started thinking of this but wanted to see it in action at least for two before making the generalized approach!  Great idea.


Cannot register services within the same docker network only

What version of docker are you running?
18.09.6, build 481bc77
What version of registrator are you running?
v7
Did you build a custom version of registrator? If so, what is that image?

Steps to Reproduce:

Run 2 registrator containers in different docker network, along with 2 different consul-server in each. Start a flask or redis service and check consul server at v1/catalog/service/redis

Actual Results:
The redis record is available in both consul instances.
Expected Results:
The redis record only appears in the consul server under the same docker network
I'm not sure if that's the intended way of using registrator, but if someone can help me with this, or show me a workaround for this issue I'd really appreciate

I modified registrator a bit to work as I want. If anyone's interested you can see this version
https://github.com/trungams/registrator/commit/959e5d69f9fb4e16457bbcd0c22f99792a14fae2


Open a Dataset via command line parameters, URL parameters and possibly embed in other web applications.

Starting and accessing LiberTEM through JupyterHub and JupyterLab #1074 makes sure that LiberTEM runs as the correct Unix user. It delegates authentication to JupyterHub/Lab and authorization to the operating system via Unix users and file permissions.
Since the URL for LiberTEM for a specific user is predictable, such as https://example.com/user/weber/libertem/, we could link to datasets from an electronic lab notebook (ELN) or other web application. On the ELN side we'd just have to know the username, a storage path and possibly parameters. On LiberTEM side we just need to accept the storage path and dataset parameters somehow, for example through URL parameters.
Furthermore, other integration, namely in the Australian CVL, can require opening a file via command line parameters.
Possibly that would even allow embedding the GUI resp. GUI elements?

Moved to the 0.9 milestone since there is specific demand from University of Queensland users and it looks like a relatively simple feature with large benefit for users. :-)

No need to include the username in the URL, this works, too: https://your-jupyter-hub/user-redirect/libertem/

Refs #867

Integration work by @shabihsherjeel depends on this feature. If I understood correctly, the timeline is flexible for now? In any case, an important feature for the next release and should definitely be shortlisted. :-)

Yeah. I had the cli option setup on a local branch. It's nice to see this being implemented. I will keep an eye out for this and use it to run it in other projects that load LiberTEM. Thanks for letting me know. :)

Discussion with @sk1p: We should also provide an interface to start a cluster or connect to one without user interaction for integrations like this.

Moved to the 0.10 milestone so that we get the executor and Dask integration work out first.

It seems like this is solved in #1518? For the data management at ER-C we figured that linking is better than embedding since it introduces less dependencies, is way more general and works nearly as well.


Analyse if redux could simplify bundle/policies retrieval code

the business logic of those two ops is currently tighly woven into the respective component. which leads to many useEffect calls. Using redux could simplify this.

if redux, then use https://redux-toolkit.js.org/


Update line-colors.csv

added DB Regio Nordost, ODEG, HANS lines in Mecklenburg-Vorpommern and NVS bus and trams (Schwerin)

Please use one PR for both files!