Add sample traffic conformance tests

It seems like input.yaml is a good place to put VirtualServices, but we may need a more structured access to them (to wait for Envoy to be ready); Perhaps we should parse input on load and remarshal to YAML when passing to Galley?
I ended up doing weird things for echo calls to ignore target component (eg. when I need to test VirtualService), but I'm not sure what's the right direction to improve it
The Constraints thing is named in a quite generic way, but doesn't feel like it; do you intend to have some generic constraint code or have manual implementations for each data type?

WIP, but not having it in title will hopefully help with somebody looking at it..
This is on top of http://go/gh/istio/istio/pull/15003, please ignore env/istio.go changes.
[x] Networking
[x] Test and Release

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

Needs approval from an approver in each of these files:

OWNERS
pkg/OWNERS

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

Hi @qfel. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Seems reasonable to me
@ozevren do you want to take a quick pass through as well?

What about the questions from the PR message? Some of the things here seem quite awkward, but I'm not sure how to do them better. Let me know once you think it's good for submitting, I'll remove the WIP gomodule commit.

I wonder, maybe we should just write code to serialize and deserialize gomega matchers instead of having constraint.Constraints? I haven't used it, but it seems like both gomega is trying to solve the same problem (declarative assertions) and just lacks serialization?

It seems like input.yaml is a good place to put VirtualServices, but we may need a more structured access to them (to wait for Envoy to be ready); Perhaps we should parse input on load and remarshal to YAML when passing to Galley?

Can we structure the driver code to be eventually consistent? (similar to gomega.Eventually/Consistently like model). This is probably the simplest way to make these tests robust.

I ended up doing weird things for echo calls to ignore target component (eg. when I need to test VirtualService), but I'm not sure what's the right direction to improve it
I'll take a look at this soon.

The Constraints thing is named in a quite generic way, but doesn't feel like it; do you intend to have some generic constraint code or have manual implementations for each data type?

I am not sure exactly what part you're thinking of, but I'd say yes, over time we can add additional constraints/evaluators here. For example, I am considering using CUE (https://github.com/cuelang) as a way to express constraints, in addition to structpath. This will allow us to experiment and find the right constraint description model.

I don't think gomega assertions are enough. The ones they have are relatively easy to implement anyways. The harder ones are the structural ones which they have very little support for (.e. gomega.Egual)

Can we structure the driver code to be eventually consistent? (similar to gomega.Eventually/Consistently like model). This is probably the simplest way to make these tests robust.

 I don't see any difference in current approach from the MCP part.
BTW should I create Pilot only when needed, or at the very beginning like right now (even if the stage doesn't need pilot)?

Can we structure the driver code to be eventually consistent? (similar to gomega.Eventually/Consistently like model). This is probably the simplest way to make these tests robust.

 I don't see any difference in current approach from the MCP part.

MCP part uses WaitForSnapshotOrFail which will repeated poll Galley until the predicate function succeeds. We can do the same for traffic validation.

BTW should I create Pilot only when needed, or at the very beginning like right now (even if the stage doesn't need pilot)?

I think the current model (creating Pilot up top) is the right thing to do.

MCP part uses WaitForSnapshotOrFail which will repeated poll Galley until the predicate function succeeds. We can do the same for traffic validation.

I'm using WaitForConfigOrFail to wait for the right Envoy config. Do you mean to repeat the actual traffic  multiple times on failure (possibly instead of WaitForConfigOrFail)? Why would waiting for the right config not suffice, eg. can Envoy config go back in time? Are you worried echo pods may not be up yet  (why not wait for them)? It seems like something that would make testing harder: failures would take a long time or timeout and you still need a good predicate to test readiness (otherwise the test is flaky and lies when CPU is busy).

@qfel: PR needs rebase.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: qfel
To complete the pull request process, please assign geeknoid
You can assign the PR to them by writing /assign @geeknoid in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS
pkg/OWNERS

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

Also exposed ForwardEcho as it seems a much saner way to simulate arbitrary traffic.

MCP part uses WaitForSnapshotOrFail which will repeated poll Galley until the predicate function succeeds. We can do the same for traffic validation.

I'm using WaitForConfigOrFail to wait for the right Envoy config. Do you mean to repeat the actual traffic multiple times on failure (possibly instead of WaitForConfigOrFail)? Why would waiting for the right config not suffice, eg. can Envoy config go back in time? Are you worried echo pods may not be up yet (why not wait for them)? It seems like something that would make testing harder: failures would take a long time or timeout and you still need a good predicate to test readiness (otherwise the test is flaky and lies when CPU is busy).

Waiting for the config might work, but it is prone to go out of sync as we change the config generation model. Looking at traffic only is based purely on behavior. Most developers will not pay attention to this mechanism, so it will be a point of playing-catchup.

It seems like something that would make testing harder: failures would take a long time or timeout and you still need a good predicate to test readiness (otherwise the test is flaky and lies when CPU is busy).

I don't think this will make test flaky. If anything, repeated attempts and looking at results across multiple attempts improve the test reliability. The cost of making additional traffic attempts will be in order of 10s/100s of ms.

Waiting for the config might work, but it is prone to go out of sync as we change the config generation model. Looking at traffic only is based purely on behavior. Most developers will not pay attention to this mechanism, so it will be a point of playing-catchup.

It seems to me updating a test when you update tested code is a fair thing to do. Sure, the more independent the test from implementation the better, but there are limits. Aren't presubmits supposed to solve the exact problem of devs not noticing a failing test? Are significant Envoy config changes even common?

I don't think this will make test flaky. If anything, repeated attempts and looking at results across multiple attempts improve the test reliability. The cost of making additional traffic attempts will be in order of 10s/100s of ms.

But you have to delay between each attempt to give the system time to initialize. How do you know the test failed instead of timed out (inconclusive)? There is no good timeout, people's machines have varying computing power available, and K8s itself has poor startup properties. Making the test take ridiculously long just to make sure it's not a flake seems like a terrible dev experience.

Waiting for the config might work, but it is prone to go out of sync as we change the config generation model. Looking at traffic only is based purely on behavior. Most developers will not pay attention to this mechanism, so it will be a point of playing-catchup.

It seems to me updating a test when you update tested code is a fair thing to do. Sure, the more independent the test from implementation the better, but there are limits. Aren't presubmits supposed to solve the exact problem of devs not noticing a failing test? Are significant Envoy config changes even common?

I don't know how multi-repo will play out. My guess is, we will have a "Pilot" repo with minimal tests and a conformance tests will be part of a larger repo that has a dependency on Pilot repo. Unless we can come up with a way to run such conformance tests directly against a "Pilot" repo, it will be a point of catch up.

I don't think this will make test flaky. If anything, repeated attempts and looking at results across multiple attempts improve the test reliability. The cost of making additional traffic attempts will be in order of 10s/100s of ms.

But you have to delay between each attempt to give the system time to initialize. How do you know the test failed instead of timed out (inconclusive)? There is no good timeout, people's machines have varying computing power available, and K8s itself has poor startup properties. Making the test take ridiculously long just to make sure it's not a flake seems like a terrible dev experience.

Why does the system need to initialize? The repeated portion is at the edge, where the actual traffic is generated. There is no point redeploying components as part of the retry. Or am I missing something?

Why does the system need to initialize? The repeated portion is at the edge, where the actual traffic is generated. There is no point redeploying components as part of the retry. Or am I missing something?

You might have deployed everything you need to, but it doesn't mean it's ready. Pods may be still initializing, Envoy config may not be fully propagated yet. Till all of that happens, testing traffic doesn't tell you anything (well, if it succeeds then it's likely a poor test). If you retry sending traffic for 5 minutes and it still fails, it doesn't mean something's broken. Maybe something is still starting up, you don't know that just because traffic doesn't flow.
Once everything is ready, the traffic must flow or there is a bug, so there is no need to retry.
So my concern is, if you just retry the traffic for some fixed amount of time, the test will be unable to report majority of errors (timing out with inconclusive answer instead). If you are able to wait for some kind of final system state to perform a conclusive test, then inconclusive answers should be much more rare (indicating a problem with the wait algorithm, or the system is genuinely slow to start).
Of course waiting for a "final" state may be tricky, but it seems like simply waiting for all virtual hosts to be there is a practical compromise. Ideally we would wait for Pilot to process all changes, ask it for the last Envoy config version and wait for it to appear in all sidecars. Though I suspect this would require adding some code in Pilot to allow doing that.

On Wed, Jul 3, 2019 at 11:32 AM Piotr Kufel<EMAIL_ADDRESS>wrote:

Why does the system need to initialize? The repeated portion is at the
edge, where the actual traffic is generated. There is no point redeploying
components as part of the retry. Or am I missing something?
You might have deployed everything you need to, but it doesn't mean it's
ready. Pods may be still initializing, Envoy config may not be fully
propagated yet. Till all of that happens, testing traffic doesn't tell you
anything (well, if it succeeds then it's likely a poor test). If you retry
sending traffic for 5 minutes and it still fails, it doesn't mean
something's broken. Maybe something is still starting up, you don't know
that just because traffic doesn't flow.
We already have ready checks for most of this (Pods, services) in place
for most components. These are well defined (established, stable &
non-Istio) things we can and should check already. The retry scope is
specifically to cover the flow applying config to having it appear as
behavior at the proxy.

Once everything is ready, the traffic must flow or there is a bug, so
there is no need to retry.

This is not necessarily true. As an example, kube-dns is a separate system
that will independently get updated.
So my concern is, if you just retry the traffic for some fixed amount of

time, the test will be unable to report majority of errors (timing out with
inconclusive answer instead). If you are able to wait for some kind of
final system state to perform a conclusive test, then inconclusive answers
should be much more rare (indicating a problem with the wait algorithm, or
the system is genuinely slow to start).

The max time to run the test would be fixed, but detection of healthy
traffic could be quite fast. It should not be hard to drive a (relatively)
large volume of traffic in a comparatively short amount of time and look
for convergence. That is something that will need to be done .anyways, for
things like fault injection or traffic splitting.

Of course waiting for a "final" state may be tricky, but it seems like
simply waiting for all virtual hosts to be there is a practical compromise.
Ideally we would wait for Pilot to process all changes, ask it for the last
Envoy config version and wait for it to appear in all sidecars. Though I
suspect this would require adding some code in Pilot to allow doing that.

Bear in mind that there are other systems that needs to be developed here
as well. Telemetry and security are similar examples. Having "is this
ready" checks that depend on understanding of system internals will also
need to come up with their own practicalities. A system that is built on
"is this predicate hold true"

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/pull/15172?email_source=notifications&email_token=AECHYI6PL2HN5WCP77UVLDTP5TWFTA5CNFSM4H3WKN4KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZFKH3Y#issuecomment-508208111,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AECHYI2GWJDXY33F35TOTSDP5TWFTANCNFSM4H3WKN4A
.

I'd argue waiting for kube-dns could be part of what the test is doing. Though I agree multiple things of that kind might end up adding too much complexity. Actually I want to add support for host aliases later anyway, we need it to test virtual services that don't match services, we could use that to remove the dependency on DNS updates if need be.
What timeout should I use for the (repeated) traffic test? Timeout for the entire go test invocation will be likely too much (10 minutes I recall?).

Also, it seems your intention is to reuse conformance test loading code (since you're worried about dependencies), but I'm not sure how practical that is if it stays a part of the bigger repo - on my side it's easier to copy-paste it than try to get the entire repo and maintain it's parts independently (like MCP and conformance). Not that it hurts though.

Also, it seems your intention is to reuse conformance test loading code (since you're worried about dependencies), but I'm not sure how practical that is if it stays a part of the bigger repo - on my side it's easier to copy-paste it than try to get the entire repo and maintain it's parts independently (like MCP and conformance). Not that it hurts though.

We have a repo for moving test framework related code to, but we haven't started doing the work yet. So the parsing & core framework code will go there. It is also simple hygiene. Having a small amount of code duplicated for being able to parse a file format without pulling in a whole ton of dependencies should be pretty reasonable, no?

We have a repo for moving test framework related code to, but we haven't started doing the work yet. So the parsing & core framework code will go there. It is also simple hygiene. Having a small amount of code duplicated for being able to parse a file format without pulling in a whole ton of dependencies should be pretty reasonable, no?

I'm not opposed, just wanted to point out that the import dependency hygiene may have little of the desired impact unless the entire thing is pulled out to separate repo. Seems that's the plan, so my comments are obsolete.
Once you pick the timeout formula I can add a loop over part of the test and should be good to submit?

I think there needs to be two modes for timeout:

First detected success wins: This one should have a relatively small, fixed timeout. 1 minute seems reasonable to start with. We can also make this configurable through command-line flags.
Percentage traffic target over duration. This probably needs to have a couple of parameters I can think of: warmup/propagation allowance time, minimum duration to run, and timeout duration. The first two should probably be configurable through the test, with a reasonable default. I'd say 1 second, 20 second, 1 minute might be good values to start with, though I am sure this will be highly subject to debate and experimentation.

More or less done. No flags in hope tests can be run without too much thinking (but it's easy to tweak the parameters in the source).

pkg/test/util/retry
On Wed, Jul 17, 2019 at 1:40 PM Piotr Kufel<EMAIL_ADDRESS>wrote:

@qfel commented on this pull request.
In tests/integration/conformance/conformance_test.go
https://github.com/istio/istio/pull/15172#discussion_r304631105:

	}

	caller := services[call.Caller]

	if !ready[call.Caller] && false {

		t.Logf("Waiting for sidecar(s) for %s to contain domains: %s", call.Caller, strings.Join(vHosts, ", "))

		for _, w := range caller.WorkloadsOrFail(t) {

			w.Sidecar().WaitForConfigOrFail(t, domainAcceptFunc(vHosts))

		}

		ready[call.Caller] = true

	}

	u, err := url.Parse(call.URL)

	if err != nil {

		t.Fatalf("Parse call URL: %v", err)

	}

	workload := caller.WorkloadsOrFail(t)[0]

	validateWithRedo(t, func(ctx context.Context) bool {

tests/util/retry.go, pkg/test/util/retry/retry.go or doesn't matter?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/pull/15172?email_source=notifications&email_token=AECHYI62CYFSB32LRVWZGKTP757T5A5CNFSM4H3WKN4KYY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOB6Y3EHA#discussion_r304631105,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AECHYI7ZLDNSKSUAX5TIZ5TP757T5ANCNFSM4H3WKN4A
.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: ozevren, qfel
To complete the pull request process, please assign geeknoid, mandarjog
You can assign the PR to them by writing /assign @geeknoid @mandarjog in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS
pkg/OWNERS [ozevren]
pkg/bootstrap/OWNERS

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

@qfel: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-istioctl-k8s-presubmit-tests-master
3efa107e285f92aa690824cdfb3c4d19708fe978
link
/test integ-istioctl-k8s-presubmit-tests-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@qfel: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-istioctl-k8s-presubmit-tests-master
3efa107e285f92aa690824cdfb3c4d19708fe978
link
/test integ-istioctl-k8s-presubmit-tests-master

integ-new-install-k8s-presubmit-tests-master
3efa107e285f92aa690824cdfb3c4d19708fe978
link
/test integ-new-install-k8s-presubmit-tests-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@qfel: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-istioctl-k8s-presubmit-tests-master
3efa107e285f92aa690824cdfb3c4d19708fe978
link
/test integ-istioctl-k8s-presubmit-tests-master

integ-new-install-k8s-presubmit-tests-master
3efa107e285f92aa690824cdfb3c4d19708fe978
link
/test integ-new-install-k8s-presubmit-tests-master

integ-telemetry-k8s-presubmit-tests-master
3efa107e285f92aa690824cdfb3c4d19708fe978
link
/test integ-telemetry-k8s-presubmit-tests-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@qfel: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-istioctl-k8s-presubmit-tests-master
3efa107e285f92aa690824cdfb3c4d19708fe978
link
/test integ-istioctl-k8s-presubmit-tests-master

integ-new-install-k8s-presubmit-tests-master
3efa107e285f92aa690824cdfb3c4d19708fe978
link
/test integ-new-install-k8s-presubmit-tests-master

integ-telemetry-k8s-presubmit-tests-master
3efa107e285f92aa690824cdfb3c4d19708fe978
link
/test integ-telemetry-k8s-presubmit-tests-master

istio-codecov-master
3efa107e285f92aa690824cdfb3c4d19708fe978
link
/test istio-codecov-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@qfel: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-istioctl-k8s-presubmit-tests-master
3efa107e285f92aa690824cdfb3c4d19708fe978
link
/test integ-istioctl-k8s-presubmit-tests-master

integ-new-install-k8s-presubmit-tests-master
3efa107e285f92aa690824cdfb3c4d19708fe978
link
/test integ-new-install-k8s-presubmit-tests-master

integ-telemetry-k8s-presubmit-tests-master
3efa107e285f92aa690824cdfb3c4d19708fe978
link
/test integ-telemetry-k8s-presubmit-tests-master

istio-codecov-master
3efa107e285f92aa690824cdfb3c4d19708fe978
link
/test istio-codecov-master

integ-security-k8s-presubmit-tests-master
3efa107e285f92aa690824cdfb3c4d19708fe978
link
/test integ-security-k8s-presubmit-tests-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

New changes are detected. LGTM label has been removed.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: ozevren, qfel
To complete the pull request process, please assign geeknoid
You can assign the PR to them by writing /assign @geeknoid in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS
pkg/OWNERS [ozevren]

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

/test all

@qfel: Cannot trigger testing until a trusted user reviews the PR and leaves an /ok-to-test message.

In response to this:

/test all

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

/ok-to-test

@qfel: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-new-install-k8s-presubmit-tests-master
3efa107e285f92aa690824cdfb3c4d19708fe978
link
/test integ-new-install-k8s-presubmit-tests-master

integ-telemetry-k8s-presubmit-tests-master
3efa107e285f92aa690824cdfb3c4d19708fe978
link
/test integ-telemetry-k8s-presubmit-tests-master

integ-security-k8s-presubmit-tests-master
3efa107e285f92aa690824cdfb3c4d19708fe978
link
/test integ-security-k8s-presubmit-tests-master

istio-codecov-master
3295d15ba812b73bd5abcae50d72c72b48e8e783
link
/test istio-codecov-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@qfel: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-new-install-k8s-presubmit-tests-master
3efa107e285f92aa690824cdfb3c4d19708fe978
link
/test integ-new-install-k8s-presubmit-tests-master

integ-security-k8s-presubmit-tests-master
3efa107e285f92aa690824cdfb3c4d19708fe978
link
/test integ-security-k8s-presubmit-tests-master

istio-codecov-master
3295d15ba812b73bd5abcae50d72c72b48e8e783
link
/test istio-codecov-master

istio-unit-tests-master
3295d15ba812b73bd5abcae50d72c72b48e8e783
link
/test istio-unit-tests-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@qfel: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-security-k8s-presubmit-tests-master
3efa107e285f92aa690824cdfb3c4d19708fe978
link
/test integ-security-k8s-presubmit-tests-master

istio-codecov-master
3295d15ba812b73bd5abcae50d72c72b48e8e783
link
/test istio-codecov-master

istio-unit-tests-master
3295d15ba812b73bd5abcae50d72c72b48e8e783
link
/test istio-unit-tests-master

integ-new-install-k8s-presubmit-tests-master
3295d15ba812b73bd5abcae50d72c72b48e8e783
link
/test integ-new-install-k8s-presubmit-tests-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@qfel: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-security-k8s-presubmit-tests-master
3efa107e285f92aa690824cdfb3c4d19708fe978
link
/test integ-security-k8s-presubmit-tests-master

istio-codecov-master
3295d15ba812b73bd5abcae50d72c72b48e8e783
link
/test istio-codecov-master

istio-unit-tests-master
3295d15ba812b73bd5abcae50d72c72b48e8e783
link
/test istio-unit-tests-master

integ-new-install-k8s-presubmit-tests-master
3295d15ba812b73bd5abcae50d72c72b48e8e783
link
/test integ-new-install-k8s-presubmit-tests-master

integ-mixer-k8s-presubmit-tests-master
3295d15ba812b73bd5abcae50d72c72b48e8e783
link
/test integ-mixer-k8s-presubmit-tests-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: ozevren, qfel
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

pkg/OWNERS [ozevren]
tests/integration/conformance/OWNERS [ozevren]

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

@qfel: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

istio-racetest-master
7c0e68f76c4739a4984b1aaae1d903e904617926
link
/test istio-racetest-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

/lgtm
/approve

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: andraxylia, ozevren, qfel
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

pkg/OWNERS [ozevren]
tests/integration/conformance/OWNERS [ozevren]

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


Update scalafmt-core to 2.4.2

Updates org.scalameta:scalafmt-core from 2.3.2 to 2.4.2.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scalameta", artifactId = "scalafmt-core" } ]

labels: library-update, semver-minor

Codecov Report

Merging #791 into develop will increase coverage by 0.14%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           develop     #791      +/-   ##
===========================================
+ Coverage    89.24%   89.39%   +0.14%
===========================================
  Files          115      115
  Lines         9011     9011
  Branches       345      345
===========================================
+ Hits          8042     8055      +13
+ Misses         969      956      -13

Impacted Files
Coverage Δ

...n/scala/com/twitter/algebird/SuccessibleLaws.scala
78.57% <0%> (-14.29%)
:arrow_down:

...scala/com/twitter/algebird/PredecessibleLaws.scala
73.33% <0%> (-13.34%)
:arrow_down:

.../main/scala/com/twitter/algebird/BloomFilter.scala
94.24% <0%> (+1.76%)
:arrow_up:

.../main/scala/com/twitter/algebird/Successible.scala
91.66% <0%> (+4.16%)
:arrow_up:

...src/main/scala/com/twitter/algebird/Interval.scala
85.21% <0%> (+4.34%)
:arrow_up:

...in/scala/com/twitter/algebird/scalacheck/Gen.scala
100% <0%> (+9.09%)
:arrow_up:

.../scala/com/twitter/algebird/monad/Trampoline.scala
53.33% <0%> (+33.33%)
:arrow_up:

Continue to review full report at Codecov.

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

Codecov Report

Merging #791 into develop will increase coverage by 0.35%.
The diff coverage is 70.89%.

@@             Coverage Diff             @@
##           develop     #791      +/-   ##
===========================================
+ Coverage    89.24%   89.59%   +0.35%
===========================================
  Files          115      115
  Lines         9011     8912      -99
  Branches       345      345
===========================================
- Hits          8042     7985      -57
+ Misses         969      927      -42

Impacted Files
Coverage Δ

...src/main/scala/com/twitter/algebird/Interval.scala
81.73% <0.00%> (+0.86%)
:arrow_up:

.../main/scala/com/twitter/algebird/BloomFilter.scala
94.24% <0.00%> (+1.76%)
:arrow_up:

.../main/scala/com/twitter/algebird/Successible.scala
91.66% <0.00%> (+4.16%)
:arrow_up:

...in/scala/com/twitter/algebird/scalacheck/Gen.scala
100.00% <0.00%> (+9.09%)
:arrow_up:

.../scala/com/twitter/algebird/monad/Trampoline.scala
57.14% <0.00%> (+37.14%)
:arrow_up:

Continue to review full report at Codecov.

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


[feat]: multi optimizer support and freeze gradient

add multi optimizer support, such as ftrl optimizer for the wide part and adam_optimize for the deep part;
add freeze gradient support.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.杨熙 seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Somewhat saner cross-compiling through bootstrapping

#21915 got closed by mistake due to a force push. @shlevy I wrote docs so this should be ready to go unless we want someone to review the docs.
The docs have some explicit "to be written" sections. I consider that fine, and the docs rightfully WIP, because some stuff will change with future PRs and there is little point writing it just to rewrite it.

@Ericson2314 Besides docs has anything changed since my last review?

@shlevy just docs and a tiny bit of comment formatting.

Travis is backlogged, but I ran (the normal) tests locally and they pass.

:LGTM:


Compared to taichi

Hello!
Would it be possible to provide a comparison between this project and taichi?

https://github.com/taichi-dev/taichi

For starters, here's the example script for both projects.
Warp
import warp as wp
import numpy as np

wp.init()

num_points = 1024
device = "cuda"

@wp.kernel
def length(points: wp.array(dtype=wp.vec3),
           lengths: wp.array(dtype=float)):

    # thread index
    tid = wp.tid()

    # compute distance of each point from origin
    lengths[tid] = wp.length(points[tid])

# allocate an array of 3d points
points = wp.array(np.random.rand(num_points, 3), dtype=wp.vec3, device=device)
lengths = wp.zeros(num_points, dtype=float, device=device)

# launch kernel
wp.launch(kernel=length,
          dim=len(points),
          inputs=[points, lengths],
          device=device)

print(lengths)

Taichi
# python/taichi/examples/simulation/fractal.py

import taichi as ti

ti.init(arch=ti.gpu)

n = 320
pixels = ti.field(dtype=float, shape=(n * 2, n))

@ti.func
def complex_sqr(z):
    return ti.Vector([z[0]**2 - z[1]**2, z[1] * z[0] * 2])

@ti.kernel
def paint(t: float):
    for i, j in pixels:  # Parallelized over all pixels
        c = ti.Vector([-0.8, ti.cos(t) * 0.2])
        z = ti.Vector([i / n - 1, j / n - 0.5]) * 2
        iterations = 0
        while z.norm() < 20 and iterations < 50:
            z = complex_sqr(z) + c
            iterations += 1
        pixels[i, j] = 1 - iterations * 0.02

gui = ti.GUI("Julia Set", res=(n * 2, n))

for i in range(1000000):
    paint(i * 0.03)
    gui.set_image(pixels)
    gui.show()

I added some discussion of differences to other frameworks in the README.md FAQ section. Overall there are lots of similarities, as Warp is very much inspired by DiffTaichi research papers, however there are many other implementation details (LLVM versus NVRTC, kernel tracing, versus AST transformation, multiple return statements, CUDA graph support, MGPU, etc) where the frameworks differ.
This is similar to how there are many differences between PyTorch and Tensorflow despite both being based on essentially the same concepts, users should ultimately use the framework that suits their needs best.


Update Splunk HTML Dashboards

https://dev.splunk.com/enterprise/docs/developapps/visualizedata/updatejquery/#Write-a-single-page-application
https://www.splunk.com/en_us/blog/tips-and-tricks/html-dashboards-deprecation.html

The final option is to move your HTML files from /data/ui/html to /appserver/static/template and add a Single Page Application (SPA) view that specifies . This option has the most overhead as you will be responsible for packaging all dependencies, and for managing future library updates.

App is not built for Splunk Cloud and thus HTML use for the app will remain for the foreseeable future.

Convert XML Splunk dashboards to JSON using Dashboard Studio which in turn will remove all use of HTML


Window border overlapping other screen

When I make the application fullscreen, the border edge seems to overlay the other monitor.

The above image shows how the window border is for some reason thicker when fullscreen, versus the below image that is the normal window.

I am unsure if there's a logical answer for the border width increasing and overlapping the other screen, just thought I'd make an issue if this is something fixable.

I'm sorry, but I don't understand what the problem is. Can you explain it more clearly?

I'm sorry, but I don't understand what the problem is. Can you explain it more clearly?

When you maximize a window, the border on the left and right side of the application become increased by 5px, overlapping content on the other screens.
First screenshot I sent shows the border (that shouldn't be there) while the application is maximized.
Second screenshot shows how there is no border when the application isn't maximized.

Sadly, it seems difficult to solve this bug. I don't even know why this bug is happening. The code that applies custom aero effect did not cause any problems, and even if you turn them off, the same problem occurs. Other similar programs (a non-UWP implementation of the acrylic window) were found to have bugs, but not to mention the solutions to these bugs. If you know the solution, please send me a PR or let me know here. I'm so sorry.

win10refresh.ts could resize the window by -1 if needed.

Perhaps this link can help us with the solution: https://github.com/electron/electron/issues/5267


chore: lock files maintenance

🔨 update lock files to use the latest gRPC (v1.11.3) and make node10 test use pre-built binary

Codecov Report

Merging #29 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master    #29   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           1      1
  Lines           4      4
=====================================
  Hits            4      4

Continue to review full report at Codecov.

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


Enzyme compatibility

As described in developit/preact#168 - it would be nice to have support for Enzyme.

this lib seems like an interesting collaboration https://www.npmjs.com/package/preact-compat-enzyme

Yup, @windyGex is awesome, he's been pushing on Enzyme compat.  I need to merge his PR!

Any update on this?
since airbnb/enzyme#1007 has been merged, is there work on a Preact adapter for enzyme?
I'd like to help if I can

More breaking changes are coming prior to enzyme v3; you'll want to wait until that's released before releasing any enzyme adapters.

We now have an officially supported enzyme adapter. Check out https://github.com/preactjs/enzyme-adapter-preact-pure :+1:


Add new account - autofill ime option for password managers

Checklist

[X] I have used the search function to see if someone else has already submitted the same feature request.
[X] I will describe the problem with as much detail as possible.
[X] This issue only contains a request for one single feature, not multiple (related) features.

App version
6.712
Problem you are trying to solve
I would be nice if K-9s new account creation screen would support Android's newish ime autofill option.
allowing me to fill the inputs with data from my password manager.
Currently I have to paste passwords manually since my keyboard doesn't display the autofill option at all, neither for mail nor password fields.
Suggested solution
what is ime autofill?
how it looks like on the keyboard app
Screenshots / Drawings / Technical details
No response

This is similar to #6244 but not the same. I am exclusively asking for IME autofill support while the other ticket asked for both inputs to be fillable at once (with the old-style password manager overlay, not the new one)

Ok you might say it's a duplicate of https://github.com/thunderbird/thunderbird-android/issues/3646#issuecomment-429172116
But that issue is 5 years old and some things might have changed since then/I wanted to bring up IME autofill.

The IME autofill currently doesn't work very well with the Jetpack Compose UI. We wan't to upgrade from Material 2 to 3 first and then reevaluate how this could be supported.

I just verified this is neither working for enpass nor lastpass.
Android 14, Pixel 7 Pro


How to use more GPUs when starting container?

I have a host that contains two tesla T4 GPUs(15GB RAM per GPU), and setup uwsgi.ini in compreface-core container with processes=10 . When I start containers for load testing, I found the uwsgi only uses one GPU. How can I setup or rebuild image? Thanks!

We didn't try to run CompreFace with several GPUs.
Here are my thoughts:
Option 1.
https://github.com/exadel-inc/CompreFace/blob/199875f1841af8ea9b78d7cf941e96f37a5336c3/embedding-calculator/src/services/facescan/plugins/insightface/insightface.py#L207
Here you can see how we define mxnet context and then init Module:
ctx = mx.gpu(self._CTX_ID) if self._CTX_ID >= 0 else mx.cpu()
model = mx.mod.Module(symbol=sym, context=ctx, label_names=None)
And here is the example from official documentation how to use mxnet with several GPU:
module = mx.module.Module(context=[mx.gpu(0), mx.gpu(2)], ...)
So you can change our code to:
ctx = [mx.gpu(0), mx.gpu(1)]
model = mx.mod.Module(symbol=sym, context=ctx, label_names=None)
and rebuild CompreFace
Option 2.
We use the environment variable GPU_IDX to define the GPU index. In one instance you can use only one GPU.
But you can run two instances of compreface-core  and add different values in each instance.
e.g. you can change your docker-compose:
  compreface-core1:
    restart: always
    image: ${registry}compreface-core:${CORE_VERSION}
    restart: always
    container_name: "compreface-core"
    environment:
      - ML_PORT=3000
      - GPU_IDX=0

  compreface-core2:
    restart: always
    image: ${registry}compreface-core:${CORE_VERSION}
    restart: always
    container_name: "compreface-core"
    environment:
      - ML_PORT=3000
      - GPU_IDX=1

In this case, you won't need to change code and rebuild CompreFace.

Thanks a lot! I will try those solutions.


cmd/compile: endless compile for invalid declaration

package p
const c = 1e646456992

works (now), but:
package p
const c = 1e646456992

ends up taking forever.
The time is spent trying to convert the large constant into an integer for the error message (constant ... overflows int).
As an aside, we should also make sure that (internally) the constant is not converted into an integer in the first place.

(Your two code snippets look identical?)

@mdempsky fixed - thanks for pointing it out.


A benchmark with JIT would be interesting

I like the idea of a compiled Ruby.  Crystal comes close.  I even created a gem that is available as either Ruby or Crystal (justprep)
You gem is very interesting.  If you get a chance, generate a benchmark that shows how effect converting a method to Crystal is over waiting for the JIT compiler to decided its time to compile the method.
I've wondered for a while if the JIT could be "fooled" into just compiling the entire ruby application from the very beginning.

Hey @MadBomber
Here's a very unofficial benchmark quickly thrown together on my machine comparing a computationally expensive task in Crystal, with Ruby (no JIT) and Ruby (YJIT)
require "benchmark"
require "crystalruby"

module PrimeCounter
  crystalize [s: :string] => :void
  def print(s)
    puts s
  end

  crystalize [n: :int32] => :int32
  def count_primes_upto_cr(n)
    (2..n).each.count do |i|
      is_prime = true
      (2..Math.sqrt(i).to_i).each do |j|
        if i % j == 0
          is_prime = false
          break
        end
      end
      is_prime
    end
  end

  module_function

  def count_primes_upto_rb(n)
    (2..n).each.count do |i|
      is_prime = true
      (2..Math.sqrt(i).to_i).each do |j|
        if i % j == 0
          is_prime = false
          break
        end
      end
      is_prime
    end
  end
end

Benchmark.bmbm do |x|
  x.report("Ruby (#{RubyVM::YJIT.enabled? ? "YJIT": "No JIT"})") { PrimeCounter.count_primes_upto_rb(2000_000) }
  x.report("Crystal") { PrimeCounter.count_primes_upto_cr(2000_000) }
end

It uses bmbm to hopefully give the JIT a chance to kick in.
Results after warmup:
                  user     system      total        real
Ruby (YJIT)   4.273526   0.013098   4.286624 (  4.288813)
Crystal       0.943466   0.007280   0.950746 (  0.954570)

                    user     system      total        real
Ruby (No JIT)   7.730069   0.045005   7.775074 (  7.784881)
Crystal         0.951092   0.010431   0.961523 (  0.962591)

On:

Apple M1 Pro - 16GB
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin22]

The YJIT Ruby version is impressively almost twice as fast as the no-JIT version, but the Crystal version is faster still, at 4x faster than JIT, and 8x faster then no-JIT.

Thank you!  I had a feeling that would be the case.  Too bad the majority of Ruby these days is all web-app based.  In the past I did lots of computationally complex simulations in Ruby.  I'm thinking that maybe some of the old AI code dealing with classifications, fann and nlp might be updated using crystalruby


Add ability to include Javascript.

If you can say
var index = serveIndex('public/ftp', {'style': "somefile.css"})

then you really ought to be able to say
var index = serveIndex('public/ftp', {'javascript': "somefile.js"})

too, and have your own JS included on every page.
Note...  I haven't tested this (can't figure out how to run the test, and don't have the time to work it out right now).  Feel free to simply discard this PR and treat it more like a feature request.

As I said before...

can't figure out how to run the test, and don't have the time to work it out right now

That remains true.  Just bin this PR if you don't want it.

Sorry, I apologize, I didn't even see that last part. Running the tests is just the same as most standard npm modules: once you have checked out the repo, run npm install to install dependencies and npm test to run the test suite 👍 If you rather this be a feature request instead, please open an issue, otherwise if I just close this pull request, it will 100% get forgotten about since there won't be an issue I can mark "help wanted".

Just bin this PR if you don't want it.

And I would have done so if that were true, but I would like to see this feature land as much as you would, so I'm just trying to help. No need to be rude.


Improved filenames before organizing the MP4 files.

Before organizing the files, the files will be renamed to a more aesthetically pleasing layout.
[DD-MM-YYYY] [username] [Hour.MinuteAM/PM] [live/replay].mp4
instead of:
[YYYYMMDD][username][17-digit ID][10-digit timestamp][live/replay].mp4

The current code needs fixing so that it works with the actual download folder for file listing/renaming as well as proper testing afterwards.

The current code needs fixing so that it works with the actual download folder for file listing/renaming as well as proper testing afterwards.

The current code needs fixing so that it works with the actual download folder for file listing/renaming as well as proper testing afterwards.

Didn't mean to close the pull request. If I understand correctly, you want this name format to be used when the downloaded files are merged into one video file,  rather than changing the name only if the user specifies the --organize command?

No, the current code doesn't work because os.listdir() and other stuff like move() aren't using the download folder but the current working directory to check/rename videos to organize. Check organize.py for the working organizing function which any new changes should be based on.

No, the current code doesn't work because os.listdir() and other stuff like move() aren't using the download folder but the current working directory to check/rename videos to organize. Check organize.py for the working organizing function which any new changes should be based on.

It works if the download folder is PyInstaLive-master (the default), but I do understand that this will not work if the user has changed the download folder in the .ini file. Will look into this later.

No, the current code doesn't work because os.listdir() and other stuff like move() aren't using the download folder but the current working directory to check/rename videos to organize. Check organize.py for the working organizing function which any new changes should be based on.

Check out today's commit ;)

Thank you.


Move Scala from "misc" language category to "functional"

Scala is a functional programming language that is at least as popular as Erlang, SML, etc.
We should move it from the "misc" category (which has 39 entries) into the "functional" category (which has 7).

Sure, go ahead and add Category: functional to the language file header. I didn't do it before simply because I'm not very familiar with the languages.

This issue will be resolved if/when #846 is merged.

Just to be clear, the new-style branch is going to be long-lived with no definite time frame. We're probably going to make a few 8.x releases before that merges back into master and becomes 9.0. So it probably makes sense to make that single change against master.


Error In installing the packages.

I am get error in installing this package in laravel 5.3. Is it compatible with laravel 5.3 ?
error :
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - The requested package rocket-code/shopify 2.0 exists as rocket-code/shopif
y[1.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.0.6, 1.0.7, 1.0.8, 2.0.1, 2.0.2, dev
-l5_support, dev-master] but these are rejected by your constraint.

I'm not sure, I'm in the process of migrating this project to my own personal account -> https://github.com/tothjmt/Laravel-Shopify maybe try that one. (https://packagist.org/packages/tothjmt/shopify)


Migrate to GRPC API 2.0

This is an initial refactoring of the CLIWallet which includes:

Phased out use of http-json api 1.0
Basic api 2.0 client.

This is not a full implementation of api 2.0 - just an initial one for review of the refactoring.

fixed #17


MessagePostProcessor doesn't expose CorrelationData

The Javadoc for CorrelationData.setId says:

One use case, however, is when it needs to be set in a MessagePostProcessor after a CorrelationData with a 'null' correlation id has been passed into a RabbitTemplate.

I have exactly that use case. However, there doesn't appear to be any way for a MessagePostProcessor to actually do this. Presumably there was supposed to be some kind of public CorrelationData postProcessCorrelationData(CorrelationData data, Message message) API?

That CorrelationData.setId() is intended for internal use.
And Framework has only one place for that case - AsyncRabbitTemplate.CorrelationMessagePostProcessor
What is your use-case, please?

Interesting observation - I added that javadoc recently when I implemented the AsyncRabbitTemplate - as you can see, the MPP is stateful and gets a reference to the correlationId (each send gets its own MPP)...
private final class CorrelationMessagePostProcessor<C> implements MessagePostProcessor {

	private final MessagePostProcessor userPostProcessor;

	private final CorrelationData correlationData;

	private final ParameterizedTypeReference<C> returnType;

	private volatile RabbitConverterFuture<C> future;

	CorrelationMessagePostProcessor(MessagePostProcessor userPostProcessor,
			CorrelationData correlationData, ParameterizedTypeReference<C> returnType) {
		this.userPostProcessor = userPostProcessor;
		this.correlationData = correlationData;
		this.returnType = returnType;
	}

	@Override
	public Message postProcessMessage(Message message) throws AmqpException {
		Message messageToSend = message;
		if (this.userPostProcessor != null) {
			messageToSend = this.userPostProcessor.postProcessMessage(message);
		}
		String correlationId = getOrSetCorrelationIdAndSetReplyTo(messageToSend);
		this.future = new RabbitConverterFuture<C>(correlationId, message);
		if (this.correlationData != null && this.correlationData.getId() == null) {
			this.correlationData.setId(correlationId);
			this.future.setConfirm(new SettableListenableFuture<>());
		}
		this.future.setReturnType(this.returnType);
		AsyncRabbitTemplate.this.pending.put(correlationId, this.future);
		return messageToSend;
	}

	private RabbitConverterFuture<C> getFuture() {
		return this.future;
	}

}

Specifically, to generate CorrelationData from the Message in a uniform way, without having to add extra calls for every send call. I'm only using it for publisher confirms, not replies, so AsyncRabbitTemplate doesn't seem to be the right solution.

It is done only for case, BTW:
CorrelationData correlationData = null;
if (this.enableConfirms) {
	correlationData = new CorrelationData(null);
}

I like the idea of a CorrelationDataAwareMPP - we could avoid having to create an MPP for each request.

https://jira.spring.io/browse/AMQP-697

Right, now you have to do that manually in advance before calling:
public void convertAndSend(String exchange, String routingKey, final Object message,
			final MessagePostProcessor messagePostProcessor, CorrelationData correlationData) throws AmqpException {

or just
convertAndSend(String routingKey, final Object object, CorrelationData correlationData)

At least that how it has been designed to use...

@artembilan there's more detail in my explanation now, I want to make the correlation data after the message converter.
@garyrussell any chance of that making it for 1.6.7?

Not if we use a default method on MPP for the implementation (requires Java 8).
If we go with a sub-interface, we could backport to 1.6.x.

Aside: in my use case, does anything bad happen if the correlation data id is null?

Nothing bad, as long as you handle getting null back in the ConfirmCallback.

Which, of course, is not very useful since you can't correlate which message the confirm is for 😄

you can't correlate which message the confirm is for
Well I can when the rest of the correlation data is the entire message.

Oh, sorry, I thought you meant the CorrelationData itself was null 😄

@OrangeDog This will be in the 1.6.7 release; the master PR is ready for review and I'll back port it after review/merge.

Sorry, I should have had a look at the change sooner.
This still doesn't let you add a Correlation if one doesn't exist.

We can't really do that without adding a whole new interface and callback. You will need to add an empty correlation container to the send and update it in the MPP.

adding a whole new interface and callback

That is what I was asking for.

some kind of public CorrelationData postProcessCorrelationData(CorrelationData data, Message message) API?

We could have done that (and I now see it in your original post where you "presumed" that was the intent of the javadoc, but the javadoc explicitly referenced MessagePostProcessor not some new interface.
To be honest, the original intent was something like this
final CorrelationData foo = ...
template.send(..., ..., m -> {
    // update message
    // foo.setSomething(...)
});

We're planning on releasing today so I don't think we can change direction at this point.
What is the objection to adding a container object before the send?

Specifically, to generate CorrelationData from the Message in a uniform way, without having to add extra calls for every send call.

There are lots of send calls in my codebase, you have to use the full RabbitTemplate interface and 4-ary method, and I'd rather not have to change every single one.

OK; you convinced me 😄 - we'll try to get it out today, but it may cause the release to be pushed to tomorrow.

https://github.com/spring-projects/spring-amqp/pull/548


Supporting Kytos-ng as a backend

Created by Luis Marin Vera via monday.com integration. 🎉

Supporting Kytos-ng as a backend (label: epic_topo_kytos): The SDX Local Controller must support Kytos-ng's API to perform Topology Management activities as described in epic epic_topology. (Luis)


WIP: Improvements

Story https://app.shortcut.com/deskpro/story/161047/wrike-improvements

Closing due to incorrect build license


how to change black opacity

Hi , how to change when edit image font type or black opacity of overlay when typing on image

Android or iOS？


Reported request count never goes down?

I'm using version 2.5.1 and I try to view the stream from the hystrix dashboard but it seems to me that the requestCount never goes down even though the no one calls the Brakes "command":

The data that is reported by the hystrix stream looks like this:
data: {"type":"HystrixCommand","name":"MyName","group":"MyGroup","currentTime":1487861651232,"isCircuitBreakerOpen":false,"errorPercentage":0,"errorCount":0,"requestCount":53,"rollingCountBadRequests":0,"rollingCountCollapsedRequests":0,"rollingCountExceptionsThrown":0,"rollingCountFailure":0,"rollingCountFallbackFailure":0,"rollingCountFallbackRejection":0,"rollingCountFallbackSuccess":0,"rollingCountResponsesFromCache":0,"rollingCountSemaphoreRejected":0,"rollingCountShortCircuited":0,"rollingCountSuccess":53,"rollingCountThreadPoolRejected":0,"rollingCountTimeout":0,"currentConcurrentExecutionCount":0,"latencyExecute_mean":758,"latencyExecute":{"0":600,"25":664,"50":724,"75":868,"90":906,"95":912,"99":951,"100":951,"99.5":951},"latencyTotal_mean":15,"latencyTotal":{"0":600,"25":664,"50":724,"75":868,"90":906,"95":912,"99":951,"100":951,"99.5":951},"propertyValue_circuitBreakerRequestVolumeThreshold":100,"propertyValue_circuitBreakerSleepWindowInMilliseconds":5000,"propertyValue_circuitBreakerErrorThresholdPercentage":0.5,"propertyValue_circuitBreakerForceOpen":false,"propertyValue_circuitBreakerForceClosed":false,"propertyValue_circuitBreakerEnabled":true,"propertyValue_executionIsolationStrategy":"THREAD","propertyValue_executionIsolationThreadTimeoutInMilliseconds":800,"propertyValue_executionIsolationThreadInterruptOnTimeout":true,"propertyValue_executionIsolationThreadPoolKeyOverride":null,"propertyValue_executionIsolationSemaphoreMaxConcurrentRequests":20,"propertyValue_fallbackIsolationSemaphoreMaxConcurrentRequests":10,"propertyValue_metricsRollingStatisticalWindowInMilliseconds":10000,"propertyValue_requestCacheEnabled":false,"propertyValue_requestLogEnabled":false,"reportingHosts":1}

My Brakes "command" looks like this (defined "globally" in the module):
const myHystrixCommand = new Brakes(queryBitBucket, {
    statInterval: 1000,
    threshold: 0.5,
    circuitDuration: 5000,
    timeout: 5000,
    name: 'MyName',
    group: 'MyGroup',
    isPromise: true
});

Am I doing something wrong or why is the requestCount always showing 53? (which is the total number of calls I've made).

Hey @johanhaleby, if you are using the default bucketSpan and bucketNum options, it will take
60 seconds for requests to stop being reported. Do the # of requests stay at 53 even after a minute of monitoring it?

@awolden Thanks! I does indeed go down when I wait 60 seconds as you imply. But why is the default options they are? Is bucketSpan the equivalent of metrics.rollingPercentile.bucketSize  and bucketNum equal to metrics.rollingPercentile.numBuckets? If so Hystrix defaults to 100 and 6?

The options don't exactly line up with the hystrix options. Brakes doesn't have a bucketSize option.  It will store an indefinite amount of request times in a bucket.
The math brakes uses to handle buckets is a little different than hystrix, but essentially is the same. In hystrix, you define how long you want to store your rolling stats (default: 60s) and the number of buckets you want. It then divides those values to determine how long each bucket should live.
Hope that helps!
-Alex

Thanks a lot for the clarifications @awolden. And thanks for making the library available and supported, great work!


[AIRFLOW-1562] Spark-sql loggin contains deadlock

Hi All,
Logging in SparkSqlOperator does not work as intended. Spark-sql internally redirects all logs to stdout (including stderr), which causes the current two iterator logging to get stuck with empty stderr pipe. Also this situation can lead to a deadlock because the std-err can grow too big and it will start to block until it gets consumed, which will only happen when the process ends, so the process stalls.
Dear Airflow maintainers,
Please accept this PR. I understand that it will not be reviewed until I have checked off all the steps below!
JIRA

[X] My PR addresses the following Airflow JIRA issues and references them in the PR title. For example, "[AIRFLOW-1562] My Airflow PR"

https://issues.apache.org/jira/browse/AIRFLOW-1562

Description

[x] Here are some details about my PR, including screenshots of any UI changes:

Tests

[x] My PR adds the following unit tests OR does not need testing for this extremely good reason:

Commits

[x] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Codecov Report

Merging #2563 into master will decrease coverage by 0.03%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #2563      +/-   ##
==========================================
- Coverage   70.88%   70.85%   -0.04%
==========================================
  Files         150      150
  Lines       11585    11585
==========================================
- Hits         8212     8208       -4
- Misses       3373     3377       +4

Impacted Files
Coverage Δ

airflow/jobs.py
77.67% <0%> (-0.37%)
:arrow_down:

Continue to review full report at Codecov.

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


fixed section formatting

Docs Build status updates of commit 22b4094:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

mixed-reality-docs/creating-3d-models-for-use-in-the-windows-mixed-reality-home.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Update flink's default version to existing one

The version previously used is not in the mirror anymore.

Thank you for submitting this pull request, however I do not see a valid CLA on file for you. Before we can merge this request please visit https://yahoocla.herokuapp.com/ and agree to the terms. Thanks! :smile:

CLA is valid!


Import issues with python_2_unicode_compatible

Django = 3.1.1
django-auditlog = 0.4.7
Error Messages:
redacted\lib\site-packages\auditlog\registry.py", line 5, in
from django.utils.six import iteritems
ModuleNotFoundError: No module named 'django.utils.six'
Fixed by installing django-utils-six ~= 2.0
pip install django-utils-six
redacted\lib\site-packages\auditlog\models.py", line 13, in
from django.utils.encoding import python_2_unicode_compatible, smart_text
ImportError: cannot import name 'python_2_unicode_compatible' from 'django.utils.encoding' (redacted\lib\site-packages\django\utils\encoding.py)
and
replace:
from django.utils.encoding import python_2_unicode_compatible
with:
from six import python_2_unicode_compatible

Confirming!

Looks like everything is fine with latest master 565239180e2cc386156e80c98566df2c77f55463

I still have issues with importing from django.utils.six
Django > 3.0 has removed django utils six
https://docs.djangoproject.com/en/3.0/releases/3.0/#removed-private-python-2-compatibility-apis
So either any import from there is removed
Or the import is done from the 'six' package instead

On further checking, the current branch doesn't include references to django.utils.six
Installing from pip however still brings the fault

use django-auditlog==1.0a1

For thos of you who are like me and using pipenv, installing directly from repo is as easy as pipenv install<EMAIL_ADDRESS>

Seems to be done in https://github.com/jazzband/django-auditlog/commit/3acab4322b57b22d5d9874abeb8f66a774432be0.


GH-1473: Switch to CompletableFuture

Resolves https://github.com/spring-projects/spring-amqp/issues/1473
Given the stability of the project, it was simplest to copy the AsyncRabbitTemplate
rather than adding a lot of conditional code.
2.4.x only; I will submit a separate PR for main

OK; makes sense.


Adding files: enriched cotensors, enriched tensor prod of cats, enriched op-cat

This adds the definition of V-cotensors in a V-category, and a proof that if a V-category admits V-cotensors then these form an enriched bifunctor. In order to state and prove these results, some results are also included relating to the opposite V-category and the tensor product of V-categories.
This code is very unpolished with known stylistic flaws. Any suggestions to improve the proofs, the code, and/or the file structure are very welcome!

Thanks. Let's start playing around with this. Please feel free to PR future changes again as desired.


Unstable Cypress tests

My actions before raising this issue

[x] Read/searched the docs
[x] Searched past issues

actions_organizations/case_113_new_organization_pipeline.js (https://github.com/opencv/cvat/actions/runs/3370435670), (https://github.com/opencv/cvat/actions/runs/3434910998)
actions_tasks3/case_19_all_image_rotate_features.js (https://github.com/opencv/cvat/actions/runs/3327849116)
actions_tasks3/case_18_filters_functionality.js (https://github.com/opencv/cvat/actions/runs/3367707635), maybe fixed by  #5212

Fells like actions_tasks3/case_18_filters_functionality.js is unstable. Failed here

I will propose the following practice. If a test is failed, we don't re-run them but just fix. It is useless to have issues about unstable tests on github.

@nmanovic
If it was easy to fix them, we would do this. But it even difficult to reproduce.
So, the issue is for the future tests engineer who might invest time to them.


Initialize hubble-stats

Summary of changes
Initialize the Hubble Stats website
Currently just adding footer
Proposed area of change
Put an x in the boxes that apply.

[ ] apps/bridge-dapp
[ ] apps/stats-dapp
[ ] apps/webbsite
[ ] apps/faucet
[x] apps/hubble-stats
[ ] apps/tangle-website
[ ] libs/webb-ui-components

Reference issue to close (if applicable)
Specify any issues that can be closed from these changes (e.g. Closes #233).
Screen Recording
If possible provide a screen recording of proposed change.

Code Checklist
Please be sure to add .stories documentation if any additions are made to libs/webb-ui-components.

[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added necessary documentation (if appropriate)

You can try the app directory, it is supported from nx v16. Check this comment. @vutuanlinh2k2


Improve method auto-completion

bugfix for typescript type definition

can auto-complete in Data(string).Scenario(string, callback)

using tsconfig.json altenate to reference path

Ok, let's have this a default behavior without additional question in init

@DavertMik Thank for your comment, I fixed it!

:rocket:


in simplified mode, why is casing changed?

E.g. why is it capability and not Capability?

Changes from what? From standard mode? Don't think so, the property is
probably called capability there as well:
https://github.com/highsource/ogc-schemas/blob/master/scripts/lib/WMS_1_3_0.js#L380
Simplified mode only applies to element references. Where in standard mode
you have { name: , value:  }, in the simplified mode you'll
get {  :  }.
On Tue, Apr 21, 2015 at 11:47 AM, Bart van den Eijnden <
<EMAIL_ADDRESS>wrote:

E.g. why is it capability and not Capability?
[image: screen shot 2015-04-21 at 11 46 31]
https://cloud.githubusercontent.com/assets/319678/7249641/1c42ed3c-e81c-11e4-9cbd-b7df140bda3e.png
—
Reply to this email directly or view it on GitHub
https://github.com/highsource/jsonix/issues/79.

Ah you're right, so then it's just a different approach than the ol3 parsers take, where they name exactly the casing as in the XML.


nametable-from-filename: add name fields if they're missing

In order to address issue https://github.com/google/fonts/issues/641, I've had to update this script.
The previous implementation only changed existing fields in the font's nametable. The new implementation will now add new fields if they don't already exist. Many fonts in our collection are missing the mac platform fields, these are now added automatically.
I also took the time to refactor the script to make it easier to understand.
The tests have also been refactored to use the new implementation.

I see some commits by myself in this pull request. Those are already pushed to master. Could you please:
git fetch upstream
git rebase upstream master
and then git push --force to your feature_branch, please

Apologies, I'll do that now.

thanks :-)

boom thanks :-)

Thanks, dude!


[Bug - Partner Center] Prompted to authenticate with Xbox Live when uploading extension

Describe the bug
When I upload my extension the first time, I get prompted to authenticate with upload.xboxlive.com. I have to cancel and upload it again as the second attempt doesn't show the prompt.
To Reproduce
Steps to reproduce the behavior:

Initiate an extension update in the Partner Center
Attempt to upload your updated extension file

Expected behavior
It should upload without any additional prompts.
Screenshots

Desktop (please complete the following information):

OS: Windows 11 26100.2454
Browser: Microsoft Edge
Version: 131.0.2903.86

Hi @infinitepower18, thank you for contacting us. We are looking into this and will let you know as soon as we have an update.

@ManikanthMSFT
Extension: https://microsoftedge.microsoft.com/addons/detail/idolkdgdllilclecodkncimdbmmclmje
Seller ID: 23259670

@infinitepower18, thank you for providing us with the required details. We are looking into this and will let you know as soon as we have an update.

Internal: Bug 55438570

Hi @infinitepower18, we got an update from our team and would like you to know that Partner Center utilizes Xbox Live internally, and the authentication prompt you encountered may have been triggered due to an authentication expiration.


Osx

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Closes https://github.com/conda-forge/r-rgl-feedstock/pull/23

This includes the update previously proposed in https://github.com/conda-forge/r-rgl-feedstock/pull/23 and adds fixes to get the OSX build working.

Hi! This is the friendly automated conda-forge-linting service.
I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.
Here's what I've got...
For recipe:

There are 1 too many lines.  There should be one empty line at the end of the file.

For recipe:

License is not an SPDX identifier (or a custom LicenseRef) nor an SPDX license expression.

Documentation on acceptable licenses can be found here.

@conda-forge-admin, please rerender

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

looks good, but needs a rebase.

The osx build tells:
This build of rgl does not include OpenGL functions.  Use
 rglwidget() to display results, e.g. via options(rgl.printRglwidget = TRUE).

What does that mean?

This build of rgl does not include OpenGL functions

This happens because X11 is not available on the conda-forge CI infrastructure: https://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=280685&view=logs&j=4b3757f9-99c5-5891-6c0c-93d7030cdf7d&t=f047df50-a233-5ae9-bf8f-c7dd8e5684ad&l=1214
For users this means that rgl graphics have to be displayed in a browser (including e.g., the browser built in to rstudio) instead of in a  dedicated X11 window.
There has been some effort get get XQuartz into conda-forge, but it seems to have stalled: https://github.com/conda-forge/staged-recipes/issues/2587
Some packages work-around by installing XQuartz with homebrew, e.g., https://github.com/conda-forge/ncview-feedstock/pull/4. My opinion is that for rgl the webGL viewer is perfectly serviceable, and lack of X11 on osx should not be a show-stopper.


Automatic batchsplit doesn't work

Hello.
I was converting some comics and some of them were failing to get converted: "Error: KindleGen failed to create MOBI!" Epubs that were being generated were too big (700 - 800 MB), despite using the -b 1 (autosplit) option.

You probably get a warning that automatic split was unsuccessful due to unsupported directory structure.

There is no warning about unsupported directory structure, that was the case.  Automatic split failed due to the wrong structure.
However i found the -t (setting title) option not working, it still defaults to the folder name. Should i just close this issue and open another one?


Stuck in "Lookup Rollup Calculate Job"

On a new rollup I created, I click "Calculate", and it just seems to hang out in "Lookup Rollup Calculate Job" forever... not calculating, nothing rolling up, nothing happening. It just stays there forever, until I delete it and try again. Any idea why that would be? Screenshot of my rollup is here:

The next rollup I created did the same thing - it was a very different rollup, on different object....
They are both just stuck eternally in "jobs"...

Can you send a screenshot of your jobs screen? What status are they showing? Sometimes Salesforce will pause jobs under certain conditions. It usually rectifies itself. This gives a bit more background as to the reasons.

Here is one of the Jobs - but I don't know what you mean about a status? Should I be looking somewhere else?

Aha, I think you meant Apex Jobs, sorry. Looks like I've got a bunch in there with a status of "holding." One idea I had is to abort these jobs, then change the type of all my rollups to "Scheduled" instead of "realtime" and then try again to see if my new ones will calculate... or perhaps wait till tomorrow if my usage for the day has hit a limit...?

Yes give it some time and if not call Salesforce support or raise a case. Calculate is designed to either be a full one off recalc (to update existing records) prior to enabling Realtime. Or you can enable Schedule mode on the rollup, then schedule the RollupJob class via APex Classes under Setup and it will processes records that need recalc each day. Final option is to use Schedule Calculate button on the rollup to run a full recalc at different times

Yep, that's all it was, was waiting 24 hours for a backed up jobs list to process through! Sorry to bother you with that - I just had not run into it before! But I guess we were having a busy day in that org.... Good to know for the future... Thanks as always!


unreal engine blueprint images (feature suggestion)

i would love to see it be able to generate images of unreal blueprint examples implementations of code,
ive found that it actually attempts to do that sometimes ,but fails showing a broken image icon

Hello @Omiyaru ,
I will close this issue as I don't think it will happen in the short term.
We currently don't plan to add image generation for this moment.
Best Regards,
Jon


React Mixins

I was wondering if the Mixin concept of React can be translated to typeclasses in Thermite.
The Documentation describes  a Mixin to be a set of shared functions across multiple different components.
Could this be a way to write extensions to Thermite? I was especially thinking about a module that allows a component to produce its own Observable/Signal with purescript-rx / purescript-signal. Other common use cases would be adding Validation to Form Elements.
Maybe this route allows us to do something about #3 with some Javascript Magic. If you could point me into a direction I would love to go exploring and maybe provide a PR at the end.

I think that supporting mixins is a nice goal, but I'm not sure if I understand the connection to type classes. Could you give an example?

I was thinking that a type class like Monad expects a user to implement the require methods bind and return.
If I now create eg. a Validatable extension and require "Validatable" components to have methods validates and showValidationError I could provide this typeclass along with some helper Methods for instances of Validatable. Could the newtype Spec constructor in Thermite.Types be a good spot to write up instances for?

I think it would be good to define a version without type classes first, and see if any obvious structure emerges. We could always build something with TCs on top, and a version based on records/ADTs should be pretty simple to add on.

Hi,
This is exactly the sort of thing that I'm interested in using, because I'd like to be able to use some of the mixins out there that handle things like saving the current app state to localStorage, path routing and so on.
I've forked purescript-thermite and started to work on porting this, but I don't think I know enough about PureScript to get this working as is.
Here's the new definition of the Spec type: https://github.com/rtrvrtg/purescript-thermite/blob/wip-foreign-spec/src/Thermite/Types.purs (with four arguments to handle m state props action)
The initial invocation from a SpecRecord, and methods to change componentWillMount and displayName: https://github.com/rtrvrtg/purescript-thermite/blob/wip-foreign-spec/src/Thermite.purs
However, right now it's failing to build due to an issue in Thermite.Internal:
Compiling Thermite.Internal
Error at src/Thermite/Internal.purs line 72, column 1 - line 104, column 1:
Error in foreign import declaration createClassImpl
Cannot unify * -> * with *.
* ERROR: Subcommand terminated with error code 1

I suspect it's not liking how I'm attempting to reuse the redefined Spec type here. Not quite sure what to do about it, though – might go off and do some tests with types like this on my own before I try this again.

@rtrvrtg The kind of Spec hasn't changed, I think. Also, we use record updates rather than direct mutation because we want to avoid the side-effect of mutation. Record updates create a fresh record with the updated fields.

Any movement on this? I am just getting into React, but Mixins seem to play an important role in the plugin space, e.g. I was just looking at yahoo/react-intl, but cannot use it as it stands.

In 0.11, this will be much simpler since you can just create a ReactSpec for your Thermite component, and add the mixin there.

Closing this, since 0.11 has supported addons like this via purescript-react types.


command to pipe recent output

pipe command, aliased to | that can take the most recent output and run a shell command with the output passed as stdin.

closing in favor of https://todo.sr.ht/~hedy/gelim/4


bicep MCR module completions: next completion dropdown should automatically show

Type this:

module m

Press CTRL+SPACE

select "/br"
ACTUAL:

EXPECTED:

This happens (or rather doesn't) for all parts of MCR completions.
By contrast, selection a resource type in a completion item automatically pulls up the completion list for api versions.

+1 - this will be an excellent change


Add Github Changelog Generator gem

Description
This adds support for the Github Changelog generator gem by:

Adding gem to Gemfile
Adding Rake tasks to Rakefile
Fixing up the 1.9.3 tag in the CHANGELOG.md and HISTORY.md tags to allow parsing by the Changelog Generator gem
[x] Testing that bundle exec rake changelog successfully parses the repo history & tags and creates an updated CHANGELOG.md

NOTE: Normally the Gemfile and Rakefile changes would have been done by running pdk update after adding the necessary changes to .sync.yml, but in this case I have just manually added the changes as RSpec deprecated method issues were being introduced after the pdk update. This was going to be a bigger task to resolve and will be addressed in MODULES-9515

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@b19fca0). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff            @@
##             master    #437   +/-   ##
========================================
  Coverage          ?   1.86%
========================================
  Files             ?     481
  Lines             ?   77841
  Branches          ?       0
========================================
  Hits              ?    1450
  Misses            ?   76391
  Partials          ?       0

Continue to review full report at Codecov.

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


Feature Request for --top allow to set the interval between updates

It would be nice to be able to specify the update interval between updates when using --top

Adding a new --refresh <n> option to refresh the output event n seconds.


config.yaml issues

I'm experiencing some strange issues in the latest release,
eg.
in config.yaml
site:
  name: Website
  site: 'https://website.net'
  base: '/'
  trailingSlash: false

and for example in Logo.astro
---
import { SITE } from '~/utils/config';
---

<span
  class="self-center ml-2 rtl:ml-0 rtl:mr-2 text-2xl md:text-xl font-bold text-gray-900 whitespace-nowrap dark:text-white"
>
  🚀 {SITE?.name}{SITE?.name}{SITE?.name}{SITE?.name}
</span>

it SHOULD change the sitename based on the config.yaml, but doesn't. also color changes are no longer applied correctly. Idk what's going on, if I fork the template now, config.yamls seems completely broken/not read

I have the same problem.
Noted that the js-yaml is not working on the config.ts fiel

found the error , comment in the index page the metadata
const metadata = {
/*   title: 'AstroWind — Free template for creating websites with Astro + Tailwind CSS',
ignoreTitleTemplate: true, */
};

Hello everyone, we know about the long delay. We were working on a complex project, we are back. In the discussion area we will present the new fixed and defined update schedule. Thanks for the patience.

Hi @ngmisl
At this time if you are in npm run dev mode
and you change something in the config.yaml you then have to restart the development server.
Maybe that is the cause of the problem. Please let me know.


SAKIII-4822 - My Messages inbox reply links and delete message butto...

...ns are not uniquely labeled
https://jira.sakaiproject.org/browse/SAKIII-4822

My Messages inbox "reply" links and "delete message" buttons are not uniquely labeled.

Squashed and merged


fix(stopTimeout): adding in stop timeout options

Goal
Add in a stop timeout that can be used to let a container gracefully exit.

:tada: This PR is included in version 5.2.3 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Support default values of attributes in pattern-matching

See: https://github.com/microsoft/onnx-rewriter/issues/197

Re: get_attribute: Knowledge of the schemas is designed to be external to the IR itself. I think we can have something that is outside of the IR for this purpose.


[v<IP_ADDRESS>] Mails are not being sent anymore

I just updated Shopware to <IP_ADDRESS> which worked without any issues. The only thing is, that emails (e.g. order confirmations or delivery notes) are not being sent anymore.
The only details I could find so far was the following within var/log/dev.log:
[2021-05-13T01:31:17.412631+00:00] app.ERROR: Could not send mail: Failed sending mail to following recipients: {{ recipients }} Error Code:0 Template data:  {"recipients":{"...@gmail.com":"..."},"senderName":"...","salesChannelId":"98432def39fc4624b33213a56b8c944d","templateId":"d94e1656434a4cdf85101286f8989d19","customFields":null,"contentHtml":"...","subject":"Bestellbest\u00e4tigung","mediaIds":[]}
It might have something to do with the migration to Symfony Mailer but that's just a shot in the dark.
Any ideas who to further narrow down what's causing the problem?

Which method of configuration do you use for Symfony mailer?

I configured an external SMTP server which worked well before upgrading to v.<IP_ADDRESS>
As it just turned out the issue was caused by several reasons:

I had a custom document template for the invoice layout which broke because the base template changed. While attaching them to the mail, the rendering threw an error (which could only be seen when downloading the invoices manually) and the sending failed. Unfortunately the rendering error occured only in a few situations which made it hard to reproduce the error.
Once the above issue was resolved the event log reported a successful mail.sent event (without throwing the above given error message) but the actual sending still didn't happen. After a while I realized that I haven't had a message consumer job running (as described here), which seems to be required for the new Symfony mailer.

After all the issue was caused by erroneous document customization and incomplete system configuration. However, it would be great if

errors thrown by rendering the attachments could be caught and logged separately, to make it easier to track them
the requirement of a message consumer job could be added to the upgrade notes

we got a similar problem but on v<IP_ADDRESS> already, where variable names in the respective templates had changed. if the variable names are wrong, no emails get sent.

@miko007 afaik in v.6.3.x.x a error message related to the rendering of the template has been logged to var/log/dev.log, hasn't it? This doesn't seem to be the case in v<IP_ADDRESS>.
@shyim I just realized that this error also occurs when I'm using an emoji in the email template. Can you confirm this?

For the records: scanning through the changelog of v<IP_ADDRESS> it seems like (2) described in my comment above (mails not being sent if a message consumer job has not been configured) has most likely been resolved by executing the job synchronously (see NEXT-15368)

This should be working again with <IP_ADDRESS>


a bit of translation - Russian words for vuln types

Spanish != Russian?

I am not sure what do you mean, but my translation is working fine, and it is Russian.
I used Spanish translation code as example.


Index Error

when i click create presentation after select the theme i got this error!!

in text_pp.py file change your parse_response function with this following code good luck
def parse_response(response):
slides = response.split('\n\n')
slides_content = []
for slide in slides:
lines = slide.split('\n')
title_line = lines[0]
if ': ' in title_line:
title = title_line.split(': ', 1)[1]  # Extract the title after 'Slide X: '
else:
title = title_line
content_lines = [line for line in lines[1:] if line != 'Content:']  # Skip line if it is 'Content:'
content = '\n'.join(content_lines)  # Join the lines to form the content
# Extract the keyword from the line that starts with 'Keyword:' or 'Keywords:'
keyword_lines = [line for line in lines if 'Keyword:' in line or 'Keywords:' in line]
if keyword_lines:
keyword_line = keyword_lines[0]
keyword = keyword_line.split(': ', 1)[1]
else:
keyword = ""  # Set a default value if no keyword is found
slides_content.append({'title': title, 'content': content, 'keyword': keyword})
return slides_content

I'll check it out and fix it, thank for pointing out! :)

Yeah Sure i hope you will add more features in this web app
On Sun, Oct 8, 2023, 2:52 PM Hina Ota @.***> wrote:

I'll check it out and fix it, thank for pointing out! :)
—
Reply to this email directly, view it on GitHub
https://github.com/otahina/PowerPoint-Generator-Python-Project/issues/6#issuecomment-1751980400,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A2SSGKSKPDRMKZT7S7DNO3LX6JZXPAVCNFSM6AAAAAA5WZGCLCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONJRHE4DANBQGA
.
You are receiving this because you authored the thread.Message ID:
@.***
com>

Feel free to make a pull request or issues, and be a contributor of the project!

If you check the terminal, gpt response looks like this.(content is just one example)
Slide 1: Introduction to Information Technology
Content:

Definition and importance of Information Technology
Role of IT in businesses and organizations
Various components and applications of IT
Benefits of adopting IT in the workplace
Keywords: Information Technology, Introduction

Slide 2: Emerging Trends in Information Technology
Content:

Cloud computing and its advantages
Artificial Intelligence and machine learning
Internet of Things and its implications
Big Data and analytics
Keywords: Emerging Trends, Information Technology

And if the format is like Slide<slide_number>: Content: <something...> Keywords:<something...> so can you check the terminal? If you can see this format, you are supposed to generate powerpoint. Keyword is used for querying the image. After you check this, let me know the result 👍

okkk sure
On Sun, Oct 8, 2023, 4:30 PM Hina Ota @.***> wrote:

If you check the terminal, gpt response looks like this.(content is just
one example)
Slide 1: Introduction to Information Technology
Content:

Definition and importance of Information Technology
Role of IT in businesses and organizations
Various components and applications of IT
Benefits of adopting IT in the workplace
Keywords: Information Technology, Introduction

Slide 2: Emerging Trends in Information Technology
Content:

Cloud computing and its advantages
Artificial Intelligence and machine learning
Internet of Things and its implications
Big Data and analytics
Keywords: Emerging Trends, Information Technology

And if the format is like Slide<slide_number>: Content: <something...>
Keywords:<something...> so can you check the terminal? If you can see this
format, you are supposed to generate powerpoint. Keyword is used for
querying the image. After you check this, let me know the result 👍
—
Reply to this email directly, view it on GitHub
https://github.com/otahina/PowerPoint-Generator-Python-Project/issues/6#issuecomment-1752004263,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A2SSGKW3GTI7KM2LPPE7TETX6KFGTAVCNFSM6AAAAAA5WZGCLCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONJSGAYDIMRWGM
.
You are receiving this because you authored the thread.Message ID:
@.***
com>


tippy: Support globalStore plugin for tooltips.

[x] Adds a globalStore plugin that destroys tooltips when re-rendering to prevent the appearance of tooltips when their reference is removed from the DOM.
[x] Replace the mutation observer with globalStore plugin for view_user_card and recipient_bar_icon tooltips.
[x] Prevent appearance of message_control_button tooltips during re-rendering.

Fixes: CZO Thread

Reference: https://github.com/atomiks/tippyjs/issues/745#issuecomment-607531942

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[x] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Responsiveness and internationalization.
[x] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

Left comment in the CZO thread.

Left comment in the CZO thread.

Thanks for the suggestion, I am starting the work to reduce the use of MutationObserver by implementing the globalstore plugin approach.

@amanagr could you please review the PR, thanks.

@amanagr , I have made the suggested changes could you please review the PR, Thanks.

@palashb01 it would be great if you can resolve the conflicts!

@palashb01 it would be great if you can resolve the conflicts!

Oh, I just noticed the conflicts. I didn't realize that they were there because the Zulipbot didn't label the PR as merge conflicts. Anyway, I am resolving them now

There are a few naming changes that I would like to see:

We don't want to use camelCase for variable names which we control. For example messageListTippyInstances and destroyAllInstances.
destroyAllInstances is not a correct name, let's rename it to destroy_all_message_list_tooltips.

@amanagr , I have made the suggested changes, could you please review again, Thanks :)

I also replied to 2 of your comments above.

@amanagr  replied to your comments and also attached a demo of your approach. Could you please review it again? Thanks.

@amanagr , I have changed destroy_all_message_list_tooltips acording to your changes, and everything works smoothly, could you please review again, thanks ;)

@palashb01 this is looking great now. We just need to apply this to all the message list tooltips like message_time, slow-send-spinner, code_external_link etc...

@amanagr  , I have made the suggested changes, could you please review again, Thanks :)

@amanagr , I have made all the suggested changes, could you please review thanks :)

The changes from the last review iteration seems correct.
I wanted to suggest something that might make the code even simpler: using a Set instead of an array.
I've already added a commit with this suggestion, but I wanted to check with you first. If you think it would be helpful, we can squash the commit. Otherwise, we can just drop it.

This pull request was primarily reviewed by @amanagr. Additionally, I have reviewed the final result, and it appears to be ready for integration review.

@zulipbot remove "has conflicts"

@zulipbot remove "has conflicts"

Squashed and merged, after rewriting the commit message: the references to GlobalStore seemed out of place given that this is not specifically for message lists.


token-swap: Perform better packing / unpacking

Problem
Token-swap currently does the default serialization / deserialization, which means a lot of padding.
Solution
Do a more efficient pack / unpack as in the token program, e.g. https://github.com/solana-labs/solana-program-library/blob/master/token/program/src/instruction.rs#L335

Done in #420


Update docs about complex character support

Description
Support for grapheme clusters and surrogate pairs was added to Flutter in https://github.com/flutter/flutter/pull/59267.  However, some documentation was found that was out of date with that change, so this PR updates it.
Related Issues
Discovered by @LongCatIsLooong in https://github.com/flutter/flutter/pull/66567#discussion_r494510353.
Tests
None, docs change.

Ah good catch.  I've updated those two using my first change as a template.


Memcached transcoder factory class

I made some adjustments to PR #83 including:

Change the name of the param to --memcached-transcoder-factory-class so the scope is clear to people reading the docs (our other params start with --session-store, but really should start wil --memcached, but that's because they came before Redis support. le sigh).
Change the default value of the param to null, and don't do anything if it hasn't been set. This will ensure that nothing breaks unexpectedly, but also makes sure the defaults still work when we upgrade memcached-session-manager.

@jaGarcia please review my changes and make sure they are acceptable for you.

Looks great, thank you!