[Bug]: Finalizing JUnit 5 test case with Kafka Streams and Spring Boot takes several minutes

Module
Kafka
Testcontainers version
1.19.8
Using the latest Testcontainers version?
Yes
Host OS
MacOS, Linux, Windows
Host Arch
ARM, x86
Docker version
This is my local setup with Podman. In the pipeline we use Docker and other colleagues use Docker Desktop where the issue also happens.

We're running a Spring Boot project with Kafka Streams. We have one integration test (using @SpringBootTest and @Testcontainers) that sometimes takes several minutes to complete after all tests successfully ran. Lots of Kafka "no connection to node" and "Node 1 disconnected" are printed in the logs repeatedly.
It seems like the Kafka container is stopped before the Spring context is shutdown. And the Spring Context is waiting for Kafka to become available before shutting down.
Relevant log output
### The following 20 lines are printed repeatedly for several minutes
[11:00:35.147] [INFO] [org.apache.kafka.clients.NetworkClient] - [Consumer clientId=<our-consumer-group>-StreamThread-1-consumer, groupId=streams.notification-report-selector.notification-repartitioner] Node 1 disconnected.
[11:00:35.147] [WARN] [org.apache.kafka.clients.NetworkClient] - [Consumer clientId=<our-consumer-group>-StreamThread-1-consumer, groupId=streams.notification-report-selector.notification-repartitioner] Connection to node 1 (localhost/<IP_ADDRESS>:32772) could not be established. Node may not be available.
[11:00:35.218] [INFO] [org.apache.kafka.clients.NetworkClient] - [AdminClient clientId=<our-consumer-group>-admin] Node 1 disconnected.
[11:00:35.218] [WARN] [org.apache.kafka.clients.NetworkClient] - [AdminClient clientId=<our-consumer-group>-admin] Connection to node 1 (localhost/<IP_ADDRESS>:32772) could not be established. Node may not be available.
[11:00:35.350] [INFO] [org.apache.kafka.clients.NetworkClient] - [Producer clientId=producer-3] Node 1 disconnected.
[11:00:35.350] [WARN] [org.apache.kafka.clients.NetworkClient] - [Producer clientId=producer-3] Connection to node 1 (localhost/<IP_ADDRESS>:32772) could not be established. Node may not be available.
[11:00:35.591] [INFO] [org.apache.kafka.clients.NetworkClient] - [Producer clientId=<our-consumer-group>-StreamThread-1-producer] Node 1 disconnected.
[11:00:35.591] [WARN] [org.apache.kafka.clients.NetworkClient] - [Producer clientId=<our-consumer-group>-StreamThread-1-producer] Connection to node 1 (localhost/<IP_ADDRESS>:32772) could not be established. Node may not be available.
[11:00:35.782] [INFO] [org.apache.kafka.clients.NetworkClient] - [Producer clientId=producer-1] Node 1 disconnected.
[11:00:35.782] [WARN] [org.apache.kafka.clients.NetworkClient] - [Producer clientId=producer-1] Connection to node 1 (localhost/<IP_ADDRESS>:32772) could not be established. Node may not be available.
[11:00:36.072] [INFO] [org.apache.kafka.clients.NetworkClient] - [Producer clientId=producer-2] Node 1 disconnected.
[11:00:36.072] [WARN] [org.apache.kafka.clients.NetworkClient] - [Producer clientId=producer-2] Connection to node 1 (localhost/<IP_ADDRESS>:32772) could not be established. Node may not be available.
[11:00:36.148] [INFO] [org.apache.kafka.clients.NetworkClient] - [Consumer clientId=<our-consumer-group>-StreamThread-1-consumer, groupId=[<our-consumer-group>]] Node 1 disconnected.
[11:00:36.148] [WARN] [org.apache.kafka.clients.NetworkClient] - [Consumer clientId=<our-consumer-group>-StreamThread-1-consumer, groupId=[<our-consumer-group>]] Connection to node 1 (localhost/<IP_ADDRESS>:32772) could not be established. Node may not be available.
[11:00:36.221] [INFO] [org.apache.kafka.clients.NetworkClient] - [AdminClient clientId=<our-consumer-group>-admin] Node 1 disconnected.
[11:00:36.221] [WARN] [org.apache.kafka.clients.NetworkClient] - [AdminClient clientId=<our-consumer-group>-admin] Connection to node 1 (localhost/<IP_ADDRESS>:32772) could not be established. Node may not be available.
[11:00:36.370] [INFO] [org.apache.kafka.clients.NetworkClient] - [Producer clientId=producer-3] Node 1 disconnected.
[11:00:36.371] [WARN] [org.apache.kafka.clients.NetworkClient] - [Producer clientId=producer-3] Connection to node 1 (localhost/<IP_ADDRESS>:32772) could not be established. Node may not be available.
[11:00:36.544] [INFO] [org.apache.kafka.clients.NetworkClient] - [Producer clientId=<our-consumer-group>-StreamThread-1-producer] Node 1 disconnected.
[11:00:36.544] [WARN] [org.apache.kafka.clients.NetworkClient] - [Producer clientId=<our-consumer-group>-StreamThread-1-producer] Connection to node 1 (localhost/<IP_ADDRESS>:32772) could not be established. Node may not be available.
[11:00:36.731] [INFO] [org.apache.kafka.clients.admin.internals.AdminMetadataManager] - [AdminClient clientId=<our-consumer-group>-admin] Metadata update failed
org.apache.kafka.common.errors.TimeoutException: Timed out waiting for a node assignment. Call: fetchMetadata
[11:00:36.804] [INFO] [org.apache.kafka.clients.NetworkClient] - [Producer clientId=producer-1] Node 1 disconnected.
[11:00:36.804] [WARN] [org.apache.kafka.clients.NetworkClient] - [Producer clientId=producer-1] Connection to node 1 (localhost/<IP_ADDRESS>:32772) could not be established. Node may not be available.
[11:00:36.925] [INFO] [org.apache.kafka.clients.NetworkClient] - [Producer clientId=producer-2] Node 1 disconnected.
[11:00:36.925] [WARN] [org.apache.kafka.clients.NetworkClient] - [Producer clientId=producer-2] Connection to node 1 (localhost/<IP_ADDRESS>:32772) could not be established. Node may not be available.

### The following log lines are only printed once at when the tests are finalized

Error: 1:00:36.961] [ERROR] [org.apache.kafka.streams.processor.internals.TaskExecutor] - stream-thread [<our-consumer-group>-StreamThread-1] Committing task(s) 0_1 failed.
org.apache.kafka.common.errors.TimeoutException: Timeout of 60000ms expired before successfully committing offsets {notification.managed-1=OffsetAndMetadata{offset=5, leaderEpoch=null, metadata='AgAAAZCWstBN'}}
Error: 1:00:36.961] [ERROR] [org.apache.kafka.streams.processor.internals.TaskManager] - stream-thread [<our-consumer-group>-StreamThread-1] Exception caught while committing tasks [TaskId: 0_1
	ProcessorTopology:
		Notifications:
			topics:		[notification.managed]
			children:	[Event-Type-Filter]
		Event-Type-Filter:
			children:	[Key-Selector]
		Key-Selector:
			children:	[Notifications-By-Id]
		Notifications-By-Id:
			topic:		StaticTopicNameExtractor(notification.by-id)
Partitions [notification.managed-1]
]
org.apache.kafka.common.errors.TimeoutException: Timeout of 60000ms expired before successfully committing offsets {notification.managed-1=OffsetAndMetadata{offset=5, leaderEpoch=null, metadata='AgAAAZCWstBN'}}
[11:00:36.961] [INFO] [org.apache.kafka.streams.processor.internals.StreamTask] - stream-thread [<our-consumer-group>-StreamThread-1] task [0_0] Suspended from RUNNING
[11:00:36.962] [INFO] [org.apache.kafka.streams.processor.internals.RecordCollectorImpl] - stream-thread [<our-consumer-group>-StreamThread-1] stream-task [0_0] Closing record collector dirty
[11:00:36.962] [INFO] [org.apache.kafka.streams.processor.internals.StreamTask] - stream-thread [<our-consumer-group>-StreamThread-1] task [0_0] Closed dirty
[11:00:36.962] [INFO] [org.apache.kafka.streams.processor.internals.StreamTask] - stream-thread [<our-consumer-group>-StreamThread-1] task [0_1] Suspended from RUNNING
[11:00:36.963] [INFO] [org.apache.kafka.streams.processor.internals.RecordCollectorImpl] - stream-thread [<our-consumer-group>-StreamThread-1] stream-task [0_1] Closing record collector dirty
[11:00:36.963] [INFO] [org.apache.kafka.streams.processor.internals.StreamTask] - stream-thread [<our-consumer-group>-StreamThread-1] task [0_1] Closed dirty
[11:00:36.963] [INFO] [org.apache.kafka.clients.producer.KafkaProducer] - [Producer clientId=<our-consumer-group>-StreamThread-1-producer] Closing the Kafka producer with timeoutMillis =<PHONE_NUMBER>854775807 ms.
[11:00:36.966] [INFO] [org.apache.kafka.common.metrics.Metrics] - Metrics scheduler closed
[11:00:36.966] [INFO] [org.apache.kafka.common.metrics.Metrics] - Closing reporter org.apache.kafka.common.metrics.JmxReporter
[11:00:36.966] [INFO] [org.apache.kafka.common.metrics.Metrics] - Closing reporter org.apache.kafka.common.telemetry.internals.ClientTelemetryReporter
[11:00:36.966] [INFO] [org.apache.kafka.common.metrics.Metrics] - Metrics reporters closed
[11:00:36.967] [INFO] [org.apache.kafka.common.utils.AppInfoParser] - App info kafka.producer for <our-consumer-group>-StreamThread-1-producer unregistered
Error: 1:00:36.967] [ERROR] [org.apache.kafka.streams.processor.internals.StreamThread] - stream-thread [<our-consumer-group>-StreamThread-1] Failed to close task manager due to the following error:
org.apache.kafka.common.errors.TimeoutException: Timeout of 60000ms expired before successfully committing offsets {notification.managed-1=OffsetAndMetadata{offset=5, leaderEpoch=null, metadata='AgAAAZCWstBN'}}
[11:00:36.967] [INFO] [org.apache.kafka.clients.consumer.internals.LegacyKafkaConsumer] - [Consumer clientId=<our-consumer-group>-StreamThread-1-restore-consumer, groupId=null] Unsubscribed all topics or patterns and assigned partitions
[11:00:36.967] [INFO] [org.apache.kafka.common.metrics.Metrics] - Metrics scheduler closed
[11:00:36.967] [INFO] [org.apache.kafka.common.metrics.Metrics] - Closing reporter org.apache.kafka.common.metrics.JmxReporter
[11:00:36.967] [INFO] [org.apache.kafka.common.metrics.Metrics] - Closing reporter org.apache.kafka.common.telemetry.internals.ClientTelemetryReporter
[11:00:36.967] [INFO] [org.apache.kafka.common.metrics.Metrics] - Metrics reporters closed
[11:00:36.970] [INFO] [org.apache.kafka.common.utils.AppInfoParser] - App info kafka.consumer for <our-consumer-group>-StreamThread-1-consumer unregistered
[11:00:36.970] [INFO] [org.apache.kafka.common.metrics.Metrics] - Metrics scheduler closed
[11:00:36.970] [INFO] [org.apache.kafka.common.metrics.Metrics] - Closing reporter org.apache.kafka.common.metrics.JmxReporter
[11:00:36.970] [INFO] [org.apache.kafka.common.metrics.Metrics] - Closing reporter org.apache.kafka.common.telemetry.internals.ClientTelemetryReporter
[11:00:36.970] [INFO] [org.apache.kafka.common.metrics.Metrics] - Metrics reporters closed
[11:00:36.972] [INFO] [org.apache.kafka.common.utils.AppInfoParser] - App info kafka.consumer for <our-consumer-group>-StreamThread-1-restore-consumer unregistered
[11:00:36.973] [INFO] [org.apache.kafka.streams.processor.internals.StreamThread] - stream-thread [<our-consumer-group>-StreamThread-1] State transition from PENDING_SHUTDOWN to DEAD
[11:00:36.973] [INFO] [org.apache.kafka.streams.processor.internals.StreamThread] - stream-thread [<our-consumer-group>-StreamThread-1] Shutdown complete
[11:00:36.973] [INFO] [org.apache.kafka.streams.KafkaStreams] - stream-client [<our-consumer-group>] Shutdown 1 stream threads complete
[11:00:36.973] [INFO] [org.apache.kafka.common.utils.AppInfoParser] - App info kafka.admin.client for <our-consumer-group>-admin unregistered
[11:00:36.973] [INFO] [org.apache.kafka.clients.admin.internals.AdminMetadataManager] - [AdminClient clientId=<our-consumer-group>-admin] Metadata update failed
org.apache.kafka.common.errors.TimeoutException: The AdminClient thread has exited. Call: fetchMetadata
[11:00:36.973] [INFO] [org.apache.kafka.clients.admin.KafkaAdminClient] - [AdminClient clientId=<our-consumer-group>-admin] Timed out 1 remaining operation(s) during close.
[11:00:36.984] [INFO] [org.apache.kafka.common.metrics.Metrics] - Metrics scheduler closed
[11:00:36.984] [INFO] [org.apache.kafka.common.metrics.Metrics] - Closing reporter org.apache.kafka.common.metrics.JmxReporter
[11:00:36.984] [INFO] [org.apache.kafka.common.metrics.Metrics] - Metrics reporters closed
[11:00:36.984] [INFO] [org.apache.kafka.common.metrics.Metrics] - Metrics scheduler closed
[11:00:36.984] [INFO] [org.apache.kafka.common.metrics.Metrics] - Closing reporter org.apache.kafka.common.metrics.JmxReporter
[11:00:36.984] [INFO] [org.apache.kafka.common.metrics.Metrics] - Metrics reporters closed
[11:00:36.985] [INFO] [org.apache.kafka.streams.KafkaStreams] - stream-client [<our-consumer-group>] State transition from PENDING_SHUTDOWN to NOT_RUNNING
[11:00:36.985] [INFO] [org.apache.kafka.streams.KafkaStreams] - stream-client [<our-consumer-group>] Streams client stopped completely
[11:00:37.006] [INFO] [org.apache.kafka.streams.KafkaStreams] - stream-client [<our-consumer-group>] Streams client is already in the terminal NOT_RUNNING state, all resources are closed and the client has stopped.
[11:00:37.007] [INFO] [org.apache.kafka.streams.KafkaStreams] - stream-client [<our-consumer-group>] Streams client is already in the terminal NOT_RUNNING state, all resources are closed and the client has stopped.
[11:00:37.007] [INFO] [org.apache.kafka.streams.KafkaStreams] - stream-client [<our-consumer-group>] Streams client is already in the terminal NOT_RUNNING state, all resources are closed and the client has stopped.
[11:00:37.007] [INFO] [org.apache.kafka.streams.KafkaStreams] - stream-client [<our-consumer-group>] Streams client is already in the terminal NOT_RUNNING state, all resources are closed and the client has stopped.
[11:00:37.011] [INFO] [org.apache.kafka.streams.KafkaStreams] - stream-client [<our-consumer-group>] Streams client is already in the terminal ERROR state, all resources are closed and the client has stopped.
[11:00:37.011] [INFO] [org.apache.kafka.streams.KafkaStreams] - stream-client [<our-consumer-group>] Streams client is already in the terminal ERROR state, all resources are closed and the client has stopped.
[11:00:37.011] [INFO] [org.apache.kafka.streams.KafkaStreams] - stream-client [<our-consumer-group>] Streams client is already in the terminal ERROR state, all resources are closed and the client has stopped.
[11:00:37.011] [INFO] [org.apache.kafka.streams.KafkaStreams] - stream-client [<our-consumer-group>] Streams client is already in the terminal ERROR state, all resources are closed and the client has stopped.
[11:00:37.016] [INFO] [org.apache.kafka.streams.KafkaStreams] - stream-client [<our-consumer-group>] Streams client is already in the terminal ERROR state, all resources are closed and the client has stopped.
[11:00:37.016] [INFO] [org.apache.kafka.streams.KafkaStreams] - stream-client [<our-consumer-group>] Streams client is already in the terminal ERROR state, all resources are closed and the client has stopped.
[11:00:37.016] [INFO] [org.apache.kafka.streams.KafkaStreams] - stream-client [<our-consumer-group>] Streams client is already in the terminal ERROR state, all resources are closed and the client has stopped.
[11:00:37.016] [INFO] [org.apache.kafka.streams.KafkaStreams] - stream-client [<our-consumer-group>] Streams client is already in the terminal ERROR state, all resources are closed and the client has stopped.
[11:00:37.028] [INFO] [org.apache.kafka.streams.KafkaStreams] - stream-client [<our-consumer-group>] Streams client is already in the terminal ERROR state, all resources are closed and the client has stopped.
[11:00:37.028] [INFO] [org.apache.kafka.streams.KafkaStreams] - stream-client [<our-consumer-group>] Streams client is already in the terminal ERROR state, all resources are closed and the client has stopped.
[11:00:37.029] [INFO] [org.apache.kafka.streams.KafkaStreams] - stream-client [<our-consumer-group>] Streams client is already in the terminal ERROR state, all resources are closed and the client has stopped.
[11:00:37.029] [INFO] [org.apache.kafka.streams.KafkaStreams] - stream-client [<our-consumer-group>] Streams client is already in the terminal ERROR state, all resources are closed and the client has stopped.
[11:00:37.044] [INFO] [org.apache.kafka.streams.KafkaStreams] - stream-client [<our-consumer-group>] Streams client is already in the terminal ERROR state, all resources are closed and the client has stopped.
[11:00:37.044] [INFO] [org.apache.kafka.streams.KafkaStreams] - stream-client [<our-consumer-group>] Streams client is already in the terminal ERROR state, all resources are closed and the client has stopped.
[11:00:37.044] [INFO] [org.apache.kafka.streams.KafkaStreams] - stream-client [<our-consumer-group>] Streams client is already in the terminal ERROR state, all resources are closed and the client has stopped.
[11:00:37.044] [INFO] [org.apache.kafka.streams.KafkaStreams] - stream-client [<our-consumer-group>] Streams client is already in the terminal ERROR state, all resources are closed and the client has stopped.

Additional Information
The issue seems to be mitigated to some extend (we wait < 10 seconds for the test to finalize) if we start the container manually in the @BeforeAll method, instead of using the @Testcontainers and @Container annotations.

Does anyone have a clue why this can happen? Or how I can investigate further?

Hi, do you a project to reproduce it?

I'll try to provide you with a minimal example today.

Sorry for the slow response. Here is the example repo: https://github.com/MarvinVaillant/demo-long-kafka-streams-teardown/tree/main

Here you'll also find a short video that shows the issue:
https://github.com/user-attachments/assets/535847ac-cbbc-4f72-b6c9-a09e682bf84e

@MarvinVaillant thanks for providing the example but I am not able to run the project. It fails because of Mapped port can only be obtained after the container is started. I can make some changes but I can not see the behavior described.

i'm really sorry. I was fiddeling around with the code to get some more insights. Could you please pull the latest commits?

Thanks for updating it. I'm moving this to a discussion because It is not an issue itself. Testcontainers is creating, running the container and killing it. However, in order to close the context you should call close explicitly or rather use @DirtiesContext. I do not have much experience on Kafka Streams but others can help on how to handle this.


Additional inheritance specs for block reindentation

When we pass a block to a parent, we would ideally expect it to "magically" adjust its indentation.
template.mustache
{{<parent}}
        {{$block}}
        Hello
        {{/block}}
{{/parent}}

parent.mustache
I say,
  {{$block}}
  Hi there!
  {{/block}}

output
I say,
  Hello

Try the above example in the playground by pasting the following code:
{"data":{"text":"null"},"templates":[{"name":"template","text":"{{<parent}}\n        {{$block}}\n        Hello\n        {{/block}}\n{{/parent}}"},{"name":"parent","text":"I say,\n  {{$block}}\n  Hi there!\n  {{/block}}"}]}

I wrote an extremely long post in #130 on how this might be approached, inviting for a discussion. However, I realized that the post was so long that most people simply might not find the time (or patience or courage) to read it. I hope this PR will be an acceptable alternative to those people, being more concrete and containing substantially less text.
For a detailed rationale behind the specs that I'm proposing here, please refer to #130. The short version is that I applied the following rules. I was able to fully conform my own implementation to these specs. I needed to grow the code size by only seven lines on balance, though there were some subtleties that I'll mention in code comments below.

Standalone tags (pre-existing rule). Individual block and parent tags should not introduce blank lines in the output when they clear on both delimiters.
Standalone pairs. The pair of a parent tag and its matching end section tag as a whole is standalone if the opening tag clears at the start and the closing tag clears at the end. This notion of a standalone pair is also applicable to parameter blocks, because these are sites of template expansion, too. It does not apply to argument blocks, because those are not template expansion sites.
Intrinsic indentation. If the opening tag of an argument block or a standalone parameter block clears at the end, then the intrinsic indentation of the block is the whitespace at the start of the first line after the opening block tag. In all remaining cases, the intrinsic indentation of a block is the empty string.
Deindentation at block definition time. The intrinsic indentation of a block definition is removed from each of its lines before anything else happens with its contents.
Indentation at template expansion sites (generalization of existing standalone partial indentation rule). The indentation of a partial tag, parent pair or parameter block pair is determined as follows. If it is a block with intrinsic indentation, then the intrinsic indentation is used. Otherwise, if the tag or pair is standalone, then the indentation of the single tag or the pair's opening tag is used. In all remaining cases, the empty string is used. The indentation thus determined is added to each line of whichever (external) template or block ends up being expanded in the position of the tag or pair, before that template or block is rendered.

Merging this PR would close #130.
CC to all people I CC'ed in #130: @gasche @softmoth @adam-fowler @Danappelxx @pvande @splumhoff @bobthecow @sayrer @spullara .

I am mostly against all this stuff. It requires you to reformat the output which means you have an additional layer of buffering in many cases. For performance reasons I have elided some of the whitespace constraints because of it. Imagine it for recursive includes and the like, as opposed to the simple case you could do at compile time.

@spullara My intuition would be that the performance situation is no worse than with the existing rule on partials indentation: you have to track the current "line indentation" and process user-provided input (whenever the current indentation is non-empty) to add this indentation after newlines. This can be done in a zero-copy way by processing the input line-by-line, outputting indentation in between -- or indeed by using a temporary buffer that is output as a whole afterwards.

@spullara I'm not doing any buffering (not even a single layer) and all deindentation happens at compile time. My implementation passes all the specs without doing anything new at rendering time, except that indentation is now not only applied to partials and parents but also to blocks.
I think my implementation will also handle recursive includes transparently, though I haven't tested that yet. Could you give an example of a spec that you think would be problematic?
@gasche The partials spec actually states that only the template is indented, not the user input. This is also what I have implemented for parents and blocks. It's not as pretty as indenting the final output, but substantially easier and more efficient to implement.
https://github.com/mustache/spec/blob/bb63070e701e6e5ba9fa0b4adaa259a0ef8115be/specs/partials.yml#L82-L100

Update: in the meanwhile, I open-sourced my implementation, Wontache, so I can show you how I implemented the proposed spec (as well as 100% of the latest release of the actual spec, plus the proposed dynamic partials per #134). Blocks, like partials/parents, are represented as separate templates in Wontache. Compiling and rendering a template happens in four stages. I'm sure many Mustache implementations work like this, but I'll list them just to be clear:

Tokenization
Parsing
Code generation (JavaScript functions with a runtime dependency on support code in Wontache)
Template execution (which sometimes involves recompiling a template)

In Wontache, the removal of intrinsic indentation from a block happens during code generation, over here:
https://gitlab.com/jgonggrijp/wontache/-/blob/integration/mustache/mustache.coffee#L403-441
Indentation may be added (back) during template execution, depending on the context in which the block, partial or parent is expanded. In that case, it is recompiled with added indentation. The recompiled template is cached, so this needs to be done only once for each level of indentation encountered. It's a bit crude, but fast. This "magic" happens over here:
https://gitlab.com/jgonggrijp/wontache/-/blob/integration/mustache/mustache.coffee#L224-266
@spullara While it may not be immediately obvious, the above code proves that the output is not reformatted and that no additional buffering is needed. Apart from infrequent template recompilation, it's just string concatenation, immediately followed by output.
Feedback welcome!

Hi folks. I help maintain handlebars.java and somewhat JMustache.
I also have a Java static mustache implementation in the works which is a fork of another project someone else started (this point will become relevant).  It passes the spec with the exception of #139 .
I also think the block contents should be eagerly executed: https://github.com/mustache/spec/blob/5d3b58ea35ae309c40d7a8111bfedc4c5bcd43a6/specs/~inheritance.yml#L228-L237
(in the above apples should show and not bananas in my implementation). However I will save that rant for another time.
Let me first say this spec provides invaluable test cases (that I didn't have to write :)) and I am much appreciative of it however:
I have used Mustache and Handlebars in production settings for over 10 years with massive code bases.
Whitespace is something people do not care as much about as the spec would lead you to believe especially in the context of generating HTML.
In fact over and over and over bugs have been filed as folks already have a hard time understanding standalone tags because the time people care about it they want to manage it explicitly which most templating languages do by default!. Usually this is when they are generating something other than HTML.
So there are two groups that I see using Mustache:

People generating HTML. They don't view source anymore but use their browsers web developers tools. They don't care about white space. Actually if anything these folks care about performance per @spullara point.
People generating actual source code. Lots of the Open API tools use Mustache and or Handlebars. These folks would rather standalone and whatever auto whitespace we do did not exist.

Thus given the way the spec is written currently I think block tags should be treated as explicit (that is whitespace between the ($) tags is exactly preserved). It is the easiest addendum to the spec.
The exception of them having standalone semantics just like the current semantics for sections I would also be OK with.... but this whole pairing of tags and special semantics for blocks while may only take 7 lines in javascript is absolutely nontrivial for my Java static mustache (particularly because I did not write the tokenizer) and I can't imagine the complexity as well as perf (to @spullara point) when dealing with dynamic lambdas.
Instead of all this continued focus on whitespace:

I rather the spec have way more test cases (for example there is not a single test case for multiple sibling parents in a single template).
I rather lambdas be more powerful (and in someways the could already be with the blocks)
What people want is function calls like handlebars helpers. They don't want the incredibly confusing dynamic scoping of inheritance (the parent template can change the context... ask yourself how many programming languages allow this macro like expansion and how rife with bugs they are.... people want lexical scoped functions).

Anyway I was hoping to be 100% compliant with my implementation but I don't feel it is worth the effort for whitespace given my experience and especially so if it keeps getting more complicated.

@agentgt on my way out the door for a long weekend in the woods, so i haven't spent the time forming an opinion on your issue, but i do know that most implementations that diverge from the spec do it on this issue, so you'd be in good company :)

However, I can confirm from my own observations that implementers have a hard time wrapping their heads around how to implement it correctly. I suspect that especially incorrect implementations lead to bug reports.

There is not a single Java implementation that implements the whitespace rules correctly (my implementation will be the closest). The whitespace rules are currently more complicated than the whitespace rules for XML normalization. If the developers can't keep the model in their head it is no wonder end users that care about whitespace have similar problems.

Could you provide some examples?

https://github.com/samskivert/jmustache/issues/126
I have seen many more usually with code generation. More often than not the request is to remove whitespace handling (ie no standalone) once the user figures out what is going on.

Me too. Please feel welcome to join the discussion in https://github.com/mustache/spec/issues/135.

I did.

I don't. Mustache was conceived as a simple, logic-free yet expressive template language. I appreciate that concept and would like to keep it that way, even if that means that I occasionally need to take some extra steps in data preparation on the side of the programming language. From earlier discussions in this issue tracker, I know that I am not the only one with that opinion.

Yet we have lambdas aka functions embedded in JSON, we have dynamic creation of templates produced by lambdas as well as recursive execution of templates as well as dynamic scoping. I wouldn't even be surprised if some implementations are turing complete.
What people are asking for is context object + another parameter -> string. I have provided hosted CMS like systems for some time (e.g. user templates) and it is a lot easier to white list a couple of function calls then prevent all the other possibly behavior you can do with mustache (mustache.java even mentions this).

Isn't that a conscious design choice in Mustache, though? Simplicity over bells and whistles? If I wanted lots of bells and whistles to fine-tune the whitespace in my templates, I would probably use ERB or Jinja instead of Mustache. (That said, you can gain explicit control over whitespace in Mustache if needed, by moving newlines inside tags.)

Because the end user often does not have a choice to pick their templating. Tons and tons of Java libraries have chosen Mustache or Handlebars to do code generation.
Or in my case I'm coming from knowing 50 or so of offshore not-very-techy developers who use our products handlebars/mustache to generate HTML, CSS, etc. These guys do not care about whitespace but what I did get repeatedly asked is for basic function calls... otherwise they would dip into using Javascript.  That is why we use a locked down Handlebars for a good portion of our services.

The way I understand the spec (and implemented it), block scope is already lexical. However, you should not think of a block as a closure over the template in which it is defined, but as an independent template with its own root context. Consider this: if a block would close over the template of origin, the destination template would never be able to pass any values into it.

Maybe because it is Friday and I'm exhausted but I'm not sure I follow but I'm talking about parents changing the context.

The right place for that future rant is in https://github.com/mustache/spec/pull/125 (beginning of discussion) and https://github.com/mustache/spec/pull/129 (remainder). Do keep in mind that the decision was already taken, though, and that multiple people agreed with it.

The parent changing the context scope IMO is dynamic scoping or you could call it just plain macro expansion. I can implement it that way and I probably begrudgingly will but I think it is confusing for most. It is ripe for bugs but I suppose I can make that configurable and ditto for whitespace compliance.

If you'd appreciate it, I'm willing to take a look at your code and try whether I can make any suggestions that might help you get closer to the spec.

Feel free to take a look: https://github.com/snaphop/static-mustache/blob/snaphop/static-mustache-apt/src/main/java/com/snaphop/staticmustache/apt/TemplateCompiler.java
I will warn you the code is awful..ly complicated. I inherited the project and would have written the tokenizer different. It is a lot more complicated than most Mustache implementations because I have two trees to deal with: the mustache code, and the Java AST (via the annotation processor) as well of course generating Java code which mind you is far more complicated than Javascript because of types.
However I did put the whitespace logic in as the original author did not have it in so I take fault that it is overly complicated. I was hoping not to read and buffer all tokens till new line but given what apparently I need to do I should have done that all along and is probably why it is complicated.
Oh and maybe I'm just dumb but I still really do not understand why the newline remains at the end on #139 but I am trying as I said I hope to be one of the most compliant and typesafe to boot (well provided you don't just use maps aka hashes).

samskivert/jmustache#126

Could you give another example? In this one, the user expects exactly what the spec prescribes (i.e., the newline should be preserved).

Yet we have lambdas aka functions embedded in JSON, we have dynamic creation of templates produced by lambdas as well as recursive execution of templates as well as dynamic scoping. I wouldn't even be surprised if some implementations are turing complete.

I meant syntactically simple. You are right to point out that there is an explosion of possibility at the semantic level. This is also what I meant by "expressive".

What people are asking for is context object + another parameter -> string. I have provided hosted CMS like systems for some time (e.g. user templates) and it is a lot easier to white list a couple of function calls then prevent all the other possibly behavior you can do with mustache (mustache.java even mentions this).

I cannot really comment on this part. Maybe Mustache is not the best tool for this particular situation; I'll readily concede that Mustache is not a catch-all solution.

That is why we use a locked down Handlebars for a good portion of our services.

Why not use Handlebars everywhere?
Side note: Handlebars retains the whitespace rules of Mustache (if you don't use the added delimiter modifiers to adjust how whitespace is handled).

The way I understand the spec (and implemented it), block scope is already lexical. However, you should not think of a block as a closure over the template in which it is defined, but as an independent template with its own root context. Consider this: if a block would close over the template of origin, the destination template would never be able to pass any values into it.

Maybe because it is Friday and I'm exhausted but I'm not sure I follow but I'm talking about parents changing the context.

Yes. I think you need a different mental model. Nothing is "changing" the context. Rather, the parent template (i.e., not the parent tag pair) is providing the context to the block at the site of interpolation (you can think of "providing context" as passing an argument to a function). Equivalently, you can imagine that the content of the parent template is substituted for the content of the parent tag pair, overriding blocks as provided. To illustrate:
parent.mustache
{{#people}}
  {{! site of interpolation}}
* {{$greeting}}Hello, {{name}}{{/greeting}}
{{/people}}

template.mustache
{{<parent}}
    {{! site of definition}}
    {{$greeting}}How do you do, {{name}}?{{/greeting}}
{{/parent}}

Rendering template.mustache above is equivalent to rendering a single template that looks like this:
{{#people}}
* How do you do, {{name}}?
{{/people}}

Imagine passing the following chunk of data to either template. You'll find that the spec also predicts the same result in both cases. It's just lexical scoping.
{
    "people": [
        {"name": "Fred"},
        {"name": "George"}
    ]
}

* How do you do, Fred?
* How do you do, George?

If I understood your previous comment correctly, you seemed to propose that the {{name}} should already be resolved in template.mustache, in the current context of the {{<parent}}{{/parent}} pair. Inheritance could never work as intended in that case; this example would render as a list with two incomplete greetings, since name is not defined in that context.
* How do you do, ?
* How do you do, ?

The parent changing the context scope IMO is dynamic scoping or you could call it just plain macro expansion. I can implement it that way and I probably begrudgingly will (...)

Please don't! Such an implementation would be based on a misunderstanding. And yes, that would be confusing and a recipe for bugs as you wrote next. It is better to do something that you thoroughly understand, than to follow some authoritative rule that doesn't make sense to you.

Feel free to take a look: https://github.com/snaphop/static-mustache/blob/snaphop/static-mustache-apt/src/main/java/com/snaphop/staticmustache/apt/TemplateCompiler.java
I will warn you the code is awful..ly complicated. I inherited the project and would have written the tokenizer different. It is a lot more complicated than most Mustache implementations because I have two trees to deal with: the mustache code, and the Java AST (via the annotation processor) as well of course generating Java code which mind you is far more complicated than Javascript because of types.

Thanks! I'll study the code, this might take a while. I will not judge you or your code.

(...) I was hoping not to read and buffer all tokens till new line but given what apparently I need to do I should have done that all along and is probably why it is complicated.

I'm not entirely sure what you mean by "buffering" here, but as I have written before, I don't think it should be necessary.
My implementation keeps hold of the raw template text until tokenization and parsing are completed. Other than the raw text, the token stream and the parse tree, no intermediate strings, copies, lookups or whatever are used anywhere. Both code generation and rendering are just straight-to-output string concatenation.

Oh and maybe I'm just dumb but I still really do not understand why the newline remains at the end on #139

I'll try whether I can clarify matters for you over there.

but I am trying as I said I hope to be one of the most compliant and typesafe to boot (well provided you don't just use maps aka hashes).

That's a noble goal.

@jgonggrijp Alright after getting some sleep and playing with Wontache I understand how it is supposed to work. Block tags now are inherently special standalone (e.g. rule 1) in a parent template (ie not surrounded by {{<) and parent tags in the child template are special which is exactly how you described and I was just too dense yesterday to comprehend it.
I can implement it but it will require multiple passes (or replaying the tokens) which I was avoiding.
What I meant before about where I said I was OK with blocks being standalone was for the original standalone behavior (you know where you said I was being contradictive). I know see the confusion.
I'm mostly fine with this "special" standalone behavior but it complicates parsing.
I also don't know what is the correct behavior for embedded block tags (ie block tags within block tags) but that is sort of tangental to the spacing problem.
For example:
asdf asdf {{$b1}}{{$b2}}
hello
{{/b2}}{{/b1}}

Assuming no replacement would be:
asdf asdf hello

So b1 and b2 are standalone even though b1 has a tag immediately following it. I am not sure why I find that confusing but I do but if I think about it as a template expansion site it sort of makes more since.
Oh btw I'm a massive hypocrite on the code generation not wanting automatic whitespace handling as I actually used JMustache over mustache.java to generate the spec test code.

@jgonggrijp Alright after getting some sleep and playing with Wontache I understand how it is supposed to work.

Hooray! Although I'm afraid there is a bug in Wontache which might still have confused you somewhat. Wontache mostly does the right thing, but you cleverly exposed a bug that goes unnoticed by the existing tests in the spec.
By all means, do use Wontache as an example of how the spec might be implemented, but please keep in mind that it might sometimes still be wrong.

Block tags now are inherently special standalone (e.g. rule 1) in a parent template (ie not surrounded by {{<)

Yes, although that should not be the case if there is something preceding the opening tag, or following the closing tag.

I'm mostly fine with this "special" standalone behavior but it complicates parsing.

In the parsing stage, I think it's just a matter of keeping track of clearance before and after the tag. If you store that information in the parsing tree, the clearance of matching tags is easy to retrieve when you need it. To be honest, I think the code generation stage is more complicated (as far as this feature is concerned), especially if you implement reindentation.

I also don't know what is the correct behavior for embedded block tags (ie block tags within block tags) but that is sort of tangental to the spacing problem.
For example:
asdf asdf {{$b1}}{{$b2}}
hello
{{/b2}}{{/b1}}

Assuming no replacement would be:
asdf asdf hello

It should be
asdf asdf
hello

but Wontache is doing it wrong. Just like in #139, you found a bug in Wontache.
And Wontache is probably doing it wrong exactly because of the spacing rules, so I guess it's not entirely tangential. Although I still have to look into the exact reason. I will report back on that in #139 as I also announced there.

So b1 and b2 are standalone even though b1 has a tag immediately following it. I am not sure why I find that confusing

Because you are right and Wontache is wrong! There, you can hang that acknowledgement on your fridge or something. :-)

Oh btw I'm a massive hypocrite on the code generation not wanting automatic whitespace handling as I actually used JMustache over mustache.java to generate the spec test code.

And I presume JMustache does more of that whitespace management than mustache.java? Let us just enjoy the irony of that.

Like in #130, I have updated my posts to include links to and savestates for my newly developed Mustache playground. I hope this will reduce barriers for readers to experiment with the examples.
The playground is powered by my own implementation, Wontache. Because of that, it fully implements the latest spec as well as the rules proposed here. It aims to be a general, more powerful alternative to the "demo" on the official Mustache website. Whitespace is handled correctly, lambdas are supported and it is possible to enter multiple named templates alongside each other, so that partial and parent tags can be used effectively. And as demonstrated above, it is possible to share sessions with other people by copy-pasting chunks of JSON code. Please feel welcome to use it.
FYI @agentgt @spullara @bobthecow. The bug that @agentgt discovered (discussed above) has been fixed in the latest release of Wontache and it is not present in the playground.

@gasche Have your thoughts on the matter evolved in the meanwhile? Would you approve?
I decided to draw your attention again, because I got in touch with @spullara and he told me not to take his previous response as a full rejection.
CC @bobthecow: what are your thoughts on this one?

FWIW and in great irony given my previous comments on this thread I'm for these changes!
The whitespace handling of Mustache has become my favorite features such that I have even implemented it in extensions (not in spec) like fragments which happens to be similar to parent/blocks: https://jstach.io/jstachio/#mustache_fragments
(fragments are basically referencing a subset of a template as a partial and in this case we use section-like tag pairs as the subset... its actually a pretty cool feature I wish I had come up with but the HTMX guys did).

At this point, if I'm right, all participants in this pull request are somewhere on the spectrum between neutral and in favor:

I proposed it.
@spullara initially stated disagreement, but later wrote in private communication that he thought he should let me merge it.
@gasche expressed agreement both here and in #130.
@agentgt finished with a comment in favor.
@bobthecow attached a ❤ to the latter comment by @agentgt.

I will now rebase the branch, address merge conflicts and then merge it. I will check for other open PRs that could be merged quickly before tagging a new release.


[5.7] [Constraint solver] Track "isolated by preconcurrency" in the solver.

Rather than only setting the isolated-by-preconcurrency bit during
constraint application, track the closures it will be set for as part
of the constraint system and solution. Then, use that bit when
performing "strict concurrency context" checks and type adjustments,
so we don't treat an inferred-to-by-@Sendable-by-preconcurrency
closure in the solver as if it weren't related to preconcurrency.
Fixes the spurious warning from https://github.com/apple/swift/issues/59910.

@swift-ci please test

Failure is unrelated:
Timed Out Tests (1):
  lldb-api :: lang/swift/private_typealias/TestSwiftPrivateTypeAlias.py

@swift-ci please test macOS


Create 0000-01-02-CaptSmee.md

lab

This step of the lab seems to be missing information on how to make changes to the file being used. Unless I completely overlooked that information.


[OAP-1492]Change spark 3.0.0 from preview version to formal release version

Change the downloaded Spark binary from preview version to formal version.

LGTM.


Zooming in deselects Row in Timegraph chart

After a row and state is selected in timegraph chart, zooming in deselects them. I believe they should be retained.

Could you detail in which condition you can produce this bug? browser, condition on selected row/state. I cannot reproduce it here.

@tahini  I don't think it is dependent on browser. Everytime we call states API, the entire chart is refreshed without retaining the previously selected state and row. One way to reproduce this is to make sure you are zooming in enough so that it calls states API. In the .gif below, the row is deselected everything there is a call to the states API. Let me know if you are still unable to reproduce this issue.

Ok, I can reproduce this by zooming with the 'w' and 's' keys, not zooming from the navigator.


Test cases added for the operate

###Description will be added

Hi @Ali-0111, @theresetuyi ,
While you made a great effort in this project, unfortunately, I cannot proceed to review your code.
Invalid Code Review Request
You have submitted a project, that does not have a professional PR. Kindly add a PR description that summarizes all changes added to the branch.
Your Code Review Request will be marked as invalid in your Dashboard, so please submit a new one once you are ready 🙏
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.

Invalid Code Review Request does not count into the code reviews limit.


LOAD DATA LOCAL INFILE does not work

Hi,
the page states that it is possible to run LOAD DATA LOCAL INFILE from an UNC path. but is not working, please check this msdn forum:
https://social.msdn.microsoft.com/Forums/en-US/523f1b9f-cc26-45f0-90cc-107d63bec22a/load-data-local-infile-does-not-work?forum=AzureDatabaseforMySQL

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

ID: 09a85aa0-5baf-cf60-94a0-fa949c3a841b
Version Independent ID: f3673c4b-4c84-64be-27e5-04d57f4b5008
Content: Limitations - Azure Database for MySQL
Content Source: articles/mysql/concepts-limits.md
Service: mysql
GitHub Login: @ajlam
Microsoft Alias: andrela

@pompiamp Thank you raising this issue. This functionality is supported with the SMB protocol. Please see: Use an Azure file share with Windows where the UNC path is mounted as a drive letter.

Can you take the UNC Path and mount it via SMB so that it has a local drive letter and is therefore a local path to a remote fire share. I think this is the step that still needed based upon your configuration.

@pompiamp Since we have not heard back from you we will now proceed to close this thread. If there are further questions regarding this matter, please comment and we will gladly continue the discussion.

I'm also coming across this issue. I've mapped the share locally and the local_infile is set on the MySQL resource.
Is there a solution?


Add legal aid offices to Resources

Not all of the legal aid offices are listed for example Cape Girardeau
Trevor Wieprecht

Right now, we have Resources for the whole program for LSEM, MMLS, and LAWMO
and we have three offices for LSSM
Should we add all the offices?  Only the offices that take applications?


DefaultDnsServerAddressStreamProvider fails when /etc/resolv.conf contains inline comments on nameserver

Expected behavior
DefaultDnsServerAddressStreamProvider and ResolvConf should handle inline comments graceful and filter out entries before they lead to an issue at a later stage.
Actual behavior
When there is an inline comment in /etc/resolv.conf nameserver entry, the whole DefaultDnsServerAddressStreamProvider will be unusable due to an Exception in the static class creation. This leads to a NoClassDefFoundError as the class is not initialized.
Steps to reproduce
Add a comment to an entry within /etc/resolve.conf
E.g. nameserver <IP_ADDRESS> #this will break netty
Minimal yet complete reproducer code (or URL to code)
Netty version
4.1.115.Final but the issue was introduced with 4.1.108.Final
JVM version (e.g. java -version)
Tested with Java 11, but should not matter.
OS version (e.g. uname -a)
Any Linux,

A fix would look something like this
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.net.InetSocketAddress;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

final class ResolvConf {
    private final List<InetSocketAddress> nameservers;

    static ResolvConf fromReader(BufferedReader reader) throws IOException {
        return new ResolvConf(reader);
    }

    static ResolvConf fromFile(String file) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(
                new FileInputStream(file))); // 1MB limit removed for simplicity
        try {
            return fromReader(reader);
        } finally {
            reader.close();
        }
    }

    private ResolvConf(BufferedReader reader) throws IOException {
        List<InetSocketAddress> tempNameservers = new ArrayList<InetSocketAddress>();
        String line;

        while ((line = reader.readLine()) != null) {
            InetSocketAddress address = parseLineToAddress(line);
            if (address != null) {
                tempNameservers.add(address);
            }
        }

        this.nameservers = Collections.unmodifiableList(tempNameservers);
    }

    List<InetSocketAddress> getNameservers() {
        return nameservers;
    }

    /**
     * Parses a line from the resolv.conf file into an InetSocketAddress.
     * Returns null if the line is invalid or unresolved.
     */
    private InetSocketAddress parseLineToAddress(String line) {
        if (line == null || line.trim().isEmpty()) {
            return null;
        }

        line = line.trim();
        if (!line.startsWith("nameserver")) {
            return null;
        }

        String address = line.substring("nameserver".length()).trim();
        int commentIndex = address.indexOf('#');
        if (commentIndex != -1) {
            address = address.substring(0, commentIndex).trim();
        }

        if (address.isEmpty()) {
            return null;
        }

        InetSocketAddress socketAddress = new InetSocketAddress(address, 53);
        return socketAddress.isUnresolved() ? null : socketAddress;
    }
}

IMHO the DefaultDnsServerAddressStreamProvider should also handle the case graceful if there are any unresolved InetSocketAddresses in the final List<InetSocketAddress> defaultNameServers = new ArrayList<InetSocketAddress>(2);
The question is mainly if the filtering should happen on each step so that defaultNameServers.isEmpty() can be evaluated multiple times.
Overall it is problematic that this logic is in part of the static initialization of the class and any Exception that is not catched will leave the class in an state where it is not initialized and therefore throws a NoClassDefFoundError.


Implement bigtable::InstanceAdmin::AsyncUpdateAppProfile

We want to implement an asynchronous version of UpdateAppProfile for the interfaces that use exceptions. The signature of this function should look like so:
class google::cloud::bigtable::InstanceAdmin { public:
  future<google::bigtable::admin::v2::AppProfile> AsyncUpdateAppProfile(
      bigtable::InstanceId instance_id, bigtable::AppProfileId profile_id,
      AppProfileUpdateConfig config,
      CompletionQueue& cq);
};

As part of this work we need to:

[ ] Implement the function.
[ ] Implement an integration test for this function.
[ ] Implement an example for this function.
[ ] Execute the example as part of the CI build.

The main difference between the example and the integration test is that the latter uses pre-defined values and checks the resulting state against expected outputs, while the former takes (most) of its parameters from the command-line and simply prints out any state.

Fixed in #2516


Minimum version check should be 5.0 not 3.0

Line 73 Test-PowerShellVersion -Version 3.0
This check is for the PSWindowsUpdate module.
However, on line 76 there is this Install-PackageProvider -Name NuGet -MinimumVersion <IP_ADDRESS> -Force | Out-Null
Line 76 requires Powershell 5 or higher. When I tried to add this artifact to an image with an older version of Windows (e.g. Server 2012 R2), the artifact fails.

RE: https://github.com/Azure/azure-devtestlab/blob/master/Artifacts/windows-install-windows-updates/artifact.ps1


Error occurred

Hey there, I am surprise that someone made a plugin TeamArena. However, maybe I am little bit silly to the setup instruction. I got an error after I clicked the join sign.
[Server thread/CRITICAL]: Error: "Call to a member function getProvider() on null" (EXCEPTION) in "plugins/TeamArena.phar/src/hachkingtohach1/teamarena/task/ArenaScheduler" at line 46
Thanks.

You need install plugins: EconomyAPI, KillCounter, thanks for downloading :@@

But I.... installed them already...
:(


Relocate page for working with Azure CLI?

This page appears in Optimization > How-to guides, would it make more sense in the Quantum Computing > How-to guides section?

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

ID: 05945c3a-0ba7-4ea6-9b7c-07cd96a5051a
Version Independent ID: 3a010540-d36e-6334-06ad-668842e2052f
Content: Manage quantum workspaces with the Azure CLI - Azure Quantum
Content Source: articles/how-to-manage-quantum-workspaces-with-the-azure-cli.md
Service: azure-quantum
Sub-service: core
GitHub Login: @ricardo-espinoza
Microsoft Alias: ricardoe

Hi @frtibble. Thanks for pointing this out. In fact, this section should be in both "How-to-guides", such as other shared sections like "Work with jobs" and "Submit jobs". I will fix that.

Work item created in DevOps, #1862830

I am closing this issue as this PR https://github.com/MicrosoftDocs/quantum-docs-private/pull/433 fixes it.


Add fingerprint Hyundai Tucson Hibrid 2022 Europe

Car
Hyundai Tucson Hibrid 2022 Europe
Route
cc74842ab217fc2e/2024-02-03--17-35-30

looks good from the bot!

Dongle, platform, VIN
Name from VIN 🆚 CarInfo
Segments
Bad seg tags
Good seg tags

cc74842ab217fc2eHYUNDAI TUCSON 4TH GEN000000000........
None 🆚None
44 routes, 699 segments

- all lat active: 84- no input all lat active: 36


refactor(meta): move get_back_pressure into monitor service and make it concurrent

I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?

In #14790, as mentioned in review, I move the get_back_pressure into monitor service and perform RPC calls concurrently. Also fix some nits.
Checklist

[ ] I have written necessary rustdoc comments
[ ] I have added necessary unit tests and integration tests
[ ] I have added test labels as necessary. See details.
[ ] I have added fuzzing tests or opened an issue to track them. (Optional, recommended for new SQL features #7934).
[ ] My PR contains breaking changes. (If it deprecates some features, please create a tracking issue to remove them in the future).
[ ] All checks passed in ./risedev check (or alias, ./risedev c)
[ ] My PR changes performance-critical code. (Please run macro/micro-benchmarks and show the results.)

[ ] My PR contains critical fixes that are necessary to be merged into the latest release. (Please check out the details)

Documentation

[ ] My PR needs documentation updates. (Please use the Release note section below to summarize the impact on users)

Release note
If this PR includes changes that directly affect users or other significant modifications relevant to the community, kindly draft a release note to provide a concise summary of these changes. Please prioritize highlighting the impact these changes will have on users.

There seems to be two API for back-pressure now. 😄
https://github.com/risingwavelabs/risingwave/blob/713fdb52bed4a0d0029f0897892a5bc60d9b8439/src/meta/src/dashboard/mod.rs#L406-L410

Yeah, as mentioned in #13830, this rpc trying to get back pressure without the prometheus. I am writing the frontend code to find a good way to convert the bp into bp rate.


[full-ci] bump reva version

Signed-off-by: jkoberg<EMAIL_ADDRESS>
Description
Bumps the reva version
Related Issue

Fixes <issue_link>

Motivation and Context

How Has This Been Tested?

test environment:
test case 1:
test case 2:
...

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Technical debt
[ ] Tests only (no source changes)

Checklist:

[ ] Code changes
[ ] Unit tests added
[ ] Acceptance tests added
[ ] Documentation ticket raised:

fixes https://github.com/owncloud/ocis/issues/3757


Bunch of mappings and docs.

I started documenting some stuff then I slipped and done much more.

referring to @supersaiyansubtlety's comment, why not use "a resource metadata instance"?
it's a little more verbose, but makes sense


Add open source works by Blendogames

At least these four games by Blendogames are open source:
Gravity Bone: https://github.com/blendogames/gravitybone
Flotilla: https://github.com/blendogames/flotilla
Thirty Flights of Loving: https://github.com/blendogames/thirtyflightsofloving
Quadrilateral Cowboy: https://github.com/blendogames/quadrilateralcowboy

Hi @fahrstuhl
Thanks for this, they were all added :)


Shift + drag Zoom to image area

Does the functionality exist to drag a box over an area of the image and zoom to that area? Something similar to holding Shift key down and dragging mouse (shift+drag) to zoom to bounding box?
Animated example here:
https://github.com/mapbox/mapbox-gl-js/issues/1038
https://github.com/Leaflet/Leaflet/blob/master/src/map/handler/Map.BoxZoom.js

It does not, but it shouldn't be too hard to build and would make a great plugin! This plugin might be a good starting point:
https://github.com/picturae/openseadragonselection


[OSD-19300] Add IAMuser creation to accountclaim controller

What is being added?
When the fleetmanager accountclaim is deleted, the IAMuser is recreated along with the secret
Checklist before requesting review

[x] I have tested this locally
[x] I have included unit tests
[ ] I have updated any corresponding documentation

Steps To Manually Test

Start the operator
Run "make predeploy"
Run "make create-account"
Set  account.Spec.accountPool to "hs-zero-size-accountpool"
Run "make create-accountclaim-namespace"
Run "make create-fleet-accountclaim"
Observe that the IAMuser and secret is deleted
Run "make delete-fleet-accountclaim"
Observe that the IAMuser and secret is created
Run "create-accountclaim"
Observe that the account created in step 3 is claimed

Ref OSD-19300

/approve

Codecov Report

Merging #805 (ba5d83c) into master (ff557d5) will increase coverage by 0.01%.
Report is 3 commits behind head on master.
The diff coverage is 64.00%.

Additional details and impacted files

@@            Coverage Diff             @@
##           master     #805      +/-   ##
==========================================
+ Coverage   46.18%   46.19%   +0.01%
==========================================
  Files          44       44
  Lines        6388     6418      +30
==========================================
+ Hits         2950     2965      +15
- Misses       3130     3140      +10
- Partials      308      313       +5

Files
Coverage Δ

controllers/account/byoc.go
67.51% <100.00%> (ø)

controllers/account/ec2.go
58.25% <100.00%> (ø)

controllers/account/iam.go
56.72% <80.95%> (ø)

controllers/account/account_controller.go
32.12% <62.50%> (ø)

...ontrollers/accountclaim/accountclaim_controller.go
56.91% <50.00%> (-0.35%)
:arrow_down:

/lgtm


Fix ClusterInitBundleTest and DiagnosticBundleTest tests

Description
This PR intends to fix issues mentioned below with following tests.

ClusterInitBundleTest

ClusterInitBundleTest > Test that revoke cluster init bundle requires impacted clusters FAILED
    Condition failed with Exception:

    response.initBundleRevocationErrorsList.first().impactedClustersList*.id.contains(clusterId)
    |        |                              |       |                     |           |
    |        |                              |       |                     |           groovy.lang.MissingPropertyException: No such property: clusterId for class: ClusterInitBundleTest
    |        |                              |       |                     |           	at ClusterInitBundleTest.Test that revoke cluster init bundle requires impacted clusters(ClusterInitBundleTest.groovy:53)

DiagnosticBundleTest

DiagnosticBundleTest > Test that diagnostic bundle download #desc > DiagnosticBundleTest.Test that diagnostic bundle download succeeds with debug logs reader token FAILED
    Condition not satisfied:

    foundK8sInfo
    |
    false
        at DiagnosticBundleTest.Test that diagnostic bundle download #desc(DiagnosticBundleTest.groovy:125)

Changes are verified manually using ./gradlew test --tests=TestName

/test openshift-newest-qa-e2e-tests

/test gke-qa-e2e-tests


Can't extend a8sidecar nginx.conf with stream socket context by adding a file to /etc/nginx/conf.d

I would like to use Amalgam8 for an application that is composed of web services as well as JMS, MongoDB, and JDBC servers.
IIUC it is not currently possible to proxy TCP or UDP sockets via Amalgam8 sidecars - presumably due to issues alluded to by issues/4#issuecomment-245413281.  I don't know if the Lua magic used by the a8sidecar can generate Nginx configuration for TCP and UDP sockets.
Theoretically we could extend the Nginx configuration used by the amalgam8/a8-sidecar:alpine Docker container to proxy TCP or UDP sockets on our own until the Lua thing is addressed, but when I tried I ran into the problems described in this comment.

I have a mongo-proxy.conf file that looks like this:
stream {
 upstream backend {
   server <ip>:27017;
 }
 server {
   listen 21212;
   proxy_connect_timeout 1s;
   proxy_timeout 1m;
   proxy_pass backend;
 }
}

that I mount into amalgam8/a8-sidecar:alpine as /etc/nginx/conf.d/mongo-proxy.conf but at startup this fails since it looks like the default nginx.conf file loads /etc/nginx/conf.d/*.conf files into the http context.
For example:
mongo_sidecar    | time="2016-11-16T21:25:46Z" level=info msg="Starting NGINX"
mongo_sidecar    | time="2016-11-16T21:25:46Z" level=error msg="Failed to start NGINX service" error="exit status 1: nginx: [emerg] "stream" directive is not allowed here in /etc/nginx/conf.d/mongo_proxy.conf:1\n"
mongo_sidecar    | time="2016-11-16T21:25:46Z" level=warning msg="Registry listener f

One way to allow us to customise the Nginx configuration in the a8sidecar would be to do something like this in the nginx.conf configuration file:
http {
  ...
  include /etc/nginx/conf.d/*.http.conf;
  ...
}

stream {
  include /etc/nginx/conf.d/*.stream.conf;
}

I don't know very much about Nginx or its configuration best practices.  Would such a change lead to problems?
Alternatively would it make more sense for the include directive in the http.conf file to appear outside the http context and rely on the user supplied files in /etc/nginx/conf.d/*.conf to include the contexts on their own?  I don't know if that option is even technically possible - if Nginx will combine the context declarations from multiple files into one overall declaration.

@greglanthier can you try out the fix in PR #403 ? You would just have to overwrite the nginx.conf available as part of current sidecar distribution with the nginx.conf in #403 (this is temporary). And then simply add the mongo proxy config to your image or mount it in /etc/nginx/conf.d/mongo_proxy.stream.conf.

Thanks @rshriram!
I needed to append a ; to the include directive in your change.  For example:
 include /etc/nginx/conf.d/*.stream.conf

becomes
  include /etc/nginx/conf.d/*.stream.conf;

After that the Nginx instance in the a8sidecar image started up as expected when I mounted the following Nginx config file as a volume under the name /etc/nginx/conf.d/mongo-proxy.stream.conf:
upstream backend {
 	server <ip>:27017;
}

server {
    listen 21212;
    proxy_connect_timeout 1s;
    proxy_timeout 1m;
    proxy_pass backend;
}

I'm going to assume this Nginx custom configuration step will only be a temporary measure until the tcp / udp endpoint types are configured automatically some how, is that correct?

Yes, this is temporary. Another thing to keep in mind. I changed the include path to include /etc/nginx/conf.d/stream/*.conf because nginx has a set of conf files in the default installations that pertain to HTTP only.

Great!  Thanks for such a fast turnaround on this, @rshriram.
Just in case: note that I needed to append a semicolon to the include directive you added for the stream context in the nginx.conf file.
Thanks again for your help!


chore(package.json): add babel-loader because it is a peerdependency

got an error during npm install<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed. This unmet peer dependency results in javascript load errors in the demos and the angular2 examples.
from https://github.com/babel/babel-loader:

Note: npm deprecated auto-installing of peerDependencies since npm@3, so required peer dependencies like babel-core and webpack must be listed explicitly in your package.json

.

Oof, I guessed we must've missed this because we have babel installed globally.
💎 LGTM will merge once CI passes. Thanks so much for your contribution!

giving travis-ci one more chance and if it fails I'm just going to go ahead and merge. Looks like a travis-ci/saucelabs problem.

yes that's strange. the build from my fork works without problems: https://travis-ci.org/mseemann/material-design-lite/builds/155159121


Set the alias to the service name instead of the network name

This makes it work a little closer to compose part and it is more
correct 👼
Fixes #30836
/cc @thaJeztah @dnephin @mavenugo @icecrime @cpuguy83 @AkihiroSuda
🦁
Signed-off-by: Vincent Demeester<EMAIL_ADDRESS>

z failures is unrelated 👼


Example of parallel processing of a SystemSet

I'm working on using Bevy to facilitate an ecological (scientific) simulation model. To that end, I need to repeat/replicate the positted scenario a number of times, while using already available resources, and also having some things that pertain to the
particular iteration. Also, I need to reset some resources/etc. after each run.
There is a discussion on this here #1678, where @alice-i-cecile called this

easy parallel process replication

and also there is this RFC for SubWorlds bevyengine/rfcs#16 that could help with this.
If someone could pinpoint some way to accomplish today, that would be great so as to be able to get going for now.

I have a PR up for an example of system sets.
If I understood your requirements correctly perhaps this part is of interest to you:
https://github.com/bevyengine/bevy/pull/1909/files#diff-608eb7fd189284d2c34d7192c97d3400c16781e1d031437da19b0714a790486eR77-R93
I haven't gotten a lot feedback on the PR yet though so I'm not sure if it's idiomatic/correct/clear at this point, but it might at least point you in the right direction.

I'm still unable to do this, and it is beginning to become important for my project.
Currently, there is no way for me to even Clone the World and then use that as a way to parallel run
the App.
I'd appreciate it if anyone had some ideas on how to do it.

Have you seen the new Render Rework? It includes a SubApps experiment.
The second iteration (first link) also has SubGraphs.
Not sure if either solves your problem right now, but they are worth checking out.

Would it work in your case to tag entities specific to a scenario with a unit struct Scenario1, and have everything in one app, with your systems only making interactions between entities with the same tag?

It wouldn't necessarily not work. But it is less than ideal. I don't want
to figure out how many
repetitions to schedule simultaneously. Nor do I want to pollute all the
systems with having repetitions
as a marker, etc.
I also don't see that Bevy supports "taggy" behaviour. I'm not sure it
would translate to good performance
in the long run.
Also, I have some other things, that I'm unsure about. Like, are resources
then going to have a repetition id
attached to them. What if I wanted a resource shared across repetitions? Is
ResMut a sort of Mutex or is it
not?
I'll investigate the other hints, but right now, I'm really unsure about
things.
Thanks for the advice folks.
On Wed, 23 Jun 2021 at 01:26, François @.***> wrote:

Would it work in your case to tag entities specific to a scenario with a
unit struct Scenario1, and have everything in one app, with your systems
only making interactions between entities with the same tag?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/bevyengine/bevy/issues/1989#issuecomment-866402285,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAIDVSA5O22SH6LY4O5BHJTTUELZVANCNFSM43OIH7RQ
.


No such file or directory found when running discovery

Running tap within Meltano. Specifically the following command meltano invoke tap-rest-api --infer_schema or meltano select --list --all tap-rest-api. I have the following meltano.yml:
version: 1
send_anonymous_usage_stats: false
elt.buffer_size: 52428800
plugins:
  extractors:
  - name: tap-rest-api
    pip_url: tap-rest-api
    namespace: tap_rest_api
    executable: tap-rest-api
    capabilities:
      - catalog
      - config
      - state
      - discover
    settings:
      - name: streams
      - name: url
      - name: catalog_dir
      - name: schema_dir
      - name: schema
      - name: auth_method
    config:
      url: http://<whatever>.com
      auth_method: no_auth
      catalog_dir: ./extract
      schema_dir: ./extract
      streams: test_stream
      schema: test_schema

Here's full text of the error. It appears to be trying to read a file that has not been created yet.
Catalog discovery failed: command ['/Users/.../meltano/.meltano/extractors/tap-rest-api/venv/bin/tap-rest-api', '--config', '/Users/.../meltano/.meltano/run/tap-rest-api/tap.config.json', '--discover'] returned 1: INFO Loading Schemas
INFO Loading schema for test_stream
CRITICAL [Errno 2] No such file or directory: './extract/test_stream.json'
Traceback (most recent call last):
  File "/Users/.../meltano/.meltano/extractors/tap-rest-api/venv/bin/tap-rest-api", line 8, in <module>
    sys.exit(main())
  File "/Users/.../meltano/.meltano/extractors/tap-rest-api/venv/lib/python3.7/site-packages/singer/utils.py", line 229, in wrapped
    return fnc(*args, **kwargs)
  File "/Users/.../meltano/.meltano/extractors/tap-rest-api/venv/lib/python3.7/site-packages/tap_rest_api/__init__.py", line 188, in main
    discover(CONFIG, STREAMS)
  File "/Users.../meltano/.meltano/extractors/tap-rest-api/venv/lib/python3.7/site-packages/tap_rest_api/schema.py", line 64, in discover
    config["schema"])
  File "/Users/.../meltano/.meltano/extractors/tap-rest-api/venv/lib/python3.7/site-packages/tap_rest_api/schema.py", line 54, in _discover_schemas
    stream)})
  File "/Users/.../meltano/.meltano/extractors/tap-rest-api/venv/lib/python3.7/site-packages/tap_rest_api/schema.py", line 39, in load_discovered_schema
    schema = load_schema(schema_dir, stream.tap_stream_id)
  File "/Users/.../meltano/.meltano/extractors/tap-rest-api/venv/lib/python3.7/site-packages/tap_rest_api/schema.py", line 33, in load_schema
    schema = utils.load_json(os.path.join(schema_dir, "{}.json".format(entity)))
  File "/Users/.../meltano/.meltano/extractors/tap-rest-api/venv/lib/python3.7/site-packages/singer/utils.py", line 108, in load_json
    with open(path) as fil:
FileNotFoundError: [Errno 2] No such file or directory: './extract/test_stream.json'

One concern is that the command meltano seems to be generating seems to be using discover instead of infer_schema. So maybe this is a bug in meltano or just demonstrating incompatibility with Meltano?

It's probably incompatibility that can be overcome. I'm not a user of Meltano, but can you first try removing discover from capabilities section in meltano.yml and run infer_schema separately (don't know how you can do this from Meltano...you might need to manually run tap-rest-api) to generate the schema and catalog files before running the sync in Meltano?

I just chatted with the folks at Meltano. This is definitely a compatibility issue. Currently Meltano defaults to running discovery before running a separate command with the provided args. I'll be filing an issue with them to change this default behavior.
I tried manually generating the schema and catalog files. I first removed the - discover from capabilities. Then I ran meltano invoke tap-rest-api --infer_schema. The first error I got was Applying catalog rules failed: catalog file is missing. which I thought was odd because I thought --infer_schema was supposed to generate that. Regardless I got passed that by also removing the - catalog capability.
I ran meltano invoke tap-rest-api --infer_schema again. This time it gave me this error: CRITICAL local variable 'end_from_config' referenced before assignment. Some feedback on this, my endpoint doesn't need any time or index information to be provided. Fortunately, my endpoint doesn't still respond even if you do provide it.
So I added index_key and end_index to my config with some dummy values and then ran meltano invoke tap-rest-api --infer_schema again. This generated both the catalog and schema.


How to ?  (newer versions are missing select for Compare menu option)

Ok, I recently moved computers and had to reload everything, so my old configs that worked easy disappeared.
I downloaded VS 1.76 and Diff Viewer and can't find the "Open for Comparison" menu choice...
So rather than get frustrated, I will ask.... How do I compare two folders/files?
I have TWO libraries I want to compare
"VSStuff/Marlin Bug Fix"  and "VSStuff/Iliam"
I want to compare those two builds, probably starting with the "Config.H" files....
How do I open those two to compare them??   I open the files/folders. but never see the "select for compare" options...
H E L P ??

I have been playing more, I can get One file open for compare, but everythime I try to open the second file, it flips to that file and I still only have one file open.
I can't figure out how to get BOTH files open, and be able to do it again if I do get it once...

@inspectionsbybob I believe you mean a different package that allows you to compare two files, such as fabiospampinato.vscode-diff (called simply Diff in the extensions list).
The package here, caponetto.vscode-diff-viewer, i.e. Diff Viewer, lets you open existing diff files, not showing the differences between two selected files.

OK, I will have to go get the "other" diff....
Before I switched computers, it was easy to open to files in the editor, and then select them to compare...done...
Trying to get back to that....

@inspectionsbybob please let me know when you find what it was

It has something to do with opening the editor and THEN doing a file open... open file will not show in file explorer, you need both the editor and the explorer open before "select to compare" will show up...


custom SMTP error

see the picture below,
I found that this error was due to the use of this package 'MailKit'
i can found this issues at MailKit
https://github.com/jstedfast/MailKit/issues/635

i think it's a good idea to add an option for confirm should use 'NetworkCredential' or 'SaslMechanismNtlm '
if(shouldUseNtlm){   var ntlm = new SaslMechanismNtlm ("username", "password");   smtpClient.Authenticate (ntlm); }else{    if (_credentials != null)     {             smtpClient.Authenticate(_credentials);    } }

Hi @DrZhong Thanks for your suggestion. We will think about it and try to add it in the next issues.


fixes squirrel 1.2.2 issues for windows

fix for https://github.com/GitbookIO/nuts/issues/18
Squirrel throws an Exception from the empty response:
https://github.com/Squirrel/Squirrel.Windows/blob/d6f83880ee6ebf068f1f2325c6f97255a237678c/src/Squirrel/UpdateManager.CheckForUpdates.cs#L124
This change skips the empty response and allows Squirrel to detect that it is the latest version.

Thanks :+1:

Happy to help. Cheers!

Published as 2.6.1


Error running :Telescope vim_bookmarks

I'm running "Telescope vim_bookmarks" and I get the following error in the status area:
E5108: Error executing lua ...re/nvim/plugged/telescope.nvim/lua/telescope/command.lua:100: attempt to call a nil value

I have updated all the plug-ins as of right now
telescope.nvim : 69eb5eacff421e05aeb1e02ff97ef64bfd955c53
telescope-vim-bookmarks.nvim : 4da66dab44f37d0de4b88cedf9e114c5b0855c20
vim-bookmarks: 3adeae10639edcba29ea80dafa1c58cf545cb80e

Hi, you need to do either Telescope vim_bookmarks all or Telescope vim_bookmarks current_file

Is there a way to set current_directory as default? "all" might be too broad, and 'current_file' too small as scopes.

Not currently. Can you please open a new issue with this feature request?


Add fixedWidth attribute to GridLayout

Suggested solution to: https://github.com/jbaysolutions/vue-grid-layout/issues/184

If you have a better name for the attribute or the documentation, please get back and I'll update it asap.

Sorry for the late reply, but I can't see how this is working. Its not making the GridItems square.

This is what happens when I enable fixedWidth. If this is the intended behavior, I can't really see its purpose.

Yes! You are able to have dependency between width and height. You couldn't before. It looks a bit strange in the test environment since the griditems are so small. If they are more 100px maybe it makes more sense?
I'll try to explain my use-case.
We indend to be build a radiator showing statuses of jobs running in our ci-environement. For those jobs we need to display different amount of information. We don't want information to show differently depending on the screen resolution (except if resolution is very low). In these cases we would need to specify a fixed size of griditem to  be able to control this. We can then use the x/y value to specify the exact size we need.


Improving the Keylime documentation

The Keylime documentation is now part of the main repository and want to improve it. Following things need to be improved:
How to use the TPM EK CA Store
There is currently no documentation on how to add custom CA to the cert store (there is only a comment in the keylime.conf).

[ ] Add documentation where the cert store is located and which format is used
[ ] Add list of certificates provided by Keylime
[ ] Describe were to find the most common CAs. (Maybe use https://github.com/Lernstick/Lernstick-Bridge/blob/517ba2c7941c4ba74a30272b9f05e66e06a875cb/tpm_cert_store/README.md as reference)

Keylime and virtualized TPMs
The Keylime test setup using the IBM TPM emulator does not have a EK certificate. We should provide documentation on how to add a EK CA and EK certficate for testing. Also there is no documentation on how to use Keylime with virtualized TPMs.

[ ] Add tutorial on how to add an EK certificate to the tpm_emulator using createekcert from the IBM TSS.
[ ] Add tutorial on how to use the libvrit swtpm integration and link to the general swtpm documentation.
[ ] Investigate vTPM implementations of Hyper-V and VMWare

IMA Validation
Keylime does support validation for many of the features provided by IMA. Unfortunately only the basic features are documented.

[ ] Document signature validation against a provided keyring
[ ] Document automatic IMA key learning (@stefanberger ?)
[ ] Document device mapper integration (@THS-on)
[ ] Add tutorial and how to create custom IMA policies using the new format
[ ] Remove references to old format once https://github.com/keylime/enhancements/pull/71 is implemented

Measured Boot Validation
Keylime does provide a entire policy engine for measured boot. The current documentation only describes the general concept and not how to use it.

[x] Add documentation on how to use the example policy and how to use create_mb_refstrate.
[x] Add documentation on the components to build a policy (@maugustosilva ?)

[ ] Add section about pitfalls when evaluating the measured boot log (e.g. https://github.com/google/go-attestation/blob/master/docs/event-log-disclosure.md)
[ ] Add general overview what information can be found the event log

Keylime mTLS setup
The verifier/tenant connects to the agent using mTLS. The entire TLS setup is pretty complicated and will be simplified with https://github.com/keylime/enhancements/pull/73. The following things should be documented:

[ ] How to deploy the agent using the current configuration (@THS-on)
[ ] Describe more complex setups

PR Template

[ ] Create a PR template that contains a reminder to also update the documentation.

#1050 should start to address itens one and two on you list @THS-on. Remember, it is a working in progress, and so it will constantly refined.

Is this issue still open? I am looking to contribute to it.

@nishitiwari22 yes absolutely. If you would like to take a topic that's listed here and try it out and then improve the documentation (and feel free to ask any questions you'd like in our slack channel), your contributions would be very welcome!


Error: Track is missing a required key

Hi there - Running into an issue loading up an array of tracks into the player. Here's some information.
Checking the docs it looks like I have all of the required keys for the track object structure.
I am mapping an array of data I have into the format the player wants like so
const mapTracksForPlayer = (show) => {
  return show.tracks.map(track => ({
    id: track.id,
    url: track.mp3,
    title: track.title,
    artist: 'Phish',
    album: show.date,
    genre: 'Phish',
    artwork: 'https://s3.amazonaws.com/hose/images/' + show.date + '.jpg'
  }));
}

I am then passing the returned array of data into the trackplayer methods like so
    TrackPlayer.setupPlayer().then(() => {
      TrackPlayer.add(tracksForPlayer).then(() => {
        // TrackPlayer.skip(track.id);
        TrackPlayer.play();
      });
    })

Wondering if i'm going crazy and misspelled something but cannot seem to find any small issues like that in my code. Some screenshots for what one of the objects in the array looks like, as well as the error message from the console.

Found the problem - Closing this issue as I followed the example in the readme (using await and async). This should be added to the docs if add is an asynchronous call.

@chrisbendel I'm encountering the same issue.Can you please share the fix you did to solve this error.Also this only persists in iOS.Android works well

@chrisbendel Can you please post the solution here? @viveksri96  Have you fixed this issue?

For me, my track id was NOT a string... once I changed it to a string this error went away

Digging code; id, title, artist, url required.
 init?(dictionary: [String: Any]) {
       guard let id = dictionary["id"] as? String,
           let title = dictionary["title"] as? String,
           let artist = dictionary["artist"] as? String,
           let url = MediaURL(object: dictionary["url"])
           else { return nil }

You don't need to dig code, it's right in the Track Object documentation.

Only the id, url, title and artist properties are required for basic playback

Digging code; id, title, artist, url required.
 init?(dictionary: [String: Any]) {
       guard let id = dictionary["id"] as? String,
           let title = dictionary["title"] as? String,
           let artist = dictionary["artist"] as? String,
           let url = MediaURL(object: dictionary["url"])
           else { return nil }

this helped me

i got this error when play local file
/Users/thehe/Library/Developer/CoreSimulator/Devices/04366B0E-21E7-4F70-8F8B-C92B210331B3/data/Containers/Data/Application/4342AF29-F7F6-442F-A812-AB20AB671F13/Documents/audio.wav

Using

"react-native": "0.65.1",
"react-native-track-player": "^2.1.2"

id isn't required

You don't need to dig code, it's right in the Track Object documentation.

Only the id, url, title and artist properties are required for basic playback

@Guichaguri do you mind updating doc link?

According to the 3.2 documentation only the url, title and artist properties are required for basic playback


[WIP] Upload files to the origin server

Allow different types of remote repos where the images are uploaded. The type can be either "gs" (Google Storage, which is default), or "sftp" (file server that is accessible via sftp).
Explicitly set --upload_type=sftp for Jenkins scripts, instead of uploading to Google Storage. Doing that, we can first upload images to the flatcar origin server, and later we can sync repos with Google Storage buckets using sync-rclone.
Work-in-progress. completely untested

I think the consensus we reached in the last meeting was to upload the files to both the origin server and the google cloud bucket during the Jenkins build so that we don't need gcloud credentials in the origin server too (am I remembering correctly, @schu?)
Maybe we can modify this a bit to allow a list for --upload_type=:
--upload_type=sftp,gs

I think the consensus we reached in the last meeting was to upload the files to both the origin server and the google cloud bucket during the Jenkins build so that we don't need gcloud credentials in the origin server too (am I remembering correctly, @schu?)

Yes.


Add content-tree extension

Comments addressed

@azer @jelz All dependencies have locked versions so package-lock.json is not needed


doc - Add explanations for null space projection.

This is a follow-up from #2366

@abussy-aldebaran You can add a changelog entry, something like « Add explanation about null space projection formula » in Added section.
Thanks for the PR !


Create 11.Container_with_most_water.cpp

Created Solution of leetcode Q11 Container with most water using two pointer in cpp.

Stick to the template code to get the PR accepted.


Raise if there is no html or text unless you explicitly set them both to empty

This makes it easier to find out when you accidentally forget to render the body, but still allows you to leave it empty if you really want to.
The reason that you might want to set empty html and text bodies is that some adapters may be used to render emails from another service. For example, you can use Mandrill to render responsive templates that are rendered on their server, so you would not set a text or html body

@paulcsmith I can take care of this if you'd like.
To make sure I understand correctly, you want it to be that if you just did something like
new_email() |> Bamboo.TestAdapter.deliver it would raise an error stating that you haven't rendered a text or email body, correct?

@anellis Yeah exactly, but I'm not totally sure that this should be done yet. I think it requires a bit more thought since I'd like to make it so that you can render an empty body if you want to, but maybe that doesn't matter. I'll ping you when I have something a bit more concrete!

I'm gonna go ahead and close this issue. I don't know that we've had any further developments on this since it was first opened. But if others feel like this should be reopened, please let me know! Happy to have this open if we can make progress on it.


AccessModifierIndentation and CommentIndentation does not work well together

# rubocop: enable and # rubocop:disable may wrap whole method definition.
In such case, indentation should be based on wrapped method.

Expected behavior
No offenses.
Actual behavior
Having one offense.
We cannot suppress offense as long as comment is followed by access modifier.
rubocop -c test.rubocop.yml foo.rb
Inspecting 1 file
C

Offenses:

foo.rb:5:3: C: [Correctable] Layout/CommentIndentation: Incorrect indentation detected (column 2 instead of 0).
  # rubocop:enable
  ^^^^^^^^^^^^^^^^

1 file inspected, 1 offense detected, 1 offense autocorrectable

Steps to reproduce the problem
Lint following file with the setting below:
foo.rb
class A
  # rubocop:disable
  def foo
  end
  # rubocop:enable

private

  def bar
  end
end

test.rubocop.yml
AllCops:
  DisabledByDefault: true

Layout/AccessModifierIndentation:
  Enabled: true
  EnforcedStyle: outdent

Layout/CommentIndentation:
  Enabled: true

This is extremely important! Providing us with a reliable way to reproduce
a problem will expedite its solution.
RuboCop version
Include the output of rubocop -V or bundle exec rubocop -V if using Bundler.
If you see extension cop versions (e.g. rubocop-performance, rubocop-rspec, and others)
output by rubocop -V, include them as well. Here's an example:
1.39.0 (using Parser <IP_ADDRESS>, rubocop-ast 1.24.0, running on ruby 2.7.6) [x86_64-darwin21]
  - rubocop-rails 2.15.1
  - rubocop-rspec 2.11.1

if there is another comment before #rubocop:enable, then what should be the alignment
`class A
rubocop:disable
def foo
end
#some comment
rubocop:enable
private
def bar
end
end`


Small database to fetch services on revision

This db will be listing

Service name [VARCHAR]
If on revision [BOOL]

If possible a github action to read & replace the table from README.md.
Consider using supabase or any free & easy to plug-in db

Database created using Supabase
Server written in Nodejs
Deployed in Render


Update vector-search.md

corrected using the right link https://github.com/MicrosoftDocs/azure-docs/blob/main/articles/cognitive-services/openai/tutorials/embeddings.md

@gahl-levy

Can you review this PR?
IMPORTANT: When this content is ready to merge, you must add #sign-off in a comment or the approval may get overlooked.

NOTE: @Oury-MSFT - why is this pointed to the GitHub version of the article? Shouldn't it go to the live version?
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

The author is not available, we will merge this using other means while keeping the author's identity tied to the commit.
#hold-off
#please-close


[release-0.20] Bump kubernetes-sigs/image-builder to v0.1.38

Backporting https://github.com/aws/eks-anywhere-build-tooling/pull/3904 into the release-0.20 branch.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm
/approve


fix: LSDV-4711: CORS error accessing previously annotated data

Hi @bmartel!
This PR was created in response to a PRs in upstream repo:

https://github.com/heartexlabs/label-studio-frontend/pull/1299
https://github.com/heartexlabs/dm2/pull/169

To enable Auto Merge for this PR also merge those PRs:

https://github.com/heartexlabs/label-studio-frontend/pull/1299


gnome-terminal profile name typo-fix

Hi,
I have fixed a minor typo in the installer script.

@Chromadream Thanks!


get Taxtree from a sparql request with a taxonomy as argument

the Taxtree request should be adjusted to get a taxonomy as argument and give all the subnodes, that suppresses the need for a special /lib/taxtree url

There is no specific Url/Rest service for taxtree: actually Taxtree.arq is one graph among other public templates (i.e http://purl.bdrc.io/graph/Taxtree is served by the same rest service as  http://purl.bdrc.io/graph/IIIFPres_workGraph?R_RES=bdr:W22084, the difference being that IIIFPres_workGraph.arq requires a parameter).
Since a different taxnonomy (let's say OtherTaxonomy) will require a different sparql construct, OtherTaxonomy will be a new OtherTaxonomy.arq file.
Now, we can pass parameter(s) to graph constructs and in the case of Taxtree, we could pass the rootnode as a parameter so we would get the whole subTree having that node as root.
What do you think ?

I think we should pass the root node as a parameter yes

Done as of commit 4ee49d0

Corrected Taxtree.arq following a bug (https://github.com/BuddhistDigitalResourceCenter/lds-queries/commit/0f4ce03bce62ff82fd56200688f45b35d27641e0)


Redux for two window

Hello. Sorry for asking, but I can't understand how to make and connect react between two windows. It just my first time, when I use Electron and it was so hard set-up webpack file for me, but after all I finally did it . I found your source, but I can't understand, how to divide my state and synchronize state between two windows. If someone has some code snippet or can do this, I will really appreciate it.

Hey @Ruslan27032000! Take a look at our end-to-end tests for some good examples on how to set this up:
https://github.com/klarna/electron-redux/tree/master/packages/electron-redux-e2e/src


adding python-aniso8601

Note this package had been backported on indigo http://repositories.ros.org/status_page/ros_indigo_default.html?q=aniso (and jade), and from ubuntu xenial is available as a package which I want to use.
Let me know if there is any renaming needed anywhere...
Ref : https://pkgs.org/download/aniso8601

The pkgs.org link provided has information only for slackware. Does that mean the you want to add this for slackware as well?
Looks like it's also available for gentoo as well: dev-python/aniso8601
Regarding the naming, it looks like in the past you've been using the same name for the backported version in ROS and the new versions added in rosdep python-PKG_NAME (e.g. python-watchdog).
Is there a motivation for not doing the same for this package?
If not, I suggest renaming the ROS package to match the rosdep key, this should remove the need to modify the dependency declaration in the package.xml from one distro to the next.

Ah good point I had forgotten the python-watchdog case. I will follow the same and rename the indigo pacakgeto match the rosdistro key.
The pkgs.org link I meant to send is actually this one : https://pkgs.org/download/python-aniso8601 to be used as a reference checking if I missed anything...

https://github.com/ros/rosdistro/pull/17458


Support for Wireguard?

RancherOS Version: 1.2
Where are you running RancherOS? hetzner cloud
I wanted to ask/suggest if you can include the wireguard out of tree kernel module into Rancher OS. It is a new kind of vpn, that is not yet in the kernel. But there are plans to include it.
I has also been included into flannel/canal, so it is still experimental.
I can prepare a pull request, if that is ok.

To build an out-of-tree kernel module, you can refer to the zfs module in os-service.
https://github.com/rancher/os-services

Are there any officially supported docs for running Wireguard on RancherOS? Scouting the internet for examples and it’s very hard going.


Fix -Wparentheses warning not ignored on NVCC

BOOST_GCC is not defined for NVCC, therefore we should use BOOST_GCC_VERSION.

@mclow could you please look at the Windows CI results? Failure seems to come from a package missing from the msys repo (pacman 5.2.1-12). This change only affects GCC + NVCC. Thanks!

@eldiener any chance you could look at this PR when you have some time? Thanks!

CI failure is known and tracked by #50


Parallel compilation with JIT

Currently, when OpenMP is enabled, threads will work in parallel on the loop over the list the reaction rate files to compile.
We can write a makefile and pass -j n option instead, where n is provided from a user.

PR #89 implements this feature.


Moving from absent namePrefix to available fullname variable

This will unblock chart usage with enabled cert-manager integration

Codecov Report

Merging #20 (28a0035) into main (98b64e2) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head 28a0035 differs from pull request most recent head 5ed8f0f. Consider uploading reports for the commit 5ed8f0f to get more accurate results

@@           Coverage Diff           @@
##             main      #20   +/-   ##
=======================================
  Coverage   52.54%   52.54%
=======================================
  Files           8        8
  Lines         472      472
=======================================
  Hits          248      248
  Misses        195      195
  Partials       29       29

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 98b64e2...5ed8f0f. Read the comment docs.

Thank you!