Added regex for a simple scan-and-reply to "make the bot do thing"

PRs are welcome eh? Lets let everyone know.
Also added a shebang

Closing due to inactivity. Please rebase onto current changes and reopen.


How to bulk create products at amazon via this API

I am just exploring your API and thank you for combining all these stuffs together. But due to no documentation i am unable to identify which class should i use and from where i see the methods.
For example i want to do a bulk creation of products via this API
Also i want to convert my normal products to FBA.
Please provide me sample for that so that i can follow along.
Thanks

Product creation and manipulation like the kind you mentioned are handled by feeds, which are independent of the Amazon MWS API. The Amazon website has documentation and templates that you can use for creating feed files, though it might take for a while to find them.


Adding headers for CORS and changing the oauth type to Bearer

Total three changes

1 and 2.  update to
apiproxy/policies/Create-OAuth-Request.xml and apiproxy/policies/Create-Refresh-Request.xml
Adding the copy headers to request.
Currently when the request goes to backend, the headers are not being passed. And in case if we are implementing CORS, CORS fails because no request headers like Origin etc.
So copying the headers in assignmessage policy resolved the issue

update to apiproxy/resources/jsc/set-response.js

When we integrate this oauth in swagger/yaml,
The swagger ui is fetching the token, but not able to use this token .
Because oauth plugin in microgateway specifically looking for "Bearer"
FYI In oauth plugin code line 21 says const authHeaderRegex = /Bearer (.+)/;

@keyurkarnik Please review


Kong Mesh GlobalRateLimit docs have wrong service name

Where is the problem?
https://docs.konghq.com/mesh/latest/features/meshglobalratelimit
What happened?
ratelimit-service should be kong-mesh-ratelimit-service throughout.
What did you expect to happen?
ratelimit-service should be kong-mesh-ratelimit-service throughout.
Code of Conduct and Community Expectations

[X] I agree to follow this project's Code of Conduct
[X] I agree to abide by the Community Expectations

I can fix this, will PR later today / tomorrow. Just opened to track.


Producer Metadata Refresh on Disconnected Broker Takes 20 seconds to Fail

Description

When topic metadata is requested from a broker that has disconnected (presumably due to the connection being idle) - the request takes 20 seconds to fail. I would think this would be sub-second failure?

This is having a large impact for us at night when throughput is lowest - we have many instances of our microservice - but at night most of the producers are idle - too often we are getting 10 second or 20 second delays when it should be 60 ms to produce.

How to reproduce

Create a producer and point it at a kafka with several brokers (5 in my case).

Default TopicMetadataRefreshIntervalMs == 300000 ms.

At some point the producer will request metadata from a broker that has disconnected.

It will take 20 seconds to fail, and then an additional second or two to reconnect and sync back up.

Checklist
Please provide the following information:

[ ] A complete (i.e. we can run it), minimal program demonstrating the problem. No need to supply a project file.

[x] Confluent.Kafka nuget version
1.3.0

[x] Apache Kafka version.
kafka_2.12-2.3.0

[x] Client configuration.
bootstrap.servers="kafkabk0.something.com:9092,kafkabk1.something.com:9092,kafkabk2.something.com:9092,kafkabk3.something.com:9092,kafkabk4.something.com:9092"

[x] Operating system.
Windows.

[x] Provide logs (with "debug" : "..."  (43) Versions 0..0"
[15:07:31 Debug] name: "producer-v1.0.0#producer-1", facility: "CONNECT", level: Debug, message: "[thrd:kafkabk4.something.com:9092/boots]: kafkabk4.something.com:9092/bootstrap: broker in state TRY_CONNECT connecting"
[15:07:31 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk2.something.com9092/boots]: kafkabk2.something.com9092/bootstrap:   ApiKey Unknown-44?  (43) Versions 0..0"
[15:07:32 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk4.something.com:9092/boots]: kafkabk4.something.com:9092/bootstrap:   ApiKey Unknown-44?  (43) Versions 0..0"
[15:13:38 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk4.something.com:9092/boots]: kafkabk4.something.com:9092/4:   ApiKey Unknown-44?  (43) Versions 0..0"
[15:16:29 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk2.something.com9092/boots]: kafkabk2.something.com9092/2:   ApiKey Unknown-44?

[ ] Critical issue.

First metadata refresh on disconnected broker happens at 15:13:10.

As a first step, can you try v1.4.3 since I notice the code related to this has changed (I don't have context for that though).

@mhowlett - I will try that and report back - thanks.

@mhowlett Exact same behaviour with v1.4.3.

Are you on azure?

Yes.

I believe you are seeing this:
https://github.com/edenhill/librdkafka/issues/2845#issuecomment-625433415

Sounds about right - thank you very much @edenhill for the response - it is much appreciated.

The other thing that I am seeing is that when a messages comes in for a broker whose connection is down it takes a second or more to reconnect to the broker and reinitialize it (APIVERSION queries etc.):
[12:48:14 Debug] name: "producer-v1.0.0#producer-1", facility: "TOPPAR", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0: 32-part-test-topic-2 [11] 1 message(s) in xmit queue (1 added from partition queue)"
[12:48:14 Debug] name: "producer-v1.0.0#producer-1", facility: "TOPPAR", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0: 32-part-test-topic-2 [11] 1 message(s) queued but broker not up"
[12:48:14 Debug] name: "producer-v1.0.0#producer-1", facility: "STATE", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0: Broker changed state INIT -> TRY_CONNECT"
[12:48:14 Debug] name: "producer-v1.0.0#producer-1", facility: "BROADCAST", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: Broadcasting state change"
[12:48:14 Debug] name: "producer-v1.0.0#producer-1", facility: "CONNECT", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0: broker in state TRY_CONNECT connecting"
[12:48:14 Debug] name: "producer-v1.0.0#producer-1", facility: "STATE", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0: Broker changed state TRY_CONNECT -> CONNECT"
[12:48:14 Debug] name: "producer-v1.0.0#producer-1", facility: "BROADCAST", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: Broadcasting state change"
[12:48:14 Debug] name: "producer-v1.0.0#producer-1", facility: "CONNECT", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0: Connecting to ipv4#<IP_ADDRESS>:9092 (plaintext) with socket 1700"
[12:48:14 Debug] name: "producer-v1.0.0#producer-1", facility: "TOPPAR", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0: 32-part-test-topic-2 [11] 1 message(s) in xmit queue (0 added from partition queue)"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "TOPPAR", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0: 32-part-test-topic-2 [11] 1 message(s) queued but broker not up"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "TOPPAR", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0: 32-part-test-topic-2 [11] 1 message(s) in xmit queue (0 added from partition queue)"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "TOPPAR", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0: 32-part-test-topic-2 [11] 1 message(s) queued but broker not up"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "CONNECT", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0: Connected to ipv4#<IP_ADDRESS>:9092"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "CONNECTED", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0: Connected (#1)"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "FEATURE", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0: Updated enabled protocol features +ApiVersion to ApiVersion"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "STATE", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0: Broker changed state CONNECT -> APIVERSION_QUERY"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "BROADCAST", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: Broadcasting state change"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "SEND", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0: Sent ApiVersionRequest (v0, 46 bytes @ 0, CorrId 1)"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "TOPPAR", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0: 32-part-test-topic-2 [11] 1 message(s) in xmit queue (0 added from partition queue)"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "TOPPAR", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0: 32-part-test-topic-2 [11] 1 message(s) queued but broker not up"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "RECV", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0: Received ApiVersionResponse (v0, 276 bytes, CorrId 1, rtt 63.37ms)"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0: Broker API support:"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey Produce (0) Versions 0..7"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey Fetch (1) Versions 0..11"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey Offset (2) Versions 0..5"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey Metadata (3) Versions 0..8"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey LeaderAndIsr (4) Versions 0..2"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey StopReplica (5) Versions 0..1"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey UpdateMetadata (6) Versions 0..5"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey ControlledShutdown (7) Versions 0..2"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey OffsetCommit (8) Versions 0..7"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey OffsetFetch (9) Versions 0..5"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey FindCoordinator (10) Versions 0..2"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey JoinGroup (11) Versions 0..5"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey Heartbeat (12) Versions 0..3"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey LeaveGroup (13) Versions 0..2"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey SyncGroup (14) Versions 0..3"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey DescribeGroups (15) Versions 0..3"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey ListGroups (16) Versions 0..2"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey SaslHandshake (17) Versions 0..1"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey ApiVersion (18) Versions 0..2"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey CreateTopics (19) Versions 0..3"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey DeleteTopics (20) Versions 0..3"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey DeleteRecords (21) Versions 0..1"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey InitProducerId (22) Versions 0..1"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey OffsetForLeaderEpoch (23) Versions 0..3"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey AddPartitionsToTxn (24) Versions 0..1"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey AddOffsetsToTxn (25) Versions 0..1"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey EndTxn (26) Versions 0..1"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey WriteTxnMarkers (27) Versions 0..0"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey TxnOffsetCommit (28) Versions 0..2"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey DescribeAcls (29) Versions 0..1"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey CreateAcls (30) Versions 0..1"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey DeleteAcls (31) Versions 0..1"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey DescribeConfigs (32) Versions 0..2"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey AlterConfigs (33) Versions 0..1"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey AlterReplicaLogDirs (34) Versions 0..1"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey DescribeLogDirs (35) Versions 0..1"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey SaslAuthenticate (36) Versions 0..1"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey CreatePartitions (37) Versions 0..1"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey CreateDelegationToken (38) Versions 0..1"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey RenewDelegationToken (39) Versions 0..1"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey ExpireDelegationToken (40) Versions 0..1"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey DescribeDelegationToken (41) Versions 0..1"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey DeleteGroups (42) Versions 0..1"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey Unknown-43? (43) Versions 0..0"
[12:48:15 Debug] name: "producer-v1.0.0#producer-1", facility: "APIVERSION", level: Debug, message: "[thrd:kafkabk0.something.com:9092/boots]: kafkabk0.something.com:9092/0:   ApiKey Unknown-44?  Will the producer reconnect once it receives the reset - or wait until another message comes in?

The producer will reconnect if and when there are requests to be sent to the broker, such as a produce request to produce messages.

@edenhill Thank you.

@edenhill A followup to this:

I also see it taking 20 seconds to fail when sending a message to a disconnected broker.

RequestTimeoutMs is default (5000 ms).

Is there another setting to control how long it takes to fail when the connection has been silently killed?

request.timeout.ms is only used for ProduceRequests. socket.timeout.ms is used for most other requests.
But it is not recommended to lower this value since any system or network hiccups during normal operation risks a premature timeout.
We're trying to work around these Azure weak idle disconnects in the upcoming v1.5.0 release by reusing the least idle connection for things like metadata requests, which should keep that connection alive and not cause these idle disconnect request timeouts.

Closing as all the queries are answered above.


Add an option to ignore failed environments in env start

What does this PR do?

Add an option to ignore failed environments in env start
Motivation

Some integrations have environments only for windows platforms and some for linux/windows. This is not ideal but that's what we have right now. It means that if you want to run all the tests that are compatible with your current platform, you'll have to enumerate them one by one because otherwise the test suite will stop after the first failed environment.
https://datadoghq.atlassian.net/browse/AITOOLS-53
Additional Notes

I did not add unit test because it's not possible to mock the context passed to a click command invoked by the runner in a unit test. We will try to improve it when the commands will be ported to ddev
You can test it on any windows only integrations on your mac. With the option, it should iterate over all the envs, without it will stop after the first one.

Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] PR title must be written as a CHANGELOG entry (see why)
[ ] Files changes must correspond to the primary purpose of the PR as described in the title (small unrelated changes should have their own PR)
[ ] PR must have changelog/ and integration/ labels attached
[ ] If the PR doesn't need to be tested during QA, please add a qa/skip-qa label.

Hmm, afaik it's possible (but not well-documented) to pass an obj kwarg to CliRunner.invoke.
Here is an example from the wild.

That's true but I don't think you can provide the context itself, which I would like to mock

obj is just an attribute on the context object. We can populate it if it's not provided and then still pass the context around to nested commands (like start is in this case).
Maybe that's too big of a refactoring?

obj is just an attribute on the context object. We can populate it if it's not provided and then still pass the context around to nested commands (like start is in this case).
Maybe that's too big of a refactoring?

for datadog_checks_dev I would say yes. That's something we should consider while rewriting the commands in ddev though


New extension: is clicked

Description
if you click it allows you to do something
How to use the extension
yes
Checklist

[X] I've followed all of the best practices.
[X] I confirm that this extension can be integrated to this GitHub repository, distributed and MIT licensed.
[X] I am aware that the extension may be updated by anyone, and do not need my explicit consent to do so.

What tier of review do you aim for your extension?
Community (Unreviewed)
Example file
My project5.zip
Extension file
IsClicked.zip

Thank you for submitting an extension!
However, this functionality is already available in a few extensions, my favorite beibf the ButtonFSM.
Please continue thinking of new ideas and submitting them.


guardrails-2.json SCP blocks all SSM Parameters Deletion

Describe the bug
The SCP guardrails-2.json is using a wildcard to stop any SSM parameters being deleted, the resource should be filtered to protect just LZA parameters
"Sid": "PreventSSMModification",
      "Effect": "Deny",
      "Action": ["ssm:DeleteParameters"],
      "Resource": "*",
      "Condition": {
        "ArnNotLike": {
          "aws:PrincipalARN": [
            "arn:${PARTITION}:iam::*:role/${ACCELERATOR_PREFIX}-*",
            "arn:${PARTITION}:iam::*:role/AWSControlTowerExecution",
            "arn:${PARTITION}:iam::*:role/cdk-accel-*"
          ]
        }
      }
    },

Looking at the parameters, it looks like it could be restricted to accelerator/AWSAccelerator-*
To Reproduce
Apply the SCP to a OU
Expected behavior
The SCP should protect the LZA install but not stop routine actions e.g. deleting SSM parameters.

Related: I could be mistaken but it doesn't seem to protect against deleting parameters one by one with DeleteParameter (not plural). "ssm:DeleteParameter" should probably be added to the action array.

Hello, this SCP statement has been updated in our latest release. Please note the variable used will only work as of v1.5.0 deployments. Thank you for your feedback and support of the LZA solution! I will close this as resolved.


Drivetrain Boilerplate

Creates Base Template for all Drivetrain Files
(Create Empty files in new folder Drive for moduleIO, drive, module, moduleIOSim, and  moduleIOReal)

Completed Boilerplate


Polyglot Notebook: [DevExE2E][Regression] The kernelName and language show as csharp in the created Untitled-1.ipynb contents.

Describe the bug
The kernelName and language show as csharp in the created Untitled-1.ipynb contents which only contains a single cell of type "F#".
Note: It's a regression issue. It doesn't repro on - VSCodeUserSetup-arm64-1.81.1 + dotnet-interactive-vscode-1.0.4454011.vsix + dotnet-sdk-7.0.400-win-x64.
Detailed Repro Build info: VSCodeSetup-x64-1.83.1 +dotnet-interactive-vscode-1.0.4514021.vsix+ dotnet-sdk-7.0.402-win-x64
VS Code: https://update.code.visualstudio.com/1.83.1/win32-x64/stable
Version: 1.83.1 (system setup)
Commit: f1b07bd25dfad64b0167beb15359ae573aecd2cc
Date: 2023-10-10T23:48:05.904Z
Electron: 25.8.4
ElectronBuildId: 24154031
Chromium: 114.0.5735.289
Node.js: 18.15.0
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.25398
dotnet-interactive-vscode-1.0.4514021.vsix
Build link: https://dev.azure.com/dnceng/internal/_build/results?buildId=2291238&view=artifacts&pathAsName=false&type=publishedArtifacts
Steps:
1.Open the notebook from https://github.com/dotnet/interactive/blob/main/NotebookTestScript.dib.
2.Ctrl+Shift+P` => "Polyglot Notebook: Create new blank notebook"
3.Select "Create as .ipynb"
4.Select "F#"
5.You should have a new empty notebook named something like "Untitled-1.ipynb" with a single cell of type "F# (Polyglot Notebook)".
6.Set the cell contents to 1+1 and execute.
7. Save to disk.
8. Open that file in notepad.
9. Check the contents of Untitled-1.ipynb
Expected Results:
The kernelName and language should be fsharp in the created Untitled-1.ipynb contents.

Actual Results:
The kernelName and language show as csharp in the created Untitled-1.ipynb contents.

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"dotnet_interactive": {
"language": "fsharp"
},
"polyglot_notebook": {
"kernelName": "fsharp"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div class="dni-plaintext">2"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"1+1"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".NET (C#)",
"language": "C#",
"name": ".net-csharp"
},
"language_info": {
"name": "polyglot-notebook"
},
"polyglot_notebook": {
"kernelInfo": {
"defaultKernelName": "csharp",
"items": [
{
"aliases": [],
"name": "csharp"
},
{
"aliases": [],
"languageName": "fsharp",
"name": "fsharp"
}
]
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Please complete the following:
Which version of .NET Interactive are you using? (In a notebook, run the #!about magic command. ):

OS

[√] Windows 11
[ ] Windows 10
[ ] macOS
[ ] Linux (Please specify distro)
[ ] iOS
[ ] Android

Browser

[ ] Chrome
[ ] Edge
[ ] Firefox
[ ] Safari

Frontend

[ ] Jupyter Notebook
[ ] Jupyter Lab
[ ] nteract
[√] Visual Studio Code
[ ] Visual Studio Code Insiders
[ ] Visual Studio
[ ] Other (please specify)

Screenshots
If applicable, add screenshots to help explain your problem.

This issue doesn't repro on VS Code 1.85.1 + dotnet-interactive-vscode-1.0.4611011.vsix + dotnet-sdk-8.0.100. Hence closing it.
Fixed Screenshot:

This issue reproduces on VSCodeSetup-arm64-1.89.1 + dotnet-interactive-vscode-1.0.5263011.vsix + dotnet-sdk-8.0.300-win-arm64 again. So re-active it.


Add colorblind filter to the option menu

Resolves #270
Closes #9

Codecov Report

Merging #272 (3f17da6) into master (fc07194) will decrease coverage by 0.03%.
The diff coverage is 0.00%.

@@            Coverage Diff            @@
##           master    #272      +/-   ##
=========================================
- Coverage    7.53%   7.50%   -0.04%
=========================================
  Files         193     193
  Lines        4152    4172      +20
  Branches     1358    1351       -7
=========================================
  Hits          313     313
- Misses       3690    3710      +20
  Partials      149     149

Impacted Files
Coverage Δ

src/game/scenes/SettingsMenuScene.cpp
0.00% <0.00%> (ø)

src/game/scenes/SettingsMenuScene.hpp
0.00% <ø> (ø)

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 fc07194...3f17da6. Read the comment docs.


dependabot: allow indirect dependency updates

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.

[x] Have you successfully run brew typecheck with your changes locally?
[x] Have you successfully run brew tests with your changes locally?
[x] Have you successfully run brew man locally and committed any changes?

Old dependabot-preview used to do this. I think it's better for security reasons.

Review period will end on 2021-02-15 at 03:16:07 UTC.

Review period ended.

This matches what the docs suggests to do, though the last docs check didn't seem to check for anything more: https://github.com/Homebrew/brew/network/updates/88921829

Tried it on a test repo with the same Gemfile(.lock):

I guess something is bugged with this repo specifically 🤷♂


api.Validate(): multiple error formatting

What does this PR do?

[ ] Adds new functionality
[x] Alters existing functionality
[ ] Fixes a bug
[ ] Improves documentation or testing

Please briefly describe your changes as well as the motivation behind them:

This is a small PR to adjust and adapt validation formats to more fitting standards
Currently, the Validate function of the api specs classes return only the first error found. This PR aims at transforming this error into a list of error, squashed into one formated and pretty-printed error. Outside of our custom validate functions, output is still an error and integration into various interfaces has not changed the slightest
Additionally, the error management in chaosli has been adapted and corrected for correct display

Code Quality Checklist

[x] The documentation is up to date.
[x] My code is sufficiently commented and passes continuous integration checks.
[x] I have signed my commit (see Contributing Docs).

Testing

[x] I leveraged continuous integration testing

[x] by depending on existing unit tests or end-to-end tests.
[ ] by adding new unit tests or end-to-end tests.

[x] I manually tested the following steps:

use the chaosli: go run cli/chaosli/main.go validate --path examples/<any.yaml>
[x] locally.
[ ] as a canary deployment to a cluster.

Why not use error wrapping, instead of error slices? https://golang.org/doc/go1.13#error_wrapping

@ptnapoleon Wrapping/upwrapping looks quite uneasy and shows little flexibility, and I think using it the way I wished to use error slices would be stretching the principles/ideas behind error wrapping/unwrapping, and would end up being an even bigger mess
However I just ran into this library by hashicorp which looks nice, I'll experiment with it


Serenity Event Lifecycle

Hi @volkanceylan and everyone,
Can someone document event lifecycle for Serenity. Serenity is a great framework to build web application but it is hard to understand and handle/decor event in typescript (at least for me). Sometime I want to do something but I don't know where do I should start if I don't see demo for that feature.

Hm, need a chapter in guide.

something like this https://vuejs.org/v2/guide/instance.html#Lifecycle-Diagram

In wiki there is a page for repository calling sequence in server side
https://github.com/volkanceylan/Serenity/wiki/Repository-overridable-methods-and-calling-sequence

@Estrusco yeah, that page is great for server side, still need life-cycle for client side

There is not a predefined, step by step lifecycle like ASP.NET WebForms or Vue there but i agree that frontend and some parts in repository side should be documented more.


Fastnlight: Watch +1336-441-4118

Fastnlight requests the watch of the watch_number +1336-441-4118. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

Approved by Spevacus in Charcoal HQ


[error]An error occurred while creating the pipeline.

I want to check in AssemblyInfo.cs files after changed build version number with VersionUpdate.ps1 powershell script.
My build task  and log files

Can you run a build with System.Debug = true?
Are you running this against TFS or VSTS?
Is Visual Studio 2015 installed on your build server?
If so RTM or Update 1?
What's the powershell version you have installed? I've tested this against a Windows 10 machine (which runs Powershell 5) and the Hosted agent (which runs Powershell 4)
What is the build agent version you're running?

Hi
I have powershell version like this:
Major  Minor  Build  Revision

5      0      10586  63
I use VSTS with visual studio 2015 update 1
Agent version is 1.94.0 was installed on my computer. This is not a hosted agent.
with system.debug=true i have  build log like this

Into GAC)MSIL i have this assembly but version is 12.0. Into Visual studio 2015 folder version is 14.0. Probably this is a problem.

are you running a 32 bit version of Windows or a 64 bit version?

The Gac version should not be the issue. But I was hoping to get a little more information from my logging routines about where the assemblies were loaded from. It's one of the pain points of the current build agent. It ships with an incomplete Client Object Model, so I need to find these assemblies elsewhere.

I have a test build I could share with your account... What's the VSTS account you're using?

tomkor.visualstudio.com with user address<EMAIL_ADDRESS>

Everything is ok now :)

Thanks for letting me know.


adding callbackToNode() function which is a kind of groupByNode() usable with non-commutative aggregation functions

If we have e.g. thise series:

sys.server1.filesystems.root.used
sys.server1.filesystems.root.total
sys.server2.filesystems.root.used
sys.server2.filesystems.root.total
sys.server2.filesystems.home.used
sys.server2.filesystems.home.total

Then groupByNode is able of computing the grant total of used or total bytes, but it is not able to get usage percentage for every filesystem.
The new callbackToNode() function can:

callbackToNode(sys.server*.filesystems.*.{used,total},4,'asPercent',true)

This target is a dynamic equivalent of those targets:

asPercent(sys.server1.filesystems.root.{used,total})
asPercent(sys.server2.filesystems.root.{used,total})
asPercent(sys.server2.filesystems.home.{used,total})

The callbackToNode function in this PR is no longer usefull, since #1478 introduced an applyToNode method which does almost the same thing, see http://graphite.readthedocs.io/en/latest/functions.html#graphite.render.functions.applyByNode
Therefore I wont rewrite my coworker code to make this PR mergeable.


Add add_scalar_mut and add_scalar_checked_mut

Which issue does this PR close?

Closes #3133.
Rationale for this change

What changes are included in this PR?

Are there any user-facing changes?

Thank you for working on this, I wonder if you have some benchmarks of how this compares to the allocating version, ideally using a modern allocator like jemalloc.

Not yet on benchmarking. I think it should be better and hard to think that it could be slower. I will revise this based on above comments and run a benchmark later. Thanks.

Simply updated slice related functions.
I will update the result type later or tomorrow. (occupied occasionally by other matters in recent days, will be a bit slow response)

I ran a simple benchmark which calls add or add_mut on two primitive arrays, e.g.,
let mut arr_a = create_primitive_array::<Float32Type>(5120000, 0.0);

for _ in 0..10 {
    let arr_b = create_primitive_array::<Float32Type>(5120000, 0.0);
    // arr_a = add(&arr_a, &arr_b).unwrap();
    arr_a = add_mut(arr_a, &arr_b).unwrap().unwrap();
}

array add               time:   [675.93 ms 676.09 ms 676.28 ms]
                        change: [-3.2262% -3.0312% -2.8816%] (p = 0.00 < 0.05)
                        Performance has improved.

This seems like quite a lot of additional complexity for only a 3% performance improvement. What do you think about just providing try_unary_mut and leave it at that, just thinking about the number of additional _mut arithmetic kernels this is going to produce? Especially given that most of these kernels would be trivial for a user to implement themselves, should they wish to?

Yeah, thought about this option too. I think it makes sense. I can remove _mut arithmetic kernels and only keep try_unary_mut so we can implement these kernels.


PowerShell module cannot be loaded unless the execution policy is less restrictive

README.md
By default running scripts (in this case: Import-Module .\tools\OpenConsole.psm1) are disabled. In order to run the script we have to set the execution policy using  Set-ExecutionPolicy RemoteSigned command.
It would be nice to have this thing documented as well.
Happy to create a PR for this, it's a small thing but can save time of new contributors joining the project :)

@adiviness may be interested in this

Thanks for the report!
It's generally expected that developers who want to do powershell things will have set their execution policies to something more amenable to local development. We'll consider documenting that, but there's a bunch of "early start" things that our guides shouldn't have to cover.

Also, we already require that developer mode is enabled in the settings app, one of the default settings it'll change is the powershell execution policy.


Fix start and moving events

the break statement needs to be removed in the moving case so that the default case can fire the start and moving events

You're right. This is a bug. Thank you :)


There seems to be a haptics problem with some software.

I am using it with HP Reverb G2(V1) and there seems to be a problem with haptics in some games.
In HL2VRMod, both controllers vibrate as soon as the title screen appears, and it doesn't stop until I turn haptics off in controller binding, including during the SteamVR menu.
In Into The Radius VR, both controllers vibrate at the title screen, but then there seems to be no problem in the game scene.
In Fracked, only the right hand vibrates at the title screen and it goes away after the game starts, but once it dies, the right or both hands start vibrating and do not stop. The vibration stops during the SteamVR menu.
These strange vibrations do not occur when using the Reverb G2 controller.
I am using machine translation, so apologies if the text is strange.
My PC:
CPU:9700K  GPU:RTX2070Super  MEM:32GB
HMD:Reverb G2(V1) & Rift Touch Controller

I missed this issue on here, but good it reported on Reddit or discord and it got fixed a while ago, should be sorted :-)
These programs send a steam of haptic events at 0Hz rather than no events, and I was rounding up to minimum feelable value rather than discarding the events.


add istanbul code coverage

adds istanbul code coverage only when running npm run test-unit

yaay

:+1: I would have just pushed this to master, but wanted to make sure you saw it and were okay with istanbul.

huge fan


Fix issue: #473

Fix issue: #473

This has failed ci due to linting and the tests, so it needs a bit more work. To fix the linting errors you can run npm run lint:fix and commit the resulting changes.
The test failure looks to be that the activator for the scrap dialog isn't being found (no element with id="scrap-dialog" on the page) which will take a bit more digging. Have you opened the app in a game and been able to open the scrap dialog?
Can you comment with screenshots of the gameView and then the open dialog? I will take a deeper look tomorrow to see if I can help you troubleshoot it


Issue 15366 - Enum typed as bool behaves as bool even when cast

https://issues.dlang.org/show_bug.cgi?id=15366
From a CastExp 'a && b', its semantic returns an AndAndExp with the 'Enum' type.
But if its semantic will be called once more, it will repaint its type to 'bool'.
Same problem exists in OrOrExp.

Wow, nice! I was looking at it just now and indeed noticed that it got removed by semantic! Thanks @9rnsr !

LGTM, by the way

Auto-merge toggled on


Improve loading of ReactiveStreamsFactory and ReactiveStreamsEngine to be in line with the solution in other specs

Currently, ReactiveStreamsFactory is loaded using service loader in a private factory() method. Other specs do something similar to provide an implementation (Config in ConfigProviderResolver, REST client, etc.)
Other specs that use this pattern also do the following, which the current solution in ReactiveStreamsFactory.factory() does not:

load the implementation using the thread contect classloader instead of the default classloader
provide means to set an implementation directly and bypass service loader, this is to support environments where service loader isn't supported, mainly OSGi

An example of a solution, which meets the above 2 points, is the ConfigProviderResolver.instance() in the Config spec.

@cescoffier @jroper, it should be enough to copy&paste from Config spec. I'd like to do it if I find time. @Emily-Jiang, maybe you could do it too, if you can find time for it sooner than me?

I don't mind using the approach from the other spec. @jroper WDYT?

BTW, the issue also affects ReactiveStreamsEngine.

I've updated the title to reflect the 2 cases.

I have no strong opinion on this.
If you ever need to get round this problem, you might find it interesting that in WebSphere OpenLiberty (which is all OSGi)  we currently make bnd files include:
https://github.com/OpenLiberty/open-liberty/blob/integration/dev/cnf/resources/bnd/app-resources.bnd
after setting app-resources to the service-load file and then
https://github.com/OpenLiberty/open-liberty/blob/integration/dev/com.ibm.ws.classloading/src/com/ibm/wsspi/classloading/ResourceProvider.java
will make the resources service loadable via the Java service loading mechanism.
not saying that is an alternative solution - just for your curiosity :-).

@hutchig There are many ways to deal with SPI in OSGi environment. I tend to recommend extender patterns (at the module layer) or whiteboard patterns (at the service layer). For this issue, we should apply what the other specs have done. Allowing to pass a specific instance can also be useful in environments with limited SPI feature or reflection facilities (such as GraalVM/SubstrateVM - even if SPI support has been added recently).

@OndrejM - https://github.com/eclipse/microprofile-reactive-streams/pull/104.

@cescoffier Clement, I bow to your OSGi fu...and +1 on #104.

@hutchig I love the ASCII art in the bnd file! The approach you use Declarative Services so it exposes the SPI implementation as a service. It's actually pretty nice as it does not require using Bundle.getClassLoader() which has security implications.
In the PR, it just allows "any" bundle importing the package to set the instance. So, it can be used in combination with the Declarative Service approach.

PR merged in master.


Bro Parser Improvements

The old Bro parser required that the data came wrapped in a key that
specified the protocol. But not every Bro produces data in that format;
now the parser supports that format AND a format that is flatter and the
protocol is just another attribute in the message.
This also contains some minor code cleanup in the Bro parser.

Other than comments above, LGTM! +1

Note for other reviewers: the way GitHub flowed this is not ideal. Try a git diff -w for easier reading.

@ehashman Thanks for the review, I fixed those things.


Not Able to use 'speechbrain/spkrec-ecapa-voxceleb' embeddings in Google Colab.

Describe the bug
I have installed speechbrain module 1.0.0 latest version and wants to use 'speechbrain/spkrec-ecapa-voxceleb' embeddings in Google Colab but it's throwing error that speechbrain must be installed to use 'speechbrain/spkrec-ecapa-voxceleb' embeddings.

Expected behaviour
After speechbrain installation I was expecting to use 'speechbrain/spkrec-ecapa-voxceleb' embeddings.
To Reproduce
No response
Environment Details
No response
Relevant Log Output
No response
Additional Context
No response

Hello @itsdivgithub, could you please provide a working reproductible example with google colab ? Thanks.


added free projection without open ended walks

thanks for the feedback! because the fp afqmc I implemented is adjacent to but not exactly the same as phaseless, it is a bit tricky to design. I have completely severed it from the phaseless code now, so it can be moved to a completely different place as well.

LGTM


🐛[BUG] : Name field validation on FAQ page

Description
The "Name" field should only accept alphabetical letters (a-z, A-Z). Currently, the field allows users to input symbols and special characters, which may lead to invalid or spam submissions.
Screenshots

Any additional information?
No response
What browser are you seeing the problem on?
Chrome
Checklist

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I'm a GSSoC'24-Extd contributor
[X] I'm a Hacktoberfest'24 contributor
[X] I am willing to work on this issue (optional)

@vishanurag please assign me this issue


Have a docker client per set up driver

This adds a map in DockerUtil that will assign a separate docker
client per each driver. The reason for this is that each driver
will be reaching a different VM/Host and thus a different IP.
This patch depends on the UI adding driverName to
props.container.

:+1:


Fix bootstrap https

Bootstrap in the plnkr examples is not loading over https, but since plnkr is the resource is getting blocked.

This PR is obsolete now that #229 has landed. @petebacondarwin can you close it?


Change the indicator scheme to reflect the new indicator proposals from UNSTAT.

Add new fields (data source, indicator id, priority) and consolidate/remove/rename some others to reflect new proposals from UNSTAT mentioned in https://github.com/SDG-data/SDGs/issues/27
Specifically,

"targets": "1.1" -> "targets" : {"primary-target": "1.1", "other-targets": "1.2, 1.3"}
"indicator" is renamed to "title"

"indicator" (indicator id field)

"data-source" (= "source" from the UNSTAT proposal)

"other targets" (moved under "targets")

"other goals"

"priority" (= "priority" from the UNSTAT proposal)

"available" now also includes "Tier" from the UNSTAT proposal (Tier I, II, III)

Currently in the branch https://github.com/SDG-data/SDGs/tree/UNSTAT-indicators with some modifications.


Pod fails to start - unable to mount volume

Describe the bug
As far as I can tell, I followed all the steps in the brownfield guide exactly.  When I run the helm chart, the pod gets stuck in ContainerCreating, complaining that a volume could not be mounted.  What is it trying to mount, exactly, and what could be causing this error?
Ingress Controller details
Name:           ingresss-azure-ingress-azure-678dd4447b-xtt9g
Namespace:      default
Priority:       0
Node:           akswin000001/<IP_ADDRESS>
Start Time:     Thu, 23 Apr 2020 18:36:06 +0000
Labels:         aadpodidbinding=ingresss-azure-ingress-azure
app=ingress-azure
pod-template-hash=678dd4447b
release=ingresss-azure
Annotations:    prometheus.io/port: 8123
prometheus.io/scrape: true
Status:         Pending
IP:
IPs:
Controlled By:  ReplicaSet/ingresss-azure-ingress-azure-678dd4447b
Containers:
ingress-azure:
Container ID:
Image:          mcr.microsoft.com/azure-application-gateway/kubernetes-ingress:1.0.0
Image ID:
Port:
Host Port:
State:          Waiting
Reason:       ContainerCreating
Ready:          False
Restart Count:  0
Liveness:       http-get http://:8123/health/alive delay=15s timeout=1s period=20s #success=1 #failure=3
Readiness:      http-get http://:8123/health/ready delay=5s timeout=1s period=10s #success=1 #failure=3
Environment Variables from:
ingresss-azure-cm-ingress-azure  ConfigMap  Optional: false
Environment:
AZURE_CONTEXT_LOCATION:  /etc/appgw/azure.json
AGIC_POD_NAME:           ingresss-azure-ingress-azure-678dd4447b-xtt9g (v1:metadata.name)
AGIC_POD_NAMESPACE:      default (v1:metadata.namespace)
Mounts:
/etc/appgw/azure.json from azure (rw)
/var/run/secrets/kubernetes.io/serviceaccount from ingresss-azure-sa-ingress-azure-token-558mm (ro)
Conditions:
Type              Status
Initialized       True
Ready             False
ContainersReady   False
PodScheduled      True
Volumes:
azure:
Type:          HostPath (bare host directory volume)
Path:          /etc/kubernetes/azure.json
HostPathType:  File
ingresss-azure-sa-ingress-azure-token-558mm:
Type:        Secret (a volume populated by a Secret)
SecretName:  ingresss-azure-sa-ingress-azure-token-558mm
Optional:    false
QoS Class:       BestEffort
Node-Selectors:
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:
Type     Reason       Age                      From                   Message

Warning  FailedMount  8m15s (x114 over 3h43m)  kubelet, akswin000001  MountVolume.SetUp failed for volume "azure" : hostPath type check failed: /etc/kube rnetes/azure.json is not a file
Warning  FailedMount  2m22s (x98 over 3h41m)   kubelet, akswin000001  Unable to mount volumes for pod "ingresss-azure-ingress-azure-678dd4447b-xtt9g_defa ult(4afd046b-8591-11ea-8cdb-aa7c0db8dc3e)": timeout expired waiting for volumes to attach or mount for pod "default"/"ingresss-azure-ingress-azure-678dd444 7b-xtt9g". list of unmounted volumes=[azure]. list of unattached volumes=[azure ingresss-azure-sa-ingress-azure-token-558mm]

Hi @timcrall, you have a extra space in your pod spec:
volumes.hostPath.path: "/etc/kube rnetes/azure.json"

Nice catch!  Okay, I can manually change that, I guess - but since I'm using helm - that error doesn't appear to be in any file I've created, right?  I don't see it anywhere in the config yaml file that I'm feeding into the helm command, which is the only file I've touched - is this a typo somewhere in the code?

I think this is just pasting/rendering issue.
@timcrall is this happening on an AKS cluster ?

yes

Yeah, the hostpath in the pod's yaml looks correct, I think @akshaysngupta was correct about it being a pasting error

oo, I have a thought, am going to try something

@timcrall yes, was about to point that the node is Windows.
Node: akswin000001/<IP_ADDRESS>

Facing the same issue. Which yaml file did you change?

Facing the same issue. Which yaml file did you change?


longitude_slicer is not being covered by any test

https://app.codecov.io/gh/COSIMA/regional-mom6/blob/main/regional_mom6%2Fregional_mom6.py#L78
Given its complexity we should have at least a simple test to test this.

Fixed by Navid's longitude slicer test in #112

You probably meant to say https://github.com/COSIMA/regional-mom6/pull/125
But, truth is that the test doesn't really test anything. Only asserts that longitude_slicer spits out an AssertionError. So I'm reopening this to remind us to add a test that really tests to ensure that longitude_slicer does what it claims it do.

@ashjbarnes could you give me an example here for a case where the longitude_slicer should take care of the seam?
like... data with lon in [-180, 180] and then ask for
longitude_slicer(data, (150, 200), 'lon')

??


🚀 feat: Added author modal as per figma and updated Chapter Header

@Gupta-Anubhav12 @akshitarora921 Please have a look at this!

@akshitarora921 @Gupta-Anubhav12 Please check it once now!

@akshitarora921 Have a look once and merge please!


Adding Quiz Game

Project title
(Quiz Game for Developers)
MySelf
I'm a GSSOC 022 participant.
Project Description
(It is a very simple quiz type game where it will be a question and there will be 4 multiple options for the user to select the answer if the answer will be correct then the user can be able to go on to the next question, for now, it has only four questions but the user can add their own questions and answers to the project🙂)
I'm attaching the DEMO please go through the Issue and I hope that you will assign me the issue to work on.
Stack:
And in order to tick the check box just but x inside them for example - [x] like this. Please delete options that are not relevant.

[x] Html
[x] CSS
[x] JavaScript

You can work on it!


Moved dialect queries to a new module pypika.dialects

Fixes #67 Moved the dialect query classes into their own module

Coverage increased (+0.002%) to 98.503% when pulling 9bc41a86a9e6eb6c53dbd1904824370665b6caed on sql_dialects into 47e5865823706cb45c3460c1138ee597fa6c67ae on master.


drivers: plic: make trigger type default & define registers directly in driver

Define the trigger type register offset directly in the driver.
This feature is now enabled by default, according to the specs.
Define all the register offset directly in the driver according
to the spec. Updated devicetrees that has PLIC accordingly.
See the following for more info:

https://github.com/zephyrproject-rtos/zephyr/pull/62907#discussion_r1332817434
RISCV PLIC: Memory Map

This PR has commits from #63171, please review that first

Hi! In general - I feel like the commit messages could use some better justification for the changes we're introducing here. E.g. by stating that these registers in fact are not configurable and their offsets are strictly defined in the specification.

Could you have another look please?


Engine render which used in Helm lint costs time but the content is only used for "validateTopIndentLevel"

https://github.com/helm/helm/blob/main/pkg/lint/rules/template.go#L129
Now use helm lint, the most time cost in render step. And it cost high CPU also.
But it seems the render output is only used  for "validateTopIndentLevel"
The further validation function validateYamlContent is not implemented yet.
Must "validateTopIndentLevel" uses finial yaml content as input?
Before the main yaml validation function is implemented, if there is some option we can use to avoid render action ?
Output of helm version: latest
Output of kubectl version: N/A
Cloud Provider/Platform (AKS, GKE, Minikube etc.): N/A

The result (error or not) of the rendering is also verified, right? https://github.com/helm/helm/blob/main/pkg/lint/rules/template.go#L92

Yes, I see. Checking the result of rendering itself is a key step in helm lint.  thanks.


Unconditionally add a newline if a test times out or fails.

Failure should generally result in output unless something goes wrong,
but timeout currently doesn't, but should be printed 100% of the time.

This explains the discrepancy I saw in #975


Service connection reference / schema

Hi,
There's no documentation or reference about service connections. A json schema like the one available for tasks would be nice.
My use case: I need to create an endpoint similar to the SSH one (host, port, password...), without the standard URL field (or at least not visible). I'd also like to be able to drag'n'drop certificateS (with size > 10k) but there's not a single documentation on this.
Anything in your backlog about this?

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

ID: 90db6e4c-6240-fe2e-3043-0a7d186b9ca7
Version Independent ID: a62ec500-3330-e28a-8019-118a3b9e261f
Content: Service Endpoints
Content Source: docs/extend/develop/service-endpoints.md
Product: devops
Technology: devops-ecosystem
GitHub Login: @chcomley
Microsoft Alias: chcomley

Hi @BiribiriJaNai, Thanks for reaching out. I currently don't have anything in my backlog concerning this. I'm following up with a PM and will be in touch. Thanks again!

Has anything changed with this? I'm ussing the Token auth scheme in my service connection, but also do not need the Server Url. I want to hide it.

@jordynniara , if you just want to hide the default Server URL field, you can try something like this.
This example is what I used to create a service connection for Apache Kafka:
	"name": "kafka",
	"displayName": "Kafka Apache",
	"icon": "static/icon-kafka-endpoint.png",
	"url":  {
		"displayName": "Bootstrap Server URL",
		"value": "https://www.visualstudio.com",
		"isVisible": "false",
		"required": "false"
	},
	"inputDescriptors": [
		{
			"id": "hostname",
			...
		},
		{
			"id": "port",
			...
		}
	]

The important part is "isVisible": "false and "required": "false".
You also have to set a valid URL by default, because even if the field is hidden, it's evaluated.
Which gives me the following, without the "Server URL" field:

That was exactly what I needed. Thanks @BiribiriJaNai

@BiribiriJaNai, I'm glad you got what you needed! Closing this issue. Thanks!

@chcomley , I didn't get what I needed... I found a part of the solution to my problem, by myself.
There's still no documentation out there about the things I mentionned in my first post.
Thanks for not closing this issue.

I’ve reopened the issue and will help you get to the bottom of this, @BiribiriJaNai.

Hey @chcomley - this is definitely needed, there seems to be many aspects of Service Connection Contributions ms.vss-endpoint.service-endpoint-type, which is unavailable to people trying to build contributions to the Azure DevOps marketplace.  Holistically, we really need a json schema for vss-extension.json.

@romil07 thanks for the link but I've already read this document.
As to what I'm looking for, it's in my initial post:

I'd also like to be able to drag'n'drop certificateS

it seems the UI for SSH service connection has been updated but a previous version looked like this:

See the "Upload SSH private key file..." link? It opened a popup similar to this one

That's what I'm looking for.

@BiribiriJaNai Ok. As part of the UI refresh, the drag drop was probably not implemented.
@ashokirla Can you take a look at this ask and prioritize accordingly?

I've reassigned this issue to @ashokirla. Thank you.

Adding @narula0781 for further guidance/assistance, thank you!

@BiribiriJaNai This has been just made available. It's possible that the it hasn't started yet. Give it a week max, you should get it.

@BiribiriJaNai This is not yet possible. The file picker option and drag-drop on top of it is something that we haven't made extensible yet.
@ashokirla to take a call on this.

@BiribiriJaNai @AdamCoulterOz Did you check this doc?
https://github.com/microsoft/azure-pipelines-extensions/blob/master/docs/authoring/endpoints/serviceEndpoints.md
This document is a guidance on how to create a new Service endpoint type.
If you haven't checked this, take a look once and let me know if this is answered or not.
If you have gone through this, can you tell me what you are looking for exactly?
Formally, this is the document that we direct customers to if they need any help. If you have any specific ask, I can update this doc.

@romil07 yes - I've seen this... but is very incomplete... there are many many attributes and objects which we need a real JSON schema for... I scraped every VSS Extension json configuration  I could from GitHub then inferred the schema here:
https://github.com/AdamCoulterOz/vsts-docs/pull/1
I'd really like Microsoft to fully document it (as an actual comprehensive JSON schema document) from their side, as we can only infer from the outside.

This issue is stale for over 1.5 years and therefore will now be closed. If you need further assistance, please report a problem in the Developer Community. Thank you.

@chcomley, @romil07 - we still haven't got a schema for AzDO extension points. It's been stale because we haven't heard back from Microsoft.


#293 bump Ollama tags

**Closes #293 **

PR Checklist

[X] Created a feature/dev branch in your fork (vs. submitting directly from a commit on main)
[X] Based off latest main branch of toolkit
[X] PR doesn't include merge commits (always rebase on top of our main, if needed)
[X] Tests for the changes have been added (for bug fixes / features) (if applicable)
[X] Contains NO breaking changes
[X] Code follows all style conventions

Other information

Do I need to do anything to complete this PR?

Grr, CodeQL didn't run for some reason so it didn't auto-merge. I'll have to override


KOGITO-9701: Implement Workflow Instances section

Jira: https://issues.redhat.com/browse/KOGITO-9701
Description:
Implement the Workflow Instances section as we have on Serverless Logic Web Tools.
This will require one additional (optional) property for the Data Index URL in the data JSON file (dataIndexExternalUrl).
If the data index URL property is not present or the given URL cannot be accessible, the Workflow Instances section should not be shown (or disable the section and warn the user about it).
Since the data index can be embedded in the deployment, we can also have a boolean property embeddedDataIndex. If true, dataIndexExternalUrl is ignored and we must try to fetch the embedded data index.
Notes:

Instead havingembeddedDataIndex and dataIndexExternalUrl in the data JSON file, the app uses dataIndexExternalUrl, if not set uses the embedded data index service, if the service is not available a message is shown on the page with the link to https://kiegroup.github.io/kogito-docs/serverlessworkflow/latest/data-index/data-index-core-concepts.html. I'm available to change this behaviour.
in /src/runtimeTools there are files duplicated from Serverless Logic Web Tools . Maybe we can evaluate how to reuse the code in a different PR, as we did in https://github.com/kiegroup/kie-tools/pull/1995

Preview:
KOGITO-9701.webm
Data Index Service not available:

Great work, @fantonangeli! Thanks! Regarding the duplicated code from web tools, can you please create a JIRA for us to track it? Also, it would be nice to list in the JIRA all the files that are duplicated.

Thank you @caponetto
Jira for reuse of components: https://issues.redhat.com/browse/KOGITO-9935


Apply to join eos party testnet

Server Location: TW
Organisation: eos.store
node ip/domain: testnet.eos.store
Port (http):8888
Port (p2p):9876
producer name:eos.store
your public key:EOS7j5nLtLd5uAQdheG8rjKJEJ9xb5dvqjM2ivHBgvLwuf5X2jugZ

Hi, did you start the eos node? I found that your server 9876 port is closed.

yes, I haven't lanched nodeos.

Done.

Is your server running for a long time? Can I add your node to config.ini?

yes, of course. I want to as a BP node in your testnet of eos.

BTW, Do I need to modify any configurations in my local setup?

hello, I got following infomations after I generate 12 blocks, what is it mean?
392580ms thread-0   fork_database.cpp:78          _push_block          ] Number of missed blocks: 12
392580ms thread-0   chain_controller.cpp:1406     validate_block_heade ] head_block_time 2018-04-20T08:06:26.000, next_block 2018-04-20T08:06:32.500, block_interval 500
392580ms thread-0   chain_controller.cpp:1408     validate_block_heade ] Did not produce block within block_interval 500ms, took 6500ms)

thank you for your reply, I have another question, if I start another nodeos and with the save configurations (private key, public key, agent name ...) , what will happen, I test this case in my private setup, it works.
And If I stop one of them, the another will generate block continuly, is that ok?

If I understand correctly, your two nodes will produce blocks separately, but only one node block is valid, depending on the next block producer.

And If I stop one of them, the another will generate block continuly, is that ok?

I think yes.

I read from the documentation, but I haven't tested it yet. I hope to help you.

hello, Can I re-join your test net?


gcp-authorize can now log into GKE clusters too

a pattern we've seen in a couple repositories...

no, making this generic is annoyingly rough, this is not a great idea


Update konflux application-api dependency url

Ref: https://issues.redhat.com/browse/EC-361

Failure logs include "no required module provides package github.com/konflux-ci/application-api/api/v1alpha1". Not sure what to do about it..

Failure logs include "no required module provides package github.com/konflux-ci/application-api/api/v1alpha1". Not sure what to do about it..

Run a go mod tidy in the acceptance directory.

Added a commit for the update in acceptance


Pivot

Hi
Great library!
Please tell me. Best way to make a pivot out of the query?

Actually, PIVOT has been part of PL/SQL since Oracle 11g (2007).
While MySql doesn't support it directly, it can be emulated there. https://www.databasestar.com/mysql-pivot/


Add configurable template paths

I know almost every part of the app.html template is configurable... But I wanted to customize the link element and add a media="screen" attribute to it (because I'm a slave to Lighthouse 😛).
I suppose eventually more devs would like to customize these templates (error.html is not as configurable), so this PR adds these template paths to the options.

Current coverage is 100% (diff: 100%)

Merging #166 into master will not change coverage

@@           master   #166   diff @@
====================================
  Files          11     11
  Lines         388    388
  Methods         0      0
  Messages        0      0
  Branches        0      0
====================================
  Hits          388    388
  Misses          0      0
  Partials        0      0

Powered by Codecov. Last update f40dfba...e9bab48

Thanks for this PR @rolandboon
It's actually a good idea.
I keep it open until I handle the HTML via html-webpack-plugin and then I'll merge it.

Actually, I am going to do an easier solution, to extend the main template, simply create an app.html file in the root folder, here the template:
<!DOCTYPE html>
<html {{ HTML_ATTRS }}>
  <head>
    {{ HEAD }}
  </head>
  <body {{ BODY_ATTRS }}>
    {{ APP }}
  </body>
</html>

I will be available in the next release 0.9.10


Cadence Worker service to host replicator

New cadence-worker service and bootstrap code to bring up the new
service.  This service currently only host the replicator which consumes
replication tasks from kafka topic and applies to current Cadence
cluster.
MessagingClient interface abstract out interaction with Kafka.
KafkaClient provides implementation for the interface using kafka-client
library which consumes messages from Kafka broker.
Created separate Kafka configuration used for bootstrapping the
KafkaClient created during service startup and passed down to
replicator.
Created replicator.thrift which defines the payload which is sent over
to other clusters through KafkaClient.

Coverage decreased (-0.9%) to 67.574% when pulling 765b96b622e629629f35e9c6b11beb62b860bdf4 on samarabbas:replicator into 24b89d987268545fbdc26ae0d74499eaf1c5b326 on uber:master.


traefik 2.1 not support entryPoints.http.auth.basic ? show error : command traefik error: field not found, node: auth

[entryPoints.traefik]
address = ":8090"
[entryPoints.http.auth.basic]
users = ["aaaaaa:$apr1$B4S3xLye$MGYye.cRpOPgitLtKaCoD1", "bbbbbb:$apr1$E4Bu1ruS$NMitHx4pR3kVdWDBow3JS/"]
command traefik error: field not found, node: auth

Hi! I'm Træfiker :robot: the bot in charge of communication regulation.
Thanks for your interest in Traefik!
We dedicate the issue tracker to bug reports and feature requests only. My advanced AI has spotted that your issue might be a configuration problem or relates to something that doesn't look like a bug.
To confirm this, please join our Community Forum and reach out to us on the Traefik section.
In case I'm wrong (well, that would be embarrassing :sweat_smile:), my developers will re-open the issue and fix me!
In the meantime, you can double check Traefik's documentation.


Display "My Location" in location search bar on Topic-Services page if the user's mobile Location Services are enabled

When a user opens the Topic-Services page for the first time, they get an alert to Allow Location Services on this app. After the Location Services is allowed, the Topic-Services page displays services based on their location. But the location search bar is empty, they are presented the option to add "My location". This gives the user a wrong impression because now they are unsure whether it is searching from their location, and if it is, why do they need to select "My Location" again?
Recommendation: Once the user opts into Location Services, the location search bar should show "My Location" within the bar. See below:

Acceptance Criteria

[ ]  Once Location Services is enabled, the location search bar should be filled with "My Location" (and the option to exit with the x).
[ ] The Location search bar should be empty if the user chooses not to enable Location Services
[ ] Apply the same logic to Search as applicable

Steps for QA:

@tomy-pg can you review this issue too see if it accurately reflects what you observed? @jparlina can you add any discrepancies you noticed and what you think you observed here?

@cherrielam I like your suggestion to fill in the location search bar with "My Location" when the user enables Arrival Advisor to access their location. The question then, can we add a copy to let users know that they can replace "My location" by clicking the x and enter city, address, or postal code if they wish to search other locations? Otherwise, how would they know that they can search by location under Topic-Services page?
While looking into this, noticed other bugs:

When I selected "Don't Allow" here, we still have this old error message which doesn't let users know that without enabling their phone location, they can still search by entering city, address, or postal code.

We should also remove the "My location" button from the Topic-Services page once the user selects "Don't Allow" or "Allow once" when asked for their geo location. Otherwise, when the click "My location" they'll get the Invalid Location error message instead of the Enable Location Services" error message.

@tomy-pg Currently the my location is filled in even before accepting location permissions. If I reject the field is still filled in as well.

PASS QA 1.62.0


Category search query filters

Related issues

Short description and why it's useful

Pre-define category search query filters in local.json that are applied to every query. This removes the need to define more and more parameters for category/list calls, but still allows parameters to override the pre-defined filters. It also means the currently hardcoded platform-specific parameters, like "is_active" and "product_count", could be deprecated.
Screenshots of visual changes before/after (if there are any)

Which environment this relates to
Check your case. In case of any doubts please read about Release Cycle

[x] Test version (https://test.storefrontcloud.io) - this is a new feature or improvement for Vue Storefront. I've created branch from develop branch and want to merge it back to develop
[ ] RC version (https://next.storefrontcloud.io) - this is a stabilisation fix for Release Candidate of Vue Storefront. I've created branch from release branch and want to merge it back to release
[ ] Stable version (https://demo.storefrontcloud.io) - this is an important fix for current stable version. I've created branch from hotfix or master branch and want to merge it back to hotfix

Upgrade Notes and Changelog

[x] No upgrade steps required (100% backward compatibility and no breaking changes)
[ ] I've updated the Upgrade notes and Changelog on how to port existing VS sites with this new feature

IMPORTANT NOTICE - Remember to update CHANGELOG.md with description of your change
Contribution and currently important rules acceptance

[x] I read and followed contribution rules
[x] I read the TypeScript Action Plan and adjusted my PR according to it
[x] I read about Vue Storefront Modules and I am aware that every new feature should be a module

(Remake of previous PR, now on correct branch)
I'm not certain that this is the correct approach, so this is WIP. I'll wait for confirmation before updating the Changelog, etc.

Sample portion of local.json
"entities": {
    "optimize": true,
    "twoStageCaching": true,
    "optimizeShoppingCart": true,
    "category": {
      "includeFields": [ ... ],
      "excludeFields": [ ... ],
      "filterFields": [
        {
          "key": "include_in_menu",
          "value": { "eq": true }
        },
        {
          "key": "is_active",
          "value": { "eq": true }
        },
        {
          "key": "product_count",
          "value": { "gt": 0 }
        }
      ],
      ...
    },
},

This is for sure good idea @grimasod. Please just note that from 1.11 (develop branch) there is a catalog-next module which is in charge of displaying Category pages. The changes you've applied are to catalog. Is it intended? I think it should be applied to catalog-next. @patzick

@pkarw Thanks for pointing that out. I'm already using this patch on our live site (v1.9) and just copied it to the develop branch. I'll test with catalog-next and then update here

@patzick I'm in the middle of converting our site to v1.10, so haven't had time to work on this. This PR should be totally compatible with the old module, I'll test it soon. But it's on the develop branch, so I need to convert it to work on catalog-next. Is it correct that we should only use catalog-next from v.1.11? Or do we need to update both?

@patzick @pkarw Hi guys, the develop branch, the sidebar menu still uses the category store, not the new category-next store. Is this intentional or WIP? Thanks

Hey @grimasod, no, it should use just category-next, but main focus was on the category page itself :) I will change that eventually, or you can if you want to with this PR :)

hey @grimasod, what do we have here? :) are we proceeding further? We have long inactivity here

Hey @patzick The router manager took up a lot of time and I've been catching up on other work. Just got back to this today.
The changes to category search in catalog-next are really great, but this update isn't compatible in it's current form. I'm looking at how it works now, to see if I can apply this.
I'm also looking at a "breadcrumbFilterFields" config setting, which would only apply to filtering categories for breadcrumbs

@patzick @pkarw This PR evolved to work with catalog-next and use the breadcrumb module. I know it's a bit late, but I'm hoping this can be included in 1.11.0-RC1.
Currently on the Develop branch there are some issues with both catalog and catalog-next being used simultaneously. In particular, breadcrumb categories when products are in multiple categories - they can end up different in catalog and catalog-next, resulting in no breadcrumbs displaying.
This PR addresses these issues too.

@patzick I need to close this PR and create a new one on the release/v1.11 branch instead

See #3691


Projectile visuals

Currently got a sprite with a trail, colored by element.
Could add more diverse visuals. For example a fiery orb with fire rotating around it.
All projectile visuals should have a trail though, otherwise it's hard to see the projectile.

Current visual looks good and this is low prio.


chore: attempt to log better errors when running commands

Summary
We currently have a CI error which is hard to understand, e.g.

It doesn't say much of anything. Logging the entire result before rethrowing seems better.

Test plan
🤷

Hah, of course that job passed now 😅


⚠ Secret Website 2 has degraded performance

In c9630b6, Secret Website 2 ($SECRET_WEBSITE_2) experienced degraded performance:

HTTP code: 200
Response time: 3480 ms

Resolved: Secret Website 2 performance has improved in 8e54cea.


Feature/space filling curve eraser

This PR introduces a series of space filling curves under a single "Space Filler" eraser shape. Each curve does not actually render as a curve, as you'll see.
I also added a few input callbacks, similar to what you (Jeff) proposed awhile back. You can configure a shape with callbacks for min, max, isVisible, and onChange. This gives us a fair amount of flexibility on configuring field options.
The underlying "machine" for these curves is an L-system rewrite engine. See https://en.wikipedia.org/wiki/L-system. I ported a simplistic and limited L-system, but I'm hoping in subsequent PRs to move to a more complex one that will let us create some amazing fractal and other patterns. We could even let users code their own (think of it like a limited turtle language), but it's pretty complicated. Anyway, expect to see some more cool L-system shapes soon!

I understand that these are built based on the level, recursively building up to be more and more complicated with each level. I then see that you're sort of masking and stretching the results to fill the space exactly.
Since these are space fillers though, does it make sense to define the complexity by some rough estimate of the distance between the pattern lines? Because my machine is a set size (and yours is too, although thetarho patterns don't have units). So if I am always running with a 1/2" steel ball, there is a reasonable choice to fill the space with each pattern. This is the logic behind the wiper's size parameter.
I am just thinking about this "out loud".
To do that, you'd probably need to always make a pattern that was too large, and too complex, and scale and crop it to have the right line segment size.

How hard would it be to make it always start or end in a corner/perimeter or center? Do any of these end in the center?

In general. This all looks very awesome. The patterns are fun, and they are definitely eye catching.The math also has a pretty fun back story.
It makes me really wish we had a better machine preview, because I know these patterns will have a much different feel when applied with a marble. Not that I'm interested in working on that. I think it would probably bring it to a crawl.
I have a couple of ideas to maybe make it better, but I would accept this as-is. It is definitely a huge addition.
Thank you!

does it make sense to define the complexity by some rough estimate of the distance between the pattern lines? Because my machine is a set size (and yours is too, although thetarho patterns don't have units). So if I am always running with a 1/2" steel ball, there is a reasonable choice to fill the space with each pattern. This is the logic behind the wiper's size parameter.
To do that, you'd probably need to always make a pattern that was too large, and too complex, and scale and crop it to have the right line segment size.

I see what you are saying. I think it comes down to the definition of "eraser". I kind of like "overlay" better, because there are times when you don't want to erase everything - you want to overlay a pattern on top or under something. As example, here is an image of the Sierpinsky curve run twice at different sizes.

I also think it's visually interesting to see how the pattern repeats. That said, if you'd rather I come up with a set resolution, let me know. It would be straightforward to modify.

How hard would it be to make it always start or end in a corner/perimeter or center? Do any of these end in the center?

I think they all start/end on the perimeter.

I also think it's visually interesting to see how the pattern repeats. That said, if you'd rather I come up with a set resolution, let me know. It would be straightforward to modify.

I was thinking of it as a parameter, like the wiper and spiral wiper have the distance between paths. It is helpful for me to think that way, because 12mm is the size of the steel ball, so it is easy for me to get from there to a pattern that will clean up the whole board.
But I am also fine with this. This is the best chance to change it. After we get save/load functions, we won't be able to change things like that.

I merged this. I think this is great. But nothing is set in stone, we can revisit these things if we want to in the future.


Second migration fails with containerDisk and containerd runtime

What happened:
I’m trying to migrate VMI with containerDisk.
First time the VM live migrates successfully, but on the second migration, it fails with the below error in the target virt-launcher pod. This works fine when using docker runtime.
Warning Failed     23s (x2 over 51s) kubelet      Error: ImagePullBackOff  Normal  Pulling     11s (x3 over 54s) kubelet      Pulling image "sha256@sha256:4a0c3f9526551d0294079f1b0171a071a57fe0bf60a2e8529bf4102ee63a67cd"  Warning Failed     9s (x3 over 52s)  kubelet      Failed to pull image "sha256@sha256:4a0c3f9526551d0294079f1b0171a071a57fe0bf60a2e8529bf4102ee63a67cd": rpc error: code = Unknown desc = failed to pull and unpack image "docker.io/library/sha256@sha256:4a0c3f9526551d0294079f1b0171a071a57fe0bf60a2e8529bf4102ee63a67cd": failed to resolve reference "docker.io/library/sha256@sha256:4a0c3f9526551d0294079f1b0171a071a57fe0bf60a2e8529bf4102ee63a67cd"
What you expected to happen:
VMI’s should be migrated multiple times without any errors.
How to reproduce it (as minimally and precisely as possible):
Create VMI with containerDisk.
live-Migrate VMI twice
Environment:

KubeVirt version (use virtctl version): N/A
VM or VMI specifications:

spec:
domain:
cpu:
cores: 1
model: host-model
sockets: 1
threads: 1
devices:
disks:
- disk:
bus: virtio
name: containerdisk
- disk:
bus: virtio
name: cloudinitdisk
interfaces:
- masquerade: {}
name: default
features:
acpi:
enabled: true
firmware:
uuid: e03ae16f-10d6-4ed6-9ed2-6212ba8556f3
machine:
type: q35
resources:
requests:
memory: 1024M
networks:
- name: default
pod: {}
terminationGracePeriodSeconds: 0
volumes:
- containerDisk:
image: quay.io/kubevirt/fedora-cloud-container-disk-demo
imagePullPolicy: Always
name: containerdisk

Container runtime: containerd

Link to the discussion in Slack: https://kubernetes.slack.com/archives/C8ED7RKFE/p1662020784894239

I think I have some updates here. For the migration we want to use the same exact containerdisk on the target node and for that we need to know the SHA-digest of the image. In current implementation, we extract it from ContainerStatuses of the virt-launcher pod using the Image and ImageID fields.
What happens with containerd and e.g. quay.io/kubevirt/fedora-with-test-tooling-container-disk:v0.57.0 is the following:

when created, the vmi gets scheduled to some node (assuming node01) and containerd pulls the required image using the provided tag v0.57.0:

# crictl -r unix:///run/k3s/containerd/containerd.sock images
IMAGE                                                      TAG                  IMAGE ID            SIZE
...
quay.io/kubevirt/fedora-with-test-tooling-container-disk   v0.57.0              e3559e53b6b1d       684MB
...

then, when we first time migrate the VMI, during preparation of the pod on the target node (assuming node02), we take the SHA-digest instead of the tag. For the specified image, the pullable reference will look like quay.io/kubevirt/fedora-with-test-tooling-container-disk@sha256:30750fe1f8936e21890a4e45289ec3afdbcae3d9072ec7d7629ec20f4afbd00e and containerd will pull that on the target node:

# crictl images
IMAGE                                                                  TAG                    IMAGE ID            SIZE
...
quay.io/kubevirt/fedora-with-test-tooling-container-disk               <none>                 e3559e53b6b1d       684MB
...

** thing to note here is that there is no tag: <none>.

After the first migration, when we want to migrate for the second time (from node02 back to node01), we repeat the process with extracting the SHA-digest. However, now there is a difference. I assume, because the image now does not have an assigned tag, what we get in the ContainerStatuses[].Image is the IMAGE ID (listed above in the crictl output) in the form of sha256:e3559e53b6b1df866598887793f94b9908d3a7e343f4a6394670d69fbe511cb2. And here we take sha256 as the image name, and eventually it ends up in trying to pull this weird image reference: sha256@sha256:30750fe1f8936e21890a4e45289ec3afdbcae3d9072ec7d7629ec20f4afbd00e. Interesting thing is that kubectl describe pod ... shows Image as a correct reference, while kubectl get pod -o json ... gives that sha256:.....

I think in order to fix it, we need to get the image from the VMI spec instead of using the ContainerStatuses[].Image field.
@shweta50, as a quick workaround you can just pre-pull the image on your nodes using the tag, e.g.:
crictl pull quay.io/kubevirt/fedora-with-test-tooling-container-disk:v0.57.0


Undefined method 'x' for top-level when using generics with Proc

Bug Report
crystal --version
Crystal 1.4.0 [ef05e26d6] (2022-04-06)

LLVM: 10.0.0
Default target: x86_64-unknown-linux-gnu

I have an issue with generic parameters using forall.
The error message is completely confusing and doesn't make any sense to me.
I tried to find out where I have an error in my type annotations, but couldn't find any.
Then I crafted a "minimal" example which shows the weird behavior.
All these examples work as expected:
def main
  result : Int32 = 123
  puts "Printing from main"
  puts result
  result
end

main

def main_generic(fnc : Proc(I, O), input : I) : O forall I, O
  result : O = fnc.call(input)
  puts "Printing from main_generic"
  puts result
  result
end

main_generic(->(i : String) : String { "Mapped #{i}" }, "input")

def main_generic_fnc(fnc : Proc(I, O)) : Proc(I, O) forall I, O
  ->(input : I) : O {
    result : O = fnc.call(input)
    puts "Printing from main_generic_fnc"
    puts result
    result
  }
end

main_generic_fnc(->(i : String) : String { "Mapped #{i}" }).call("input")

This one doesn't:
struct Wrapper(I, O)
  def initialize(@parser : Proc(I, O))
  end

  def call(*args)
    @parser.call(*args)
  end
end

def main_generic_fnc_wrapper(fnc : Proc(I, O)) : Wrapper(I, O) forall I, O
  Wrapper.new(->(input : I) : O {
    result : O = fnc.call(input)
    puts "Printing from main_generic_fnc_wrapper"
    puts result
    result
  })
end

# Both of these doesn't work. I used the first one in previous examples, so I include it here.
# The second one is used to constraint I to String and O to Int32, so they are not ambiguous in the error messages.
#main_generic_fnc_wrapper(->(i : String) : String { "Mapped #{i}" }).call("input")
main_generic_fnc_wrapper(->(i : String) : Int32 { i.to_i }).call("123")

results in:
❯ crystal spec --error-trace
error in line 1
Error: while requiring "./spec/parser_spec.cr"

In spec/parser_spec.cr:162:1

 162 | main_generic_fnc_wrapper(->(i : String) : Int32 { i.to_i }).call("123")
       ^-----------------------
Error: instantiating 'main_generic_fnc_wrapper(Proc(String, Int32))'

In spec/parser_spec.cr:157:10

 157 | puts result
            ^-----
Error: undefined method 'result' for top-level

If you declared 'result' in a suffix if, declare it in a regular if for this to work. If the variable was declared in a macro it's not visible outside it)

The last example works when you change the result : O = fnc.call(input) to result = fnc.call(input).
Then it compiles and works without any issues. Just by removing : O.
If you replace the type  : O with, for example,  : I, the error message correctly shows Error: type must be String, not Int32.
Is this a bug? Or a limitation? Am I doing something wrong?

Reduced:
def foo(x)
end

foo(
  begin
    result : Int32 = 1
    result
  end
)

@daliborfilus as a workout, if you remove the : O from result : O then it will work fine.
I now remember why it's not working.
When we have something like this:
property x : Int32
puts x

we don't want x to become a local variable in that scope, because a type restriction passed to a call is most likely because it was passed to a macro. But it seems this is also done for any expression that happens as a call argument, which is probably not right.
I'm not sure how we can fix this entirely, but for now I'll try to only apply the above rule for type declarations that are call arguments, not any type declaration that happens in expressions inside call arguments.

Ah, I see how that could be a problem for property x : Int32. I also see your work in #11983, after just 12 minutes. Seriously, that's impressive.

Can we instead unset all newly created variables in a Call the moment it is found to be a macro? Or would that be too expensive?


mapping to a specific range

Would it be possible to extend any of these, I'm working with exponential now,  to be able to specify a range? I know lodash has _.clamp which just cuts off the numbers above and below, but then you have a lot of repeated numbers.
Thanks.

Exponential distributions go from zero to infinity. If the number is outside of the range you want, you could just discard it and pick another. However that would no longer strictly be a exponential distribution.
Perhaps if you explain what you are using the numbers for I can advise a better way.

I'm trying to use it to control musical parameters. In the SuperCollider programing langauge, used for composing music. There is a function that returns random values that follow an exponential distribution. The function has a low and high parameter so you can specify that you want a range of 0.0001 to 1 or whatever and I guess the distribution is scaled somehow to be useable though the code is for that part is precompiled in C++ and I can't find the source.
I would like to do something like this:
const exponential = Prob.exponential(1);

function mapRange(from, to, s) {
  return to[0] + (s - from[0]) * (to[1] - to[0]) / (from[1] - from[0]);
}

//([fromRange],[toRange], input)
const range = mapRange([0, 10], [0, 1], exponential());

console.log(range);

But I know that isn't totally correct because fromRange should be 0 to Infinity but that isn't' valid. Let me try to figure out how they did it. Thanks for your quick reply though.


Fix outdated Readme

This readme seems generic and does not tell me anything on how to use this step.
Yes, I can check step.yml and try to find the the documentation I'm looking for, but it would be way more user-friendly if it would be listed in the readme 😃. Maybe the readme could be auto-generated from the step.yml?

Hi @teameh ,
Sorry for the late reply here! Just wanted to let you know that we have a task for this created for out tooling team and they already gathered all the needed infos for implementing it and making the README generation automated. 😉I added this thread to the notification of the list so you will receive a notification as soon as the tooling team implements this feature!

Awesome! Looking forward to it! Thanks!

Still important to me

Hello,
It's Mefi here from the Bitrise CoreSteps Team. Thanks for reaching out helping us and the mobile community to have a better experience with Bitrise steps. 💜
We started to have a broader review of all the open issues and PRs and we are continuously prioritizing these in our sprints.
We reviewed this issue and we found it to be a valid feature request. We are collecting new feature requests on our Discuss forum where you can upvote and discuss further details. As this one is on our current roadmap, I close the issue and we'll share an update once we released the new version of the step. You can find an example of an updated README file on this related PR. Until then, feel free to create a feature request and share your thoughts and ideas on Discuss.
Happy building! 🚀