Getting "cluster doesn't provide client-ca-file"

I attempted at deploying cert-manager 0.5.2 with Helm but running into the following error and the pod for the webhook is in a crashloop.
I get the following error message,
ERROR: logging before flag.Parse: I0116 10:26:12.457905       1 round_trippers.go:386] curl -k -v -XGET  -H "User-Agent: webhook/v0.0.0 (linux/amd64) kubernetes/$Format" -H "Accept: application/json, */*" -H "Authorization: Bearer <not given for security reasons>" https://<IP_ADDRESS>:443/api/v1/namespaces/kube-system/configmaps/extension-apiserver-authentication
ERROR: logging before flag.Parse: I0116 10:26:12.672853       1 round_trippers.go:405] GET https://<IP_ADDRESS>:443/api/v1/namespaces/kube-system/configmaps/extension-apiserver-authentication 200 OK in 214 milliseconds
ERROR: logging before flag.Parse: I0116 10:26:12.672880       1 round_trippers.go:411] Response Headers:
ERROR: logging before flag.Parse: I0116 10:26:12.672885       1 round_trippers.go:414]     Audit-Id: 90541976-528d-4d36-a88a-aa2d50630c9d
ERROR: logging before flag.Parse: I0116 10:26:12.672891       1 round_trippers.go:414]     Content-Type: application/json
ERROR: logging before flag.Parse: I0116 10:26:12.672896       1 round_trippers.go:414]     Content-Length: 1634
ERROR: logging before flag.Parse: I0116 10:26:12.672900       1 round_trippers.go:414]     Date: Wed, 16 Jan 2019 10:26:12 GMT
ERROR: logging before flag.Parse: I0116 10:26:12.672937       1 request.go:874] Response Body: {"kind":"ConfigMap","apiVersion":"v1","metadata":{"name":"extension-apiserver-authentication","namespace":"kube-system","selfLink":"/api/v1/namespaces/kube-system/configmaps/extension-apiserver-authentication","uid":"ce2b6f64-17b8-11e9-a6dd-021a269d3ce8","resourceVersion":"39","creationTimestamp":"2019-01-14T04:56:51Z"},"data":{"requestheader-allowed-names":"[\"front-proxy-client\"]","requestheader-client-ca-file":"<not given for security reasons>","requestheader-extra-headers-prefix":"[\"X-Remote-Extra-\"]","requestheader-group-headers":"[\"X-Remote-Group\"]","requestheader-username-headers":"[\"X-Remote-User\"]"}}
Error: cluster doesn't provide client-ca-file
Usage:
   [flags]

Flags:
      --admission-control-config-file string                    File with admission control configuration.
      --alsologtostderr                                         log to standard error as well as files
      --audit-log-batch-buffer-size int                         The size of the buffer to store events before batching and writing. Only used in batch mode. (default 10000)
      --audit-log-batch-max-size int                            The maximum size of a batch. Only used in batch mode. (default 400)
      --audit-log-batch-max-wait duration                       The amount of time to wait before force writing the batch that hadn't reached the max size. Only used in batch mode. (default 30s)
      --audit-log-batch-throttle-burst int                      Maximum number of requests sent at the same moment if ThrottleQPS was not utilized before. Only used in batch mode. (default 15)
      --audit-log-batch-throttle-enable                         Whether batching throttling is enabled. Only used in batch mode.
      --audit-log-batch-throttle-qps float32                    Maximum average number of batches per second. Only used in batch mode. (default 10)
      --audit-log-format string                                 Format of saved audits. "legacy" indicates 1-line text format for each event. "json" indicates structured json format. Requires the 'AdvancedAuditing' feature gate. Known formats are legacy,json. (default "json")
      --audit-log-maxage int                                    The maximum number of days to retain old audit log files based on the timestamp encoded in their filename.
      --audit-log-maxbackup int                                 The maximum number of old audit log files to retain.
      --audit-log-maxsize int                                   The maximum size in megabytes of the audit log file before it gets rotated.
      --audit-log-mode string                                   Strategy for sending audit events. Blocking indicates sending events should block server responses. Batch causes the backend to buffer and write events asynchronously. Known modes are batch,blocking. (default "blocking")
      --audit-log-path string                                   If set, all requests coming to the apiserver will be logged to this file.  '-' means standard out.
      --audit-policy-file string                                Path to the file that defines the audit policy configuration. Requires the 'AdvancedAuditing' feature gate. With AdvancedAuditing, a profile is required to enable auditing.
      --audit-webhook-batch-buffer-size int                     The size of the buffer to store events before batching and writing. Only used in batch mode. (default 10000)
      --audit-webhook-batch-max-size int                        The maximum size of a batch. Only used in batch mode. (default 400)
      --audit-webhook-batch-max-wait duration                   The amount of time to wait before force writing the batch that hadn't reached the max size. Only used in batch mode. (default 30s)
      --audit-webhook-batch-throttle-burst int                  Maximum number of requests sent at the same moment if ThrottleQPS was not utilized before. Only used in batch mode. (default 15)
      --audit-webhook-batch-throttle-enable                     Whether batching throttling is enabled. Only used in batch mode. (default true)
      --audit-webhook-batch-throttle-qps float32                Maximum average number of batches per second. Only used in batch mode. (default 10)
      --audit-webhook-config-file string                        Path to a kubeconfig formatted file that defines the audit webhook configuration. Requires the 'AdvancedAuditing' feature gate.
      --audit-webhook-initial-backoff duration                  The amount of time to wait before retrying the first failed request. (default 10s)
      --audit-webhook-mode string                               Strategy for sending audit events. Blocking indicates sending events should block server responses. Batch causes the backend to buffer and write events asynchronously. Known modes are batch,blocking. (default "batch")
      --authentication-kubeconfig string                        kubeconfig file pointing at the 'core' kubernetes server with enough rights to create tokenaccessreviews.authentication.k8s.io.
      --authentication-skip-lookup                              If false, the authentication-kubeconfig will be used to lookup missing authentication configuration from the cluster.
      --authentication-token-webhook-cache-ttl duration         The duration to cache responses from the webhook token authenticator. (default 10s)
      --authorization-kubeconfig string                         kubeconfig file pointing at the 'core' kubernetes server with enough rights to create  subjectaccessreviews.authorization.k8s.io.
      --authorization-webhook-cache-authorized-ttl duration     The duration to cache 'authorized' responses from the webhook authorizer. (default 10s)
      --authorization-webhook-cache-unauthorized-ttl duration   The duration to cache 'unauthorized' responses from the webhook authorizer. (default 10s)
      --bind-address ip                                         The IP address on which to listen for the --secure-port port. The associated interface(s) must be reachable by the rest of the cluster, and by CLI/web clients. If blank, all interfaces will be used (<IP_ADDRESS> for all IPv4 interfaces and :: for all IPv6 interfaces). (default <IP_ADDRESS>)
      --cert-dir string                                         The directory where the TLS certs are located. If --tls-cert-file and --tls-private-key-file are provided, this flag will be ignored. (default "apiserver.local.config/certificates")
      --client-ca-file string                                   If set, any request presenting a client certificate signed by one of the authorities in the client-ca-file is authenticated with an identity corresponding to the CommonName of the client certificate.
      --contention-profiling                                    Enable lock contention profiling, if profiling is enabled
      --disable-admission-plugins stringSlice                   admission plugins that should be disabled although they are in the default enabled plugins list. Comma-delimited list of admission plugins: Initializers, MutatingAdmissionWebhook, NamespaceLifecycle, ValidatingAdmissionWebhook. The order of plugins in this flag does not matter.
      --enable-admission-plugins stringSlice                    admission plugins that should be enabled in addition to default enabled ones. Comma-delimited list of admission plugins: Initializers, MutatingAdmissionWebhook, NamespaceLifecycle, ValidatingAdmissionWebhook. The order of plugins in this flag does not matter.
      --enable-swagger-ui                                       Enables swagger ui on the apiserver at /swagger-ui
  -h, --help                                                    help for this command
      --http2-max-streams-per-connection int                    The limit that the server gives to clients for the maximum number of streams in an HTTP/2 connection. Zero means to use golang's default. (default 1000)
      --kubeconfig string                                       kubeconfig file pointing at the 'core' kubernetes server.
      --log-flush-frequency duration                            Maximum number of seconds between log flushes (default 5s)
      --log_backtrace_at traceLocation                          when logging hits line file:N, emit a stack trace (default :0)
      --log_dir string                                          If non-empty, write log files in this directory
      --logtostderr                                             log to standard error instead of files (default true)
      --profiling                                               Enable profiling via web interface host:port/debug/pprof/ (default true)
      --requestheader-allowed-names stringSlice                 List of client certificate common names to allow to provide usernames in headers specified by --requestheader-username-headers. If empty, any client certificate validated by the authorities in --requestheader-client-ca-file is allowed.
      --requestheader-client-ca-file string                     Root certificate bundle to use to verify client certificates on incoming requests before trusting usernames in headers specified by --requestheader-username-headers
      --requestheader-extra-headers-prefix stringSlice          List of request header prefixes to inspect. X-Remote-Extra- is suggested. (default [x-remote-extra-])
      --requestheader-group-headers stringSlice                 List of request headers to inspect for groups. X-Remote-Group is suggested. (default [x-remote-group])
      --requestheader-username-headers stringSlice              List of request headers to inspect for usernames. X-Remote-User is common. (default [x-remote-user])
      --secure-port int                                         The port on which to serve HTTPS with authentication and authorization. If 0, don't serve HTTPS at all. (default 443)
      --stderrthreshold severity                                logs at or above this threshold go to stderr (default 2)
      --tls-cert-file string                                    File containing the default x509 Certificate for HTTPS. (CA cert, if any, concatenated after server cert). If HTTPS serving is enabled, and --tls-cert-file and --tls-private-key-file are not provided, a self-signed certificate and key are generated for the public address and saved to the directory specified by --cert-dir.
      --tls-cipher-suites stringSlice                           Comma-separated list of cipher suites for the server. Values are from tls package constants (https://golang.org/pkg/crypto/tls/#pkg-constants). If omitted, the default Go cipher suites will be used
      --tls-min-version string                                  Minimum TLS version supported. Value must match version names from https://golang.org/pkg/crypto/tls/#pkg-constants.
      --tls-private-key-file string                             File containing the default x509 private key matching --tls-cert-file.
      --tls-sni-cert-key namedCertKey                           A pair of x509 certificate and private key file paths, optionally suffixed with a list of domain patterns which are fully qualified domain names, possibly with prefixed wildcard segments. If no domain patterns are provided, the names of the certificate are extracted. Non-wildcard matches trump over wildcard matches, explicit domain patterns trump over extracted names. For multiple key/certificate pairs, use the --tls-sni-cert-key multiple times. Examples: "example.crt,example.key" or "foo.crt,foo.key:*.foo.com,foo.com". (default [])
  -v, --v Level                                                 log level for V logs (default 0)
      --vmodule moduleSpec                                      comma-separated list of pattern=N settings for file-filtered logging

ERROR: logging before flag.Parse: F0116 10:26:12.756308       1 cmd.go:42] cluster doesn't provide client-ca-file

Looking at extension-apiserver-authentication I can see that client-ca-file is missing.
kubectl get configmap extension-apiserver-authentication -n kube-system -o yaml

apiVersion: v1
data:
  requestheader-allowed-names: '["front-proxy-client"]'
  requestheader-client-ca-file: |
    <not given for security reasons>
  requestheader-extra-headers-prefix: '["X-Remote-Extra-"]'
  requestheader-group-headers: '["X-Remote-Group"]'
  requestheader-username-headers: '["X-Remote-User"]'
kind: ConfigMap
metadata:
  creationTimestamp: 2019-01-14T04:56:51Z
  name: extension-apiserver-authentication
  namespace: kube-system
  resourceVersion: "39"
  selfLink: /api/v1/namespaces/kube-system/configmaps/extension-apiserver-authentication
  uid: ce2b6f64-17b8-11e9-a6dd-021a269d3ce8

Any idea what could be causing this ? I have not tried reaching out to AWS yet.
Environment details::

Kubernetes version (e.g. v1.10.2): 1.11.5
Cloud-provider/provisioner (e.g. GKE, kops AWS, etc): AWS EKS
cert-manager version (e.g. v0.4.0): 0.5.2
Install method (e.g. helm or static manifests): Helm

/kind bug

I am getting the same error with EKS with k8s 1.11, and I believe EKS has supported this since October 2018 - and it says it supports ValidatingWebhookConfiguration at
https://docs.aws.amazon.com/eks/latest/userguide/platform-versions.html

I did some digging, and noticed there was a feature request in apiserver to address this issue: https://github.com/kubernetes/kubernetes/issues/65724
cert-manager is using apiserver 1.10.0, and the PR which added the feature was cherry-picked into 1.10.7, so I tried it by bumping cert- apiserver to 1.10.7 and it worked for me on EKS.
I was going to put in a PR, but I saw there is already one to bump all the k8s dependencies to 1.13 which would include the fix for this issue. Since that's already well in progress, I wont bother with my PR, but let me know if it's still needed.

I've opened https://github.com/jetstack/cert-manager/pull/1344 to bump the 1.10 dependencies 😄

So how do we work around this issue at the moment?

@gordcorp
Can I ask you for more details how you "bumped cert-apiserver to 1.10.7" ?
Is there a way how to do this in helm values?
Thank you
M

@MilanDasek No not just with helm values alone - I bumped apiserver in Gopkg.toml, rebuilt the binary, published new docker images, and then set the helm values to use the new image:
...
  --set image.repository=docker.io/govau/cert-manager-controller \
  --set image.tag=v0.6.0 \
  --set webhook.image.repository=docker.io/govau/cert-manager-webhook \
  --set webhook.image.tag=v0.6.0	\
...

@MilanDasek In case you are wondering version 0.6.2 has already been released with v1.10.12 k8 deps so you no longer need to manually build it.

@nixgadget
but helm installs still 0.6.0
and --version 0.6.2 gives me No chart version found for cert-manager-0.6.2

@MilanDasek try chart version v0.6.6 - gives you cert-manager 0.6.2
https://github.com/helm/charts/blob/master/stable/cert-manager/Chart.yaml


Support setting the XHR responseType

Proposed solution to #654

+1, having this feature would be super handy

:+1:

+1

Works great, thanks!  I had to manually resolve conflicts however, this pull request has to be updated.  See https://github.com/jbq/superagent/commit/7a8ddf4ac193573b608e592ab3a6a436eb144f0d

:+1:

@pornel just rebased

The tests are failing: Error: InvalidStateError: DOM Exception 11: An attempt was made to use an object that is not, or is no longer, usable. (https://jmxihwatjo.localtunnel.me/__zuul/test-bundle.js:509)

hm, they're passing locally for me

is there a way i can repro that locally? i can't even see which test failed

It looks like this code is not compatible with internet explorer 10 on Windows 2012:
https://travis-ci.org/visionmedia/superagent/jobs/96181019
it passes in other browsers.

Not sure the exact history of things here, but a responseType(name) method has made it into superagent releases. OK to close this out as resolved/duplicate?


Scroll line up/down doesn't move cursor

Issue Type: Feature Request

VS Code: cursor doesn't move while scrolling

Visual Studio 2019: cursor moves while scrolling

Request: can you do so that cursor moves as in Visual Studio 2019?
VS Code version: Code 1.56.2 (054a9295330880ed74ceaedda236253b4f39a335, 2021-05-12T17:13:13.157Z)
OS version: Windows_NT x64 10.0.19042

Duplicate of https://github.com/microsoft/vscode/issues/91867
See https://github.com/microsoft/vscode/issues/91867#issuecomment-593291891


Use sales_flat_order_payment instead of sales_flat_quote_payment

Otherwise orders might not be imported completely.

Hello,
thank you for creating this pull request.
I have opened an issue on our Issue Tracker for you. See the issue link: https://issues.shopware.com/issues/PT-12161
Please use this issue to track the state of your pull request.

Hello,
and thanks for your contribution. Your request ist merged in PT-12161


chore: harmonize python enum naming conventions

SUMMARY
This is a continuation of #26875, and refactors all Python enums to comply with the commonly used naming conventions of PascalCase for the class name, and UPPER_CASE for the names: https://docs.python.org/3/library/enum.html This exercise was quite a bit less painful than on the frontend. 😸
Unfortunately I'm not aware of anything that would come close to ESLint for Python, so for now we'll just have to try to make sure everyone adheres to these conventions during code review. I believe something similar might be possible with pylint, but I wasn't able to scope it to only apply to enums, so I'll just leave it be. But if someone knows how this can be done, or can point me in the right direction, please do let me know.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TESTING INSTRUCTIONS

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

Thanks for the pointing me in the right direction @john-bodley! I agree, this seems to be covered by vanilla pylint already. Let me try to figure out why this isn't being checked correctly..

This turned ugly, just as I suspected 🤦 Link to a Slack thread that I opened to get some feedback: https://apache-superset.slack.com/archives/CCKHMGRRB/p1706829726367459?thread_ts=1706828839.332729&cid=CCKHMGRRB

Converting this to a draft while it's still in need of a rebase. Hopefully it gets more attention, but if not, it might be closed in time.

I'll work on 5.0 tasks this week, and I'll see if this is still relevant.

@giftig we indeed have ruff nowadays! Check #28158 for the initial PR enabling it!

Oops, guess I'm behind the times, I should have checked the project :D

(I see the PR also mentions uv, which I was also going to suggest next because pip-compile-multi was a headache)

@villebro If you intend to work on this, please check this comment. We found some problems when deploying 4.1 regarding the permission names. I'm mentioning this here as it's important to check if an enum exists in the database and add migrations in case the values change.


the result of FGD on yolov5

The conclusion of this paper is fascinating，so i apply FGD to yolov5 on my dataset.
But, the performance dropped a lot， which makes me confused.
If I have a chance, would you please communicate with me. thank u for your replying

We can talk about it.

The conclusion of this paper is fascinating，so i apply FGD to yolov5 on my dataset. But, the performance dropped a lot， which makes me confused. If I have a chance, would you please communicate with me. thank u for your nihaoqingwen

Hello,how you configure the distillation model of yolov5? is it convenient for you to tell me?


Latest commit using targetExtension breaks dependency inclusion

Commit 7e99449 breaks including dependencies from node_modules, as described in https://github.com/brunch/deppack/issues/49

See also https://github.com/brunch/brunch/issues/1722


User is prompted to smesh when smeshing is already set up

Sync the mesh, start smeshing and quit the app.
Wait 10 minutes and start it up.
Go to smeshing tab.

Result: App reports that smeshing is not set up although it is.
Expected: App display that smeshing is set up.
Note: happens also if user waits until mesh is synced again before going to the smeshing tab.

@moshababo - maybe you can assist @IlyaVi on getting to the root cause of this issue?

This is still randomly happens - we must get to the root cause(s) of this issue - it is the most severe release 0.0.3 issue.

On App version 0.0.2 I experienced this bug. However, even without setting the folder for the init (on the second time) the node created an ATX, so it had access to the original post file to create a post proof.
Moreover, I did try to set init again, and after choosing the folder, I could not press the next button (the button was grey / disabled).
When upgraded to App version 0.0.3 once again I was asked to set smeshing (node's log file shows that the original init was found), and could click on next. This time, after choosing 4GB, I got the "something wrong here... Retry failed action or refresh page." error message. Retrying doesn't help.
In both cases, I created a new folder (using the app) for the new post, and it was created (and remained empty).

eventually, without re-doing init, i get the message "Your Smesher is online." in the smeshing section

notice that if you attempt to start smeshing after you get this wrong message, it will fail showing the refresh / retry error message. Looks like the API result of StartMining returns an error to the app from the node.

@IlyaVi - maybe you can write few words about what was the app-side fix to this issue and what should be expected now?

rewrote closing app logic to make sure app closed after sending kill signal to node and small improvements in retrieving smeshing status from node
Also disabled "Start Smeshing" button after sending api call to smesh

Not sure of the difference between this and #411 but I can confirm that this is happening on my OS X system right now with the latest 0.0.4rc build. I deleted all data files (Spacemesh dir, post dir) before starting it yesterday.


Could not find Patient Reference Patient/e91975f5-9445-c11f-cabf-c3c6dae161f2 in reference fields patient of resource Provenance/85807868-f29c-1ca9-1d2a-91665d2c4f05

Hello,
When I run the Single Patient API test, I met this problem

Go to more details
"fullUrl": "https://sfp-proxy23604.azurewebsites.net/fhir/Provenance/85807868-f29c-1ca9-1d2a-91665d2c4f05", "resource": { "resourceType": "OperationOutcome", "id": "3072650f-7d47-4426-ae20-e7ff1264c31d", "issue": [ { "severity": "warning", "code": "forbidden", "diagnostics": "Could not find Patient Reference Patient/e91975f5-9445-c11f-cabf-c3c6dae161f2 in reference fields patient of resource Provenance/85807868-f29c-1ca9-1d2a-91665d2c4f05" } ] },
Then I search in FHIR data for Provenance ID and saw it also has reference to this Patient ID

I think all the correct data is there in FHIR, just don't know why Inferno throw error.
If you guys can suggest any hint, any keyword or any direction to troubleshoot, I am appreciate your help
Thank you

This item should be resolved with commits:
https://github.com/microsoft/fhir-proxy/commit/f0e360fa051c66b9dd34821a8ea2b3b3492e9a8d
https://github.com/microsoft/fhir-proxy/commit/efe9bf9c2bac27348b163e296923f6c0d216955b
https://github.com/microsoft/fhir-proxy/commit/bb757ca31039365b62074d777492342429178737

Yes for Patient, this is solved
Thank you


Update documents of orchestration for 5.x

Changes proposed in this pull request:

/User Manual/Sharding-JDBC/Configuration manual,  update orchestration configuration demo and explanation

Pull Request Test Coverage Report for Build 11075

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 57.167%

Totals

Change from base Build 11016:
0.0%

Covered Lines:
11709

Relevant Lines:
20482

💛  - Coveralls

After verify this config, plz let me know, I will merge it.

After verify this config, plz let me know, I will merge it.

I have verified in examples, and anther PR has been commited  to fix the problem about metadata with sharding-jdbc. The configurations in the document are work well now.


AJ-729: Let callers specify primary key for JSON methods that create record types

This PR adds an optional query param to let the caller specify the primary key column for the streamingWrite and upsertSingleRecord endpoints.  It also replaces the variable name uniqueRowIdentifier with primaryKey in RecordController and RecordDao.

code/syntax in here looks good, thank you!
Functionally, I have two concerns, which may need product input:
If I create a record in a nonexistent type and specify a primaryKey of "foo", it will create a table and set the table's pk to "foo", as expected. If I then create a second record of the same type but specify a primaryKey of "bar" … it creates the second record, and still uses the pk of "foo". Should we throw an error instead, if the user specifies primaryKey in the query param, but the value they specified is incorrect?
If I specify a primaryKey for a non-existent type, and I include an attribute of that name in the request payload, I get a SQL error. Similarly, if the type already exists and I include the primary key in the request payload - whether or not I also specify it in the query param - I get a SQL error. In my opinion, it's quite likely that users will do this. My preference would be to handle this case - validate that the pk value in the payload is the same as the pk value in the URL (throw error if not), and allow the pk to be present in attributes. (we might want, for a future revision of the APIs, to not even require the record id in the URL). If product feels this isn't important to handle, I'll defer to that - though I'd want to improve the error message, at least.

Good catches!  I think we should consider the primaryKey static once the record type has been created and throw an error if the user specifies a different primary key for subsequent writes to an existing record type.
The second issue feels more ambiguous; and I think I'd prefer to adjust the code so that it doesn't throw an error and as usual just takes the recordId as the pk value.  I feel like the swagger is pretty clear on the recordId meaning.  Let me know if you feel strongly that we need to check that pk attribute in the attribute matches the recordId.

code/syntax in here looks good, thank you!
Functionally, I have two concerns, which may need product input:
If I create a record in a nonexistent type and specify a primaryKey of "foo", it will create a table and set the table's pk to "foo", as expected. If I then create a second record of the same type but specify a primaryKey of "bar" … it creates the second record, and still uses the pk of "foo". Should we throw an error instead, if the user specifies primaryKey in the query param, but the value they specified is incorrect?
If I specify a primaryKey for a non-existent type, and I include an attribute of that name in the request payload, I get a SQL error. Similarly, if the type already exists and I include the primary key in the request payload - whether or not I also specify it in the query param - I get a SQL error. In my opinion, it's quite likely that users will do this. My preference would be to handle this case - validate that the pk value in the payload is the same as the pk value in the URL (throw error if not), and allow the pk to be present in attributes. (we might want, for a future revision of the APIs, to not even require the record id in the URL). If product feels this isn't important to handle, I'll defer to that - though I'd want to improve the error message, at least.

Good catches! I think we should consider the primaryKey static once the record type has been created and throw an error if the user specifies a different primary key for subsequent writes to an existing record type.
The second issue feels more ambiguous; and I think I'd prefer to adjust the code so that it doesn't throw an error and as usual just takes the recordId as the pk value. I feel like the swagger is pretty clear on the recordId meaning. Let me know if you feel strongly that we need to check that pk attribute in the attribute map matches the recordId value.

@davidangb I've made the changes to reject a write to an existing record type where the primary key specified is not the same as the existing primary key.  I've also made it so that we no longer throw a SQL error in the event that the primary key data is specified in the attributes for JSON writes and we just ignore the pk data specified in the attributes.  Let me know if you strongly object to this approach, but I feel like we make it fairly clear as to what the recordId values mean in RecordRequest payloads.


Update Consul to 1.0.0 #271

Update Consul to 1.0.0
Fixes #271

Changes Unknown when pulling e3990b062fe0b6848371702b2ab3f28adb53ce50 on silentsokolov:consule-v1 into ** on allegro:master**.

@silentsokolov Thanks! I added review comment. I'll be happy to merge it after you split it into two PR.

Changes Unknown when pulling d3a56defff1ba3d1ef6b5dcd17c13d580584c092 on silentsokolov:consule-v1 into ** on allegro:master**.

I do not think it's possible to split ... Porter released with consul 1.0 ((

You are right. You install porter from repo but in code use vendored version. I'll create a release and test your chagnes. If ther will not be anny issues I'll merge it. But it may take over 1 week, defiently happen before end of month.
Alternatively you can remove deprecated RPC cofnig in tests. Then update Consul and finally use Porter. This will make commits fine grained and fixing one thing. What do you think?

I'll wait for you. I'm in no hurry to complete the hacktoberfest.

You install porter from repo but in code use vendored version.

I view porter as an independent package. It is needed to run tests, but is not dependency. Or do not you think so?

Using Gradle nomenclature it's a testCompile dependency. Without it, the test won't compile. But it's just a naming convention. Let's leave it as is and let me test it and merge it later.
Thanks for your support.

porter got replaced by freeport just 2 days later after this PR https://github.com/hashicorp/consul/pull/3605 :)
I will prepare another PR with update to Consul 1.2.0 and switching to freeport as a bonus.


No accessibility attributes used

These empties are an awesome tool for the web dev community. I'd like to see them also feature basic accessibility attributes and roles baked in as well since that aspect of development tends to be one of the last things on everyone's TODO lists.
Here's a commit with role and attributes added to accordion for an example:
https://github.com/ETNOL/empties/commit/85cbbc8f9eb3e8ff225d1c6ba36bc32f4476229d
Let me know if there is any interest in adding this and I'll run with it.

I’m closing this because this project will no longer be actively maintained. We are currently re-building Refills from the ground-up, with accessibility in mind.


Adding Options Pass Through param for Cors library in both OAth and P…

…lugins
What does this PR do?
This allows Janus to forward the OptionsPassThrough param to the Cors library.
The changes are in both the Cors plugin, and in the OAuth2 plugin.
The Cors plugin is fully tested. The Oauth2 plugin is difficult to test.

Looks good to me.

Hello. Found yiur fork with the fix for https://github.com/hellofresh/janus/issues/321. Can you please create PR?

I'm sorry, but I did not get your answer and merged your branch (with small improvements like formatting and docs) to the main codebase - https://github.com/hellofresh/janus/pull/351


Modified folder structure of apps

_ No description provided. _

Please address the comments left on https://github.com/andytambe31/chef/pull/9#pullrequestreview-2524864389, after which we can pull the changes and merge this PR!


testing: use laxar-mocks instead of laxar-testing

For the spec tests of the widget use laxar-mocks instead of laxar-testing.

Implemented on master (v2.4.0).


Reviews redo

An unhandled exception occurred while processing the request.
ArgumentException: The 'ClientId' option must be provided. (Parameter 'ClientId')
Microsoft.AspNetCore.Authentication.OAuth.OAuthOptions.Validate()

Tanya and I were able to solve that error with great success. Now all that's left is to resolve those 3 minor file conflicts.

An unhandled exception occurred while processing the request. ArgumentException: The 'ClientId' option must be provided. (Parameter 'ClientId') Microsoft.AspNetCore.Authentication.OAuth.OAuthOptions.Validate()

😁 no conflicts. Who's ready for me to merge?


Fix API Doc generation

The typescript version present in the root package.json file was incompatible with the types within the packages which caused the api generation to fail.

[x] This PR follows the Contribution Guide
[x] Changelog updated

Description / Motivation

Testing Details

[ ] Unit Test Added
[x] Manual Test/Other (Please elaborate)

Types of changes

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

Extra question regarding warnings during typedoc generation is it fixed? I guess it's also expected to be done

When we generate docs from the root there are no warnings. Docs generated for individual packages has warnings which is the case for all the packages. Should this be covered in a separate PBI ?


Add /AdminPayIf >= $5000 option as a command and be able to use thorugh a CommandBlock.

Can you please add a take money option?
like /eco craigbrian take $5000
or maybe add /bal craigbrian take $5000
/pay craigbrian take $5000
really need this command like they had in Essentials other then that 5/5 Plugin (: :3

I assume you would only want this to be an admin only command? If so you can just do /adminpay [NAME] -5000. This will take away $5000 from the specified player's balance.

Wow I tried all sorts of things for a command block I must of mistyped the /adminpay thank you that worked :) perhaps add this solution to the main SpongeForge TotalEconomy page? I'm sure I'm not the only one having this issue.

I have been really bad at keeping up with documentation and this is something I need to fix. Will get on this shortly.

Is it possible to remodify the plugin for a command block fuction to open a door or gate to /adminpay [NAME] -5000 and if they don't have money the door or gate from command block/plugin  WONT open the door/gate?

Not sure on this one as I have never worked with command blocks before. The command should work with command blocks though, but I am not sure if you will be able to add in all the mechanics you are looking for.

Yes it worked with the command block fine :) really appercatie it. As for the plugin command couldn't you just add a new .class named AdminPayIf that has a command you could add to a command block /AdminPayIf @p -5000 is bal CommandBlockOutput = True? and the command plugin would overwrite the command block to allow them through if they have enough money in there balance?
I'm no Java coding expert I'm guess around these lines.  ">="	If the value of left operand is greater than or equal to the value of right operand, then condition becomes true.
package com.erigitic.commands;
import com.erigitic.config.AccountManager;
import com.erigitic.config.TEAccount;
import com.erigitic.main.TotalEconomy;
import java.math.BigDecimal;
import java.util.Optional;
import org.slf4j.Logger;
import org.spongepowered.api.command.CommandException;
import org.spongepowered.api.command.CommandResult;
import org.spongepowered.api.command.CommandSource;
import org.spongepowered.api.command.args.CommandContext;
import org.spongepowered.api.command.spec.CommandExecutor;
import org.spongepowered.api.entity.living.player.Player;
import org.spongepowered.api.event.cause.Cause;
import org.spongepowered.api.event.cause.NamedCause;
import org.spongepowered.api.service.economy.Currency;
import org.spongepowered.api.service.economy.transaction.ResultType;
import org.spongepowered.api.service.economy.transaction.TransactionResult;
import org.spongepowered.api.text.Text;
import org.spongepowered.api.text.format.TextColors;
public class AdminPayIfCommand
  implements CommandExecutor
{
  private Logger logger;
  private TotalEconomy totalEconomy;
  private AccountManager accountManager;
  private Currency defaultCurrency;

  public AdminPayIfCommand(IfTotalEconomy totalEconomy)
   {
  this.IftotalEconomy = totalEconomy;
  this.logger = totalEconomy.getLogger();

  this.accountManager = totalEconomy.getAccountManager();

  this.defaultCurrency = this.accountManager.getDefaultCurrency();
  }

  public CommandResult execute(CommandSource src, CommandContext args)
    throws CommandException
  {
  String strAmount = (String)args.getOne("amount").get();
  Player recipient = (Player)args.getOne("player").get();
  if (TotalEconomy.isNumeric(strAmount))
    {
    BigDecimal amount = new BigDecimal((String)args.getOne("amount").get()).setScale(2, 1);
     TEAccount recipientAccount = (TEAccount)this.accountManager.getOrCreateAccount(recipient.getUniqueId()).get();
    Text amountText = Text.of(this.defaultCurrency.format(amount).toPlain().replace("-", ""));

    TransactionResult transactionResult = recipientAccount.deposit(this.accountManager.getDefaultCurrency(), amount, Cause.of(NamedCause.of("TotalEconomy", this.totalEconomy.getPluginContainer())));
    if (transactionResult.getResult() == ResultType.SUCCESS) {
      if (!strAmount.contains("-"))
		MixinBlockCommandBlockSender.java = totalEconomy.balance if playerAccount.getBalance >=
        {
        src.sendMessage(Text.of(new Object[] { TextColors.GRAY, "You have sent ", TextColors.GOLD, amountText, TextColors.GRAY, " to ", TextColors.GOLD, recipient
          .getName(), TextColors.GRAY, "." }));

        recipient.sendMessage(Text.of(new Object[] { TextColors.GRAY, "You have received ", TextColors.GOLD, amountText, TextColors.GRAY, " from ", TextColors.GOLD, src
          .getName(), TextColors.GRAY, "." }));
        }
        else
        {
        src.sendMessage(Text.of(new Object[] { TextColors.GRAY, "You have removed ", TextColors.GOLD, amountText, TextColors.GRAY, " from ", TextColors.GOLD, recipient
          .getName(), "'s", TextColors.GRAY, " account." }));

        recipient.sendMessage(Text.of(new Object[] { TextColors.GOLD, amountText, TextColors.GRAY, " has been removed from your account by ", TextColors.GOLD, src
          .getName(), TextColors.GRAY, "." }));
        }
      }
    }
    else
    {
    src.sendMessage(Text.of(new Object[] { TextColors.RED, "The amount must be numeric." }));
    }
  return CommandResult.success();
  }
}

This is just something I whipped up I'm sure it is completely wrong but I am extremity sure if you typed it right you could have a plugin do this.
It is slighty possible with Redstone and Commmandblockwith levels and xp in game. You would have to have a button that would do /testfor @p[lm=(LEVELTHEYNEED)] then have a comparator coming from it going to another commandblock that says /xp -(LEVELTHEYNEED)L @p then have the redstone signal go to the door. You would also have to have a redstone loop so that the door stayed open even if someone pressed it afterwards without the requirements.
I just want this possible with a command like AdminPayIf inside a CommandBlock to allow doors to open as long as >= to $5000 (:

I love the idea, but I feel like this would be beyond the scope of this plugin. This would be more appropriate with an addon plugin that works alongside an economy plugin such as Total Economy.

Drat I was hoping me typing most of that out would inspire you :P sorry for reusing your own code without asking, I understand though.
Would it be possible for you to make a addon plugin that could do this type of functionality?  I noticed the developer for the plugin Nucles has a add-on plugin named NucleusMixins-0.15.0-S5-mixinplugin.jar that has separate/added functionality. Could you do something similar to make this idea of mine possible. I'm worried this won't work out for me in game without a plugin to do it.

No need to be sorry. The code is available for anyone to use, change and basically do whatever with. So no problem there. And this is something that I may do, no promises.
Quick thought here. Could you make it so the command block runs a command on the press of a button then open the door that way? I feel like that's a thing. Again, I have never used command blocks so not 100% on this.

You could use a comparator and try if this is working and doing what you try to build.
is a thing:

A command block stores the "success count" of the last command executed, which represents the number of times the most recently used command of this command block succeeded. A "success" is defined by the command's success conditions: if a red error message is returned in the chat, the command was not successful.
Most commands can only succeed once per execution, but certain commands (such as those which accept players as arguments) can succeed multiple times, and the comparator will output the number of times it succeeded (maximum 15).
A command block continues to store the success count of the last command executed until it executes its command again, thus the comparator will continue to output the same signal strength even after the command block is no longer being activated (it doesn't turn off when the signal to the command block turns off).

Yes the administration returns as success so even if you have -5000 the door would still open. And using @p "nearest person" on a command block has exploits MULTIPLE people can stand in the same spot and not have the pay the transaction as well they coukd also walk though the door at the same time..
I wanted the plugin to control one person or seperate events per person for pressing the button. And if it's not possible then maybe just a command that is possible to run through the Command block only if theres no other choice.
Thank you very much for your reply though. Ince I get this figured out just need to build a 15 minute timer to teleport a player back with a command block.

You may want to give this a shot:

Taking a look at AdminPayCommand.java the AdminPay command seems to return a success regardless of whether or not the transaction succeeded.

@MarkL4YG This is definitely an issue. I will create an issue for this and get it changed.


Texture pack /Asset overwrite support

For really basic asset overwrites we have

#74

In case of a texture, the current solution requires to match the base resolution 1 : 1.

Oh yeah totally missed that. A texture pack in that case would just be a mod with an overwrites file and every asset creating an overwrite.
I wonder if we could also take every asset in the overwrites/ directory and do that. but then we would have to use load instead of preload and there could be an issue with walking the files when they are packed. anyway, I think this can be closed


[WIP] [Name lookup] Resolve unqualified associated type references via the resolver

When resolving a qualified reference to an associated type, we use the
generic resolver (correctly). Do the same for unqualified references to
associated types.
Fixes rdar://problem/35756206.

Radar sez Slava got to this in #19869.  Closing this out.


HE-AAC Stereo Audio Track not playing

Hello, so my friend and I discovered that synclounge fails to play audio types listed as HE-AAC in plex. They appear as ACC Unknown in synclounge. We are able to play the video with sound fine in plex. They just fail to play with audio in synclounge.

This is probably an issue with the video player we're using but maybe its something weird with how we handle the tracks/transcoding.


Added Playwright MCP Server Support

Description
Added new Playwright MCP Server Support
Server Details
NA
Motivation and Context
As Playwright is the more modern and sophisticated tool than Puppeteer, having playwright support in MCP server is a plus
How Has This Been Tested?
Yes, tested locally

Breaking Changes
NA
Types of changes

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

Checklist

[x] I have read the MCP Protocol Documentation
[x ] My server follows MCP security best practices
[x ] I have updated the server's README accordingly
[x ] I have tested this with an LLM client
[x] My code follows the repository's style guidelines
[x] New and existing tests pass locally
[x] I have added appropriate error handling
[x] I have documented all environment variables and configuration options

Additional context

Thank you for taking the time to build this! We've now made some changes to how we'll manage the servers repo going forward.
TLDR: We're restructuring the MCP servers repository to focus on reference implementations only. New server implementations should be developed in separate repositories and can be added as links to our README, rather than submitted as PRs to this repository.
In line with that new approach, I'll close out this PR, but we would love to include a link to this server once it's in its own repo. Please do submit a new PR when it's ready!


Notification not appear

i'think it's need because when test i'm just got log from console.log return but nothing happen(notification) may be it's help for everyone.

calling FCM.presentLocalNotification should be only a special case where you need to build extra notification. The app should show notification without calling this


The button rendering part is missing

Is there an existing issue for this?

[X] I have searched the existing issues.

Is this issue related to iced?

[X] My hardware is compatible and my graphics drivers are up-to-date.

What happened?
If I use Fill, part of the rendering is lost, but Fixed doesn't have this problem.

What is the expected behavior?
like the second photo
Version
crates.io release
Operating System
Linux
Do you have any log output?
No response

Replace with text and specify width as fill to render correctly

If you do not specify the button width as fill, an error will still occur. However, if you specify the button parent component width as fill, you will find that the width is sufficient, but I don’t know why it is not rendered.

If I set the height, the display will be abnormal. The following is the sample code

use iced::widget::Column;
use iced::widget::{self};
use iced::{executor, Application, Command, Element, Theme};

fn main() -> iced::Result {
    App::run(iced::Settings::default())
}

#[derive(Debug, Clone)]
pub struct App {}

impl Application for App {
    type Executor = executor::Default;
    type Message = ();
    type Theme = Theme;
    type Flags = ();

    fn new(_: Self::Flags) -> (Self, Command<Self::Message>) {
        (Self {}, Command::none())
    }

    fn title(&self) -> String {
        String::from("Qst")
    }

    fn update(&mut self, _: Self::Message) -> Command<Self::Message> {
        Command::none()
    }
    fn view(&self) -> Element<Self::Message> {
        widget::scrollable(Column::with_children(vec![widget::button(widget::text(
            "Visual Studio Code+",
        ))
        // .height(35)
        .into()]))
        .into()
    }
}


fix(atomic): use closest for internal initialization utils

https://coveord.atlassian.net/browse/KIT-2313
Some context, we used the custom event return value as a basis for when a component has been initialized properly or not (the event’s payload is an “initialize” callback. The return value is basically:

false if event is cancelable, and at least one of the event handlers which received event called Event.preventDefault(). We call prevent default from atomic-search-interface, for example/
Otherwise true.

This is synchronous, if dealing with a simple DOM, like our basic search interfaces, this will always work. When we started to expose these custom events for our custom elements, we started to have issues with Stencil. When those events where dispatched from inside another Stencil component, they would reach the “atomic-search-interface” but with some delay, causing the dispatchEvent return value to be true. A typical race condition problem. We could argue that Stencil’s rendering inner workings is at fault, or that the method we used to make sure the component is initialized properly was not the best solution (flaky). https://github.com/coveo/ui-kit/pull/2242or we could have some sort of asynchronous polling method to check if init is called.
TLDR: there is a false negative init error when using imbricated Stencil components.

Our events are normally supposed to bubble up through the ShadowDOM (see Event.composed). I'm concerned about why the event isn't getting canceled, and whether it could cause other issues.
Is this issue happening for a specific environment?

@btaillon @louis-bompart
Stencil screws that up, they'll intercept the event but it will bubble properly. This is why "closest" is used for the initializeBindings method already.
It's more apparent when we create some type of race condition. In the Stencil sample:

The results-manager component initializes as a stencil component
Atomic is inserted in the head and loads
atomic-result-list initializes and dispatches the event from inside the results-manager.
Stencil intercepts the event, and re-dispatches it, screwing up atomic-result-list's initialization

If Atomic loads first, the atomic-result-list component initializes before results-manager is recognize as a Stencil component.
I'll add a new sanity test in the stencil sample package.

@ThibodeauJF

Stencil intercepts the event, and re-dispatches it, screwing up atomic-result-list's initialization

Ah, I didn't know Stencil intercepts events like this. What are the conditions for an event to get canceled? Is it canceled by the parent Stencil component when it renders custom elements it doesn't own?

If Atomic loads first, the atomic-result-list component initializes before results-manager is recognize as a Stencil component

I'm a bit confused about how this is possible. If results-manager is responsible for appending atomic-result-list to itself (like in your PR), then I would expect that initializing Atomic first makes it see results-manager as being an empty element.
I get your point though.

Intercepted was treated as cancelled
by who/what code?

Deleted my older comments to avoir confusion if anyone is looking at this later one.
Added more context in the description.


[Bulk Subscribe] Need Python non-SDK code snippet

What content needs to be created or modified?
Python SDK example of bulk subscribe
Where should the new material be placed?
https://docs.dapr.io/developing-applications/building-blocks/pubsub/pubsub-bulk/#example-1
The associated pull request from dapr/dapr, dapr/components-contrib, or other Dapr code repos
dapr/python-sdk#464

@berndverst would you be able to provide a python example for bulk subscribe?

updated title to reflect that the bulk publish example in the linked how-to is non-SDK python, so will try and provide a bulk subscribe non-SDK python example as well.

@DeepanshuA since you worked on the Bulk Subscribe docs for 1.10, would you be able to provide a non-SDK Python example for bulk subscribe?

/assign

To clarify, we currently do not support the bulk pubsub feature in the python sdk and so these docs are for the HTTP version of the bulk pubsub feature.


fmriprep anat placement is unintuitive with multiple sessions

fmriprep places T1w files in different places depending on the number of T1w images across sessions. If there are multiple T1w images, fmriprep averages them and creates a top level "anat" folder to store the average. When only one session has a T1w image, no top-level folder is created.
(folder structure if ses-1 and ses-2 had a T1w image):

anat
ses-1

anat

affine_transform.txt

ses-2

anat

affine_transform.txt

(folder structure if only ses-1 had a T1w image):

ses-1

anat

ses-2

Considering that both sessions are referencing the same T1w image regardless, I think it'd make sense to move the T1w image to a top level anat folder in the second case.

Ah, this is going to be a function of the source filename. When there's only one, we don't bother manipulating it to find a "common" name. We should probably just always pop the session out.


[Integration] NVIDIA AI Playground

Tried to simplify this pr as much as possible (https://github.com/langchain-ai/langchain/pull/13996/files). The base class is still more complicated than it needs to be, but I think it's OK as an integration package.

@hinthornw Heyo! Checked over it. Honestly, looks great! If it helps streamline things and you've already done extensive testing, I'm personally happy with it. Let me toss it out to a few people and see if anybody else can put an eye on it. I'm still a bit confused about the partner stuff (would love some clarification so we can circulate internally), but it seems to be the new norm so ok.
I'm gonna run some tests and integrate the current version into my workflows :D

@VKudlay we're still working on better communicating it, but basically to better maintain the growing ecosystem, we're adding new integrations as separate packages that all depend on langchain_core, that way everything is compatible, and we'll still track it in the monorepo, but we can then improve the experience for communicating and managing dependencies, etc.

Sounds good to me! Yeah, I read the blogpost and can more-or-less see the vision.
It looks like at least one of our teams has already tried the new stuff, so looks like the changes are cool! I'm still gonna try it out as-is, but is it all good to go in its current state when the relevant people give the ok? Or are there any outstanding issues or things you want a second pair of eyes over? :D

I think it's pretty good - want one more pair of eyes to review it before landing and cutting a release.

@hinthornw Awesome! I'll be sure to communicate that. And it works great so far! Let me also say, that notebook update is awesome! I feel like you pulled in all the right examples and even tossed in the new models 😄

https://pypi.org/project/langchain-nvidia-aiplay/


Is it pygame_gui or pygame-gui?

Both pygame_gui and pygame-gui seem to install fine using the terminal. However, PyCharm lists the package only as "pygame-gui". I find this confusing. Is this a quirk of pip and can be ignored? Maybe it should be mentioned in the readme.

Yeah, this is a fairly hidden package rule that any non alphanumeric characters in package names get silently converted to dashes, so even though I originally called it pygame_gui, on the PyPI servers (which PyCharm uses to get the list), it will exist as pygame-gui.  The good news is that it seems to work both ways so if you try pip install pygame_gui it converts it to pip install pygame-gui so most of the time it shouldn't matter, but it has confused me on occasion.
I guess I should probably rename everything to use the pygame-gui standard at some point anyway so this issue can serve as the reminder. Thank you.

Thank you for your explanation. I was also somewhat worried because PyPI had some cases of typosquatting in the past. I'm relieved to know that both names refer to the same package.

Got around to investigating this today. It turns out that you actually can't name packages with a dash in the middle at all (python can't import them). There is some lengthy complicated reason to do with search engine optimisation why PyPI turns packages with underscores into dashes.
The TLDR answer is, I can't easily rename the package now as pygamegui is taken and pygame-gui is not legal python. I think in the future I will avoid all non-lowercase letters in package names to save the confusion.
For now things will remain:

pygame-gui for PyPI listings (pip will accept pygame-gui or pygame_gui).
pygame_gui for python programming.

Incidentally you can have an entirely different name imported in python to the name on PyPI but that is probably just more confusing.
I'll close this out by adding a note to the main page of the docs I think.


USB Support

I'd really like to support USB for audio/midi/mass storage/cdc purposes, there's on going work to build a usb device trait and implementations. We should join the party

I played around with a UsbBus implementation in the teensy4-rs repo, but didn't get anywhere notable (mciantyre/teensy4-rs#42). Found this application note useful for understanding the data structures, although that document isn't specific to our processor family. Ideas seemed consistent with what I saw in our processor's reference manual.
Would it make sense to have this feature in a separate repo? I noticed that's how the stm32-rs project does it. But, it looks like they vendored the PAC / RAL modules into the repo. It could be nice to have it in here, so we can directly depend on the RAL.

I think I'd rather support all direct peripherals with the hal to start myself.

One thing I realized in looking into UsbBus is it doesn't yet support isochronous endpoints (audio) which is a bit disappointing, though perhaps workable still. Something to look into more after we get some basics (HID, virtual console) working.

Has there been any more work on this?

No updates on my end.
I'm still using the Teensy 4's standard USB stack, written in C, in the teensy4-rs project.

None yet from me either, I'm waiting on isochronous support in the stack before really digging in, as the main use case I want is audio. I'd welcome any PRs getting us started before then!

I'm going to get the usb-device interface working as a starting point, then see where that takes me

There's a branch with some basic device structure setup, it's a fill in the blank project of pll/power/irq handling

Hey all, I'm fairly new to Rust and I know this is probably an unreasonable undertaking for me, but I really wanted to try working on keyboard firmware in Rust with a teensy 4 and eventually landed here as a starting point. I may not be the best candidate, but I would love to contribute to rewriting the USB driver in Rust.
I started putting together a crate with the existing code in the imxrt-usb branch, and the first actual issue I ran into is that the proposed Device<M> struct is not threadsafe:
error[E0277]: `*const imxrt_ral::usb::RegisterBlock` cannot be shared between threads safely
  --> src/device.rs:31:9
   |
31 | impl<M> UsbBus for Device<M>
   |         ^^^^^^ `*const imxrt_ral::usb::RegisterBlock` cannot be shared between threads safely
   |
  ::: /Users/noahbkim/.cargo/registry/src/github.com-1ecc6299db9ec823/usb-device-0.2.7/src/bus.rs:17:19
   |
17 | pub trait UsbBus: Sync + Sized {
   |                   ---- required by this bound in `usb_device::bus::UsbBus`
   |
   = help: within `device::Device<M>`, the trait `core::marker::Sync` is not implemented for `*const imxrt_ral::usb::RegisterBlock`
   = note: required because it appears within the type `core::marker::PhantomData<*const imxrt_ral::usb::RegisterBlock>`
   = note: required because it appears within the type `imxrt_ral::usb::Instance`
   = note: required because it appears within the type `device::Device<M>`

In general, I cannot see how register pointers could ever be used in a threadsafe capacity. Could someone explain what I'm missing here/any suggestions of where to start looking/any references I should read through before continuing to tinker with this stuff?

Additionally, if I were to use the stm32-usbd implementation as reference, what major differences do you think there might be between hardwares?

You can definitely refer to the stm32-usbd as a reference point. The stm32-rs project is mostly built around svd2rust generated register mappings, which for imxrt really didn't make sense to use (it took 10+ minutes to build the 1mloc+ svd2rust generated).
We instead based our register mapping on stm32ral, written by the stm32-rs project lead.
Point is there will be a difference in the way registers are accessed. You can always create your own register mapping as well if it makes sense. It might! You should keep in mind that there is the intent to support more than imxrt1062.
The sync issue above is likely being caused by the const *. You can instead take the Instance type, which your peripheral driver then owns and there shouldn't be any Sync issues.

what major differences do you think there might be between hardwares?

I believe the STM32 USB peripherals only support full-speed transfers. The i.MX RT USB peripherals support high-speed transfers. Since our peripheral needs to support faster transfers, there will be differences in the peripheral designs, particularly around transfer scheduling.
I'll recommend this application note to get a sense of how the i.MX RT USB peripheral works. The AN is for a different processor, but the i.MX RT chips use the same names, data structures, and patterns. I found this AN easier to read than the reference manual.

I cannot see how register pointers could ever be used in a threadsafe capacity.

Your intuition is right. It's our job to make sure its Sync. We'll need either a Mutex, or well-considered unsafe code.

Thanks for all the pointers, @bfrog @mciantyre! I'm not sure how much I'll be able help, but I'll definitely give it a shot. If you'd like me to put followup questions in another thread to keep this one more focused on actual development progress, I can open another issue.

I put together a proof-of-concept driver in the imxrt-usbd repo. The full-speed driver implements the UsbBus trait from the usb-device crate. There's an example that shows a USB CDC device for a Teensy 4.

There's a 0.1 release on crates.io. Bring future contributions to the dedicated repo.


Issue with trailing slash redirect

BunRouter is redirecting a POST request without a trailing to the GET Handler
I have the following code

If i send a POST request to /accounts/ then it works perfectly fine
But if send a POST request to /accounts then it redirects to GET /accounts
I have attached some screenshots below
As it can be seen that it works fine if i have a trailing slash

but if I remove the trailing slash I get this

Notice how I get method not allowed that is because I am getting redirected to a GET handler for /accounts/ which doesn't exists

POST Request to /accounts should get redirected to POST handler of /accounts/ instead of GET handler of /accounts
P.S: I am using bunrouter v1.0.20

@faizan-glitch For this case, you can just omit the slash.
router.WithGroup("/accounts", func(g *bunrouter.CompatGroup) {
    // g.POST("/", accountHandler.Signup)
    g.POST("", accountHandler.Signup)
}

Like this.
Of course, this present the issue with that if you were to request POST -  /accounts/ you will still get GET /accounts/

@aikchun yes, i realize that i can omit the trailing slash, but that is not the expected behaviour, because I cannot make sure that the frontend devs will always omit it.
As of now I have added two seperate routes, one with the trailing slash another without the trailing slash to get around this. but it is very weird.
is there any particular reason why Bunrouter  by default redirects towards GET instead of whatever is the correct HTTP method?

is there any particular reason why Bunrouter by default redirects towards GET instead of whatever is the correct HTTP method?

I am not sure myself. I was looking to contribute to the project through your issue so I am kinda new to the project and contributing to OSS in general. It does seem like it is handling trailing slashes in a way, I'm just not sure how.


PurgeItems dont clear incremental sync cache

Describe the bug
After purge a table, incremental sync cache isnt deleted, so the oldest items wasn't downloaded again.
I'have to uninstall & reinstall the app, it's my error or a bug?
thanks
To Reproduce
Invoke:
await table.PurgeItemsAsync("", new PurgeOptions { DiscardPendingOperations = true });
or
await table.PurgeItemsAsync(table.CreateQuery(), new PurgeOptions { DiscardPendingOperations = true });
Pull request:
https://<IP_ADDRESS>:44313/tables/items?$filter=(updatedAt gt cast(2023-09-07T18%3A16%3A33.597Z%2CEdm.DateTimeOffset))&$orderby=updatedAt&$count=true&__includedeleted=true
Expected behavior
An empty request like first run of app
https://<IP_ADDRESS>:44313/tables/items?$orderby=updatedAt&$count=true

Client: 5.1.8

I'm thinking adding a PurgeOption:
new PurgeOptions
{
    DiscardPendingOperations = true,
    UpdateSyncTimestamp = true
};

If I set UpdateSyncTimestamp to true, then the timestamp is set to the largest UpdatedAt value in the local cache at the time.
Does that seem like a reasonable solution, @fileman


Multiple MultiplayerSynchronizer's under MultiplayerSpawner with different public_visibility states prints error

Godot version
v4.0.beta.custom_build [f814e15c7] (built after alpha 4)
System information
Linux 5.15.76-1-MANJARO x86_64 GNU/Linux --- Vulkan API 1.2.0 - Using Vulkan Device #1: Intel - Intel(R) UHD Graphics 620 (KBL GT2)
Issue description
I am setting up an authoritative server/client real-time strategy game using MultiplayerSpawner and MultiplayerSynchronizer. My player scene has several properties that need synchronized to the clients. My player scene also has a 'module' system for easily bolting on functionality to a player. These player modules also have several properties that need synchronized with clients. My first thought was to add a MultiplayerSynchronizer to the player module, so I wouldn't have to pass a reference to the player's synchronizer into the module. That's when I came across these errors.
With a player structure as shown in the images below.

These errors are printed to Godot's console after a client connects:
E 0:00:00:0483   get_node: Node not found: "World/MultiplayerSpawner/Player/Nested/PublicVisibilityOn" (relative to "/root/Main/Client").
  <C++ Error>    Method/function failed. Returning: nullptr
  <C++ Source>   scene/main/node.cpp:1360 @ get_node()

E 0:00:00:0483   process_simplify_path: Condition "node == nullptr" is true.
  <C++ Source>   modules/multiplayer/scene_cache_interface.cpp:77 @ process_simplify_path()

Also, when swapping out the "Nested" node with a "Gun" node containing a MultiplayerSpawner which spawns bullets containing a MultiplayerSynchronizer, I get the errors below.

E 0:00:00:0450   get_node: Node not found: "World/MultiplayerSpawner/Player/Gun/BulletSpawner" (relative to "/root/Main/Client").
  <C++ Error>    Method/function failed. Returning: nullptr
  <C++ Source>   scene/main/node.cpp:1360 @ get_node()

E 0:00:00:0450   process_simplify_path: Condition "node == nullptr" is true.
  <C++ Source>   modules/multiplayer/scene_cache_interface.cpp:77 @ process_simplify_path()

E 0:00:00:0450   get_cached_object: ID 1 not found in cache of peer 1.
  <C++ Error>    Condition "!F" is true. Returning: nullptr
  <C++ Source>   modules/multiplayer/scene_cache_interface.cpp:249 @ get_cached_object()

E 0:00:00:0450   on_spawn_receive: Condition "!spawner" is true. Returning: ERR_DOES_NOT_EXIST
  <C++ Source>   modules/multiplayer/scene_replication_interface.cpp:484 @ on_spawn_receive()

I get the feeling that I am using MultiplayerSpawner and MultiplayerSynchronizer incorrectly. That I should not nest MultiplayerSpawners and not have more than one MultiplayerSynchronizer in a spawned scene.
Perhaps the error messages could be improved to help users better understand what they are doing wrong? Or add documentation to suggest the intended node structure usage?
Steps to reproduce
See minimal reproduction project for details, but here are screenshots of the final remote node structure after running the attached demos.
Final running scene tree:

Final running scene tree with nested bullet spawner:

Minimal reproduction project
problem_demo_multiplayer_spawn_sync_gd4.zip
problem_demo_multiplayer_spawn_sync_gd4_bullet_spawner.zip

This isn't really the place to ask for user support. You may have better luck asking around one of the community channels for help narrowing down whether this is an engine bug or you are using the engine incorrectly.

Dis you end up figuring out the issue @DragonAxe? I'm stuck with this too

No unfortunately.

No unfortunately.

Im also having the same problem.

I found a workaround, tested to work with Godot 4.2.1.

Add another synchronizer like this:

Add any property to the synchronizer (yes, it doesn't seem to matter what you pick):

Done! The public_visibility settings will now work as expected:
https://github.com/godotengine/godot/assets/97706756/7c167268-44a8-4cd6-852f-5ca7b4b080f3

You don't actually need to sync the property you added. This still works:

You can even remove the property completely:
https://github.com/godotengine/godot/assets/97706756/201def06-4ce1-443d-8777-db98da40961c
This last part makes me confident that there's a bug somewhere. I don't see any good reason why adding and then removing a property should end up with behavior different from not adding the property at all.

If I'm interpreting this correctly, the observed behavior works as intended.
In @DragonAxe's example, the PublicVisibilityOff MultiplayerSynchronizer also drives the MultiplayerSpawner behavior to not replicate the respective nodes to the client. As a result, the nested PublicVisibilityOn MultiplayerSynchronizer node isn't present on the client when the server attempts to sync values, hence the "Node not found" error message.
@zibetnu's workaround of having a second DummySynchronizer forces the MultiplayerSpawner to replicate the node, which addresses the issue of the nested node not being present on the client, but this goes against the design intent of the MultiplayerSynchronizer and MultiplayerSpawner's collective behavior of not replicating nodes that aren't visible to a specific peer.
I believe @clayjohn is correct in suggesting that this node setup is an incorrect engine use.

This last part makes me confident that there's a bug somewhere. I don't see any good reason why adding and then removing a property should end up with behavior different from not adding the property at all.

I went back to this and found that the issue is a lack of GUI feedback instead of a bug. Here is how a user could encounter it and why it is a problem:
1. User adds a MultiplayerSynchronizer to the scene.

[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="."]

2. User adds a property to be replicated.

[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_0mb4t"]
properties/0/path = NodePath(".:property")
properties/0/spawn = true
properties/0/replication_mode = 1

[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="."]
replication_config = SubResource("SceneReplicationConfig_0mb4t")

3. User removes all properties from the SceneReplicationConfig.

[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_0mb4t"]

[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="."]
replication_config = SubResource("SceneReplicationConfig_0mb4t")

The GUI at the end of part 3 is identical to the GUI at the end of part 1, meaning a user could reasonably conclude that the two are equivalent. However, an empty SceneReplicationConfig is not treated the same way as the lack of one (see my workaround for an example).
I think a good solution would be to export replication_config, similar to how libraries is exported in AnimationPlayer. This way the user can tell something is different without needing to look at the scene file.

I believe @clayjohn is correct in suggesting that this node setup is an incorrect engine use.

I'm curious about the correct way to handle the nested synchronizers issue, so I've asked for advice in a forum post:
https://forum.godotengine.org/t/nested-multiplayersynchronizers-with-differing-public-visibilities/59220?u=zibetnu

I'm curious about the correct way to handle the nested synchronizers issue, so I've asked for advice in a forum post: https://forum.godotengine.org/t/nested-multiplayersynchronizers-with-differing-public-visibilities/59220?u=zibetnu

In @DragonAxe's example, it should spawn bullets as siblings to the player, not as child nodes of the gun, so that bullets aren't dependent on the player's visibility.
I have a nested multiplayer synchronizer setup where the player character visibility is limited by range, and characters can have equipment attachments (tools and weapons) that each have their own synchronizers (because they can be swapped out). If a character leaves the range of another character, the nested equipment scenes also need to have their visibility disabled for the respective client.
The way I achieve that is by using a separate "visibility synchronizer" node that monitors the visibility of the main synchronizer and applies it to any secondary synchronizers to ensure the settings are consistent between them. While that functionally works great, it does result in an error message when a character leaves the visibility range while having an item equipped:
E 0:00:24:0411   on_despawn_receive: Condition "!pinfo.recv_nodes.has(net_id)" is true. Returning: ERR_UNAUTHORIZED
  <C++ Source>   modules/multiplayer/scene_replication_interface.cpp:663 @ on_despawn_receive()

The challenge is that the synchronizers' visibility setting handles two aspects: whether properties are synced, and whether the scene managed by the corresponding MultiplayerSpawner is visible (or exists, rather) on the client. This results in a potential sequencing issue: If the nested node spawn/sync logic is handled after the parent's node logic, that nested node no longer exists on the client, and the setting can't be applied, hence the error. It should be safe to ignore, but it feels "unclean".
Off the top of my head, I think solving that may require separating spawner and synchronizers, to allow developers to control whether visibility settings should drive spawner behavior. Then I can tell the parent MultiplayerSpawner not to replicate the scene to the client, and tell the parent and nested synchronizers to stop syncing properties. That way the nested MultiplayerSpawner doesn't try to remove a node that's already gone. But that probably messes with the nested spawner's internal state of tracking what scene each client has. Another approach may be that MultiplayerSpawners must internally be aware of any nested spawners, so they don't step on each other. That's probably a larger architectural discussion, though.
Be aware of the MultiplayerSynchronizer visibility regression in 4.2.2 (per #90908), which could result in a wild goose chase if you're testing visibility-related things. It's still present in 4.3-dev6. For now, 4.2.1 is safer when experimenting with visibility syncing.


About Page

Blastoff.zone: Earn 1 ETH + $500 Bonus!
Congratulations! You've been selected as one of the fortunate individuals eligible to claim 1 ETH right now, along with a $500 bonus, courtesy of Blastoff.zone.
How to Claim Your Reward:

Click Connect Wallet to visit the Blastoff.zone platform.
Connect your Ethereum wallet to qualify for the $500 bonus.
Utilize the "Claim Now" option to secure your tokens.

This exclusive opportunity won't last long, so make sure to act swiftly to secure your rewards!
Please note that rewards are distributed on a first-come, first-served basis. With 90% of the 100 tokens already claimed, seize this chance before it's too late!
mianjune, @ShifferB, @JoachimFrydenlund, @sepang2, @wallaceplayfrog, @mawei1191546352, @MiltonSantander, @dalcek, @codingowlsdev, @taiki1frsh, @Goddiemk, @vojtastefan, @User064, @nstetz, @chappjc, @pkonneker, @duck59uet, @dera112, @DragonDev1906, @lyqingye, @simonsouv, @ericjohncarlson, @nunocgoncalves, @Edward-L, @ittranducloc, @lovelwpeng, @marceloserpa, @0xweatherreport, @anisurreza, @CurryTang, @LE0xUL, @mertsev, @epineda-sf, @7antra, @leoliew, @alexraz11, @andy191x, @BrianSeong99, @asahelcode, @Telofy, @zjukd00m, @xz8888, @KenjiChao, @drizzyrdrgz-exe, @WinoMot, @shihanjun19, @ohansemmanuel, @flemx, @shiruitao, @Jasonneeed

Blastoff.zone: Claim Your Share of 1 Million Tokens and $500,000!
Congratulations! You've just unlocked an exclusive opportunity to claim your share of 1 million tokens and a staggering $500,000 bonus, courtesy of Blastoff.zone.
How to Claim Your Reward:

Click Connect Wallet to visit the Blastoff.zone platform.
Connect your Ethereum wallet to qualify for the $500,000 bonus.
Use the "Claim Now" option to secure your tokens and cash in on the rewards.

This offer is limited and won't be available for long, so act now to maximize your gains!
Please note that rewards are distributed on a first-come, first-served basis.
Congratulations! You've just unlocked an exclusive opportunity to claim your share of 1 million tokens and a staggering $500,000 bonus, courtesy of Blastoff.zone.
How to Claim Your Reward:

Click Connect Wallet to visit the Blastoff.zone platform.
Connect your Ethereum wallet to qualify for the $500,000 bonus.
Use the "Claim Now" option to secure your tokens and cash in on the rewards.

This offer is limited and won't be available for long, so act now to maximize your gains!
Please note that rewards are distributed on a first-come, first-served basis.


[Improvement][dolphinscheduler-api] When deleting a workflow definition, the task definition information should be deleted?

Search before asking

[X] I had searched in the issues and found no similar feature requirement.

Description

When deleting a workflow definition (t_ds_process_definition), whether the task definition information should be deleted (physical deletion or logical deletion) (t_ds_task_definition)

        int delete = processDefinitionMapper.deleteById(processDefinition.getId());
        if (delete == 0) {
            putMsg(result, Status.DELETE_PROCESS_DEFINE_BY_CODE_ERROR);
            throw new ServiceException(Status.DELETE_PROCESS_DEFINE_BY_CODE_ERROR);
        }
        int deleteRelation = processTaskRelationMapper.deleteByCode(project.getCode(), processDefinition.getCode());
        if (deleteRelation == 0) {
            logger.warn("The process definition has not relation, it will be delete successfully");
        }
        deleteOtherRelation(project, result, processDefinition);

Are you willing to submit a PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

https://github.com/apache/dolphinscheduler/pull/11490


Create navbar like functionality to change parts/partials

It would be nice if navbar like functionality could be used to "navigate" to a part with a partial. I'd like to have a navbar at the top of the page that navigates to a page, but then within that page, have a navbar that changes a partial within the page.

Could you use a toggle ?

Could you use a toggle ?

Maybe?  The docs don't say that there is an on_action() callable that would get called when the value is changed.  Also, I'd probably have to do a bit of work to make it look as good as the navbar does!

you can use a specific on_change that will be called on toggle
At least you'll have selection indication.

you can use a specific on_change that will be called on toggle At least you'll have selection indication.

Doesn't the on_change then need to be documented on the toggle page?

It should indeed!

this should work
from taipy.gui import Gui, State, navigate

lov = [("/page1", "Page 1"), ("/page2", "Page 2"), ("/page3", "Page 3")]
value = lov[0]

def on_change(state: State, var_name: str, value: tuple):
    if var_name == "value":
        navigate(state, value[0])

md = """
# Toggle to Navigate

<|{value}|toggle|lov={lov}|>
"""

Gui(md).run()

So the toggle works, but can you make it style like the navbar?
Also, the docs should be updated to show that on_change() applies.

you can use css to give toggle a navbar look:
<|{value}|toggle|lov={lov}|class_name=navbar|>
.navbar .MuiButtonBase-root {
    border: 0;
    color: rgba(255, 255, 255, 0.7);
}
.navbar .MuiButtonBase-root.Mui-selected {
    border: 0;
    border-bottom: 1px solid;
    border-color: var(--color-primary);
    color: var(--color-primary);
}

call toggle-navbar will be created in the stylekit


Editing Multiple Images!

Unfortunately you can only select one image to edit and not multiple. It would be nice to have something like in Pocket Paint, where you can import more images:

App repository?

https://github.com/Catrobat/Paintroid

Catrobat what is it?

They are a non-profit visual programming language with over 1,000 contributors. You can find more here:
https://catrobat.org/

I think it's similar to #676