Robot accounts

I would like to start a discussion around robot accounts in drone. I might be completely off the right track here, any comments are welcome.
Current state
Currently every user in drone has to be a real github, gitlab, bitbucket, etc user. This makes it quite costly and painful to build integrations with drone.
To talk to drone API, one must have a valid token to auth to the API. The only way to acquire a token is to login to drone using an existing github/gitlab/etc user.
Use cases
- Chain multiple drone jobs
I want to be able to trigger a job restart or deploy event from drone itself. For example, I have a pipeline which builds, tests, pushes a docker image and triggers another job which contains deploy scripts and other resources to deploy the docker image. After deployment, the deploy job triggers an end to end test job and so on.
- Restart or send a deploy event to an existing job
I want to be able to restart an existing drone job from slack chat bot or github bot which watches commit messages.
Robot account scope of access

Robot accounts should not have git push, pull or any other github/gitlab/etc access.
Robot accounts access should be limited to certain drone API calls.
A robot account access should be limited to a single repository.

Currently every user in drone has to be a real github, gitlab, bitbucket, etc user. This makes it quite costly and painful to build integrations with drone.

What about creating a robot user in github, gitlab, bitbucket, etc? Right now drone delegates user permissions to these systems, so a robot user in github could effectively be a robot user in drone.

To talk to drone API, one must have a valid token to auth to the API. The only way to acquire a token is to login to drone using an existing github/gitlab/etc user.

we do have an endpoint that can convert a github token to a drone token. I believe the user must exist in drone, but I guess in theory that endpoint could register a user if they do not yet exist:
https://github.com/drone/drone/blob/master/server/login.go#L123

I want to be able to trigger a job restart or deploy event from drone itself. For example, I have a pipeline which builds, tests, pushes a docker image and triggers another job which contains deploy scripts and other resources to deploy the docker image. After deployment, the deploy job triggers an end to end test job and so on.

I want to be able to restart an existing drone job from slack chat bot or github bot which watches commit messages.

I feel like a github robot user could be created and registered with drone to satisfy these use cases.

Robot accounts should not have git push, pull or any other github/gitlab/etc access.
Robot accounts access should be limited to certain drone API calls.
A robot account access should be limited to a single repository.

I would instead propose creating a robot GitHub account, and drone could provide a way to generate jwt tokens that include scope and repository data to limit what the token can do:
{
  "scope": [
    "repo",
    "repo:rw",
    "repo:delete",
    "build",
    "build:rw"
  ],
  "repos": [
    "octocat\/hello-world",
    "octocat\/*"
  ]
}

The original jwt implementation (back in drone 0.1) was capable of storing this information in the token but was removed because I just wasn't sure if people actually needed it. We could certainly add it back in.

Using github user as a robot account works in small deployments, where people have a few repos or don't necessarily care about security that much.
In larger deployments, where there are hundreds of different repositories and teams, using github users to talk to drone API can be both very time consuming to set up and most importantly very expensive - $9/user per org.
I don't mind having a real github user and then using drone to generate JWTs with different scopes. Would that be an option?

I don't mind having a real github user and then using drone to generate JWTs with different scopes. Would that be possible?

yes, I think this would be a good compromise.
you can find the token code here:
https://github.com/drone/drone/blob/master/shared/token/token.go
we could do something like this:
type Token struct {
	Kind string
	Text string
+	Scope []string // []string { "repo:read", "repo:write", "repo:admin" } ???
+	Repos []string // []string { "drone/drone", "drone/docs" }
}

Defining a set of scopes will be a bit of a challenge since I'm not sure how granular we want to get, so perhaps we can split this into phases. The first phase could be to add Repos. If the Repos slice is empty we can assume there are no restrictions. Otherwise if the repos slice is not empty we match the current repo to the contents of the slice.
Once we have this working, we can get an RFC together with some fine-grained scopes. We should be able to solicit community input for this to make sure we have all of our bases covered.

Sounds good to me. @bradrydzewski how would you generate multiple token per user? If the code for that is already there, could you link me to that, so I have a starting point to start thinking? Thanks.

What about have a token by repository as first approach? It'll have same user permissions but only in designed repository and appear in settings page.

@ogarcia I'm sure @vaijab or @bradrydzewski can correct me if I'm off base, but I believe you'd want to set permissions per repo on/in Github vs. on the build server. The permissions there dictate who/where/what can do various things per repo. But I may be off base with that answer, could you elaborate some if that doesn't answer your question?

Curious if @vaijab @bradrydzewski or anybody on this thread has pushed this feature forward? I've pondered it and just submitted #2129 which would be a feature that would use this feature for further automation of Drone.io in various environments it needs to be deployed into.

I'm closing this issue (which focuses on robot accounts) since we will not be implementing this feature within drone, and recommend using robot accounts in your version control system (i.e. github)
I have created a separate issue for including scopes in personal tokens at https://github.com/drone/drone/issues/2130


Inappropriate ioctl for device

I'm trying to capture the feed from a lepton 3.5, I can get image feed from the getThermal app, so I thought I'd be able to use this library to easily get snapshots from the camera. Im currently using fedora 30 on a lenovo notebook(not a rasp).
The error Im getting relates to the ioctl for the device:
Traceback (most recent call last):
File "/usr/local/bin/pylepton_capture", line 37, in
image = capture(flip_v = options.flip_v, device = options.device)
File "/usr/local/bin/pylepton_capture", line 9, in capture
with Lepton(device) as l:
File "/usr/local/lib/python3.7/site-packages/pylepton/Lepton.py", line 86, in enter
ioctl(self.__handle, SPI_IOC_RD_MODE, struct.pack("=B", Lepton.MODE))
OSError: [Errno 25] Inappropriate ioctl for device
Ive gotten the values for SPI_IOC_RD_MODE, SPI_IOC_WR_MODE, SPI_IOC_MAGIC, which are:
SPI_IOC_RD_MODE:<PHONE_NUMBER>
SPI_IOC_WR_MODE:<PHONE_NUMBER>
SPI_IOC_MAGIC: 107
Are maaybe the values wrong? or is it failing cause of a certain permission issue?
Really hoping to be able to use this library, Ill try using ubuntu (or another debian based OS) and come back with results. Hoping for a way to get pushed into the right direction to solve this. Thanks in advance.

For a purethermal board, you should take a look at some of the examples here https://github.com/groupgets/purethermal1-uvc-capture
pylepton is only for the breakout board.


reports "failed to create assets", but no output about which

using /hack/multi-node:
Creating self-hosted assets...
Created /home/core/cluster/manifests/csr-approver-role-binding.yaml ClusterRoleBinding system-bootstrap-approve-node-client-csr
Created /home/core/cluster/manifests/csr-bootstrap-role-binding.yaml ClusterRoleBinding system-bootstrap-node-bootstrapper
Created /home/core/cluster/manifests/csr-renewal-role-binding.yaml ClusterRoleBinding system-bootstrap-node-renewal
Created /home/core/cluster/manifests/flannel-cfg.yaml ConfigMap kube-system/kube-flannel-cfg
Created /home/core/cluster/manifests/flannel-cluster-role-binding.yaml ClusterRoleBinding flannel
Created /home/core/cluster/manifests/flannel-cluster-role.yaml ClusterRole flannel
Created /home/core/cluster/manifests/flannel-sa.yaml ServiceAccount kube-system/flannel
Created /home/core/cluster/manifests/flannel.yaml DaemonSet kube-system/kube-flannel
Created /home/core/cluster/manifests/kube-apiserver-secret.yaml Secret kube-system/kube-apiserver
Created /home/core/cluster/manifests/kube-apiserver.yaml DaemonSet kube-system/kube-apiserver
Created /home/core/cluster/manifests/kube-controller-manager-disruption.yaml PodDisruptionBudget kube-system/kube-controller-manager
Created /home/core/cluster/manifests/kube-controller-manager-role-binding.yaml ClusterRoleBinding controller-manager
Created /home/core/cluster/manifests/kube-controller-manager-secret.yaml Secret kube-system/kube-controller-manager
Created /home/core/cluster/manifests/kube-controller-manager-service-account.yaml ServiceAccount kube-system/kube-controller-manager
Created /home/core/cluster/manifests/kube-controller-manager.yaml Deployment kube-system/kube-controller-manager
Created /home/core/cluster/manifests/kube-dns-deployment.yaml Deployment kube-system/kube-dns
Created /home/core/cluster/manifests/kube-dns-svc.yaml Service kube-system/kube-dns
Created /home/core/cluster/manifests/kube-proxy-role-binding.yaml ClusterRoleBinding kube-proxy
Created /home/core/cluster/manifests/kube-proxy-sa.yaml ServiceAccount kube-system/kube-proxy
Created /home/core/cluster/manifests/kube-proxy.yaml DaemonSet kube-system/kube-proxy
Created /home/core/cluster/manifests/kube-scheduler-disruption.yaml PodDisruptionBudget kube-system/kube-scheduler
Created /home/core/cluster/manifests/kube-scheduler.yaml Deployment kube-system/kube-scheduler
Created /home/core/cluster/manifests/kube-system-rbac-role-binding.yaml ClusterRoleBinding system:default-sa
Created /home/core/cluster/manifests/kubeconfig-in-cluster.yaml ConfigMap kube-system/kubeconfig-in-cluster
Created /home/core/cluster/manifests/kubelet-bootstrap-token.yaml Secret kube-system/bootstrap-token-jdjadk
Created /home/core/cluster/manifests/pod-checkpointer-role-binding.yaml RoleBinding kube-system/pod-checkpointer
Created /home/core/cluster/manifests/pod-checkpointer-role.yaml Role kube-system/pod-checkpointer
Created /home/core/cluster/manifests/pod-checkpointer-sa.yaml ServiceAccount kube-system/pod-checkpointer
Created /home/core/cluster/manifests/pod-checkpointer.yaml DaemonSet kube-system/pod-checkpointer

NOTE: Bootkube failed to create some cluster assets. It is important that manifest errors are resolved and resubmitted to the apiserver.
For example, after resolving issues: kubectl create -f <failed-manifest>

Cluster comes up fine after this - but not sure if a particular manifest was not injected.

Pretty sure we need this PR: https://github.com/kubernetes-incubator/bootkube/pull/925


Error occurred when input data is of Float32

🐛 Bug
I have specified precision=16 and strategy="colossalai" in Trainer. But error occurred when my input data is of float32 and the error message is that "RuntimeError: Input type (torch.cuda.FloatTensor) and weight type (torch.cuda.HalfTensor) should be the same". I found that when training, the model parameters were all cast to float16, while my input is of float32.
But, should it be an issue? I kept all setup unchanged but removed strategy="colossalai", and I find that the dtype of model parameters shown on my debug UI is float32. Then everything goes well. Later I tried to make all input as float16 and use colossalai strategy, it went well, too.
So, is it necessary to cast all my input to float16 to use strategy='colossalai'? I think it shouldn't be that but the bug I came across does make me wonder.
Environment
python 3.9.12
torch 1.12.1
lightning 2.0
colossalai 0.2.5
lightning-colossalai 0.1.0rc1
cuda 11.3
ubuntu 20.04

@lizhiqi49 could you pls share min example to reproduce?
also, any chance you would try the properly released 0.1.0? :rabbit:


Why zipkin provider collector does not support customized endpoint

(This is used to request new product features, please visit https://github.com/istio/istio/discussions for questions on using Istio)
Describe the feature request
Recently I'm trying to export tracing to a customized zipkin collector, which requires to add authentication token in the path like /AUTH_TOKEN/api/v2/spans, and it seems that istio does not support customized zipkin collector endpoint.
func zipkinConfig(hostname, cluster string, enable128BitTraceID bool) (*anypb.Any, error) {
	zc := &tracingcfg.ZipkinConfig{
		CollectorCluster:         cluster,
		CollectorEndpoint:        "/api/v2/spans",                   // envoy deprecated v1 support
		CollectorEndpointVersion: tracingcfg.ZipkinConfig_HTTP_JSON, // use v2 JSON for now
		CollectorHostname:        hostname,                          // http host header
		TraceId_128Bit:           enable128BitTraceID,               // istio default enable 128 bit trace id
		SharedSpanContext:        wrapperspb.Bool(false),
	}
	return protoconv.MessageToAnyWithError(zc)
}

I'm curious about why customized zipkin collector endpoint is not supported and is there an alternative way to achieve that?
Describe alternatives you've considered
Affected product area (please put an X in all that apply)
[ ] Ambient
[ ] Docs
[ ] Dual Stack
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[x] Extensions and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Affected features (please put an X in all that apply)
[ ] Multi Cluster
[ ] Virtual Machine
[ ] Multi Control Plane
Additional context

yeah, can you use OTel-collector as intermediary agent?

yeah, can you use OTel-collector as intermediary agent?

Sure I can do that, currently I deployed an nginx service to proxy my requests and I'm just thinking is there any simple way to do that. 🤔

It will be more convenient if I could export traces to zipkin directly, do you have any ideas why customized zipkin endpoint is not supported?

probably because most people don't need it

It will be more convenient if I could export traces to zipkin directly, do you have any ideas why customized zipkin endpoint is not supported?

probably because most people don't need it

Is it possible to add a new fields for customizing zipkin endpoint? And I'm willing to implement that.

It will be more convenient if I could export traces to zipkin directly, do you have any ideas why customized zipkin endpoint is not supported?

probably because most people don't need it

Is it possible to add a new fields for customizing zipkin endpoint? And I'm willing to implement that.

Reasonable requirement to me.

It will be more convenient if I could export traces to zipkin directly, do you have any ideas why customized zipkin endpoint is not supported?

probably because most people don't need it

Is it possible to add a new fields for customizing zipkin endpoint? And I'm willing to implement that.

Reasonable requirement to me.

Got it, thanks! 😊

fixed by https://github.com/istio/istio/pull/53107, will land in v1.24.


feature: implement createRegularWindow and add it to the reference app

This relies on the engine built from this branch: https://github.com/flutter/engine/pull/56094
Design doc: https://docs.google.com/document/d/1eQG-IS7r4_S9_h50MY_hSGwUVtgSTRSLzu7MLzPNd2Y/edit?tab=t.0
This PR is a part of a group of PRs. Going from first to last, these must be merged in the following order:

#157515
#157517
#157518
#157519
#157520
#157521
#157522
#157523
#157524
#157525

This pull request:

Lays the foundational data models for multi window Flutter applications
Implements createRegular for the creation of regular toplevel windows
Add the multi_window_ref_app example application to the project to demonstrate the creation of a regular window
Add an initial unit test for the creation of regular windows
Adapt the runner code of a typical single window application for multi window

Pre-launch Checklist

[x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
[x] I read the [Tree Hygiene] wiki page, which explains my responsibilities.
[x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
[x] I signed the [CLA].
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making, or this PR is [test-exempt].
[x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported.
[x] All existing and new tests are passing.

@mattkae Should we put all the subsequent PRs in draft mode for now (assuming they are not yet ready for review)? Just so other triagers don't get confused.
Thanks for all of this work by the way!
CC @loic-sharma @cbracken Any idea who should take on getting all of this reviewed?

@mattkae Should we put all the subsequent PRs in draft mode for now (assuming they are not yet ready for review)? Just so other triagers don't get confused.

If you would prefer that, I can put the others in draft mode to avoid confusion :+1:

Thanks for all of this work by the way!

No problem :) Looking forward to working towards landing it !

CC @loic-sharma @cbracken Any idea who should take on getting all of this reviewed?

I suspect @goderbauer would be the best person to review once he's back :)


[bug] Express empty section shows text not expected

8.0.0RC1
Fresh "full" page
After first login, go to "Express" section from dashboard
See:

"Express Objects
No entities created yet.
inc('elements/footer.php');"

What was not expeted, the text saying "inc('elements/footer.php');"

this has already been fixed https://github.com/concrete5/concrete5/pull/4592

Oops, sorry!


Fluid-fetch tool does not handle errors correctly

It should retry on retriable errors. Can it use retriable storage adapter for all APIs?
Note that I believe we added "repeat to 3 times" when downloading ops, it likely have to stay there as is given that adapter only applies to storage requests.
Error calling getSnapshotTree bB5H9BAAHAAAA
ERROR: Error
at EpochTrackerWithRedemption.checkForEpochError (E:\FluidFramework\packages\drivers\odsp-driver\dist\epochTracker.js:180:19)
at EpochTrackerWithRedemption.fetchAndParseAsJSON (E:\FluidFramework\packages\drivers\odsp-driver\dist\epochTracker.js:86:24)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async EpochTrackerWithRedemption.fetchAndParseAsJSON (E:\FluidFramework\packages\drivers\odsp-driver\dist\epochTracker.js:210:20)
at async Function.timedExecAsync (E:\FluidFramework\packages\utils\telemetry-utils\dist\logger.js:308:25)
at async E:\FluidFramework\packages\drivers\odsp-driver\dist\odspDocumentStorageManager.js:735:34
at async OdspDocumentStorageService.readTree (E:\FluidFramework\packages\drivers\odsp-driver\dist\odspDocumentStorageManager.js:732:20)
at async OdspDocumentStorageService.getSnapshotTree (E:\FluidFramework\packages\drivers\odsp-driver\dist\odspDocumentStorageManager.js:348:22)
at async reportErrors (E:\FluidFramework\packages\tools\fetch-tool\dist\fluidFetchSnapshot.js:194:16)
at async fetchBlobsFromVersion (E:\FluidFramework\packages\tools\fetch-tool\dist\fluidFetchSnapshot.js:186:18)
statusCode: 429
retryAfterSeconds: 1000
errorType: "throttlingError"
canRetry: true

Just commenting to keep it open from bot.


Remove unnecessary build dep from pyproject.toml

Do not specify build in requires key of pyproject.toml.  The key is used to specify packages used by the build backend.  However, build is the build frontend, and only one of the many.  Listing it as a requirement means that all frontends will unnecessary install build as part of the build environment, i.e. build will install itself inside the venv to build wheel even though it is never used there.  Installing the package from source via pip does not require build at all.

Thanks @mgorny.

Thanks!


set highlighting to specific extensions?

We're using Sage 9. Its blade files are suffixed with *.blade.php. Setting the formatting to Laravel for this also sets it to all *.php files.
Is there a way to just target the *.blade.php files?
thanks, D.

This package targets specific file types:
file_extensions: [blade, blade.php]
This means that by default it does not target *.php.
You can try and reset the file association with blade by: View -> Syntax -> Open all with current extension as... ->[your syntax choice]


[BUG] After update, Docker service doesn't start.

Describe the bug
Exactly as it says in the title, the Docker service doesn't start after being updated with this script.  Fortunately, everything still works if I restore the binaries from the backup but, the entire reason for me to use this script was to get a more up-to-date version of Docker due to the known issue of not being able to update environment variables with the version currently supplied by Synology.
Here is the specific error message:
Step 9 from 10: Starting Docker service
ERROR: Could not bring Docker Engine back online

To reproduce
I ran the following command:
sudo ./syno_docker_update.sh update
and it failed at "Step 9 from 10: Starting Docker service".
Expected behavior
I expected Docker to simply start running again after the update.
Log file
CardcaptorRLH85@Rin-san:~/synology-docker$ sudo ./syno_docker_update.sh update
Update Docker Engine and Docker Compose on Synology to target version

Current DSM version: 6.2.3
Current Docker version: 18.09.8
Current Docker Compose version: 1.24.0
Target Docker version: 20.10.2
Target Docker Compose version: 1.27.4

WARNING! This will replace:
  - Docker Engine
  - Docker Compose
  - Docker daemon log driver

Are you sure you want to continue? [y/N] y
Step 1 from 10: Downloading target Docker binary (https://download.docker.com/linux/static/stable/x86_64/docker-20.10.2.tgz)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 65.7M  100 65.7M    0     0  10.7M      0  0:00:06  0:00:06 --:--:-- 11.1M
Step 2 from 10: Downloading target Docker Compose binary (https://github.com/docker/compose/releases/download/1.27.4/docker-compose-Linux-x86_64)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   651  100   651    0     0   4247      0 --:--:-- --:--:-- --:--:--  4254
100 11.6M  100 11.6M    0     0  7434k      0  0:00:01  0:00:01 --:--:-- 8938k
Step 3 from 10: Stopping Docker service
pkgctl-Docker stoped.
Step 4 from 10: Backing up current Docker binaries (/volume1/homes/CardcaptorRLH85/synology-docker/docker_backup_20210116_160503.tgz)
bin/
bin/docker-init
bin/docker
bin/auplink
bin/ctr
bin/docker-compose
bin/runc
bin/containerd-shim
bin/containerd-shim-runc-v2
bin/containerd
bin/docker-proxy
bin/dockerd
dockerd.json
start-stop-status
Step 5 from 10: Extracting target Docker binary (/tmp/docker_update/docker-20.10.2.tgz)
docker/
docker/containerd
docker/docker-init
docker/ctr
docker/containerd-shim
docker/containerd-shim-runc-v2
docker/runc
docker/docker-proxy
docker/dockerd
docker/docker
Step 6 from 10: Installing binaries
Step 7 from 10: Configuring log driver
Step 8 from 10: Enabling IP forwarding
Step 9 from 10: Starting Docker service
ERROR: Could not bring Docker Engine back online
CardcaptorRLH85@Rin-san:~/synology-docker$

Docker daemon configuration
{
    "data-root" : "/var/packages/Docker/target/docker",
    "log-driver" : "json-file",
    "registry-mirrors" : [],
    "group": "administrators"
}

Additional context
As I was going back through the steps to collect the data for this bug report, I decided to try installing Docker version 19.03.14 (currently the latest version of the 19.x branch) instead of the latest version (as of now 20.10.2).  Unfortunately, that too failed in the same manner.  So, I finally tried an upgrade to the most recent version of the 18.x branch, 18.09.9 which is only one revision (and just under two months) newer than the eighteen-month-old 18.09.8 version that Synology currently ships.  However, that also failed in the same manner.

Hi @CardcaptorRLH85, sorry to hear about your issues. Luckily you were able to restore the Docker engine to its original state. The log file and configuration all look normal to me, right until step 9 that is. A few thoughts and questions, if you're up for additional investigation.

What filesystem does your NAS use?
What does the original (backed up) version of your Docker daemon configuration look like?
Does it help to manually shut down all Docker containers prior to the update?
Does it help to manually start the Docker service when the script fails at step 9 (e.g. sudo synoservicectl --start pkgctl-Docker)?

Hi @CardcaptorRLH85, sorry to hear about your issues. Luckily you were able to restore the Docker engine to its original state. The log file and configuration all look normal to me, right until step 9 that is. A few thoughts and questions, if you're up for additional investigation.

What filesystem does your NAS use?
What does the original (backed up) version of your Docker daemon configuration look like?
Does it help to manually shut down all Docker containers prior to the update?
Does it help to manually start the Docker service when the script fails at step 9 (e.g. sudo synoservicectl --start pkgctl-Docker)?

I'd be glad to help out.

I'm using Btrfs.
Here's my dockerd.json backup.

{
   "data-root" : "/var/packages/Docker/target/docker",
   "log-driver" : "db",
   "registry-mirrors" : [],
   "storage-driver" : "btrfs"
}

This worked!
This is the first thing I tried and, unfortunately, it didn't help at all.  I got an error code of 0 when I tried running that command.

When I tried shutting down all of my containers first just now, it worked.  I probably should have tried that but it just never crossed my mind.

I'd be glad to help out.

I'm using Btrfs.
Here's my dockerd.json backup.

{
   "data-root" : "/var/packages/Docker/target/docker",
   "log-driver" : "db",
   "registry-mirrors" : [],
   "storage-driver" : "btrfs"
}

This worked!
This is the first thing I tried and, unfortunately, it didn't help at all.  I got an error code of 0 when I tried running that command.

When I tried shutting down all of my containers first just now, it worked.  I probably should have tried that but it just never crossed my mind.

Thanks for the follow up @CardcaptorRLH85.

I'm using Btrfs.

The btrfs support seems to questionable (see #22). My NAS uses ext4, so I haven't found a way to test this myself. Does below configuration work on your NAS? This is a fix that I'll address in #40.
{
   "data-root" : "/var/packages/Docker/target/docker",
   "log-driver" : "json-file",
   "registry-mirrors" : [],
   "storage-driver" : "btrfs"
}

Without looking into it I'm guessing that the db logging driver is a Synology-specific thing

The db logging driver is indeed a custom driver written by Synology. They use it as input for their GUI. I haven't found the source myself, reason why this repository replaces db with the default json-file driver. As an unwanted side-effect, Synology displays the wrong up time in the GUI unfortunately.

Secondly, I've noticed that after this update all of the environment variables on my containers have been removed.

I have heard about similar issues from other users. I haven't found a way to recreate the issue yet. For now the only thing I can recommend is to use Docker Compose instead. It allows you to script the entire container initiation, including environment variables. Hopefully it won't cost you to much effort to recreate your containers. I'll add this as a known issue too.

Thanks for the follow up @CardcaptorRLH85.

I'm using Btrfs.

The btrfs support seems to questionable (see #22). My NAS uses ext4, so I haven't found a way to test this myself. Does below configuration work on your NAS? This is a fix that I'll address in #40.
{
   "data-root" : "/var/packages/Docker/target/docker",
   "log-driver" : "json-file",
   "registry-mirrors" : [],
   "storage-driver" : "btrfs"
}

Without looking into it I'm guessing that the db logging driver is a Synology-specific thing

The db logging driver is indeed a custom driver written by Synology. They use it as input for their GUI. I haven't found the source myself, reason why this repository replaces db with the default json-file driver. As an unwanted side-effect, Synology displays the wrong up time in the GUI unfortunately.

Secondly, I've noticed that after this update all of the environment variables on my containers have been removed.

I have heard about similar issues from other users. I haven't found a way to recreate the issue yet. For now the only thing I can recommend is to use Docker Compose instead. It allows you to script the entire container initiation, including environment variables. Hopefully it won't cost you to much effort to recreate your containers. I'll add this as a known issue too.

  Unfortunately, that change to my config doesn't fix things.  Since this makes the third time that I'll be editing the variables for ~2 dozen containers in the last few days, I'll certainly take your Docker Compose advice after restoring to the Synology version of Docker again.

  Unfortunately, that change to my config doesn't fix things.  Since this makes the third time that I'll be editing the variables for ~2 dozen containers in the last few days, I'll certainly take your Docker Compose advice after restoring to the Synology version of Docker again.

The storage driver seems to be a tough one to fix. Docker's documentation provides some additional clues. If you have the time and patience, you could try alternative storage drivers instead. See below table for an overview.

Storage driver
Supported backing filesystems

overlay2, overlay
xfs with ftype=1, ext4

fuse-overlayfs
any filesystem

aufs
xfs, ext4

devicemapper
direct-lvm

btrfs
btrfs

zfs
zfs

vfs
any filesystem

I haven't tested this myself, but I'd be curious to know if any one of these storage drivers help. A warning from Docker:

Important: When you change the storage driver, any existing images and containers become inaccessible. This is because their layers cannot be used by the new storage driver. If you revert your changes, you can access the old images and containers again, but any that you pulled or created using the new driver are then inaccessible.

The storage driver seems to be a tough one to fix. Docker's documentation provides some additional clues. If you have the time and patience, you could try alternative storage drivers instead. See below table for an overview.

Storage driver
Supported backing filesystems

overlay2, overlay
xfs with ftype=1, ext4

fuse-overlayfs
any filesystem

aufs
xfs, ext4

devicemapper
direct-lvm

btrfs
btrfs

zfs
zfs

vfs
any filesystem

I haven't tested this myself, but I'd be curious to know if any one of these storage drivers help. A warning from Docker:

Important: When you change the storage driver, any existing images and containers become inaccessible. This is because their layers cannot be used by the new storage driver. If you revert your changes, you can access the old images and containers again, but any that you pulled or created using the new driver are then inaccessible.

I got a question, I'm trying to change my storage driver to overlay2, my backend is already a ext4 volume. The docker daemon fail to start but i can't figure out where the daemon log are located. The /var/log/Docker is empty.
Context: I'm to run the k3s agent on my synology so that it can act as a node for storage but it require an overlay storage driver.

Does /var/log/upstart/pkg-Docker-dockerd.log provide any clues?

Oh thanks! Just checked, now I got something to investigate :
2021-04-07T18:33:08-0400 ERRO[2021-04-07T18:33:08.496803188-04:00] failed to mount overlay: no such device       storage-driver=overlay2

Same thing with overlay. After checking /proc/filesystems I realized the DS918+ doesn't seems to support overlayfs. Checked the /lib/modules and ran modprobe overlay but nothing there.
Kernel version is 4.4.59+ (DSM 6.2.3) which should include overlay from my understanding but they might have removed it from their distro.

It's a pity that Synology does not support the overlay driver. They tend to heavily modify their distribution, so it doesn't come as a surprise.
I came across this article on Medium from Kristofer Lundgren, who used Docker in Docker instead of upgrading the Docker daemon. Might be worth investigating?

I also have this issue (doesn't start), but this is the error I see in:
/var/log/upstart/pkg-Docker-dockerd.log
2023-02-25T08:28:34-0500 ERRO[2023-02-25T08:28:34.505536938-05:00] [graphdriver] prior storage driver aufs is deprecated and will be removed
in a future release; update the the daemon configuration and explicitly choose this storage driver to continue using it; visit https://docs.docker
.com/go/storage-driver/ for more information
2023-02-25T08:28:33-0500 INFO[2023-02-25T08:28:33.703362207-05:00] [core] [Channel #4] Channel Connectivity change to SHUTDOWN  module
=grpc
2023-02-25T08:28:33-0500 INFO[2023-02-25T08:28:33.704084712-05:00] [core] [Channel #4 SubChannel #5] Subchannel Connectivity change to SHUTD
OWN  module=grpc
2023-02-25T08:28:33-0500 INFO[2023-02-25T08:28:33.704700088-05:00] [core] [Channel #4 SubChannel #5] Subchannel deleted  module=grpc
2023-02-25T08:28:33-0500 INFO[2023-02-25T08:28:33.705372381-05:00] [core] [Channel #4] Channel deleted           module=grpc
2023-02-25T08:28:33-0500 INFO[2023-02-25T08:28:33.706815321-05:00] stopping event stream following graceful shutdown  error="context
This is on an old DS712+ running DSM 6.2.4-25556 Update 6
So it looks like if the current storage driver is 'aufs' then for newer docker versions this either need to be explicit to 'overlay2'?
I may try this but a little nervous based on others attempts at changing storage drivers.

I also have this issue on a DS1815+ woth DSM7.1.1.
bokkoman@FLOPPYDISK:~$ sudo systemctl start pkgctl-Docker Job for pkgctl-Docker.service failed. See "systemctl status pkgctl-Docker.service" and "journalctl -xe" for details. bokkoman@FLOPPYDISK:~$ systemctl status pkgctl-Docker.service ● pkgctl-Docker.service - Docker's service unit    Loaded: loaded (/usr/local/lib/systemd/system/pkgctl-Docker.service; disabled; vendor preset: disabled)    Active: failed (Result: exit-code) since Tue 2024-06-11 13:10:54 CEST; 28s ago   Process: 18451 ExecStart=/bin/bash -c /usr/syno/sbin/synopkgctl start $SELF && /bin/touch /var/packages/$SELF/enabled (code=exited, status=1/FAILURE)  Main PID: 18451 (code=exited, status=1/FAILURE)


Calculate storage bytes through interface method for encoding types.

The revision moves the implementation of storage bytes calculation to EncodingAttr::calculateStorageSizeInBytes. If the encoding attribute implements the interface, the implementation has higher priority. Because it knows all the details, including whether packing the data back-to-back or not.
The change is not NFC because it uses affine.apply ops to compute the size, which has opportunities to simplify the calculation. It also fixes a bug for dynamic cases. The dynamicDims value range is not a mixed value range. It is only for dynamic cases. To make the logic correct, we need to use getMixedValues to get dimension sizes in OpFoldResult types.
The ABI of calculateStorageSizeInBytes method is changed because of the needs.

@lialan we can follow this to implement the packed i1 support. The stream side should work if you implement the interface method for your packed encoding type. Please take a look.

We should run some compile time profiles with this on large dynamically shaped programs - when I tried to use affine ops for this previously it caused a massive regression.

We should run some compile time profiles with this on large dynamically shaped programs - when I tried to use affine ops for this previously it caused a massive regression.

I see. I do not have a large dynamically programs on hands. So I'll go with arith ops for now, and we can revisit it later.

awesome. I will rebase my i1 attr branch https://github.com/iree-org/iree/tree/lialan/i1_attr on top of it once it is landed

@benvanik can I get a review from you? Thanks!


Multimodal

Should be a fix for #27.
Uses the built-in tools of PyMultiNest to find the modal value within the parameter space. Further testing should be done on known multi-modal problems. I've so far only tested on a two-screen model.

Since you know the QU-fitting code better than I do, I've decided to blindly trust you and integrate in your updates without spending a lot of time going through them carefully. This means you're now the scapegoat if anything goes wrong with QU-fitting from now on. :P


Add get_content_width method to RichTextLabel

Adds a corresponding get_content_width() method to RichTextLabel.
Closes godotengine/godot-proposals#3938

You're right. Thanks!

Thanks! And congrats for your first merged Godot contribution :tada:

Is this not available in current builds of Godot except in Godot 4?

@Karthik-Dulam This PR was not ported to 3.x.

Is this not available in current builds of Godot 3? I'm guessing it is in a Godot 4 build.

RichTextLabel has an entirely different implementation in master compared to 3.x, so this PR would have to be redone from scratch for 3.x.


nuclear pore distribution vs localization

Is there any difference ? Same number of annotations.

mislocalization will result in abnormal  distribution?

Looks like it's the same genes annotated to both terms - am I reading this wrong ?

In this case I would merge.
Thanks, Pascale

Ah ! Got it - there are no direct annotations to the parent  'GO:0051664 nuclear pore localization'. So a merge would seem appropriate.
Many annotations are to NUP proteins, suggesting a phenotype. But that can be revised separately.
Thanks, Pascale

Yes I think so.


python3: don't use sysconfigdataHook on darwin

Resolves issue when building wheels which is a regression introduced by
1a65c5df5f98
AssertionError: would build wheel with unsupported tag ('cp38', 'cp38',
'darwin_x86_64')

Motivation for this change
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

@GrahamcOfBorg build python3.pkgs.pip-tools

@GrahamcOfBorg build python3.pkgs.pip-tools

@r-burns could you test building python3.pkgs.pip-tools or python3.pkgs.cython?

@r-burns could you test building python3.pkgs.pip-tools or python3.pkgs.cython?

On it.

On it.

It seems like there should be another way to fix this, but I have no access to a Darwin machine so I can't look into it much, so I guess this is fine.

It seems like there should be another way to fix this, but I have no access to a Darwin machine so I can't look into it much, so I guess this is fine.

Thanks @r-burns !

Thanks @r-burns !


What's the capacity of IronDB?

IndexedDB has initial 5MB limitation and whole Harddisk capacity after confirmation (is IronDB handling such confirmation protocols?)
Cookies have a 4KB limit per cookie.
LocalStorage and SessionStorage have 10MB limitiation?
How are these limitations reconciliated in IronDB
It would be nice to have a "capacity / usage" api available in IronDB to monitor the current and available storage capacity.
Thanks!

In short, ImmortalDB's capacity depends on the stores used.
For example, if CookieStore is used, which it is by default, storage per key
is limited by the browser's cookie storage limits, e.g. 4096 bytes per cookie,
180 cookies per domain, etc.
That said, ImmortalDB is resilient. If a write and/or read to any store fails
(e.g. more than 4096 bytes written to a cookie), ImmortalDB will continue to
work unimpeded, just with reduced redundancy.
Are you bumping into the storage limits of any of the stores (CookieStore,
IndexedDbStore, etc)?
Regardless, it would, incontrovertibly, be useful to note the storage limits of
each store. I'll add such notes to the readme shortly.


Cannot resolve module 'fluent_record in bookshelf/lib/next/example/init-models.js

Hey,I am using Bookshelf with Express and Webpack with React as front-end.Using MySQL as a database,
And it gives me following error:

WARNING in ./~/bookshelf/lib/bookshelf.js
Critical dependencies:
278:12-28 the request of a dependency is an expression

Also cannot resolve module 'fluent_record'
knexfile.js
module.exports = {   development: {     client: 'mysql',     connection: {       host: '<IP_ADDRESS>',       user: 'root',       password: 'pass',       database: 'sample',       charset: 'utf8'     },     migrations: {       directory: __dirname + '/src/models/migrations'     },     seeds: {       directory: __dirname + '/src/models/seeds'     }   } };
bookshelf.js
const knex = require('knex')(require('./knexfile')); const bookshelf = require('bookshelf')(knex); module.exports = bookshelf;

I'm having the same problem. Did you ever find a solution?

There's no lib/next/example/init-models.js in the distribution version of Bookshelf. There's also no fluent_record in Bookshelf. No idea what this is about, but probably not Bookshelf related.


Add python 3.12 to run_tests github workflow

Expecting to expose issues via github that need addressing for the upgrade -- not really ready to review

Looks like there are issues in some platform-specific code, or their tests: Lisy, PKONE, and Spike

I've seen these issues before, something to do with how MPF tests setup the serial devices and send/expect serial commands. I explored a little bit but didn't get too far, I was looking at PKONE and it seemed like the commands were being sent multiple times and the test only expected the responses once.
Thanks for taking a look, hopefully you have more success than I did!

Haha thanks - I'm glad to see it's not an excessive amount of errors. I'll give it a shot one of these days.
With Python 3.8 now in EOL, what's the MPF practice for deprecating 3.8 support?

After all this investigation, I'm starting to think the common thread between all of the errors is linked to behavior of queues and dequeuing operations, especially in test fakes. Windows and *nix systems seem to different in dequeue behavior but I can't put my finger on it.
First, something completely unrelated - 3.12 shows warnings on using ast.Number/etc instead of ast.Constant. There's a piece of supported-feature-check code that enables Constant, so maybe for other library compatibility we need to keep it as is. If not, just replacing all the deprecated ast types with Constant seems to work across all versions, could be worth pulling out to .57 -- https://github.com/missionpinball/mpf/pull/1856/files#diff-272a790e6b3c028190676eceb8a70434bdc1473434f47e4cc4826efdbbe70287 or maybe we don't change it at all!

There are some groups of failures, and I'm going to leave notes about each in hopes of pointing at some common source.
First, the Lisy test. I ran different combinations of command, and only the flash-related section of the test fails (after it are some sound tests, which work fine when run in another order). The specific error is that an expected command is never cleared from the expected set, suggesting it is never sent. Flash is time-based, so I ran slightly longer before checking, and Windows passed (but everything else started failing). Maybe the test time is exactly on the cutoff time and Windows has a different precision or tiebreak than nix, so it only needs a moment longer?

Next, PKONE: These tests all fail the same way in setup, on mac/unix with 3.12 only --
The first command (maybe all of them?) seems to be double sent, but the mock manager clears the command from the set on the first and bombs on the second. More specifically, the first command is PCNE (E is a separator), and the second is received as PCNEPRSE. Somehow the first command is not being cleared out, and I suspect it's related to the internal behaviors of BaseMockPKONE#queue
Finally, Spike: Interesting that the commonality with all three is that they're in platform integrations, and I think it's due to them all having mock serial implementations that they interact with in test. The Spike tests fail because they get a node value of 255 instead something within the range 0-15. Feels to me like a (leading? https://github.com/missionpinball/mpf/actions/runs/12295483583/job/34312458054#step:5:1256 ) FF value from a previous command is being read as the next command's node number. Again the serial mock seems to be reusing an old value, and uses a queue under the hood.
AHA Okay a clue -- they all use MockSerial under the hood. Maybe there's one common piece to all of it. More digging to come


Remove repo1 CICD dependency due to unreliable uptime

While I agree on removing repo 1, I do think that we should replace this test case rather than completely removing it... I see it as testing two code paths:

Repos that are still using go-git but use a sub-org underneath the owning org (which might fail if we screw up the git URL regex)
Repos that have tags on a branch other than master (which Zarf assumes as default right now)

I may be missing something but the test wasn't deleted, just changed the repo we were testing?

It is a test case in the test though.  Some codepaths will no longer be covered without a repo like this.


Add a Gitter chat badge to README.md

KyperTech/devshare-site now has a Chat Room on Gitter
@prescottprue has just created a chat room. You can visit it here: https://gitter.im/KyperTech/devshare-site.
This pull-request adds this badge to your README.md:

If my aim is a little off, please let me know.
Happy chatting.
PS: Click here if you would prefer not to receive automatic pull-requests from Gitter in future.

I already have this badge with the flat style on another one of my branches that will be merged later today or tomorrow.


Fixes #904: Checks the response of the nghttp2_submit_headers and acc…

…ordingly sets the value of stream_data->stream_id

Codecov Report
Base: 27.51% // Head: 27.51% // Decreases project coverage by -0.01% :warning:

Coverage data is based on head (3830abd) compared to base (4477cf3).
Patch coverage: 0.00% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #905      +/-   ##
==========================================
- Coverage   27.51%   27.51%   -0.01%
==========================================
  Files         136      136
  Lines       32567    32573       +6
  Branches     5221     5222       +1
==========================================
  Hits         8962     8962
- Misses      22455    22461       +6
  Partials     1150     1150

Flag
Coverage Δ

unittests
27.51% <0.00%> (-0.01%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

src/adaptors/http2/http2_adaptor.c
2.23% <0.00%> (-0.01%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Rapsberry Pi - doesn't work => very slow

Hello, I have tried to embed the moquette to another java application running on the Raspberry Pi. But in fact it doesn't work at all - or it is very slow. Seems, there is some issue with threads maybe???

I am missing completely the javadoc, so I am just running is as Server.main(new String[]{});
How can I provide the parameters or expose the logging i.e.???

For integration you could look for https://github.com/andsel/moquette/blob/master/embedding_moquette/src/main/java/org/eclipse/moquette/testembedded/EmbeddedLauncher.java.

To expose logging you just to configure log4j.properties and set the property system log4j.configuration

About the performance could you provide a log at DEBUG level?

Hi @robertgregor  no news about this from you, so I close it.


Tags in this repository are not recognized by Go Modules

It's because the repo uses 1.6 as a tag and not v1.6 which would be recognized by semver, or better v1.6.0.
If you tag the future releases properly, users with go.mod wouldn't end up with something like
require (
	github.com/briandowns/spinner v0.0.0-20190319032542-ac46072a5a91
    ...

Hi @ahmetb. Thanks for reporting this. "properly" for Go mods, yes, I'll likely update how tagging is done. This repo and it's semver tags predate Go mods and I was maintaining consistency for as long as I could until someone complained.

I'd recommend just tagging new versions with the semver scheme and not delete existing tags. Alternatively, you can create new tags with v* prefix and *.0 suffix from existing tag references, too.
Thanks!

That's the intent! Thanks!


#[serde_as(as = "Option<OneOrMany<_>>")]#[skip_serializing_none] fails to deserialize with None

I have this code which fails. I believe it should be supported.
#[serde_as]
#[skip_serializing_none]
#[derive(Debug, PartialEq, Serialize, Deserialize)]
struct Demo {
    #[serde_as(as = "Option<OneOrMany<_>>")]
    contents: Option<Vec<String>>,
}

It serializes fine with a single element in a vector or multiple elements in a vector
It fails with an error when the contents are set to None
failures:
---- tests::vec_none stdout ----
None
Serialized ---
{}
Error: Message("missing field contents", Some(Pos { marker: Marker { index: 4, line: 2, col: 0 }, path: "." }))
Please find a test case attached.
Workaround: Dont specify #[skip_serializing_none]
test.txt

You need to add #[serde(default)] as an attribute to the contents field too. It is the normal behavior for serde to disable the special treatment regarding missing fields whenever a with annotation is added. The serde_as is equivalent to the with in this regard.
There is an issue to maybe change that in the future #185.
    #[serde_as(as = "Option<OneOrMany<_>>")]
    #[serde(default)]
    contents: Option<Vec<String>>,

I hope that helps.

Great that fixes it. Maybe it could be added as an example to the documentation.
Thanks ever so much


Expose client.SendMessage

I've been half-fantasizing about writing a PowerShell Remoting Protocol client after glancing the spec at learn.microsoft.com, Python's pypsrp, the PSRP-enabled Ruby winrm gem, PowerShell source and the article A look under the hood at Powershell Remoting through a cross plaform lens.
masterzen/winrm already implements the bits for negotiating the connection and sending/receiving wsman/soap messages, but the problem is that it doesn't expose any methods for sending/receiving raw messages.
This PR exposes the *winrm.Client's sendMessage function as SendMessage which should be enough to implement any custom functionality on top of the opened connection.

It's not enough.


[framework] vector macros wave 2

Description
Second wave of additions:

[x] tabulate
[x] count - was suggested by @tzakian, imo a great addition
[ ] zip_do_reverse
[ ] zip_do
[ ] zip_do_ref
[ ] zip_do_mut
[ ] zip_map
[ ] zip_map_ref

Another suggestion:

[ ] find

Test plan
How did you test the new or updated feature?

Release notes
Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required.
For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates.

[ ] Protocol:
[ ] Nodes (Validators and Full nodes):
[ ] Indexer:
[ ] JSON-RPC:
[ ] GraphQL:
[ ] CLI:
[ ] Rust SDK:

@tzakian @tnowacki @cgswords we're expected to abort on length mismatch, however, we're not allowed to use constants in macros. How do you suggest I proceed? Here's an example:
    public macro fun zip_do_reverse<$T, $U>($v1: &vector<$T>, $v2: &vector<$U>, $f: |&$T, &$U|) {
        let v1 = $v1;
        let v2 = $v2;
        let len = v1.length();
        if (len != v2.length()) abort EINDEX_OUT_OF_BOUNDS; // ???
        len.do!(|i| $f(&v1[len - i - 1], &v2[len - i - 1]));
    }


BAL-Log-Handle remains after destruction of ABAP-Logger

The internal logic of the FM "BAL_LOG_CREATE" create entries in the global table <G>-T_LDAT.
After freeing the ABAP-Logger-Object the generated entries remains in the table <G>-T_LDAT.
I suggest the following solution idea:
Two FM clean the table <G>-T_LDAT: "BAL_LOG_DELETE" or "BAL_LOG_REFRESH".
"BAL_LOG_DELETE" is not usable because it deletes the message entries from the memory and the db.
"BAL_LOG_REFRESH" can be used because it deletes the message entries only from the memory but not from the db.
So I suggest to add a method FREE which uses the FM "BAL_LOG_REFRESH".
To get more safety to save messages from the memory into the db the method save() should be called before the FM call.

Create a pull request 😄


[ALLUXIO-3060] Add doc for tiered locality

https://alluxio.atlassian.net/browse/ALLUXIO-3060

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/17775/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/17795/
Test PASSed.


How to create a optional package for Windows App SDK?

We have some plugins in our UWP app and we want use them in new WinUI 3 app.
So anyone knows what can I do ?
Thinks!

For CsWinRT Component, no help.
Maybe I need a complate example.

There are multiple possible solutions. Caveats and tradeoffs depend on more details.
What is a 'plugins' to you? WinRT inproc object? COM? DLL with exports? Non-PE files? Other tech?
Devil's in the details.

@DrusTheAxe  Just like UWP optional package. A package just work for my application.

So today you have a UWP app some plugins in a main package?
And you're changing the UWP app to a WinUI3 app and want to continue using the plugins?
Or you're making a new WinUI3 app in a new main package and want the plugins to be in the package? Or you want the plugins to be separate and optionally available to users who have the new main package installed?
Do you want the plugins to be shared available to both apps?

Yes, I want change the UWP to WinUI3 app. And I want the plugins to be separate and optionally available to users who have the new main package installed.
I know too little about WinUI3.

Sorry for the lag, I missed this thread.
Plugins bring 2 needs to the table:

Discovery
Interaction

The recommended solution for #1 is <Extension Category="windows.appExtension">. Your plugins provide your needed metadata about themselves via an appextension in their appxmanifest and you enumerate and retrieve this via AppExtensionsCatalog to .Find*(), .Open() and retrieve their data.
The recommended solution for #2 is to tell developers to implement an OOP WinRT Server, put into a Main package and declare uap15:DependencyTargettrue</>. You use the Win11 Dynamic Dependencies API to add their package to your package graph (TryCreatePackageDependency, etc) and then you use routine WinRT practices to instantiate and interact with their object.
One caveat: that AppExtension support's been around for ages (since RS5 or even earlier) but <uap15:DependencyTarget> is new as of 22H2 (aka Sun Valley 2 aka 2022 Update aka 10.0.22621.0). If you need to run on older systems then the recommended answer for #2 is to tell developers to implement a Packaged COM OOP Server and put it into a Main package. Then you use CoCreateInstance() and other routine COM practices to instantiate and interact with their object.
There are possible other techniques of course. Windows has a huge palette of technologies and options. But the above is the simplest and most effective solutions, thus the recommendation.


Enphase changed Energy Lifetime counter during update to firmware 7

I was puzzled by this log entry:
[1/14/2023, 11:47:01 AM] [homebridge-enphase-envoy] This plugin generated a warning from the characteristic 'Energy lifetime': characteristic was supplied illegal value: number -2779.839 exceeded minimum of 0. See https://homebridge.io/w/JtMGR for more info.
I tried to find the root cause of the problem and had a look into my Grafana dashboard. In the backend, I use an InfluxDB to store data I retrieve from the Envoy.
Look at this screenshot:

I shows that Enphase reset the "Energy Lifetime" counter to a large negative number during the update to firmware 7.
This is not a bug with the plugin but I want the community to be aware that this could happen during upgrade.

I will add workaround for this issue in next release.


[BUG] Error with markup in example sites and github actions to pages

Describe the bug 描述你遇到的错误
Im trying to fix an issue in my personal blog, but nothing seems to work. Github actions keeps failing because of markup in exampleSites folder. The file markup seems to be correct, but github actions (jekyll) still fails for some reason im not aware of.
Rendering Liquid: land/themes/DoIt/exampleSite/content/posts/theme-documentation-extended-shortcodes/index.en.md github-pages 228 | Error: Liquid syntax error (line 26): Variable '{{</* style "text-align:right; strong{color:#00b1ff;}' was not properly terminated with regexp: /}}/
Expected behavior 期待的行为
Pass github actions with no problems
Screenshots 屏幕截图

Build Environment 构建环境
Github actions for pages, linux
Preview Environment 预览环境
Linux
Additional Information 补充信息
No response

No offense, but have I misunderstood?
This is a hugo theme, it's weird that you got errors from jekyll, please provide a minimum reproduction or relevant reproduction steps for further investigation.

See https://github.com/HEIGE-PCloud/DoIt/blob/main/.github/workflows/pages.yml as an example for GitHub Pages deployment.


Could you tell me how to fix it.

i use the   AspNetCore.signalR.Server 0.2.0-a
Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware|ERROR|An unhandled exception has occurred: Could not find any resources appropriate for the specified culture or the neutral culture.  Make sure "Microsoft.AspNetCore.SignalR.Server.Resources.resources" was correctly embedded or linked into assembly "Gray.Microsoft.AspNetCore.SignalR.Server" at compile time, or that all the satellite assemblies required are loadable and fully signed. Could not find any resources appropriate for the specified culture or the neutral culture.  Make sure "Microsoft.AspNetCore.SignalR.Server.Resources.resources" was correctly embedded or linked into assembly "Gray.Microsoft.AspNetCore.SignalR.Server" at compile time, or that all the satellite assemblies required are loadable and fully signed.

I feel puzzled at this err.

This problem occurs when the program can still work.

First off you're using an old deprecated pre-release version of SignalR Core. The correct one is https://dotnet.myget.org/feed/aspnetcore-ci-dev/package/nuget/Microsoft.AspNetCore.SignalR
Secondly your error message talks about Gray.Microsoft.AspNetCore.SignalR.Server which is some random persons version

I'm also getting same error. The latest Microsoft.AspNetCore.SignalR (https://www.nuget.org/packages/Microsoft.AspNetCore.SignalR.Client) is not having java client (for Android). Have you found any option.
Thanks.

If the error is mentioning "Gray.Microsoft.AspNetCore.SignalR.Server" see @BrennanConroy's response. Gray.Microsoft.AspNetCore.SignalR.Server is not something that was shipped by Microsoft or is supported by Microsoft.

Is there any way to connect with Microsoft.AspNetCore.SignalR (https://www.nuget.org/packages/Microsoft.AspNetCore.SignalR/1.0.0-alpha2-final) from Java(Android). signalr-client-sdk-android.jar is not supporting with latest SignalR as I knew.

As per my comment - there is no Java client at the moment for this version of SignalR.

@jagathprasanga Have you found the solution for your problem? I am also facing the same issue

@perumalsamya No options found so, I decided to go with Gray.Microsoft.AspNetCore.SignalR.Server
(https://www.nuget.org/packages/Gray.Microsoft.AspNetCore.SignalR.Server/0.2.0-alpha1 )


Fix Apexcharts TypeError issues

Fix "TypeError: Cannot read property 'ToString' of undefined when bar chart is rendering with data".
I used this issue in the ApexCharts repo in order to solve it.
I struggled with this issue for the past few days since I purchased the NextJS flavor of TaliAdmin so I thought it would be helpful to others as well.

I have a doubt, about why we are using "series={state.series}" state for series, let's say the data changes so will the graph also re-render? Even if the graph doesn't re-render can we use useEffect?
Why was an additional state involved and the setState (handleReset) which constantly re-render the entire page even if the data is not changed?


Update sft_trainer.mdx

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.


Interpreter: incorrect with ... yield

Bug Report
I found this bug from Jennifer.cr's tests.
Example code:
class A
  @b = B.new("foo")

  def build
    b2 = B.new("bar")
    with b2 yield @b, b2
  end
end

class B
  getter value
  def initialize(@value : String)
  end
end

A.new.build do |t|
  puts value
  puts t.value
end

Compiled binary's output:
bar
foo

Interpreter's output:
foo
bar

I'm going through Jennifer.cr's tests, there are still a handful of failing tests.
I'll probably file a few more bug tickets when I have time.

Reduced:
def build
  with 1 yield 2, 1
end

build do |t|
  puts itself
end

Prints 1 in compiled mode, 2 in interpreted mode.


Specifying environment variables in RunSettings file

Description
Option to specify environment variables in run settings file.
RFC: https://github.com/microsoft/vstest-docs/pull/202
For example:
<?xml version="1.0" encoding="utf-8"?>
<!-- File name extension must be .runsettings -->
<RunSettings>
  <RunConfiguration>
    <EnvironmentVariables>
      <!-- List of environment variables we want to set-->
      <DOTNET_ROOT>C:\ProgramFiles\dotnet</DOTNET_ROOT>
      <SDK_PATH>C:\Codebase\Sdk</SDK_PATH>
    </EnvironmentVariables>
  </RunConfiguration>
</RunSettings>

These are set when spawning the test host process.
Related issue
https://github.com/microsoft/vstest/issues/2100

    private class TestableRunSettingsArgumentExecutor : RunSettingsArgumentExecutor

FileHelper please

Refers to: test/vstest.console.UnitTests/Processors/RunSettingsArgumentProcessorTests.cs:354 in 9ac75ee. [](commit_id = 9ac75ee971ffd4d170e3f57490929bef96b33774, deletion_comment = False)

Very happy to see this implemented. Please cc me the next time in the implementation PR as well. Were you able to address my comment (https://github.com/microsoft/vstest-docs/pull/202#discussion_r312434371) as well?

@ViktorHofer There is no scenario where we would now be running in vstest.console, wherenever there are environment variables specified, it runs in isolation which means testhost will be spawned.


[FEATURE] Use enum.name as parameter, and enum.value as value received by the function

Is your feature request related to a problem
I would like to be able to unleash the power of Enum ! The first case I stumbled onto is that of logging, e.g have the following Enum usable in typer:
class LogLevel(Enum):
    debug = 10
    info = 20
    warning = 30

Instead I have to use  this one, and then convert the string to the right value
class LogLevel(Enum):
    debug = "debug"
    info = "info"
    warning = "warning"

The solution you would like
I would like typer to interpret the value.name as arguments, and provide value.value to the called function, so that the following program would work as intended:
from enum import Enum
import typer
import logging

logger = logging.getLogger(__name__)

class LogLevel(Enum):
    debug = logging.DEBUG
    info = logging.INFO
    warning = logging.WARNING

def main(
        level: LogLevel,
):
    logger.setLevel(level)
    ...

if __name__ == "__main__":
    typer.run(main)

I think if this was configurable as an option, this would be great - on the other hand, we have a use-case where we have an Enum set up as
class Preset(str, Enum):
  PRESET_FOOBAR = "foo:bar"
  PRESET_BAZQUX = "baz:qux"

which then means we can do run --preset foo:bar in the CLI but reference Preset.PRESET_FOOBAR in code (which this PR / issue would break)
Do you think there's some way to nicely make the behaviour configurable?

@sapristi  +1

One way to make this feature configurable as an option would be to create a dummy NamedEnum class:
class NamedEnum(Enum):
    pass

And to add the behaviour I described only to instances of NamedEnum.

+1 to this feature!
I often have enums with numerical values, which are not convenient to be used in the help message.
But enum names are ALWAYS understandable.

The documentation for Enums - Choices is also slightly confusing in this aspect as the examples use the same words for both enum.name and enum.value:
class NeuralNetwork(str, Enum):
    simple = "simple"
    conv = "conv"
    lstm = "lstm"

Ok I finally found a way to have this without changing typer:
class MyEnum(Enum):
    value1 = {"k": "v"}
    value2 = 2

    def __init__(self, val):
        self.val = val

    @property
    def value(self):
        return self.name

With these re-definition of enum methods, one can use an Enum in typer, and obtained objects have the custom values in the val attribute:
@app.command()
def test(value: ME):
    print("HELLO", value.val)

@HaiyiMei's workaround from here seems to actually work quite well for this.
import typer
import click

import enum
from typing import Annotated

class Color(enum.Enum):
    RED = 0xFF0000
    GREEN = 0x00FF00
    BLUE = 0x0000FF

ColorArgument = typer.Argument(help="Color to set",
                               click_type=click.Choice(Color._member_names_, case_sensitive=False),
                               show_default=False)

def main(color_str: Annotated[str, ColorArgument] = Color.BLUE.name):
    color = Color[color_str] # This is guaranteed to work because click validates the names
    print(f"Set color to 0x{color.value:06x}")

if __name__ == "__main__":
    typer.run(main)

This produces a nice help message too:
 Usage: scratch.py [OPTIONS] [COLOR_STR]:[RED|GREEN|BLUE]

┌─ Arguments ─────────────────────────────────────────────────────────────────┐
│   color_str      [COLOR_STR]:[RED|GREEN|BLUE]  Color to set                 │
└─────────────────────────────────────────────────────────────────────────────┘
┌─ Options ───────────────────────────────────────────────────────────────────┐
│ --help          Show this message and exit.                                 │
└─────────────────────────────────────────────────────────────────────────────┘

@HaiyiMei's workaround from here seems to actually work quite well for this.
import typer
import click

import enum
from typing import Annotated

class Color(enum.IntEnum):
    RED = 0xFF0000
    GREEN = 0x00FF00
    BLUE = 0x0000FF

ColorArgument = typer.Argument(help="Color to set",
                               click_type=click.Choice(Color._member_names_, case_sensitive=False),
                               show_default=False)

def main(color_str: Annotated[str, ColorArgument] = Color.BLUE.name):
    color = Color[color_str] # This is guaranteed to work because click validates the names
    print(f"Set color to 0x{color.value:06x}")

if __name__ == "__main__":
    typer.run(main)

This produces a nice help message too:
 Usage: scratch.py [OPTIONS] [COLOR_STR]:[RED|GREEN|BLUE]

┌─ Arguments ─────────────────────────────────────────────────────────────────┐
│   color_str      [COLOR_STR]:[RED|GREEN|BLUE]  Color to set                 │
└─────────────────────────────────────────────────────────────────────────────┘
┌─ Options ───────────────────────────────────────────────────────────────────┐
│ --help          Show this message and exit.                                 │
└─────────────────────────────────────────────────────────────────────────────┘

Nicely done @multiplemonomials! Any ideas around how one could do something similar for multiple colors? Ie. a list of colors as input arguments?


Bug 1980587: Update plans table status filter logic to account for various plan states

The options in the plans table status filter dropdown were out of date, so this PR brings those options back in alignment with the states known for a plan (driven by the same logic that drives the plan status column in the table). Other than fixing the existing filter logic, another thing this does is introduce a few new statuses the user can filter by. Previously it was just Failed, Ready, Running, and Succeeded. Now we have addition options of Not Ready, Canceled, and Finished Incomplete. @vconzola are these new states ok/provide value? Let me know if we need to tweak it further.

drive status filter options from same state log as a plan state
distinguish between not started because of issues vs simply not having tried to start yet
should help close https://github.com/konveyor/forklift-ui/issues/703

Thx for all the help @mturley!


Update l10n files

Let's make one final l10n update before the next release, even though the last update was only a week ago.

Trivial update, hence landing without waiting for review.


Add g_markup_escape_text to Glib

Hey, yes unvalidated input has to be escaped before applying tags to use in gtk. (I'm applying the bold tag to the important parts I'm aware of for those who don't know that problem)
Here's what I'm using that seemed enough for now.
// Escape escapes a string to use as gtk text: &<>.
//
func Escape(msg string) string {
	msg = strings.Replace(msg, "&", "&", -1) // Escape ampersand.
	msg = strings.Replace(msg, "<", "<", -1)  // Escape <.
	msg = strings.Replace(msg, ">", ">", -1)  // Escape >.
	return msg
}

If I have any issue with this some day, I might take the time to check the source to see what's more to do and complete it.
But that would be nice to make a complete go version if someone finds the motivation.


OpenAPI specifications to OIS converter

We need an OIS tool to convert OpenAPI specifications to Oracle Integration Specifications automatically (see this). Please comment below if you are interested in building this.

Can you provide more details? Also link is broken.

Thanks for pointing that out, I fixed links in a bunch of issues.
Say we want to integrate the Petstore API to the Airnode and we have the OpenAPI specs for it
https://github.com/OAI/OpenAPI-Specification/blob/master/examples/v3.0/petstore.json
Currently, you would need to create an OIS following this guide
https://github.com/api3dao/api3-docs/blob/master/provider-guides/api-integration.md#step-1-specifying-the-api
However, the apiSpecifications field of the OIS is pretty much in the same format as OpenAPI specifications with a few differences. So a tool can generate OIS from existing OpenAPI specifications and allow us to integrate APIs that provide their OpenAPI specifications automatically.
The OIS docs include some guidelines for how this tool should work. For example, here, it says that this field should be sourced from the servers.0 field of OpenAPI specs and the tool should raise a warning if servers consists of multiple elements (because this means that there are multiple base URLs that can be chosen from and just using the first one may not be correct and whoever is doing the integration should verify that the correct base URL is entered in the OIS).
Ideally this would be a JS/TS script because we don't want to diversify our stack too much. It would look like this validator tool.


Bug: Too many chances to open "drawer"

There're too many approaches to open "drawer".

Garden-list, with "burg" button
Plant-list, with "arrow" button
In detail screen

How about using a solution of bottom-bar which is also an approach of MD, right @andhie , @tiembo ?

The guideline says Bottom Navigation is suitable if you have 3 to 5 tabs.
As i can see, the app only has 2 top level screen. (unless you can figure out what the 3rd tab does)
In such case, using ViewPager with TabLayout is more suitable instead
https://material.io/design/components/bottom-navigation.html
https://material.io/design/components/navigation-drawer.html

@andhie Also a good idea.

however, i would still prefer to do something that would make use of Navigation (to demo its capability). so i would lean towards BottomNavigation with 3 tabs. perhaps the 3rd tab can be About screen or similar?

Thanks for the discussion @XinyueZ and @andhie.  Yes, the navigation should move from a Navigation Drawer to Bottom Navigation.  In addition to "My Garden" and "Plant List", the additional destination(s) can be a Settings destination and possible an About destination.
Agree right now that it's a bit confusing that the nav drawer is accessible via the plant detail page.

Also, https://issuetracker.google.com/issues/80029773 address reconciling Navigation and Material guidelines.

Agree right now that it's a bit confusing that the nav drawer is accessible via the plant detail page.
The guideline didnt specify in detail screen that the drawer is not accessible. if you take note, the Google Play Store can access the drawer via edge swipe even in app detail page.

Closing outdated issue as the navigation drawer has since been removed.


Query by Example does not work properly with 0.8.9 version

Querying by org.springframework.data.domain.Example creates a query without any filter.
"FT.SEARCH" "com.example.demo.PersonEntityIdx" "*" "LIMIT" "0" "10000" "DIALECT" "1"
@Data
@AllArgsConstructor
@Document("person")
public class PersonEntity {

    @Id
    private String seqId;

    @Searchable
    private Long mobileNo;
}

On first deployment, where the indexes are getting created, the query gets created correctly
"FT.SEARCH" "com.example.demo.PersonEntityIdx" "( @mobileNo:1010101010)" "LIMIT" "0" "10000" "DIALECT" "1"
But starting from the second deployment (when the index creations are skipped because they already exists), it generates query without any filter.
The potential cause might be following line which returns null if the index creations are skipped for that particular entity class
  final List<SchemaField> schema = indexer.getSchemaFor(entityClass);

Good catch! Working on a fix. Thanks

Notes:

The issue here is that we have in-memory definition of an index schema that is created when the index is created
On application restart, if the index is already in Redis, the code for the index creation was skipped (along with the in-memory definition instantiation)
The fix is to skip the index creation but rehydrate the in-memory definition


Restore defaults for istio-iptables.sh

By default, VMs should not redirect any traffic to Envoy. When merging
this script with the old proxy script, the defaults were swapped to
redirect all traffic.
The one wrinkle is that the old script was supposed to be symmetrical in that by default neither inbound nor outbound traffic would be redirected to Envoy.  However, it seems that the original script redirected all outbound traffic to Envoy by default.  This PR will correctly do nothing by default.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: douglas-reid
Assign the PR to them by writing /assign @douglas-reid in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@nmittler: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e.sh
f430aab6125238d8eb38501776f3d55ef1a8bfa3
link
/test istio-pilot-e2e

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.

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

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e.sh
f430aab6125238d8eb38501776f3d55ef1a8bfa3
link
/test istio-pilot-e2e

prow/e2e-simpleTests.sh
f430aab6125238d8eb38501776f3d55ef1a8bfa3
link
/test e2e-simple

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.

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

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e.sh
f430aab6125238d8eb38501776f3d55ef1a8bfa3
link
/test istio-pilot-e2e

prow/e2e-simpleTests.sh
f430aab6125238d8eb38501776f3d55ef1a8bfa3
link
/test e2e-simple

prow/istio-pilot-e2e-v1alpha3.sh
f430aab6125238d8eb38501776f3d55ef1a8bfa3
link
/test istio-pilot-e2e-v1alpha3

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.

/test e2e-simple

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

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e.sh
f430aab6125238d8eb38501776f3d55ef1a8bfa3
link
/test istio-pilot-e2e

prow/istio-pilot-e2e-v1alpha3.sh
f430aab6125238d8eb38501776f3d55ef1a8bfa3
link
/test istio-pilot-e2e-v1alpha3

prow/e2e-simpleTests.sh
f430aab6125238d8eb38501776f3d55ef1a8bfa3
link
/test e2e-simple

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.


Fix import pattern

This PR is just to fix the import pattern to follow the convention.
Pre-launch Checklist

[x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
[x] I read the [Tree Hygiene] wiki page, which explains my responsibilities.
[x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
[x] I signed the [CLA].
[ ] I listed at least one issue that this PR fixes in the description above.
[ ] I updated/added relevant documentation (doc comments with ///).
[ ] I added new tests to check the change I am making, or this PR is [test-exempt].
[x] All existing and new tests are passing.

test-exempt: cleanup


using other (static) widgets

First, I would like to thank you for this very interesting example you provide us. I found another approach in a different repo, but yours is by far more elegant.
I face an issue when I adapt the node to have a static widget (defined in the node INPUT_TYPES), converted to an input slot:  when connecting a link, the static one gets renamed to either _PREFIX + '_' or _PREFIX + '_1' (depending if we connect the static or dynamic one). Which is normal, when analyzing the code.
The solution I found is to patch nodeType.prototype.onConnectionsChange with:

early exit if the slot name doesn't start with _PREFIX, something like (line 44):

if (!node_slot.name.startsWith(_PREFIX)) return me;

Modify line 78 to have:

slot.name = name === _PREFIX ? `${name}_${count}` : name;

Of course, using a regexp would be better than startsWith(), did that to make it more readable.
It seems to work, but I find it a bit dirty... would you have a cleaner approach?
Bonus question: is there a way to ensure the static input is always listed before the dynamic ones? I'm afraid it's part of Comfy default behavior and can't be changed easily though...
Thanks in advance for your help!

While digging, I may have identified another issue (possibly a bug).
For my testing, I just changed _PREFIX = 'str' and _TYPE = 'STRING' (and of course the Python class accordingly) to make it easier, but it shouldn't change the behavior.
Let's imagine I have 4 string inputs, with values: 'input1', 'input2', 'input3', 'input4'

I first connect the first 3 inputs, so I now have:
input1 -> str_1
input2 -> str_2
input3 -> str_3
str (not connected)

Now, if I connect the 4th input to str_1, replacing the existing link, I would expect:
input4 -> str_1
input2 -> str_2
input3 -> str_3
str (not connected)
But instead I get:
input4 -> str_1
input3 -> str_2
str (not connected)

So my input2, previously connected to str_2, is  also removed.
If I analyze correctly, the main issue is that replacing a link is not a single event, but 2 distinct ones: a disconnect then a connect. Possibly also the fact that this.removeInput() may get called twice, in case of a disconnect?
Do you see a way to correct this?
Thank you!

For the static "entries" -- my own solution is to put those at the top and only put the dynamic fields after. Trying to mix them, or put the dynamic entries above static ones, only leads to a bunch of confusion and code work. That is, sadly, a problem for ComfyUI itself and how its rendering the inputs.
As for the second problem, correct, that is also a ComfyUI problem. This was, unfortunately, a simple example how to at least get a dynamic input, not a complete solution for all the setups that you can do/need with dynamic inputs.
I don't want to confuse this solution (simple) with more complex problems since most are only looking for an example how-to.
For the more complex problem(s) you are talking about, I would recommend looking at:
my repo or
comfy_mtb or
kjnodes
which have solved these issues more complicated issues with a little more code work around the problem of dynamic inputs.
Sorry! I hope that helps.

Many thanks for this quick and detailed answer!
I fully understand that your repo is intended as an example and should  not be too complex, that's not its purpose.
In the meantime, I took some time to study and import some functions from the comfy_mtb repo, and had some success with it. It seems to handle my 2nd issue (by using an approach of "transit"), with the (acceptable) downside of not removing the last dyn inputs on manual disconnect (but replacing works).
And I also managed to patch it to handle static inputs, with the limitation you described about order of inputs.
All things considered, I'm now able to use dynamic inputs for my own personal nodes, which is great!
So I am really grateful for this great repo you provide us, indeed it did a great job for me to have a better understanding of dynamic inputs and build my own solution.
Thanks again, cheers!

That sounds amazing! I am glad there was some value here for you.
Thank you for the kind words!


[Feature Fix]Add link modal clipping names

Purpose
QA brought up Add Link's modal is breaking last names into single character lines if Project name is too long. This PR fixes this problem.
Changes
Took out break-word: break-all css in site.css. Added modal-lg to class to allow for more space in general.
Side Effects
There should be no side effects as this is a simple bug fix.

@GageGaskins -- Is this based on a GH Issue #? If so, can you note in description this PR as an answer.

Cailey brought it up to me while she was testing, so no issue was actually made.

OK -- I assume you reproduced the issue. I think next time, we submit the GH issue first, so we have visibility and detail of the problem, and then apply the solution. Thanks.

@lbanner, here's a screenshot of the issue:

Looks good! :+1: @sloria, I think this is good to go.

@icereval Here's an update to a PR that needs to be merged.


Arch arm sw vector table cleanup

This will save some flash on Cortex-M0 with SW vector relaying, and in particular, (16 + 32)x4 = 192 bytes.

good - have to test this.

good - have to test this.

Yeap, please help with some testing here, @nvlsianpu , you master this area :)

@ioannisg Work just fine (with @stephanos corrections). Tested on nrf51dk_nrf51244.
west build -d build/mcuboot_51 -b nrf51dk_nrf51422 ./bootloader/mcuboot/boot/zephyr/ -t menuconfig
/* ^^ have selected LOG */
west build -d build/mcuboot_51 -b nrf51dk_nrf51422 ./bootloader/mcuboot/boot/zephyr/
west flash -d build/mcuboot_51
west build -d build/ble -b nrf51dk_nrf51422 ./zephyr/samples/bluetooth/beacon/ -t menuconfig
/* ^^I  have selected BOOTLOADER_MCUBOOT and SW_VECTOR_RELAY via menuconfig. Normally In proj.conf BOOTLOADER_MCUBOOT set is enought */
west build -d build/ble -b nrf51dk_nrf51422 ./zephyr/samples/bluetooth/beacon/
sign_img 0x1a000 build/ble/zephyr/zephyr.hex  signed_ble_51.hex
nrfjprog -f NRF51 --program signed_ble_51.hex
nrfjprog -f NRF51 -r

console output:
*** Booting Zephyr OS build zephyr-v2.3.0-438-g24f8b5888a34  ***
[00:00:00.006,500] <inf> mcuboot: Starting bootloader
[00:00:00.017,181] <inf> mcuboot: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
[00:00:00.030,151] <inf> mcuboot: Boot source: none
[00:00:00.037,689] <inf> mcuboot: Swap type: none
[00:00:01.432,617] <inf> mcuboot: Bootloader chainload address offset: 0x8000
[00:00:01.441,864] <inf> mcuboot: Jumping to the first image slot
*** Booting Zephyr OS build zephyr-v2.3.0-438-g24f8b5888a34  ***
Starting Beacon Demo
Bluetooth initialized
Beacon started
[00:00:00.012,969] <inf> bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
[00:00:00.013,000] <inf> bt_hci_core: HW Variant: nRF51x (0x0001)
[00:00:00.013,031] <inf> bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 2.3 Build 99
[00:00:00.015,686] <inf> bt_hci_core: Identity: e1:f7:d2:4a:e3:b6 (random)
[00:00:00.015,716] <inf> bt_hci_core: HCI: version 5.2 (0x0b) revision 0x0000, manufacturer 0x05f1
[00:00:00.015,747] <inf> bt_hci_core: LMP: version 5.2 (0x0b) subver 0xffff

Test beacon appeared on my BLE scaner as well.

@oyvindronningstad The idea is not clear too me - can you elaborate more or even better give a code snippet?

@oyvindronningstad The idea is not clear too me - can you elaborate more or even better give a code snippet?

https://github.com/oyvindronningstad/zephyr/commit/ca34f8ebae472228c15dd1b6c6cf81280fb37adc

@stephanosio @ioannisg @oyvindronningstad
I put on Øyvind's sugestion - the last commit should be squashed with the previous one.

Patch squashed to one commit (code is same as @oyvindronningstad approved).
@stephanosio @d3zd3z Would be great to have your review here.


Remove stable RNA

Use the tool in the same package as BBMap.

Fixed in 94e634465505874002b4431c4988b9b5df34eccd with --sequence_filter parameter.


Error: unsupported operand type(s) for +: 'NoneType' and 'int'

When I use ANARCI to number antibodies, sometimes this error occurs.
And this error always appears at the end of the program.
What should I do?

Error:  unsupported operand type(s) for +: 'NoneType' and 'int'

The reason for this problem is that some antibody sequences have extremely long CDR3, which leads to errors in initializing the jRegion variable in the check_for_j function in the program.

When I use ANARCI to number antibodies, sometimes this error occurs. And this error always appears at the end of the program. What should I do?

Hi @Linun-Van
For us to help you, could you provide us with the 1) command that you executed and 2) the inputs provided?
Take a screenshot or copy and paste the commands here.

Hi,
I got the same error a few times. The sequences that we causing this error are on the attached fasta file. They are supposed to be normal IG sequences, but this error happened with all numbering schemes I tried.
This was the command I used:
ANARCI -i error.fasta -s martin
And the output was:
Warning: Non IG chains cannot be numbered with the kabat scheme. These will be ignored.
Error:  unsupported operand type(s) for +: 'NoneType' and 'int'
error.fasta.txt

I encountered the error as well, using the following command: ANARCI --sequence error.fa --scheme imgt with the following stacktrace:
Traceback (most recent call last):
  File "/home/project/miniconda3/envs/project/bin/ANARCI", line 187, in <module>
    sequences, numbered, alignment_details, hit_tables =  run_anarci(args.inputsequence, scheme=args.scheme, output=True,
  File "/home/project/miniconda3/envs/project/lib/python3.10/site-packages/anarci/anarci.py", line 931, in run_anarci
    results = list(map( anarci_partial, grouper( chunksize, sequences ) ))
  File "/home/project/miniconda3/envs/project/lib/python3.10/site-packages/anarci/anarci.py", line 834, in anarci
    check_for_j( sequences, alignments, scheme )
  File "/home/project/miniconda3/envs/project/lib/python3.10/site-packages/anarci/anarci.py", line 744, in check_for_j
    jRegion   = [ (state, index+cys_si+1) for state, index in re_states[0] if state[0] >= 117 ]
  File "/home/project/miniconda3/envs/project/lib/python3.10/site-packages/anarci/anarci.py", line 744, in <listcomp>
    jRegion   = [ (state, index+cys_si+1) for state, index in re_states[0] if state[0] >= 117 ]
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'

Anarci was installed using conda install -c bioconda anarci=2021.02.04
error.fa.txt

I think the cause of the error is that deletion states that the run_hmmer() function returns, have an index of None. This is not handled in the code.  It's possible to fix the error by checking that the index variable isn’t None.


Always enable Java assertions

Java → Installed JREs → Java SE 8 → Edit... → Default VM arguments → -ea
The preference is vmargs for the right vm entry in org.eclipse.jdt.launching.PREF_VM_XML.

Java → JUnit → Add '-ea' to VM arguments when creating a new JUnit launch configuration
What is the default for the preference? Does it apply when you run tests without creating a run configuration first?


pg-gvm: init at 22.6.5

Release: https://github.com/greenbone/pg-gvm/releases/tag/v22.6.5

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[x] sandbox = true

[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

@superherointj

Result of nixpkgs-review pr 329501 run on x86_64-linux 1

1 package built:

pg-gvm

@wolfgangwalther Feel free to proceed with any changes that you deem necessary/reasonable.


Search is returning stale pages

Haven't looked into how the docsy theme handles search results, but it's returning page links which aren't valid. As an example, do a search for "preconditions" and click the top link. Seems like it's not updating its cache of pages when the site gets updated.

@chipzoller we are using Google Custom Search Engine and it returns the google result. If you search site:kyverno.io precondition on google and click on the first result then it will cause the same issue. In google webmaster, there is an option for change the scraping interval.
@JimBugwadia can you increase the time that google scrape the kyverno website using the sitemap.

If you see the sitemap it is updated but I think google didn't scrape the updated docs.

This PR changed the search to use a local search. Try it at: https://deploy-preview-56--kyverno.netlify.app/.

Seems to be fine. Although search box doesn't work on the CRDs page for some reason.

Ah, yes. We need to delete the CRDs page.  It is showing an outdated HTML that was manually generated from the schema types.
We can add text in the Writing policies section on how to use kubectl explain etc. to view the schema.

I put that in the Tips & Tricks section, but maybe there's an additional place it should go as well. That said, it is, I think anyway, still very useful to have the schemata documented in textual format. But maybe there's a better way to generate that.

@chipzoller - here is a corresponding PR for the policies (titles, descriptions, etc.): https://github.com/kyverno/policies/pull/7.
Regarding the CRDs - perhaps we can generate and link to an HTML preview separate from the website, so its clear search, etc. will not work.

I've seen that done in other projects so it's worth a try here.

Closing this. I logged a separate issue for the CRD section.

Closing this. I logged a separate issue for the CRD section.


Unify DefinitionDictionary and the resolution stuff in Cql2Elm.

Both in the ExpressionBuilder and the Cql2Elm we have functions to lookup functions in external libraries.  Let's try to unify them.

If Ewout or Evan picks this up - please refine this with each other to make sure we're not doing things twice or throw away too much code ;-)


UIImageView and UIButton setImageWithURL: internally uses requestSerializer

Overview
UIImageView and UIButton both have categories with method -setImageWithURL:placeholderImage: (and shortcut setImageWithURL:).This method is building new NSMutableURLRequest and manually setting Accept: image/* header.
Problems

It is impossible to customise HTTP headers and other request properties (e.g. cache policy etc.) globally for all images downloaded using the category

Only solution is to implement custom category always building custom request

All Image requests done using this convenience method have only basic Accept: image/*
Requests done using the method ignore even the AFNetworking's basic default HTTP headers like User-Agent

Suggestion / solution
IMHO the request done using the convenience method should be using request serializer of session manager used for this request ([class sharedImageDownloader].sessionManager.requestSerializer).
That way it is possible have global configuration for all image requests done using this method.
This change allows configuration like this:
AFHTTPRequestSerializer <AFURLRequestSerialization> * requestSerializer = [[UIImageView class] sharedImageDownloader].sessionManager.requestSerializer;
[requestSerializer setValue:customHeader forHTTPHeaderField:@"MyCustomValue"];
requestSerializer.cachePolicy = NSURLRequestReloadIgnoringCacheData;

(Please note that this is just an example. Turning off image cache completely might not very desirable 😃 )
Compatibility
Without explicitly opting in by customising request serializer, the solution should work just as before the change. The same default Accept header is set, just on different place (removed duplication).

Feedback welcome
Please note I opened this PR mainly as suggestion / base for discussion. I'd like to hear your opinion if my thinking about it is right.

Thanks for the PR! However, due to its age it will not be merged. If the issue is still occurring feel free to open a new PR.


Bug in Observation Vector

Hello, I think there might be an issue with how the observation vector is created in the PettingZooParallelWrapper. The IP range and malicious processes bits appear to always be 0. I have added a code snippet to show this, it prints nothing for me. I have found that this causes the agent to learn a 'noop' action, as they can't make informed decisions about the environment. Of note, I ran this on the most recent commit, including the updates to the PettingZooParallelWrapper. Please let me know if this is just an error in my setup. Cheers.
`MAX_EPS = 2
from CybORG.Agents.Wrappers.PettingZooParallelWrapper import PettingZooParallelWrapper
from ray.rllib.env import ParallelPettingZooEnv
from CybORG import CybORG
from CybORG.Simulator.Scenarios import DroneSwarmScenarioGenerator

sg = DroneSwarmScenarioGenerator()
cyborg = CybORG(sg, 'sim')
env = ParallelPettingZooEnv(PettingZooParallelWrapper(env=cyborg))

for i in range(MAX_EPS):
    observations = env.reset()
    action_spaces = wrapped_cyborg.action_spaces
    a = []
    for j in range(500):
        actions = {agent_name: 42 for agent_name in cyborg.agents}
        observations, rew, done, info = env.step(actions)
        for agent in rew.keys():
            if np.all(observations[agent][2:20] != 0):
                print(observations[agent][2:20])
        if all(done.values()):
            break`

Redirecting this to here: https://github.com/cage-challenge/CybORG/issues/16


Request Access button on your home page is busted

Takes to spam not your google form

@theroadeldorado the links within the README file looks good to me

Here's the link just in case: https://docs.google.com/forms/d/e/1FAIpQLSdLDslLmbCcSDvs85ys67zcvqtW3IWBmng7O0AcY0YrnXvSlA/viewform
: D