Mount Objects/Sync Secrets By Regex Pattern From Key Vault

Describe the solution you'd like
[A clear and concise description of what you want to happen.]
Mount objects from Key Vault following a regex pattern. Could not find an existing way to do this.
Also can't find anyone asking this but it will be a useful feature if we can add Secrets using the regex pattern as well.
Is there a way to mount secrets, keys, certificate by specifying wildcards in the SecretProviderClass instead. It will help in case we need to mount many secrets from the Key Vault but all(secrets,keys,certs) follow a specific pattern eg:- frontend-msvc-* , backend-msvc-* etc. It will mount everything with that pattern in the volume from Key Vault.
Secrets by Regex Pattern
secretObjects:

secretName: frontend-msvc-*
type: kubernetes.io/tls
data:

objectName: frontend-msvc-*
key: tls.key
objectName: frontend-msvc-*
key: tls.crt

Objects by Regex Pattern
objects:  |
  array:
    - |
      objectName: frontend-msvc-*
      objectAlias: frontend-msvc-*
      objectType: secret
      objectVersion: ""

Azure App Configuration Supports something similar by loading Secrets from KeyVault, Configuration from App Configuration following a greedy mode.
https://docs.microsoft.com/en-us/aspnet/config-builder#mode
Would love to hear thoughts on this?
Environment:

Secrets Store CSI Driver version: (use the image tag):mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.0.1
Azure Key Vault provider version: (use the image tag):mcr.microsoft.com/oss/azure/secrets-store/provider-azure:0.0.10
Kubernetes version: (use kubectl version): 1.19.X
Cluster type: (e.g. AKS, aks-engine, etc): AKS

@rkapoor028 Thank you for opening the issue. This issue was initially created to get user consensus on this requirement: https://github.com/Azure/secrets-store-csi-driver-provider-azure/issues/61.

Adding this feature would mean the service principal/managed identity used for auth would require list access for secrets/keys/certificates in key vault. Today, we only require get permissions.
The regex if supported will only be for fetching the objects from key vault and writing it to the mount. For secretObjects to sync as K8s secrets it'll still require individual object names. A single k8s secret data field can't hold multiple values combined and the name being non deterministic is probably not a good approach.

@rkapoor028 Thank you for opening the issue. This issue was initially created to get user consensus on this requirement: https://github.com/Azure/secrets-store-csi-driver-provider-azure/issues/61.

Adding this feature would mean the service principal/managed identity used for auth would require list access for secrets/keys/certificates in key vault. Today, we only require get permissions.
The regex if supported will only be for fetching the objects from key vault and writing it to the mount. For secretObjects to sync as K8s secrets it'll still require individual object names. A single k8s secret data field can't hold multiple values combined and the name being non deterministic is probably not a good approach.

@aramase This would really  be very useful, instead of defining repetitive objects bloating the SecretProviderClass file we can just match objects from KeyVault via a certain pattern.
For 2) Another approach can be that we define the name of the k8s secrectObject(msvc-frontend-secrets) that will be created/synced, and  specify a pattern(msvc-frontend-*) based on which the Objects will be matched and loaded from the Keyvault as a Key/Value pair inside the secret. Keys inside the secretObject(msvc-frontend-secrets) can be set as the exact object name(msvc-frontend-secret1) in Keyvault so its pre-determined what the name of the key will be. For example
`
spec:
provider: azure
secretObjects:

secretName: msvc-frontend-secrets
data:
objectName: msvc-frontend-*
objectType: Regex
type: Opaque
`

Would sync the secret as below:-
kind: Secret apiVersion: v1 metadata:   name: msvc-frontend-secrets   labels:     secrets-store.csi.k8s.io/managed: 'true' data:   msvc-frontend-secret1: XXXXXXXXXXXXXXX   msvc-frontend-secret2: XXXXXXXXXXXXXX   msvc-frontend-secret3: XXXXXXXXXXXXXX type: Opaque
Not sure, how much feasible it is.

@aramase This would really  be very useful, instead of defining repetitive objects bloating the SecretProviderClass file we can just match objects from KeyVault via a certain pattern.
For 2) Another approach can be that we define the name of the k8s secrectObject(msvc-frontend-secrets) that will be created/synced, and  specify a pattern(msvc-frontend-*) based on which the Objects will be matched and loaded from the Keyvault as a Key/Value pair inside the secret. Keys inside the secretObject(msvc-frontend-secrets) can be set as the exact object name(msvc-frontend-secret1) in Keyvault so its pre-determined what the name of the key will be. For example
`
spec:
provider: azure
secretObjects:

secretName: msvc-frontend-secrets
data:
objectName: msvc-frontend-*
objectType: Regex
type: Opaque
`

Would sync the secret as below:-
kind: Secret apiVersion: v1 metadata:   name: msvc-frontend-secrets   labels:     secrets-store.csi.k8s.io/managed: 'true' data:   msvc-frontend-secret1: XXXXXXXXXXXXXXX   msvc-frontend-secret2: XXXXXXXXXXXXXX   msvc-frontend-secret3: XXXXXXXXXXXXXX type: Opaque
Not sure, how much feasible it is.

For 2) Another approach can be that we define the name of the k8s secrectObject(msvc-frontend-secrets) that will be created/synced, and specify a pattern(msvc-frontend-*) based on which the Objects will be matched and loaded from the Keyvault as a Key/Value pair inside the secret. Keys inside the secretObject(msvc-frontend-secrets) can be set as the exact object name(msvc-frontend-secret1) in Keyvault so its pre-determined what the name of the key will be. For example

@rkapoor028 How are you consuming the content from Kubernetes secrets? Are you using the Kubernetes secret to configure as environment variables or actually reading the Kubernetes secret? I'm curious because if you use regex for secret data names, then the data keys aren't deterministic unless they're hardcoded in the yaml manifests for the env var/in the code.

For 2) Another approach can be that we define the name of the k8s secrectObject(msvc-frontend-secrets) that will be created/synced, and specify a pattern(msvc-frontend-*) based on which the Objects will be matched and loaded from the Keyvault as a Key/Value pair inside the secret. Keys inside the secretObject(msvc-frontend-secrets) can be set as the exact object name(msvc-frontend-secret1) in Keyvault so its pre-determined what the name of the key will be. For example

@rkapoor028 How are you consuming the content from Kubernetes secrets? Are you using the Kubernetes secret to configure as environment variables or actually reading the Kubernetes secret? I'm curious because if you use regex for secret data names, then the data keys aren't deterministic unless they're hardcoded in the yaml manifests for the env var/in the code.

Yes, so in above approach, the secret data keys are the AKV secrets(msvc-frontend-secret1,msvc-frontend-secret2,msvc-frontend-secret3 so on..). We are referring those AKV secret name by the same name in the Deployment Yaml Manifests as the secret data key name(key: msvc-frontend-secret1, key: msvc-frontend-secret2, key: msvc-frontend-secret3 and so on...).
          env:
          - name: BlobTableConnectionString1
            valueFrom:
              secretKeyRef:
                name: msvc-frontend-secrets
                key: msvc-frontend-secret1
          - name: BlobTableConnectionString2
            valueFrom:
              secretKeyRef:
                name: msvc-frontend-secrets
                key: msvc-frontend-secret2
          - name: BlobTableConnectionString3
            valueFrom:
              secretKeyRef:
                name: msvc-frontend-secrets
                key: msvc-frontend-secret3

So they are deterministic in the above approach. So the env variables BlobTableConnectionString1, BlobTableConnectionString2, BlobTableConnectionString3 etc. is what the app is expecting to be present and we are loading their values from k8s secret's appropriate data key.

Yes, so in above approach, the secret data keys are the AKV secrets(msvc-frontend-secret1,msvc-frontend-secret2,msvc-frontend-secret3 so on..). We are referring those AKV secret name by the same name in the Deployment Yaml Manifests as the secret data key name(key: msvc-frontend-secret1, key: msvc-frontend-secret2, key: msvc-frontend-secret3 and so on...).
          env:
          - name: BlobTableConnectionString1
            valueFrom:
              secretKeyRef:
                name: msvc-frontend-secrets
                key: msvc-frontend-secret1
          - name: BlobTableConnectionString2
            valueFrom:
              secretKeyRef:
                name: msvc-frontend-secrets
                key: msvc-frontend-secret2
          - name: BlobTableConnectionString3
            valueFrom:
              secretKeyRef:
                name: msvc-frontend-secrets
                key: msvc-frontend-secret3

So they are deterministic in the above approach. So the env variables BlobTableConnectionString1, BlobTableConnectionString2, BlobTableConnectionString3 etc. is what the app is expecting to be present and we are loading their values from k8s secret's appropriate data key.

This also might allow the drive to load all of the matching items via a single call to the provider where as today it has to perform a separate API call to get the value of each secret. Loading them one by one seems to be very resource intensive, where as the load used by the Configuration class Key vault extension loads them all in a few milliseconds.

This also might allow the drive to load all of the matching items via a single call to the provider where as today it has to perform a separate API call to get the value of each secret. Loading them one by one seems to be very resource intensive, where as the load used by the Configuration class Key vault extension loads them all in a few milliseconds.

@trhumphries AFAIK the list API in keyvault only providers the metadata about the secrets/certs/keys. It doesn't return the actual secret value. To get the secret value it has to be a GET call on the individual secret. With regex, the provider would still need to list all secrets, perform client side filtering to find secrets that match regex and make a GET call for each secret.

Well the AddAzureKeyVault extension to the Microsoft.Extensions.Configuration loads all of the secrets from a Key Vault several times faster than the CSI Driver does.


Failed to bind to address http://localhost:2000 An attempt was made to access a socket in a way forbidden by its access permissions

I'm unable to build master as some test fails with: Failed to bind to address http://localhost:2000 An attempt was made to access a socket in a way forbidden by its access permissions
I've tried running as Administrator, and netstat.exe -a -b | grep ':2000' doesn't return any results.
C:\Users\ME\code\omnisharp-roslyn>"C:\Users\ME\code\omnisharp-roslyn\artifacts\publish\OmniSharp.Http.Driver\win7-x64\OmniSharp.exe" -s C:/Users/ME/code/omnisharp-roslyn\src\OmniSharp.Http.Driver
info: OmniSharp.Services.DotNetCliService[0]
      DotNetPath set to dotnet
info: OmniSharp.MSBuild.Discovery.MSBuildLocator[0]
      Located 5 MSBuild instance(s)
                  1: Visual Studio Professional 2019 16.0.28803.352 - "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin"
                  2: Visual Studio Build Tools 2017 15.9.28307.557 - "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin"
                  3: Visual Studio Professional 2017 15.9.28307.586 - "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin"
                  4: Visual Studio Enterprise 2019 16.0.28729.10 - "C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Current\Bin"
                  5: StandAlone 15.0 - "C:\Users\ME\code\omnisharp-roslyn\artifacts\publish\OmniSharp.Http.Driver\win7-x64\.msbuild\Current\Bin"
info: OmniSharp.MSBuild.Discovery.MSBuildLocator[0]
      Registered MSBuild instance: Visual Studio Professional 2019 16.0.28803.352 - "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin"
info: OmniSharp.Http.Startup[0]
      Starting OmniSharp on Windows 6.2.9200.0 (x64)
info: OmniSharp.Cake.CakeProjectSystem[0]
      Detecting Cake files in 'C:/Users/ME/code/omnisharp-roslyn\src\OmniSharp.Http.Driver'.
info: OmniSharp.Cake.CakeProjectSystem[0]
      Could not find any Cake files
info: OmniSharp.WorkspaceInitializer[0]
      Project system 'OmniSharp.DotNet.DotNetProjectSystem' is disabled in the configuration.
info: OmniSharp.MSBuild.ProjectSystem[0]
      No solution files found in 'C:/Users/ME/code/omnisharp-roslyn\src\OmniSharp.Http.Driver'
info: OmniSharp.MSBuild.ProjectManager[0]
      Queue project update for 'C:\Users\ME\code\omnisharp-roslyn\src\OmniSharp.Http.Driver\OmniSharp.Http.Driver.csproj'
info: OmniSharp.Script.ScriptProjectSystem[0]
      Detecting CSX files in 'C:/Users/ME/code/omnisharp-roslyn\src\OmniSharp.Http.Driver'.
info: OmniSharp.Script.ScriptProjectSystem[0]
      Could not find any CSX files
info: OmniSharp.WorkspaceInitializer[0]
      Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.CSharpWorkspaceOptionsProvider
info: OmniSharp.MSBuild.ProjectManager[0]
      Loading project: C:\Users\ME\code\omnisharp-roslyn\src\OmniSharp.Http.Driver\OmniSharp.Http.Driver.csproj
info: OmniSharp.WorkspaceInitializer[0]
      Configuration finished.
info: OmniSharp.Http.Startup[0]
      Omnisharp server running on port '2000' at location 'C:/Users/ME/code/omnisharp-roslyn\src\OmniSharp.Http.Driver' on host -1.
System.IO.IOException: Failed to bind to address http://localhost:2000. ---> System.AggregateException: One or more errors occurred. ---> System.Net.Sockets.SocketException: An attempt was made to access a socket in a way forbidden by its access permissions
   at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
   at System.Net.Sockets.Socket.Bind(EndPoint localEP)
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransport.BindAsync()
   at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServer.<>c__DisplayClass22_0`1.<<StartAsync>g__OnBind|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.<BindEndpointAsync>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Server.Kestrel.Core.LocalhostListenOptions.<BindAsync>d__2.MoveNext()
   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---
   at Microsoft.AspNetCore.Server.Kestrel.Core.LocalhostListenOptions.<BindAsync>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.AddressesStrategy.<BindAsync>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.<BindAsync>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServer.<StartAsync>d__22`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Hosting.Internal.WebHost.<StartAsync>d__26.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Hosting.Internal.WebHost.Start()
   at OmniSharp.Http.Host.Start() in C:\Users\ME\code\omnisharp-roslyn\src\OmniSharp.Http\Host.cs:line 57
   at OmniSharp.Http.Driver.Program.<>c__DisplayClass0_1.<Main>b__1() in C:\Users\ME\code\omnisharp-roslyn\src\OmniSharp.Http.Driver\Program.cs:line 20
   at OmniSharp.CommandLineApplication.<>c__DisplayClass11_0.<OnExecute>b__0() in C:\Users\ME\code\omnisharp-roslyn\src\OmniSharp.Host\CommandLineApplication.cs:line 61
   at OmniSharp.CommandLineApplication.Execute(IEnumerable`1 args) in C:\Users\ME\code\omnisharp-roslyn\src\OmniSharp.Host\CommandLineApplication.cs:line 44
   at OmniSharp.Http.Driver.Program.<>c__DisplayClass0_0.<Main>b__0() in C:\Users\ME\code\omnisharp-roslyn\src\OmniSharp.Http.Driver\Program.cs:line 25
   at OmniSharp.HostHelpers.Start(Func`1 action) in C:\Users\ME\code\omnisharp-roslyn\src\OmniSharp.Host\HostHelpers.cs:line 29
An error occurred when executing task 'ExecuteRunScript'.

----------------------------------------
Teardown
----------------------------------------
Shutting down MSBuild server...
Shutting down VB/C# compiler server...
MSBuild server shut down successfully.
VB/C# compiler server shut down successfully.
Error: One or more errors occurred.
        Failed to run C:/Users/ME/code/omnisharp-roslyn\artifacts\scripts\OmniSharp.Http.cmd

Does all HTTP test fails, or is it random? I was wondering if the port is left open hanging for some time when proceeding to next test (see https://github.com/aspnet/KestrelHttpServer/issues/2277#issuecomment-366317570).
You can also skip HTTP tests in your build by removing the following line:
https://github.com/OmniSharp/omnisharp-roslyn/blob/d642aefc947dfaae7cdeac4c98346897200134d8/build.json#L23
Also, if you want a quick build (without any tests) just for getting artifacts, you can run:
.\build.ps1 -Target Quick

Does all HTTP test fails, or is it random?

Not sure. Tried running it again, but I cannot see any difference in the output, but I cannot see any indication of work being done at all, så I'm not sure it's the same place or not.


Update dependency OpenAPITools/openapi-generator to v6.6.0

This PR contains the following updates:

Package
Update
Change

OpenAPITools/openapi-generator
minor
v6.5.0 -> v6.6.0

Release Notes

OpenAPITools/openapi-generator (OpenAPITools/openapi-generator)
v6.6.0
Compare Source
v6.6.0 release comes with bug fixes, enhancements and 2 new generators:
New Generators:

Support language N4JS (New generator) #15397
Add Xojo client generator #15194

There are 2 breaking change with fallback:

[csharp-netcore] Explicitly implement IValidatableObject #15160
[python-nextgen] Add support for union of StrictFloat and StrictInt #15124

For the highlight of changes, please refer to the list below. For a full list of changes, please refer to the "Pull Request" tab.
General

[openapi-normalizer] Fix nullable boolean check in oneOf schema #15276

C#

[csharp-netcore] Better handling of oneOf/anyOf with duplicated data type #15377

C++

Fix request parameter encode call #15313
[C++][Pistache] Generate API generalization interface #15279
[cpp-ue4] Fix multi collection format has duplicated prefix #15260

Dart

[dart-dio] fix endpoints returning null #15433
Drop default value when unnecessary #15368

Elm

[Elm] Fix printing empty notes #15238
[Elm] Fix List of type missing required import(s) #15171

Go

[go-server] Fix: name declared and not used #15201
[go-server] Update dependencies and use generics #15087
[go-server] Change Routes type from []Route to map[string]Route #15084

Java

[BUG][JAVA][restTemplate] ApiClient is not compatible with spring-web 6 Observation API #15421
[java][resttemplate] Add property for config removal of @Component from ApiClient and Api classes #15416
[Spring] fix Paginated without params (fix #15265) #15315
[java][Jersey2/3] Probe content type for multipart upload parts #14965

Kotlin

[kotlin][client] Use Kotlin code style in parameter enum class names #15447
[Kotlin-Spring] add Kotlin based Spring Cloud OpenFeign generator #15048

N4JS

Support language N4JS (New generator) #15397

PHP

[php-nextgen] Add @generated tag to DocBlocks #15106
[php-nextgen] Rename folders to follow PDS skeleton #15102

Python

[python-nextgen] support constructor with position argument in oneOf/anyOf model #15434
[python-nextgen] Add ApiResponse object #15367
Mark python-nextgen client generator as stable #15360

Ruby

[Ruby] fix RSpec documentation URL #15164
[Ruby] Client: fix base_url when no server_operation_index is defined #15162

Swift

Using @objcMembers to expose all properties and functions to ObjC #15188

Xojo

Add Xojo client generator #15194

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Updated to v7

Renovate Ignore Notification
Because you closed this PR without merging, Renovate will ignore this update (v6.6.0). You will get a PR once a newer version is released. To ignore this dependency forever, add it to the ignoreDeps array of your Renovate config.
If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.

Since update to v7 didn't go though, this update can be done


Test under Laravel 4 and Laravel 5

Find some way to test package installation and run tests under both environments.

Done @ d46aef82c9c99840766d693249f68022bc751162.


Speed up checkout by fetching minimal data from remote and lazily loading it later

One of my big annoyances with the extension is how long it takes to checkout a branch, particularly on the first time checking this out. It's also even worse on Windows as git seems to be a little slower (due to FS?). This problem is also much worth with larger repos due to the size of the history, branch/tag count, etc.
I'm proposing that when a PR is checked out for the first time we fetch just the branch (r branch) and no history (--depth=1), something like this:
git remote add r
git fetch --depth 1 r branch
git checkout remote_branch

The history and rest of branches can then be lazily fetched later with this:
git fetch --unshallow r

Based on my testing this should provide a very significant speed up:
Normal fetch and checkout:
powershell -Command "Measure-Command {git remote add r https://github.com/Tyriar/xterm.js; git fetch r}"
...
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 2
Milliseconds      : 935
Ticks             : 29353111
TotalDays         : 3.39735081018518E-05
TotalHours        : 0.000815364194444444
TotalMinutes      : 0.0489218516666667
TotalSeconds      : 2.9353111
TotalMilliseconds : 2935.3111

Fetch remote branch only with no history:
powershell -Command "Measure-Command {git remote add r https://github.com/Tyriar/xterm.js; git fetch --depth 1 r 1747_npe}"
...
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 1
Milliseconds      : 149
Ticks             : 11490152
TotalDays         : 1.3298787037037E-05
TotalHours        : 0.000319170888888889
TotalMinutes      : 0.0191502533333333
TotalSeconds      : 1.1490152
TotalMilliseconds : 1149.0152

The change is even more significant for larger repos, 1733ms vs 6485ms for checkout out a branch on Microsoft/vscode:

Normal fetch and checkout:
C:\Users\daimms.REDMOND\Documents\playground\vscode>powershell -Command "Measure-Command {git remote add r https://github.com/Microsoft/vscode; git fetch r; git checkout -b test r/tyriar/electron-3.0.x-conpty}"
From https://github.com/Microsoft/vscode
 * [new branch]            1.11                       -> r/1.11
 * [new branch]            aeschli/bundled-app-insights -> r/aeschli/bundled-app-insights
 * [new branch]            aeschli/json-tests         -> r/aeschli/json-tests
 * [new branch]            aeschli/tokenizersupport-initialization -> r/aeschli/tokenizersupport-initialization
 * [new branch]            alex/binary-rpc            -> r/alex/binary-rpc
 * [new branch]            alex/snapshot2             -> r/alex/snapshot2
 * [new branch]            alexr00/TaskExitNotFiring  -> r/alexr00/TaskExitNotFiring
 * [new branch]            alexr00/addNpmScriptTooltip -> r/alexr00/addNpmScriptTooltip
 * [new branch]            alexr00/fixWorkspaceRootSplit -> r/alexr00/fixWorkspaceRootSplit
 * [new branch]            alexr00/rerunTask          -> r/alexr00/rerunTask
 * [new branch]            alexr00/revealSilent       -> r/alexr00/revealSilent
 * [new branch]            avoid-fssync               -> r/avoid-fssync
 * [new branch]            build-using-ts-3.0         -> r/build-using-ts-3.0
 * [new branch]            chines-locale              -> r/chines-locale
 * [new branch]            chrmarti/51986             -> r/chrmarti/51986
 * [new branch]            chrmarti/57850             -> r/chrmarti/57850
 * [new branch]            chrmarti/59343             -> r/chrmarti/59343
 * [new branch]            chrmarti/60243             -> r/chrmarti/60243
 * [new branch]            chrmarti/cloudshellts      -> r/chrmarti/cloudshellts
 * [new branch]            chrmarti/embeddedEditorBackground -> r/chrmarti/embeddedEditorBackground
 * [new branch]            chrmarti/quickinputapi     -> r/chrmarti/quickinputapi
 * [new branch]            chrmarti/quickinputapioptions -> r/chrmarti/quickinputapioptions
 * [new branch]            chrmarti/quickinputapiwip  -> r/chrmarti/quickinputapiwip
 * [new branch]            core-lang                  -> r/core-lang
 * [new branch]            css-json-shrinkwrap        -> r/css-json-shrinkwrap
 * [new branch]            danyeh/languageIDfix       -> r/danyeh/languageIDfix
 * [new branch]            dbaeumer/47386             -> r/dbaeumer/47386
 * [new branch]            dbaeumer/48032             -> r/dbaeumer/48032
 * [new branch]            dbaeumer/50588             -> r/dbaeumer/50588
 * [new branch]            dbaeumer/50799             -> r/dbaeumer/50799
 * [new branch]            dbaeumer/54111             -> r/dbaeumer/54111
 * [new branch]            dbaeumer/57148             -> r/dbaeumer/57148
 * [new branch]            dockfind                   -> r/dockfind
 * [new branch]            electron-3.0.x             -> r/electron-3.0.x
 * [new branch]            err-telemetry              -> r/err-telemetry
 * [new branch]            error                      -> r/error
 * [new branch]            file-ext-tag-telemetry     -> r/file-ext-tag-telemetry
 * [new branch]            fix-indent                 -> r/fix-indent
 * [new branch]            for-christof               -> r/for-christof
 * [new branch]            hackathon/profile          -> r/hackathon/profile
 * [new branch]            implementation-progress    -> r/implementation-progress
 * [new branch]            isidorn/buildTest          -> r/isidorn/buildTest
 * [new branch]            isidorn/debugLogging       -> r/isidorn/debugLogging
 * [new branch]            isidorn/lazyFormatter      -> r/isidorn/lazyFormatter
 * [new branch]            isidorn/loadedScriptSchedulers -> r/isidorn/loadedScriptSchedulers
 * [new branch]            isidorn/normalizePaths     -> r/isidorn/normalizePaths
 * [new branch]            isidorn/resourceTrimTrailingSlash -> r/isidorn/resourceTrimTrailingSlash
 * [new branch]            isidorn/taskActiveEvent    -> r/isidorn/taskActiveEvent
 * [new branch]            joao/build                 -> r/joao/build
 * [new branch]            joao/clean-deps            -> r/joao/clean-deps
 * [new branch]            joao/compile-es6           -> r/joao/compile-es6
 * [new branch]            joao/darwin-executable-name -> r/joao/darwin-executable-name
 * [new branch]            joao/data-tree-model       -> r/joao/data-tree-model
 * [new branch]            joao/git-api               -> r/joao/git-api
 * [new branch]            joao/inno-signtool         -> r/joao/inno-signtool
 * [new branch]            joao/ipc-cancellation      -> r/joao/ipc-cancellation
 * [new branch]            joao/ipc-rpc               -> r/joao/ipc-rpc
 * [new branch]            joao/linux-integration-tests -> r/joao/linux-integration-tests
 * [new branch]            joao/log-path              -> r/joao/log-path
 * [new branch]            joao/next                  -> r/joao/next
 * [new branch]            joao/tree                  -> r/joao/tree
 * [new branch]            joao/tree-filter           -> r/joao/tree-filter
 * [new branch]            joao/uninstaller           -> r/joao/uninstaller
 * [new branch]            joao/wip-tree              -> r/joao/wip-tree
 * [new branch]            joaomoreno-patch-1         -> r/joaomoreno-patch-1
 * [new branch]            joh/fix59538               -> r/joh/fix59538
 * [new branch]            joh/log-appender           -> r/joh/log-appender
 * [new branch]            joh/next                   -> r/joh/next
 * [new branch]            joh/perf-canary            -> r/joh/perf-canary
 * [new branch]            joh/search-cancel          -> r/joh/search-cancel
 * [new branch]            joh/webpack-json           -> r/joh/webpack-json
 * [new branch]            kieferrm/errortel          -> r/kieferrm/errortel
 * [new branch]            kieferrm/mainDebug         -> r/kieferrm/mainDebug
 * [new branch]            loc/1.24.0                 -> r/loc/1.24.0
 * [new branch]            master                     -> r/master
 * [new branch]            misolori/a11y-themes       -> r/misolori/a11y-themes
 * [new branch]            misolori/activity-bar-update -> r/misolori/activity-bar-update
 * [new branch]            misolori/light-theme-icons -> r/misolori/light-theme-icons
 * [new branch]            misolori/light-theme-icons-selection-dont-work -> r/misolori/light-theme-icons-selection-dont-work
 * [new branch]            misolori/welcome-screen-keys -> r/misolori/welcome-screen-keys
 * [new branch]            mjbvz/remove-std-fork      -> r/mjbvz/remove-std-fork
 * [new branch]            mjbvz/trigger-context      -> r/mjbvz/trigger-context
 * [new branch]            octref/58555               -> r/octref/58555
 * [new branch]            optout-locale              -> r/optout-locale
 * [new branch]            php-html-enter-rules       -> r/php-html-enter-rules
 * [new branch]            prompt-lang-pack           -> r/prompt-lang-pack
 * [new branch]            ramyar/copy-suggest-docs   -> r/ramyar/copy-suggest-docs
 * [new branch]            ramyar/reload              -> r/ramyar/reload
 * [new branch]            ramyar/suggest-no-icons    -> r/ramyar/suggest-no-icons
 * [new branch]            rebornix/ESM               -> r/rebornix/ESM
 * [new branch]            rebornix/FastTokenization  -> r/rebornix/FastTokenization
 * [new branch]            rebornix/nativeWordOperation -> r/rebornix/nativeWordOperation
 * [new branch]            rebornix/review            -> r/rebornix/review
 * [new branch]            release/1.14               -> r/release/1.14
 * [new branch]            release/1.15               -> r/release/1.15
 * [new branch]            release/1.16               -> r/release/1.16
 * [new branch]            release/1.17               -> r/release/1.17
 * [new branch]            release/1.18               -> r/release/1.18
 * [new branch]            release/1.19               -> r/release/1.19
 * [new branch]            release/1.20               -> r/release/1.20
 * [new branch]            release/1.21               -> r/release/1.21
 * [new branch]            release/1.22               -> r/release/1.22
 * [new branch]            release/1.23               -> r/release/1.23
 * [new branch]            release/1.24               -> r/release/1.24
 * [new branch]            release/1.25               -> r/release/1.25
 * [new branch]            release/1.26               -> r/release/1.26
 * [new branch]            release/1.27               -> r/release/1.27
 * [new branch]            release/1.28               -> r/release/1.28
 * [new branch]            reuse-focuseditem          -> r/reuse-focuseditem
 * [new branch]            revert-52782-electron-2.0.x -> r/revert-52782-electron-2.0.x
 * [new branch]            revert-54854-revert-52782-electron-2.0.x -> r/revert-54854-revert-52782-electron-2.0.x
 * [new branch]            rmacfarlane/delete-comments -> r/rmacfarlane/delete-comments
 * [new branch]            rmacfarlane/unsupported    -> r/rmacfarlane/unsupported
 * [new branch]            roblou/34711               -> r/roblou/34711
 * [new branch]            roblou/49039               -> r/roblou/49039
 * [new branch]            roblou/55649               -> r/roblou/55649
 * [new branch]            roblou/cachedSearchProvider -> r/roblou/cachedSearchProvider
 * [new branch]            roblou/caseInsensitiveGlobs -> r/roblou/caseInsensitiveGlobs
 * [new branch]            roblou/ehSearch            -> r/roblou/ehSearch
 * [new branch]            roblou/fileSearchChanges   -> r/roblou/fileSearchChanges
 * [new branch]            roblou/fileTextSearchSep   -> r/roblou/fileTextSearchSep
 * [new branch]            roblou/findFilesUri        -> r/roblou/findFilesUri
 * [new branch]            roblou/promoteExtLogAPI    -> r/roblou/promoteExtLogAPI
 * [new branch]            roblou/searchAPIchanges    -> r/roblou/searchAPIchanges
 * [new branch]            roblou/settingsEditorAsTree -> r/roblou/settingsEditorAsTree
 * [new branch]            roblou/settingsSearchIdChanges -> r/roblou/settingsSearchIdChanges
 * [new branch]            sandy081/54315             -> r/sandy081/54315
 * [new branch]            sandy081/54746             -> r/sandy081/54746
 * [new branch]            sandy081/55879             -> r/sandy081/55879
 * [new branch]            sandy081/59603             -> r/sandy081/59603
 * [new branch]            sandy081/openUri           -> r/sandy081/openUri
 * [new branch]            sandy081/treeItemDecorations -> r/sandy081/treeItemDecorations
 * [new branch]            settings-contrib           -> r/settings-contrib
 * [new branch]            settings-polish            -> r/settings-polish
 * [new branch]            show-english               -> r/show-english
 * [new branch]            standalone/0.1.1           -> r/standalone/0.1.1
 * [new branch]            standalone/0.1.x           -> r/standalone/0.1.x
 * [new branch]            standalone/0.10.x          -> r/standalone/0.10.x
 * [new branch]            standalone/0.11.x          -> r/standalone/0.11.x
 * [new branch]            standalone/0.12.x          -> r/standalone/0.12.x
 * [new branch]            standalone/0.13.x          -> r/standalone/0.13.x
 * [new branch]            standalone/0.14.x          -> r/standalone/0.14.x
 * [new branch]            standalone/0.15.x          -> r/standalone/0.15.x
 * [new branch]            standalone/0.6.x           -> r/standalone/0.6.x
 * [new branch]            standalone/0.7.x           -> r/standalone/0.7.x
 * [new branch]            standalone/0.8.x           -> r/standalone/0.8.x
 * [new branch]            triggerExpansionOnTab      -> r/triggerExpansionOnTab
 * [new branch]            tsalinger/multipath-handling-quoted-backslash-in-linux -> r/tsalinger/multipath-handling-quoted-backslash-in-linux
 * [new branch]            tsalinger/multipath-reveal-children -> r/tsalinger/multipath-reveal-children
 * [new branch]            tyriar/54093_buffering     -> r/tyriar/54093_buffering
 * [new branch]            tyriar/dom_render          -> r/tyriar/dom_render
 * [new branch]            tyriar/electron-1.8.2      -> r/tyriar/electron-1.8.2
 * [new branch]            tyriar/electron-3.0.x-conpty -> r/tyriar/electron-3.0.x-conpty
 * [new branch]            tyriar/snap                -> r/tyriar/snap
 * [new branch]            tyriar/term_ligatures      -> r/tyriar/term_ligatures
 * [new branch]            tyriar/term_ligatures2     -> r/tyriar/term_ligatures2
 * [new branch]            tyriar/term_tele           -> r/tyriar/term_tele
 * [new branch]            umd                        -> r/umd
 * [new branch]            update-event               -> r/update-event
Switched to a new branch 'test'

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 6
Milliseconds      : 485
Ticks             : 64858838
TotalDays         : 7.5068099537037E-05
TotalHours        : 0.00180163438888889
TotalMinutes      : 0.108098063333333
TotalSeconds      : 6.4858838
TotalMilliseconds : 6485.8838

Fetch remote branch only with no history:
C:\Users\daimms.REDMOND\Documents\playground\vscode>powershell -Command "Measure-Command {git remote add r https://github.com/Microsoft/vscode; git fetch --depth 1 r tyriar/electron-3.0.x-conpty}"
remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
From https://github.com/Microsoft/vscode
 * branch                  tyriar/electron-3.0.x-conpty -> FETCH_HEAD
 * [new branch]            tyriar/electron-3.0.x-conpty -> r/tyriar/electron-3.0.x-conpty

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 1
Milliseconds      : 733
Ticks             : 17337568
TotalDays         : 2.00666296296296E-05
TotalHours        : 0.000481599111111111
TotalMinutes      : 0.0288959466666667
TotalSeconds      : 1.7337568
TotalMilliseconds : 1733.7568

We added some log data for checkout process. This morning I see a huge lag when checkout to a branch, the information is not enough yet, I'm going to add more later but it already shows some good info
[Debug 956677s 804ms] Review> there is already one local branch usernamehw/pr/usernamehw/59193 associated with Pull Request #59193
[Debug 956721s 810ms] Found GitHub remote
[Debug 956723s 749ms] GitHelper> associate pr/usernamehw/59193 with Pull Request #59193
[Debug 956725s 892ms] Found GitHub remote
[Debug 956726s 416ms] Review> current branch pr/usernamehw/59193 is associated with pull request #59193
[Debug 956727s 783ms] Review> register comments provider
[Debug 956727s 784ms] Review> display pull request status bar indicator and refresh pull request tree view.
[Debug 956727s 814ms] Found GitHub remote

44 seconds between the first and second log ;(

Fetching the branch without history is fast and we can probably fetch the history in background later but the catch here is the diff view relies on mergebase to display a correct content diff, to get a correct mergebase we need to fetch the whole history of the target branch and the pr branch. So the blocker here is #698, if that one is not fixed, the "Contents Changes in Pull Request" would be as slow as before.
If I understand correctly, the benefits of this is users get the code as soon as possible and then if they have some watch task running locally,  they can the build result earlier.

Just capturing our offline discussion here: I don't think it's blocked on #698, I just think the switching to review mode should be split into 2 steps, the first of which checks out the minimal set of code to unblock the user to view the code, run it, etc., the second fetches the history to enable diffs, etc.

Fun fact, we can't fetch into current branch ;)
git fetch --depth 1 origin dev
git checkout dev
git fetch --unshallow dev

will throw error fatal: Refusing to fetch into current branch refs/heads/develop of non-bare repository. More details please read https://stackoverflow.com/questions/29028696/why-git-fetch-origin-branchbranch-works-only-on-a-non-current-branch .
However we can do a git pull --unshallow to fetch all the history. I'll send a pr to VSCode Git to support this.


Include xDS dependencies in our release source archives

Related https://github.com/grpc/grpc/pull/25272
In our CMake build chain, we want to support the use case that users download an archive of gRPC (e.g., from our release page) and will be able to build it right away. The source code archive has no Git information nor git submodules. These submodules are essential to gRPC builds, and have to be provided in certain ways (see example):

As module: provide a copy of the the dependency's source code to CMake;
As package: ask CMake to find if a package with the same name is installed in the system.

Both methods allow dynamically inject user-provided dependencies, and demand the dependencies to have proper CMake instrumentation (e.g., upb doesn't provide install so it can't be added in either way read more). It also causes problem like https://github.com/grpc/grpc/issues/20392, that users downloading our released archive, and failed to build.
This PR followed the approach of fixing upb builds in CMake. It transforms the xDS dependencies to subtrees, so they will appear when we ship source code.
Well, the premise of this PR is we will depend on xDS protos (like https://github.com/grpc/grpc/pull/25272) that instead of copying them from one repo to another, we should add them to our build systems.

After the offline discussion with @jtattermusch , this PR probably is a bad idea that will cause our repo size to explode. Closing.


Number Item and +- Item could have a bug

Since we return + & - Item if we didn't find Numeric(What we want), but the implmentation is Numeric or Letter, it will cause what we don't expect.
Like a +m became a error Item.

I will test this to make sure

Fixed

now +n should be +(ItemPlus) and n(ItemIdent)


fix: add deprecation for the health check enricher

Coverage increased (+0.003%) to 98.178% when pulling 8efa29799aff3b45dc707117686b742434421793 on lholmquist:NODE-1388-deprecate-health-check-enricher into 8d6d97887a404258a83781c6cbb1c0d325e24082 on nodeshift:main.


JAMES-2586 - Implement PostgresTableManager

jira Jira https://issues.apache.org/jira/browse/JAMES-2586

Should target apache:postgresql instead of master.

Should target apache:postgresql instead of master.

I created a new pr to postgresql branch at https://github.com/apache/james-project/pull/1770
And add a new fixup commit
I will close this pr


Support the new methods in 1.4

I released 1.4.0 with some new assertions that should be added here.

Assert::ip()
Assert::ipv4()
Assert::ipv6()
Assert::notRegex()
Assert::interfaceExists()
Assert::isList()
Assert::isMap()

Maybe good to change the title to Support the new methods between 1.4 and 1.7
https://github.com/webmozart/assert/blob/1.7.0/CHANGELOG.md#170-2020-02-14

fyi @ondrejmirtes I went through methods in webmozart/assert and what we support here and saw that only the following don't further specify types:
string:

Assert::notContains()
Assert::notStartsWith()
Assert::notEndsWith()
Assert::regex()
Assert::notRegex()

file:

Assert::fileExists()
Assert::file()
Assert::directory()
Assert::readable()
Assert::writable()

object:

Assert::propertyNotExists()
Assert::methodNotExists()

function:

Assert::throws()

I'm not sure if more is possible. Related to this issue the only one left is notRegex(), which checks that a string does not match a given regex. IMO this issue can be closed.


⚠ Bofrost.es has degraded performance

In 3832ae4, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1485 ms

Resolved: Bofrost.es performance has improved in d2929bd after 9 minutes.


macOS Qt workflow failing brew link step

cc @ntadej @mwilsnd
https://github.com/maplibre/maplibre-native/actions/runs/7173052744/job/19532155978
==> Pouring<EMAIL_ADDRESS>Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/2to3-3.12
Target /usr/local/bin/2to3-3.12
already exists. You may want to remove it:
  rm '/usr/local/bin/2to3-3.12'

To force the link and overwrite all conflicting files:
  brew link --overwrite<EMAIL_ADDRESS>
To list all files that would be deleted:
  brew link --overwrite --dry-run<EMAIL_ADDRESS>
Possible conflicting files are:
/usr/local/bin/2to3-3.12 -> /Library/Frameworks/Python.framework/Versions/3.12/bin/2to3-3.12
/usr/local/bin/idle3.12 -> /Library/Frameworks/Python.framework/Versions/3.12/bin/idle3.12
/usr/local/bin/pydoc3.12 -> /Library/Frameworks/Python.framework/Versions/3.12/bin/pydoc3.12
/usr/local/bin/python3.12 -> /Library/Frameworks/Python.framework/Versions/3.12/bin/python3.12
/usr/local/bin/python3.12-config -> /Library/Frameworks/Python.framework/Versions/3.12/bin/python3.12-config

We probably need to change that step to
  brew link --overwrite<EMAIL_ADDRESS>
but maybe there is another solution that won't break with the next Python release.

It broke again. 🙉
https://github.com/maplibre/maplibre-native/actions/runs/7572498541/job/20623131672?pr=2034
@ntadej Could you check if there is a more permanent solution? Maybe a hack where we query the most recent version?

I think I got around this in https://github.com/maplibre/maplibre-native/pull/2040 by commenting out that brew link --overwrite<EMAIL_ADDRESS>line and letting it use the python already installed.
I had noticed when it was trying to install python, it was saying it already had a version of python installed, so it was trying to upgrade it. then at the end it tried to make a symlink, which failed because it already existed (the 'brew link' error)
<EMAIL_ADDRESS>3.11.7 is already installed but outdated (so it will be upgraded).


feat: Add support for redacting sensitive attributes from versions.

Contributor checklist

[ ] Bug fixes include regression tests
[X] Features include unit/acceptance tests

🚀 Thank you for your contribution! 🚀
Merge at your leisure


Update open-balena-base to 14.7.1

Update open-balena-base from 14.4.0 to 14.7.1
Change-type: minor

LGTM


Script to create file .rel and cell

can you provide me script to create file ".rel" ??
Thanks

hi
have you sloved this problem?


testconfig generation mode

let run.py generate testconfig.caseinfo by casename
and let the path in container keep the same as host
have been tested at bert/glm/cpm-torch-A1001*8

remove useless variable(case_not_found...),add check in get_config_from_case
update readme.md


fix(radarr): add Extended Clip to Extras CF

Pull Request
Purpose

Approach

Open Questions and Pre-Merge TODOs

Requirements

[x] These changes meet the standards for contributing.

[x] I have read the code of conduct.

Fixes #1667

Can you add the same to the Sonarr extras CF? Then I can do a review 😎


I/flutter ( 9033): Another exception was thrown: 'package:flutter/src/rendering/sliver.dart': Failed assertion: line 556 pos 15: 'scrollOffsetCorrection != 0.0': is not true. I/flutter ( 9033): Another exception was thrown: NoSuchMethodError: The method '-' was called on null.

I/flutter ( 9033): The following RenderObject was being processed when the exception was fired: RenderSliverList#3776a relayoutBoundary=up2 NEEDS-LAYOUT NEEDS-COMPOSITING-BITS-UPDATE:
I/flutter ( 9033):   needs compositing
I/flutter ( 9033):   creator: SliverList ← MediaQuery ← SliverPadding ← Viewport ← IgnorePointer-[GlobalKey#997ae] ←
I/flutter ( 9033):     Semantics ← _PointerListener ← Listener ← _GestureSemantics ←
I/flutter ( 9033):     RawGestureDetector-[LabeledGlobalKey<RawGestureDetectorState>#6878b] ← _PointerListener ← Listener
I/flutter ( 9033):     ← ⋯
I/flutter ( 9033):   parentData: paintOffset=Offset(0.0, 0.0) (can use size)
I/flutter ( 9033):   constraints: SliverConstraints(AxisDirection.down, GrowthDirection.forward, ScrollDirection.forward,
I/flutter ( 9033):     scrollOffset: 174.1, remainingPaintExtent: 566.0, crossAxisExtent: 360.0, crossAxisDirection:
I/flutter ( 9033):     AxisDirection.right, viewportMainAxisExtent: 566.0, remainingCacheExtent: 990.1, cacheOrigin:
I/flutter ( 9033):     -174.1)
I/flutter ( 9033):   geometry: SliverGeometry(scrollExtent: 2552.0, paintExtent: 566.0, maxPaintExtent: 2552.0,
I/flutter ( 9033):     hasVisualOverflow: true, cacheExtent: 1066.0)
I/flutter ( 9033):   currently live children: 0 to 1
I/flutter ( 9033): This RenderObject had the following descendants (showing up to depth 5):
I/flutter ( 9033):     child with index 0: RenderIndexedSemantics#d8a49 relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
I/flutter ( 9033):       child: RenderRepaintBoundary#c4a34 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
I/flutter ( 9033):         child: RenderLimitedBox#1d176 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
I/flutter ( 9033):           child: RenderConstrainedBox#9aaa2 NEEDS-PAINT
I/flutter ( 9033):     child with index 1: RenderIndexedSemantics#31bed relayoutBoundary=up3
I/flutter ( 9033):       child: RenderRepaintBoundary#d9ec1 relayoutBoundary=up4
I/flutter ( 9033):         child: RenderFlex#173fc relayoutBoundary=up5
I/flutter ( 9033):           child 1: RenderSemanticsAnnotations#6823c relayoutBoundary=up6
I/flutter ( 9033):             child: RenderImage#612e2 relayoutBoundary=up7
I/flutter ( 9033):           child 2: RenderSemanticsAnnotations#ad8d0 relayoutBoundary=up6
I/flutter ( 9033):             child: RenderImage#20b03 relayoutBoundary=up7
I/flutter ( 9033):           child 3: RenderSemanticsAnnotations#384ce relayoutBoundary=up6
I/flutter ( 9033):             child: RenderImage#9aa77 relayoutBoundary=up7
I/flutter ( 9033):           child 4: RenderSemanticsAnnotations#1af8a relayoutBoundary=up6
I/flutter ( 9033):             child: RenderImage#c08c6 relayoutBoundary=up7
I/flutter ( 9033):           child 5: RenderSemanticsAnnotations#7340a relayoutBoundary=up6
I/flutter ( 9033):             child: RenderImage#26937 relayoutBoundary=up7
I/flutter ( 9033):           child 6: RenderSemanticsAnnotations#3def5 relayoutBoundary=up6
I/flutter ( 9033):             child: RenderImage#4c1cf relayoutBoundary=up7
I/flutter ( 9033):           child 7: RenderSemanticsAnnotations#c6d29 relayoutBoundary=up6
I/flutter ( 9033):             child: RenderImage#edb43 relayoutBoundary=up7
I/flutter ( 9033):           child 8: RenderSemanticsAnnotations#9c222 relayoutBoundary=up6
I/flutter ( 9033):             child: RenderImage#d0491 relayoutBoundary=up7
I/flutter ( 9033): ════════════════════════════════════════════════════════════════════════════════════════════════════
I/flutter ( 9033): Another exception was thrown: NoSuchMethodError: The method '-' was called on null.
I/flutter ( 9033): Another exception was thrown: 'package:flutter/src/rendering/sliver.dart': Failed assertion: line 556 pos 15: 'scrollOffsetCorrection != 0.0': is not true.
I/flutter ( 9033): Another exception was thrown: NoSuchMethodError: The method '-' was called on null.

@MubashirMaqbool  Can you share me the code, so that i can take a peek. I think i may have encountered and resolved this.

I'm also facing the same problem after upgrading flutter to newer version.

@roohaani786
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(backgroundColor: color.Red,title: Text(widget.Name.toUpperCase(),style: TextStyle(color: Colors.white),),),body:
ListView.builder(itemBuilder: (context,index){
 return _games[index].id==widget.CatId?Column(

children: [
for(int i=0;i<_games[index]._Gamename.length;i++)
Card(
elevation: 5,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(15.0),),
clipBehavior: Clip.antiAlias,
child: Stack(children: [

Center(child: Text('loading......')),
InkWell(
onTap: (){
Navigator.push(
context,
MaterialPageRoute(builder: (context) => GameDetail(
             Name:_games[index]._Gamename[i],
             Image:_games[index]._GameUrl[i],
             Des:_games[index]._Description[i],
             Target:_games[index]._TargetArea[i]

         )),
       );

     },
     child: Container(height: SizeConfig.imageSizeMultiplier*30,decoration: BoxDecoration(image: DecorationImage(image: AssetImage(_games[index]._GameUrl[i]),fit: BoxFit.cover)),child: Container(color: Colors.black26,),)),
  Positioned(
 top: 25,
      left: 15,
      child: Text(_games[index]._Gamename[i],style: TextStyle(color: Colors.white,fontWeight: FontWeight.bold),)),

],),

)
],
):Container();
},itemCount: _games.length,)
);

}

i am also facing same issue

my code is
body:
ListView.builder(itemBuilder: (context,index){
  return _games[index].id==widget.CatId?Column(
    children: [

        Card(
          elevation: 5,
          shape: RoundedRectangleBorder(
            borderRadius: BorderRadius.circular(15.0),),
          clipBehavior: Clip.antiAlias,

          child: Stack(children: [
            Center(child: Text('loading......')),
            InkWell(
                onTap: (){
                  Navigator.push(
                    context,
                    MaterialPageRoute(builder: (context) => GameDetail(

                        Name:_games[index]._Gamename,
                        Image:_games[index]._GameUrl,
                        Des:_games[index]._Description,
                        Target:_games[index]._TargetArea

                    )),
                  );

                },
                child: Container(height: SizeConfig.imageSizeMultiplier*30,decoration: BoxDecoration(image: DecorationImage(image: AssetImage(_games[index]._GameUrl),fit: BoxFit.cover)),child: Container(color: Colors.black26,),)),
            Positioned(
                top: 25,
                left: 15,
                child: Text(_games[index]._Gamename,style: TextStyle(color: Colors.white,fontWeight: FontWeight.bold),)),

          ],),
        )
    ],
  ):Container();

},itemCount: _games.length,)
);

@praveengupta0895 have you resolved the issue?

Hi @MubashirMaqbool,
This platform is not meant for assistance on personal code. Please see https://flutter.dev/community for resources and asking questions like this.
You may also get some help if you post it on Stack Overflow and if you need help with your code, please see https://www.reddit.com/r/flutterhelp/
Closing, as this isn't an issue with Flutter itself. If you disagree, please write in the comments and I will reopen it.
Thank you

Hi @darshankawar , I understand your concern but as far as I think this is some kind of flutter issue because earlier the code was working fine and with the recent update of flutter we are facing this problem.

Hello @Mudassar823, still not able to resolve it, and right now I'm downgrading my flutter. because I've the same application with different name and older version of flutter and it is running perfect.
And the problem we are facing is due to this line "_games[index].id==widget.CatId". If you remove the condition it will work.

@praveengupta0895  I have to show data on basis of id, this is not a proper solution brother

@praveengupta0895  I am facing this issue
I/flutter ( 9657): Another exception was thrown: 'package:flutter/src/rendering/sliver.dart': Failed assertion: line 556 pos 15: 'scrollOffsetCorrection != 0.0': is not true.
I/flutter ( 9657): Another exception was thrown: NoSuchMethodError: The method '-' was called on null.

No, I was not asking you to remove that ID. I was saying that error is showing due to that only.

@praveengupta0895 ok brother we have to wait and be patient

@praveengupta0895 have you asked it on stackoverflow

I think as of now until flutter community fix this issue. we only have 2 options either downgrade it to 1.19 version or grouped the data.

Yes I've asked it on stack overflow, and also raised another issue on github, but didn't got the proper answer.

Once go through with this link  "https://pub.dev/packages/grouped_list" This might help you.

@praveengupta0895 ok

I just saw your code, I think I can help you with your code as you are comparing the data with the single item.

@praveengupta0895 I am passing data from one page with id and then compare this data with next page id's?
how can you help me

define another list _game2 and add data to _game2 after comparing.
    _games.add(data);
    _games2 = _games.where((i) => i.ID ==widget.ID).toList();

@praveengupta0895  everything is correct issue in scrolling

If you can share the whole code then I might be able to fix it.

and also share the error.

List _games=[
GamesInfo('Dumbbell Pullover','assets/chest/Dumble pull over.JPG',1,'pectorals, latissimus dorsi, serratus','Lie on a bench with your upper back, head and neck supported and your feet flat on the floor. Hold a dumbbell with your arms extended above your face. Maintaining just a slight bend in your elbow throughout, slowly lower the dumbbell backward, allowing your elbows to come to a point at which they align with your ears. When you’ve stretched as far as you can without bending your elbows, flex through your chest and lats to reverse direction to bring the dumbbell back overhead.'),
GamesInfo('Pec-Deck Flye','assets/chest/butterfly.JPG',1,'middle pecs','Sit with your lower back fully in contact with the pad and your feet flat on the floor. With your elbows at 90-degree angles and forearms flush against the pads, move your arms slightly forward to disengage the weight from the stack.  Squeeze hard, then slowly return to the start, stopping when your upper arms are even with your torso, and repeat.'),
GamesInfo('Decline Bench Press','assets/chest/decline bench press.JPG',1,'inner pecs, lower pecs','Lie on a decline bench.  Grasp the bar with a wide, overhand grip. Bend your arms and slowly lower the bar toward your lower chest. When the bar reaches chest level, forcefully extend your arms, elevating the bar back to the starting position.'),
GamesInfo('Cable Crossover','assets/chest/cablecross.png',1,'middle pecs','Stand in the direct center of a cable-cross station with your feet staggered, knees slightly bent and your focus forward, and grasp D-handles attached to the upper pulleys.  Try to keep your elbows up throughout the movement. Pause a moment for a peak contraction, then slowly allow the handles to return to the start position. Don’t let the weight stacks touch down between reps.'),
GamesInfo('Dumbbell Bench Press','assets/chest/dumble press.jpg',1,'upper pecs','Lie on a bench with your feet flat on the floor, holding a dumbbell in each hand just outside your shoulders. Powerfully press the dumbbells upward toward the ceiling, stopping when they come to an inch or so away from each other above your upper-middle chest, then slowly bend your elbows to lower the weights back down to a point even with your torso.'),
GamesInfo('Incline Dumbbell Flye','assets/chest/incline duble fly.JPG',1,'upper pecs','middle pecs'),
GamesInfo('Standing Cable Curl','assets/biceps/cable curl.JPG',2,'Biceps brachii from origin to insertion and peak','Stand holding a bar attached to a low-pulley cable with an underhand grip, elbows extended.  Hold and squeeze the contraction at the top, then slowly return the bar along the same path.  Begin by shifting your elbows back and bending them to curl the bar toward your upper abs.  Upon full contraction, return the bar along the same path and repeat'),

GamesInfo('Dumbbell Concentration Curl','assets/biceps/dumble concentration curl.JPG',2,'Biceps and brachialis, emphasizing the full length of the muscle','Sit on a low-back bench, holding a dumbbell in each hand at your sides. Keeping your chest up, curl one weight toward the same-side shoulder, squeezing your biceps hard at the top, then lower to the start. Repeat with the other arm. You can either condense the set by lowering one dumbbell as you lift the other, or take it slower by moving through one full rep per side, going all the way up and down with one arm before switching to the other.'),

GamesInfo('Scott Curl','assets/biceps/scott curl.JPG',2,'Biceps, with emphasis on the peak','Sit at the end of a flat bench or use a short-back chair. Bend over and grasp a dumbbell with an underhand grip, locking your working arm against your same-side inner thigh. Place your nonworking hand on your leg for balance. Moving only at your elbow, curl the weight as high as you can toward your torso. Squeeze your biceps at the top before lowering the dumbbell back to the start, but don’t let it rest on the floor between reps.'),
GamesInfo('Barbell Preacher Curl','assets/biceps/preacher curl.JPG',2,'Biceps, with emphasis on the short, inner head','Grasp a barbell or EZ-bar and lean your chest against the angled side of a preacher bench, keeping your back tight and knees slightly bent. (You can also use a dumbbell and train one arm at a time.) Make sure your armpits fit securely against the top of the pad, with your triceps pressed into the flat side of the bench. Hold the bar straight toward the floor with a supinated (palms-up) grip. With your head neutral and eyes focused forward, curl the weight in a smooth arc, squeeze your biceps hard for a one-count, and slowly lower back to the nearly elbows-straight position.'),
GamesInfo('Incline Dumbbell Curl','assets/biceps/incline dumble curl.JPG',2,'Biceps, with emphasis on the stretch','Set up a preacher bench so the top of the pad fits securely under your armpits. Take a shoulder-width, underhand grip on a straight bar or EZ-bar and position your arms parallel to each other on the pad. Keep your feet flat on the floor and your head straight as you flex your biceps to bring the bar as high as possible. Don’t allow your elbows to flare out or come off the bench. Flex strongly at the top before slowly returning the bar along the same path, stopping just short of full elbow extension before starting the next rep. You can also do this exercise one arm at a time with a dumbbell.'),
GamesInfo('Close-Grip Chin-Up','assets/biceps/close grip chin up.JPG',2,'Biceps and brachialis, emphasizing the full length of the muscle','Adjust an incline bench to about 45 degrees and sit back squarely against the pad, feet flat on the floor. Your arms should hang straight down by your sides, palms up. With your shoulders shifted back and upper arms in a fixed position perpendicular to the floor, curl the weights so they approach your shoulders, either one at a time or both arms simultaneously. Squeeze your biceps hard at the top before slowly returning to the start position.'),
GamesInfo('Barbell Curl','assets/biceps/barbel curl.JPG',2,'Brachialis mainly, with biceps brachii activation ','Grasp a fixed overhead bar with a close underhand grip. Hang freely from the bar, arms fully extended and ankles crossed behind you. Contract your lats and bi’s to bring your body upward, concentrating on keeping your elbows tight to your sides. Hold momentarily as your chin crosses the level of the bar, then lower yourself to return to the dead-hang position'),

];
@override
void initState() {
// TODO: implement initState
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(backgroundColor: color.Red,title: Text(widget.Name.toUpperCase(),style: TextStyle(color: Colors.white),),),body:
ListView.builder(
scrollDirection: Axis.horizontal,
itemBuilder: (context,index){
  return _games[index].id==widget.CatId?Column(
    children: [
        Card(
          elevation: 5,
          shape: RoundedRectangleBorder(
            borderRadius: BorderRadius.circular(15.0),),
          clipBehavior: Clip.antiAlias,

          child: Stack(children: [
            Center(child: Text('loading......')),
            InkWell(
                onTap: (){
                  Navigator.push(
                    context,
                    MaterialPageRoute(builder: (context) => GameDetail(

                        Name:_games[index]._Gamename,
                        Image:_games[index]._GameUrl,
                        Des:_games[index]._Description,
                        Target:_games[index]._TargetArea

                    )),
                  );

                },
                child: Container(height: SizeConfig.imageSizeMultiplier*30,decoration: BoxDecoration(image: DecorationImage(image: AssetImage(_games[index]._GameUrl),fit: BoxFit.cover)),child: Container(color: Colors.black26,),)),
            Positioned(
                top: 25,
                left: 15,
                child: Text(_games[index]._Gamename,style: TextStyle(color: Colors.white,fontWeight: FontWeight.bold),)),

          ],),
        )
    ],
  ):Container();

},itemCount: _games.length,)
);

}
}

List _games=[
GamesInfo('Dumbbell Pullover','assets/chest/Dumble pull over.JPG',1,'pectorals, latissimus dorsi, serratus','Lie on a bench with your upper back, head and neck supported and your feet flat on the floor. Hold a dumbbell with your arms extended above your face. Maintaining just a slight bend in your elbow throughout, slowly lower the dumbbell backward, allowing your elbows to come to a point at which they align with your ears. When you’ve stretched as far as you can without bending your elbows, flex through your chest and lats to reverse direction to bring the dumbbell back overhead.'),
GamesInfo('Pec-Deck Flye','assets/chest/butterfly.JPG',1,'middle pecs','Sit with your lower back fully in contact with the pad and your feet flat on the floor. With your elbows at 90-degree angles and forearms flush against the pads, move your arms slightly forward to disengage the weight from the stack.  Squeeze hard, then slowly return to the start, stopping when your upper arms are even with your torso, and repeat.'),
GamesInfo('Decline Bench Press','assets/chest/decline bench press.JPG',1,'inner pecs, lower pecs','Lie on a decline bench.  Grasp the bar with a wide, overhand grip. Bend your arms and slowly lower the bar toward your lower chest. When the bar reaches chest level, forcefully extend your arms, elevating the bar back to the starting position.'),
GamesInfo('Cable Crossover','assets/chest/cablecross.png',1,'middle pecs','Stand in the direct center of a cable-cross station with your feet staggered, knees slightly bent and your focus forward, and grasp D-handles attached to the upper pulleys.  Try to keep your elbows up throughout the movement. Pause a moment for a peak contraction, then slowly allow the handles to return to the start position. Don’t let the weight stacks touch down between reps.'),
GamesInfo('Dumbbell Bench Press','assets/chest/dumble press.jpg',1,'upper pecs','Lie on a bench with your feet flat on the floor, holding a dumbbell in each hand just outside your shoulders. Powerfully press the dumbbells upward toward the ceiling, stopping when they come to an inch or so away from each other above your upper-middle chest, then slowly bend your elbows to lower the weights back down to a point even with your torso.'),
GamesInfo('Incline Dumbbell Flye','assets/chest/incline duble fly.JPG',1,'upper pecs','middle pecs'),
GamesInfo('Standing Cable Curl','assets/biceps/cable curl.JPG',2,'Biceps brachii from origin to insertion and peak','Stand holding a bar attached to a low-pulley cable with an underhand grip, elbows extended.  Hold and squeeze the contraction at the top, then slowly return the bar along the same path.  Begin by shifting your elbows back and bending them to curl the bar toward your upper abs.  Upon full contraction, return the bar along the same path and repeat'),

GamesInfo('Dumbbell Concentration Curl','assets/biceps/dumble concentration curl.JPG',2,'Biceps and brachialis, emphasizing the full length of the muscle','Sit on a low-back bench, holding a dumbbell in each hand at your sides. Keeping your chest up, curl one weight toward the same-side shoulder, squeezing your biceps hard at the top, then lower to the start. Repeat with the other arm. You can either condense the set by lowering one dumbbell as you lift the other, or take it slower by moving through one full rep per side, going all the way up and down with one arm before switching to the other.'),

GamesInfo('Scott Curl','assets/biceps/scott curl.JPG',2,'Biceps, with emphasis on the peak','Sit at the end of a flat bench or use a short-back chair. Bend over and grasp a dumbbell with an underhand grip, locking your working arm against your same-side inner thigh. Place your nonworking hand on your leg for balance. Moving only at your elbow, curl the weight as high as you can toward your torso. Squeeze your biceps at the top before lowering the dumbbell back to the start, but don’t let it rest on the floor between reps.'),
GamesInfo('Barbell Preacher Curl','assets/biceps/preacher curl.JPG',2,'Biceps, with emphasis on the short, inner head','Grasp a barbell or EZ-bar and lean your chest against the angled side of a preacher bench, keeping your back tight and knees slightly bent. (You can also use a dumbbell and train one arm at a time.) Make sure your armpits fit securely against the top of the pad, with your triceps pressed into the flat side of the bench. Hold the bar straight toward the floor with a supinated (palms-up) grip. With your head neutral and eyes focused forward, curl the weight in a smooth arc, squeeze your biceps hard for a one-count, and slowly lower back to the nearly elbows-straight position.'),
GamesInfo('Incline Dumbbell Curl','assets/biceps/incline dumble curl.JPG',2,'Biceps, with emphasis on the stretch','Set up a preacher bench so the top of the pad fits securely under your armpits. Take a shoulder-width, underhand grip on a straight bar or EZ-bar and position your arms parallel to each other on the pad. Keep your feet flat on the floor and your head straight as you flex your biceps to bring the bar as high as possible. Don’t allow your elbows to flare out or come off the bench. Flex strongly at the top before slowly returning the bar along the same path, stopping just short of full elbow extension before starting the next rep. You can also do this exercise one arm at a time with a dumbbell.'),
GamesInfo('Close-Grip Chin-Up','assets/biceps/close grip chin up.JPG',2,'Biceps and brachialis, emphasizing the full length of the muscle','Adjust an incline bench to about 45 degrees and sit back squarely against the pad, feet flat on the floor. Your arms should hang straight down by your sides, palms up. With your shoulders shifted back and upper arms in a fixed position perpendicular to the floor, curl the weights so they approach your shoulders, either one at a time or both arms simultaneously. Squeeze your biceps hard at the top before slowly returning to the start position.'),
GamesInfo('Barbell Curl','assets/biceps/barbel curl.JPG',2,'Brachialis mainly, with biceps brachii activation ','Grasp a fixed overhead bar with a close underhand grip. Hang freely from the bar, arms fully extended and ankles crossed behind you. Contract your lats and bi’s to bring your body upward, concentrating on keeping your elbows tight to your sides. Hold momentarily as your chin crosses the level of the bar, then lower yourself to return to the dead-hang position'),

];
@override
void initState() {
// TODO: implement initState
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(backgroundColor: color.Red,title: Text(widget.Name.toUpperCase(),style: TextStyle(color: Colors.white),),),body:
ListView.builder(
scrollDirection: Axis.horizontal,
itemBuilder: (context,index){
  return _games[index].id==widget.CatId?Column(
    children: [
        Card(
          elevation: 5,
          shape: RoundedRectangleBorder(
            borderRadius: BorderRadius.circular(15.0),),
          clipBehavior: Clip.antiAlias,

          child: Stack(children: [
            Center(child: Text('loading......')),
            InkWell(
                onTap: (){
                  Navigator.push(
                    context,
                    MaterialPageRoute(builder: (context) => GameDetail(

                        Name:_games[index]._Gamename,
                        Image:_games[index]._GameUrl,
                        Des:_games[index]._Description,
                        Target:_games[index]._TargetArea

                    )),
                  );

                },
                child: Container(height: SizeConfig.imageSizeMultiplier*30,decoration: BoxDecoration(image: DecorationImage(image: AssetImage(_games[index]._GameUrl),fit: BoxFit.cover)),child: Container(color: Colors.black26,),)),
            Positioned(
                top: 25,
                left: 15,
                child: Text(_games[index]._Gamename,style: TextStyle(color: Colors.white,fontWeight: FontWeight.bold),)),

          ],),
        )
    ],
  ):Container();

},itemCount: _games.length,)
);

}
}

axis not horizental its vertical

Okay so first of all define another list of same model. and apply the above comparison code, remove comparison while returning Column and to avoid scrolling problem wrap ListView.builder into Expanded widget.

@praveengupta0895 okay I check

@praveengupta0895  @Mudassar823 please follow-up your discussion privately.


table macro that allows remapping table and field names

This PR is mostly meant as a starting point for resolving #342 (using table or field names that are reserved keywords in Rust). I didn't think too hard about how to do the field/table name specification. The macro can still be used as before.
If nothing else, this may be helpful as a starting point for others who have to work with tables that have fields like type.
You can use the macro like:
table! {
    objects as ["objects"] (id) {
        id -> Uuid,
        label -> Nullable<VarChar>,
        type_ as ["type"] -> Nullable<VarChar>,
        created_at -> Timestamp,
        updated_at -> Timestamp,
    }
}

So I'm not entirely opposed to this feature, and would like to hear what @diesel-rs/core have to say on it. However I'm against it personally. I think it adds unnecessary complexity for a simple problem. The only use case where this is necessary are to have column names which are the same as keywords in Rust. This is a relatively limited set, and I think we can avoid the complexity simply by having a defined convention in those cases (e.g. type -> ty). This solution also has the benefit of being something we can do automatically in codegen.

Even if it is a small set of protected words, there are cases (e.g., working with a legacy database) where you can't avoid them.
There are other cases (though along the same legacy line) where you might want a re-mapping even when not strictly required (e.g., non-underscored field name to snakecase).
As I noted on #342, I think having a convention for infer_schema would be great; I just think it would be ideal to be able to configure this relatively easily when desired (e.g., some people might prefer to work with a type_ field rather than ty).
Also, how would the convention work when going in the ty -> type direction (e.g., when using the table macro)? Would
table! {
    objects {
        ty -> Nullable<VarChar>
    }
}

map to a field named "type" or "ty"?

Ok so I've put some more thought into this. I like the idea but I don't like the API. It's not clear to immediately which side is the rust name and which side is the SQL name. as doesn't imply thats the aliasing which is occurring either.

I think this would be useful to have. I don't like the as ["name"] syntax though. In other contexts, it seems to work in the opposite way (use external::stuff as my_name).
As there is currently no way in a stable macro to match on "type" as ty -> VarChar, we need to think of another syntax (or wait for lit to be stabilized: rust-lang/rust#35625).
How about ty (aka "type") -> VarChar or ty (column "type") -> VarChar? I especially like the last one, as it may be verbose but is absolutely clear. If you want to go even more verbose, (using column "type") or (using table "with_weird_table_name") reads nice as well.
table! {
    objects
    (table "weirdly_long_table_name_for_something_as_simple_as_objects")
    (id)
    {
        id -> Uuid,
        label -> Nullable<VarChar>,
        ty (column "type") -> Nullable<VarChar>,
        created_at -> Timestamp,
        updated_at -> Timestamp,
    }
}

@killercup I think your suggestion is good (especially the more verbose one), but what I was thinking (after my initial PR but before your comment) was the serde-like [rename="type"], which could either be in a position analogous to standard field annotation:
table! {
    objects {
        id -> Uuid,
        [rename="type"]
        type_  -> Nullable<VarChar>
    }
}

or like:
table! {
    objects {
        id -> Uuid,
        type_ [rename="type"] -> Nullable<VarChar>
    }
}

or using column_name/table_name instead of rename.

@kardeiz Why not use #[rename=$name:expr] so it looks like a regular attribute?
I think is actually more confusing—because we are in a macro context where there are no items that can have actual attributes (as seen by rustc). If the macro was using struct syntax (basically : instead of ->), it might make more sense to use attributes-like syntax. (This is probably harder to parse, too.)

I still don't like rename as the API. It's unclear to me which side is being renamed.

I do like the way serde solves this: https://github.com/serde-rs/serde/blob/4a0bf4de65b7787088c6c6ce3cc3b69fc1cc1a16/serde_codegen_internals/src/attr.rs#L109
basically it would look like this:
#[derive(Queryable)]
struct Foo {
    id: i32,
    #[diesel(rename="type")]
    type_: String,
    foo: bool,
}

So we discussed this feature a bit more internally. The consensus was that there's not really a strong motivation for this feature in terms of general renaming of columns. Without a stronger motivation, we want to avoid introducing new features like this.
What we do need to address are the table/column names that cannot be represented in Rust because they overlap with keywords. (type being the most obviously common one). What we'd like to do in order to solve that problem is take the same approach that bindgen took, and put an underscore at the end of the name if it conflicts with a Rust keyword. This approach is simple, consistent, and easy to document.

Forgot to mention -- part of the reason for not wanting to introduce this as an API in the table! macro for now is that any code which does successfully compile but doesn't have the name you want can always be renamed in Rust by pub use foo as bar

Is it even possible to create a new ident type_ from a given ident type inside macro_rules?
Or (as noted above) if you are requiring the user to provide the type_ ident to map a SQL column "type", how would a user map a column named "type_" (however unlikely a column name that may be)?
In any case, I think I fundamentally disagree with this, and it seems like renaming Rust keywords would add more complexity than this PR (or something similar).
As a potential Diesel user I would prefer to be required to do some configuration rather than work with some relatively arbitrary convention (appending underscore to reserved name).
However, I do agree that the rename-on-use workaround would be acceptable for most cases.
In any case, thanks for considering and for the explanations—

I'm a newbie to Diesel, but is there any recommended workaround for having columns named type right now?

The consensus was that there's not really a strong motivation for this feature in terms of general renaming of columns.

It is necessary when working with existing databases. The table names are often out of touch with reality (or reality of specific application), but cannot be changed, they may be inconsistent and we want consistency in codebase, or were automatically generated and we want human-friendly names for them in our app.
I've seen all those cases and I can't imagine an ORM that can't cope with that. To rephrase: I have no control over a database, and I want to use an ORM. Therefore ORM should be able to fix as many db issues as possible.

any code which does successfully compile but doesn't have the name you want can always be renamed in Rust by pub use foo as bar

This is a) horribly ugly and b) involves looking at (and changing) two places instead of one, while every single ORM I've ever worked with this was always stated once at the place of model definition, Therefore it has the horrible feature of surprising users.


Tilter the OSM entities by bounding box and tags when importing data

Disclaimer: I do not know if these features are implemented, if not, consider this as a feature request:
Provide an example to filter data, for example before or during database import. For example for OSM.

By bounding box - Use cases are extracting just a city or some states (like BeNeLux) that aren't provided as GeoFabrik exports. Maybe the Overpass API could help, but getting huge datasets might fail.
By Type, like shop, aerialway, railway - you get the point.

This would be quite useful to reduce the database size by ignoring unwanted data.
If those features exist, this issue might be moved to https://github.com/apache/incubator-baremaps-site
[Update]
osmium and maybe Osmosis can do the filtering, but Im not sure if the license is compatible for direct inclusion. May there could be some sort of exec workflow step?

Filtering is a good idea! I think we will have to add additional parameter to the ImportOSM step. As we use the Stream API, this kind of filter could be plugged at the level of the parser.


Inability to modify issuer and auth endpoint in Auth Provider Keycloak (OIDC) page

Setup

Rancher version: v2.9.0, v2.8.6
Rancher UI Extensions:
Browser type & version: 127.0.6533.100

Describe the bug

After modifying the content in the issuer and auth endpoint  input box, the display value returns to the original value after the mouse leaves the input space.
Remove the URL value  in the Endpoints section , the issuer and auth endpoint  input box is not cleared

To Reproduce

go to the Users & Authentication -> Auth Provider page

choose Keycloak (OIDC) option

choose Generate radio in the Endpoints section and input some value in the URL input box

choose Specify radio and modify the content in the issuer and auth endpoint  input box

mouse leaves the input box, the issuer and auth endpoint display value returns to the original value

Remove the URL value  in the Endpoints section, the issuer and auth endpoint is not cleared

Result
Expected Result

The user can modify the the issuer and auth endpoint value
Remove the URL value  in the Endpoints section, the issuer and auth endpoint can be cleared

Screenshots

Additional context

@ly5156 I put this into 2.11.0 for now since without a milestone, we may not look at this. Let me know if this is needed sooner; if so, then a backport would be required.

@gaktive
I found this problem in version 2.9 and 2.8.
It should not be a problem in 2.10 because 2.10 upgraded to vue3, which supports dynamically adding attributes to responsive objects.


Doesn't work when 2 input layouts selected.

Hello, I usually switch between two layouts throught the day frequently. In en-us there is no problem but with tr-tr ` becomes " so i cannot use same shortcut. Maybe you guys could add a feature like autohotkey does? in ahk if the same issue occurs instead of mapping a character, you can use vkey and sc values.

We have updated the README on this topic; please take a look.


feat: ILP/HTTP

WIP

For the related Rust/C client changes, see https://github.com/questdb/c-questdb-client/pull/50


Fix for readonly properties that declared in parent

If you try to serialize an object that has readonly properties that declared in parent, you will get an error "Cannot initialize readonly property Parent::$property from scope Child". This PR fixes this
class Parent
{
    public function __construct(
        public readonly int $property = 1,
    ) {}
}

class Child extends Parent {}

$object = new Child();

$closure = static fn () => $object;

serialize(new \Laravel\SerializableClosure\SerializableClosure($closure));

Drafting pending review from @nunomaduro


⚠ Bofrost.at has degraded performance

In f2413c6, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1350 ms

Resolved: Bofrost.at performance has improved in 29dc6e2 after 1 hour, 1 minute.


Fix crash with Xcode 13.3

Replace UI_USER_INTERFACE_IDIOM() Objective-C macro by UIDevice.current.userInterfaceIdiom present in SKMesurement.

We need a fix for Xcode 13.3 - thank you.

thank you for the update.

would it be possible to release a pod update with the fixes for ios13? Thank you.


The url 'en' could not be parsed, make sure the provided URL contains a host.

Its clear Laravel application, my domains: 'example.net' (US and global), 'example.net.ua' (Ukraine), 'example.net.in' (India)

this error after adding the code from the example

I moved '.net' below, now there is an error with Ukrainian locale. That is, the definition of tld does not go to the end

Hi! Could you share your current configuration?


[Bug] Resource default auth function disabled false.

Purpose of the pull request
Resource auth function disable check fix.
Brief change log
Resource authorization repair disable logic.
fix #12466
Verify this pull request
Manually verified the change by testing locally.

I thought this part was temporarily disable, because that’s what was expected in test case. So please update test case at the same time. WDYT

Codecov Report

Merging #12467 (3c29a7e) into dev (70aef3e) will decrease coverage by 0.23%.
The diff coverage is 56.92%.

:exclamation: Current head 3c29a7e differs from pull request most recent head 0f85568. Consider uploading reports for the commit 0f85568 to get more accurate results

@@             Coverage Diff              @@
##                dev   #12467      +/-   ##
============================================
- Coverage     39.38%   39.14%   -0.24%
+ Complexity     4214     4208       -6
============================================
  Files          1040     1045       +5
  Lines         39158    39668     +510
  Branches       4482     4553      +71
============================================
+ Hits          15423    15529     +106
- Misses        21958    22373     +415
+ Partials       1777     1766      -11

Impacted Files
Coverage Δ

...in/alert/dingtalk/DingTalkAlertChannelFactory.java
98.79% <ø> (ø)

...cheduler/plugin/alert/dingtalk/DingTalkSender.java
34.13% <0.00%> (-0.78%)
:arrow_down:

...r/plugin/alert/email/EmailAlertChannelFactory.java
98.82% <ø> (ø)

...olphinscheduler/plugin/alert/email/ExcelUtils.java
81.63% <ø> (ø)

...olphinscheduler/plugin/alert/email/MailSender.java
51.03% <ø> (+0.34%)
:arrow_up:

...ugin/alert/email/template/DefaultHTMLTemplate.java
79.24% <ø> (ø)

...plugin/alert/feishu/FeiShuAlertChannelFactory.java
97.36% <ø> (ø)

...dolphinscheduler/plugin/alert/http/HttpSender.java
47.69% <ø> (ø)

...eduler/plugin/alert/pagerduty/PagerDutySender.java
66.07% <ø> (ø)

...eduler/plugin/alert/script/ScriptAlertChannel.java
16.66% <0.00%> (ø)

... and 273 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


What license is this released under?

This is a very cool project! Thank you. :) Do you have a license in mind?

Thank you for your feedback. :) Vandalir is distributed under the MIT License.


Fix SendBlock response type

#31  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @vegarsti and the rest of your teammates on  Graphite


CSG.Path2D.append{Point,Points,Bezier} are inconsistent and underdocumented

From @fischman on August 9, 2016 21:46
CSG.Path2D's appendPoints and appendBezier methods are not mentioned in https://en.wikibooks.org/wiki/OpenJSCAD_User_Guide (only appendPoint (singular) is documented).  More confusingly, appendBezier and appendPoint don't modify their |this| parameter, while appendPoints (plural) does.  It would be nice if:

all methods were documented; and
appendFoo methods were all consistent one way or the other about whether they affect |this| or whether their return value needs to be assigned back to the callee.  (IMO appendFoo should affect their callee)

Code below demonstrates the issue in pairs: bezier in 1&2, point in 3&4, points in 5&6.
function test1() {
    var path = new CSG.Path2D([[0,0], [0, 5]]);
    path = path.appendBezier([null, [10,0]]);
    return path.close().innerToCAG();
}

function test2() {
    var path = new CSG.Path2D([[0,0], [0, 5]]);
    /* path = */ path.appendBezier([null, [10,0]]);
    return path.close().innerToCAG();
}

function test3() {
    var path = new CSG.Path2D([[0,0], [0, 5]]);
    path = path.appendPoint([10,0]);
    return path.close().innerToCAG();
}

function test4() {
    var path = new CSG.Path2D([[0,0], [0, 5]]);
    /* path = */ path.appendPoint([10,0]);
    return path.close().innerToCAG();
}

function test5() {
    var path = new CSG.Path2D([[0,0], [0, 5]]);
    path = path.appendPoints([[10,0]]);
    return path.close().innerToCAG();
}

function test6() {
    var path = new CSG.Path2D([[0,0], [0, 5]]);
    /* path = */ path.appendPoints([[10,0]]);
    return path.close().innerToCAG();
}

function main() {
    // return test1();  // PASS
    // return test2();  // FAIL: Uncaught Error: CAG shape needs at least 3 points
    // return test3();  // PASS
    // return test4();  // FAIL: Uncaught Error: CAG shape needs at least 3 points
    // return test5();  // PASS
    return test6();  // PASS!
}

Thanks for providing this great resource, BTW :)
Copied from original issue: Spiritdude/OpenJSCAD.org#165

From @fischman on August 9, 2016 22:12
Also, appendArc() is undocumented.

From @fischman on August 11, 2016 17:41
What about the behavior?  Do you simply want the inconsistency documented
or do you want to resolve it one way or the other?
On Wed, Aug 10, 2016, 6:25 PM Z3 Development<EMAIL_ADDRESS>wrote:

@fischman https://github.com/fischman thanks, but we would like our
fans to change the documentation as well. it's now available on Wikibooks,
so go for it!
https://en.wikibooks.org/wiki/OpenJSCAD_User_Guide
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Spiritdude/OpenJSCAD.org/issues/165#issuecomment-239052006,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAG-JI76NWmALb27zr4D6_2rYgRw893oks5qenn5gaJpZM4Jgjos
.

@fischman thanks, but we would like our fans to change the documentation as well. it's now available on Wikibooks, so go for it!
https://en.wikibooks.org/wiki/OpenJSCAD_User_Guide

We'll have to discuss the inconsistencies with Joost as the CSG library is imported from another project. However, I believe that CSG and CAG functions should always return a new object, rather than modifying the original. The documentation from Joost also suggests this as well.
http://joostn.github.io/OpenJsCad/

From @fischman on August 13, 2016 19:17
Documentation edited: https://en.wikibooks.org/w/index.php?title=OpenJSCAD_User_Guide&diff=prev&oldid=3105676

Done as part of #178 in V2


Fix emulation failures on reset due to the script running

Not sure why but when the script is running, resetting often brings up errors and forces to kill and restart Pj64
The v2 api has an onstatechange event and EMU_RESETTING, may be able to temporarily disable the script when that happens
For the old api (pre-4.0.0) I don't see what can be done
(Note: no clue why resetting makes the emulation fail in the first place)

Seems to have fixed itself with recent (development?) project64 versions


Select callback

Added a callback called select that fires when a wizard step is selected and displayed.
next and back only fire before validation so you'll get multiple calls to next() if there are validation errors with block:true ..
Not sure if this is the best way to fix this, but it's an attempt..
Background:
jQuery FullCalendar can't be initialized while the surrounding form is not show (for whatever reason) so I had to pack the .fullcalendar() call inside my next callback on a certain index.
In case of a validation error happening next was called but the step was not displayed .. putting the initialization back into limbo mode :)
greetings Daniel

Hi Dan,
Do you think put next callback after validations is better?
Because if occurs an error the next step must not be displayed at all.
And the select callback is a great feature. (:

Merged! (:
Thanks Dan.


RFP - Remove Waterline (less proposal, more replace with what)

I'm removing Waterline, that's no question. It's slow, has many bugs and many trade offs to allow for the many types of database it supports. It's error reporting is weak and the latest version 0.13.x introduces a bunch of things I'd like to not have to work around.
Requirements for suggestion:

[ ] It support as many SQL based technologies as possible.
[ ] It has a promise based interface (although, this is open for discussion.)
[ ] If I change database technology between local (db tech 1) and production (db tech 2) I don't need to make any code changes- only authentication/port, etc
[ ] Mature, stable API.
[ ] Migrations are possible, either via delta files generated by the framework or by keeping it's own cache.
[ ] Is still maintained well.
[ ] Isomorphic use is a mega win.

Suggestion 1.
link: http://knexjs.org

Knex.js is a "batteries included" SQL query builder for Postgres, MSSQL, MySQL, MariaDB, SQLite3, and Oracle designed to be flexible, portable, and fun to use. It features both traditional node style callbacks as well as a promise interface for cleaner async flow control, a stream interface, full featured query and schema builders, transaction support (with savepoints), connection pooling and standardized responses between different query clients and dialects.

[x] It support as many SQL based technologies as possible.
[x] It has a promise based interface (although, this is open for discussion.)
[x] If I change database technology between local (db tech 1) and production (db tech 2) I don't need to make any code changes- only authentication/port, etc
[x] Mature, stable API.
[x] Migrations are possible, either via delta files generated by the framework or by keeping it's own cache.
[x] Is still maintained well.
[x] Isomorphic use is a mega win.


[KYUUBI #5687] Using session user as proxy user to execute statements at the server and group share level

:mag: Description
Issue References 🔗

This pull request fixes #5687
Describe Your Solution 🔧
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Types of changes :bookmark:

[ ] Bugfix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Test Plan 🧪
Behavior Without This Pull Request :coffin:
Behavior With This Pull Request :tada:
Related Unit Tests

Checklists
📝 Author Self Checklist

[x] My code follows the style guidelines of this project
[x] I have performed a self-review
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] This patch was not authored or co-authored using Generative Tooling

📝 Committer Pre-Merge Checklist

[ ] Pull request title is okay.
[ ] No license issues.
[ ] Milestone correctly set?
[ ] Test coverage is ok
[ ] Assignees are selected.
[ ] Minimum number of approvals
[ ] No changes are requested

Be nice. Be informative.
For caution, the parameter set false as the default

@theoryxu it would be nice if you could add a UT for this feature, to demonstrate the behavior differences with this feature enabled/disabled.

@theoryxu it would be nice if you could add a UT for this feature, to demonstrate the behavior differences with this feature enabled/disabled.

Thank you for your review.
I‘ll figure out how Kyuubi's UT framework works and add one for this.
By the way, Are there other flaws I should know about?  I could fix it at once.


raspberry_pi.c: Use define MRAA_PIN_NAME_SIZE for pin names

Signed-off-by: Alexandru Elisei<EMAIL_ADDRESS>

Merged - thanks alot! 73e9c2859de945599525145a3f2d33290df717a0


UPD readme

Readme updated with the steps to use this base project properly

Codecov Report

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

@@          Coverage Diff          @@
##           master     #2   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           1      1
  Lines           5      5
=====================================
  Hits            5      5

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 ed4ba94...d8c9469. Read the comment docs.


macOS shift-scrolling only works using scroll bars

Cmd-Scrolling works for zooming, but shift-scrolling doesn't work for horisontal scrolling.

Thanks for reporting again! I'll have to check this out once I get my hands on a Mac...