[Feature Request] Per-endpoint authentication token

Hi! We're considering using piko to host a reverse proxy for our services that will be deployed in customer clouds. As we were taking a look at how authentication would work for the piko agents that would run alongside those services in customer clouds, we noticed that piko requires the same token to be used by all the agents.
Background -- we allow some of our customers to host some of our services in their own clouds/data centers. We recommend they host these services in a fault-tolerant manner, i.e. using k8s, or a load-balancer with multiple instances of the service behind it. The plan would be instantiate a piko agent on each instance of the service, using the same endpoint name for each cluster, allowing the piko proxy service (hosted by us) to appropriately load balance between upstream clients using the same endpoint name.
This renders piko a non-starter for us at this point, since the compromise of a single agent would mean we'd need to rotate the secret across all the service deployments in customer clouds, which as you can imagine is a difficult thing to coordinate at the best of times.
Is there a plan to introduce per-service authentication tokens? Would be happy to contribute towards making such a thing possible too.

Hi @dipack95

we noticed that piko requires the same token to be used by all the agents

Just to clarify, Piko supports JWT tokens, using either a HMAC secret key, RSA public key, or ECDSA public key to authenticate requests. Therefore each agent can have a separate JWT token (with different claims), as long as they can all be verified by the Piko server

we'd need to rotate the secret across all the service deployments in customer clouds

Ok, so your issue is you want different secret/public keys to verify different agents?
It isn't something I've thought about much before, though adding a kind of multi-tenant system could be a good option? Such as if you can configure authentication (and maybe other configuration options in the future) per-tenant, then each tenant identifies itself with an x-piko-tenant header?
Such as:
tenants:
- id: d8b9cd0b
  auth:
    hmac_secret_key: ce6e56f8-b62d-49d7-8ac9-4e44d9db7e49
- id: 968f7321
  auth:
    hmac_secret_key: a0cf0b93-0799-47a5-a5b1-2587f18474b2

Then an agent (or Go client) can be configured with both --connect.token and --context.tenant?

Therefore each agent can have a separate JWT token (with different claims), as long as they can all be verified by the Piko server

Just so I understand this correctly, in case we use the asymmetric key path, each of the agents would still need to use the public key (RSA or ECDSA) to sign their JWT, with the only possible difference in the claim being what endpoints they are meant for, right? Based on this example.

Ok, so your issue is you want different secret/public keys to verify different agents?

Yeah, a multi-tenant model would make sense. We could define the keys to use for each tenant in the server config file somehow (your example makes sense to me), where the id parameter would correspond to a tenant ID (or possibly endpoint name) that the agent would then send along with the token.
I would think we could keep the current --connect.token semantics for the key/token itself, and add a --connect.id parameter. (or rely on the endpoint name for the tenant ID)
@andydunstall

Just so I understand this correctly, in case we use the asymmetric key path, each of the agents would still need to use the public key (RSA or ECDSA) to sign their JWT, with the only possible difference in the claim being what endpoints they are meant for, right?

Yep thats right

Yeah, a multi-tenant model would make sense

Ok cool, I'll try to get to that soon

Just a thought based on https://github.com/andydunstall/piko/pull/195 , you can have a client cert per agent which can enable variety of options based on client cert Common Name, Serial Number etc (only for Layer 7) by having a Reverse Proxy    terminating and authenticating TLS clients , you can then revoke certs , route clients to different piko server backends based on some additional client cert attributes.
On a side note, given the configuration is based on a static config YAML, how multi-tenanted configuration would scale ? as the config needs to be more dynamic (so some persistent store  like RAFT might be needed along with some options to create dynamic tenant-Ids and config and dynamic-reload)

by having a Reverse Proxy terminating and authenticating TLS clients , you can then revoke certs , route clients to different piko server backends based on some additional client cert attributes

yeah i agree a similar thing can be achieved with a proxy in front of piko, though i still think multi tenant support within Piko is still useful

given the configuration is based on a static config YAML, how multi-tenanted configuration would scale ?

I agree if your adding and removing tenants often this will become a problem, though I'll avoid coupling the issues of multi tenant support and dynamic configuration support

@dipack95 sorry I've been quite busy so haven't had a chance to work on this yet (I'll have time off from work in December so should be able to work on it properly)
How urgent is this for you? Are you still planning to use Piko if this is added?

@andydunstall This is important for us for sure, but we're still planning on deploying Piko in some capacity in the meantime!

Hi @andydunstall
As an update here, we're planning on deploying Piko with its current feature set (would love a version bump that would include https://github.com/andydunstall/piko/pull/183!) by using an authorisation server that can generate a signed JWT, in exchange for an API key, used by the Piko agents installed on client hardware. This method seems to work for us at the moment, in lieu of multi-tenant support, since rotating the singular key pair (controlled by our authorisation server) would be enough to invalidate any existing JWTs.
The problem here is that the Piko server seems to terminate the Piko agents' connection to the upstream servers once the JWT has expired (using the exp JWT claim), which as you can imagine is an issue in maintaining constant communication with whatever the Piko agent is proxying connections for.
Our thinking is that if there's a way for Piko agents to swap JWTs without killing the connection, we could have a workable solution here for our use case.

would love a version bump that would include https://github.com/andydunstall/piko/pull/183!

Sure will tag

Our thinking is that if there's a way for Piko agents to swap JWTs without killing the connection, we could have a workable solution here for our use case.

Thats possible but it would be quite a big task (probably bigger than multi tenant support). Would a config option to avoid killing the connection when the JWT expires suit your use case as a quick workaround?

Would a config option to avoid killing the connection when the JWT expires suit your use case as a quick workaround?

@andydunstall Yeah I think that should tide us over for now! Thank you!

Ok cool - I'll add this weekend

@dipack95 I've added https://github.com/andydunstall/piko/pull/204, please let me know if this works for you before I merge

Thank you @andydunstall! That works great for us.

@dipack95 I've added basic upstream multi-tenant auth support in https://github.com/andydunstall/piko/pull/208. Sorry it took so long :)
Please try it out and check everything works alright


Add public_updated_at to default fields

As part of https://trello.com/c/ZWU9N8Bc/414-add-missing-details-to-document-list-for-document-collection-format-medium

This makes sense to me, would appreciate 👀  from someone on @alphagov/team-publishing-platform


[2chain] switch to use 2-chain in Genesis module

Motivation
Starting from this commit, new genesis would be initialized with two_chain = true that enables 2-chain consensus protocol by default.
Test Plan
CI/CD tests are covered.

/canary

:boom: Tests timed-out

/canary

:boom: Tests timed-out

/canary

:boom: Tests timed-out


capture metronomic unit on M.M. tempo marking

From<EMAIL_ADDRESS>on March 14, 2013 17:44:25
add mm.unit and mm.dots
Original issue: http://code.google.com/p/music-encoding/issues/detail?id=151

From<EMAIL_ADDRESS>on March 14, 2013 14:46:54
This issue was closed by revision r872 .
Status: Fixed


[BUG] SSL_read bad length when upload 2.9GB file

I encountered an nginx error while uploading a large 2.9GB file to my server. Does anyone know how to resolve this issue?
2024/04/15 19:07:40 [crit] 6348#6348: *51273  SNI: xxx.xxx.com SSL_read() failed (SSL: error:140DF10F:SSL routines:SSL_read:bad length), client: xx.xx.xx.xx, server:xxx.xxx.com, request: "PUT /adl/lfs-test-repo2.git/info/lfs/objects/fcac6f56113d2923b67739da64b92793b7254c855e84de801e4b6c6bdd8e2f2a/3145728000 HTTP/1.1", host: "xxx.xxx.com"

nginx version: nginx/1.18.0

My guess would be that nginx, using SSL_read wrapped the number of bytes in num parameter, becoming < 0, which would trigger the above error.
Proper fix is llikely to have ngingx switch to using SSL_read_ex, which passes the number of bytes to read properly as a size_t, rather than an int value


Speaker icon (hardware)

Describe the requested icon
Pretty basic and helpful icon; the speaker icon. I'll need the hardware one, as shown in the picture bellow:
Screenshots

Additional context
Thank you so much for these icons, they look so good ! This is the best icon pack I've found so far !

Added speaker-hifi in v2.0.0


Add support for running RetDec under WSL (Windows Subsystem for Linux) on Windows 10

At the moment, RetDec has to be run via MSYS2 as it does not work correctly under WSL (see e.g. #18 and a note on our wiki). For our Windows 10 users, it would be beneficial if RetDec also worked under WSL.
First, we will have to investigate what would it take to make RetDec runnable under WSL. We can start from this tip.

Invalid after we moved from Bash to Python (#147, #338).


Parallel push fails for multi-module project sometimes fail with MANIFEST_INVALID

Environment:

1.8.0
Maven
"linux", version: "3.10.0-957.21.3.el7.x86_64", arch: "amd64", family: "unix"

Description of the issue:
Sometimes jib:build fails when running parallel build for a multi-module project. I use "mvn -T4" for four running threads.
Expected behavior:
Push images parallel
Steps to reproduce:

That's hard... It happens sporadically as any multithreading issue. Non-parallel build apparently works fine.
Log output:
[2020-01-14T18:31:18.250Z] [ERROR] Failed to execute goal com.google.cloud.tools:jib-maven-plugin:1.8.0:build (default-cli) on project some-service: Tried to push image manifest for artifactory.xxxxx.com/dckr/some-service:17.1.0-SNAPSHOT but failed because: Registry may not support pushing OCI Manifest or Docker Image Manifest Version 2, Schema 2 | If this is a bug, please file an issue at https://github.com/GoogleContainerTools/jib/issues/new: 400 Bad Request
[2020-01-14T18:31:18.250Z] [ERROR] {"errors":[{"code":"MANIFEST_INVALID","message":"manifest invalid","detail":{"description":"Could not find item at docker-sc-release_local:dckr/some-service/_uploads/sha256__8e3d9783c8401812e442d0302c2b2f75456c9fc4a689d684bce2961b97ecf908"}}]}
[2020-01-14T18:31:18.250Z] [ERROR] -> [Help 1]
18:31:18  org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.google.cloud.tools:jib-maven-plugin:1.8.0:build (default-cli) on project some-service: Tried to push image manifest for artifactory.xxxxx.com/dckr/some-service:17.1.0-SNAPSHOT but failed because: Registry may not support pushing OCI Manifest or Docker Image Manifest Version 2, Schema 2 | If this is a bug, please file an issue at https://github.com/GoogleContainerTools/jib/issues/new
18:31:18      at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
18:31:18      at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
18:31:18      at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
18:31:18      at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
18:31:18      at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call (MultiThreadedBuilder.java:190)
18:31:18      at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call (MultiThreadedBuilder.java:186)
18:31:18      at java.util.concurrent.FutureTask.run (FutureTask.java:266)
18:31:18      at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:511)
18:31:18      at java.util.concurrent.FutureTask.run (FutureTask.java:266)
18:31:18      at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142)
18:31:18      at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:617)
18:31:18      at java.lang.Thread.run (Thread.java:748)
18:31:18  Caused by: org.apache.maven.plugin.MojoExecutionException: Tried to push image manifest for artifactory.xxxxx.com/dckr/some-service:17.1.0-SNAPSHOT but failed because: Registry may not support pushing OCI Manifest or Docker Image Manifest Version 2, Schema 2 | If this is a bug, please file an issue at https://github.com/GoogleContainerTools/jib/issues/new
18:31:18      at com.google.cloud.tools.jib.maven.BuildImageMojo.execute (BuildImageMojo.java:149)
18:31:18      at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
18:31:18      at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
18:31:18      at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
18:31:18      at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
18:31:18      at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
18:31:18      at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call (MultiThreadedBuilder.java:190)
18:31:18      at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call (MultiThreadedBuilder.java:186)
18:31:18      at java.util.concurrent.FutureTask.run (FutureTask.java:266)
18:31:18      at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:511)
18:31:18      at java.util.concurrent.FutureTask.run (FutureTask.java:266)
18:31:18      at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142)
18:31:18      at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:617)
18:31:18      at java.lang.Thread.run (Thread.java:748)
18:31:18  Caused by: com.google.cloud.tools.jib.registry.RegistryErrorException: Tried to push image manifest for artifactory.xxxxx.com/dckr/some-service:17.1.0-SNAPSHOT but failed because: Registry may not support pushing OCI Manifest or Docker Image Manifest Version 2, Schema 2 | If this is a bug, please file an issue at https://github.com/GoogleContainerTools/jib/issues/new
18:31:18      at com.google.cloud.tools.jib.registry.RegistryErrorExceptionBuilder.build (RegistryErrorExceptionBuilder.java:105)
18:31:18      at com.google.cloud.tools.jib.registry.ManifestPusher.handleHttpResponseException (ManifestPusher.java:119)
18:31:18      at com.google.cloud.tools.jib.registry.ManifestPusher.handleHttpResponseException (ManifestPusher.java:39)
18:31:18      at com.google.cloud.tools.jib.registry.RegistryEndpointCaller.call (RegistryEndpointCaller.java:146)
18:31:18      at com.google.cloud.tools.jib.registry.RegistryEndpointCaller.call (RegistryEndpointCaller.java:115)
18:31:18      at com.google.cloud.tools.jib.registry.RegistryClient.callRegistryEndpoint (RegistryClient.java:473)
18:31:18      at com.google.cloud.tools.jib.registry.RegistryClient.pushManifest (RegistryClient.java:321)
18:31:18      at com.google.cloud.tools.jib.builder.steps.PushImageStep.call (PushImageStep.java:125)
18:31:18      at com.google.cloud.tools.jib.builder.steps.PushImageStep.call (PushImageStep.java:43)
18:31:18      at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly (TrustedListenableFutureTask.java:125)
18:31:18      at com.google.common.util.concurrent.InterruptibleTask.run (InterruptibleTask.java:69)
18:31:18      at com.google.common.util.concurrent.TrustedListenableFutureTask.run (TrustedListenableFutureTask.java:78)
18:31:18      at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142)
18:31:18      at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:617)
18:31:18      at java.lang.Thread.run (Thread.java:748)
18:31:18  Caused by: com.google.cloud.tools.jib.http.ResponseException: 400 Bad Request
18:31:18  {"errors":[{"code":"MANIFEST_INVALID","message":"manifest invalid","detail":{"description":"Could not find item at docker-sc-release_local:dckr/some-service/_uploads/sha256__8e3d9783c8401812e442d0302c2b2f75456c9fc4a689d684bce2961b97ecf908"}}]}
18:31:18      at com.google.cloud.tools.jib.http.FailoverHttpClient.call (FailoverHttpClient.java:315)
18:31:18      at com.google.cloud.tools.jib.http.FailoverHttpClient.call (FailoverHttpClient.java:237)
18:31:18      at com.google.cloud.tools.jib.registry.RegistryEndpointCaller.call (RegistryEndpointCaller.java:139)
18:31:18      at com.google.cloud.tools.jib.registry.RegistryEndpointCaller.call (RegistryEndpointCaller.java:115)
18:31:18      at com.google.cloud.tools.jib.registry.RegistryClient.callRegistryEndpoint (RegistryClient.java:473)
18:31:18      at com.google.cloud.tools.jib.registry.RegistryClient.pushManifest (RegistryClient.java:321)
18:31:18      at com.google.cloud.tools.jib.builder.steps.PushImageStep.call (PushImageStep.java:125)
18:31:18      at com.google.cloud.tools.jib.builder.steps.PushImageStep.call (PushImageStep.java:43)
18:31:18      at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly (TrustedListenableFutureTask.java:125)
18:31:18      at com.google.common.util.concurrent.InterruptibleTask.run (InterruptibleTask.java:69)
18:31:18      at com.google.common.util.concurrent.TrustedListenableFutureTask.run (TrustedListenableFutureTask.java:78)
18:31:18      at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142)
18:31:18      at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:617)
18:31:18      at java.lang.Thread.run (Thread.java:748)
18:31:18  Caused by: com.google.api.client.http.HttpResponseException: 400 Bad Request
18:31:18  {"errors":[{"code":"MANIFEST_INVALID","message":"manifest invalid","detail":{"description":"Could not find item at docker-sc-release_local:dckr/some-service/_uploads/sha256__8e3d9783c8401812e442d0302c2b2f75456c9fc4a689d684bce2961b97ecf908"}}]}
18:31:18      at com.google.api.client.http.HttpRequest.execute (HttpRequest.java:1097)
18:31:18      at com.google.cloud.tools.jib.http.FailoverHttpClient.call (FailoverHttpClient.java:309)
18:31:18      at com.google.cloud.tools.jib.http.FailoverHttpClient.call (FailoverHttpClient.java:237)
18:31:18      at com.google.cloud.tools.jib.registry.RegistryEndpointCaller.call (RegistryEndpointCaller.java:139)
18:31:18      at com.google.cloud.tools.jib.registry.RegistryEndpointCaller.call (RegistryEndpointCaller.java:115)
18:31:18      at com.google.cloud.tools.jib.registry.RegistryClient.callRegistryEndpoint (RegistryClient.java:473)
18:31:18      at com.google.cloud.tools.jib.registry.RegistryClient.pushManifest (RegistryClient.java:321)
18:31:18      at com.google.cloud.tools.jib.builder.steps.PushImageStep.call (PushImageStep.java:125)
18:31:18      at com.google.cloud.tools.jib.builder.steps.PushImageStep.call (PushImageStep.java:43)
18:31:18      at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly (TrustedListenableFutureTask.java:125)
18:31:18      at com.google.common.util.concurrent.InterruptibleTask.run (InterruptibleTask.java:69)
18:31:18      at com.google.common.util.concurrent.TrustedListenableFutureTask.run (TrustedListenableFutureTask.java:78)
18:31:18      at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142)
18:31:18      at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:617)
18:31:18      at java.lang.Thread.run (Thread.java:748)

Additional Information:
I don't use OCI anywhere in configuration, looks like error text is misleading.
Not sure if it is our artifactory fails or the Jib plugin may not handle pushing shared layers between projects.

Hi @kan-izh,
Does your multi-module push multiple images by Jib (i.e., you have multiple sub-modules that configure Jib)? If they are multiple Jib sub-modules, do they depend on another somehow?

There is one common jar and three jib-modules depending on the jar.

About docker-sc-release_local:dckr/some-service/_uploads/sha256__8e3d9783c8401812e442d0302c2b2f75456c9fc4a689d684bce2961b97ecf908 in your log, I'd like to see if the blob by the digest 8e3d9783c8401812e442d0302c2b2f75456c9fc4a689d684bce2961b97ecf908 is the layer containing the common jar.
Assuming that the blob was eventually uploaded, can you download the blob and check the contents? The blob will most likely be .tar.gz if it's  a layer. It could be a plain JSON if not a layer. I'm trying to see if it is the layer with the common jar you mentioned. If the three jib-modules build and push the same layer, I think theoretically it can be problematic.
One way I can think of to download the blob is to use Crane. For example, crane pull <your image> /dev/stdout | tar -zvf - will download all the layers of the image and its manifest JSON and container configuration JSON in the current directory. (Note you should pull the image built by direct Jib push using jib:build. An image pushed using docker push after jib:dockerBuild will have different layer digests.)

Closing as we haven't heard back from the user. Also the user doesn't seem able to reproduce this after some change on their side. But I suspect this is a bug in the registry (Artifactory).

Yes, seems it was related to Nexus bug, maybe this one https://issues.sonatype.org/browse/NEXUS-20640
I did not see it after we had Nexus upgraded.


DDS 8.8 Alpha Luminance - incorrect conversion

When trying to convert textures saved as 8.8AL to other formats using texconv the channels are converted incorrectly.
Sample texture, L8A8

L8A8 to 8888RGBA

L8A8 to BC3_UNORM

L8A8 to BC7_UNORM (opened in Nvidia Texture Tools, channels look the same as when converting to BC3)

Textures saved as 8 Luminance and 8 Alpha convert correctly.
Attaching test 88AL texture below
88AL_sample.zip

TL;DR: Use the -xlum texconv switch.
The DirectXTex library 'default conversions' for legacy DDS formats matches those from DDSTextureLoader. These mappings are based on 'no-conversion' behavior so that the data is directly loaded into memory.
In this case, this means D3DFMT_A8L8 maps to the only DXGI format that exactly matches its bit and channel count DXGI_FORMAT_R8G8_UNORM. Therefore L8 channel is going to map to the RED channel your target format, and the A8 is going to map to the GREEN channel in the target format. That is why you end up with a "Yellow" shape with an all opaque-alpha channel.
Semantically, these are quite different of course, so there are a number of other ways to map them. The -xlum switch in texconv (which enables the DDS loader flag DDS_FLAGS_EXPAND_LUMINANCE) will instead map the L8 channel to RED, GREEN, and BLUE and the A8 channel will end up in the alpha channel of the target format.

If you were trying to render classic D3DFMT_A8L8 content directly loaded into memory, you'd have the shader do the conversion from DXGI_FORMAT_R8G8_UNORM.

I see, very sorry, not sure how I missed that in the documentation.

Not a problem!
I add tables to these wiki pages to help clarify this behavior in the docs.
https://github.com/microsoft/DirectXTK/wiki/DDSTextureLoader#remarks
https://github.com/microsoft/DirectXTex/wiki/DDS-I-O-Functions#remarks


Getting "repo.getLineNumberAnchor is not a function" after typedoc update

Plugin
@knodes/typedoc-plugin-monorepo-readmes
Typedoc plugin(s) version(s)
^0.23.1
Typedoc version
0.23.18
Describe the problem

TypeDoc exiting with unexpected error:
TypeError: repo.getLineNumberAnchor is not a function
    at Object.createSourceReference (/Users/eldar/WebstormProjects/or-sdk-next/node_modules/.pnpm/@knodes+typedoc-pluginutils@0.23.1_typedoc@0.23.18/node_modules/@knodes/typedoc-pluginutils/dist/utils/reflection-source.js:49:32)
    at MonorepoReadmePlugin._modifyModuleIndexPage (/Users/eldar/WebstormProjects/or-sdk-next/node_modules/.pnpm/@knodes+typedoc-plugin-monorepo-readmes@0.23.1_typedoc@0.23.18/node_modules/@knodes/typedoc-plugin-monorepo-readmes/dist/plugin.js:61:68)
    at Renderer.<anonymous> (/Users/eldar/WebstormProjects/or-sdk-next/node_modules/.pnpm/@knodes+typedoc-plugin-monorepo-readmes@0.23.1_typedoc@0.23.18/node_modules/@knodes/typedoc-plugin-monorepo-readmes/dist/plugin.js:32:30)
    at triggerEvents (/Users/eldar/WebstormProjects/or-sdk-next/node_modules/.pnpm/typedoc@0.23.18_typescript@4.8.4/node_modules/typedoc/dist/lib/utils/events.js:191:43)
    at triggerApi (/Users/eldar/WebstormProjects/or-sdk-next/node_modules/.pnpm/typedoc@0.23.18_typescript@4.8.4/node_modules/typedoc/dist/lib/utils/events.js:167:13)
    at eventsApi (/Users/eldar/WebstormProjects/or-sdk-next/node_modules/.pnpm/typedoc@0.23.18_typescript@4.8.4/node_modules/typedoc/dist/lib/utils/events.js:60:18)
    at Renderer.trigger (/Users/eldar/WebstormProjects/or-sdk-next/node_modules/.pnpm/typedoc@0.23.18_typescript@4.8.4/node_modules/typedoc/dist/lib/utils/events.js:389:13)
    at Renderer.renderDocument (/Users/eldar/WebstormProjects/or-sdk-next/node_modules/.pnpm/typedoc@0.23.18_typescript@4.8.4/node_modules/typedoc/dist/lib/output/renderer.js:151:14)
    at /Users/eldar/WebstormProjects/or-sdk-next/node_modules/.pnpm/typedoc@0.23.18_typescript@4.8.4/node_modules/typedoc/dist/lib/output/renderer.js:135:22
    at Array.forEach (<anonymous>)

What did you expected ?
Expecting no errors
UPD:
<EMAIL_ADDRESS>- still works
<EMAIL_ADDRESS>- broken

Yes indeed. I saw this method was modified in their changelog.

Truth is, the next update is kind of stuck because I'm trying to preserve backward compatibility with the current version of the plugin, in order to follow semver notation for 0.x.x versions. And I would gain SO MUCH work time by dropping this version behavior entierly & focus only on the new behavior.
I was hoping typedoc would release a 0.24.0 version soon so that I can legitimately do breaking changes....

possible its not relevant after https://github.com/TypeStrong/typedoc/issues/2065

The readme stuff will be dropped anyway, but other features are still relevant.

Im also use @knodes/typedoc-plugin-pages for adding changelog pages to packages, it works fine with latest typedoc

@mokone91 hey! I also get this error right now and can't get why did you decide to close it?

Hi! because 'readmes' feature added to typdeoc core and this plugin can be disabled

@mokone91 ah, thanks a lot!

@mokone91 not sure to understand
The error comes from this file https://github.com/KnodesCommunity/typedoc-plugins/blob/main/packages/pluginutils/src/utils/reflection-source.ts#L48
function getLineNumberAnchor no longer exists but is used by this plugin

@adrienboulle this plugin is not needed anymore, since it's functionality became native in jsdoc since this release<EMAIL_ADDRESS>(release):

In packages mode, readme files will now be automatically included if present, https://github.com/TypeStrong/typedoc/issues/2065.

The errors not only occurs in  @knodes/plugin-monorepo-readmes but also in @knodes/typedoc-plugin-pages:

@adrienboulle 🤷♂ try to instal; latest typedoc & @knodes/typedoc-plugin-pages

that's what I did oc ;)

@souljorje this function call on main branche calls the utils function that make this function call that does not exist

Yeah sry about that. Unfortunately, I'm super busy right now, but a new version will hopefully be released soon. It's almost done.


feat: trading client account configurations

Linked to https://github.com/alpacahq/alpaca-py/projects/1#card-81800339


[submodule-sync] bot-submodule-sync-branch-22.04 to branch-22.04 [skip ci] [bot]

submodule-sync to create a PR keeping thirdparty/cudf up-to-date.
HEAD commit SHA: b2019790806492bcd152eb08dae728bca51e8769, cudf commit SHA: https://github.com/rapidsai/cudf/commit/a552afb88c6496814326651555bb9dde2a87028d
This PR will be auto-merged if test passed. If failed, it will remain open until test pass or manually fix.


Update README.md

Add an instruction for Google Cloud SDK installation and authentication step which is temporarily required for resolving some dependency problems.

엥? 저는 merge 권한이 없네요;;;
@w4-hyunseok 님 merge 해주시고
저 권한 좀 주세요.


Change notification for queries

The current primitives provided by mvstore/mvsqlite is enough to implement efficient change notification for queries: notify the app when the result of running a query may change.
The mechanisms involved are read_set and the interval field provided by the /stat endpoint. Pages read by a transaction can be recorded, and later checked against /stat response.
However, exposing this would either need modification to SQLite itself, or the use of thread-local state.

Cool use case


Fixed the responsiveness of cards of About page

Related Issue
Fixes:  #2763
Description

Fixed the responsiveness of cards of About page in mobile-view.
Now, the page will look good on mobile view as well.

Type of PR

[x] Bug fix
[ ] Feature enhancement
[ ] Documentation update
[ ] Other (specify): _______________

Screenshots / videos (if applicable)

Checklist:

[x] I have made this change from my own.
[ ] I have taken help from some online resources.
[x] My code follows the style guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] I have made corresponding changes to the documentation.
[x] My changes generate no new warnings.
[x] I have tested the changes thoroughly before submitting this pull request.
[x] I have provided relevant issue numbers and screenshots after making the changes.

@huamanraj @anuragverma108 please review & merge my pull-request under GSSoC'24

@RitiChandak can you please add that level1 label in this pr please 🙏

@RitiChandak @huamanraj @anuragverma108 can you please add that level1 label in this pr please 🙏 because I will not get points if level labels are not added in this pr. Hope you understand

sorry for responding late! its done

@RitiChandak @huamanraj @anuragverma108 can you please add that level1 label in this pr please 🙏 because I will not get points if level labels are not added in this pr. Hope you understand

sorry for responding late! its done

@huamanraj can you please do the same for pr #2750 🙏


BLEU score

I am running under Windows 10, but I found that the bleu score is not running, why?

Me too.Have you solved the issue?

I am running under Windows 10, but I found that the bleu score is not running, why?

you need download "active Perl". This code used a Perl code to calculate BLUE. You could check the Calculate BLUE code in utils.py.


How to setup createUploadSession when sending a (new) file to a shared folder (400 Bad Request error)

Although official documentation quite rich, I can't find any details of how exactly I should upload the large file to a shared folder (not to my drive).
I've followed the docs:
POST /drives/{driveId}/items/{itemId}/createUploadSession

{"Item":{"@microsoft.graph.conflictBehavior":"replace","name":"20200310-155252-700.jpg"}}

Where the itemId is the folder id I am trying to upload that file to.
However, it returns 400 Bad Request error Name from path does not match name from body message.
But the request path provided in docs doesn't expect passing the file name at all!
I kind of suspecting that the itemId should be an existing item on the drive (not even inside the folder), rather than a folder id to create that file in, but a) I am not sure about that and b) how is it possible to have an empty file without any content before having that upload complete (again, if I am right about b)).
Thanks!

Thanks for your feedback.  Could you provide more information about the request that failed?  Such as a request ID or correlation ID?  (I'll tag w/ a label that our helpful bot will fill in w/ details, thanks!)

The request is quite simple and straight forward:
 POST /v1.0/drives/b!K.....iY/items/01JGS.....WGFD/createUploadSession https/1.1
 Host: https://graph.microsoft.com
 Authorization: Bearer ey...A
 Content-Type: application/json; charset=utf-8
 Content:
 {"Item":{"@microsoft.graph.conflictBehavior":"replace","name":"20200311-173207-250.jpg"}}

Response:
 Duration: 00:00:01.3050835
 HTTPS/1.1 400 Bad Request
 Cache-Control: private
 request-id: 4e416429-1c80-40d8-b559-fa90213c6197
 client-request-id: 4e416429-1c80-40d8-b559-fa90213c6197
 x-ms-ags-diagnostic: {"ServerInfo":{"DataCenter":"West Europe","Slice":"SliceC","Ring":"5","ScaleUnit":"003","RoleInstance":"AGSFE_IN_29"}}
 Strict-Transport-Security: max-age=31536000
 Date: Wed, 11 Mar 2020 17:32:07 GMT
 Content-Type: application/json
 Content-Length: 244
 Content:
 {
  "error": {
    "code": "invalidRequest",
    "message": "Name from path does not match name from body",
    "innerError": {
      "request-id": "4e416429-1c80-40d8-b559-fa90213c6197",
      "date": "2020-03-11T17:32:08"
    }
  }
}
 Duration: 00:00:00.0001839

Any updates? It seems I am following official documentation correctly.

I'm seeing the same thing when trying to create an upload session on a shared folder.

 POST /v1.0/drives/b!r.....DQ/items/01QW.....Z4k/createUploadSession https/1.1  Host: https://graph.microsoft.com  Authorization: Bearer <access-token>  Content-Type: application/json; charset=utf-8  Content:  {"Item":{"name":"testfile.txt"}}
Response:
{'error': {'code': 'invalidRequest',            'innerError': {'date': '2020-03-23T21:31:17',                           'request-id': '0e91e839-7d88-4f4f-ae38-94b5edcd54ab'},            'message': 'Name from path does not match name from body'}}
I'm using the python requests library to make the POST request, but the behavior is the same.

@msft-github-bot, are your services so buggy and just don't work?

@alextricity25, Hallelujah, I've finally found the solution myself!
This is just an issue with their documentation. It seem has such low quality unlike of many other products!
So, the correct request url must be as follows (instead of what's said in the docs):
$"{baseUrl}/drives/{drive}/items/{itemId}:/{fileName}:/createUploadSession"
It worked for me well.

After two weeks and "rapid" help from Microsoft, I've found the solution myself. Thanks [not] guys for helping on a primitive question! Well done!

@agat366 : thx for correct url!

Please reopen this issue and don't close it until the documentation is fixed.
This product should not be considered working until a user can use it when following the documentation.
Maybe change the title to mention that this is a documentation problem.
Also this is not the only place where the documentation is wrong or incomplete.

Ran the same issue. Please reopen and update the documentation.

I have opened a new issue, #1319, which includes this problem as well as another problem where the documentation for the body of the request does not match what actually works. The new issue has been tagged and added to the backlog.
createUploadSession when sending a (new) file to a shared folder (400 Bad Request error) #1319

@alextricity25, Hallelujah, I've finally found the solution myself! This is just an issue with their documentation. It seem has such low quality unlike of many other products! So, the correct request url must be as follows (instead of what's said in the docs): $"{baseUrl}/drives/{drive}/items/{itemId}:/{fileName}:/createUploadSession"
It worked for me well.

thank you very much！！！
solved my problem. It's two years ago and it still hasn't changed.

Still not fixed :/


Remove recompose library

Recompose library was introduced to easily add state to functional components. It has been deprecated with the new react hooks and it brings unnecessary complexity to the code.
React hooks are now live, so components can be migrated either to regular components or to hooks.
We want to migrate the following files:

[ ] /src/components/ContributeAs.js
[ ] /src/components/ContributeDetails.js
[ ] /src/components/CreateProfile.js
[ ] /src/components/StyledInputGroup.js
[ ] /src/components/StyledRadioList.js
[ ] /src/components/StyledTooltip.js
[ ] /src/lib/withFallbackImage.js
[ ] /src/pages/createPledge.js
[ ] /src/pages/discover.js

Closed this in #1383

Amazing job @flickz, thank you!!

@flickz @Betree Seems that recompose was not removed, who can take care of that?

I will

Closed in #1487


Not showing diagnostics for unused variables

Screenshot

Ascribe
This is because in v0.1.5+ VSCode extension, we create __VLS_ctx by using all the available bindings without filtering whether it's used in template.

We launch the version v0.1.11 for introducing our custom ESLint parser, and you can config by yourself for linting code. It's recommended that putting this check into ESLint phase.

https://github.com/vue-vine/vue-vine/releases/tag/v0.1.11


Server superValidate mutates the zod number type field on invalid

Description
When I have a zod number type schema, after running through server superValidate, it mutates the field with NaN if the field value is invalid.
This creates a problem because I want to send the untouched field values back to the client so that we can display the error message and allow the user to edit the field.
import { z } from 'zod';
import { superValidate } from 'sveltekit-superforms/server';

const input = new URLSearchParams({ num: 'abc', str: 'abc' });
const schema = z.object({ num: z.number(), str: z.string().min(5) });
const formData = await superValidate(input, schema);
console.log('formData', formData);

// Console output
formData {
  valid: false,
  errors: {
    num: [ 'Expected number, received nan' ],
    str: [ 'String must contain at least 5 character(s)' ]
  },
  data: { num: NaN, str: 'abc' },
  empty: false,
  constraints: { num: { required: true }, str: { minlength: 5, required: true } }
}

This is by design, since the schema type for num is number, no other value than a number will be set on it, to preserve type safety. If you really need the value to stay the same, you need to use z.string() instead, and perhaps an extended schema with z.coerce.number() that will do the final validation.
In #109 there is an idea to separate the input and output schemas, but this requires quite a bit of design changes, so it won't be made in the near future.

Got it; I tried using zod.pipe to solve these coerce issues -- see zod.pipe. But superValidate doesn't support  ZodPipeline. Is that an easy addition?
"Unsupported Zod default type: ZodPipeline"

Adding support for ZodPipeline with default values is no problem (will be added for 1.0), but it still won't solve the type issue unfortunately. The schema output type is number, so a number must be set on the data.
What I was thinking about is a secondary schema that will do the coercion, and if it's not valid, return the data of the first schema (that contains the strings).

We can do input field validations on the client side. But the issue is when client-side JS isn't working (the case that Rich Harris constantly talks about with mobile), then if a user sends a non-numeric value on input, then the server overrides the value on the input field as NaN on validation.

Yes, hence my suggestion to use a secondary schema for the data processing, and the first one containing strings for validation. Both schemas are used on the server.

Something like this
z.string().nonempty().regex(/^\d{1,7}$/).transform((str) => Math.abs(Number(str))

@kevbook The following has worked pretty well for me and doesn't require the use of regular expressions:
const schema = z.object({
  example: z.preprocess((x) => (x ? x : undefined), z.coerce.number().int().min(1)),
});

Unfortunately it does still require making the actually input element a text input and not a number input

There is a preprocessed option for superValidate that passes through the value as it is, if that's helpful. Something like:
const form = await superValidate(data, schema, { preprocessed: ['example'] });


Update log4cats-slf4j to 2.2.0

Updates org.typelevel:log4cats-slf4j from 2.1.1 to 2.2.0.
GitHub Release Notes - Changelog - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

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

labels: library-update, early-semver-minor, semver-spec-minor

Superseded by #101.


Add phone sensor compass ?

Hello I would like to know what code should you add to have the compass on the phone which allows you to move with the phone sensors, I saw it on the official site it works but on my own site I don't have it ?
Thank You

Are you using HTTPS? Browsers disable access to device orientation data on unencrypted HTTP connections for security reasons.

I've been trying to establish https for quite some time but I can't. Is there a way around this? (I'm on apache)

No, it's a browser security restriction. There's no way around it.


CFFL

CFFL

Linter check found the following problems:
The following problems have been found:
ERROR: /tmp/abs_68l7oy_p7h/clone/recipe/meta.yaml:20: missing_wheel: For pypi packages, wheel should be present in the host section
ERROR: /tmp/abs_68l7oy_p7h/clone/recipe/meta.yaml:26: missing_pip_check: For pypi packages, pip check should be present in the test commands
ERROR: /tmp/abs_68l7oy_p7h/clone/recipe/meta.yaml:38: http_url: http://github.com/kbandla/dpkt is not https
Errors were found


[XS] use correct package name in error messages

@mvpatel2000 Can you try pip install 'mosaicml[nlp]'?

@mvpatel2000 Can you try pip install "mosaicml[nlp]"?

Works!

Good catch @mvpatel2000 ! And thanks @moinnadeem for the fix!


[WIP] [BLOCKED] Add Python 3.8 testing

Blocked by pyflakes; see https://github.com/ethereum/py-evm/pull/1885#issuecomment-564213570.

What was wrong?
Nothing; Python 3.8 has been released.
How was it fixed?
See #1872 for even more verbose noise.
Note: Many lint fixes are 99.99% cargo-culting, especially those relating to low-level APIs, e.g. AccountDatabaseAPI, OpcodeAPI, VirtualMachineAPI. I don't understand the structuring of the codebase to make an informed decision on what has to be chiseled, the underlying ABCs or the consumers. So my principle is/was "less LOCs changed == better".

[x] Now installing libleveldb-dev on all CI jobs, so we can get it on Python 3.8 jobs, so it can build a plyvel wheel locally (otherwise not yet available).
[x] Updated coincurve dep to latest: that has a Python 3.8 wheel: fixes installation on Arch Linux.
[ ] Updated pyflakes dep to latest (so it has Python 3.8 support).
[x] Updated mypy due to nested dependency (typed-ast) local wheel build fail.

[ ] Fixed what newer mypy found to be broken (lint jobs across all Pythons).

[x] Updated hypothesis to latest (not much consideration given).

[x] Fixed introduced failure (core jobs across all Pythons).

Closes #1872 as implemented.
To-Do

[ ] Clean up commit history.
[ ] Add entry to the release notes.
[ ] Update docs.
[ ] Try running trinity and see if API interfaces are now broken.

Cute Animal Picture

Source: Cmycherrytree, via imgur

Remaining lint failures are actual inconsistencies in the codebase.

You might also want to bump the minimum supported eth-utils version to v1.8.0 as Python3.8 support was added in that version.

Remaining errors in py36-lint seem related:
eth/vm/state.py:164: error: Incompatible return value type (got "Tuple[Hash32, JournalDBCheckpoint]", expected "Tuple[Hash32, UUID]")
eth/vm/state.py:172: error: Argument 1 to "discard" of "AccountDatabaseAPI" has incompatible type "UUID"; expected "JournalDBCheckpoint"
eth/vm/state.py:176: error: Argument 1 to "commit" of "AccountDatabaseAPI" has incompatible type "UUID"; expected "JournalDBCheckpoint"

This has me scratching my head.

More importantly to subj, py38-lint fails with:
  File "/home/circleci/repo/.tox/py38-lint/lib/python3.8/site-packages/pyflakes/checker.py", line 696, in getNodeHandler
    self._nodeHandlers[node_class] = handler = getattr(self, nodeType)
AttributeError: 'FlakesChecker' object has no attribute 'CONSTANT'

This comes from pyflakes; the issue has already been reported upstream and fixed. It's not in a tagged release, however - therefore marking PR blocked.

While waiting for pyflakes, I decided to review how much these changes impact trinity. Things are not looking good.
There are nested dependencies that have similar pinnings as py-evm has currently. libp2p (with its coincurve pinned in the latest tagged release) jumps out immediately, as that'll produce a pip installation error.
Downstream projects with py-evm as a dependency will get stuck on old versions of py-evm if this gets merged, until a time when other dependencies get their dependencies updated...

Just noticed that a new pyflakes has been released - will try to revisit next week.


RO-4193 Update master dependencies

Automated dependency update pull request, see individual commits for details.
Issue: RO-4193

recheck_xenial_no_artifacts_swift_deploy
recheck_container_-syntax_tox-test

recheck_container_ansible_syntax_tox_test

Closing due to conflicts, will wait for rerun.


Update peerDependencies to support Grunt 1.0

Update peerDependencies to support Grunt 1.0
Hello,
This is an automated issue request to update the peerDependencies for your Grunt plugin.
We ask you to merge this and publish a new release on npm to get your plugin working in Grunt 1.0!
Read more here: http://gruntjs.com/blog/2016-02-11-grunt-1.0.0-rc1-released#peer-dependencies
Also on Twitter: https://twitter.com/gruntjs/status/700819604155707392
If you have any questions or you no longer have time to maintain this plugin, then please let us know in this thread.
Thanks for creating and working on this plugin!
(P.S. Close this PR if it is a mistake, sorry)

Is there a way to help with testing this feature and getting this merged? I am very much in love with this plugin, as it helps on building favicons and article images over at https://github.com/fboes/broilerplate

@fboes That's very nice to hear. If you could just use this PR and play around with it and confirm it works, I'm fine with merging it.

I'm always happy to assist. 😁  I just ran my Broilerplate-Gruntfile.js with the proposed alterations to grunt-image-resize. This is the result:
$ grunt image_resize
Running "image_resize:fav32" (image_resize) task
>> Image htdocs/images/logo.png resized to htdocs/favicon.ico

Running "image_resize:fav96" (image_resize) task
>> Image htdocs/images/logo.png resized to htdocs/favicon-96x96.png

Running "image_resize:fav152" (image_resize) task
>> Image htdocs/images/logo.png resized to htdocs/apple-touch-icon-precomposed.png

Running "image_resize:fav196" (image_resize) task
>> Image htdocs/images/logo.png resized to htdocs/favicon-196x196.png

Running "image_resize:tile128" (image_resize) task
>> Image htdocs/images/logo.png resized to htdocs/images/tile-128x128.png

Running "image_resize:tile270" (image_resize) task
>> Image htdocs/images/logo.png resized to htdocs/images/tile-270x270.png

Running "image_resize:tilewide" (image_resize) task
>> Image htdocs/images/logo.png resized to htdocs/images/tile-558x270.png

Running "image_resize:tile558" (image_resize) task
>> Image htdocs/images/logo.png resized to htdocs/images/tile-558x558.png

Running "image_resize:article_images" (image_resize) task
>> Image htdocs/images/originals/article.jpg resized to htdocs/images/articles-640/

Running "image_resize:article_images2" (image_resize) task
>> Image htdocs/images/originals/article.jpg resized to htdocs/images/articles-1280/

Done.

Also running npm outdated and npm update does not yield any warnings (as it did before this patch). And the dependencies of grunt-image-resize are still fine with Grunt 1.0.0 as far as I can tell. So for me this single line of change is working just fine. 👍


Model binding Route and Body into same object

I would like parameters to model bind to the same object from both the Route and Body.  Example:
[Route("[controller]")]
public class FoosController
{
    [Route("{id}"]
    [HttpPut]
    public IActionResult Create(Foo foo)
    {
        Foo newFoo EditFoo(foo);
        return new ObjectResult(newFoo);
    }

    public class Foo
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Description { get; set; }
    }
}

And then send the following to PUT /foos/5
{
    "name": "Robots",
    "description": "Toy robots for sell in this example."
}

And the model to be populated as such:
foo.Id = 5,
foo.Name = "Robots",
foo.Description = "Toy robots for sell in this example."

I've researched and understand that once [FromBody] is put into the action method all other binding is not done as it is a separate thing. That being sent off to the de-serializer and bound there.
Is there a way to tap into this? Or have an ActionFilter that will then run the RouteBinding on it too?
Or... can we have definitions like this:
public class foo
{
    [FromRoute]
    public int Id { get; set; }

    public string Name { get; set; }
    public string Description { get; set; }
}

Then set up the action to be public IActionResult Edit([FromBody]Foo foo) but then anything with a [FromRoute] would try to bind that way?

The main reason I'm asking is because I've set up model validation as an ActionFilter which is occuring right after model binding. So doing this:
[HttpPut("{id}"]
public IActionResult Edit(int id, [FromBody]Foo foo)
{
    foo.Id = id;
    EditFoo(foo);
}

This is giving me model validation errors because when my foo gets validated it still doesn't have the Id set yet.

@dougbu ?

@kjbetz model binding attributes with a type bound using [FromBody] are ignored. I haven't tried it but the following should do the trick as long as you adjust your validation to match.
public class foo
{
    [FromRoute]
    public int Id { get; set; }

    [FromBody]
    public Bar Bar { get; set; }
}

public class Bar
{
    public string Name { get; set; }
    public string Description { get; set; }
}

I've set up model validation as an ActionFilter which is occurring right after model binding.

Separately, MVC's build in validation runs right after model binding. What do did you mean here? Is this a separate type of validation? (If so, you might consider foo implementing IValidatableObject instead. Might be a bit more straightforward.)

@dougbu Yes! Thank you!

Separately, MVC's build in validation runs right after model binding. What do did you mean here? Is this a separate type of validation? (If so, you might consider foo implementing IValidatableObject instead. Might be a bit more straightforward.)

I was getting things mixed up. I am using MVC's built in model validation (well actually FluentValidation -- but it's tapped into MVC's default.) I have an ActionFilter to automatically do the checks if model was valid.
But, this works. I know have some models set up like this
public class Foo
{
    [FromRoute]
    public int Id { get; set; }

    [FromBody]
    public FooBody Body { get; set; }
}

public class FooBody
{
    public string Name { get; set; }
    public string Description { get; set; }
}

Then my controller just looks like this:
[HttpPut("{id}")]
public IActionResult Edit(Foo foo)
{
    // do stuff
    return Ok();
}

I send this json in the body to PUT /foos/5
{
    "name": "foo name",
    "description": "foo description"
}

And I can now access all things like this:
foo.Id = 5,
foo.Body.Name = "foo name",
foo.Body.Description = "foo description"

And it's being validated correctly, etc...
Thank you!

Glad everything works for you now.


WIP: Move extension to cli plugin

Fixes #293.

@romain-grecourt The fix for Helidon 2.0.2 trying to force the helidon-maven-plugin version did not work. I implemented the ModelProcessor approach here instead and it works fine; however, it adds some complexity and I'm on the fence about whether this is worth it:  see commits f5470d7 and c062637.

I think we should avoid generating new files in the user's project directory. This is typically something that should be versioned. I'm still not sure I understand #293 fully yet. We should discuss this.

As we agreed, I've removed the ModelProcessor machinery.


Bug fix: address error in use of re-ordered tiles for cube-sphere-based assimilation

@saraqzhang : @weiyuan-jiang now knows exactly what the problem is and will fix it as soon as he can.

@weiyuan-jiang  @gmao-rreichle
Weiyuan, I  completed the scaling prm file and used them in testing this branch with scale=.true. The tile num problem in observations_f is fixed and  tile_id  also works properly when applying scaling prm to obs with matching tile.   So I think you can issue pull request for merging to develop branch.
Sara

@saraqzhang , @weiyuan-jiang : thanks!
@weiyuan-jiang , please go ahead and create the pull request.  With any luck, we can merge it before we (hopefully) create the beta3 pre-release.

Addressed with #152


Cannot use lz4 as plugin dependency

Welcome!

[X] Yes, I've searched similar issues on GitHub and didn't find any.
[X] Yes, I've searched similar issues on the Traefik community forum and didn't find any.

What did you do?
I'm using the lz4/v4 library in a plugin but it doesn't get loaded in Træfik, got the following error:
index lz4.BlockSize is out of bounds

What did you see instead?
index lz4.BlockSize is out of bounds

What version of Traefik are you using?
v3.1
What is your environment & configuration?
# (paste your configuration here)

Add more configuration information here.
If applicable, please paste the log output in DEBUG level
No response

Hey @darkweak,
It's probably a bug on https://github.com/traefik/yaegi, you might want to open an issue their instead.
In the meantime, Traefik now supports WASM as a plugin engin, it could be worth a try https://plugins.traefik.io/create :)

Hey @darkweak, you should be able to use unsafe without any issue in WASM with Traefik v3.1+.


NativeModules is {}

Description
I followed the construct nativemoules doc and When I use import {NativeModules} from 'react-native',I always get NativeModules is {}.
And When I use 'Debug JS Remotely' the NativeModules is correct like Object {ImageEditingManager: Object ....}
I tried to find how this happened, and I found file named 'NativeModules.js' and lines here
if (global.nativeModuleProxy) {
// if not Debug JS Remotely code will go here and global.nativeModuleProxy will be {}
  NativeModules = global.nativeModuleProxy;
} else {
//if Debug JS Remotely enabled code goes here and NativeModules can be correctly load
 .....
}

Reproduction
Solution
How can I resolve it without modify the react-native file? How does the global.nativeModuleProxy mean?
Additional Information

React Native version:
react-native-cli: 2.0.1
react-native: 0.39.2
Platform: Android Emulator
Operating System: MacOS

seems that I do not know what I'm saying,so close it.


Removing snake-yaml dependency

Fixes #224 As we have already upgraded Quarkus

The version pulled in by the Quarkus dependencies is still 1.31 unfortunately. CVE-2022-38752 requires 1.32.


extra configuration file for cassandra

Hi, i would like to specify cassandra configurations in an extra config file to seperate database configuration from application configuration. Therefore it would be nice to import more than one config file.
Could you add either the support for giving additional files as parameters to the application or to include them in the existing one?

Hi @tobiasthurow,
Can you paste here a collection of mock configuration files as you would expect them. I fail to see the use-case for now.

There are several applications running with cassandra so the use would be to collect all these configurations in a single directory. On the other side the application based configuration is located in an other directory.
In one config there would be the information about the functions it provides:
carbon:
  host: "<IP_ADDRESS>"
  port: 2003
  rollups:
    - 10s:1d
    - 60s:14d
    - 10m:60d
    - 30m:180d
    - 1h:1y
    - 12h:2y
    - 1d:3y
http:
  host: "<IP_ADDRESS>"
  port: 18080
logging:
  overrides:
    io.cyanite: info
  level: info
  console: false
  files:
    - "/log/cyanite/cyanite.log"

In an other config cassandra data would be defined:
store:
  cluster:
    - "host1"
    - "host2"
    - "host3"
    - "host4"
  keyspace: 'metric'
  username: "cyanite"
  password: "xxxxxxxxx"
  chan_size: 10000
  batch_size: 50

I think this is a need better served by common Configuration Management tools such as puppet, chef, ansible and friends.
If you're not relying on any configuration management tools, I'd suggest having a small shell pre-processor which would run before launching the daemon.
I don't expect to work on the configuration loading code for the foreseeable future and I don't think I want to move away from a single file for now. Sorry.


Old CloudFormation stacks randomly appearing after deleting/re-creating project.

Describe the bug
Hi! Yesterday I had problems while pushing a new Hello World Lambda function with project resources access using the Amplify CLI (push kept failing, unfortunately I did't save the error trace at the moment) so I deleted the project using amplify delete to start again.
When re-creating the project (after making sure that everything was cleaned up on my AWS console), some random CloudFormation nested stacks started to appear on the console.
From the Amplify console I can see Authentication and API on my backend environment (even if I have not added them), but the most important thing is that I can't clean that. When I run amplify pull it says that there is nothing to pull, same thing on push (locally I have a fresh project).
It has been impossible to go forward in this project due to awful and strange errors/bugs.
Sorry that I can't provide you with more details. I will proceed to manually delete the ghost created CloudFormation nested stacks to see if I can get all synchronised again.
Amplify CLI Version
<EMAIL_ADDRESS>globally installed using npm v6.14.5.
To Reproduce
N/A.
Expected behavior
N/A.
Screenshots
N/A.
Desktop (please complete the following information):

OS: macOS Catalina 10.15.5
Node Version. v14.4.0

Additional context
N/A.

UPDATE: I've just finished cleaning everything up. I've used a CloudFront template from a clean Amplify project and manually corrected drifts. Everything seemed to be ok and in sync. However, once I redeployed one of the connected branches (manually from Amplify console) (along with my dev backend environment), all the CloudFormation stacks appeared again. The whole project seems to be messed up.

UPDATE: Figured it out. There was an old version of my backend environment commited in my connected branches. Each time that I manually re-deployed a branch, my whole environment got overwritten. I also found that this was caused because of an option that can only be set when connecting the first branch od the project (something about updating the backend environment on every commit). I don't know how useful could that option be, at best it creates multiple sources of truth and this behaviour is not documented anywhere. No warnings about the environment being overwritten either.

@ernestostifano I see that you figured out and solved the problem. Since the console is connected to your branches source control is the source of truth.
Is there anything we can make it to have a better UX/DX either in Amplify CLI or Amplify Console side?
If yes, please describe the missing scenario, so we can turn it into a feature request/enhancement either in the CLI or Console. If not, just close the issue.


Support gomemlimit from requests

As limits is some memory for burst cases, I think the better way to set gomemlimit is to set it within requests.
Is there a way to do this?

Did you mean limiting memory within a request like an HTTP request? It's not possible in Go. The Go memory limit system only sets the soft limit for the entire Go runtime.

Please let me know if I understand your question correctly. If you think I did, I'll close this issue.

Hi @KimMachineGun , thank you for reply.
The question is that pods are having memory request and memory limit, so can we choose which value to use, sometimes using requests is more accurate and prevents OOM, but some people likes to use limit.

@bohdand-weka
Thank you for letting me know. I completely misunderstood 😅.
There is no way to retrieve memory requests from the system for now. So, the best way to use automemlimit with memory requests is using Kubernetes Downward API.
This post might be helpful for you.


fix string comparison

ERROR: /Users/svaddi/SreeVaddi/source/github/sreev/incubator-heron/heron/schedulers/src/java/BUILD:178:1: Building heron/schedulers/src/java/libmesos-scheduler-java.jar (8 source files) failed (Exit 1)
heron/schedulers/src/java/org/apache/heron/scheduler/mesos/framework/LaunchableTask.java:70: error: [ProtoStringFieldReferenceEquality] Comparing protobuf fields of type String using reference equality
      if (resource.getName() == name && resource.getScalar().getValue() >= value) {
                             ^
    (see https://errorprone.info/bugpattern/ProtoStringFieldReferenceEquality)
  Did you mean 'if (resource.getName().equals(name) && resource.getScalar().getValue() >= value) {'?
heron/schedulers/src/java/org/apache/heron/scheduler/mesos/framework/LaunchableTask.java:98: error: [ProtoStringFieldReferenceEquality] Comparing protobuf fields of type String using reference equality
      if (resource.getName() == name) {
                             ^
    (see https://errorprone.info/bugpattern/ProtoStringFieldReferenceEquality)
  Did you mean 'if (resource.getName().equals(name)) {'?
INFO: Elapsed time: 471.929s, Critical Path: 143.31s
INFO: 850 processes: 744 local, 106 worker.
FAILED: Build did NOT complete successfully

attached the patch:
issue-3047.patch.txt

This was fixed/included in cbe1e424ea9


Publish StructuredText as package

The StructuredText component is generic and could be published as a separate package.
Also see Astro: publish to npm.

@Siilwyn is this something you'd be interested in doing or guiding as part of our Open Source efforts?

Yes I am! Just need some time :)

DatoCMS beat us to it! https://github.com/datocms/astro-datocms/tree/main/src/StructuredText
So we should see if we can use that package instead


Docker build stopped when installing the ib-gateway 980

"""
n
is invalid.
Where should IB Gateway 980 be installed?
[/root/Jts/ibgateway/980]
The directory:
"""
Nothing changed in the dockerfile.
This is the error message. How to debug this?
Thank you.

I made a fork (and PR), which works with v980: https://github.com/kaminsod/ib-gateway-docker


Docs: Update installation guide for Fedora

This installation guide supports Fedora 26.
Fixes #731
Signed-off-by: Gabriela Cervantes<EMAIL_ADDRESS>

lgtm.
@iphutch - could you take a look please?

Hi @iphutch - could you check this 2-liner please?


difference between workerd and worker in conditions

I noticed that waku is using workerd in the import conditions.
https://github.com/dai-shi/waku/blob/a7e909f87bb8965a781323ba18902fbb454e5e9f/packages/waku/src/lib/handlers/dev-worker-impl.ts#L139-L140
I think this is not correct. workerd is an alias for Cloudflare workers; I guess you are mentioning worker, which is for the web worker.
https://developers.cloudflare.com/workers/wrangler/bundling/#conditional-exports

some examples in real world
https://github.com/facebook/react/blob/5c607369ceebe56d85175df84b7b6ad58dd25e1f/packages/react-dom/package.json#L56-L59

https://github.com/facebook/react/blob/5c607369ceebe56d85175df84b7b6ad58dd25e1f/packages/react-server-dom-webpack/package.json#L52
I specifically meant server.edge.
We can try server.browser if it has the capability we use, but we need to adjust everything.

This is intentional for the moment. I wonder how we do it in the future. Each approach seems to have pros and cons.

https://github.com/dai-shi/waku/pull/394#issuecomment-1938897961

My idea is to use different outputs for different distributions.

We may try that in the future, once it has settled a bit more.

somewhat related: https://github.com/dai-shi/waku/pull/480


Added new Option for GoldColor

An option to change the color of dropped gold.

Thanks for the contribution!


IgHierarchicalGridComponent retains values from previous binding when data source lengths are same

Description
We have noticed this issue under certain circumstances - when we switch between data sources with only 1 parent data row, [sometimes] the grid retains this row - when new data source also has 1 row, or retains this row and adds more rows to the grid if the new data sources has more rows.
Steps to reproduce

bind hierarchical grid to 0 rows
change data source to have 1 row
change data source to have a different 1 row
change back etc.

Result
retains data from previous data source
Expected result
should always remove data from previous data source
Attachments
screenshots showing 1 row retained from the first data source

the issue lies in the highlighted line of code - if you replace it with if (true), it fixes the issue but may probably cause other issues.
if you have a plunkr template, i should be able to replicate this issue, please provide a link if you have.
Thanks.

I’ve tried reproducing this in an isolated sample, however so far I haven’t had any success in replicating this behavior. I’ve attached the sample I used to test this for your reference : igHierarchicalGrid.zip.
Please run it on your side and let me know if you’re able to reproduce the issue with it.
If not then please feel free to modify it and send it back so that we can investigate it further.

Hi @MayaKirova ,
all tests fail for me in your sample:
Chrome 63.0.3239 (Windows 10 0.0.0) AppComponent should render title in a h1 tag FAILED
Can't bind to 'widgetId' since it isn't a known property of 'ig-hierarchical-grid'.
1. If 'ig-hierarchical-grid' is an Angular component and it has 'widgetId' input, then verify that it is part of this module.
2. If 'ig-hierarchical-grid' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the<EMAIL_ADDRESS>of this component to suppress this message.
3. To allow any property add 'NO_ERRORS_SCHEMA' to the<EMAIL_ADDRESS>of this component. ("

<ig-hierarchical-grid
[ERROR ->][(widgetId)]='id'
[(options)]="hgridOptions" [(dataSource)]="data">
"): ng:///DynamicTestModule/AppComponent.html@7:4
Can't bind to 'options' since it isn't a known property of 'ig-hierarchical-grid'.
1. If 'ig-hierarchical-grid' is an Angular component and it has 'options' input, then verify that it is part of this module.
2. If 'ig-hierarchical-grid' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the<EMAIL_ADDRESS>of this component to suppress this message.
3. To allow any property add 'NO_ERRORS_SCHEMA' to the<EMAIL_ADDRESS>of this component. ("
<ig-hierarchical-grid
[(widgetId)]='id'
[ERROR ->][(options)]="hgridOptions" [(dataSource)]="data">
"): ng:///DynamicTestModule/AppComponent.html@8:4
Can't bind to 'dataSource' since it isn't a known property of 'ig-hierarchical-grid'.
1. If 'ig-hierarchical-grid' is an Angular component and it has 'dataSource' input, then verify that it is part of this module.
2. If 'ig-hierarchical-grid' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the<EMAIL_ADDRESS>of this component to suppress this message.
3. To allow any property add 'NO_ERRORS_SCHEMA' to the<EMAIL_ADDRESS>of this component. ("
<ig-hierarchical-grid
[(widgetId)]='id'
[(options)]="hgridOptions" [ERROR ->][(dataSource)]="data">
"): ng:///DynamicTestModule/AppComponent.html@8:31
'ig-hierarchical-grid' is not a known element:
1. If 'ig-hierarchical-grid' is an Angular component, then verify that it is part of this module.
2. If 'ig-hierarchical-grid' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the<EMAIL_ADDRESS>of this component to suppress this message. ("
3

[ERROR ->]<ig-hierarchical-grid
[(widgetId)]='id'
[(options)]="hgridOptions" [(dataSource)]="data">
"): ng:///DynamicTestModule/AppComponent.html@6:0
Error: Template parse errors:
at syntaxError C:/git/igHierarchicalGrid/node_modules/@angular/compiler/esm5/compiler.js:485:22)
at TemplateParser.webpackJsonp.../../../compiler/esm5/compiler.js.TemplateParser.parse C:/git/igHierarchicalGrid/node_modules/@angular/compiler/esm5/compiler.js:24633:1)
at JitCompiler.webpackJsonp.../../../compiler/esm5/compiler.js.JitCompiler._parseTemplate C:/git/igHierarchicalGrid/node_modules/@angular/compiler/esm5/compiler.js:34442:1)
at JitCompiler.webpackJsonp.../../../compiler/esm5/compiler.js.JitCompiler._compileTemplate C:/git/igHierarchicalGrid/node_modules/@angular/compiler/esm5/compiler.js:34417:1)
at http://localhost:9876/karma_webpack/webpack:/C:/git/igHierarchicalGrid/node_modules/@angular/compiler/esm5/compiler.js:34318:48
at Set.forEach ()
at JitCompiler.webpackJsonp.../../../compiler/esm5/compiler.js.JitCompiler._compileComponents C:/git/igHierarchicalGrid/node_modules/@angular/compiler/esm5/compiler.js:34318:1)
at http://localhost:9876/karma_webpack/webpack:/C:/git/igHierarchicalGrid/node_modules/@angular/compiler/esm5/compiler.js:34206:1
at Object.then C:/git/igHierarchicalGrid/node_modules/@angular/compiler/esm5/compiler.js:474:33)
at JitCompiler.webpackJsonp.../../../compiler/esm5/compiler.js.JitCompiler._compileModuleAndAllComponents C:/git/igHierarchicalGrid/node_modules/@angular/compiler/esm5/compiler.js:34204:1)
Can't bind to 'widgetId' since it isn't a known property of 'ig-hierarchical-grid'.
1. If 'ig-hierarchical-grid' is an Angular component and it has 'widgetId' input, then verify that it is part of this module.
2. If 'ig-hierarchical-grid' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the<EMAIL_ADDRESS>of this component to suppress this message.
3. To allow any property add 'NO_ERRORS_SCHEMA' to the<EMAIL_ADDRESS>of this component. ("

<ig-hierarchical-grid
[ERROR ->][(widgetId)]='id'
[(options)]="hgridOptions" [(dataSource)]="data">
"): ng:///DynamicTestModule/AppComponent.html@7:4
Can't bind to 'options' since it isn't a known property of 'ig-hierarchical-grid'.
1. If 'ig-hierarchical-grid' is an Angular component and it has 'options' input, then verify that it is part of this module.
2. If 'ig-hierarchical-grid' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the<EMAIL_ADDRESS>of this component to suppress this message.
3. To allow any property add 'NO_ERRORS_SCHEMA' to the<EMAIL_ADDRESS>of this component. ("
<ig-hierarchical-grid
[(widgetId)]='id'
[ERROR ->][(options)]="hgridOptions" [(dataSource)]="data">
"): ng:///DynamicTestModule/AppComponent.html@8:4
Can't bind to 'dataSource' since it isn't a known property of 'ig-hierarchical-grid'.
1. If 'ig-hierarchical-grid' is an Angular component and it has 'dataSource' input, then verify that it is part of this module.
2. If 'ig-hierarchical-grid' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the<EMAIL_ADDRESS>of this component to suppress this message.
3. To allow any property add 'NO_ERRORS_SCHEMA' to the<EMAIL_ADDRESS>of this component. ("
<ig-hierarchical-grid
[(widgetId)]='id'
[(options)]="hgridOptions" [ERROR ->][(dataSource)]="data">
"): ng:///DynamicTestModule/AppComponent.html@8:31
'ig-hierarchical-grid' is not a known element:
1. If 'ig-hierarchical-grid' is an Angular component, then verify that it is part of this module.
2. If 'ig-hierarchical-grid' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the<EMAIL_ADDRESS>of this component to suppress this message. ("
3

[ERROR ->]<ig-hierarchical-grid
[(widgetId)]='id'
[(options)]="hgridOptions" [(dataSource)]="data">
"): ng:///DynamicTestModule/AppComponent.html@6:0
Error: Template parse errors:
at syntaxError C:/git/igHierarchicalGrid/node_modules/@angular/compiler/esm5/compiler.js:485:22)
at TemplateParser.webpackJsonp.../../../compiler/esm5/compiler.js.TemplateParser.parse C:/git/igHierarchicalGrid/node_modules/@angular/compiler/esm5/compiler.js:24633:1)
at JitCompiler.webpackJsonp.../../../compiler/esm5/compiler.js.JitCompiler._parseTemplate C:/git/igHierarchicalGrid/node_modules/@angular/compiler/esm5/compiler.js:34442:1)
at JitCompiler.webpackJsonp.../../../compiler/esm5/compiler.js.JitCompiler._compileTemplate C:/git/igHierarchicalGrid/node_modules/@angular/compiler/esm5/compiler.js:34417:1)
at http://localhost:9876/karma_webpack/webpack:/C:/git/igHierarchicalGrid/node_modules/@angular/compiler/esm5/compiler.js:34318:48
at Set.forEach ()
at JitCompiler.webpackJsonp.../../../compiler/esm5/compiler.js.JitCompiler._compileComponents C:/git/igHierarchicalGrid/node_modules/@angular/compiler/esm5/compiler.js:34318:1)
at http://localhost:9876/karma_webpack/webpack:/C:/git/igHierarchicalGrid/node_modules/@angular/compiler/esm5/compiler.js:34206:1
at Object.then C:/git/igHierarchicalGrid/node_modules/@angular/compiler/esm5/compiler.js:474:33)
at JitCompiler.webpackJsonp.../../../compiler/esm5/compiler.js.JitCompiler._compileModuleAndAllComponents C:/git/igHierarchicalGrid/node_modules/@angular/compiler/esm5/Chrome 63.0.3239 (Windows 10 0.0.0): Executed 3 of 3 (3 FAILED) ERROR (0.095 secs / 0.091 secs)

OK, so the difference is we are re-using the same object the grid was originally bound to and simply clearing it of all items and re-adding, e.g.:
this.data.length = 0;
Array.prototype.push.apply( this.data, this.data1);

i believe this works with the normal grid but doesn't with hierarchical.
i have modified your sample to visualise the issue: https://github.com/ruslanss/ignite-ui-grid/commit/3f0821fd04daac543e9b54b5035389e1173e234b

this is how we fixed it: https://github.com/ruslanss/igniteui-angular2/commit/58affa246d0c2cfb3eabe31bb720a1b35c6e0f75

This would work only if there’s a primaryKey defined. However having a primaryKey is not a requirement for the two-way data-binding functionality at this time.
Also comparing the primary key values may not be very reliable in cases when the data source is changed with another that happens to have similar primary key values.
I’ll think on a possible solutions and let you know if I come up with anything.

Actually after looking into it further it seems that the add/update/delete row uses API methods that depend on the primaryKey at the moment.
Although most API could work with index instead of key (addRow, deleteRow, updateRow) the current implementation relies on the primary key values. This is something we could improve in the future.
So from that  perspective your solution is fine, however it may impact a bit the performance if a large data source is supplied to the grid. The IterableDiffers implementation seems to be more optimized for detecting changes in an array so it would be better to use it instead of comparing the primary keys:
            //check for changes in collection
            this._changes = this._differ.diff(this._config.dataSource);
            if (this._changes) {
                this._dataSource = jQuery.extend(true, [], this._config.dataSource);
                this._changes.forEachRemovedItem(function (r) { return _this.deleteRow(r.item[pkKey]); });
		this._changes.forEachAddedItem(function (r) { return _this.addRow(r.item, r.currentIndex); });
            }


Don't Merge! PR real time test for source branch full build

Docs Build status updates of commit a2ca5c3:
:clock10: Pending: waiting for processors (24 builds ahead of you)
:warning: Docs Build is busy, currently there are 24 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit a2ca5c3:
:clock10: Full build: the average full build time is 5 min(s) 39 sec(s), this is based on the last 30 build(s) for this repository.

Docs Build status updates of commit a2ca5c3:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docfx.json
:white_check_mark:Succeeded

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


Error.captureStackTrace is slow

Bug report
Related to #7378
What is the current behavior?
As discussed in #7378, TS type-only import/exports cause a large number of HarmonyLinking/WebpackError. In a sufficiently large project like ours, there are thousands of these errors. While the warnings existing don't cause much issue (since we just use ignoreWarnings regex to block them out), I noticed some interesting perf issues when creating these errors.
If the current behavior is a bug, please provide the steps to reproduce.
When creating these errors, Error.captureStackTrace is called. Based on our webpack perf CPU profiles, it seems that calling this function so many times really causes runtime cost to add up. In our traces, we weback serve dev command takes 9 seconds with this call disabled, down from 12 when enabled.
Since all these errors extend WebpackError which already extends Error, I think this captureStackTrace line isnt even necessary,since stack is automatically captured when new-ing up an error. There is a chance in some cases that we get a few extra stack lines within the error due to the frame hiding done when passing the constructor, but my just looking at the errors/warnings we were producing didn’t notice any difference.

What is the expected behavior?
Error.captureStackTrace doesn’t even need to be called due to Error inheritance, so just remove it
Other relevant information:
webpack version:  5.38.1
Node.js version:  16.2.0
Operating System: Windows
Additional tools: --

Fixed https://github.com/webpack/webpack/pull/13533


Gateway users/service accounts and ACL's management

Hello,
In your roadmap I don't see anything about user/service-accounts and there ACL's.
We are using local user and need to create them on the go with IAC.
Having TF ressources to manage them would be highly valuable.

Hi @erwan-b - thanks for your feedback. Support for all Gateway resources is in our roadmap beyond Kafka resources / Self-service resources, but this could be subject to change.
In the interim, are you aware this is possible using our CLI? See the resources reference.

https://github.com/conduktor/terraform-provider-conduktor/pull/31

Hi an update on this, we have merged a preliminary version of service accounts, that could be tested if you created the provider locally. We haven't released this yet as we want to improve the experience of now working with Gateway and Console to be more explicit when defining resources and look at creating interceptors too.
I will comment back here when we have finished this work and it's released, thank you.


Add tempate for Elm

This PR intends to add support for Elm in vim-bootstrap. I'm pretty new to vim-bootstrap source and to Go so I might have forgotten some stuff. Drop a line and I'll do by best to cover whatever was left behind ; )

Thanks man


Final API for the first stable release

After thinking a lot about it, there are 2 important API changes that I would like to make before the initial release:

Merge connectObservable and connectFactoryObservable into connect. I find the current names very verbose. At the beginning I didn't want to do this because I thought that it was going to be too annoying for those developers that want to start using this library in a redux project... However, I've now changed my mind. I think that it's unlikely that the 2 connects will be used in the same file. I'm willing to consider other names in order to avoid the collision with react-redux. Also, I'm of the opinion that greenfield projects that want to use this library should avoid using redux in the first place.

I'm getting rid of subjectFactory in favor of groupInMap. The reason being that anything that can be done using subjectFactory can also do it using groupInMap, also the second one offers a means to access the whole dictionary (it's keys it's length, etc)... It's a lot less "magical" and I think that it's a much better primitive. So, let's get rid of the fluffy one.

I'm also considering another small change:

switchMapSuspended should not immediately start emitting SUSPENSE... I think that it should wait for a few milliseconds and only if nothing has been emitted for those few millisecs, then it should emit SUSPENSE... IMO that creates a much nicer user experience... Therefore, I think that the operator should take a timeoutMs optional argument (similar to the one provided by useTransition). I think that a good default value should be ~1500ms.

Thoughts, comments, ideas... :pray:

I had an offline talk with @bhavesh-desai-scratch the other day and one of the things that he said about merging connectObservable and connectFactoryObservable is that maybe the problem of using connect is that it's a bit too influenced for prior art (i.e. react-redux). He definitely has a point, because when I was trying to find for a name I thought about the connect of react-redux. So, I've been trying to find alternative names and there is this one that's starting to grow on me: clamp. The main reason is that I see these bindings as a set of utils that aid at overcoming the impedance mismatch that exists between RxJS and React. Perhaps that's because I'm stretching a bit too much the term "impedance mismatch", I'm not sure :sweat_smile:, but one of the meanings of the term clamp is (when used as a verb):

maintain the voltage limits of (an electrical signal) at prescribed values.

and as a noun it also means:

a brace, band, or clasp for strengthening or holding things together.

And on top of that it's only 5 chars long. We could also use clampObservable (and have 2 overloads one that takes observables and the other one that takes a factory observable.... But I think that I prefer just clamp.
So, what do you think?
Also, after reading this post I think that I'm not abusing the meaning of "impedance mismatch".


Change play/pause button place and look&feel

Title change has been addressed in this ticket, but unfortunately we haven't changed the play/pause button, so it will be managed here.

Also, let's take care of the responsive behaviour here too 💋 .

This issue should solve an issue with selection ranges on touch interfaces with small screens.

@rjimenezda Could you please tackle this issue https://github.com/CartoDB/cartodb/issues/11610 along with this development? It seems quite related.

Yep, I replaced the triangle via CSS border-magic with real™ SVG, so it should look fine now.

In order to keep things agile, we won't do the responsive changes here. I'll open a ticket and merge this asap, all features are done, and like 75% of the range playback too.

In production 👏 , great job @roman.


Create the Curve Integrations Page with Palomabot Icons

As a user, when I come to curve.fi, I want to see a tab called INTEGRATIONS after the SWAP link that will show an integrations page that will be in the Curve design, but will list the Palomabots that are integrated into Curve.
See: https://www.notion.so/volumefi/EPIC-07-14-23-Deliver-Paloma-Curve-Bots-in-Curve-CSS-for-Curve-Integrations-Page-ffe933b715a54f6fb1b1b4672200633f
Acceptance Criteria

[ ] We will create the Curve INTEGRATIONS landing page that will list Palomabots and their icons in the Curve CSS
[ ] Clicking on the icons will take the user to https://curvebots.fi/curve-limit-order/ URLs where the user will see the Palomabot UI with the colors and icons of the Curve exchange.

@joycehermosilla What's the status on the UI/UX for this?


Delete unused scripts and references to deleted e2e tests

@dgn: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-local-tests_istio
17df76bf48b93a3dfbda68aef9eb9a9a32ee5f97
link
/test integ-local-tests_istio

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

/retest

@dgn: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-distroless-k8s-tests_istio
17df76bf48b93a3dfbda68aef9eb9a9a32ee5f97
link
/test integ-distroless-k8s-tests_istio

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

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

Test name
Commit
Details
Rerun command

integ-distroless-k8s-tests_istio
17df76bf48b93a3dfbda68aef9eb9a9a32ee5f97
link
/test integ-distroless-k8s-tests_istio

integ-local-tests_istio
17df76bf48b93a3dfbda68aef9eb9a9a32ee5f97
link
/test integ-local-tests_istio

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

/retest


Restructure code in integration directory

It is obvious for me as a person who opened this directory that the mix of building systems and languages is hard to understand. I suggest we restructure a bit the code:

integration/go/grpc/... - contains the go implementation for grpc
integration/go/http/... - contains the go implementation for http
integration/java/grpc/... - contains the java implementation for grpc
integration/java/http/... - contains the java implementation for http
integration/${LANGUAGE}/${FRAMEWORK}/... - contains the ${LANGUAGE} implementation for ${FRAMEWORK}

SGTM, thank you @bogdandrutu! We just need to be wary of the fact that the Java code's location dictates where we put the proto definition, /cc @songy23 to help me with the Java restructure.

@odeke-em you can set where the proto files are. See https://github.com/census-instrumentation/opencensus-proto/blob/master/build.gradle#L20

That's right, I'm just aware of it and updated the proto path in https://github.com/census-instrumentation/opencensus-experiments/pull/21.


merge develop and feature-python3-migrate branches

You really ought to merge these before they diverge too much.

Ummm, yes I should!

Done!


Add OpenNeuro specific note on limitations

When I select "OpenNeuro" as a query node (#267) a dedicated visual element appears prominently on the query tool and

[ ] explains that OpenNeuro search is being tested / developed
[ ] explains that we don't cover all of the OpenNeuro datasets
[ ] provides a link to a site where I can learn more, and help annotate more data (https://github.com/neurobagel/planning/issues/77)

Need some text to add in the alert

Suggestion for the text:

The OpenNeuro node is being actively annotated at the participant level and does not include all datasets yet. Check back soon to find more data. If you would like to contribute annotations for existing OpenNeuro datasets, please get in touch at https://github.com/OpenNeuroDatasets-JSONLD/.github/issues.


Push Notifications to Android

sending notifications to android phone

Could you please tell more about how you envision this? same stuff that you have in events log?

would be interesting to received android notifications when an action takes place i.e. lights turn on, doors open, etc...noticed there is a pushbullet node under mobile...if i knew where to place this that might do it.

I can add option to send data via pushbullet for same stuff I am sending to UI log for a start. I actually did it for testing some time ago so should not be a big deal.

sounds good to me!  let me know if I can help

This is done in latest update.


Replace all style workarounds with styles from ModernWPF solution

Create a new static style for buttons in the window, which will get the new template if windows 11, and the default otherwise.
Use that style on all buttons in the window, and replace style wrapper grids of those buttons with inherited style for the buttons themselves.


Wunderbot leaves Negative balance after W/d

Wunderbot dosen't take the withdrawal fee from the users balance, but as the network still needs the fee, the user is left with a slight negative balance after said withdrawal :/
Better way, or "working as intended" ?
https://cloud.githubusercontent.com/assets/12862793/25199996/024533b8-250a-11e7-8fc3-00589c342b70.PNG

As of now this is not a priority, but if i get any spare time i could prob look into it!

@filipnyquist agreed this isn't a huge issue, but it is real, so we should probably leave it open?

Or merge this into #5 and reopen that one if you like that one more :P

This is the same issue as #5


Add interface to InterShardMemory.

I don't think we ever added an interface for the old RawMemory.interShardSegment. But in any case, as of https://blog.screeps.com/2019/03/power-era/, this is the new API.
I've opted to copy the documentation from https://docs.screeps.com/api/#Game rather than link it, since that seems more friendly. Not sure if it's a better strategy overall though?

Энергоресурс в игре это очень интересно. У меня один друг в Steam в нее играет. Да и я пару раз заходил(времени нехватает) игра стала намного интереснее и увлекательнее. Так что создатели молодцы!

I don't think we ever added an interface for the old RawMemory.interShardSegment. But in any case, as of https://blog.screeps.com/2019/03/power-era/, this is the new API.

We haven't, it wasn't live when we did the RawMemory.

I've opted to copy the documentation from https://docs.screeps.com/api/#Game rather than link it, since that seems more friendly. Not sure if it's a better strategy overall though?

It is, but it also means we need to make sure it stays up-to-date. I wonder if we couldn't programmatically link to their documentation on screeps/docs.

Rebased on master & added crate import.


fixed responsive issue in smaller devices

I have made changes to the navbar component
The width of the navbar was larger. That's why the content was overflowing
The menu links should be hidden on mobile devices, which was also not working.
Lastly, I added margin auto in the tools section

@Anurag30112003 i have made changes review it

@Anurag30112003 The issue fixed by adding justify-content;center


Fixed grammer

Version is a singular verb, so is should be used. The comma before the and is only used when there is a series of 3 or more items.

This sentence is absolutely fine.
Closing.


Configuation XRechnung: IDs in rep:message are not properly incremented

The id in rep:message should be unique.
Scheme: assertion-id "." local-id
At the moment, local-id is always 1.
Problem is in default-report.xsl:
count(preceding-sibling::failed-assert | preceding-sibling::successful-report) + 1)
misses namespace prefix svrl.

resolved


Enable the no-nested-ternary ESLint rule (PR 11488 follow-up)

This rule is already enabled in mozilla-central, and helps avoid some confusing formatting, see https://searchfox.org/mozilla-central/rev/9e45d74b956be046e5021a746b0c8912f1c27318/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/recommended.js#209-210
With the recent introduction of Prettier some of the existing nested ternary statements became even more difficult to read, since any possibly helpful indentation was removed.
This particular ESLint rule wasn't entirely straightforward to enable, and I do recognize that there's a certain amount of subjectivity in the changes being made. Generally, the changes in this patch fall into three categories:

Cases where a value is only clamped to a certain range (the easiest ones to update).
Cases where the values involved are "simple", such as Numbers and Strings, which are re-factored to initialize the variable with the default value and only update it when necessary by using if/else if statements.
Cases with more complex and/or larger values, such as TypedArrays, which are re-factored to let the variable be (implicitly) undefined and where all values are then set through if/else if/else statements.

Please find additional details about the ESLint rule at https://eslint.org/docs/rules/no-nested-ternary

/botio lint


Update docs for quality metrics

[x] Fix some doc errors in the docstring.
[x] Added docstrings for quality metric tables.
[x] Updated concepts.md
[x] Bump up a version.
[x] Replace diagrams.

Thanks for updating the diagrams.  Please add the SkullRerefence table to all diagrams.

Thanks @JaerongA. Unfortunately, the table name is showing up as it is defined on the database. See image below.

Ideally it should be displayed as lab.SkullReference.  Try running from workflow_array_ephys.pipeline import * and then displaying the diagram.

Thanks @JaerongA. Unfortunately, the table name is showing up as it is defined on the database. See image below.

Ideally it should be displayed as lab.SkullReference. Try running from workflow_array_ephys.pipeline import * and then displaying the diagram.

Yeah, I've tried this and that.. and it's still showing it.

@kabilar I've updated the diagram, but it's showing as SkullReference, not lab.SkullReference.