Make agent usable for external backends and only compile one backend

This is in early stages, please don't review yet, but I need your comments about the design.
This PR mainly changes two things:
1. external backends
Currently, you can extend agents with custom backends using go plugins (addons).
With https://github.com/woodpecker-ci/woodpecker/pull/3268, this is migrated to RPC.
I don't think it's a good idea to use hashicorp go-plugins in the agent because they us RPC, but the agent uses gRPC too. So it's kinda duplicated.
Thus, I had the idea in this PR: Allow to import the agent as external package and run it with custom backends:
package main

import (
	"go.woodpecker-ci.org/woodpecker/v2/cmd/agent/core"
)

func main() {
	core.RunAgent(<your backend>)
}

This takes care of everything else and allows you to easily develop your own backend.
2. only compile one backend
In addition to this, this changes agent backends (needs more work).
Instead of compiling all backends (currently docker, local, kubernetes) into one agent and allowing to select at runtime using env var, only compile one backend which is then automatically executed.
Advantages:

smaller binaries
faster compilation
you don't need the other backends anyways usually

Instead of compiling all backends (currently docker, local, kubernetes) into one agent and allowing to select at runtime using env var, only compile one backend which is then automatically executed.

I am not sure about that point. Sure it would be a bit smaller (afaik it isn't that large anyways), but the maintenance overhead for us (building, releasing, adjusting them, ...) and for instance admins (downloading the correct agent, upps I got the wrong agent ...) could be expected to increase quite a bit.

I don't think it's a good idea to use hashicorp go-plugins in the agent because they us RPC, but the agent uses gRPC too. So it's kinda duplicated.

However both connections use totally different settings, scopes etc. I think we could allow custom agents to reuse the official agent code as a lib they can hook into, but would leave the standard agent as it is.

So you say it would also be fine to connect the backend via RPC to agent?

That could also work, but I was mainly referring to the idea that the agent could also be use a lib. Where someone could add their own backend as well.
Apart from that are there currently any attempts to add a custom backend?


Shift + drag to resize line in constrained axis not working since the linear elements redesign (#5501)

A side effect of #5501 is that I am not able to resize the line while keeping it constrained horizontally. In the new mode, shift + drag is the same as drag and does not keep the motion constrained.

Is it fixed for you here? https://excalidraw-git-fork-ryan-di-line-edit-clamp-excalidraw.vercel.app/ (https://github.com/excalidraw/excalidraw/pull/5527)

Yes 🎉


Snatchev/neighbor joining

This PR uses a neighbor-joining algorithm for markers that are placed on top or near each other. It progresses from using MinorMarker which is a dot to a bar marker.

👍

🚢


Add quick check for DESC that mentions VFs

Observed behaviour
Families with variable fonts do not always mention that in their descriptions
Expected behaviour
When searching all descriptions for variable fonts, I want to get accurate results.
Therefore there should be check for if a standard boilerplate sentence is in the DESCRIPTION for each families available as VF, that says This family is available as a variable font.

Fontbakery report
Fontbakery version: 0.7.5

[1] AmstelvarAlpha-VF.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] ArchivoVFBeta-Italic.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] ArchivoVFBeta.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] Asap-VF.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] AsapVFBeta-Condensed.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] AsapVFBeta-Italic.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] AsapVFBeta.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] CabinVFBeta-Italic.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] CabinVFBeta.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] Comfortaa-Regular.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] CrimsonPro-ExtraLightItalic.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] CrimsonPro-ExtraLight.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] DecovarAlpha-VF.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] ElMessiri-VF.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] FaustinaVFBeta-Italic.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] FaustinaVFBeta.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] LemonadaVFBeta.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] Literata-Italic.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] Literata-Regular.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] MarkaziText-Roman-VF.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] MarkaziText-VF.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] MavenPro-Regular.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] MavenProVFBeta.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] Muli-Italic.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] Muli-Regular.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] Oswald-Regular.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] PodkovaVFBeta.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] RokkittVFBeta.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] Vollkorn-Italic.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] Vollkorn-Regular.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

Summary

💔 ERROR
🔥 FAIL
⚠ WARN
💤 SKIP
ℹ INFO
🍞 PASS

0
30
0
2688
0
0

0%
1%
0%
99%
0%
0%

Note: The following loglevels were omitted in this report:

WARN
SKIP
INFO
PASS

The results in the previous message are stricly looking for the sentence "This family is available as a variable font".
I think it can be OK to be less strict and accept the mere presence of the term variable font as a PASS.
For instance, AmstelvarAlpha failed, even though it mentions "A serif text variable font, by David Berlow."
I will make the check less strict.

Current state of the GFonts collection with the strict check:

With the less strict check, here's what we get:

Fontbakery report
Fontbakery version: 0.7.5

[1] Asap-VF.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] Comfortaa-Regular.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] ElMessiri-VF.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

[1] MarkaziText-Roman-VF.ttf

🔥 FAIL: Does DESCRIPTION file mention when a family is available as variable font?

com.google.fonts/check/description/variable_font
🔥 FAIL Please include the following sentence in the DESCRIPTION.en-us.html file:

This family is available as a variable font.

Summary

💔 ERROR
🔥 FAIL
⚠ WARN
💤 SKIP
ℹ INFO
🍞 PASS

0
4
0
2691
0
23

0%
0%
0%
99%
0%
1%

Note: The following loglevels were omitted in this report:

WARN
SKIP
INFO
PASS


fix(esbuild): Invert warning about bundle: true

Fixes https://github.com/getsentry/sentry-javascript-bundler-plugins/issues/537
In https://github.com/getsentry/sentry-javascript-bundler-plugins/pull/526 we introduced a log message that esbuild's bundle: true is not supported. We messed up because it is actually the complete opposite. We don't support bundle: false.
This PR flips the logic.

Awesome! ♥


System Tests

[x] Multi-NS Deployment
[ ] Multi-Site Deployment
[ ] Concurrent Slices
[ ] Amarisoft vEPC

Extra tests for Release 2.0.0:

[ ] Use base slice_des and add NSs
[ ] Use base slice_des and modify parameters
[ ] Error handling for missing SB components
[ ] Not supported locations

Extra tests for Release 2.0.0:

[ ] Use base slice_des and add NSs
[ ] Use base slice_des and modify parameters
[ ] Error handling for missing SB components
[ ] Not supported locations

Extra tests:

Not supported sst 2 or 3 --> Looking for sst 1 (EMBB)
Not supported any sst --> Terminates the slice


Update dependency @actions/github to v6

This PR contains the following updates:

Package
Type
Update
Change

@actions/github (source)
dependencies
major
5.1.1 -> 6.0.0

Release Notes

actions/toolkit (@actions/github)
v6.0.0

Support the latest Octokit in @actions/github #1553

Drop support of NodeJS v14, v16

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), 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 Renovate Bot.

⚠ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:
File name: package-lock.json


STORM-1366. Add documentation for StormSQL into the website.

This PR adds the documentation for StormSQL in the ASF website.

+1


Token: App('xxxxx') does not exist, please create it first

Describe the bug
I have create an app named apisix-registry, and appId also apisix-registry

but when i create third-party applications and search apisix-registry, there had an error as below
Token: App('apisix-registry') does not exist, please create it first

To Reproduce
Steps to reproduce the behavior:

create an app
create third-party applications and search by appId

Additional Details & Logs

Version java-1.7.1

This is the designed behavior. The basic idea behind this is we have some app which wants to operate the configurations of another app in apollo.
Here another app is the apisix-registry you created in apollo. And some app happens to be the same app, but you still need to create it in the open api manage page to acquire the open api token.

@nobodyiam thanks for your reply, but i'm still confused, because when i use apollo-1.6.1, it can worked well

but when i use apollo-1.7.1, it was failed（apollo-1.7.1 and apollo-1.6.1 are using in different cluster, can't be changed）
so i guess if any adjuestment for apollo-1.7.1
I want to use token to access the apisix-registry project, i now we create only one apisix-registry in apollo, how can i get the token, could you please give me any advice?

@nobodyiam Sorry, my operation was wrong, the problem has been solved, thanks a lot

hello, I am from the Apache APISIX community.
Maybe we can integrate Apollo with Apache APISIX?

Closing as the problem is resolved.

@moonming Sounds a good idea! Apollo has a set of http apis to read/subscribe the configs and also has a set of open apis to operate the configs, you may take a look to see if works for apisix.


Contributing instructions are wrong

We need to update to reflect current instructions, CLAs, etc.
e.g., using https://mlcommons.org/en/get-involved/

Hi Folks, any update on this?

some issue rolling this out to all repos


Timestamp.fromMillisecondsSinceEpoch() throws when calculating negative milliseconds.

Currently, this will throw an error:
Timestamp.fromMillisecondsSinceEpoch(-1);

I suggest the above code should be add as a test to the package.
It's a simple fix. The seconds/nanoseconds calculation is wrong:
    int milliseconds = -1;
    var _kThousand = 1000;
    var _kMillion = 1000000;

    // What is should be:
    int seconds = (milliseconds / _kThousand).floor();
    int nanoseconds = (milliseconds - seconds * _kThousand) * _kMillion;
    print('seconds = $seconds');
    print('nanoseconds = $nanoseconds');

    // Flutterfire's current code:
    seconds = (milliseconds ~/ _kThousand).floor();
    nanoseconds = (milliseconds - seconds * _kThousand) * _kMillion;
    print('seconds = $seconds');
    print('nanoseconds = $nanoseconds');

This is the same as https://github.com/flutter/flutter/issues/34929 and https://github.com/FirebaseExtended/flutterfire/issues/1222 which was not fixed after all.
This is a serious issue with an easy fix. Please, give it a high priority and don't let it stand for long. Thanks.

Hmm, I think asserting a valid millisecond value would be best here, the current code ensures you can't get an out of range exception on the high millisecond side.

@Ehesp I respectfully disagree. The current code is just plain wrong. In the end you must have positive/negative seconds, but only positive nanoseconds. However, -1 is indeed a valid millisecond value for the function call. Negative milliseconds here are just dates before Jan 1st 1970, right?

I'll take a proper look at it t some point. Feel free to send a PR before that.

Just to make it clear:
My original correction code was this: (It was wrong)
final int seconds = (milliseconds ~/ _kThousand);

Your correction code is this: (Also wrong, because it makes no sense to call floor after an integer division)
final int seconds = (milliseconds ~/ _kThousand).floor();

What is should be (Use floor, yes, to ensure you can't get an out of range exception on the high millisecond side. But first divide with doubles):
int seconds = (milliseconds / _kThousand).floor();

Initial PR added at https://github.com/FirebaseExtended/flutterfire/pull/3565/files


Update README.md

Hello world,am chadso,I need your contributions, to prosper and return positive changes to my community, let's join hands to create a better skilled world future generation.

Thank you very much gilbert Charles for your contribution.


Login issue

We setup self hosted solution and ran on ubuntu. On login page we got stuck, the error says
Cannot read properties of undefined (reading 'digest')

We're have same issue on self-hosted installation in Google Cloud.  What was the resolution?

This issue is because of the following call made on Sign in:
crypto.subtle.digest('SHA-256', new TextEncoder().encode(str));

If you are not accessing by http://localhost then you should configure to use https to be able to login, because most browsers implementations requires a secure origin in order to allow using WebCrypto API:


differentiable setitem

example usage from discord
for t in range(0, inp_seq_len):
    model(X[:, t].to(device))

y_pred = torch.zeros(Y.size()).to(device)
for i in range(0, out_seq_len):
    y_pred[:, i] = model()

loss = criterion(y_pred.to(device), Y.to(device))
loss.backward()
clip_grads(model)
optimizer.step()

setitem currently works if the set area can be represented with a shapetracker, and it partial assign using the said shapetracker as output shapetracker.
to make it differentiable, we can convert that shapetracker into a mask tensor, then use where to construct the new tensor

tricky if first set with tensor with grad, then partially set with tensor without grad...

to make it differentiable, we can convert that shapetracker into a mask tensor, then use where to construct the new tensor

#4489 this does it by appending an indexedview to the shapetracker that describes the indexing rules of the buffer when loading or storing. Is it kinda on the right track? Just have to implement indexing functions in function.py and maybe it works? It also works for overlapped cases.

i want to do the no-copy case without adding indexedview. maybe it's needed for advance setitem? not sure.
say t[idx] = a
idx became shapetracker st (how getitem works), then we apply inverse of st to a -> full_a = inv(st, t.shape)(a) and ones_like(a) -> mask = inv(st, t.shape)(ones_like(a)). and update t = mask.where(full_a, t) should work

the st inversion part and masked tensor parts are fine (LazyBuffer._view is great), the issue now is that grad does not flow through assign

torch behavior
a = torch.ones((8, 8))
b = torch.rand((8, 8), requires_grad=True)
a[:] = b
a.sum().backward()
print(b.grad) # correct
print(a.grad) # warning and returned None

a = torch.ones((8, 8), requires_grad=True)
b = torch.rand((8, 8))
a[:] = b # not allowed


Update module github.com/stackitcloud/stackit-sdk-go/services/mariadb to v0.7.0

This PR contains the following updates:

Package
Type
Update
Change

github.com/stackitcloud/stackit-sdk-go/services/mariadb
require
minor
v0.6.0 -> v0.7.0

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), 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 Renovate Bot.

Done in #151


Cannot create first user because of form validation

Link to reproduction
No response
Describe the Bug
This is my first time trying out Payload, I'm really excited to try it out (specifically v3).
I'm having trouble creating my first user. I've tried with the blank-3.0 template across every release of the beta. I've tried with a fresh install of Chrome with no extensions. The form always complains about the password field or the confirm-password field:

I tried with the blank template (i.e. v2) and it works as expected.
Using mongo (but also tried Postgres). On an M1 MacBook Pro. I am definitely typing the same password in to both fields.
This is the error in the console:
ERROR: ValidationError: The following field is invalid: password
    at generatePasswordSaltHash (webpack-internal:///(rsc)/./node_modules/payload/dist/auth/strategies/local/generatePasswordSaltHash.js:23:15)
    at registerLocalStrategy (webpack-internal:///(rsc)/./node_modules/payload/dist/auth/strategies/local/register.js:30:120)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async createOperation (webpack-internal:///(rsc)/./node_modules/payload/dist/collections/operations/create.js:166:19)
    at async registerFirstUserOperation (webpack-internal:///(rsc)/./node_modules/payload/dist/auth/operations/registerFirstUser.js:25:24)
    at async Object.registerFirstUser [as first-register] (webpack-internal:///(rsc)/./node_modules/@payloadcms/next/dist/routes/rest/auth/registerFirstUser.js:25:20)
    at async eval (webpack-internal:///(rsc)/./node_modules/@payloadcms/next/dist/routes/rest/index.js:412:35)
    at async /path/to/payload/templates/blank-3.0/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:53466
    at async e_.execute (/path/to/payload/templates/blank-3.0/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:44747)
    at async e_.handle (/path/to/payload/templates/blank-3.0/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:54720)
    at async doRender (/path/to/payload/templates/blank-3.0/node_modules/next/dist/server/base-server.js:1364:42)
    at async cacheEntry.responseCache.get.routeKind (/path/to/payload/templates/blank-3.0/node_modules/next/dist/server/base-server.js:1578:40)
    at async DevServer.renderToResponseWithComponentsImpl (/path/to/payload/templates/blank-3.0/node_modules/next/dist/server/base-server.js:1498:28)
    at async DevServer.renderPageComponent (/path/to/payload/templates/blank-3.0/node_modules/next/dist/server/base-server.js:1915:24)
    at async DevServer.renderToResponseImpl (/path/to/payload/templates/blank-3.0/node_modules/next/dist/server/base-server.js:1953:32)
    at async DevServer.pipeImpl (/path/to/payload/templates/blank-3.0/node_modules/next/dist/server/base-server.js:900:25)
    at async NextNodeServer.handleCatchallRenderRequest (/path/to/payload/templates/blank-3.0/node_modules/next/dist/server/next-server.js:272:17)
    at async DevServer.handleRequestImpl (/path/to/payload/templates/blank-3.0/node_modules/next/dist/server/base-server.js:796:17)
    at async /path/to/payload/templates/blank-3.0/node_modules/next/dist/server/dev/next-dev-server.js:339:20
    at async Span.traceAsyncFn (/path/to/payload/templates/blank-3.0/node_modules/next/dist/trace/trace.js:154:20)
    at async DevServer.handleRequest (/path/to/payload/templates/blank-3.0/node_modules/next/dist/server/dev/next-dev-server.js:336:24)
    at async invokeRender (/path/to/payload/templates/blank-3.0/node_modules/next/dist/server/lib/router-server.js:174:21)
    at async handleRequest (/path/to/payload/templates/blank-3.0/node_modules/next/dist/server/lib/router-server.js:353:24)
    at async requestHandlerImpl (/path/to/payload/templates/blank-3.0/node_modules/next/dist/server/lib/router-server.js:377:13)
    at async Server.requestListener (/path/to/payload/templates/blank-3.0/node_modules/next/dist/server/lib/start-server.js:142:13)

To Reproduce
git checkout v3.0.0-beta12
cd templates/beta-3.0
cp .env.example .env
yarn && yarn dev

Payload Version
3.0.0-beta.12
Adapters and Plugins
No response

We're investigating right now and adding an e2e test to catch this in the future

Hey ya'll 👋🏼
I had the same issue as @TSFoster. Bu, after updating to beta-15 I'm having a different experience. Now it tells me that I've not entered a valid email.

Hey ya'll 👋🏼
I had the same issue as @TSFoster. Bu, after updating to beta-15 I'm having a different experience. Now it tells me that I've not entered a valid email.

Well, it was kina a false alarm. I've been having this issue whole day, but after I posted above comment I tried the email<EMAIL_ADDRESS>and it worked 🤔 Previous emails I tested ended with .se or .email. Do not know if this matters though...

Well, it was kina a false alarm. I've been having this issue whole day, but after I posted above comment I tried the email<EMAIL_ADDRESS>and it worked 🤔 Previous emails I tested ended with .se or .email. Do not know if this matters though...

I experienced similar issues, with a .me TLD. However it was intermittent too with a .com also.
I raised this in Discord and was advised to use beta.11 for the time being which seemed to work locally. However when I deployed it to Vercel for testing, I still had the issue I had on 15 so I'm bit unsure if the issues exists further back than 14/15.
But as I mentioned it was intermittent for me so it's been hard to replicate.

Just confirming I am able to create a first user (including a .me TLD, if this at all relevant) with beta.18 in a fresh Next app.


Follow up PR for GHA driver builds

Description
This PR is meant for follow up fixes after merging the driver builds to the master branch.
Checklist

[ ] Investigated and inspected CI test results

Testing Performed
CI run should be enough.

/retest

The failure on the check-drivers-build check is due to a flake that happens when a large number of drivers is built, it is also present in OSCI. For some reason, a driver that was built correctly leaves the failure file when it should be deleted. I will take a closer look and try to come up with a solution for it in a follow up PR.


Continue working in X commands missing?

Testing #167433
If I run "Continue working on...," I get many development environments to target, but I only see one Continue Working in command for the codespace option.

Verified from the remote repositories options. Looks like 1 and 2 (local folder and local container) still need to add entries to be consistent.

@joyceerhl who should add the built-in command?


return code is 0 on failure

On abort with "Challenge is invalid! (returned: invalid)", exit value 0 is returned - any other value would be expected.

This should be fixed in a7934fe72d066746a830475b757a18fac569d837.

thank you


update POM in docker-files to have Delhi version

Signed-off-by: Jim White<EMAIL_ADDRESS>

@jpwhitemn Ok this is good.  Now we need to fix the pom to also parameterize the nexus staging path.


Use Airbyte's API to monitor connections

Get Airbyte connection logs to send it to a third system like Cloud Watch for alerting.

Hi
I would love to work on this

Hey @arimbr @lucky4242 ! What is the status of this topic?

Hi @juweins.
just saw the message. working on it.

Hi @juweins
What platform should I use to write the article?

I want to work on it please assign this to me

Good day, am interested in writing this topic @ ThaliaBrarrera . I want a go ahead

Hi @arimbr, I am very interested in contributing to this article and would love the opportunity to collaborate.


refactoring set command to use SetParams for the optional parameters

It closes #877

I let the binary layer receiving all the possible parameters. The binary layer was receiving expire time in long instead of byte[], so I also change it.

I removed the set methods that receive only a few optional parameters.

The other layers(command interfaces and implementations) will receive the SetParams.

I think that checking arguments is not necessary and actually wrong.
Redis allows to send both EX and PX on the same command.
And even EX and NX. If you check, redis doesn't return an error and doesn't complain. Why should we?

@xetorthio in my opinion, Redis should also complain about it. If we set both, EX and PX, what expire time should be used? And if we set both EX and NX, no value will be returned.
We know that those values are wrong, so why don't warning the user about it? It can avoid wrong use of the parameters. Actually, I'll ask this in Redis repo too.

Actually, after we talked, I agree with you! I did remove the checking.

So LGTM!

Thanks @xetorthio. @heartsavior and @marcosnils what do you think about it?

@nykolaslima
Looks like Redis complains Syntax Error. Could you check again?
https://travis-ci.org/xetorthio/jedis/builds/50217281

@nykolaslima any updates about this?

@marcosnils and @HeartSaVioR sorry about my delay, I'm really busy this week but I'll try to finish it today!

@nykolaslima PING

@HeartSaVioR @marcosnils @xetorthio Guys, I'm sorry for taking so long on this. I was very busy during these days.
Please, take a look at the PR. Now we got all tests passing. If you have any considerations, please let me know.
By the way, congratulations on the new versions releases :tada:

@nykolaslima Well done! When other collaborators take a look and OK then I'll merge.

I'm +1, and since any collaborators review such a long time, it would be good to merge now.

@nykolaslima Thanks for the great effort! I merged this to master.

:+1:

Thank you guys. And i'm sorry for being so away those times..

@nykolaslima Not at all! We have many issues to resolve, and I'd be happy if you lend a hand. :)


Fixing the FW callback

The rounding of the solution was only done if the verbose setting of FrankWolfe was on. The rounding should happen in the post processing step in FW.
In the node evaluation, we sometimes stop prematurely. The incumbent is quite good already and the first few FW iterations rather coarse.

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@95fc747). Click here to learn what that means.
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #106   +/-   ##
=======================================
  Coverage        ?   69.09%
=======================================
  Files           ?       12
  Lines           ?      990
  Branches        ?        0
=======================================
  Hits            ?      684
  Misses          ?      306
  Partials        ?        0

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Selenium Basic works for Excels in Mac machine?

Selenium Basic works for Excels in mac machine?

Hi @nithyakala1988 ,
Did you get the answer for your question on if Selenium Basic works on MAC OS?
I am looking for the same thing. Appreciate if you can response.
Thank you!!

Hi,
How to install it at Mac Os?


kfac recipe

Thanks @jayfurmanek . Addressed your comments. Please let me know your feedback.

https://github.com/IBM/powerai/issues/43


Skip git checkout when run-happo is in quick mode

The first time that Happo runs in CI, it currently runs git checkout
to check out the SHA. However, git should already be on that SHA since
it is the first run.
At Airbnb, I noticed that this step can take ~10 seconds, so skipping
over it when it is unnecessary should give us a little speed boost. It
is unclear to me exactly why this would take so long, so maybe all of
the time will just move over to the next git operation, but this seems
like a reasonable thing to do regardless.

I'll follow up with the changes I suggested above.


[HOLD for payment 2024-10-07]  Workspace - Invite message comes back after deleting it

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 9.0.41-2
Reproducible in staging?: Y
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Issue reported by: Applause - Internal Team
Action Performed:

Login to an account
Create a workspace
Go to the created workspace > Members
Click on invite member > Choose a user
On "add message" page try to delete the message

Expected Result:
Message is deleted
Actual Result:
The deleted message comes back
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/user-attachments/assets/b04cf507-1cde-4a47-a349-9c0f23c369c2
View all open jobs on GitHub

Proposal
Please re-state the problem that we are trying to solve in this issue.
when a user deletes the invite message in the workspace invite process, the message reappears unexpectedly.
What is the root cause of that problem?
The root cause of this problem is that the component was automatically resetting the welcome message to its default value, even when the user had intentionally deleted it
What changes do you think we should make in order to solve the problem?
we should update the  useEffect to add a check that skips resetting the invite message if it is already empty. This ensures that when the user deletes the message, it doesn't get reset to the default value.
Add!welcomeNotecheck here:
https://github.com/Expensify/App/blob/3047c1baa21f47825f5c1ffd652184341dd22256/src/pages/workspace/WorkspaceInviteMessagePage.tsx#L89-L92
to:
 useEffect(() => {
        if (isEmptyObject(invitedEmailsToAccountIDsDraft) || !welcomeNote) {
            return;
        }

https://github.com/user-attachments/assets/c1bf77cf-634a-4405-944b-a4aefe147855

Proposal
Please re-state the problem that we are trying to solve in this issue.
Invite message comes back after deleting it
What is the root cause of that problem?
Since we set getDefaultWelcomeNote as a dependency of this hook, the hook is triggered every time the input's onChange event occurs
https://github.com/Expensify/App/blob/36346702f2e2e1621bb2b31d6a7d35cbe1c1d105/src/pages/workspace/WorkspaceInviteMessagePage.tsx#L94
What changes do you think we should make in order to solve the problem?
We should remove getDefaultWelcomeNote from the dependency array to avoid re-renders when the input changes.
// .src/pages/workspace/WorkspaceInviteMessagePage.tsx#L94
    useEffect(() => {
        if (isEmptyObject(invitedEmailsToAccountIDsDraft)) {
            return;
        }
        setWelcomeNote(getDefaultWelcomeNote());
-    }, [getDefaultWelcomeNote, invitedEmailsToAccountIDsDraft]);
+    }, [invitedEmailsToAccountIDsDraft]);

and We need to validate this input, if necessary, to avoid empty values ("")
// .src/pages/workspace/WorkspaceInviteMessagePage.tsx#L119
        if (isEmptyObject(invitedEmailsToAccountIDsDraft)) {
            errorFields.welcomeMessage = translate('workspace.inviteMessage.inviteNoMembersError');
-        }
+        } else if (isEmptyObject(welcomeNote)) {
+            errorFields.welcomeMessage = 'Please enter a welcome note.';
        }

POC
https://github.com/user-attachments/assets/60e6acda-8cf1-4687-97e2-462e2df34f8b

Seems to be a frontend issue, so removing Web-E blocker

Yeah this was caused by PR https://github.com/Expensify/App/pull/48660 and issue https://github.com/Expensify/App/issues/34929 . We can just remove that new useEffect but I'm not sure what the point of it was originally, so pinged the PR authors. Thanks!

Yeah this was caused by PR #48660 and issue #34929 .

@dangrous Yeah. Fixing an eslint error (i.e. using useOnyx instead of withOnyx) during some last-minute changes caused this issue. I think we can consider this as a separate issue. Please assign me here as I have the context.

We can just remove that new useEffect but I'm not sure what the point of it was originally, so pinged the PR authors. Thanks!

We need the second useEffect to ensure workspaceInviteMessageDraft is populated from the Onyx. However, an edge case got left out i.e. when the user intentionally deletes the entire welcome note in which case we should not reset.
@Shahidullah-Muffakir proposal LGTM

Yep checking for an empty welcome note makes sense to me. Can you raise that PR quick?

Yep checking for an empty welcome note makes sense to me. Can you raise that PR quick?

Sure. Working on the PR now. Will update in about an hour

@rojiphil Can you please address that in a followup?

I believe we still need to clear the message when the RHP closes. If we edit the message, close the RHP, and select members again, the edited message is shown instead of the default message.

@Krishna2323 The way it was working before was that if the welcome message text was cleared and we navigated away and return to the same page, the default welcome message was displayed. I tested this against a recent ad-hoc build generated before the changes were introduced. And the test video is demonstrated below.
So, I think this is expected and there is no regression here. Setting empty text seems to be the way to get back to the default welcome message.
cc @jasperhuangg
https://github.com/user-attachments/assets/78760cb5-27db-4809-80fb-bf626200e506

I think we might want to discuss this in Slack? I'm not sure if we have an expected behavior called out for this scenario. Personally, I would probably say:

As long as the RHP stays open, the message should not change on its own (stay edited as edited, or empty as empty, or default as default). This would be true even if you're changing who you're inviting.
Once the RHP is closed, it should reset to the default value.\

Again, this is just my opinion, but is probably what I'd expect? We can ask for some other opinions though.

@dangrous  Yeah. We can take some other’s opinion too. Meanwhile, I am just a little confused about the following:

•	Once the RHP is closed, it should reset to the default value.\

Did you mean removing the draft feature so that it resets to default value always? The reason why I ask is that the draft feature involves saving the draft message for any further member invites done locally. This was implemented here.
Or did you mean resetting to default value only when it is empty? The current behavior though is like this.

Payment summary: $250 to @rojiphil for PR resolving this issue.

@JmillsExpensify
I wanted to kindly ask if I might also be eligible for compensation, as the solution I proposed in My proposal was implemented in the PR. Even @rojiphil acknowledged and approved my proposal in here. Thank you.

Oh got it! I wasn't aware of that specific behavior - so I take back what I said haha. I guess then I think it should just always stay as edited, no matter what.
But that does bring up the question of how to return to the default message, since that seems like a feature we might want.
Maybe:

As long as the RHP stays open, the message should not change on its own (stay edited as edited, or empty as empty, or default as default). This would be true even if you're changing who you're inviting.
Once the RHP is closed and the field is empty, it should reset to the default value.

What do we think? Alternate (more involved) solution would be adding a Reset to default or similar button

bump on this - do we think that's the right way forward?

I wanted to kindly ask if I might also be eligible for compensation, as the solution I proposed in My proposal was implemented in the PR. Even @rojiphil acknowledged and approved my proposal in here. Thank you.

It’s correct that the mentioned proposal was implemented here to fix the issue. I would be happy to split the compensation and share a part with @Shahidullah-Muffakir.

Maybe:

As long as the RHP stays open, the message should not change on its own (stay edited as edited, or empty as empty, or default as default). This would be true even if you're changing who you're inviting.
Once the RHP is closed and the field is empty, it should reset to the default value.

What do we think? Alternate (more involved) solution would be adding a Reset to default or similar button

So, that brings before us the following options:

As long as the RHP stays open, keep the message as empty when it is empty. Reset to defaultvalue only once the RHP is closed and the message isempty`.
When set to empty, always keep the message as empty. And use a Reset to default or similar button to reset to default value.
Do nothing. i.e. Reset to default value whenever the invite message page is shown and the message is empty. This is irrespective of whether the RHP stays open or closed.

I personally like Option 2 but let’s see what’s the consensus would look like here
cc @JmillsExpensify @Expensify/design

bumped design in Slack to see if we can figure something out!

Can someone share a video of the problem at hand or maybe a more detailed description of the full problem that needs to be resolved?

Yeah a video would be super helpful. It also might be worth looking into how Status works—feels like it might be kinda similar.

Can someone share a video of the problem at hand or maybe a more detailed description of the full problem that needs to be resolved?

Let me try to explain with a video and see if it helps.
The test video attached here demonstrates the current behaviour i.e. option 3. Here, after clearing the default message, when we navigate back to Invite new members view and again navigate to Add message view, it again displays the default message.
Now, the thought is that since the user has set the message as empty, it should remain empty. The approach in option 1 would be to keep the message empty itself until the RHP is closed (i.e. user closes the Invite new members page). If RHP is closed and we, again, navigate to Add message, we can show the default message.
Option 2 proposes to keep the message edited as empty always irrespective of whether the RHP is open or closed. And then rely on Reset to default or similar button to reset to default value.
https://github.com/user-attachments/assets/a847c2c9-d034-48ef-b59f-6fac2bf299fb

Hmm I don't feel too strongly here. I can see where it makes sense that if you get to the "Add message" screen and make edits, those edits should remain regardless if you navigate back to the invite page or not. But I would say we should only save a new default message once the actual invite gets sent.

But I would say we should only save a new default message once the actual invite gets sent.

I agree with this. The behavior you're showing in the video doesn't seem out of place to me. I tested it in the product and if you do actually write something in the field, we persist that edit if you navigate back to the participant selector and then move forward again. So generally that feels pretty right to me.
The only thing that feels weird is if I customize the message and then completely abandon the flow (close the RHP without sending an invite) the custom message persists if I go through the invite flow again from scratch. That feels a little weird to me that we're saving a custom message that never got sent.

That feels a little weird to me that we're saving a custom message that never got sent.

Yeah, I definitely agree with that part.

Okay so it sounds like we might be going for an option 1.5:
1.5. As long as the RHP stays open, keep the message as empty when it is empty. Reset to default value only once the RHP is closed without an invite being sent ~and the message is empty~.
Am I interpreting that correctly?

Yes I think that makes the most sense to me.

Catching up on it all and yeah that feels right to me too

Awesome, thank you! @rojiphil, are you up for tackling that adjustment, or should we open it up to contributors again?

But I would say we should only save a new default message once the actual invite gets sent.

1.5. As long as the RHP stays open, keep the message as empty when it is empty. Reset to default value only once the RHP is closed without an invite being sent ~and the message is empty~.

Hmm.. I am slightly confused here. Are we saying the following? Or am I missing something here?
As long as the RHP stays open, keep the messages as edited (even if it is set to empty). And save the edited message as invite message draft only on an actual invite. Once the RHP closes without an actual invitation, discard the edited message. And when the RHP is shown again, show either the previously saved invite message draft or show the default message if no custom message is set.

I think you've outlined it exactly how I was understanding it. 👍

are you up for tackling that adjustment, or should we open it up to contributors again?

@dangrous I think it’s best to open it up to contributors again to get the best proposal as this does not seem like a minor adjustment.

Okay cool! I may actually just make a new issue for it, so we can close this one out / pay. It's more of a clarification on expected behavior than a regression or anything that should be handled here.
I'm also going to hold it on https://github.com/Expensify/App/issues/49996 which is related and should make things easier.

Made https://github.com/Expensify/App/issues/51096!

Okay cool! I may actually just make a new issue for it, so we can close this one out / pay.

Yeah. Since another issue is created for the enhancement, I think we can pay as per this comment  and close this one out. cc @JmillsExpensify

Ok, so based on that comment, we'd have:

Contributor: $125 @rojiphil via Upwork
Contributor: $125 @Shahidullah-Muffakir via Upwork

Offers sent to both via Upwork.

Offers sent to both via Upwork.

Accepted the offer. Thanks

Both paid out. Thank you!

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

[ ] [@rojiphil] The PR that introduced the bug has been identified. Link to the PR:
[ ] [@rojiphil] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:
[ ] [@rojiphil] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:
[ ] [@rojiphil] Determine if we should create a regression test for this bug.
[ ] [@rojiphil] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.
[ ] [@JmillsExpensify] Link the GH issue for creating/updating the regression test once above steps have been agreed upon:

[x]  [@rojiphil] The PR that introduced the bug has been identified. Link to the PR: Offending PR
[x]  [@rojiphil] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment: Added comment
[x]  [@rojiphil] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion: Not Required. Existing checklist is good enough to capture such issues.
[x]  [@rojiphil] Determine if we should create a regression test for this bug. : Yes. We can
[x]  [@rojiphil] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.

Steps:

Go to Account Settings -> Workspaces
Select a workspace and go to Members->Invite new members
Select a member to invite and click on Next to go to the invite message view.
Delete the default welcome message text.
Verify that the message text remains empty and does not come back.

@tgolen BZ Checklist done

@tgolen The payment step is completed as mentioned here.
Can we close this issue if nothing else is pending? Thanks.

Yep, we should be good here now. I'll close it out. Thanks!

Test created and linked above, so closing this issue.


[Slider] Value label on secondary color slider has primary contrastText

A Slider with secondary color displays a value label whose color is primary contrastText, not the expected secondary contrastText.

[x] The issue is present in the latest release.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯

As it stands a slider with secondary color displays a value label with text color theme.palette.primary.contrastText. This behavior is fine with the default theme, since both primary and secondary contrastText are white by default, but if primary and secondary contrastText diverge then the results can be unattractive.
Expected Behavior 🤔

A slider with secondary color should display a value label with text color theme.palette.secondary.contrastText.
Steps to Reproduce 🕹
A codesandbox is here.
Steps:

Slider with valueLabelDisplay="on" and color="secondary"
Theme with diverging primary and secondary contrastText, e.g.
const theme = createMuiTheme({ palette: {  primary: {    main: "#FFFFFF"  } } });

Context 🔦
I think the key point is at this line. Color there should be styled separately for primary and secondary sliders, along these lines:
  [`& .${sliderClasses.valueLabelLabel}`]: {
    color: theme.palette.primary.contrastText,
    ...(styleProps.color === 'secondary' && {
      color: theme.palette.secondary.contrastText,
    }),

Your Environment 🌎

`npx @material-ui/envinfo`
  I used Chrome 90.0.4430.93
  System:
    OS: macOS 10.15.7
  Binaries:
    Node: 14.15.5 - /usr/local/bin/node
    Yarn: 1.22.10 - /usr/local/bin/yarn
    npm: 7.5.4 - /usr/local/bin/npm
  Browsers:
    Chrome: 90.0.4430.93
    Edge: Not Found
    Firefox: 88.0.1
    Safari: 14.0.3
  npmPackages:
    @emotion/react: ^11.4.0 => 11.4.0
    @emotion/styled: ^11.0.0 => 11.3.0
    @material-ui/codemod:  5.0.0-alpha.33
    @material-ui/core:  5.0.0-alpha.33
    @material-ui/docs:  5.0.0-alpha.33
    @material-ui/envinfo:  1.1.6
    @material-ui/icons:  5.0.0-alpha.29
    @material-ui/lab:  5.0.0-alpha.33
    @material-ui/private-theming:  5.0.0-alpha.33
    @material-ui/styled-engine:  5.0.0-alpha.26
    @material-ui/styled-engine-sc:  5.0.0-alpha.26
    @material-ui/styles:  5.0.0-alpha.33
    @material-ui/system:  5.0.0-alpha.33
    @material-ui/types:  6.0.0
    @material-ui/unstyled:  5.0.0-alpha.33
    @material-ui/utils:  5.0.0-alpha.33
    @types/react: ^17.0.3 => 17.0.5
    react: ^17.0.1 => 17.0.2
    react-dom: ^17.0.1 => 17.0.2
    styled-components:  5.3.0
    typescript: ^4.1.2 => 4.2.4

@davidfdriscoll Nice catch, do you want to open a PR for this (your suggestion looks good to me)?

@siriwatknp Sounds great. I'll open a PR today with my suggestion.


Bugfix: Fix Component Update Short Circuit Regression

Description
The Core merge missed a check to not apply component updates if you are authoritative (i.e. - sent them yourselves).
This PR fixes this behaviour

How about some tests? :)

Dicussed tests offline - will introduce in a larger, test framework to come soon ™


Add LNTouchDelegate

Background
The LNTouchDelegate that is in the readme file of this project wasn't in the code, I've reimplemented this.
Breaking Changes
There normally shouldn't be any breaking changes.

thanks @brentvvosselen - looks great!  Merging in.


Fix stderr redirect

@jorgemoralespou I tried this branch and it's working well so far. Just one small fix to the line that gets the IP address.

I'm not sure if I should implement the feature like it is here, since as you said only works on linux, I wonder if engineers would happily use oc-cluster for this purpose or if they most likely test always with ephemeral clusters.

It would be useful to me :)

Working on a different PR. Closing this. Changed has been added there.


Update password blade

Thanks for this,
however only 1 line was missing - as passwords will and should not be masked, have pushed up and will release new version shortly


Improve diagrams for Source IP tutorial

The existing diagrams in the Source IP tutorial [preview] were ASCII art.
Use drawings instead (a mixture of MermaidJS and SVG).

This looks great, thanks @sftim !
/lgtm
/approve


(PE-8343) Deprecate Cloud Provisioner in PE 3.8

Cloud provisioner is being deprecated in PE 3.8 and may
be removed entirely in future versions. This commit
adds a warning stating this deprecation.

:+1: after URL change

@ericwilliamson Updated! :)


ts-jest not run typescript test file in monorepo

Issue :
ts-jest not run TypeScript test file in monorepo
Expected behavior :
runs well
Minimal repo :
https://github.com/xiaoxiangmoe/ts-jest-error

@kulshekhar @GeeWee @ahnpnl @huafu Do I need to provide more information to help locate the problem?

@xiaoxiangmoe Just guessing, but shouldn't projects go inside the tsConfig property? It's not a property of ts-jest itself AFAIK ... https://kulshekhar.github.io/ts-jest/user/config/#options

The "projects" tells jest to run twice, once in aaa and another time in bbb. Tho you do not have any jest config file in both of those sub-projects, so it uses defaults, IE the config for js files only. You must have a jest.config.js with environment and preset in both those dirs to have jest uses ts-jest and process typescript files in each sub-project.


Feature: add Raft::ensure_linearizable() to ensure linearizable read

Changelog
Feature: add Raft::ensure_linearizable() to ensure linearizable read
The Raft::is_leader() method does not fully ensure linearizable read
operations and is deprecated in this version. Instead, applications
should use the Raft::ensure_linearizable() method to guarantee
linearizability.
Under the hood, Raft::ensure_linearizable() obtains a ReadIndex from
RaftCore if it remains the leader, and blocks until the state
machine applies up to the ReadIndex. This process ensures that the
application observes all state visible to a preceding read operation.

Fix: #965

Upgrade tip:
Replace Raft::is_leader() with Raft::ensure_linearizable().
This PR implements the very basic requirement proposed in:

#262

This change is

@tvsfx
Please have a look on this approach:)

LogId, on the other hand, invariably represent the order of events.
Right, although I would argue that the fact that the fact that we allow the blank log to be reverted without invalidating the read index suggests that we do not actually care about the order of events in this case, we only care about the order of log entries.

The blank log will be reverted but I believe the invariant still holds:
Just came back here to say this; once I was away from my computer I realized that what I said before is wrong, apologies for the confusion :)
It is fine if the blank log entry gets reverted; a sufficient condition for us to serve the read in a linearizable way is if all committed entries of which we currently don't know that they're committed are applied as well. Only entries from previous terms could have been committed unbeknownst to us. All we need to ensure then is that the read index is high enough, which you did by taking the maximum. So I think this is just a nice optimization over the classical Raft approach!

@drmingdrmer Not sure what you meant with the link to the replication handler. That doesn't prevent the follower from starting an election and becoming a leader before the lease expires, right?

@schreter
This is not about the follower. This is on the leader side:
clock_progress records the earliest timestamp t from which a heartbeat has been granted by a quorum, ensuring that no new leader will be elected until t+lease.
https://github.com/datafuselabs/openraft/blob/14d621ebeea41e8ce20f4f5df82929dd70279533/openraft/src/engine/handler/replication_handler/mod.rs#L170-L174

Yes, that's the deficiency with leader lease. OTOH, I don't think we have any practical problem with it, since clock drift will be likely <<1% on all modern systems, most likely always under RTT.

I agree that it shouldn't matter in most cases. However, our use case is one in which we do not have access to a trustworthy time source, so this implementation is very useful to us.


Clean up tests in packit: replace current mocking with latest ogr

Remove as much mocking/fixtures in packit tests as possible - mocking using flexmock on methods coming from DistGit and Upstream classes
Focus on the real use cases: try to mock as least as possible - use real data.

Please, wait for #425 with this.

@lachmanfrantisek please close this once you're done with your current work

@lachmanfrantisek please close this once you're done with your current work

That's the plan..;-)

Closing since this is already done to some extent: reopen if you want to


major change on Land model

Will add the tutorials back later

For your information, the major changes include the following

Photosynthesis sub-module

add VPD to AirLayers
add p_i (internal CO2) and p_s (surface CO2) calculations
add Q10 based temperature correction in parallel with Arrhenius function
add well watered Vcmax Jmax to use with beta function

PlantHydraulics sub-module

add tree level e_crit calculation
add function to calculate p_crit
add abstractized soil water content related functions
add whole plant hydraulic functions
add temperature correction functions
reduce allocations to speed up

StomataModels sub-module

isolate hydraulics from leaf photosynthesis
add gsw control for canopy layers
add beta functions for empirical models (use with g1 or Vcmax)

CanopyLayers sub-module

refactor CanopyRT module to CanopyLayers
add big leaf model
refactor the functions to reduce mem allocations (speed up by at least 3 times)
add RTDimensins to store array dimensions
add containers to reduce mem allocations

SoilPlantAirContinuum sub-module

refactor code from Yujie's gain risk model
add functions to optimize leaf and other plant traits
set limitation to Vcmax and LAI that are to be optimized
add wind speed calculations

Isolate WaterPhysics and ConstrainedRootSolvers to independent packages (registered)

bors r+

bors r+


PR for configuring clients, especially client variants.

Dear Quarkus-CXF Maintainers,
pls find here a PR for a different approach on configuring of CXF clients:
    @Inject
    @CXF(config = "featured-foo")                      // pick a dedicated client configuration
    GreetingClientWebService featuredWS;

    featuredWS.ping("hello");                               // no change in using a proxy client (of course).

The annotation CXF is optional. If absent configuration properties are taken from the first client configuration matching the SEI, otherwise some meaningful (?) config values are used.
The configuration is almost as before. However, I introduced prefix "quarkus.cxf.client" to make it hopefully less confusing whether a service is published or whether a client is configured. Here's an example:
#   @Inject @CXF(config="foo") GreetingClientWebService myclient;
quarkus.cxf.client."foo".client-endpoint-url=http://localhost:8081/soap/greeting
quarkus.cxf.client."foo".service-interface=io.quarkiverse.it.cxf.GreetingClientWebService

#   @Inject @CXF(config="featured-foo") GreetingClientWebService myclient;
quarkus.cxf.client."featured-foo".client-endpoint-url=http://localhost:8081/soap/greeting
quarkus.cxf.client."featured-foo".service-interface=io.quarkiverse.it.cxf.GreetingClientWebService
quarkus.cxf.client."featured-foo".out-interceptors=io.quarkiverse.it.cxf.MyCxfInterceptor

Please be aware that the configuration key has no meaning any longer. It is nothing more than a logical grouping. Before the key got reused as relative path. The problem with this approach is, that the final client URL is not available by grepping the source code.
There are least two problems though:

The client proxy for  SEI GreetingWebService appears not to be produced via CxfClientProxy. I suspect that doing so will endup in a bean conflict.
If @CXF is absent then one of the matching client configurations is applied. This could be "featured-foo" in the example above. There should  be a more controlled way which configuration is the default for a given SEI. Perhaps by using an extra attribute ".default = true".

thanks for PR, I understand the use case, you want to address.
but why not used @ named annotation instead of a new one ?

but why not used @ named annotation instead of a new one ?

This is perhaps where you come into the game :-)
@Inject
@Named(config = "featured-foo")                      // pick a dedicated client configuration
GreetingClientWebService featuredWS;

Here we refer to a bean named "featured-foo". The problem is that all beans are created at "augmentation" time. At that time however I do not have any information about the current configuration. This is at least my understanding - perhaps I'm wrong.
Thus my workaround so far is to call the producer function with the current InjectionPoint as additional information and let the producer function figure out which config to use.
Agreed @CXF is not pretty. If it can be avoided or replaced then fine with me. Right now it is unclear to me how to do so.
Perhaps https://quarkus.io/guides/cdi-integration#injection_point_transformation is the way to go? It would replace @Named with @CXF internally.

Nice work @wh81752.  Just some thoughts in no specific order:

With introducing a quarkus.cxf.client prefix, would it possibly be cleaner to have a quarkus.cxf.service prefix as well?  We'd of course need to have this documented properly, as we'd be introducing multiple non-backward compatible changes.
I'm not sure whether replacing @Named with @CXF may work well - it may be difficult to distinguish regular @Named annotations that shouldn't be replaced.
In the PR, I see org.wildfly.common.annotation.Nullable in multiple places combined with Optional.ofNullable(foobar) ... just quickly glancing at it, is the @Nullable annotation actually required ... ie. the latter should achieve the same?  If it is indeed redundant, then we can possibly get rid of the @Nullable dependency.
The client docs will need to be updated, would be great if it were part of the PR.

Having said all this, I like the PR overall, and as @dufoli is the main contributor, will leave it to your decision!

Nice work @wh81752. Just some thoughts in no specific order:

Thx. Let me reply on your comments and .. this PR is by no means final. I'm happy to discuss, extend, improve and so on.

The client docs will need to be updated, would be great if it were part of the PR.
Good point, going to add docu as well.

I'm not sure whether replacing @Named with @CXF may work well - it may be difficult to distinguish regular @Named annotations that shouldn't be replaced.

I'm experimenting with that replacement right now.
Btw: Perhaps the name @CXF should be replaced with something more appropriate. Didn't think much about it. Suggestions are welcome.

just quickly glancing at it, is the @Nullable annotation actually required

Technically, @Nullable is not required. It's rather part of my own programming convention:

If a parameter is annotated with @Nullable then it may be null, otherwise it is never null.
@Nullable should be reduced to a minimum
Avoid Optional in (function/method) signatures

Following this style results in much more readable code then using Optional. However, since this is my personal view I have little problem to change if required.

With introducing a quarkus.cxf.client prefix, would it possibly be cleaner to have a quarkus.cxf.service prefix as well?

My main headaches were which of the props are going to be used for configuring a client and which are used for the service to be published. That's why I eventually introduced that new "client" configuration branch.
Although "endpoint" is a quite generic term, I have no problem with that name. I guess it's just a matter of documentation.

Dear All,

The client docs will need to be updated, would be great if it were part of the PR.

Please find updated client docu as well (btw: how to generate and view docu locally via Maven??).
The last update of this PR addresses also issue #182. Let me shortly summarize here how it now looks like (or pls read docu) with an example:
@Application    // or any other CDI scope
public class MySoapClient {

    private boolean logging = ..

    @Inject
    @CXFClient("my-featured-fruitservice-client")
    FruitWebService featuredClientService;                   // (A)

    @Inject
    @CXFClient
    FruitWebService clientService;                                  // (B)

    @Inject
    FruitWebService impl;                                                 // (C)

    @Inject
    @CXFClient("my-featured-fruitservice-client")
    CXFClientInfo featuredClientInfo;                              // (D)

    @Inject
    @CXFClient
    CXFClientInfo clientInfo;                                             // (E)

    public int getCount() {
        System.out.println("using ep: " + this.serviceUrl());
        return (logging ? featuredClientService : clientService).count();
    }

   public String serviceUrl() {
        return (logging ? featuredClientInfo : clientInfo).getEndpointAddress();
   }
}

Notice that I changed @CXF into @CXFClient to have a notation that fits more exactly with the annotation's purpose.
Then  @CXFClient can also be used to inject meta client information as shown in (D) and (E). This can be especially useful when testing clients, i.e. is my client really targeting the webservice I want to target? Or checking that interceptor or feature is really plugged in?
Finally I changed the generated producer classes to not any longer produce a value for injection points like (C). This addresses issue #182. Now the service implementation is injected if around, otherwise CDI complains. Technically only the latter got changed. Before, our generated producer kicked in by injecting a client proxy. The former always worked because quarkus-cxf marks all classes annotated with @WebService automatically as beans.
From a functional point of view I'm rather happy with the current implementation. One thing to change is perhaps that an injected CxfClientInfo instance should be immutable by nature.
However, I'm open for comments and critics ..

How to proceed by now? I propose to first resolve minor code changes (imports, formatting) by updating this PR so that they are gone.
Perhaps later on I suggest to add a link or hint to a Quarkus style guide. In addition it would be good to be able formatting rules into Intellij to avoid such changes. Or to update format rules attached to Maven or sharpen the checks when building.

For coding guidelines https://github.com/quarkusio/quarkus/blob/main/CONTRIBUTING.md#idea-setup
Maybe plugin can hzlp. I do not remember if I install it
https://plugins.jetbrains.com/plugin/13234-quarkus-tools

About named, here is Mongo processor https://github.com/quarkusio/quarkus/blob/main/extensions/mongodb-client/deployment/src/main/java/io/quarkus/mongodb/deployment/MongoClientProcessor.java
Which inject client with named.

Sorry to have so much remark whereas you produce a lot of code. But as maintainer, I have avoid to break things or lost compatibility.

Sorry to have so much remark whereas you produce a lot of code. But as maintainer, I have avoid to break things or lost compatibility.

No problem. Let's just dicuss the PR and let at the pros and cons. As PR creator I see of course only PROS :-) However, there might be also pretty good cons of course.

While further testing I noticed that
@Inject
@CXFClient
CxfClientInfo info;

doesn't work. It went undiscovered cause only one webservice has been present in CxfClientTest. Therefore I added SEI GreetingWebService and two impls (GreetingWebServiceImpl and HelloWebServiceImpl) as well in order to discover potential problems earlier.

I also removed (hopefully) all changes that were purly cosmetic. Also installed  Eclipse Code Formatter Plugin along with Quarkus eclipse-format.xml and eclipse.importorder to be inline with styling.

By impl, you mean the impl of sei on server part, right? Why injecting it?
For me server impl is never injected only use by Vertx handler.

By impl, you mean the impl of sei on server part, right?

Correct. Impl for now means strictly implementation of webservice sei.

Why injecting it? For me server impl is never injected only use by Vertx handler.

Well, it just get's injected if you write this
@Inject
FruitWebService client;

cause there is a build step that turns every class (or interface) annotated with @WebService into a bean.
The business case is injecting impl for the purpose of testing. However, pretty positive that there are other cases where you want the impl and not the proxy.

Hello, sorry I am a bit inactive at the moment but I hope, I will be more active in few weeks. Anyway, @shumonsharif can you review code too.

I will try to take a look this weekend, please stay tuned for a proper review.  Just a quick glance shows there's still quite a bit of cleanup that can and should be done.  From underscores in method names, to renaming variables causing a large number of unnecessary code changes, to even small things like @author tags that don't add much value, my main issue with this PR as of now - is that it deviates quite a bit in terms of consistency with the existing codebase, and thereby makes it very difficult to focus on the more impactful changes that we should be reviewing.

@shumonsharif - thx for reviewing. I will comment and fix mentioned issues soon. Pls stand by.

and please rebase on master ;-)

Really looking forward to this getting merged and released eventually!
One question: With this, will I be able to have multiple clients for the same interface?
In my project we have multiple "vendors" implementing the same webservice interface (or wsdl so to say) and we have to select one of the clients dynamically.
Something like Instance<FruitWebService > would come to mind...
In config we'd then have multiple URLs etc.

One question: With this, will I be able to have multiple clients for the same interface?

@famod - Yes. This use-case has been anticipated. The way it works this way:
@Inject @CXFClient("my-other-fruit-service")
FruitWebService otherFruitService;

where my-other-fruit-service is an arbitrary configuration key where you upfront configured your alternative service.

Something like Instance would come to mind...

Have not tested this yet. Technically it shoud work, however, I guess you need to figure out to whom you are talking then, i.e. what is the particular config behind an instance?

@shumonsharif - All requested changes are done. Could you review again? Or did I miss something?

Hey @wh81752 When I click on the 'Files Changed' tab - I don't see most of the changes I had requested in the initial review, that you had marked resolved?  I know I saw commits for them from you ... just not sure why the PR is not getting updated?

@shumonsharif - This (accidental) formatting changes are killing me. Which IDE are you using? If it happens to be IntelliJ IDEA please be so kind to export format-rules for importing.
Btw, this is my Intellij feature request to solve this matter once and forever: https://intellij-support.jetbrains.com/hc/en-us/requests/3270698    (autodected formatting rules based on current code using AI/machine-learning).

Yeah, I use IntelliJ and I never set up any rules; I don't happen to have the issue you keep having  - I think it may possibly be one of your extensions causing it.  BTW, did you just change the formatting in the last commit, or did you modify the actual behavior?  Is there a reason you moved this out of the if / else block?

@shumonsharif - please export the rules so I can import (even if they are plain standard rules).

Is there a reason you moved this out of the if / else block?

What is the "this"? Don't get it.

https://github.com/quarkiverse/quarkus-cxf/blob/f6a66556175859a0ae8d2016f1a965d18eb99249/deployment/src/main/java/io/quarkiverse/cxf/deployment/QuarkusCxfProcessor.java#L263

@shumonsharif - please export the rules so I can import (even if they are plain standard rules).

I'm happy to export the rules for you, but would that really help?  Both formats (ie. what you had committed and what's in master) are perfectly valid - I believe the issue is not so much the rules ... it's more to do with something in your workspace reformatting everything you touch?  Either way, let's take this up as a separate issue ...

Is there a reason you moved this out of the if / else block?

Just because it is the same statement, whether it is a client or impl interface (code duplication).

I'm happy to export the rules for you, but would that really help? Both formats (ie. what you had committed and what's in master) are perfectly valid - I believe the issue is not so much the rules ... it's more to do with something in your workspace reformatting everything you touch? Either way, let's take this up as a separate issue ...

I reverted back to standard IntelliJ rules and I applied them on all Java code. I still see code changed. It would be really good to have some mechanics in place that do the formatting stuff, so that we can discuss the essentials. I really would like to move things forward now.

Is there a reason you moved this out of the if / else block?

Just because it is the same statement, whether it is a client or impl interface (code duplication).

Aah, gotcha ... I didn't look close enough, I thought the logic was getting impacted.  I am good with the code as it stands currently ... hopefully @dufoli can do one last review and if things look good, he can merge.  Thanks once again @wh81752 , I think this PR addresses many limitations quite nicely.

I will review again but seems goot to merge.
Anyway because of the big change on configuration. I will need to

do a new release just before merging to let the time to test master

and please rebase

@wh81752

Something like Instance would come to mind...

Have not tested this yet. Technically it shoud work, however, I guess you need to figure out to whom you are talking then, i.e. what is the particular config behind an instance?

With javax.enterprise.inject.Instance<T> you can call .select(Annotation... qualifiers), so you'd basically pass over qualifier annotation instances (which are a bit awkward to create, but IIRC there is a helper for that somewhere).
Since @CXFClient already is a qualifier, I suppose you can simply use instances of that annotation. 👍

@wh81752 Great PR! From my point of view (custom) named client are crucial, when having multiple SOAP clients in a project. Since the current configuration assumes a a certain url scheme, which appends the config key at the specified url. E.g.
quarkus.cxf.endpoint."/tracking".client-endpoint-url=https://myserviceUrl
quarkus.cxf.endpoint."/tracking".service-interface=com.acme.Tracking

would result in https://myserviceUrl/tracking.
Unfortunately, this does not working in scenarios, where the multiple services are registered at the "root" path of the host. E.g.
quarkus.cxf.endpoint."/".client-endpoint-url=https://myFirstServiceUrl
quarkus.cxf.endpoint."/".service-interface=com.acme.FirstInterface

quarkus.cxf.endpoint."/".client-endpoint-url=https://mySecondServiceUrl
quarkus.cxf.endpoint."/".service-interface=com.acme.SecondInterface

How to distinguish the configuration for these clients? I would be great to see this in the next release!

@famod and @floriansiepe - glad to hear that this PR appears to be useful. Would you mind to read the client docu of this PR (https://github.com/wh81752/quarkus-cxf/blob/pr/client-config-logic/docs/modules/ROOT/pages/client.adoc) as well? I'm not yet that happy with it. Feel free to share any thoughts.

@famod and @floriansiepe - glad to hear that this PR appears to be useful. Would you mind to read the client docu of this PR (https://github.com/wh81752/quarkus-cxf/blob/pr/client-config-logic/docs/modules/ROOT/pages/client.adoc) as well? I'm not yet that happy with it. Feel free to share any thoughts.

@wh81752 Seems good to me. The only thing which I think could be confusing is the example of fallback values when under the specific name a key does not exists. My thought would be that named cxf properties (just like jdbc datasources) are completely separate units.

@floriansiepe - ahhh, good point:

cxf (client) properties are completely seperate units, i.e. no unit inherits from another unit or other magic.
If you use @CXFClient("foobar") then  unit quarkus.cxf.client."foobar" must exist, otherwise error.

What if you use @CXFClient? Then there is indeed a fallback:

If there is a config unit matching the SEI then that unit is applied, otherwise
some default values (based on @WebService properties) are used.
And what if there are more then one config unit matching a SEI? Then a unit marked as "fallback" will be choosen and error if two units are marked as "fallback" per SEI.

Hmm, looks like I need to reformulate that docu section OR (worse) think again about the design. If something is difficult to explain then its most likely badly designed (sigh).

@wh81752 Hm, I also read that bit with the default configuration and now I'm not sure anymore whether what I wrote about Instance (https://github.com/quarkiverse/quarkus-cxf/pull/181#issuecomment-831553334) will work here.
I'll try to conduct a test with you branch over the weekend, this use case is important for me.
As for the design: I generally like conventions over configuration but maybe something like that would make it more obvious?
quarkus.cxf.client."my-featured-fruitservice-client".inherits=my-fruitservice-client

But this can become tricky to validate.
Btw, are global defaults possible? E.g.:
quarkus.cxf.client.defaults.in-interceptors=...

or:
quarkus.cxf.client.in-interceptors=...

Options are endless... 😁

Hello, mono client as a default producer and a named producer... You can see how it worked but it is great to have default config when not named client is injected

But it can be handled after release... So maybe done later

Can you do git rebase master - i
Then squash all commit by adding s instead of p for all line except the first one.
To avoid all merge issue you can start to squash first by doing git rebase - i head~23 and squash

OK I will do it


APC40 Mk2

Adding MIDI Support For APC40 Mk2  Given the time since I tested this.. i just re-tested to make sure it still functioned as expected and was able set it as input and manipulate buttons, knobs and faders as expected.

There's something wrong with this PR.
It says 0 file changed

There's something wrong with this PR.
It says 0 file changed

Ok .. sorry .. this was merged previously.  Not sure why it still shows up in my log .. yay git.

Ok .. sorry .. this was merged previously.  Not sure why it still shows up in my log .. yay git.


BatchSpanProcessor exporter not interrupted test is flaky

This test fails intermittently (both in local runs and on CI). We should fix it.
  1) Failure:
OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor::export timeout::normally#test_0001_exporter is not interrupted [/home/circleci/project/sdk/test/opentelemetry/sdk/trace/export/batch_span_processor_test.rb:227]:
Expected: :not_interrupted
  Actual: :called

Looks like this issue was fixed by deleting the test in 031eb4d1271455775de613cbdc6a10b6b647aa01?


Bottleneck distance between repeated intervals = 0

The code below should produce a bottleneck distance of 0.5, but it outputs 0.
Any number of repeated intervals (but different between G and H) has the same issue.
import numpy as np
import persim
G= np.array([[ 0,  1], [0,1]])
H= np.array([[ 0,  1]])
print(persim.bottleneck(G, H))

Thank you so much for bringing this to our attention.  I will try to figure
out what's going on as soon as I can, though I am in a crunch with remote
teaching at the moment.
In the meantime, you may want to check out hera:
https://bitbucket.org/grey_narn/geom_bottleneck/src/master/
Best,
Chris
On Wed, Nov 18, 2020 at 8:40 AM winsy17<EMAIL_ADDRESS>wrote:

The code below should produce a bottleneck distance of 0.5, but it outputs
0.
Any number of repeated intervals (but different between G and H) has the
same issue.
import numpy as np
import persim
G= np.array([[ 0, 1], [0,1]])
H= np.array([[ 0, 1]])
print(persim.bottleneck(G, H))
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/scikit-tda/persim/issues/44, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJWDZRR7WYTADSJY62HGDDSQPFF5ANCNFSM4TZ7QWPQ
.

Hey, you probably moved on from this a while ago, but my pandemic teaching is finally done, and I fixed this.  I'll push an official package later tonight, and you can let me know if you're still having any issues


fix: [AAP-26461] Disallow null organization id for project update

@jshimkus-rh This seems to be similar for DE https://github.com/ansible/eda-server/blob/3c68bc2e64254c93fd6b2e74016705375d18d579/src/aap_eda/api/serializers/decision_environment.py#L45 Should we fix both of them Project/Decision Environment

@jshimkus-rh This seems to be similar for DE
https://github.com/ansible/eda-server/blob/3c68bc2e64254c93fd6b2e74016705375d18d579/src/aap_eda/api/serializers/decision_environment.py#L45
Should we fix both of them Project/Decision Environment

@mkanoor @lgalis Looked at the controller UI and found that organization is only required for projects.  I'll query and see, but at the moment DE appears to be correct.

@mkanoor I'm merging this change as it has the necessary approvals.  We have another jira  for the other models and I'll put out a PR for that when/if we get blocker approval.


Tooltip can render outside of the page

This makes it impossible to read what's on it

https://github.com/multinet-app/multilink/blob/3bea594ddd4e3598a0dd79ad1aa85c38b036e9c1/src/components/MultiLink.vue#L215


handbrake: build against ffmpeg with custom patches

Description of changes
The Handbrake project carries a set of ffmpeg patches required for things like proper subtitle timing. This change builds handbrake against a patched ffmpeg as its maintainers require.
See: https://github.com/HandBrake/HandBrake/issues/4029
Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

Hi @Anton-Latukha @wmertens, any thoughts on this? I know it's another ffmpeg build, but that seems to be upstream's explicit intent. As a user, it is nice to have properly timed subtitles again.

This makes a lot of sense. We are doing something similar for kodi as well, so the pattern as such is fine and of course if recommended by upstream, thhen this should definitely go in.
I am not going to be able to test this any time - have you tried to actually encode anything @acowley ?

Yes, @peterhoeg, I have used it, and this change fixes the subtitle timing issue mentioned in the upstream issue.


chore: migrate TagSelector story snapshots with effects on cypress side

FX-2845
Description
Migrate Dropdown stories with effects on cypress side
How to test

code review, green CI and approving Happo would be enough

Development checks

Add changeset according to guidelines (if needed)
Read CONTRIBUTING.md and Component API principles
Annotate all props in component with documentation
Create examples for component
Ensure that deployed demo has expected results and good examples
[x] Ensure that all PR checks are green
Ensure the changed/created components have not caused accessibility issues. How to use accessibility plugin in storybook.
[x] Self reviewed
[x] Covered with tests

Breaking change

codemod is created and showcased in the changeset
test alpha package of Picasso in StaffPortal

PR commands

List of available commands:

@toptal-bot run all - Run whole pipeline
@toptal-bot run build - Check build
@toptal-bot run deploy:documentation - Deploy documentation
@toptal-bot run package:alpha-release - Release alpha version

PR Review Guidelines

When to approve? ✅
You are OK with merging this PR and

You have no extra requests.
You have optional requests.

Add nit: to your comment. (ex. nit: I'd rename this variable from makeCircle to getCircle)

When to request changes? ❌
You are not OK with merging this PR because

Something is broken after the changes.
Acceptance criteria is not reached.
Code is dirty.

When to comment (neither ✅ nor ❌)
You want your comments to be addressed before merging this PR in cases like:

There are leftovers like unnecessary logs, comments, etc.
You have an opinionated comment regarding the code that requires a discussion.
You have questions.

How to handle the comments?

An owner of a comment is the only one who can resolve it.
An owner of a comment must resolve it when it's addressed.
A PR owner must reply with ✅ when a comment is addressed.

I think for Custom label rendering screenshot it would make more sense to take a screenshot with hovered link (because this is what actually distinguishes this example from others):
Probably the desired screenshot:

The screenshot now:

Missing x icon, to remove the item, in this screenshot:

This is because it is using a custom label and if you check out the LinkTag, you will see that it is a custom implementation. So, there shouldn't be a remove icon for that tag. If you think this customization is not necessary, we can discuss.


Support creating release PR when release.yaml is empty

Following what was done with the other hosted providers, edit the update-rancher-charts script to support creating a release PR against rancher/charts when release.yaml is empty, since this file is cleaned periodically.

Fixed and merged in https://github.com/rancher/aks-operator/pull/245


Do not recommend creating long lived credentials for Github Actions

This is no longer required and I'd love to not see new projects start off using this legacy approach.  AWS + Github can auth through OIDC
Article explaining what I'm talking about:
https://awsteele.com/blog/2021/09/15/aws-federation-comes-to-github-actions.html
Example cfn
Parameters:
  FullRepoName:
    Type: String
    Default: <full-repo-name>
Resources:
  Role:
    Type: 'AWS::IAM::Role'
    Properties:
      RoleName: github
      ManagedPolicyArns:
        - 'arn:aws:iam::aws:policy/AdministratorAccess'
      AssumeRolePolicyDocument:
        Statement:
          - Effect: Allow
            Action: 'sts:AssumeRoleWithWebIdentity'
            Principal:
              Federated: !Ref GithubOidc
            Condition:
              StringLike:
                'token.actions.githubusercontent.com:sub': !Sub 'repo:${FullRepoName}:*'
  GithubOidc:
    Type: 'AWS::IAM::OIDCProvider'
    Properties:
      Url: 'https://token.actions.githubusercontent.com'
      ThumbprintList:
        - 6938fd4d98bab03faadb97b34396831e3780aea1
      ClientIdList:
        - "sts.amazonaws.com"
Outputs:
  Role:
    Value: !GetAtt Role.Arn

Example step in github
      - name: Configure AWS credentials
        uses: aws-actions/configure-aws-credentials@v1
        with:
          role-to-assume: <role>
          aws-region: us-east-1

That's great! Easier is definitely better :)
cc @tbeseda, could you verify this will work for Arc?
I'd definitely be open to a PR for this if it works well :)

I considered a PR but I imagine you'd want to would want to figure out how to do some of this stuff automatically (and should maybe be handled in arc?) so figured I'd leave it up to you all for design

cc @tbeseda, could you verify this will work for Arc?

Hey, yeah this definitely works 👍
I created a test repo here https://github.com/tbeseda/arc-gha-aws-oidc
The deployed app is live here https://b5haybpklc.execute-api.us-west-2.amazonaws.com/ (not Remix, just a Node fn)

Easier is definitely better :)

This approach is great, IMO. but I'm not sure how to express the process to the developer. It involves creating a couple IAM resources; probably easiest to do by deploying a CloudFormation stack (like @thdxr's example above), which can be done from the AWS Console or with the aws CLI.
I'll talk to folks on the Arc team to see how this step could be streamlined for a grunge-stack user.

I took the approach of setting up a one-time GitHub actions job in the repo that performs the bootstrapping.
The solution looks something like this.

Create a new project with grunge-stack, the GitHub workflow is already there.
Trigger the workflow manually by entering credentials that have privileges to create OIDC providers.
Store use the role to assume the creds in the deploy actions

Source: https://dev.to/simonireilly/secure-aws-cdk-deployments-with-github-actions-3jfk
I've done so with the AWS CDK but that just makes cloudformation under the hood :+1:


Added render_delay option

Need the option to increase the time before the script will take an image from rendered browser page.
Because chart wasn't rendered completely in default 1sec delay.

thank you!

@skyronic
you are welcome