[Bug]: Docker wormhole does not work when Maven is run in an Arm container on a Linux Amd64 host on GitHubActions

Module
Core
Testcontainers version
1.19.3
Using the latest Testcontainers version?
Yes
Host OS
Linux
Host Arch
x86_64
Docker version
Client: Docker Engine - Community
 Version:           24.0.7
 API version:       1.43
 Go version:        go1.20.10
 Git commit:        afdd53b
 Built:             Thu Oct 26 09:07:41 2023
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          24.0.7
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.10
  Git commit:       311b9ff
  Built:            Thu Oct 26 09:07:41 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.27
  GitCommit:        a1496014c916f9e62104b33d1bb5bd03b0858e59
 runc:
  Version:          1.1.11
  GitCommit:        v1.1.11-0-g4bccb38
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

What happened?
My aim is to run my integration tests on Arm64.
I do that by running Maven in an Arm64 container:
docker run --rm \
          -v ~/.m2/repository:/root/.m2/repository \
          -v /var/run/docker.sock:/var/run/docker.sock \
          -v $PWD:$PWD \
          -w $PWD \
          arm64v8/amazoncorretto:17-al2023 \
          ./mvnw clean test -ntp

Here is a minimal reproducer project: https://github.com/ppalaga/testcontainers-arm64
While this works as expected on my Fedora 38 with the following docker version
$ docker version
Client: Docker Engine - Community
 Version:           24.0.6
 API version:       1.43
 Go version:        go1.20.7
 Git commit:        ed223bc
 Built:             Mon Sep  4 12:33:40 2023
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          24.0.6
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.7
  Git commit:       1a79695
  Built:            Mon Sep  4 12:32:05 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.24
  GitCommit:        61f9fd88f79f081d64d6fa3bb1a0dc71ec870523
 runc:
  Version:          1.1.9
  GitCommit:        v1.1.9-0-gccaecfc
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

it does not work on Github Actions latest Ubuntu with docker version 24.0.7.
Relevant log output
2024-01-23T15:20:42.3722091Z [INFO]  T E S T S
2024-01-23T15:20:42.3730664Z [INFO] -------------------------------------------------------
2024-01-23T15:20:51.1628203Z [INFO] Running org.acme.rest.client.HelloTest
2024-01-23T15:21:54.0308946Z 2024-01-23 15:21:53,923 INFO  [org.tes.ima.PullPolicy] (pool-3-thread-1) Image pull policy will be performed by: DefaultPullPolicy()
2024-01-23T15:21:54.0325038Z 2024-01-23 15:21:53,968 INFO  [org.tes.uti.ImageNameSubstitutor] (pool-3-thread-1) Image name substitution will be performed by: DefaultImageNameSubstitutor (composite of 'ConfigurationFileImageNameSubstitutor' and 'PrefixingImageNameSubstitutor')
2024-01-23T15:21:59.3689018Z 2024-01-23 15:21:59,301 INFO  [org.tes.doc.DockerClientProviderStrategy] (pool-3-thread-1) Found Docker environment with local Unix socket (unix:///var/run/docker.sock)
2024-01-23T15:21:59.6721574Z 2024-01-23 15:21:59,584 INFO  [org.tes.DockerClientFactory] (pool-3-thread-1) Docker host IP address is <IP_ADDRESS>
2024-01-23T15:21:59.7682860Z 2024-01-23 15:21:59,709 INFO  [org.tes.DockerClientFactory] (pool-3-thread-1) Connected to docker:
2024-01-23T15:21:59.7684166Z   Server Version: 24.0.7
2024-01-23T15:21:59.7684912Z   API Version: 1.43
2024-01-23T15:21:59.7685524Z   Operating System: Ubuntu 22.04.3 LTS
2024-01-23T15:21:59.7766183Z   Total Memory: 15981 MB
2024-01-23T15:21:59.9694346Z 2024-01-23 15:21:59,932 INFO  [tc.tes.5.1] (pool-3-thread-1) Creating container for image: testcontainers/ryuk:0.5.1
2024-01-23T15:22:00.0707890Z 2024-01-23 15:21:59,990 INFO  [org.tes.uti.RegistryAuthLocator] (pool-3-thread-1) Failure when attempting to lookup auth config. Please ignore if you don't have images in an authenticated registry. Details: (dockerImageName: testcontainers/ryuk:0.5.1, configFile: /root/.docker/config.json, configEnv: DOCKER_AUTH_CONFIG). Falling back to docker-java default behaviour. Exception message: Status 404: No config supplied. Checked in order: /root/.docker/config.json (file not found), DOCKER_AUTH_CONFIG (not set)
2024-01-23T15:22:00.9791574Z 2024-01-23 15:22:00,872 INFO  [tc.tes.5.1] (pool-3-thread-1) Container testcontainers/ryuk:0.5.1 is starting: 2393273dd6941bc91184564f95553535e8847480a5dd55de674a043ad908c538
2024-01-23T15:23:01.2065696Z 2024-01-23 15:23:01,179 INFO  [tc.tes.5.1] (pool-3-thread-1) Container testcontainers/ryuk:0.5.1 started in PT1M1.246212324S
2024-01-23T15:23:01.3078631Z 2024-01-23 15:23:01,219 WARN  [org.tes.uti.RyukResourceReaper] (testcontainers-ryuk) Can not connect to Ryuk at <IP_ADDRESS>:32772: java.net.ConnectException: Connection refused
2024-01-23T15:23:01.3080587Z 	at java.base/sun.nio.ch.Net.pollConnect(Native Method)
2024-01-23T15:23:01.3082068Z 	at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:672)
2024-01-23T15:23:01.3083349Z 	at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:547)
2024-01-23T15:23:01.3084725Z 	at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602)
2024-01-23T15:23:01.3086062Z 	at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
2024-01-23T15:23:01.3087419Z 	at java.base/java.net.Socket.connect(Socket.java:633)
2024-01-23T15:23:01.3088701Z 	at org.testcontainers.utility.RyukResourceReaper.lambda$null$1(RyukResourceReaper.java:105)
2024-01-23T15:23:01.3090426Z 	at org.rnorth.ducttape.ratelimits.RateLimiter.doWhenReady(RateLimiter.java:27)
2024-01-23T15:23:01.3091980Z 	at org.testcontainers.utility.RyukResourceReaper.lambda$maybeStart$2(RyukResourceReaper.java:101)
2024-01-23T15:23:01.3093675Z 	at java.base/java.lang.Thread.run(Thread.java:840)
2024-01-23T15:23:01.3094400Z
...
2024-01-23T15:23:31.2896544Z
2024-01-23T15:23:31.2897646Z 2024-01-23 15:23:31,277 ERROR [org.tes.uti.RyukResourceReaper] (pool-3-thread-1) Timed out waiting for Ryuk container to start. Ryuk's logs:
2024-01-23T15:23:31.2898738Z
2024-01-23T15:23:31.4877774Z 2024-01-23 15:23:31,449 WARN  [org.tes.uti.RyukResourceReaper] (testcontainers-ryuk) Can not connect to Ryuk at <IP_ADDRESS>:32772: java.net.ConnectException: Connection refused
2024-01-23T15:23:31.4879562Z 	at java.base/sun.nio.ch.Net.pollConnect(Native Method)
2024-01-23T15:23:31.4880777Z 	at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:672)
2024-01-23T15:23:31.4881904Z 	at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:547)
2024-01-23T15:23:31.4883102Z 	at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602)
2024-01-23T15:23:31.4884277Z 	at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
2024-01-23T15:23:31.4885269Z 	at java.base/java.net.Socket.connect(Socket.java:633)
2024-01-23T15:23:31.4886435Z 	at org.testcontainers.utility.RyukResourceReaper.lambda$null$1(RyukResourceReaper.java:105)
2024-01-23T15:23:31.4888100Z 	at org.rnorth.ducttape.ratelimits.RateLimiter.doWhenReady(RateLimiter.java:27)
2024-01-23T15:23:31.4889580Z 	at org.testcontainers.utility.RyukResourceReaper.lambda$maybeStart$2(RyukResourceReaper.java:101)
2024-01-23T15:23:31.4890770Z 	at java.base/java.lang.Thread.run(Thread.java:840)
2024-01-23T15:23:31.4891263Z
2024-01-23T15:23:32.1129349Z [ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 160.5 s <<< FAILURE! -- in org.acme.rest.client.HelloTest
2024-01-23T15:23:32.1140021Z [ERROR] org.acme.rest.client.HelloTest.hello -- Time elapsed: 0.070 s <<< ERROR!
2024-01-23T15:23:32.1141858Z java.lang.RuntimeException: java.lang.RuntimeException: Unable to start Quarkus test resource class org.acme.rest.client.HelloTestResource
2024-01-23T15:23:32.1143873Z 	at io.quarkus.test.junit.QuarkusTestExtension.throwBootFailureException(QuarkusTestExtension.java:638)
2024-01-23T15:23:32.1145799Z 	at io.quarkus.test.junit.QuarkusTestExtension.interceptTestClassConstructor(QuarkusTestExtension.java:722)
2024-01-23T15:23:32.1147422Z 	at java.base/java.util.Optional.orElseGet(Optional.java:364)
2024-01-23T15:23:32.1148562Z 	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
2024-01-23T15:23:32.1149752Z 	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
2024-01-23T15:23:32.1151306Z Caused by: java.lang.RuntimeException: Unable to start Quarkus test resource class org.acme.rest.client.HelloTestResource
2024-01-23T15:23:32.1153268Z 	at io.quarkus.test.common.TestResourceManager$TestResourceEntryRunnable.run(TestResourceManager.java:506)
2024-01-23T15:23:32.1155178Z 	at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804)
2024-01-23T15:23:32.1156886Z 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
2024-01-23T15:23:32.1158617Z 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
2024-01-23T15:23:32.1159973Z 	at java.base/java.lang.Thread.run(Thread.java:840)
2024-01-23T15:23:32.1161240Z Caused by: java.lang.IllegalStateException: Could not connect to Ryuk at <IP_ADDRESS>:32772
2024-01-23T15:23:32.1162654Z 	at org.testcontainers.utility.RyukResourceReaper.maybeStart(RyukResourceReaper.java:145)
2024-01-23T15:23:32.1164046Z 	at org.testcontainers.utility.RyukResourceReaper.init(RyukResourceReaper.java:42)
2024-01-23T15:23:32.1165368Z 	at org.testcontainers.DockerClientFactory.client(DockerClientFactory.java:232)
2024-01-23T15:23:32.1167003Z 	at org.testcontainers.DockerClientFactory$1.getDockerClient(DockerClientFactory.java:106)
2024-01-23T15:23:32.1168505Z 	at com.github.dockerjava.api.DockerClientDelegate.authConfig(DockerClientDelegate.java:109)
2024-01-23T15:23:32.1170737Z 	at org.testcontainers.containers.GenericContainer.start(GenericContainer.java:332)
2024-01-23T15:23:32.1171897Z 	at org.acme.rest.client.HelloTestResource.start(HelloTestResource.java:21)
2024-01-23T15:23:32.1173218Z 	at io.quarkus.test.common.TestResourceManager$TestResourceEntryRunnable.run(TestResourceManager.java:500)
2024-01-23T15:23:32.1174296Z 	... 4 more
2024-01-23T15:23:32.1174511Z
2024-01-23T15:23:32.1213769Z 2024-01-23 15:23:31,706 WARN  [org.tes.uti.RyukResourceReaper] (testcontainers-ryuk) Can not connect to Ryuk at <IP_ADDRESS>:32772: java.net.ConnectException: Connection refused
2024-01-23T15:23:32.1215374Z 	at java.base/sun.nio.ch.Net.pollConnect(Native Method)
2024-01-23T15:23:32.1216598Z 	at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:672)
2024-01-23T15:23:32.1217585Z 	at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:547)
2024-01-23T15:23:32.1218651Z 	at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602)
2024-01-23T15:23:32.1219592Z 	at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
2024-01-23T15:23:32.1220435Z 	at java.base/java.net.Socket.connect(Socket.java:633)
2024-01-23T15:23:32.1221488Z 	at org.testcontainers.utility.RyukResourceReaper.lambda$null$1(RyukResourceReaper.java:105)
2024-01-23T15:23:32.1222684Z 	at org.rnorth.ducttape.ratelimits.RateLimiter.doWhenReady(RateLimiter.java:27)
2024-01-23T15:23:32.1224062Z 	at org.testcontainers.utility.RyukResourceReaper.lambda$maybeStart$2(RyukResourceReaper.java:101)
2024-01-23T15:23:32.1225212Z 	at java.base/java.lang.Thread.run(Thread.java:840)
2024-01-23T15:23:32.1225697Z
2024-01-23T15:23:32.1227090Z 2024-01-23 15:23:31,962 WARN  [org.tes.uti.RyukResourceReaper] (testcontainers-ryuk) Can not connect to Ryuk at <IP_ADDRESS>:32772: java.net.ConnectException: Connection refused
2024-01-23T15:23:32.1228696Z 	at java.base/sun.nio.ch.Net.pollConnect(Native Method)
2024-01-23T15:23:32.1229505Z 	at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:672)
2024-01-23T15:23:32.1230531Z 	at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:547)
2024-01-23T15:23:32.1231700Z 	at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602)
2024-01-23T15:23:32.1232770Z 	at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
2024-01-23T15:23:32.1233439Z 	at java.base/java.net.Socket.connect(Socket.java:633)
2024-01-23T15:23:32.1234115Z 	at org.testcontainers.utility.RyukResourceReaper.lambda$null$1(RyukResourceReaper.java:105)
2024-01-23T15:23:32.1234928Z 	at org.rnorth.ducttape.ratelimits.RateLimiter.doWhenReady(RateLimiter.java:27)
2024-01-23T15:23:32.1235759Z 	at org.testcontainers.utility.RyukResourceReaper.lambda$maybeStart$2(RyukResourceReaper.java:101)
2024-01-23T15:23:32.1236442Z 	at java.base/java.lang.Thread.run(Thread.java:840)
2024-01-23T15:23:32.1236730Z
2024-01-23T15:23:32.2001449Z [INFO]
2024-01-23T15:23:32.2005951Z [INFO] Results:
2024-01-23T15:23:32.2006803Z [INFO]
2024-01-23T15:23:32.2012109Z [ERROR] Errors:
2024-01-23T15:23:32.2019859Z [ERROR]   HelloTest.hello » Runtime java.lang.RuntimeException: Unable to start Quarkus test resource class org.acme.rest.client.HelloTestResource

Additional Information
Observation: when I take the x86_64 image by removing arm64v8, it works as expected also on GitHub actions
docker run --rm \
          -v ~/.m2/repository:/root/.m2/repository \
          -v /var/run/docker.sock:/var/run/docker.sock \
          -v $PWD:$PWD \
          -w $PWD \
          amazoncorretto:17-al2023 \
          ./mvnw clean test -ntp

I tried to experiment with adding various iptables rules, but they did not change anything.
It is perhaps not a firewall issue given that testing from within x86_64 works.
I'd be thankful for any hints.

Hey @ppalaga, thanks for reporting this issue and the reproducer.
From a first look, I also don't think it is networking related, but the Ryuk container might not start correctly in the case of using the ARM image.
I wonder if we can debug it more interactively by using a GH Codespace, since it tends to be an environment quite similar to the GHA runners.

Thanks for the feedback, @kiview ! It sounds like I cannot help much with the Ryuk investigation. Please let me know if there is anything else I can try.

Actually, I could try skipping Ryuk 💡

Indeed this change
https://github.com/ppalaga/testcontainers-arm64/commit/b8f2f75b6a3311737433be32f35e71a95bc0c69e
makes it pass - see https://github.com/ppalaga/testcontainers-arm64/actions/runs/7756244049/job/21153170695#step:9:1
Thanks for the hint @kiview!
Maybe we should rename this issue to something like "Ryuk does not start properly..."

I just tested it using Docker Desktop on ARM MacBook and the example runs fine using Ryuk:

Thanks for the investigation! Newly, there are M1 runners for GH Actions. Do you happen to know whether this setup with docker desktop (or similar) will work there too? That would surely be much faster than the QEMU emulation on Linux.

There are ARM based runners going to be released, I think that should be the way to go.

Yep, hopefully, they will be available for opensource projects soon.

Was the Fedora machine you used for testing an ARM machine, or were you also using QEMU there? If the latter is the case, we can further pin the issue to the combination of QEMU (for ARM emulation) + Ubuntu 22.04 + Ryuk.

It was Fedora on x86_64 with Qemu.

I just tested it using Docker Desktop on ARM MacBook and the example runs fine using Ryuk:

Thanks for the investigation! Newly, there are M1 runners for GH Actions. Do you happen to know whether this setup with docker desktop (or similar) will work there too? That would surely be much faster than the QEMU emulation on Linux.

The answer to my own question seems to be no: https://github.com/marketplace/actions/setup-docker-on-macos#arm64-processors-m1-m2-m3-series-used-on-macos-14-images-are-unsupported

Yes, it is always tricky to get Docker access on provided CI runners, in general it is only provided for Linux runners. Is it important for your use case, that the containers started by TC are ARM containers, or are you mainly interested in testing an ARM build of your app?

Yes, I need to test my code on JVM built for Linux and ARM. Therefore I need Linux on ARM to run Maven.


selects2.html demo broken - likely regression by last fonto upgrade

second example in above page displays
Selected value is: [object Attr]
when selecting a fruit from the list. This used to work and i suspect the upgrade @DrRataplan ;)

It's working now! The evaluateXPath for fx-control was wrong: it returns a single attribute node, makes more sense to look for a a string there


Can no longer add Microsoft.VisualStudio.Component.SQL.SSDTBuildSku component to image

Describe the Bug
I have been using the 4.8 SDK image to successfully build our .NET Framework application and supporting framework for a couple of months now. Given that we use SSDT for our database projects my docker file has to add the Microsoft.VisualStudio.Component.SQL.SSDTBuildSku component to the SDK image.
I found a post recommending how to install the build tools here, and extended it accordingly.
I just added the following to my dockerfile, although I have now recreated in a simple extension of the SDK image to can ask for help.
RUN curl -SL --output vs_buildtools.exe https://aka.ms/vs/17/release/vs_buildtools.exe && \
(start /w vs_buildtools.exe --quiet --wait --norestart --nocache --add Microsoft.VisualStudio.Component.SQL.SSDTBuildSku --installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools" || IF "%ERRORLEVEL%"=="3010" EXIT 0) && \
del /q vs_buildtools.exe

This stopped working around a week ago, and I have been trying various methods to get it working again, such as trying lots of different vs_BuildTools downloads, using the various VS installers to add the component, all with no success.
This morning I have been trying to extend your SDK image to add the component there, rather than add the component in my dockerfile, but am still getting issues (hence me finally raising this issue).
Please help!
Steps to Reproduce
The following dockerfile builds (despite appearing to return a response code of 1), but does not add the desired component:
#escape=`

FROM mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2019

SHELL ["cmd", "/S", "/C"]

# Install VS components
RUN `
    # Install SSDT Build Tools
    curl -fSLo vs_BuildTools.exe https://aka.ms/vs/17/release/vs_BuildTools.exe `
    && start /w vs_BuildTools ^ `
        --installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools" ^ `
        --add Microsoft.VisualStudio.Component.SQL.SSDTBuildSku ^ `
        --quiet --norestart --nocache --wait `
    && powershell -Command "if ($err = dir $Env:TEMP -Filter dd_setup_*_errors.log | where Length -gt 0 | Get-Content) { throw $err }" `
    && del vs_BuildTools.exe
    #  `
    # `
    # Cleanup
    # && (for /D %i in ("%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\*") do rmdir /S /Q "%i") `
    # && (for %i in ("%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\*") do if not "%~nxi" == "vswhere.exe" del "%~i") `
    # && powershell Remove-Item -Force -Recurse "%TEMP%\*" `
    # && rmdir /S /Q "%ProgramData%\Package Cache"

SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]

I am expecting to see an SSDT directory here: C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Microsoft\VisualStudio\v17.0
Other Information
dd_installer_{timestamp}.log:
C:\Users\ContainerAdministrator\AppData\Local\Temp>type dd_installer_20230306103419.log
[0274:0001][2023-03-06T10:34:19] Setting the locale to en-US.
[0274:0001][2023-03-06T10:34:19] Saving the current locale (en-US) to user.json.
[0274:0001][2023-03-06T10:34:19] Setting the telemetry services
[0274:0003][2023-03-06T10:34:19] Creating a new telemetry service.
[0274:0001][2023-03-06T10:34:19] Visual Studio Installer Version: 3.5.2145
[0274:0001][2023-03-06T10:34:19] Raw Command line: "C:\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe" /finalizeInstall install --in "C:\ProgramData\Microsoft\VisualStudio\Packages\_bootstrapper\vs_setup_bootstrapper_202303061034086149.json" --installPath "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools" --add Microsoft.VisualStudio.Component.SQL.SSDTBuildSku --quiet --norestart --nocache --locale en-US --activityId "8905cd9c-4e48-42fc-a3e7-2d9c6de8f38e"
[0274:0001][2023-03-06T10:34:19] Parsed command line options: install --activityId 8905cd9c-4e48-42fc-a3e7-2d9c6de8f38e --add Microsoft.VisualStudio.Component.SQL.SSDTBuildSku --channelId VisualStudio.17.Release --channelUri https://aka.ms/vs/17/release/channel --installPath "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools" --locale en-US --nocache --norestart --productId Microsoft.VisualStudio.Product.BuildTools --quiet
[0274:0003][2023-03-06T10:34:19] Telemetry session ID: 4d9fc44f-bf05-4580-b87a-c60a3f6b3a15
[0274:0003][2023-03-06T10:34:19] Creating new ExperimentationService
[0274:0003][2023-03-06T10:34:19] Telemetry property VS.ABExp.Flights : lazytoolboxinit;fwlargebuffer;refactoring;spmoretempsbtn1;asloff;keybindgoldbarext;asynccsproj;vsfricheditor;completionapi;typeimportcompletion:30562486;multitenanttasmigration_002:30108253;vsttk:30514303;vsttkdebugcheckerexpcf:30634194;1b1ac847:30622683;87ce9466:30635376;fijh5155:30675898
[0274:0001][2023-03-06T10:34:19] Using registry value of (N/A) to theme installer.
[0274:0001][2023-03-06T10:34:19] Getting singleton lock. Mutex name: DevdivInstallerUI
[0274:0001][2023-03-06T10:34:19] Getting singleton lock succeed.
[0274:0003][2023-03-06T10:34:19] Telemetry property vs.willow.source : WPF
[0274:0003][2023-03-06T10:34:19] Telemetry property vs.willow.locale : en-US
[0274:0003][2023-03-06T10:34:19] Telemetry property vs.willow.installerversion : 3.5.2145.59678
[0274:0003][2023-03-06T10:34:19] Telemetry property vs.willow.startmethod : indirect
[0274:0003][2023-03-06T10:34:19] Telemetry property vs.willow.activityid : 8905cd9c-4e48-42fc-a3e7-2d9c6de8f38e
[0274:0003][2023-03-06T10:34:19] Telemetry property vs.willow.campaign :
[0274:0003][2023-03-06T10:34:19] Telemetry property vs.willow.passive : False
[0274:0003][2023-03-06T10:34:19] Telemetry property vs.willow.quiet : True
[0274:0003][2023-03-06T10:34:19] Telemetry property vs.willow.processtype : ui
[0274:0003][2023-03-06T10:34:19] Telemetry property vs.willow.force : False
[0274:0003][2023-03-06T10:34:19] Telemetry property vs.willow.noweb : False
[0274:0001][2023-03-06T10:34:20] Navigation requested from ApplicationViewModel to MainPageViewModel
[0274:000d][2023-03-06T10:34:22] Telemetry property VS.SetupEngine.ChannelUpdateDisabled : False
[0274:000d][2023-03-06T10:34:22] Trying to remove channel manifest: C:\Users\ContainerAdministrator\AppData\Local\Microsoft\VisualStudio\Packages\_Channels\59f4be23\installChannelManifest.json
[0274:000d][2023-03-06T10:34:22] Trying to remove product manifest: C:\Users\ContainerAdministrator\AppData\Local\Microsoft\VisualStudio\Packages\_Channels\59f4be23\install_catalog.json
[0274:000d][2023-03-06T10:34:22] Authentication Environment variable setting value: null
[0274:000e][2023-03-06T10:34:23] Uri 'https://go.microsoft.com/fwlink/?linkid=857708' redirected to 'https://sendvsfeedback2.azurewebsites.net/api'
[0274:000d][2023-03-06T10:34:23] Authentication remote setting value: False
[0274:000d][2023-03-06T10:34:23] Download requested: https://aka.ms/vs/17/release/channel
[0274:0010][2023-03-06T10:34:23] Attempting download 'https://aka.ms/vs/17/release/channel' using engine 'WebClient'
[0274:000a][2023-03-06T10:34:23] Telemetry property vs.setup.WorkloadOverrides.DidReceiveOverride : False
[0274:000a][2023-03-06T10:34:23] Telemetry property vs.setup.WorkloadOverrides.RuleId : None
[0274:0010][2023-03-06T10:34:23] Uri 'https://aka.ms/vs/17/release/channel' redirected to 'https://download.visualstudio.microsoft.com/download/pr/07db0e25-01f0-4ac0-946d-e03196d2cc8b/79eac302f46c986ed0f5371b9b15546945fb938910e00fc4a27f67f9e8e4cb56/VisualStudio.17.Release.chman'
[0274:0010][2023-03-06T10:34:23] ManifestVerifier Result: Success
[0274:0010][2023-03-06T10:34:23] Download of 'https://aka.ms/vs/17/release/channel' succeeded using engine 'WebClient'
[0274:000f][2023-03-06T10:34:23] The downloaded channel C:\Users\ContainerAdministrator\AppData\Local\Microsoft\VisualStudio\Packages\_Channels\59f4be23\channelManifest.json is older than the existing one.
[0274:000f][2023-03-06T10:34:23] Channel manifest: C:\Users\ContainerAdministrator\AppData\Local\Microsoft\VisualStudio\Packages\_Channels\59f4be23\catalog.json was being deleted because it is outdated.
[0274:000f][2023-03-06T10:34:23] Downloading installable manifest from "https://download.visualstudio.microsoft.com/download/pr/07db0e25-01f0-4ac0-946d-e03196d2cc8b/952ccbe7cd37352fe5537063c91cd3194b394faf64d87e8d685cfb9177376771/VisualStudio.vsman" and using the channel URI "https://aka.ms/vs/17/release/channel".
[0274:000f][2023-03-06T10:34:23] Download requested: https://download.visualstudio.microsoft.com/download/pr/07db0e25-01f0-4ac0-946d-e03196d2cc8b/952ccbe7cd37352fe5537063c91cd3194b394faf64d87e8d685cfb9177376771/VisualStudio.vsman
[0274:0011][2023-03-06T10:34:23] Attempting download 'https://download.visualstudio.microsoft.com/download/pr/07db0e25-01f0-4ac0-946d-e03196d2cc8b/952ccbe7cd37352fe5537063c91cd3194b394faf64d87e8d685cfb9177376771/VisualStudio.vsman' using engine 'WebClient'
[0274:0011][2023-03-06T10:34:25] ManifestVerifier Result: Success
[0274:0011][2023-03-06T10:34:25] Download of 'https://download.visualstudio.microsoft.com/download/pr/07db0e25-01f0-4ac0-946d-e03196d2cc8b/952ccbe7cd37352fe5537063c91cd3194b394faf64d87e8d685cfb9177376771/VisualStudio.vsman' succeeded using engine 'WebClient'
[0274:000a][2023-03-06T10:34:25] Download requested: https://go.microsoft.com/fwlink/?linkid=2066144
[0274:0011][2023-03-06T10:34:25] Attempting download 'https://go.microsoft.com/fwlink/?linkid=2066144' using engine 'WebClient'
[0274:000f][2023-03-06T10:34:25] Created shortcut: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Visual Studio Installer.lnk
[0274:000f][2023-03-06T10:34:25] Starting C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.windows.exe with arguments /finalizeinstall 6F320B93-EE3C-4826-85E0-ADF79F8D4C61 "Visual Studio Installer" "Microsoft Visual Studio Installer" 3.5.2145.59678 0 "C:\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe"
[0274:000f][2023-03-06T10:34:25] Finalizer completed successfully
[0274:0011][2023-03-06T10:34:25] Uri 'https://go.microsoft.com/fwlink/?linkid=2066144' redirected to 'https://vsstartpagenewsfeed.azureedge.net/news/vs'
[0274:0011][2023-03-06T10:34:25] Download of 'https://go.microsoft.com/fwlink/?linkid=2066144' succeeded using engine 'WebClient'
[0274:000d][2023-03-06T10:34:26] Warning: No previous catalog found at 'C:\ProgramData\Microsoft\VisualStudio\Packages\_Instances\5fd55259\catalog.previous.json'
[0274:000d][2023-03-06T10:34:27] Warning: No previous catalog found at 'C:\ProgramData\Microsoft\VisualStudio\Packages\_Instances\fec4c9b5\catalog.previous.json'
[0274:000a][2023-03-06T10:34:27] Status changed to UpdateAvailable
[0274:0011][2023-03-06T10:34:27] Download requested: https://aka.ms/vs/17/release/channel
[0274:0013][2023-03-06T10:34:27] Attempting download 'https://aka.ms/vs/17/release/channel' using engine 'WebClient'
[0274:0013][2023-03-06T10:34:27] Uri 'https://aka.ms/vs/17/release/channel' redirected to 'https://download.visualstudio.microsoft.com/download/pr/07db0e25-01f0-4ac0-946d-e03196d2cc8b/79eac302f46c986ed0f5371b9b15546945fb938910e00fc4a27f67f9e8e4cb56/VisualStudio.17.Release.chman'
[0274:0013][2023-03-06T10:34:27] ManifestVerifier Result: Success
[0274:0013][2023-03-06T10:34:27] Download of 'https://aka.ms/vs/17/release/channel' succeeded using engine 'WebClient'
[0274:000d][2023-03-06T10:34:27] Channel manifest for https://aka.ms/vs/17/release/channel is already up to date.
[0274:000d][2023-03-06T10:34:27] Warning: Shutting down the application with exit code 1
[0274:000d][2023-03-06T10:34:27] Warning: Visual Studio Build Tools 2022 (2) is already installed.
[0274:0001][2023-03-06T10:34:27] Releasing singleton lock.
[0274:0001][2023-03-06T10:34:27] Releasing singleton lock succeed.
[0274:0001][2023-03-06T10:34:27] Releasing singleton lock.
[0274:0001][2023-03-06T10:34:27] Singleton lock does not exist. Releasing singleton lock skipped.
[0274:0001][2023-03-06T10:34:27] Closing the installer with exit code 1
[0274:0001][2023-03-06T10:34:27] Exit Code: 1
[0274:0001][2023-03-06T10:34:27] Cleared previous session ID.
[0274:000f][2023-03-06T10:34:27] Download requested: https://aka.ms/vs/17/release/channel
[0274:0014][2023-03-06T10:34:27] Attempting download 'https://aka.ms/vs/17/release/channel' using engine 'WebClient'
[0274:0001][2023-03-06T10:34:27] Trying to remove channel manifest: C:\Users\ContainerAdministrator\AppData\Local\Microsoft\VisualStudio\Packages\_Channels\59f4be23\installChannelManifest.json
[0274:0001][2023-03-06T10:34:27] Trying to remove product manifest: C:\Users\ContainerAdministrator\AppData\Local\Microsoft\VisualStudio\Packages\_Channels\59f4be23\install_catalog.json
[0274:0014][2023-03-06T10:34:27] Download of 'https://aka.ms/vs/17/release/channel' succeeded using engine 'WebClient'
[0274:0014][2023-03-06T10:34:27] Channel 'https://aka.ms/vs/17/release/channel' was not modified. IfModifiedSince: 2/25/2023 1:45:59 AM +00:00, LastModifiedDate: 2/25/2023 1:45:59 AM +00:00
[0274:0014][2023-03-06T10:34:27] Channel manifest for https://aka.ms/vs/17/release/channel is already up to date.
[0274:0014][2023-03-06T10:34:27] ManifestVerifier Result: Success
[0274:0014][2023-03-06T10:34:27] Download requested: https://aka.ms/vs/channels
[0274:0013][2023-03-06T10:34:27] Attempting download 'https://aka.ms/vs/channels' using engine 'WebClient'
[0274:0013][2023-03-06T10:34:27] Uri 'https://aka.ms/vs/channels' redirected to 'https://download.visualstudio.microsoft.com/download/pr/6e42d917-9e3e-40f2-9e07-7016118ad88c/ed6b5bdbd24dc3b12d60cb246ae56b37/channels.json'
[0274:0013][2023-03-06T10:34:27] ManifestVerifier Result: Success
[0274:0013][2023-03-06T10:34:27] Download of 'https://aka.ms/vs/channels' succeeded using engine 'WebClient'
[0274:0013][2023-03-06T10:34:27] ManifestVerifier Result: Success
[0274:0013][2023-03-06T10:34:27] ManifestVerifier Result: Success
[0274:000d][2023-03-06T10:34:27] Status changed to UpdateAvailable

Output of docker version
Client:
 Version:           23.0.1
 API version:       1.42
 Go version:        go1.19.5
 Git commit:        a5ee5b1
 Built:             Thu Feb  9 19:50:24 2023
 OS/Arch:           windows/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          23.0.1
  API version:      1.42 (minimum version 1.24)
  Go version:       go1.19.5
  Git commit:       bc3805a0
  Built:            Thu Feb  9 19:46:43 2023
  OS/Arch:          windows/amd64
  Experimental:     false

Output of docker info
Client:
 Context:    default
 Debug Mode: false

Server:
 Containers: 7
  Running: 1
  Paused: 0
  Stopped: 6
 Images: 1112
 Server Version: 23.0.1
 Storage Driver: windowsfilter
  Windows:
 Logging Driver: json-file
 Plugins:
  Volume: local
  Network: ics internal l2bridge l2tunnel nat null overlay private transparent
  Log: awslogs etwlogs fluentd gcplogs gelf json-file local logentries splunk syslog
 Swarm: inactive
 Default Isolation: hyperv
 Kernel Version: 10.0 19045 (19041.1.amd64fre.vb_release.191206-1406)
 Operating System: Microsoft Windows Version 22H2 (OS Build 19045.2604)
 OSType: windows
 Architecture: x86_64
 CPUs: 8
 Total Memory: 15.74GiB
 Name: A00173
 ID: XTSX:MQ6I:2CUH:JSRM:JCNP:KINQ:4O4F:HO7L:7YEH:I4TG:4LHD:ENCG
 Docker Root Dir: D:\docker-data
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Experimental: false
 Insecure Registries:
  <IP_ADDRESS>/8
 Live Restore Enabled: false
 Product License: Community Engine

This here appears to work though!
#escape=`

FROM mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2019

SHELL ["cmd", "/S", "/C"]

# Install VS components
RUN `
    # Install SSDT Build Tools
    curl -fSLo vs_BuildTools.exe https://aka.ms/vs/17/release/vs_BuildTools.exe `
    && start /w vs_BuildTools ^ `
        --installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools" ^ `
        --add Microsoft.VisualStudio.Component.SQL.SSDTBuildSku ^ `
        --quiet --norestart --nocache --wait `
    && powershell -Command "if ($err = dir $Env:TEMP -Filter dd_setup_*_errors.log | where Length -gt 0 | Get-Content) { throw $err }" `
    && del vs_BuildTools.exe

# Try and force install using now installed vs_installer
WORKDIR "C:/Program Files (x86)/Microsoft Visual Studio/installer"
RUN vs_installer.exe `
    modify --quiet --nocache --add Microsoft.VisualStudio.Component.SQL.SSDTBuildSku --installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools"

RUN `
    # Cleanup
    (for /D %i in ("%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\*") do rmdir /S /Q "%i") `
    && (for %i in ("%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\*") do if not "%~nxi" == "vswhere.exe" del "%~i") `
    && powershell Remove-Item -Force -Recurse "%TEMP%\*"
    # `
    # && rmdir /S /Q "%ProgramData%\Package Cache"

WORKDIR /
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]

So, at least I can progress.
Be interested to know why the vs_buildtools route does not work though!

This is how I typically add more components: https://github.com/microsoft/dotnet-framework-docker/issues/979#issuecomment-1208413978. I notice you don't use the modify in the first install command. Can you try that?
Also, there are a lot of log files output to the TEMP directory. When there's an install failure, I recommend looking through all of them.

Thanks for the response.
I'll try it with modify. I was using that when trying the various VS installers (but no luck there either), but didn't see it as an option for vs_BuildTools.
I have captured a LOT of logs from %TEMP% and diffed them many times.
Nothing much useful that I can see other than the installer one I have posted.
I'll report back with progress.
Cheers

Oh blimey, thank you, that was it!
Very odd that was working fine for ages without it.
Thanks, I'll close this now.
Wish I'd asked a week ago now :D


feat(CA Bundle option)

Added CA Bundle option for SSL Certs

HI @siteshackinc
Thanks for contributing to the project.
Why is the CA bundle required? what happens if it's not there? which is the case now.
A couple of comments on my side:

Is the file /config/sslcerts/cabundle.crt supposed to be created by the ssl generation scripts or should we be adding it as part of the repo?
you need to update your commit messages (see the CONTRIBUTING.md file to see how to style them) and also squash your commits to 1

If a person buys a Comodo SSL certificate for example, not all browsers will validate the crt, which is why they provide a CABundle.crt or mulple CA's to add to create a CABundle.crt. Adding the CABundle that a Certificate Authority provides (like Comodo), fixes that issue. I bought a Comodo cert, this was required to have it work correctly. So I thought I would share.

I'm not opposed to having it in there as a comment. But, the self-signed certs do not come with a bundle file, and since our instructions and scripts allow for self-assigned, this would break.

How would this break? I would love to hear about it. As the cabundle.crt wont break anything its just an added root ca file that accompanies some ssl providers certificates.

Tell you what codydaig, create a blank cabundle.crt file. Enable those options in the proper configs. create a self signed cert. Now show me how this breaks...

@siteshackinc what we mean is that if we try to just merge this PR it will break because we are telling the server to look for the cabundle.crt file but it doesn't really exist.
This will be the error that the user will see:
    Error: ENOENT, no such file or directory 'config/sslcerts/cabundle.crt'

What if you add a line in the generate-ssl-certs.sh to create an empty config/sslcerts/cabundle.crt?
https://github.com/meanjs/mean/blob/master/scripts/generate-ssl-certs.sh#L16
something like touch ./config/sslcerts/cabundle.crt

@siteshackinc @lirantal let's try to wrap this up. Can we get a consensus on the implementation and do a final review before merging?

@siteshackinc can you make the changes @lirantal requested ^^?

@ilanbiala  @siteshackinc my PR for applying this fix is here: https://github.com/meanjs/mean/pull/1342


BUG?: Trouble with renv

I have a package setup with renv. On the CI it consistently fails the pkgcheck action (logs). I can see that there's been some discussion on renv over in the pkgcheck repository but it seems it should have been fixed there?
https://github.com/ropensci-review-tools/pkgcheck/issues/149
I can workaround this by deleting .Rprofile but I believe it should work as long as .Rprofile doesn't activate renv by default..

You're right, it should work as long as renv has been deactivated. If that is the case, and it still fails, can you please share a link to the failing workflow? Thanks

(You already shared the logs, so ignore that)


Support non-unique indexes

Often we want to store and retrieve all elements with a field matching a certain value, ie. the index is non-unique.

https://github.com/lun3x/multi_index_map/tree/non_unique_indexes

Retrieval semantics are still a WIP. We cannot simply provide a slice of values matching the given key, as they may not stored in contiguous memory for a given index. In c++ this is handled by providing a pair of iterators [start, end) but this can lead to multiple aliasing, so not workable in rust. Returning a Vec of references is a potential option. However, the Vec has to be constructed on-the-fly so maybe not ideal due to memory allocation. Perhaps some form of special iterator that yields matching values until there are no more to match? This can then be collect()ed into a Vec as required.

Wow, I did a search about a month ago, looking for boost::multiindex alternative in Rust. And now it is here! Great work!
Looking forward for a non-unique index to use this library as a generic in-memory storage for table data.

Thanks! Non-unique indexes are now available. We provide both an Iterator .iter_by_field() and retrieval .get_by_field() , remove_by_field() methods. Currently .modify_by_field() and .get_mut_by_field()  are not supported. When iterating between different values in the index we will yield in the order defined by the container (BTreeMap/FxHashMap).
When iterating over a specific value in an index with multiple matching elements, we yield them in the order they were inserted. When retrieving all elements for a given index we provide a Vec of references to elements in the backing storage. This requires allocation, however this can be avoided through the use of the .iter_by_field() methods.
Further work needs to be done to support .modify_by_field() to enable modification of all elements matching a specific non-unique index value.

Okay I think by merging the PR from @wyjin this issue can now be closed!


DynamoDB: ProjectionExpression not working on get_item()

On the mock of the dynamo_db resource the query function is handling the ProjectionExpression correctly.
Yet, the get_item function is returning an empty response (only Metadata) instead of the item limited to specified attributes.
moto: v2.2.6
boto3: v1.17.79
import boto3

dynamo_db_resource = boto3.resource("dynamodb")
table = dynamo_db_resource.Table("TableName")

# empty response
table.get_item(Key={"pk": pk}, ProjectionExpression="expected_attribute_name")

# working response
table.query(IndexName="index_name", KeyConditionExpression={"index_pk": "index_pk_value"}, ProjectionExpression="expected_attribute_name")

Hi @janluak
I wanted to take care of this issue, but I'm unable both to understand the problem and reproduce it. As far as I can tell, projection expressions work fine with get_item and there are multiple unit tests confirming it. It would be very helpful if you could provide the full code to reproduce the issue, including table creation, inserting items etc..
The call you marked as "working" has no chance to work, because KeyConditionExpression excepts str instead of dict so ParamValidationError is thrown. Did you mean to use legacy KeyConditions?

I'll close this - thanks for the investigation @k0mmsussert0d.
Do let us know if you're still having issues though @janluak


Hashie::Mash#count Warning

[2] pry(main)> @vk.wall.get(owner_id: -XXXXXXX, count: "5", filter: "owner")
D, [2017-05-21T16:45:15.893154 #23584] DEBUG -- : POST https://api.vk.com/method/wall.get?access_token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
D, [2017-05-21T16:45:15.893288 #23584] DEBUG -- : body: "count=5&filter=owner&owner_id=-XXXXXXX"
W, [2017-05-21T16:45:16.040857 #23584]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#count defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-05-21T16:45:16.041072 #23584]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#count defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-05-21T16:45:16.041188 #23584]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#count defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-05-21T16:45:16.042765 #23584]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#count defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-05-21T16:45:16.042874 #23584]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#count defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-05-21T16:45:16.042992 #23584]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#count defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-05-21T16:45:16.043539 #23584]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#count defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-05-21T16:45:16.043647 #23584]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#count defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-05-21T16:45:16.043807 #23584]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#count defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-05-21T16:45:16.044675 #23584]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#count defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-05-21T16:45:16.044769 #23584]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#count defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-05-21T16:45:16.044955 #23584]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#count defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-05-21T16:45:16.045654 #23584]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#count defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-05-21T16:45:16.045751 #23584]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#count defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.
W, [2017-05-21T16:45:16.045839 #23584]  WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#count defined in Enumerable. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.

This is expected behaviour - Hashie::Mash uses #method_missing to respond to methods named after the keys - so it can't handle keys like count (because a real #count method already exists and it is being called instead of the #method_missing). This is just a warning from the hashie gem to help you not to mess up. You can suppress it with Hashie.logger = Logger.new(nil) if it bothers you.
Another option would be to replace Hashie::Mash with custom value objects here, in vkontakte_api - but that would tie the gem code to the API format and require a new version release even after the smallest API change.


feat: aws lambda plugin now supports more IAM-based authentication scenarios

Description
This PR modifies the gateway's aws-lambda plugin description to explain the new behaviour of fetching different kinds of IAM credentials. The original PR is at https://github.com/Kong/kong/pull/11350 and it also goes into Enterprise 2.8 branch https://github.com/Kong/kong-ee/pull/6315. We're aiming at backporting this refactor work to the Enterprise version between 2.8 - 3.5 so that all our versions currently in maintenance can have this change.
Testing instructions
Netlify link:
Checklist

[x] Review label added
[x] PR pointed to correct branch (main for immediate publishing, or a release branch: e.g. release/gateway-3.2, release/deck-1.17)

Not sure why smoke tests are failing - it seems some acl related schemas are missing


Got error on reflex init

Describe the bug
I tried to run reflex init with poetry then got below error.
❯ poetry run reflex init --loglevel debug
─────────────────────────────────────────────────────────────── Initializing simple_chat ────────────────────────────────────────────────────────────────
Debug: Running command: ['/Users/huynhdung/.reflex/.bun/bin/bun', '-v']
Debug: Running command: ['/Users/huynhdung/.reflex/.nvm/versions/node/v18.17.0/bin/node', '-v']
[13:32:44] Initializing the web directory.                                                                                console.py:81
Debug: Downloading https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh
Debug: Running command: ['bash', '/var/folders/rz/6r6_41fx38b7f5c2p2jbqqzh0000gn/T/tmp9pkx80d8']
Debug: Installing https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh
Debug: => nvm is already installed in /Users/huynhdung/.reflex/.nvm, trying to update using git
Debug:
Debug: => => Compressing and cleaning up git repository
Debug:
Debug: => nvm source string already in /Users/huynhdung/.zshrc
Debug: => bash_completion source string already in /Users/huynhdung/.zshrc
Debug: => You currently have modules installed globally with `npm`. These will no
Debug: => longer be linked to the active version of Node when you install a new node
Debug: => with `nvm`; and they may (depending on how you construct your `$PATH`)
Debug: => override the binaries of modules installed with `nvm`:
Debug:
Debug: /Users/huynhdung/Library/Application Support/fnm/node-versions/v18.17.0/installation/lib
Debug: ├──<EMAIL_ADDRESS>Debug: └──<EMAIL_ADDRESS>Debug: => If you wish to uninstall them at a later point (or re-install them under your
Debug: => `nvm` Nodes), you can remove them from the system Node as follows:
Debug:
Debug:      $ nvm use system
Debug:      $ npm uninstall -g a_module
Debug:
Debug: => Close and reopen your terminal to start using nvm or run the following to use it now:
Debug:
Debug: export NVM_DIR="$HOME/.reflex/.nvm"
Debug: [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
Debug: [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
Debug: Running command: ['bash', '-c', '. /Users/huynhdung/.reflex/.nvm/nvm.sh && nvm install 18.17.0']
Debug:
Error: Error during
Error: Run in with --loglevel debug to see the full error.
⠙%

I guess it's related with #1381.
To Reproduce
Steps to reproduce the behavior:

It seems that's installed nvm but I'm using Schniz/fnm: 🚀 Fast and simple Node.js version manager, built in Rust

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Specifics (please complete the following information):

Python Version: 3.7
Reflex Version: 0.2.3
OS: Mac OSX
Browser (Optional):

Additional context
Add any other context about the problem here.

Can you provide any more information about your setup? I'm unable to repro here on macOS 13.5.
rm -rf ~/.reflex
brew install fnm
mkdir my-app
cd my-app
poetry init
...
poetry run reflex init --loglevel debug

and it just works for me.
Did i need to install or activate some stuff with fnm first? Or are there some PATH changes you have on your system that I might be missing?

Thanks @masenf I think you missed to set the node version after ran brew install fnm.
> fnm ls
* v16.20.0 default
* v18.17.0 lts-latest
* system
> node -v
v18.17.0

Could you try to reproduce again?

Did i need to install or activate some stuff with fnm first?
Yes, you need to active fnm with your shell, e.g: https://github.com/Schniz/fnm#zsh

Or are there some PATH changes you have on your system that I might be missing?
Correct, it will add to your PATH.

I believe that this issue might be resolved if we disable the automatic installation of Node.js/NVM and 'bun.' For example, we could use the command poetry run reflex init --loglevel debug --nvm off --bun -off to turn off these features.
For instance: poetry run reflex init --loglevel debug --nvm off --bun -off
I have installed nodejs and bun on my machine so reflex no need to install them again.
❯ node -v
v18.17.0
❯ bun --version
0.7.1
❯ deno --version
deno 1.35.3 (release, aarch64-apple-darwin)
v8 <IP_ADDRESS>
typescript 5.1.6
❯ fnm ls
* v16.20.0 default
* v18.17.0 lts-latest
* system

@jellydn The point of abstracting the node and bun install is to allow reflex manage its own dependencies(whether or not they already exist on the host machine) to eradicate incompatibilities. The ~/.reflex dir is created just for that.
However, I tried replicating the issue reported with the steps but it worked just fine for me. I am going to close this issue now, Feel free to re-open or open another issue if need be.


Conversation matching fails on multi line replies

When using the line break in a reply to create multi line answers, the conversation matching fails if the word used to match against is next to the line break (\n). See the following example below:
+ sample
- first reply\n
^ please

	+ sample
	% * please *
	- second reply

Expected Behavior
Based on the example provided above, a user types the word "sample" twice and the following is expected:
user: sample
bot: first reply
please
user: sample
bot: second reply
Current Behavior
However, the current behavior results in the following outcome:
user: sample
bot: first reply
please
user: sample
bot:
There is no reply from the bot because there was no conversation match and all answers have been exhausted.
Possible Solution
A possible solution is to replace the line breaks (\n) in the last reply with a white space before doing the conversation matching.
Steps to Reproduce (for bugs)
See the example above.
Context
Creating conversations with multi line answers is not possible now without using a custom line break character sequence in the replies that needs to be replaced before posting the reply to the user.

It seems the reply (and hence lastReply) contains an escaped backslash for the line break, i.e. \\n internally? Does this cause the matching mechanism to fail? Or is something else going on?

I think I found a quick fix for the issue. The parser seems to be the culprit as it does not do proper conversation matching in the post process function. As suggested, replacing the line break \n with a simple space will solve the issue. So line 220 in parseContents.js
if (pattern.test(reply.string)) {
could be
if (pattern.test(reply.string.replace(/\\n/g, ' '))) {
Note that the original reply remains as is, the replace is only required for the pattern matching in this function.

Nice work @rensdewolf. Since you have taken it this far, we will happily take a PR too. If you feel up for it. All you would need to do is create a failing test, and confirm your change works, and doesn't regress anything else.

@silentrob I think I have done what you've asked for (be it in separate PRs). The test fails as expected. With the PR for the ss-parser the test should pass.

Thank you @benhjames  and @silentrob.


Cleanup output

Further improvement in the parsing

Pull Request Test Coverage Report for Build 261

0 of 0   changed or added relevant lines in 0 files are covered.
88 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.08%) to 36.582%

Files with Coverage Reduction
New Missed Lines
%

/home/travis/miniconda/lib/python2.7/site-packages/pyiron_vasp/outcar.py
29
81.12%

/home/travis/miniconda/lib/python2.7/site-packages/pyiron_vasp/vasp.py
59
37.35%

Totals

Change from base Build 259:
-0.08%

Covered Lines:
2725

Relevant Lines:
7449

💛  - Coveralls

Pull Request Test Coverage Report for Build 261

0 of 0   changed or added relevant lines in 0 files are covered.
88 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.08%) to 36.582%

Files with Coverage Reduction
New Missed Lines
%

/home/travis/miniconda/lib/python2.7/site-packages/pyiron_vasp/outcar.py
29
81.12%

/home/travis/miniconda/lib/python2.7/site-packages/pyiron_vasp/vasp.py
59
37.35%

Totals

Change from base Build 259:
-0.08%

Covered Lines:
2725

Relevant Lines:
7449

💛  - Coveralls

Pull Request Test Coverage Report for Build 261

0 of 0   changed or added relevant lines in 0 files are covered.
88 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.08%) to 36.582%

Files with Coverage Reduction
New Missed Lines
%

/home/travis/miniconda/lib/python2.7/site-packages/pyiron_vasp/outcar.py
29
81.12%

/home/travis/miniconda/lib/python2.7/site-packages/pyiron_vasp/vasp.py
59
37.35%

Totals

Change from base Build 259:
-0.08%

Covered Lines:
2725

Relevant Lines:
7449

💛  - Coveralls

Pull Request Test Coverage Report for Build 261

0 of 0   changed or added relevant lines in 0 files are covered.
88 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.08%) to 36.582%

Files with Coverage Reduction
New Missed Lines
%

/home/travis/miniconda/lib/python2.7/site-packages/pyiron_vasp/outcar.py
29
81.12%

/home/travis/miniconda/lib/python2.7/site-packages/pyiron_vasp/vasp.py
59
37.35%

Totals

Change from base Build 259:
-0.08%

Covered Lines:
2725

Relevant Lines:
7449

💛  - Coveralls

@jan-janssen After your commits, our coverage went up to 70% :). Should we add the badge?


BOUNCER CODE NO LONGER WORKS

C.f. https://github.com/decentraland/protocol/blob/main/proto/decentraland/kernel/apis/communications_controller.proto#L19.
There is no indication whatsoever as to how the binary stream is supposed to be used in the stead of the former text stream.
Now that the deprecated functionality is actually no longer working, some very critical scene tools are unavailable.
Notably the possibility of kicking disruptive users from a scene.
Originally posted by @ProteanCoding in https://github.com/decentraland/sdk/issues/582#issuecomment-2540309523

Closing the issue for now.
Feel free to open it again with some repro steps. That code is wokring as expected, and the communications_controller that we use for the messageBus too.


About link to youtube

https://www.youtube.com/@airwindows/search?query=galacticvibe
a link of that form is easy to construct from the about menu

Chris didn't particularly want more links in the UI so closing this.


How to use brotli compression method

Article checklist
Formatting and structure checks

[X] Have you used the correct folder and file structure? - see Contribution Guidelines

[X] Is your article properly formatted in Markdown? - see Github Markdown guide

[X] Have you used our preferred heading structure? - H3 (###) and up

[X] Does your article follow any of the suggested structure formats? - see example formats

[X] Is your article over 750 words? - Tool: Wordcounter.net

[X] Is the article you are submitting an in-depth and unique article? Does it go beyond what is in the official docs and what is covered in other blog sites. See these articles as examples.

[X] Does your article provide enough value and detail about your topic? - Articles should be clear, accurate, and fully explained.

[X] Can your article be understood by beginners? - Assume the audience is smart but has no prior exposure to the common terminology in your article.

[X] Have you included a hero image that is 600x400 pixels, under 300KB in size, and have the copyright to use it? - Tools: Pixlr Image Editor for resizing and Unsplash for Creative Commons images

Grammar & plagiarism checks

[X] Have you spellchecked and grammar checked your article? - Tools: Write&Improve - ProWritingAid - Grammarly
[X] Please place your article through a 3rd party plagiarism checker. We suggest using Quetext, this tool is free and has a daily limit. We typically accept articles with 10% or less.
[X] Have you checked your article for readability? - Tool: Hemmingway
[ ] Have you added sources for quotes and images that aren't yours?

Technical checks

[X] Are your code snippets properly formatted for syntax highlighting - see Syntax guide
[X] Have you checked your code runs correctly and you've highlighted all necessary dependencies for installation?
[X] Are the software programs and packages you're highlighting in your article up to date, using current versions and not deprecated?

This closes #5731

You have uploaded 2 articles. Please delete the second one. @Newton-cyber

@Newton-cyber
Looks like there is a mismatch between your PR title (Brotli compression method) and the contents of the index.md (talks about Arduino).
Please add only necessary files.

@Newton-cyber
Just checking if the changes are made.
If you need more time, we can close this PR for now.

Closing this PR due to inactivity.


Add logging

I added a log file that will be written to the run path.
Also  added another function in pysero to get any logic away from main
And removed some useless functions I wrote when testing out spot detection methods.

Codecov Report

Merging #71 into master will increase coverage by 2.16%.
The diff coverage is 64.19%.

@@            Coverage Diff             @@
##           master      #71      +/-   ##
==========================================
+ Coverage   42.96%   45.13%   +2.16%
==========================================
  Files          26       26
  Lines        1755     1766      +11
==========================================
+ Hits          754      797      +43
+ Misses       1001      969      -32

Flag
Coverage Δ

#unittests
45.13% <64.19%> (+2.16%)
:arrow_up:

Impacted Files
Coverage Δ

array_analyzer/extract/img_processing.py
13.33% <ø> (+0.09%)
:arrow_up:

array_analyzer/extract/metadata.py
86.44% <ø> (+0.26%)
:arrow_up:

array_analyzer/transform/point_registration.py
25.00% <0.00%> (ø)

array_analyzer/workflows/registration_workflow.py
17.34% <5.00%> (-1.55%)
:arrow_down:

array_analyzer/load/report.py
20.68% <20.00%> (-2.65%)
:arrow_down:

pysero.py
76.36% <81.81%> (+22.51%)
:arrow_up:

array_analyzer/extract/constants.py
100.00% <100.00%> (ø)

array_analyzer/utils/io_utils.py
90.32% <100.00%> (+2.32%)
:arrow_up:

tests/pysero_test.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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

@smguo @bryantChhun master has been merged into this branch now, would either of you have time to review?


OTA support in "WebConfig/WiFiManager"

In general, devices sold by companies use "WebConfig/WiFiManager", as it is the user who will indicate the SSID and password of the WIFI router.
It would be important to update "ThingerWebConfig.h" to support OTA update and ESP32 support (if WiFiManager library already supports ESP32)

Fixed on #43 !


Expiry month and year with two input fields

Hi,
is it possible to have two input fields for expiry? One for month and one for year?
best regards Ivan

In addition, if you could also explain if it's possible to utilize select inputs for this?

Two inputs for expiry:
formSelectors: {
    expiryInput: ['input[name="cardexpires[month]"]', 'input[name="cardexpires[year]"]']
}

@zchristopoulos  see https://github.com/jessepollak/card/issues/173

Thanks @Yottster!


bug fix bitmap value copy operator not call reset

Proposed changes
when a empty bitmap assign to other bitmap
the other bitmap should reset self firstly, and then set empty type.
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall


update_links is slow

When updating a has_many it issues an UPDATE for every child model. That's not smart @edpaget.

This is wrong. It's slow because we're creating a bunch of rows at once. I don't think there's a good way to handle this in default rails. We could use a gem to handle bulk inserts like https://github.com/zdennis/activerecord-import. Thoughts @camallen?

@edpaget i'm happy to use this bulk import gem. Looks like it may have jruby support but might not be tested.

@edpaget are you happy to see how this goes in the API nodes and we'll look to implement a solution in the next iteration? Also i think the Bug label could be enhancement too.

Yeah I'm fine punting this until later. I'm not super sure how to solve it.


[SKY30-189] Prevent the display of percentage values over 100%

Overview
This PR implements a check when formatting percentages, to prevent the display of values over 100%.
Testing instructions
Visit the map, choose "Palau".
Verify that, on the "Proportion of Habitat within Protected and Conserved Areas" widget, "Seamounts" is not over 100%.
Feature relevant tickets
https://vizzuality.atlassian.net/browse/SKY30-189

This had been implemented in https://github.com/Vizzuality/skytruth-30x30/pull/136, but for some reason vanished from the code.


Added data labels

Added data labels.
Added a new class to handle data labels: DataLabeller
Added a MouseMotionListener in XChartPanel class to catch mouse move
events to show pop up data labels.
Added required lines to PlotContent_* to show data labels.
Added a demo for showing various configuration examples:
DataLabellerExample
This resolves issue 106: Support Data labels
My bitcoin address is 1MNP7rUewVmkEiZfyDaiEJAeBu3egUJw5R

This resolves issue #106 : Support Data labels

Payment sent. Thanks!

Is there any changes needed?

Nope, looks good at first glance.

Only issue I encountered is on example BarChart06. You cannot select histogram2 values since histogram 1 values are bigger and inserted before histogram 2.

Well, I guess that's ok.

The date charts should show the formatted values, not the epoch long values on the labels

Instead of using an enum to create labels, a string template can be used to create labels.
But this requires the argument to be casted to long (to format it as date/time).
Another alternative is to add another addData method:
Eg:
public void addData(Shape shape, double xOffset, double yOffset, double width, Object... params) {
String.format(labelTemplate, params);
DataPoint dp = new DataPoint(shape, xOffset, yOffset, width, label);
dataPointList.add(dp);
}

Created a new pull request #183


Inconsistent type checking with single vs. multiple constructors

I'm not really sure how to produce a simple test case, since my experience of this problem hinges on using two separate Lua binding libraries together. I'm also not sure whether this is a bug or feature request.
When only a single sol::constructors is defined in a new_usertype call, the code path goes directly to overload_match_arity_single<Fx, I, ....  If multiple are defined, the code path starts at overload_match_arity_single<Fx, Fx1, Fxs....  In the first instance, there are no type checks - as long as the arity matches, the function matches.  In the second case there are both arity and type checks.
The case I've come across is whilst using a game library (Urho3D), which uses tolua for C++/Lua bindings.  I want to pass tolua-bound type to my sol-bound constructor.  This works fine as long as I only have a single constructor, since there are no type checks.  As soon as I add a second constructor it fails because of the type checking.
A simple fix I hacked in was to redefine as follows
template <std::size_t... M, typename Match, typename... Args>
inline int overload_match_arity(types<>, std::index_sequence<>, std::index_sequence<M...>, Match&&, lua_State* L, int, int, Args&&...) {
	return std::numeric_limits<lua_Integer>::max();
}

template <typename Fx, typename Fx1, typename... Fxs, std::size_t I, std::size_t I1, std::size_t... In, std::size_t... M, typename Match, typename... Args>
inline int overload_match_arity_single(types<Fx, Fx1, Fxs...>, std::index_sequence<I, I1, In...>, std::index_sequence<M...>, Match&& matchfx, lua_State* L, int fxarity, int start, Args&&... args) {
...
	if (!stack::stack_detail::check_types<true>{}.check(args_list(), L, start, no_panic, tracking)) {
		int matched = overload_match_arity(types<Fx1, Fxs...>(), std::index_sequence<I1, In...>(), std::index_sequence<M...>(), std::forward<Match>(matchfx), L, fxarity, start, std::forward<Args>(args)...);
		if (matched == std::numeric_limits<lua_Integer>::max() && traits::free_arity != fxarity) {
			return luaL_error(L, "sol: no matching function call takes this number of arguments and the specified types");
		}
	}
	return matchfx(types<Fx>(), index_value<I>(), return_types(), args_list(), L, fxarity, start, std::forward<Args>(args)...);
}

That is, not to immediately flag an error when no function fully matches (types + arity), but to return an "error code" of  numeric_limits<lua_Integer>::max() .  If this is returned, do one last ditch effort to check if the arity matches regardless of whether the types match.  Otherwise flag a Lua error as before.  This is then consistent with if a single constructor is called.
I know practically nothing of such low level Lua stuff, so I'm sure there's a better way.  But it works.

And how would someone, at a high level, go disabling type checks for overloading checks?

Note that what I'm asking for is: what would you like to see on sol::constructors (or sol::factories, sol::initializers, sol::overload) that will stop the type checks and enable what you want. I am less interested in what the implementation looks like, more like what a high-level way to specify "arity overloading only" or "barely check at all".

I should also probably mention it's not inconsistent: when dealing with multiple overloads, we have to do type-checking / arity-checking in order to find the right function. If you define SOL_CHECK_ARGUMENTS, we check every single function. All the time. Which means your code would probably fail right off the bat.

Thanks for the quick response!  I'm quite new to sol, so am unaware of how such a change interacts with the broader picture.
A way to add a custom checker sounds perfect.  It would mean figuring out how tolua verifies types and finding a way to hook into that.  But that sounds like a worthwhile exercise for a more clean extensible solution.
However, an "arity checking only" solution sounds much easier to implement, has some performance benefits, and would suit my purposes for now.
I would argue that if SOL_CHECK_ARGUMENTS is not defined, then an arity check should always be sufficient for a match to be found (after all type checks have failed), for consistency as well as my selfish reasons.

The checker bit might actually be a bit harder to do: sure, we can override the default check but what about the casting operation? Right now we return void* vpointer_original = lua_touserdata(L, index); then do T** pointer_to_pointer_of_data = static_cast<T**>( vpointer_original );
If toLua stores its data differently, you'll need some custom handling no matter how I implement the checker. If your types are all bound with toLua, you can override the checker, getter AND pusher using customization points:
http://sol2.readthedocs.io/en/latest/tutorial/customization.html - https://github.com/ThePhD/sol2/blob/develop/examples/customization.cpp
http://sol2.readthedocs.io/en/latest/api/usertype_memory.html

Unfortunately for my case, I'm trying to use sol for my own types (I'm really impressed by the simplicity, features and performance), whereas Urho3D uses (the seemingly abandoned) tolua++ for it's types.
There seems to be some compatibility between the two, at least, since as I say, a single constructor (or multiple constructors with my hack) works.  I.e. a correctly formed (tolua bound) object is passed to my (sol bound) constructor.
I'll take a look at the customization points, to see what might be possible.

I added some new customization points, that are much more flexible than the others. They're documented in various places, but the example probably explains it best. Pull from the latest, then check out this example:
https://github.com/ThePhD/sol2/blob/develop/examples/interop/kaguya.cpp
Replace the kaguya-specific logic with logic for toLua.
Other information:
http://sol2.readthedocs.io/en/latest/api/stack.html#userdata-checker
http://sol2.readthedocs.io/en/latest/safety.html#config
If you figure out how to do toLua, I would strongly encourage you to write an example and submit it back to me. I would love to keep a rolling, updated list of interop examples, with any simple libraries that are applicable.

I wanted to make sure this logic was solid, so I went and made 2 more examples. So now we test @satoren's kaguya, @vaprismo's Luwra, and @VinnieFalco's LuaBridge, all which can be integrated into sol2:
https://github.com/ThePhD/sol2/tree/develop/examples/interop
It seems like the toLua logic for userdata stuff would be a great example aside from those 3 because it's data-compatible with sol2, meaning you can likely omit the userdata_getter altogether, just making sure the userdata_checker is right. I am definitely interested in seeing how this turns out, so let me know how it all shakes down.

This looks great!  It may take me some time to figure out how to add such an interface for tolua.
It looks like I need to use tolua's static int lua_isusertype (lua_State* L, int lo, const char* type), which checks if type is equal to the object's metatable name in the registry(?).  So I'll need to get hold of that type name from the object, somehow.

OK, I'm right on the edge of what I can understand of the Lua C API, but it appears as if the type checking in tolua is somewhat simple.
tolua generates binding code with strings embedded for checking against the string representation of the metatables. E.g. some code generated for Urho3D's bindings for the Viewport class's constructor:
static int tolua_GraphicsLuaAPI_Viewport_new01_local(lua_State* tolua_S)
{
 tolua_Error tolua_err;
 if (
 !tolua_isusertable(tolua_S,1,"Viewport",0,&tolua_err) ||
 !tolua_isusertype(tolua_S,2,"Scene",0,&tolua_err) ||
 !tolua_isusertype(tolua_S,3,"Camera",0,&tolua_err) ||
 !tolua_isusertype(tolua_S,4,"RenderPath",1,&tolua_err) ||
 !tolua_isnoobj(tolua_S,5,&tolua_err)
 )
 goto tolua_lerror;
 else
 {
  Scene* scene = ((Scene*)  tolua_tousertype(tolua_S,2,0));
  Camera* camera = ((Camera*)  tolua_tousertype(tolua_S,3,0));
  RenderPath* renderPath = ((RenderPath*)  tolua_tousertype(tolua_S,4,0));
 {
  Viewport* tolua_ret = (Viewport*)  Mtolua_new((Viewport)(GetContext(tolua_S),scene,camera,renderPath));
  tolua_pushusertype(tolua_S,(void*)tolua_ret,"Viewport");
 tolua_register_gc(tolua_S,lua_gettop(tolua_S));
 }
 }
 return 1;
tolua_lerror:
 return tolua_GraphicsLuaAPI_Viewport_new00_local(tolua_S);
}

The tolua_isusertype calls essentially just call the aforementioned lua_isusertype, which checks if the parameter is a metatable and that the metatable's name matches the given string.
So the best I think I can do in your new userdata_checker would be to get the demangled class name from T (I think I saw code in sol to do that) and check if the metatable name is the same as T.
Does that sound about right?

Look at sol::detail::demangle<T>(), and sol::detail::short_demangle<T>. You should also check how toLua generates a binding for a name that's nested in a namespace. E.g., what happens with:
namespace foo {
     struct Viewport {};
}
struct Viewport {};

Good point.  I need to experiment.  The first problem I've come across is that it appears userdata_getter must be specialised if SOL_ENABLE_INTEROP is defined.  With no other changes, I get the compilation error:
vendor/include/sol.hpp:8240:16: error: cannot convert ‘sol::stack::extensible<UrFelt::UrSurface>*’ to ‘UrFelt::UrSurface*’ in return
     return ugr.second;

Good, catch, I can fix that now.

Yey! I got it working.
It would be nice to not have to also implement the getter, which I essentially just lifted from the sol code.
I also haven't handled the potential case of nested/namespaced classes. In Urho3D, none of the Lua API is namespaced and in the tolua documentation there is no mention of nested classes or namespaces.  So I don't know if it's a limitation of tolua or just what the Urho3D devs decided.
I'll try to mock up a test case, but tolua is a bit more involved that the other examples, since it's a command line utility that generates cpp files from bespoke ".pkg" files, which you then embed in your program.
The checker/getter code I've come up with is
namespace sol {
namespace stack {
	template <typename T>
	struct userdata_checker<extensible<T>> {
		template <typename Handler>
		static bool check(
			lua_State* L, int relindex, type index_type, Handler&& handler, record& tracking
		) {
			// just marking unused parameters for no compiler warnings
			(void)index_type;
			(void)handler;
			int index = lua_absindex(L, relindex);
			std::string name = sol::detail::short_demangle<T>();
			tolua_Error tolua_err;
			return tolua_isusertype(L, index, name.c_str(), 0, &tolua_err);
		}
	};

	template <typename T>
	struct userdata_getter<extensible<T>> {
		static std::pair<bool, T*> get(
			lua_State* L, int relindex, void* unadjusted_pointer, record& tracking
		) {
			// you may not need to specialize this method every time:
			// some libraries are compatible with sol2's layout
			int index = lua_absindex(L, relindex);
			if (
				!userdata_checker<extensible<T>>::check(
					L, index, type::userdata, no_panic, tracking
				)
			) {
				return { false, nullptr };
			}
			void** pudata = static_cast<void**>(unadjusted_pointer);
			T* udata = static_cast<T*>(*pudata);
			return { true, udata };
		}
	};
}
} // namespace sol::stack

I think you can just use sol::detail::demangle in that case and hope it scales with namespace-nested types. And you don't exactly have to give me a whole example or even a compilable one: just something that has the right #include at the top so someone who DOES have it has a good chance of it working right out of the box.

I did try sol::detail::demangle initially and it gave me back e.g. Urho3D::Vector3, when I needed just Vector3 to get tolua to match it.

@feltech Try the latest and remove your userdata_getter, see if it works out for you.

Excellent!  Works like a charm.  Example also looks good to me.
Thanks a lot for all your work, and the speed with which you resolved this!

You're welcome.
Best of Luck.


[BACKLOG-11907] Sample transformation transformation-executor/trans-executor-parent.ktr fails

Transformation executor was missing checks for disabled hops to output steps, added missing checks and tests.

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
ant -Dtestreports.dir=bin/reports/unit-test -f engine/build.xml clean-all resolve jacoco && ant -f engine/build.xml checkstyle publish-local

Cleanup Commands
rm -r ~/.ivy2/local || echo no publish local to remove

Changed files
  engine/src/org/pentaho/di/trans/steps/transexecutor/TransExecutor.java
  engine/test-src/org/pentaho/di/trans/steps/transexecutor/TransExecutorUnitTest.java

Still Broken Tests:
org.pentaho.di.trans.steps.syslog.SyslogMessageConcurrentTest.concurrentSyslogMessageTest:
:red_circle: org.junit.runners.model.TestTimedOutException
org.junit.runners.model.TestTimedOutException: test timed out after 2000 milliseconds
	at org.mockito.cglib.core.TypeUtils.isArray(TypeUtils.java:289)
	at org.mockito.cglib.core.CodeEmitter.emit_type(CodeEmitter.java:549)
	at org.mockito.cglib.core.CodeEmitter.checkcast(CodeEmitter.java:584)
	at org.mockito.cglib.core.CodeEmitter.unbox_or_zero(CodeEmitter.java:836)
	at org.mockito.cglib.proxy.MethodInterceptorGenerator.generate(MethodInterceptorGenerator.java:126)
	at org.mockito.cglib.proxy.Enh

Unit test coverage change
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.
org.pentaho.di.core.auth.core.impl.DefaultAuthenticationConsumerFactory

Branch Change: -7.14%:small_red_triangle_down:
Complexity Change: -7.69%:small_red_triangle_down:

org.pentaho.di.job.entries.ftpsget.JobEntryFTPSGet

Branch Change: -.53%:small_red_triangle_down:
Complexity Change: -.56%:small_red_triangle_down:
Instruction Change: -.07%:small_red_triangle_down:

org.pentaho.di.trans.steps.combinationlookup.CombinationLookupMeta

Instruction Change:  + .04%

org.pentaho.di.trans.steps.constant.ConstantMeta

Instruction Change:  + .10%

org.pentaho.di.trans.steps.dbproc.DBProcMeta

Instruction Change:  + .11%

org.pentaho.di.trans.steps.ifnull.IfNullMeta

Branch Change: -2.00%:small_red_triangle_down:
Complexity Change: -1.89%:small_red_triangle_down:
Instruction Change: -.17%:small_red_triangle_down:

org.pentaho.di.trans.steps.insertupdate.InsertUpdateMeta

Instruction Change: -.05%:small_red_triangle_down:

org.pentaho.di.trans.steps.ldapoutput.LDAPOutputMeta

Instruction Change: -.06%:small_red_triangle_down:

org.pentaho.di.trans.steps.memgroupby.MemoryGroupByMeta

Branch Change:  + 2.35%
Complexity Change:  + 2.70%

org.pentaho.di.trans.steps.replacestring.ReplaceStringMeta

Instruction Change: -.07%:small_red_triangle_down:

org.pentaho.di.trans.steps.rowgenerator.RowGeneratorMeta

Instruction Change: -.08%:small_red_triangle_down:

org.pentaho.di.trans.steps.setvalueconstant.SetValueConstantMeta

Instruction Change:  + .14%

org.pentaho.di.trans.steps.sortedmerge.SortedMergeMeta

Instruction Change: -.18%:small_red_triangle_down:

org.pentaho.di.trans.steps.tableoutput.TableOutputMeta

Branch Change: -.91%:small_red_triangle_down:
Complexity Change: -.82%:small_red_triangle_down:

org.pentaho.di.trans.steps.textfileinput.TextFileInputMeta

Branch Change: -.53%:small_red_triangle_down:

org.pentaho.di.trans.steps.transexecutor.TransExecutor

Branch Change:  + 3.22%
Complexity Change:  + 2.39%
Instruction Change:  + .88%
Line Change:  + .29%

org.pentaho.di.trans.steps.transexecutor.TransExecutorData

Complexity Change:  + 4.35%
Instruction Change:  + 3.75%
Line Change:  + 2.86%
Method Change:  + 4.35%

org.pentaho.di.trans.steps.uniquerows.UniqueRowsMeta

Instruction Change:  + .18%

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
ant -Dtestreports.dir=bin/reports/unit-test -f engine/build.xml clean-all resolve jacoco && ant -f engine/build.xml checkstyle publish-local

Cleanup Commands
rm -r ~/.ivy2/local || echo no publish local to remove

Changed files
  engine/src/org/pentaho/di/trans/steps/transexecutor/TransExecutor.java
  engine/test-src/org/pentaho/di/trans/steps/transexecutor/TransExecutorUnitTest.java

Still Broken Tests:
org.pentaho.di.trans.steps.syslog.SyslogMessageConcurrentTest.concurrentSyslogMessageTest:
:red_circle: org.junit.runners.model.TestTimedOutException
org.junit.runners.model.TestTimedOutException: test timed out after 2000 milliseconds
	at java.lang.String.toCharArray(String.java:2899)
	at org.jacoco.agent.rt.internal_14f7ee5.asm.Type.getArgumentTypes(Type.java:325)
	at org.jacoco.agent.rt.internal_14f7ee5.asm.commons.AnalyzerAdapter.pop(AnalyzerAdapter.java:567)
	at org.jacoco.agent.rt.internal_14f7ee5.asm.commons.AnalyzerAdapter.doVisitMethodInsn(AnalyzerAdapter.java:342)
	at org.jacoco.agent.rt.internal_14f7ee5.asm.commons.AnalyzerAdapter.

Unit test coverage change
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.
org.pentaho.di.job.entries.evalfilesmetrics.JobEntryEvalFilesMetrics

Branch Change: -.39%:small_red_triangle_down:
Complexity Change: -.51%:small_red_triangle_down:
Instruction Change: -.08%:small_red_triangle_down:

org.pentaho.di.job.entries.waitforsql.JobEntryWaitForSQL

Branch Change: -.66%:small_red_triangle_down:
Complexity Change: -.93%:small_red_triangle_down:
Instruction Change: -.13%:small_red_triangle_down:

org.pentaho.di.trans.step.StepMeta

Instruction Change:  + .19%
Line Change:  + .27%

org.pentaho.di.trans.steps.checksum.CheckSumMeta

Instruction Change:  + .11%

org.pentaho.di.trans.steps.combinationlookup.CombinationLookupMeta

Instruction Change: -.04%:small_red_triangle_down:

org.pentaho.di.trans.steps.dimensionlookup.DimensionLookupMeta

Branch Change: -.31%:small_red_triangle_down:
Instruction Change: -.06%:small_red_triangle_down:
Line Change:  + .23%
Method Change:  + 1.02%

org.pentaho.di.trans.steps.groupby.GroupByMeta

Branch Change: -2.08%:small_red_triangle_down:
Complexity Change: -2.11%:small_red_triangle_down:

org.pentaho.di.trans.steps.ifnull.IfNullMeta

Branch Change:  + 2.00%
Complexity Change:  + 1.89%
Instruction Change:  + .17%

org.pentaho.di.trans.steps.ivwloader.IngresVectorwiseLoader

Branch Change: -.71%:small_red_triangle_down:
Complexity Change: -1.14%:small_red_triangle_down:
Instruction Change: -.55%:small_red_triangle_down:
Line Change: -.88%:small_red_triangle_down:

org.pentaho.di.trans.steps.ivwloader.IngresVectorwiseLoader.FifoOpener

Branch Change: -16.67%:small_red_triangle_down:
Complexity Change: -12.50%:small_red_triangle_down:
Instruction Change: -7.14%:small_red_triangle_down:
Line Change: -10.53%:small_red_triangle_down:
Method Change: -20.00%:small_red_triangle_down:

org.pentaho.di.trans.steps.memgroupby.MemoryGroupByMeta

Branch Change: -2.35%:small_red_triangle_down:
Complexity Change: -2.70%:small_red_triangle_down:

org.pentaho.di.trans.steps.replacestring.ReplaceStringMeta

Instruction Change: -.07%:small_red_triangle_down:

org.pentaho.di.trans.steps.setvalueconstant.SetValueConstantMeta

Instruction Change:  + .14%

org.pentaho.di.trans.steps.tableoutput.TableOutputMeta

Branch Change:  + .91%
Complexity Change:  + .82%

org.pentaho.di.trans.steps.textfileinput.TextFileInputMeta

Branch Change: -.53%:small_red_triangle_down:

org.pentaho.di.trans.steps.transexecutor.TransExecutor

Branch Change:  + 2.17%
Complexity Change:  + 1.83%
Instruction Change:  + .91%
Line Change:  + .75%

org.pentaho.di.trans.steps.transexecutor.TransExecutorData

Complexity Change:  + 8.70%
Instruction Change:  + 7.50%
Line Change:  + 5.71%
Method Change:  + 8.70%

org.pentaho.di.trans.steps.webservices.WebServiceMeta

Branch Change: -1.79%:small_red_triangle_down:
Complexity Change: -1.19%:small_red_triangle_down:
Instruction Change: -.07%:small_red_triangle_down:

org.pentaho.di.www.TransformationMap

Branch Change:  + 12.50%
Complexity Change:  + 9.23%
Instruction Change:  + 10.97%
Line Change:  + 11.54%

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
ant -Dtestreports.dir=bin/reports/unit-test -f engine/build.xml clean-all resolve jacoco && ant -f engine/build.xml checkstyle publish-local

Cleanup Commands
rm -r ~/.ivy2/local || echo no publish local to remove

Changed files
  engine/src/org/pentaho/di/trans/steps/transexecutor/TransExecutor.java
  engine/test-src/org/pentaho/di/trans/steps/transexecutor/TransExecutorUnitTest.java

Still Broken Tests:
org.pentaho.di.trans.steps.syslog.SyslogMessageConcurrentTest.concurrentSyslogMessageTest:
:red_circle: org.junit.runners.model.TestTimedOutException
org.junit.runners.model.TestTimedOutException: test timed out after 2000 milliseconds
	at org.jacoco.agent.rt.internal_14f7ee5.asm.ClassReader.readMethod(ClassReader.java:834)
	at org.jacoco.agent.rt.internal_14f7ee5.asm.ClassReader.accept(ClassReader.java:693)
	at org.jacoco.agent.rt.internal_14f7ee5.asm.ClassReader.accept(ClassReader.java:506)
	at org.jacoco.agent.rt.internal_14f7ee5.core.internal.instr.ProbeArrayStrategyFactory.getProbeCounter(ProbeArrayStrategyFactory.java:76)
	at org.jacoco

Unit test coverage change
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.
org.pentaho.di.core.auth.core.impl.DefaultAuthenticationConsumerFactory

Branch Change: -7.14%:small_red_triangle_down:
Complexity Change: -7.69%:small_red_triangle_down:

org.pentaho.di.job.entries.evalfilesmetrics.JobEntryEvalFilesMetrics

Branch Change:  + .39%
Complexity Change:  + .51%
Instruction Change:  + .08%

org.pentaho.di.job.entries.evaluatetablecontent.JobEntryEvalTableContent

Branch Change: -2.02%:small_red_triangle_down:
Complexity Change: -2.13%:small_red_triangle_down:
Instruction Change: -.34%:small_red_triangle_down:

org.pentaho.di.trans.step.StepMeta

Instruction Change: -.19%:small_red_triangle_down:
Line Change: -.27%:small_red_triangle_down:

org.pentaho.di.trans.steps.checksum.CheckSumMeta

Instruction Change:  + .11%

org.pentaho.di.trans.steps.combinationlookup.CombinationLookupMeta

Instruction Change: -.04%:small_red_triangle_down:

org.pentaho.di.trans.steps.constant.ConstantMeta

Instruction Change: -.10%:small_red_triangle_down:

org.pentaho.di.trans.steps.csvinput.CsvInputMeta

Instruction Change: -.05%:small_red_triangle_down:

org.pentaho.di.trans.steps.dbproc.DBProcMeta

Instruction Change: -.11%:small_red_triangle_down:

org.pentaho.di.trans.steps.groupby.GroupByMeta

Branch Change: -4.17%:small_red_triangle_down:
Complexity Change: -4.21%:small_red_triangle_down:
Instruction Change: -.14%:small_red_triangle_down:
Line Change: -.37%:small_red_triangle_down:

org.pentaho.di.trans.steps.ifnull.IfNullMeta

Branch Change:  + 2.00%
Complexity Change:  + 1.89%
Instruction Change:  + .17%

org.pentaho.di.trans.steps.insertupdate.InsertUpdateMeta

Instruction Change: -.05%:small_red_triangle_down:

org.pentaho.di.trans.steps.ldapoutput.LDAPOutputMeta

Instruction Change:  + .06%

org.pentaho.di.trans.steps.rowgenerator.RowGeneratorMeta

Instruction Change: -.08%:small_red_triangle_down:

org.pentaho.di.trans.steps.sort.SortRowsMeta

Instruction Change: -.08%:small_red_triangle_down:

org.pentaho.di.trans.steps.sortedmerge.SortedMergeMeta

Instruction Change: -.18%:small_red_triangle_down:

org.pentaho.di.trans.steps.synchronizeaftermerge.SynchronizeAfterMergeMeta

Instruction Change: -.04%:small_red_triangle_down:

org.pentaho.di.trans.steps.tableoutput.TableOutputMeta

Branch Change:  + .91%
Complexity Change:  + .82%

org.pentaho.di.trans.steps.transexecutor.TransExecutor

Branch Change:  + 2.17%
Complexity Change:  + 1.83%
Instruction Change:  + .91%
Line Change:  + .75%

org.pentaho.di.trans.steps.transexecutor.TransExecutorData

Complexity Change:  + 8.70%
Instruction Change:  + 7.50%
Line Change:  + 5.71%
Method Change:  + 8.70%

org.pentaho.di.trans.steps.uniquerows.UniqueRowsMeta

Instruction Change: -.18%:small_red_triangle_down:

org.pentaho.di.www.TransformationMap

Branch Change: -1.14%:small_red_triangle_down:
Complexity Change: -1.54%:small_red_triangle_down:


Create Smithtown High School West

Offers Intro and AP Computer Science, http://www.smithtown.k12.ny.us/

@datboisaaketh lib/domains/us/ny/k12/Smithtown: this request has an incorrect file path format, please ensure that you are familiar with     this repository rules located at the bottom of this page and change     your request accordingly. If you don't know how to change request, close it and open a new one.     If you are not able to make the pull request according the instructions, please send us an email to<EMAIL_ADDRESS>Please mention this request URL in the message.

@datboisaaketh What is the email address pattern of this school students? Is it<EMAIL_ADDRESS>If yes, what is xxx in this pattern?
Please reply.

sorry for late reply, xxx = smithtown
On Wed, May 24, 2023 at 1:25 PM Philip Torchinsky @.***>
wrote:

@datboisaaketh https://github.com/datboisaaketh What is the email
address pattern of this school students? Is it @.***? If
yes, what is xxx in this pattern?
Please reply.
—
Reply to this email directly, view it on GitHub
https://github.com/JetBrains/swot/pull/17544#issuecomment-1561661581,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALE2BHSAGWU7DNDMZA45KN3XHZACBANCNFSM6AAAAAAYFT3BWI
.
You are receiving this because you were mentioned.Message ID:
@.***>

@datboisaaketh lib/domains/us/ny/k12/Smithtown: this request has an incorrect file path format, please ensure that you are familiar with     this repository rules located at the bottom of this page and change     your request accordingly. If you don't know how to change request, close it and open a new one.     If you are not able to make the pull request according the instructions, please send us an email to<EMAIL_ADDRESS>Please mention this request URL in the message.

@datboisaaketh First stage of verification passed, official domain is smithtown.k12.ny.us as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@datboisaaketh Thank you for your patience while waiting for a review and processing your request. Pull request merged.


C-0211 is suggesting an invalid value for sysctls

Description
When running C-0211 in a workload that does not have sysctls or supplementalGroups set in their securityContext section, the scan fails with the following error:
│ Severity             : High                                                                          │
│ Control Name         : CIS-5.7.3 Apply Security Context to Your Pods and Containers                  │
│ Docs                 : https://hub.armosec.io/docs/c-0211                                            │
│ Assisted Remediation :
│                        spec.template.spec.securityContext.sysctls=1                                  │
│                        spec.template.spec.securityContext.supplementalGroups=YOUR_VALUE              │

If I try setting sysctls=1 in my security context it will fail
        * Deployment in version "v1" cannot be handled as a Deployment: json: cannot unmarshal number into Go struct field PodSecurityContext.spec.template.spec.securityContext.sysctls of type []v1.Sysctl

What is more, it is not clear to me (looking at the CIS Docker Benchmark or similar) what it is expected from us to set in the sysctls section if we don't have specific needs on that. The same with supplementalGroups, if the only group that I use is the one defined in fsGroup.  In order to bypass that I'm tempted to set the same group id inside the supplementalGroups section, but I don't see much value there.
Environment
OS: Ubuntu 22,04
Version:  3.0.3
Steps To Reproduce

Deploy a sample chart, such as bitnami/postgresql
Run 'kubescape scan control c-0211 --verbose
See error

Expected behavior
A clear solution path on how to fix the potential vulnerability reported
Actual Behavior
An incorrect value to set in my YAML that causes the deployment to fail

Additional context

Hi @javsalgar - thanks for reporting this! It's indeed a mistake in the suggestion and we'll work on fixing it.
I agree that it's not very clear what the required settings of each section in the security context should be according to the CIS benchmark. We tried to give suggestions where possible but like you mentioned, it depends very much on the needs of each specific workload. That's why in this case (and in most cases where we supply assisted remediation) - I would suggest to always preform a manual review of the suggestions before applying them to make sure they address your needs and use exceptions where you think your yaml is configured correctly.


Add realtime envelope and associated wiring

@zyro Looks great 👍 I've merged it as aa5e46821422fb36a88a26281c9a5f41aeef1c31.


llvmPackages_13.libcxxStdenv has wrong header search paths

Describe the bug
When using llvmPackages_13.libcxxStdenv to compile program, clang reports no member named 'abort' in namespace 'std'.
Comparing search paths with llvm12, llvm13 has 3 additional paths.
 /nix/store/h6d0c7lnxx65i925xmnxgwdfdvc7hc2p-gcc-10.3.0/lib64/gcc/x86_64-unknown-linux-gnu/10.3.0/../../../../include/c++/10.3.0
 /nix/store/h6d0c7lnxx65i925xmnxgwdfdvc7hc2p-gcc-10.3.0/lib64/gcc/x86_64-unknown-linux-gnu/10.3.0/../../../../include/c++/10.3.0/x86_64-unknown-linux-gnu
 /nix/store/h6d0c7lnxx65i925xmnxgwdfdvc7hc2p-gcc-10.3.0/lib64/gcc/x86_64-unknown-linux-gnu/10.3.0/../../../../include/c++/10.3.0/backward

Steps To Reproduce
Steps to reproduce the behavior:
$ clang++ -c test.cpp
#include <cstdlib>

int main() {
    std::abort();
    return 0;
}

Expected behavior
clang reports no error.
Notify maintainers
@lovek323 @raskin @dtzWill @primeos
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 5.10.87, NixOS, 22.05 (Quokka)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.6.0pre20211217_6e6e998`
 - channels(root): `"home-manager, nixos, sops-nix"`
 - channels(user): `""`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute:
# a list of nixos modules affected by the problem
module:

It seems the problem is https://github.com/llvm/llvm-project/blob/d7b669b3a30345cfcdb2fde2af6f48aa4b94845d/clang/lib/Driver/ToolChains/Gnu.cpp#L2885-L2886 is not replaced with true since the pattern is different https://github.com/NixOS/nixpkgs/blob/eecf51e6072bf4dfbd774fc7beb9951b0e9c611d/pkgs/development/compilers/llvm/13/clang/default.nix#L49-L51


docs(samples): add runReport samples with date ranges

I'd like to mere #206 before merging these samples. Thanks!