[BUG] The volume  is attaching

Describe the bug
I'm trying to create a simple pod with an attached longhorn volume, but the pod startup fails with a cryptic error:
AttachVolume.Attach failed for volume "pvc-c5c541a0-82f3-44fd-8e7e-88f95d3d6f83" : rpc error: code = Aborted desc = The volume pvc-c5c541a0-82f3-44fd-8e7e-88f95d3d6f83 is attaching
The volume in the Longhorn UI sits in state "Attaching" indefinitely.
To Reproduce
Steps to reproduce the behavior:

Create a PVC in rancher, using the longhorn storage class and all of the other settings default.
Create a deployment in rancher with the following settings:
Container image: ubuntu
Command: /bin/bash
Stdin: yes
TTY: checked
Storage: Select the PVC created in step 1, set mount point to /mnt/longhorn
All other settings default
The pod will fail to start successfully, seeming to be stuck on attaching the longhorn volume, and will show the error above.

Expected behavior
At step 3, I would expect the pod to start successfully and see a mount at /mnt/longhorn with the longhorn volume inside of the pod container OS.
Log
longhorn-support-bundle_331977bb-ca15-4f3a-8383-3ca98227ac5c_2021-03-14T19-44-33Z.zip
Environment:

Longhorn version: 1.1.0
Kubernetes distro (e.g. RKE/K3s/EKS/OpenShift) and version: RKE, v1.20.4

Number of management node in the cluster: 3
Number of worker node in the cluster: 3

Node config

OS type and version: Ubuntu 21.10
CPU per node: 4
Memory per node: 8GB
Disk type(e.g. SSD/NVMe): SSD
Network bandwidth between the nodes: Local (same hypervisor)

Underlying Infrastructure (e.g. on AWS/GCE, EKS/GKE, VMWare/KVM, Baremetal): VMware
Number of Longhorn volumes in the cluster: 1

Additional context
Nothing I can think of.

Hi! Can you provide output of command sudo systemctl status iscsid for the nodes?

You bet, thanks for the reply.
● iscsid.service - iSCSI initiator daemon (iscsid)
     Loaded: loaded (/lib/systemd/system/iscsid.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2021-03-15 16:22:12 UTC; 2h 26min ago
TriggeredBy: ● iscsid.socket
       Docs: man:iscsid(8)
    Process: 832 ExecStartPre=/lib/open-iscsi/startup-checks.sh (code=exited, status=0/SUCCESS)
    Process: 865 ExecStart=/sbin/iscsid (code=exited, status=0/SUCCESS)
   Main PID: 878 (iscsid)
      Tasks: 2 (limit: 9441)
     Memory: 4.1M
     CGroup: /system.slice/iscsid.service
             ├─877 /sbin/iscsid
             └─878 /sbin/iscsid

Mar 15 16:22:12 rancher-work01 systemd[1]: Starting iSCSI initiator daemon (iscsid)...
Mar 15 16:22:12 rancher-work01 iscsid[865]: iSCSI logger with pid=877 started!
Mar 15 16:22:12 rancher-work01 systemd[1]: Started iSCSI initiator daemon (iscsid).
Mar 15 16:22:12 rancher-work01 iscsid[877]: iSCSI daemon with pid=878 started!

Other nodes are similar, just with different pid values.

I did find one thing, re-reading the documentation, I discovered the environment_check.sh script, and see some errors, but I'm not entirely sure what's causing them.
rancher-work01# curl -sSfL https://raw.githubusercontent.com/longhorn/longhorn/v1.1.0/scripts/environment_check.sh | bash
The connection to the server localhost:8080 was refused - did you specify the right host or port?
The connection to the server localhost:8080 was refused - did you specify the right host or port?
all pods ready (/)
The connection to the server localhost:8080 was refused - did you specify the right host or port?
node : MountPropagation DISABLED

  MountPropagation is disabled on at least one node.
  As a result, CSI driver and Base image cannot be supported.

cleaning up...
error: unable to recognize "/tmp/tmp.56LQAZXbKt/environment_check.yaml": Get "http://localhost:8080/api?timeout=32s": dial tcp <IP_ADDRESS>:8080: connect: connection refused
clean up complete

I have MountFlags=shared in /lib/systemd/system/docker.service, so as far as I know it should work fine. Based on the content of the script it looks like the kubectl commands aren't able to connect to something. Not sure if that's related to my problem or not.
Either way, running the mentioned a few packages I didn't have installed. I've installed them and have a new support bundle here: longhorn-support-bundle_331977bb-ca15-4f3a-8383-3ca98227ac5c_2021-03-15T22-27-29Z.zip

did you run this command on the master or an external with kubeconfig?  Seems like you run in one of worker node.

All 3 of the nodes in my cluster have all of the roles, so they each have etcd, control plane, and worker status. They were all created through a docker command like this:
sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run  rancher/rancher-agent:v2.5.6 --server https://rancherurl:8443 --token token --ca-checksum checksum --etcd --controlplane --worker
Kubectl wasn't actually present on the servers after they were deployed with that, I had to install the package directly.

For RKE cluster, please follow the guide (https://rancher.com/docs/rancher/v2.x/en/cluster-admin/cluster-access/kubectl/) to setup on kubeconfig.

Thanks for that, that resolved my problems with the environment check script at least.
rancher-work01# curl -sSfL https://raw.githubusercontent.com/longhorn/longhorn/v1.1.0/scripts/environment_check.sh | bash
daemonset.apps/longhorn-environment-check created
waiting for pods to become ready (0/3)
waiting for pods to become ready (0/3)
all pods ready (3/3)

  MountPropagation is enabled!

cleaning up...
daemonset.apps "longhorn-environment-check" deleted
clean up complete

That's odd, I don't see any pods that include "instance" in the name, in any namespace. Is "longhorn-manager" the same thing, or is my deployment missing something somehow?

There should be one instance-manager-e and one instance-manager-r in each of the worker node.  If the worker nodes lack of resources, these pods might either fail to startup or get killed.  Try to increase resource allocation (CPU/Memory) for the worker nodes.

I don't believe that's the problem here, there's a good amount of free resources, and the pods simply don't exist, they don't appear to be in a creation loop or something like that. For example,
> kubectl get pods --all-namespaces
NAMESPACE         NAME                                       READY   STATUS              RESTARTS   AGE
cattle-system     cattle-cluster-agent-6b8857d56c-7t6p6      1/1     Running             12         7d17h
cattle-system     cattle-node-agent-jlswp                    1/1     Running             11         7d17h
cattle-system     cattle-node-agent-pkntt                    1/1     Running             12         7d17h
cattle-system     cattle-node-agent-rmt4v                    1/1     Running             11         7d17h
cattle-system     dashboard-shell-ztxq9                      2/2     Running             0          23s
cattle-system     kube-api-auth-2z4w7                        1/1     Running             8          7d17h
cattle-system     kube-api-auth-2zxn7                        1/1     Running             7          7d17h
cattle-system     kube-api-auth-f7h5g                        1/1     Running             7          7d17h
default           nginx-test-6f94bccb44-46dkt                1/1     Running             7          8d
default           nginx-test-6f94bccb44-49rnz                1/1     Running             7          8d
default           nginx-test-6f94bccb44-4mhf7                1/1     Running             7          8d
default           nginx-test-6f94bccb44-69mkl                1/1     Running             7          8d
default           nginx-test-6f94bccb44-c2ntw                1/1     Running             7          8d
default           nginx-test-6f94bccb44-clnjp                1/1     Running             7          8d
default           nginx-test-6f94bccb44-dqxjv                1/1     Running             7          8d
default           nginx-test-6f94bccb44-qql8s                1/1     Running             7          8d
default           nginx-test-6f94bccb44-v99rq                1/1     Running             7          8d
default           nginx-test-6f94bccb44-xfvnd                1/1     Running             7          8d
default           ubuntutest-8f86d865f-vd4zb                 0/1     ContainerCreating   0          40h
fleet-system      fleet-agent-55bfc495bd-l8bp9               1/1     Running             7          8d
ingress-nginx     nginx-ingress-controller-k4whr             1/1     Running             11         12d
ingress-nginx     nginx-ingress-controller-k59ln             1/1     Running             8          12d
ingress-nginx     nginx-ingress-controller-m8h4j             1/1     Running             10         12d
kube-system       calico-kube-controllers-6c8ddcb6cd-bpcvk   1/1     Running             8          8d
kube-system       canal-9m4qt                                2/2     Running             21         12d
kube-system       canal-gqbjp                                2/2     Running             16         12d
kube-system       canal-v8wbv                                2/2     Running             18         12d
kube-system       coredns-669b8675c5-29zd7                   1/1     Running             7          8d
kube-system       coredns-669b8675c5-6k84t                   1/1     Running             7          7d17h
kube-system       coredns-autoscaler-79599b9dc6-p9wdg        1/1     Running             7          8d
kube-system       metrics-server-6cc9c79d8c-65xwc            1/1     Running             7          8d
longhorn-system   csi-attacher-85976fc6f-4kwkf               1/1     Running             1          40h
longhorn-system   csi-attacher-85976fc6f-kcnqq               1/1     Running             1          40h
longhorn-system   csi-attacher-85976fc6f-shcwl               1/1     Running             1          40h
longhorn-system   csi-provisioner-848fd784dc-5d5jl           1/1     Running             1          40h
longhorn-system   csi-provisioner-848fd784dc-6pdts           1/1     Running             1          40h
longhorn-system   csi-provisioner-848fd784dc-k24px           1/1     Running             1          40h
longhorn-system   csi-resizer-5fb779f55f-7jxvg               1/1     Running             1          40h
longhorn-system   csi-resizer-5fb779f55f-8j7k7               1/1     Running             1          40h
longhorn-system   csi-resizer-5fb779f55f-t7gbj               1/1     Running             1          40h
longhorn-system   csi-snapshotter-5f6d68fffd-5cztg           1/1     Running             1          40h
longhorn-system   csi-snapshotter-5f6d68fffd-c9twp           1/1     Running             1          40h
longhorn-system   csi-snapshotter-5f6d68fffd-hv62z           1/1     Running             1          40h
longhorn-system   engine-image-ei-deb8b464-6lkhp             1/1     Running             1          40h
longhorn-system   engine-image-ei-deb8b464-hhx6s             1/1     Running             1          40h
longhorn-system   engine-image-ei-deb8b464-rc5m8             1/1     Running             1          40h
longhorn-system   longhorn-csi-plugin-5z2wm                  2/2     Running             4          40h
longhorn-system   longhorn-csi-plugin-8mgbz                  2/2     Running             2          40h
longhorn-system   longhorn-csi-plugin-8prq9                  2/2     Running             3          40h
longhorn-system   longhorn-driver-deployer-cb89ffd76-tr6sx   1/1     Running             1          40h
longhorn-system   longhorn-manager-8n5vf                     1/1     Running             2          40h
longhorn-system   longhorn-manager-xh2jj                     1/1     Running             2          40h
longhorn-system   longhorn-manager-zl2hv                     1/1     Running             2          40h
longhorn-system   longhorn-ui-858447dc84-cr6pm               1/1     Running             2          40h

I've also run kubectl describe nodes just to show the resource usage on my nodes, there's really not much going on with them.
kubectl describe nodes.txt

From the logs longhorn-manger.log you have attached, we see that
2021-03-15T22:27:24.901940251Z E0315 22:27:24.901740       1 instance_manager_controller.go:245] fail to sync instance manager for longhorn-system/instance-manager-e-c7956211: failed to create pod for instance manager instance-manager-e-c7956211: Pod "instance-manager-e-c7956211" is invalid: spec.containers[0].resources.requests: Invalid value: "250m": must be less than or equal to cpu limit
2021-03-15T22:27:24.901984464Z time="2021-03-15T22:27:24Z" level=warning msg="Dropping Longhorn instance manager longhorn-system/instance-manager-e-c7956211 out of the queue: fail to sync instance manager for longhorn-system/instance-manager-e-c7956211: failed to create pod for instance manager instance-manager-e-c7956211: Pod \"instance-manager-e-c7956211\" is invalid: spec.containers[0].resources.requests: Invalid value: \"250m\": must be less than or equal to cpu limit"
2021-03-15T22:27:24.901997635Z E0315 22:27:24.901741       1 instance_manager_controller.go:245] fail to sync instance manager for longhorn-system/instance-manager-r-a9a767c1: failed to create pod for instance manager instance-manager-r-a9a767c1: Pod "instance-manager-r-a9a767c1" is invalid: spec.containers[0].resources.requests: Invalid value: "250m": must be less than or equal to cpu limit
2021-03-15T22:27:24.904973046Z time="2021-03-15T22:27:24Z" level=warning msg="Dropping Longhorn instance manager longhorn-system/instance-manager-r-a9a767c1 out of the queue: fail to sync instance manager for longhorn-system/instance-manager-r-a9a767c1: failed to create pod for instance manager instance-manager-r-a9a767c1: Pod \"instance-manager-r-a9a767c1\" is invalid: spec.containers[0].resources.requests: Invalid value: \"250m\": must be less than or equal to cpu limit"

Seems like lacks of CPU Resources.

So, I think I may have figured out the problem.
The README for the chart, at least in Rancher says "Important: Please install Longhorn chart in longhorn-system namespace only."
Seeing this, I had gone ahead and created a longhorn-system namespace manually, inside of the "System" project. Something with this configuration was applying a CPU limit, causing those instance-manager pods to be unable to start.
The fix was to delete longhorn, remove the longhorn-system namespace, and then install longhorn again, letting it create the namespace itself.
Thanks so much for the guidance through this. While I don't think this is a bug anymore, it may be wise to adjust that line in the README to note that the namespace will be created automatically.

So, I think I may have figured out the problem.
The README for the chart, at least in Rancher says "Important: Please install Longhorn chart in longhorn-system namespace only."
Seeing this, I had gone ahead and created a longhorn-system namespace manually, inside of the "System" project. Something with this configuration was applying a CPU limit, causing those instance-manager pods to be unable to start.
The fix was to delete longhorn, remove the longhorn-system namespace, and then install longhorn again, letting it create the namespace itself.
Thanks so much for the guidance through this. While I don't think this is a bug anymore, it may be wise to adjust that line in the README to note that the namespace will be created automatically.

longhorn chart installation does not handle namespace creation which depends on the helm version. In the readme, we mentioned the namespace usage in different versions of the helm, so we can't make sure how the namespace managed before the helm chart installation.
3. Install Longhorn chart.
- With Helm 2, the following command will create the `longhorn-system` namespace and install the Longhorn chart together.

helm install longhorn/longhorn --name longhorn --namespace longhorn-system
- With Helm 3, the following commands will create the `longhorn-system` namespace first, then install the Longhorn chart.

But, it's good to know you already figured out, and thanks for the feedback :+1:


Fixed Function Implementation that Converts DER to Weave Signature.

In the variant of the function where output is EncodedECDSASignature
structure, the R and S values of the signature should be copied
and not just referenced.

Codecov Report

Merging #555 into master will decrease coverage by 0.01%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master     #555      +/-   ##
==========================================
- Coverage   54.18%   54.17%   -0.02%
==========================================
  Files         331      331
  Lines       57626    57637      +11
==========================================
  Hits        31225    31225
- Misses      26401    26412      +11

Impacted Files
Coverage Δ

src/lib/profiles/security/WeaveSig.cpp
87.25% <0.00%> (-4.00%)
:arrow_down:

Continue to review full report at Codecov.

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


Log stacktrace for error responses in LoggingService.

Currently, error responses have the exception's toString included but not the stacktrace, which makes it harder to pinpoint errors. This allows the stacktrace to be dumped together with the response log for easier debugging.

Looks good, but seems like you need to update LoggingServiceTest as well.

This should fix the build failure:
diff --git a/core/src/test/java/com/linecorp/armeria/server/logging/LoggingServiceTest.java b/core/src/test/java/com/linecorp/armeria/server/logging/LoggingServiceTest.java
index 2a346e06..b716109a 100644
--- a/core/src/test/java/com/linecorp/armeria/server/logging/LoggingServiceTest.java
+++ b/core/src/test/java/com/linecorp/armeria/server/logging/LoggingServiceTest.java
@@ -115,10 +115,12 @@ public class LoggingServiceTest {
     public void defaults_error() throws Exception {
         LoggingService<HttpRequest, HttpResponse> service = new LoggingServiceBuilder()
                 .<HttpRequest, HttpResponse>newDecorator().apply(delegate);
-        when(log.responseCause()).thenReturn(new IllegalStateException("Failed"));
+        final IllegalStateException cause = new IllegalStateException("Failed");
+        when(log.responseCause()).thenReturn(cause);
         service.serve(ctx, REQUEST);
         verify(logger).warn(LoggingService.RESPONSE_FORMAT,
-                            "headers: " + RESPONSE_HEADERS + ", content: " + RESPONSE_CONTENT);
+                            "headers: " + RESPONSE_HEADERS + ", content: " + RESPONSE_CONTENT,
+                            cause);
     }

     @Test

Cherry-picked e56204b8649b77b839cf16e11224e262ab1c36e6
My fix: a3fc122acbd1f77a6d095ef45d2b890e2cc65d3e


Added Blog Post

@rstaib we need a banner for this blog post.

I just wonder, what about the subscription? There is nothing mentioning it 🙈

@huv1k I added a section for this with the latest commit ... Fusion supports all GraphQL features from defer and stream to subscription over to facebook style batching with export directives or multipart requests for file upload ... I added now a section to mention this.
There are so many more features in fusion ... I fear if we put them all into this initial post it becomes to complex to comprehend for the reader.

This is the new section:
The Fusion query plan is another standardized component that tooling (like Banana Cake Pop) can use to give you insights into how efficiently the gateway can resolve the requested data.

Also available in black ;)
The Fusion Query plan consists of the following query plan node kinds: Compose, If, Introspect, Parallel, Resolve, ResolveByKeyBatch, ResolveNode, Sequence, and Subscribe. With these abstract nodes, the query planner is able to create complex execution plans that support every GraphQL feature and best practice right out of the gate.
While the Fetch and Batch nodes are clear about what they do in our plan, the compose step might be a mystery to you. In essence, the query planner can fetch data that does not align with the current structure of the request. Compose will take in the raw data fetched by resolve nodes and composes it into the GraphQL request structure. It also ensures that result coercion rules are correctly applied to be GraphQL spec-compliant.

In this case, compose creates the result of a single selection set from multiple resolve nodes.
The Hot Chocolate Fusion Gateway implementation supports for subscriptions already all supported subscription protocols, from the legacy Apollo subscription protocol over graphql-ws to graphql-sse.
Further, it supports file uploads with the GraphQL multipart request protocol, Facebook-style batching with the @export directives, and many more.
Distributed GraphQL should not limit what you can do with GraphQL.

Important to understand here is that the fusion spec defines how to do subscription but the gateways implementing this are free to support whichever protocol they see fit. In the case of Hot Chocolate we added the three main protocols including graphql-sse.


[Feature Request] Add AcceptHeader and a ContentType in DownstreamApiOptions

Is your feature request related to a problem? Please describe.
We can do better for the serialization
Describe the solution you'd like
Add 2 string properties AcceptHeader and a ContentType in DownstreamApiOptions

Is your feature request related to a problem? Please describe. We can do better for the serialization
Describe the solution you'd like Add 2 string properties AcceptHeader and a ContentType in DownstreamApiOptions

ContentType would be in the response, in Id Web, not here.

Released in 5.3.0

Done


Fix attributes to correctly associate label with input

Closing since the CLA hasn't been signed in a while. The PR can be reopened once it has been signed.

signed


Way to remove need for tag prefix

I use the github tags to create docker image tags and don't have the v prefix preparing tags like 1.0.0 instead. Is there a way to remove the need for a prefix?

Never mind it seems it is optional my attempt to run the job is failing for other options


gcc10: 10.3.0 -> 10.4.0

Description of changes

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] 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

[ ] 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
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.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
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

Duplicate of PR https://github.com/NixOS/nixpkgs/pull/179534

Oh, no idea how search failed me. Closing.


[Request] Bulk edit multiple cards

Especially when first filling in one's album and current deck at higher levels (100+ cards in deck alone), it would be a huge time-saver to be able to just quickly add a bunch of cards, then select groups of them to set the status (storage, idolized/max level/max bond) in bulk. I'm doing the initial fill of my profile right now and it's very tedious to edit each card manually, and it takes a lot of time waiting for modal dialogs to open and close too.

Sorry about the delay!
After your suggestion as well as other people asking for it on Twitter and Reddit, we implemented the album builder: http://schoolido.lu/cards/albumbuilder/
To learn how it works, here's a guide: https://www.youtube.com/watch?v=BuYsz8-yQgI


Codelabs file a bug link is broken

This is not related to this codelab but the codelab that I am using has its report bug link broken and there is no github repo that I could find for that. I wanted to provide this feedback to google so I needed to pick a codelab on which someone has recently worked so I picked this one. Apologies for any inconvenience caused. Please refer it to the correct person.
I am doing the codelab at https://codelabs.developers.google.com/codelabs/es003l-storage/index.html?index=..%2F..%2Findex#2. It's report bug link takes me to http://docs.google.com/a/google.com/document/d/1dR98rgv71s3o_5FOu4fKOeTRkctC2v6uWUjFd_V0yuQ/ which shows me that the document does not exist.
It has a link to https://pantheon.corp.google.com/storage/browser/gcs-demo-files which I cannot access without a @google.com username, password. Seems that the person who created it forgot to give access to any of the stuff.

They also forgot to add where the Entity box comes from. Given that the purpose of the codelab is to show how to add the permissions it should be added or a prerequisite should be added. I was able to find that box but a step-by-step codelab should have that.


Update devel cover configuration for dancer2 routes

it appears the dancer2 keywords aren't being registered.
for example, hook and any aren't being registered in Devel::Cover.


chore(master): release 1.2.1

:robot: I have created a release beep boop
1.2.1 (2022-05-09)
Changes to Existing Features 🔧

increase max rounds to 10 (#241) (270701d)

Miscellaneous Chores

this is just to try and trigger the right release version (2f6fb49)

Bug Fixes 🐛

app icon on mac (ce12ace)
app: invalid .desktop category mentioned here #127 (534db41)
app: try to fix issue #106 (1061494)
bump version for main package.json (was resulting in wrong release version) (c1530ce)
center add card element creating started (6d4ce16)
change help links cursor to pointer (930e79a), closes #167
don't close cards when clicking as its easy to lose info (8394249)
drag logic for logo on title bar (460090b)
explicitly define security policy to stop electron complaining (d19fead)
flag extra files for version bumps (a9b2a31)
lower electron version as bumping causes release build failures (dff7116)
lower uuid version to fix lib export issue (fd30315)
mac fullscreen break (42dd82d)
make tasks not edit when clicking contained links (7b4de89)
task links not opening in new windows (a32807f)
update to electron 18 to avoid gpu issues on certain linux distros (bcd4755)
website: force render on client-side (#206) (fb9f111)
website: remove canonical link as because it's unnecessary (a4cd6ba)
website: remove the clean script on predeploy (065a0a6)
website: scrolling issues (0649dcf)
window randomly vanishing on mac after minimise (fbfaca9)

Features ✨

add flag to run only if released (caaf458)
add needs (2118ba3)
added compact mode (#178) (c057c11)
fake feature (2d8be9f)
website: update downloadable installer version (cd1b1cd)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/sekwah41/pomatez/releases/tag/untagged-7444bcf83fe398657766 :sunflower:


A more generic shell binary manager

Would be cool to have generic binary manager. These often integrate with the shell similar to how rtx activate zsh works, but the difference between those and asdf (and rtx) is that it essentially allows users to define a custom configuration on how to download and set things up. E.g. "download latest release from github releases, and use binary y.
The use-case for these is something like say (go)jq, ripgrep, exa/eza, fzf, etc. The idea being that when you do an update it always gets the latest version (except for when a version is specified).
I currently use zinit to set up my binaries and environment, however, been trying to move away, below is an example with some of the other apps that attempt to address this use-case (though not greatly).
zinit:
zinit ice silent wait as"program" from"gh-r" atload'export FZF_DEFAULT_OPTS="--reverse --exit-0 --border --ansi"'
zinit light junegunn/fzf

afx:
  - name: junegunn/fzf
    owner: junegunn
    repo: fzf
    command:
      build:
        steps:
          - ./install --bin --no-update-rc --no-key-bindings
      link:
        - from: 'bin/fzf'
    plugin:
      sources:
        - shell/completion.zsh
        - shell/key-bindings.zsh
      env:
        FZF_DEFAULT_OPTS: --reverse --exit-0 --border --ansi

bin (untested):
bin install github.com/junegunn/fzf

I've tried a few more out, but I've not been overly happy with the implementations for different reasons.
What I'm proposing here is a generic downloader configured by the user. This should be able to download from different sources (git repo, github/git* releases, http, others?) and furthermore inject some custom stuff into the environment (through rtx activate <shell>). Some preliminary example config I'm thinking of is:
[[package.fzf]]
source = "junegunn/fzf"
from = "gh-r" # or github-release
build = [
  "./install --bin --no-update-rc --no-key-bindings"
]
env = { FZF_DEFAULT_OPTS = "--reverse --exit-0 --border --ansi" }
shell_source = [
    "shell/completion.zsh",
    "shell/key-bindings.zsh"
]
aliases = { fzfa="fzf --no-reverse" }
snippet = """
fzf_doit() {
    fzf "$@"
}
"""

You can imagine that this could become a powerful tool of setting up your dev environment in general. Your repos can specify what tools they need, while users can specify what tools they need on top of those. E.g. I've seen some zinit configurations that set up people's complete shell environments which include neovim + plugins, tmux + plugins, and much more.

Side note: assuming there's appetite for such a feature, I'd be happy to take a stab at it if I can get some guidance, though I'd need some guidance as I've never developed in Rust before.

Aren't you pretty much just wanting nix at this point?

I wouldn't say so no, nix is way overkill for such a task. I just need it to download random archives or binaries and do basic things like linking files or generating completion files.

not really sure what this is asking for, I think this is served mostly by a combination of ubi and vfox. I don't think there is a need for anything further.


Willingham fake notifications pr

This tool can have the ability to create a fully customize able notification that can do app name, title, text, image, link, duration, sound that are ran like this: (.notification title="wsp" text="willingham is my daddy" link="google.com" ) Added a quick Syntax guide ( needs attention ) and 3 ready templates : windows_security, steam, epicgames (needs attention) that can be ran by .notification (template).

Still was wring branch and moving to #


Integrating features from rust_sodium

There is an alternative libsodium wrapper maintained by Maidsafe: https://github.com/maidsafe/rust_sodium
One of the main differences is that it downloads libsodium during the build process and builds it statically. This makes it much easier to build for different targets, e.g. iOS. It also does CI on all three major opeating systems.
I'm not sure whether the Maidsafe developers got in contact with you before they forked sodiumoxide. Would you be open to integrate changes like these (plus cross platform support + CI) into sodiumoxide directly? Static builds could be put behind a feature flag. I think the community would benefit from less fragmentation in this regard.

Would @Fraser999 be interested in upstreaming the changes? I would be willing to help. The libsodium-in-Rust ecosystem could benefit from a single go-to solution.

I agree that a single Rust wrapper in crates.io would be good, however the two projects have diverged in a few areas as mentioned in the OP.  We were originally submitting PRs here, but created our own fork (well... not fork because we needed to publish something to crates) primarily due to #135.  Since then the further changes we've made in order of most-important to least are:

exposed the ability to initialise libsodium with a psuedorandom number generator, allowing for reproducible data to be generated, which can be useful in the context of tests
added tests to ensure the FFI bindings match the native library's interface
run CI tests on Windows (AppVeyor), OS X and Linux (Travis)
heavily modified the source code to match our style guide (mostly default rustfmt standards and warning-free clippy)

I'd be happy to try and collaborate on resolving these differences to allow us to deprecate rust_sodium in favour of sodiumoxide, but I have fairly limited time and my first priority would be to resolve outstanding issues in rust_sodium.

sodiumoxide would benefit from 2 and 3. The first change could be added maybe behind a feature flag? And applying rustfmt and clippy to the codebase wouldn't hurt either.
But that's probably something that @dnaq would have to decide 🙂

Yup, the feature flag for point 1 would be fine I'm sure.  Would probably be a good thing to have disabled by default anyway (https://www.privateinternetaccess.com/blog/2017/08/libsodium-v1-0-12-and-v1-0-13-security-assessment/#section_3_5_4).
As for rustfmt and clippy, I think clippy is by far the more useful, but dropping these probably wouldn't be a blocker for us.

I'm ok with both rustfmt and clippy changes, none of which existed when I first released sodiumoxide. Would like it if those changes were isolated to a single commit and not merged together with unrelated changes.
AppVeyor support would be really nice, I'm not that used to windows development though, so that's why I haven't added it myself.
The PRNG stuff is more scary, but I might be ok with that being hidden behind a feature flag.

I haven't done much with rustfmt so far. @Fraser999 would you be interested in applying your rustfmt config to sodiumoxide? I could implement clippy support in a pull request.

@dbrgn I think @dnaq's hoping for single commit for this, so it'd probably be best if you could just apply it to your PR's commit?  I'd suggest building it into the CI scripts too, since if subsequent commits don't follow the rustfmt style, we can end up needing separate commits just to reapply rustfmt styling.
As for our rustfmt config, we try to keep as close to the defaults as possible.  We only have three non-default options specified in our rustfmt.toml.  @dnaq may prefer to just use all the rustfmt defaults, in which case there's no need for a rustfmt.toml to be added at all.
There are maybe a couple of possible reasons to hang fire with doing this just now though.  The Rust guys are bringing rustfmt into the "official" fold, but it's not quite there yet, so we'd probably just end up changing at least how we're running it in the CI scripts.
The other niggle is that running it on Windows causes it to fail when trying to resolve this path.  I think it's likely due to this rustfmt bug.
If you do want to try adding the rustfmt changes to your PR and want a hand, feel free to email me to avoid cluttering up this thread if you prefer.

Please see #203

One more thing about bindgen and cross-platformness: do we really have to regenerate the bindings in the build script? I would prefer the bindings to be commited in the repo and be touched as the less often as possible.

Hi @dnaq @darrenldl @Dylan-DPC @kinggoesgaming @nvesely @samscott89

You can use @sodiumoxide/owners.

Rather than supporting any version of libsodium to be linked, I plunked for encouraging usage of a pinned version of libsodium.

Yes, I had this on my todo list. I just opened #231.

use pkg-config, but warn if the installed version isn't the pinned version.

pkg-config doesn't support no_std, but we might be able to work around that with libcore or another no_std compatible helper crate.
As far as the bindgen issue goes, I do think we need to improve the testing situation of this crate drastically, including ideally testing on the 3 major desktop and 2 major mobile platforms. I do like the use of bindgen and I think if further issues are encountered, we should try to fix them upstream (in addition to confirming the issues you listed are not presently affecting the crate). We might also need to update our documentation.
Thanks for chiming in :smiley_cat:

We integrated almost all features from rust_sodium including static linkage, downloading packages and many more. Also we fixed several issues in build.rs so our fork is more robust.
Feel free to reopen issue if you think we are missing something.


Use Witx For Web3 WASM Interface Definitions

WASI has created a WASM interface definition markup language that allows you to describe portable interface definitions using WASM Interface Types. You can see WASI's Witx interfaces here: https://github.com/WebAssembly/WASI/tree/master/phases/snapshot/witx
and learn more about why Witx is necessary here: https://youtu.be/LCA9NnH7DxE
It's not currently clear to me if AssemblyScript supports WASM Interface Types, more available here: https://github.com/AssemblyScript/working-group/issues/13
I think the goal of "making the Web3API WASM interface runtime agnostic" can be achieved without the above... all TBD.

Super useful example demonstrated here: https://youtu.be/9py3lqYoihc?t=998

For example, trace how path_create_directory is implemented in WASI (Assemblyscript's WASI API -> wasmtime in Rust):

https://github.com/WebAssembly/WASI/blob/master/phases/snapshot/docs.md
https://github.com/jedisct1/as-wasi/blob/4d63b96e2efe95ac6dbf76263546867b2371054c/assembly/as-wasi.ts#L516

Note: Witx can be used to generate types in all Web3API WASM run-times (Assemblyscript, etc) and client libraries (Javascript, etc).

Note: Witx can be used to generate types in all Web3API WASM run-times (Assemblyscript, etc) and client libraries (Javascript, etc).

Could you point us to tool that can do that?
I've only found this rust create to validate and generate rust code maybe: https://github.com/WebAssembly/WASI/tree/cbfa8b353dc612521231a64ce8e6fec6af55b561/tools/witx

That's the only tool I've found as well. Maybe the best way to do this is to just document the interfaces in the spec, and not bother with Witx since the tooling is lacking and we'd have to create our own.

Or we could just have the Witx file along-side the specification, and folks can use it if they'd like (once the tooling is improved).

We were testing. We could write witx and generate markdown(supported by the tool) from it. Looks clean

Amazing, let's do that!

Should we add instructions how to generate them locally and add CI check to make sure they are up-to-date?
cc @mpetrun5

Should we add instructions how to generate them locally and add CI check to make sure they are up-to-date?
cc @mpetrun5

Yes that sounds good @mpetrunic, and yes I think CI integration would certainly be useful. How would this work best? Maybe generate + diff? Or generate + push artifacts?

Yes that sounds good @mpetrunic, and yes I think CI integration would certainly be useful. How would this work best? Maybe generate + diff? Or generate + push artifacts?

I think we should generate locally and CI should generate and check for diff (generated files not updated). Reason for this is that it should be easier to review generated markdown than to figure out what witx would generate if we merge it to master.
Other option is to generate and commit on every push but I feel like we could end up with bunch of CI commits

I think we should generate locally and CI should generate and check for diff (generated files not updated). Reason for this is that it should be easier to review generated markdown than to figure out what witx would generate if we merge it to master.
Other option is to generate and commit on every push but I feel like we could end up with bunch of CI commits

Yep sounds good, let's just diff

Yep sounds good, let's just diff

Completed here: https://github.com/Web3-API/specification/pull/7

Completed here: https://github.com/Web3-API/specification/pull/7


Selecting an item to purchase and selecting "deal" always returns the alchemist potion sale responses for all merchants

I noticed this as well.  I am working on this but I need to generate a table to map the stockId's to merchants

Solved in #164


Problem with onboarding

So in the step when we tell the user to filter Took office [Months], the onboarding popup disappears and never re-appears.

Choose Visualization onboarding popup is wrongly pointing at choose functions..


Media Overlay behavior in Google Chrome and Android WebView

This issue is a Bug
Related issue(s) and/or pull request(s)
None.
Expected Behaviour
Automatic page flipping when the highlights reach the visible pages' end.
Observed behaviour
Media player stops playing at the pages' end.
When two pages are displayed, and when Media player reaches the first page's end, it continues with the second page. However when the second page ends, Media player stops.
Steps to reproduce

Check out readium-js-viewer and build it from the develop branch (I used commit d0769f0400b137be950490bba5bf10a5aee27540).
Include the 'highlights' module using the following readium-js-viewer/readium-js/readium-shared-js/plugins/plugins-override.cson:
plugins:
include: [
'highlights'
]
exclude: [
'example'
]

Start HTTP server using 'ntp run http' from readium-js-viewer.

Open a Fixed Layout EPUB with Media Overlay.

Activate the Media player.

Test file(s)
Private EPUB. Will test again if I know about a public EPUB which is Fixed Layout and with Media Overlay. This EPUB uses audio format MP3.
The output of the 'file' command:
Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, JntStereo
Product

readium-js-viewer, develop branch,  commit d0769f0400b137be950490bba5bf10a5aee27540.
Google Chrome Version 63.0.3239.84 (Official Build) (64-bit)
Running under: Linux 4.9.0-0.bpo.3-amd64 #1 SMP Debian 4.9.30-2+deb9u5~bpo8+1 (2017-09-28) x86_64 GNU/Linux (Debian Jessie, 8.9).

Additional information
When running the Readium engine inside Android WebView (Version 63.0.3239.111), Media player starts working but usually gets stuck after highlighting the first phrase.
When the Media player gets stuck, I see the following messages in the instrument's Logcat:
E/chromium: [ERROR:render_media_log.cc(30)] MediaEvent: MEDIA_ERROR_LOG_ENTRY {"error":"FFmpegDemuxer: open context failed"}
E/chromium: [ERROR:render_media_log.cc(30)] MediaEvent: PIPELINE_ERROR DEMUXER_ERROR_COULD_NOT_OPEN
The instrument in question is a Nexus 5, running Android 6.0.1
The audio_player actually tested on the Android is a modified version, but I saw similar behavior when trying an unmodified version.

Back when the Media Overlay's HTML5 audio player (
https://github.com/readium/readium-shared-js/blob/develop/js/views/audio_player.js ) was being tested and improved for Android, the target browser engine was the early Chromium integration in KitKat 4.4. I remember facing all kinds of obscure problems related to timing, buffering, prefetching, seeking, etc. There are therefore Android-specific tweaks in the Javascript code, which were not needed on iOS (WebKit) and other desktop platforms. Based on your bug report, it would appear that this problem space must
be revisited once again :(
On the plus side, now that modern Android distributions use the same Chromium webview for both the Chrome web browser app and the system-level embedded webview API, we can probably test code changes using the cloud / web reader instead of a native app, which would make experimenting different audio playback strategies by trial and error a lot easier and quicker ((1) edit Javascript code + (2) reload the
cloud reader webpage).
At the moment, the time I can personally allocate to this is thin. We need to give this issue some visibility on the GitHub issue tracker so that (hopefully) other developers will join the maintenance /
troubleshooting effort.


[question] Does it support upload files by integrating GCDWebUploader?

Does it support upload files? As I know, GCDWebserver support uploading file

I would also like to know about this -- any plans for supporting GCDWebUploader?


Feature Request - Rename All Variable in Document

Renaming variables is currently a pain in Brackets. You can't find and replace with variable names being the same in parts of other text.
I recently used the OneDrive code edit function. (Upload a js and try open it on web). It has an option for the right click menu, to rename all occurrences of variable name.
Feature Request
I truthfully ask the Brackets team, can a core feature be added to Brackets? To add a rename all occurrences of variable name ability somewhere, but the right click menu is a good place. It could look like this:
Quick Edit
Quick Docs
Select All
----
Rename variable

---
...

The renaming process can take place in a popup modal.
P.S. I understand it can be done with regex: \bNAME\b but I thought it might be a good feature to add, for the reasons:

Some programmers are not familiar with regex
This short regex might not even suffice (I'm not a regex expert), thus you wouldn't want to type some long but safe regex into Find and Replace.

There is an extension for this. I would love to see this as a core feature too.

I use ternific for renaming variables...

+1 for ternific.

Have we seen any progress on this issue recently ?


Add Wireframes

[Add Wireframes] Updated Wireframe Google Drive Link in README.md
Implemented in : [(https://github.com/RubitOrganization/Rubit/blob/master/README.md)]


Created Criminal Rules

Tweaked a few things from the original. Made it more simple, removed all the guidelines that admins follow, will be added to the handbook.
Expect future changes when I do edit passes.

@OhhPixelz did his side of this and it was merged. Not sure which one we should be using.


DPoP proof htu parameter seems to match URI without query and fragment parts

During testing, we saw the following error (IP address changed):

Error verifying WebID via DPoP-bound access token: The DPoP proof htu parameter doesn't match the HTTP request URI without query and fragment parts.
Actual: http://<IP_ADDRESS>:3000/
Expected: http://<IP_ADDRESS>:3000/?code=AewTYriBRvnAYZAMEpVVtDB5yJbZ6cBopBNtxy7P8rS&state=6e76ec378ac64a118d09a77d4c240710

Unfortunately, I cannot give instructions to reproduce, given that it was a private setup. But given that the match seems to be okay, we might want to double-check the code.

Also I am not a major fan of the splits in https://github.com/solid/access-token-verifier/blob/05713e9b7490d42a43109a499ef769e87d9a8f12/src/algorithm/verifyDpopProofHttpUri.ts#L13
This can easily lead to errors. I think we should use an existing URL object (provided by Node) or have a regular expression.

Note that the htu in this case seemed to contain a query string itself. Is that allowed? Probably not, so the code was correct to throw. Just wonder how we ended up with that htu in the first place.

Note that the htu in this case seemed to contain a query string itself. Is that allowed?

There is nothing saying it is not allowed, but it would never match. So, indeed, the htu is wrong and this is not a @solid/access-token-verifier bug. If we knew which library issued this access token, we could flag it there.
I would close the issue if you're satisfied with your PR merged and released.

We have been able to trick Mashlib into this situation; it's part of a bigger issue of running a Solid server over HTTP (as opposed to HTTPS), which I will look into. Thanks!


Could not unzip uploaded file

Error: Error creating Lambda function: InvalidParameterValueException: Could not unzip uploaded file. Please check your file, then try to upload again.

{

  RespMetadata: {

    StatusCode: 400,

    RequestID: "abc-123"

  },

  Message_: "Could not unzip uploaded file. Please check your file, then try to upload again.",

  Type: "User"

}

  on .terraform/modules/example_slowlog_check/terraform-elasticache-slowlog-to-datadog-1.3.0/main.tf line 114, in resource "aws_lambda_function" "slowlog_check":

 114: resource "aws_lambda_function" "slowlog_check" {

https://github.com/scribd/terraform-elasticache-slowlog-to-datadog/releases/tag/v1.3.1-alpha.2 attempts to address.


⚠ LPDM Handbook (hosted on Divio) has degraded performance

In 2f63840, LPDM Handbook (hosted on Divio) (https://repohubdev.tk) experienced degraded performance:

HTTP code: 500
Response time: 6382 ms

Update: Yes, high ping goes brrr for Wiki.js on Divio. Probably fine.

Update: Also the HTTP status is kinda sus too.

Resolved: LPDM Handbook (hosted on Divio) performance has improved in f80c35b.


Debug.log is not recreated if moved/zipped

Hi,
I have the -debug=net enabled (which I need to retrieve information about a little project of mine). Problem is that the file get big very fast (of course). My problem was when i tried to rotate the file (manual cronjob just gziping the file), there's no new debug.log.
It's not a critical bug but it would be nice to be able to rotate the files (or maybe via the daemon?).
So how to recreate:
Enable debuging (-debug will do).
Remove .dash/debug.log
No new file is created.

Log rotation of this nature would better be handled by truncating the log file than deleting it, e.g. echo > debug.log

I just checked and @deusstultus solution is probably the most practical one. Several threads write into debug.log, so implementing thread-safe log-rotation from within dashd itself would be quite some work.

Agree with @crowning-, @deusstultus 's solution seems to be the best way to deal with the issue - in general, it's always better to use simple tools that already do the work you need to be done rather than trying to implement everything in your own code imo.
Closing this.


Compilation Constraint Issue: Mismatch Between Golang Version and go.mod Version

Go version
go 1.21.1 windows 64bit
Output of go env in your module/workspace:
go env
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\Administrator\AppData\Local\go-build
set GOENV=C:\Users\Administrator\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=C:\Users\Administrator\go\pkg\mod
set GONOPROXY=git.idianhun.com
set GOOS=windows
set GOPATH=C:\Users\Administrator\go
set GOPRIVATE=git.idianhun.com
set GOPROXY=https://goproxy.cn,direct
set GOROOT=C:\Users\Administrator\.g\go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLCHAIN=auto
set GOTOOLDIR=C:\Users\Administrator\.g\go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.21.1
set GCCGO=gccgo
set GOAMD64=v1
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=NUL
set GOWORK=
set CGO_CFLAGS=-O2 -g
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-O2 -g
set CGO_FFLAGS=-O2 -g
set CGO_LDFLAGS=-O2 -g
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=C:\Users\ADMINI~1\AppData\Local\Temp\go-build3340779885=/tmp/go-build -gno-record-gcc-switches

What did you do?
I am using Go version 1.21, and my project’s go.mod specifies Go version 1.14. In my project, I compile the following file:

in go.mod
go 1.14

What did you see happen?
During compilation, I encountered the following error:
# go.uber.org/zap
embedding non-interface type *T requires go1.18 or later (-lang was set to go1.16; check go.mod)
vendor/go.uber.org/zap/array_go118.go:122:13: cannot use &os[i] (value of type *T) as P value in variable declaration

What did you expect to see?
I would like the compilation to succeed. Interestingly, if I switch my local Go version to 1.15, this error does not occur. After researching, I discovered that the Go version 1.14 in my go.mod file disables generics functionality. However, since my Go version is 1.21, the compilation still attempts to process the array_go118.go file.
My hope is that in future versions, the compilation constraints will take into account the specified Go version in the go.mod file.
My English is not very good, so the translation is ai generated, I'm very sorry, if the reviewer's Chinese level is good you can refer to https://www.intmian.com/archives/yi-zhong-golangbian-yi-yue-shu-yu-ban-ben-hao-chong-tu -de-que-xian
Thank you for your attention to this matter!

please include a complete reproducer
and also try 1.22

To elaborate on what @seankhliao said, it would be great help if you could provide a minimal reproduction of the error using only a couple of small files.
Also, go1.14 was released four years ago and is very much unsupported. You should update your go.mod version to something newer (ideally go1.22) if you plan to use newer features such as generics (go1.18).

Thank you very much for your response. I am maintaining both my open-source project version 1.21 and our company’s project version 1.14, which is why this situation has occurred. I do not have the permission to update the go.mod version of my company’s project, I am very sorry.
here is my minimal reproduction using go 1.22.
3 files in my test project:1.18.go,sub1.18.go,main.go
1.18.go
//go:build go1.18
// +build go1.18

package testproj

func test[T any](t T) {
	print(t)
}

sub1.18.go
//go:build !go1.18
// +build !go1.18

package testproj

func test(t int) {
	print(t)
}

main.go
package testproj

func main() {
	test(1)
}

go,mod
module testproj

go 1.14

Here's the result of my version checking and compilation:
PS E:\my_code_out\testproj> go version
go version go1.22.2 windows/amd64
PS E:\my_code_out\testproj> go build testproj
# testproj
.\main.go:4:2: implicit function instantiation requires go1.18 or later (-lang was set to go1.14; check go.mod)

I am reaching out to express my confusion regarding the compilation constraints not aligning with the version numbers specified in go.mod. It seems contradictory that the version numbers in go.mod can restrict the functionality of golang builder, yet they are not taken as the source of truth for compilation constraints. This creates a significant inconvenience for developers like us who are maintaining multiple legacy and new projects simultaneously, as we are forced to frequently switch between versions.
Could you please clarify if this is an intended behavior or a conflict within the system? Your guidance on this matter would be greatly appreciated as it would greatly assist us in managing our projects more efficiently.
Thank you for your time and consideration

The constraint works, note that the compilation error is not about the declaration of the function with type parameters, but its call site in main. In other words you're calling test[int](1) in main.go (with the type parameter being inferred), which isn't allowed in 1.14 code.


Delete unnecessary spaces

Delete unnecessary spaces: When copying from the web page, there is an unnecessary space after the code.
Fix indent: Indentation is misaligned.

@changeworld : Thanks for your contribution! The author, @ShubhaVijayasarathy, has been notified to review your proposed change.

@changeworld : Thanks for your contribution! The author, @ShubhaVijayasarathy, has been notified to review your proposed change.

@changeworld - Thank you for your submission. We are not able to accept formatting and spacing changes in the repo at this time.


Don't show boost failure when stockpile wears off after it didn't boost

Just a hunch, but if you're at +6 before you stockpile and then the stockpiled effect wears off it probably shouldn't say that the stat couldn't go any higher.

Is there a boost failure message if the attempted boost is all zeroes to begin with? That seems like a bug in and of itself.

Can we get someone to actually test this? @DaWoblefet?

This is sort of ambiguous wording to me, so I'm not sure what's being changed, but I'm sure one of these is what the PR is after:

Using Stockpile when at +6 Def/+6 Sp. Def and user has 0-2 Stockpiles: animation plays, Stockpile increases counter, doesn't raise Def/Sp. Def.
Using Stockpile when at +6 Def/+6 Sp. Def and user has 3 Stockpiles: no animation plays, "But it failed!" message.

@MacChaeger I'm happy to rewrite this PR into that if that's what people would prefer. @DaWoblefet This is for the scenario when a) you are already at +6 b) you stockpile c) you spit up or swallow.

In that particular case, Spit Up/Swallow don't fail - Stockpile increases the Stockpile counter at b), but doesn't boost Def/Sp. Def like mentioned earlier. Using Stockpile/Spit Up will then execute their effects as a 1-Stockpile attack, remove Stockpile, and not touch the Def/Sp. Def (because Stockpile didn't increase Def/Sp. Def).

@CTCC1 I'm guessing this is a coincidence, because this is an RNG update. The reason Rough Skin happens twice is because Ice Fang freezes. This is definitely a bug caused by @MacChaeger's spreadMoveHit refactor.


Failed to import - expo-server-sdk

Failing module

GitHub: [private]
npm: https://npmjs.com/package/expo-server-sdk
<EMAIL_ADDRESS>
"expo-server-sdk"<EMAIL_ADDRESS>-- defined in `import_map.json`

# my function
import { Expo } from "expo-server-sdk";
Deno.serve(async (_req) => {
  const expo = new Expo({ accessToken: xxxxxxx });
  const tomorrow = DateTime.now().endOf("day").plus({ days: 1 }).toISO();
  const tickets = [];
  const chunks = expo.chunkPushNotifications(messages); # this works
  console.log("chunks", chunks) # this works;
  for await (const chunk of chunks) {
        try {
          const ticketChunk = await expo.sendPushNotificationsAsync(chunk); # this is where it fails
          console.log("ticketChunk", ticketChunk);
          tickets.push(...ticketChunk);
        } catch (error) {
          console.log("ERRORRRRRRR", error);
          console.error(error);
        }
      }

    # the rest of the function....
    return new Response(JSON.stringify(data), {
      headers: { "Content-Type": "application/json" },
    });
  } catch (error) {
    // Handle error
    return new Response(JSON.stringify(error), {
      headers: { "Content-Type": "application/json" },
    });
  }
});

Error message
After running deno run I got this:
ERRORRRRRRR TypeError: M.default is not a function
    at s.<anonymous> (https://esm.sh/v132/expo-server-sdk@3.7.0/denonext/expo-server-sdk.mjs:9:5730)
    at Generator.next (<anonymous>)
    at https://esm.sh/v132/expo-server-sdk@3.7.0/denonext/expo-server-sdk.mjs:9:2957
    at new Promise (<anonymous>)
    at p (https://esm.sh/v132/expo-server-sdk@3.7.0/denonext/expo-server-sdk.mjs:9:2754)
    at s.requestAsync (https://esm.sh/v132/expo-server-sdk@3.7.0/denonext/expo-server-sdk.mjs:9:5235)
    at s.<anonymous> (https://esm.sh/v132/expo-server-sdk@3.7.0/denonext/expo-server-sdk.mjs:9:3924)
    at Generator.next (<anonymous>)
    at https://esm.sh/v132/expo-server-sdk@3.7.0/denonext/expo-server-sdk.mjs:9:2957
    at new Promise (<anonymous>)
TypeError: M.default is not a function
    at s.<anonymous> (https://esm.sh/v132/expo-server-sdk@3.7.0/denonext/expo-server-sdk.mjs:9:5730)
    at Generator.next (<anonymous>)
    at https://esm.sh/v132/expo-server-sdk@3.7.0/denonext/expo-server-sdk.mjs:9:2957
    at new Promise (<anonymous>)
    at p (https://esm.sh/v132/expo-server-sdk@3.7.0/denonext/expo-server-sdk.mjs:9:2754)
    at s.requestAsync (https://esm.sh/v132/expo-server-sdk@3.7.0/denonext/expo-server-sdk.mjs:9:5235)
    at s.<anonymous> (https://esm.sh/v132/expo-server-sdk@3.7.0/denonext/expo-server-sdk.mjs:9:3924)
    at Generator.next (<anonymous>)
    at https://esm.sh/v132/expo-server-sdk@3.7.0/denonext/expo-server-sdk.mjs:9:2957
    at new Promise (<anonymous>)

Additional info

esm.sh version:
Deno version: 1.37.1

The import from another service however is working. https://dev.jspm.io/expo-server-sdk works. One difference looks to bs cjs vs mjs


Remove the crate hax-frontend-exporter-options

This requires #145: this crate is very small and could be inlined in another one, but currently the exporter needs those types definitions.

Done in #743


Please revert the progress bar

It looks like the progress bar has caused numerous issues, the most interrupting of which seems to be truncating or dropping output that developers rely on to get information back from SFDX. The "workaround" of adding --json is not human friendly so it is not a workaround. On top of that, the progress bar itself apparently doesn't report the correct progress.
These issues have been open for at least two weeks now and not addressed. Could you please revert it until the issues can be addressed?

CC @clairebianchi @ntotten @dcarroll if we can help prioritize a revert, or if that's not an option, can we get some visibility into why this has blocked core functionality for five weeks now? Will there be a post mortem available for consumers of this library to understand how this issue has been ongoing for so long? I feel in the dark about understanding how this library is updated when there are critical issues. Could you also provide instructions for how to downgrade sfdx as a workaround until a fix is in place?
See
https://github.com/forcedotcom/cli/issues/274
https://github.com/forcedotcom/cli/issues/276
https://github.com/forcedotcom/cli/issues/271

The fix for this was released two weeks back. You can see the info in the release notes: https://developer.salesforce.com/media/salesforce-cli/releasenotes.html
You can set an env variable SFDX_USE_PROGRESS_BAR=false to disable.

@ntotten that does not work, this appears to be still broken
Command we're running:

SFDX_USE_PROGRESS_BAR=false sfdx force:source:deploy -u OurEnvironment --testlevel RunLocalTests -x manifest/package.xml

Which has this output:

It's the latest sfdx:

sfdx-cli: Updating CLI... already on latest version: 7.45.1-bc18d49798

And not sure if this is relevant:

Installing plugin salesforcedx... yarn add v1.21.1

Additionally, forcing end users to switch output type is not a fix, and is something sfdx itself should handle. All other cli tools like this detect TTY environments and don't add progress indicators that don't work in TTY environments automatically.
Again as this has been broken for so long it would be great to get more visibility into priority and understand how reverts / rollbacks happen

@AndrewRayCode Do you have a specific version of salesforcedx plugin installed manually? You can check by running sfdx plugins. Can you please run sfdx plugins:uninstall salesforcedx and then run sfdx plugins --core?
We fixed the TTY environment issue, the progress bar should not show up for the TTY environment. The environment var is for teams that still wanted to see the old-style output in TTY environments. If you are seeing the progress bar in TTY environments then you are likely on an older version of the saelsforcedx plugin even if you have updated the Salesforce CLI.

This is in a system that on every run does:

wget https://developer.salesforce.com/media/salesforce-cli/sfdx-linux-amd64.tar.xz
(then installs)

and then does

sfdx update

and then does

sfdx plugins:install salesforcedx@latest

it fully updates on every run

@AndrewRayCode  can you send me the output of when you run sfdx plugins --core?

We made the fix to TTY here: https://github.com/oclif/cli-ux/commit/9f57d7f0427fed2239f39ac37be71cf9ed38f3ef however it looks like we might not be depending on that version in the toolbelt. Sorry for the confusion @AndrewRayCode - well get that updated by next Thursday.
I did verify that SFDX_USE_PROGRESS_BAR is in there though. After an npm install on salesforcedx@latest, I see:
node_modules/salesforce-alm/dist/lib/mdapi/mdapiDeployReportApi.js:        // if SFDX_USE_PROGRESS_BAR is true use progress bar, if not use old output
node_modules/salesforce-alm/dist/lib/mdapi/mdapiDeployReportApi.js:        this.useProgressBar = kit_1.env.getBoolean('SFDX_USE_PROGRESS_BAR', true);

Maybe there is a bug in there but it seems to work on my end. Any additional information would help.
On a side note, you don't need to run sfdx update OR the plugin:install. The wget is pointing to the most up-to-date archive which has salesforcedx bundled in it. It would probably save some time in your CI.

This is the ridicilous output I get with progress bar disabled (iTerm/oh-my-zsh):

@clairebianchi please reopen the ticket...

@sjurgis We aren't reverting the progress bar, the feedback has been overwhelmingly positive. Feel free to open a new issue explaining your problem.


[EventRequest] Codeunit 6620 Copy Document Mgt. - CopySalesLine

We would like to request an additional parameter 'DocLineNo' to the already existing publisher OnAfterInsertToSalesLine. We need it to be able to copy related information from the original document to the new document.
OnAfterInsertToSalesLine(ToSalesLine,FromSalesLine,RecalculateLines,DocLineNo);
Many thanks.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


Update frontend to take advantage of destination v2 features

resolves https://github.com/bee-travels/bee-travels-node/issues/143

@bourdakos1 Does the UI still work with how v1 was set up with images or was v1's API also updated to how v2 is?

@MaxShapiro32 Destination v1 has been using the same json as v2. The ui only looks at the image list now

The destination v1 api was also unnecessarily proxying the image to COS, but we have CORS set up so we can just use the links directly


Preserve expression sign in canonicalization of minimum and maximum

Description
This change fixes #2374, preserving the sign of arguments to cp.minimum and cp.maximum during canonicalization.
Specific review desired on breadth / specificity / quality / naming of new unittest test_canon_sign.py; is it too narrow of a test? Other edge cases that ought to be included?
Default benchmarks do appear to be somewhat slower. Is this acceptable? Do additional benchmarks need to be written and/or should iteration counts be increased to control somewhat for noise?
Issue link: #2374
Type of change

[ ] New feature (backwards compatible)
[ ] New feature (breaking API changes)
[X] Bug fix
[ ] Other (Documentation, CI, ...)

Contribution checklist

[X] Add our license to new files.
[X] Check that your code adheres to our coding style.
[X] Write unittests.
[X] Run the unittests and check that they’re passing.
[X] Run the benchmarks to make sure your change doesn’t introduce a regression.

Tests and Benchmarks

All tests are passing
cvxpy on  master via 🐍 v3.12.2 via 🅒 cvxdev
❯ pytest
=========================================== test session starts ===========================================
platform linux -- Python 3.12.2, pytest-8.1.1, pluggy-1.4.0
rootdir: /home/zacharyweiss/Documents/GitHub/cvxpy
configfile: pyproject.toml
testpaths: cvxpy/tests/
collected 1371 items

cvxpy/tests/test_KKT.py ............................                                                [  2%]
cvxpy/tests/test_atoms.py ......................................................................... [  7%]
.........                                                                                [  8%]
cvxpy/tests/test_benchmarks.py ss..ss...sss                                                         [  8%]
cvxpy/tests/test_canon_sign.py .                                                                    [  8%]
cvxpy/tests/test_complex.py ...................................                                     [ 11%]
cvxpy/tests/test_cone2cone.py ...................s...........ssssss                                 [ 14%]
cvxpy/tests/test_conic_solvers.py ........................................s...................sssss [ 18%]
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 26%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss................... [ 33%]
...............s..s...................ssssssssssssssssssss                                          [ 37%]
cvxpy/tests/test_constant.py ..                                                                     [ 37%]
cvxpy/tests/test_constant_atoms.py ................................................................ [ 42%]
.............................................................................                       [ 48%]
cvxpy/tests/test_constraints.py ...............                                                     [ 49%]
cvxpy/tests/test_convolution.py ....                                                                [ 49%]
cvxpy/tests/test_copy.py .....                                                                      [ 49%]
cvxpy/tests/test_curvature.py .....                                                                 [ 50%]
cvxpy/tests/test_custom_solver.py ........                                                          [ 50%]
cvxpy/tests/test_derivative.py ssssssssssssssssssssssssssssss                                       [ 52%]
cvxpy/tests/test_dgp.py ..............                                                              [ 53%]
cvxpy/tests/test_dgp2dcp.py ................s............s........                                  [ 56%]
cvxpy/tests/test_domain.py ............                                                             [ 57%]
cvxpy/tests/test_dpp.py ..........................................................                  [ 61%]
cvxpy/tests/test_dqcp.py ...........................................                                [ 64%]
cvxpy/tests/test_errors.py .....                                                                    [ 65%]
cvxpy/tests/test_examples.py ..........                                                             [ 66%]
cvxpy/tests/test_expression_methods.py ............                                                 [ 66%]
cvxpy/tests/test_expressions.py ........................................                            [ 69%]
cvxpy/tests/test_grad.py .............................                                              [ 71%]
cvxpy/tests/test_gurobi_write.py s                                                                  [ 72%]
cvxpy/tests/test_interfaces.py ....                                                                 [ 72%]
cvxpy/tests/test_kron_canon.py ........                                                             [ 72%]
cvxpy/tests/test_lin_ops.py .........                                                               [ 73%]
cvxpy/tests/test_linalg_utils.py sssss                                                              [ 73%]
cvxpy/tests/test_linear_cone.py .......                                                             [ 74%]
cvxpy/tests/test_matrices.py ....                                                                   [ 74%]
cvxpy/tests/test_mip_vars.py .                                                                      [ 74%]
cvxpy/tests/test_monotonicity.py ..                                                                 [ 74%]
cvxpy/tests/test_nonlinear_atoms.py ........                                                        [ 75%]
cvxpy/tests/test_objectives.py .....                                                                [ 75%]
cvxpy/tests/test_param_cone_prog.py ...                                                             [ 76%]
cvxpy/tests/test_param_quad_prog.py s...                                                            [ 76%]
cvxpy/tests/test_perspective.py ........................................                            [ 79%]
cvxpy/tests/test_power_tools.py ..                                                                  [ 79%]
cvxpy/tests/test_problem.py ....................................................................... [ 84%]
................                                                                                [ 85%]
cvxpy/tests/test_python_backends.py ............................................................... [ 90%]
............................                                                                        [ 92%]
cvxpy/tests/test_qp_solvers.py .......                                                              [ 92%]
cvxpy/tests/test_quad_form.py ...........                                                           [ 93%]
cvxpy/tests/test_quadratic.py ..........                                                            [ 94%]
cvxpy/tests/test_scalarize.py ......                                                                [ 94%]
cvxpy/tests/test_semidefinite_vars.py ..                                                            [ 95%]
cvxpy/tests/test_shape.py ......                                                                    [ 95%]
cvxpy/tests/test_sign.py .....                                                                      [ 95%]
cvxpy/tests/test_suppfunc.py ............                                                           [ 96%]
cvxpy/tests/test_valinvec2mixedint.py sssssssssssssssssssssssssssssssss                             [ 99%]
cvxpy/tests/test_versioning.py ...                                                                  [ 99%]
cvxpy/tests/test_von_neumann_entr.py ........                                                       [100%]

============================================ warnings summary =============================================
cvxpy/tests/test_KKT.py: 10 warnings
cvxpy/tests/test_atoms.py: 5 warnings
cvxpy/tests/test_benchmarks.py: 1 warning
cvxpy/tests/test_complex.py: 3 warnings
cvxpy/tests/test_cone2cone.py: 9 warnings
cvxpy/tests/test_conic_solvers.py: 14 warnings
cvxpy/tests/test_constant_atoms.py: 125 warnings
cvxpy/tests/test_constraints.py: 3 warnings
cvxpy/tests/test_dgp2dcp.py: 27 warnings
cvxpy/tests/test_domain.py: 1 warning
cvxpy/tests/test_dpp.py: 14 warnings
cvxpy/tests/test_dqcp.py: 1084 warnings
cvxpy/tests/test_examples.py: 3 warnings
cvxpy/tests/test_grad.py: 1 warning
cvxpy/tests/test_linear_cone.py: 5 warnings
cvxpy/tests/test_nonlinear_atoms.py: 7 warnings
cvxpy/tests/test_perspective.py: 22 warnings
cvxpy/tests/test_power_tools.py: 1 warning
cvxpy/tests/test_problem.py: 22 warnings
cvxpy/tests/test_suppfunc.py: 6 warnings
/home/zacharyweiss/Documents/GitHub/cvxpy/cvxpy/reductions/solvers/solving_chain.py:354: FutureWarning:
    You specified your problem should be solved by ECOS. Starting in
    CXVPY 1.6.0, ECOS will no longer be installed by default with CVXPY.
    Please either add an explicit dependency on ECOS or switch to our new
    default solver, Clarabel, by either not specifying a solver argument
    or specifying ``solver=cp.CLARABEL``.

  warnings.warn(ECOS_DEP_DEPRECATION_MSG, FutureWarning)

cvxpy/tests/test_KKT.py::TestKKT_QPs::test_qp_0
/home/zacharyweiss/miniconda3/envs/cvxdev/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestKKT_QPs.test_qp_0 of <cvxpy.tests.test_KKT.TestKKT_QPs testMethod=test_qp_0>>)
  return self.run(*args, **kwds)

cvxpy/tests/test_KKT.py::TestKKT_SOCPs::test_socp_0
/home/zacharyweiss/miniconda3/envs/cvxdev/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestKKT_SOCPs.test_socp_0 of <cvxpy.tests.test_KKT.TestKKT_SOCPs testMethod=test_socp_0>>)
  return self.run(*args, **kwds)

cvxpy/tests/test_KKT.py::TestKKT_SOCPs::test_socp_1
/home/zacharyweiss/miniconda3/envs/cvxdev/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestKKT_SOCPs.test_socp_1 of <cvxpy.tests.test_KKT.TestKKT_SOCPs testMethod=test_socp_1>>)
  return self.run(*args, **kwds)

cvxpy/tests/test_KKT.py::TestKKT_SOCPs::test_socp_2
/home/zacharyweiss/miniconda3/envs/cvxdev/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestKKT_SOCPs.test_socp_2 of <cvxpy.tests.test_KKT.TestKKT_SOCPs testMethod=test_socp_2>>)
  return self.run(*args, **kwds)

cvxpy/tests/test_KKT.py::TestKKT_SOCPs::test_socp_3ax0
/home/zacharyweiss/miniconda3/envs/cvxdev/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestKKT_SOCPs.test_socp_3ax0 of <cvxpy.tests.test_KKT.TestKKT_SOCPs testMethod=test_socp_3ax0>>)
  return self.run(*args, **kwds)

cvxpy/tests/test_KKT.py::TestKKT_SOCPs::test_socp_3ax1
/home/zacharyweiss/miniconda3/envs/cvxdev/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestKKT_SOCPs.test_socp_3ax1 of <cvxpy.tests.test_KKT.TestKKT_SOCPs testMethod=test_socp_3ax1>>)
  return self.run(*args, **kwds)

cvxpy/tests/test_KKT.py::TestKKT_ECPs::test_expcone_1
/home/zacharyweiss/miniconda3/envs/cvxdev/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestKKT_ECPs.test_expcone_1 of <cvxpy.tests.test_KKT.TestKKT_ECPs testMethod=test_expcone_1>>)
  return self.run(*args, **kwds)

cvxpy/tests/test_KKT.py: 19 warnings
cvxpy/tests/test_complex.py: 4 warnings
cvxpy/tests/test_conic_solvers.py: 14 warnings
cvxpy/tests/test_constant_atoms.py: 65 warnings
cvxpy/tests/test_constraints.py: 8 warnings
cvxpy/tests/test_dqcp.py: 2 warnings
cvxpy/tests/test_problem.py: 1 warning
cvxpy/tests/test_von_neumann_entr.py: 1 warning
/home/zacharyweiss/miniconda3/envs/cvxdev/lib/python3.12/site-packages/scipy/linalg/_decomp.py:1022: DeprecationWarning: Keyword argument 'eigvals' is deprecated in favour of 'subset_by_index' keyword instead and will be removed in SciPy 1.12.0.
  return eigh(a, b=b, lower=lower, eigvals_only=True,

cvxpy/tests/test_KKT.py::TestKKT_SDPs::test_sdp_1max
/home/zacharyweiss/miniconda3/envs/cvxdev/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestKKT_SDPs.test_sdp_1max of <cvxpy.tests.test_KKT.TestKKT_SDPs testMethod=test_sdp_1max>>)
  return self.run(*args, **kwds)

cvxpy/tests/test_KKT.py::TestKKT_SDPs::test_sdp_1min
/home/zacharyweiss/miniconda3/envs/cvxdev/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestKKT_SDPs.test_sdp_1min of <cvxpy.tests.test_KKT.TestKKT_SDPs testMethod=test_sdp_1min>>)
  return self.run(*args, **kwds)

cvxpy/tests/test_KKT.py::TestKKT_SDPs::test_sdp_2
/home/zacharyweiss/miniconda3/envs/cvxdev/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestKKT_SDPs.test_sdp_2 of <cvxpy.tests.test_KKT.TestKKT_SDPs testMethod=test_sdp_2>>)
  return self.run(*args, **kwds)

cvxpy/tests/test_KKT.py::TestKKT_PCPs::test_pcp_1
/home/zacharyweiss/miniconda3/envs/cvxdev/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestKKT_PCPs.test_pcp_1 of <cvxpy.tests.test_KKT.TestKKT_PCPs testMethod=test_pcp_1>>)
  return self.run(*args, **kwds)

cvxpy/tests/test_KKT.py::TestKKT_PCPs::test_pcp_2
/home/zacharyweiss/miniconda3/envs/cvxdev/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestKKT_PCPs.test_pcp_2 of <cvxpy.tests.test_KKT.TestKKT_PCPs testMethod=test_pcp_2>>)
  return self.run(*args, **kwds)

cvxpy/tests/test_KKT.py::TestKKT_PCPs::test_pcp_3
/home/zacharyweiss/miniconda3/envs/cvxdev/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestKKT_PCPs.test_pcp_3 of <cvxpy.tests.test_KKT.TestKKT_PCPs testMethod=test_pcp_3>>)
  return self.run(*args, **kwds)

cvxpy/tests/test_KKT.py: 3 warnings
cvxpy/tests/test_complex.py: 1 warning
cvxpy/tests/test_dqcp.py: 44 warnings
cvxpy/tests/test_examples.py: 1 warning
cvxpy/tests/test_grad.py: 1 warning
/home/zacharyweiss/Documents/GitHub/cvxpy/cvxpy/problems/problem.py:1407: UserWarning: Solution may be inaccurate. Try another solver, adjusting the solver settings, or solve with verbose=True for more information.
  warnings.warn(

cvxpy/tests/test_KKT.py::TestKKT_PCPs::test_pcp_4
/home/zacharyweiss/miniconda3/envs/cvxdev/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestKKT_PCPs.test_pcp_4 of <cvxpy.tests.test_KKT.TestKKT_PCPs testMethod=test_pcp_4>>)
  return self.run(*args, **kwds)

cvxpy/tests/test_KKT.py::TestKKT_PCPs::test_pcp_5
/home/zacharyweiss/miniconda3/envs/cvxdev/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestKKT_PCPs.test_pcp_5 of <cvxpy.tests.test_KKT.TestKKT_PCPs testMethod=test_pcp_5>>)
  return self.run(*args, **kwds)

cvxpy/tests/test_KKT.py::TestKKT_PCPs::test_pcp_6
/home/zacharyweiss/miniconda3/envs/cvxdev/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestKKT_PCPs.test_pcp_6 of <cvxpy.tests.test_KKT.TestKKT_PCPs testMethod=test_pcp_6>>)
  return self.run(*args, **kwds)

cvxpy/tests/test_KKT.py::TestKKT_Flags::test_kkt_nonneg_var
/home/zacharyweiss/miniconda3/envs/cvxdev/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestKKT_Flags.test_kkt_nonneg_var of <cvxpy.tests.test_KKT.TestKKT_Flags testMethod=test_kkt_nonneg_var>>)
  return self.run(*args, **kwds)

cvxpy/tests/test_KKT.py::TestKKT_Flags::test_kkt_nonpos_var
/home/zacharyweiss/miniconda3/envs/cvxdev/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestKKT_Flags.test_kkt_nonpos_var of <cvxpy.tests.test_KKT.TestKKT_Flags testMethod=test_kkt_nonpos_var>>)
  return self.run(*args, **kwds)

cvxpy/tests/test_KKT.py::TestKKT_Flags::test_kkt_nsd_var
/home/zacharyweiss/miniconda3/envs/cvxdev/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestKKT_Flags.test_kkt_nsd_var of <cvxpy.tests.test_KKT.TestKKT_Flags testMethod=test_kkt_nsd_var>>)
  return self.run(*args, **kwds)

cvxpy/tests/test_KKT.py::TestKKT_Flags::test_kkt_psd_var
/home/zacharyweiss/miniconda3/envs/cvxdev/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestKKT_Flags.test_kkt_psd_var of <cvxpy.tests.test_KKT.TestKKT_Flags testMethod=test_kkt_psd_var>>)
  return self.run(*args, **kwds)

cvxpy/tests/test_KKT.py::TestKKT_Flags::test_kkt_symmetric_var
/home/zacharyweiss/miniconda3/envs/cvxdev/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestKKT_Flags.test_kkt_symmetric_var of <cvxpy.tests.test_KKT.TestKKT_Flags testMethod=test_kkt_symmetric_var>>)
  return self.run(*args, **kwds)

cvxpy/tests/test_atoms.py::TestAtoms::test_conv
cvxpy/tests/test_atoms.py::TestAtoms::test_conv
cvxpy/tests/test_atoms.py::TestAtoms::test_conv
cvxpy/tests/test_atoms.py::TestAtoms::test_conv
cvxpy/tests/test_convolution.py::TestConvolution::test_0D_conv
cvxpy/tests/test_convolution.py::TestConvolution::test_0D_conv
cvxpy/tests/test_convolution.py::TestConvolution::test_conv_prob
cvxpy/tests/test_convolution.py::TestConvolution::test_conv_prob
/home/zacharyweiss/Documents/GitHub/cvxpy/cvxpy/atoms/affine/conv.py:50: DeprecationWarning: conv is deprecated. Use convolve instead.
  warnings.warn("conv is deprecated. Use convolve instead.", DeprecationWarning)

cvxpy/tests/test_atoms.py::TestAtoms::test_reshape_negative_one
cvxpy/tests/test_expression_methods.py::TestExpressionMethods::test_reshape_negative_one
/home/zacharyweiss/Documents/GitHub/cvxpy/cvxpy/atoms/affine/reshape.py:71: RuntimeWarning: divide by zero encountered in scalar divmod
  unspecified, remainder = divmod(size, shape[1 - unspecified_index])

cvxpy/tests/test_complex.py::TestComplex::test_illegal_complex_args
cvxpy/tests/test_constraints.py::TestConstraints::test_nonpos
cvxpy/tests/test_constraints.py::TestConstraints::test_nonpos
cvxpy/tests/test_constraints.py::TestConstraints::test_nonpos
/home/zacharyweiss/Documents/GitHub/cvxpy/cvxpy/constraints/nonpos.py:57: DeprecationWarning:
    Explicitly invoking "NonPos(expr)" to a create a constraint is deprecated.
    Please use operator overloading or "NonNeg(-expr)" instead.

    Sign conventions on dual variables associated with NonPos constraints may
    change in the future.

  warnings.warn(NonPos.DEPRECATION_MESSAGE, DeprecationWarning)

cvxpy/tests/test_complex.py::TestComplex::test_matrix_frac
/home/zacharyweiss/miniconda3/envs/cvxdev/lib/python3.12/logging/__init__.py:392: ComplexWarning: Casting complex values to real discards the imaginary part
  msg = msg % self.args

cvxpy/tests/test_dqcp.py::TestDqcp::test_gen_lambda_max_matrix_completion
/home/zacharyweiss/Documents/GitHub/cvxpy/cvxpy/atoms/gen_lambda_max.py:37: DeprecationWarning: Keyword argument 'eigvals' is deprecated in favour of 'subset_by_index' keyword instead and will be removed in SciPy 1.12.0.
  return LA.eigh(a=values[0],

cvxpy/tests/test_errors.py::TestErrors::test_broken_numpy_functions
/home/zacharyweiss/Documents/GitHub/cvxpy/cvxpy/expressions/expression.py:642: UserWarning:
This use of ``*`` has resulted in matrix multiplication.
Using ``*`` for matrix multiplication has been deprecated since CVXPY 1.1.
    Use ``*`` for matrix-scalar and vector-scalar multiplication.
    Use ``@`` for matrix-matrix and matrix-vector multiplication.
    Use ``multiply`` for elementwise multiplication.
This code path has been hit 1 times so far.

  warnings.warn(msg, UserWarning)

cvxpy/tests/test_errors.py::TestErrors::test_broken_numpy_functions
/home/zacharyweiss/Documents/GitHub/cvxpy/cvxpy/expressions/expression.py:643: DeprecationWarning:
This use of ``*`` has resulted in matrix multiplication.
Using ``*`` for matrix multiplication has been deprecated since CVXPY 1.1.
    Use ``*`` for matrix-scalar and vector-scalar multiplication.
    Use ``@`` for matrix-matrix and matrix-vector multiplication.
    Use ``multiply`` for elementwise multiplication.
This code path has been hit 1 times so far.

  warnings.warn(msg, DeprecationWarning)

cvxpy/tests/test_interfaces.py: 42 warnings
/home/zacharyweiss/miniconda3/envs/cvxdev/lib/python3.12/site-packages/numpy/matrixlib/defmatrix.py:70: PendingDeprecationWarning: the matrix subclass is not the recommended way to represent matrices or deal with linear algebra (see https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html). Please adjust your code to use regular ndarray.
  return matrix(data, dtype=dtype, copy=False)

cvxpy/tests/test_kron_canon.py::TestKronRightVar::test_gen_kronr_param
cvxpy/tests/test_kron_canon.py::TestKronLeftVar::test_gen_kronl_param
cvxpy/tests/test_kron_canon.py::TestKronLeftVar::test_scalar_kronl_param
cvxpy/tests/test_kron_canon.py::TestKronLeftVar::test_symvar_kronl_param
cvxpy/tests/test_perspective.py::test_parameter
/home/zacharyweiss/Documents/GitHub/cvxpy/cvxpy/reductions/solvers/solving_chain.py:235: UserWarning: You are solving a parameterized problem that is not DPP. Because the problem is not DPP, subsequent solves will not be faster than the first one. For more information, see the documentation on Disciplined Parametrized Programming, at https://www.cvxpy.org/tutorial/dpp/index.html
  warnings.warn(DPP_ERROR_MSG)

cvxpy/tests/test_python_backends.py::TestSciPyBackend::test_tensor_view_add_dicts
/home/zacharyweiss/Documents/GitHub/cvxpy/cvxpy/tests/test_python_backends.py:1999: SparseEfficiencyWarning: Comparing sparse matrices using == is inefficient, try using != instead.
  assert view.add_dicts({"a": one}, {"a": two}) == {"a": three}

cvxpy/tests/test_python_backends.py::TestSciPyBackend::test_tensor_view_add_dicts
/home/zacharyweiss/Documents/GitHub/cvxpy/cvxpy/tests/test_python_backends.py:2001: SparseEfficiencyWarning: Comparing sparse matrices using == is inefficient, try using != instead.
  assert view.add_dicts({"a": {"c": one}}, {"a": {"c": one}}) == {'a': {'c': two}}

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
============================ 1078 passed, 293 skipped, 1615 warnings in 22.81s ============================

Default benchmark pre-changes
cvxpy on  master via 🐍 v3.12.2 via 🅒 cvxdev
❯ pytest -s cvxpy/tests/test_benchmarks.py
=========================================== test session starts ===========================================
platform linux -- Python 3.12.2, pytest-8.1.1, pluggy-1.4.0
rootdir: /home/zacharyweiss/Documents/GitHub/cvxpy
configfile: pyproject.toml
collected 12 items

cvxpy/tests/test_benchmarks.py ss-------------------------------------------------------------------------------
                                Compilation
-------------------------------------------------------------------------------
(CVXPY) Apr 20 06:39:56 PM: Compiling problem (target solver=ECOS).
(CVXPY) Apr 20 06:39:56 PM: Reduction chain: Dcp2Cone -> CvxAttr2Constr -> ConeMatrixStuffing -> ECOS
(CVXPY) Apr 20 06:39:56 PM: Applying reduction Dcp2Cone
(CVXPY) Apr 20 06:39:56 PM: Applying reduction CvxAttr2Constr
(CVXPY) Apr 20 06:39:56 PM: Applying reduction ConeMatrixStuffing
(CVXPY) Apr 20 06:39:56 PM: Applying reduction ECOS
(CVXPY) Apr 20 06:39:56 PM: Finished problem compilation (took 3.691e-01 seconds).
 Starting in
    CXVPY 1.6.0, ECOS will no longer be installed by default with CVXPY.
    Please either add an explicit dependency on ECOS or switch to our new
    default solver, Clarabel, by either not specifying a solver argument
    or specifying ``solver=cp.CLARABEL``.

  warnings.warn(ECOS_DEP_DEPRECATION_MSG, FutureWarning)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
================================= 5 passed, 7 skipped, 1 warning in 1.19s =================================

Default benchmark post-changes
cvxpy on  master via 🐍 v3.12.2 via 🅒 cvxdev took 23s
❯ pytest -s cvxpy/tests/test_benchmarks.py
=========================================== test session starts ===========================================
platform linux -- Python 3.12.2, pytest-8.1.1, pluggy-1.4.0
rootdir: /home/zacharyweiss/Documents/GitHub/cvxpy
configfile: pyproject.toml
collected 12 items

cvxpy/tests/test_benchmarks.py ss-------------------------------------------------------------------------------
                                Compilation
-------------------------------------------------------------------------------
(CVXPY) Apr 20 06:38:58 PM: Compiling problem (target solver=ECOS).
(CVXPY) Apr 20 06:38:58 PM: Reduction chain: Dcp2Cone -> CvxAttr2Constr -> ConeMatrixStuffing -> ECOS
(CVXPY) Apr 20 06:38:58 PM: Applying reduction Dcp2Cone
(CVXPY) Apr 20 06:38:58 PM: Applying reduction CvxAttr2Constr
(CVXPY) Apr 20 06:38:58 PM: Applying reduction ConeMatrixStuffing
(CVXPY) Apr 20 06:38:59 PM: Applying reduction ECOS
(CVXPY) Apr 20 06:38:59 PM: Finished problem compilation (took 5.396e-01 seconds).
 Starting in
    CXVPY 1.6.0, ECOS will no longer be installed by default with CVXPY.
    Please either add an explicit dependency on ECOS or switch to our new
    default solver, Clarabel, by either not specifying a solver argument
    or specifying ``solver=cp.CLARABEL``.

  warnings.warn(ECOS_DEP_DEPRECATION_MSG, FutureWarning)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
================================= 5 passed, 7 skipped, 1 warning in 1.50s =================================

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@zacharyweiss Some imports appear to be unsorted, causing the linter to fail. You can install ruff and then run ruff check . to fix it. If that doesn't work, we can also fix this on our end.
Would you mind adding a test case for minimum_canon as well (which goes through the same logic).

@phschiele minimum_canon test added, and improved the maximum_canon test to be a bit less hacky / more obvious what's being tested. Ruff check ran, linter should be happy now.


Rogue T8 2PC bonus issue

Rogue T8 2PC ENERGY RETURN ISSUE
THE SIM IS UNDER REPORTING THE ENERGY RETURN VS. DEADLY POSION CASTS
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on 'SIMULATE' (WITH ATLEAST 2P T8 AND DEADLY POSION ON)
Scroll down to 'RESULTS TAB SCROLL TO BOTTOM TO SEE HOW MANY DEADLY POSION CASTS, THE NUMBER SHOULD BE EQUIVALANT TO THE RESOURCESS TAB "ENERGIZE" ENERGY RETURN GAIN' (DEADLY POSION EACH TIME DEALS DAMAGE PER WOW LOGS IS EQUIVALANT BY CAST TO THE ENERGY GAIN FROM THE 2PC T8 SET BONUS.
See error- CURRENTLY THE WOTLK SIMULATOR IS UNDER REPORTING THE ENERGY RETURN BY MORE THAN 58% GIVING A INCORRECT DPS OUTPUT WITH THE 2PC EQUIPED.

Expected behavior
CORRECT THE 2PC T8 ROGUE ENERGIZE SET BONUS ENERGY RETURNS TO BE EQUIVALANT TO THE DEADLY POSION CASTS PER SIM
Sim Links and Screenshots
If applicable, add links to your sim settings or screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]- WINDOWS 11
Browser [e.g. chrome, safari] - CHROME
Version [e.g. 22]- Version 112.0.5615.138 (Official Build) (64-bit)

Smartphone (please complete the following information):- NA

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

The 2PC T8 set bonus is working as intended and to the same behavior as the game. The set bonus has the text of "Your Deadly Poison causes you to gain 1 energy each time it deals damage." The application of Deadly Poison does not cause damage from Deadly Poison. Rather, it is the damage over time effect that is applied to the target and ticks every 3s that counts for the set bonus. Deadly Poison does have the effect of triggering the poison on the other weapon, BUT any damage from that poison is not counted as coming from Deadly Poison and does not trigger the set bonus.
To sum what I put above: The set bonus is working as intended and is true to the game client. The only damage that Deadly Poison causes is the tick every 3s from debuff applied, not any poison triggered at 5 stacks.

If you wanted proof from Warcraft Logs of this behaviour, see this links of an Assassination rogue:
36 Damaging ticks
36 Energize ticks
171 Applications of Deadly Poison


Allow sticky option to not close on click

Allow sticky option to not close on any click. Sometimes it has to stay open and close on a button click, for example.
The user needs to be able to copy the message and if it closes on every click that's not possible,

:+1: - I've overridden the default behavior to get this.

I fully agree. We did some usability testing, and found that if the text in the message is longer (i.e. especially for error messages and warnings), users tend to move their cursor over the message. Sometimes they just click, sometimes the highlight some text.

Is this implemented now?


feat(contracts): accept batches with version > 1

Purpose or design rationale of this PR
Describe your change. Make sure to answer these three questions: What does this PR do? Why does it do it? How does it do it?
Allow submitting batches with version > 1. This will be used for "compressed-blob" batches (version = 2). This way we can set a new on-chain verifier in MultipleVersionRollupVerifier based on the version, and we won't need to predict the batchIndex.
PR title
Your PR title must follow conventional commits (as we are doing squash merge for each PR), so it must start with one of the following types:

[X] feat: A new feature

Deployment tag versioning
Has tag in common/version.go been updated or have you added bump-version label to this PR?

[X] No, this PR doesn't involve a new deployment, git tag, docker image tag
[ ] Yes

Breaking change label
Does this PR have the breaking-change label?

[X] No, this PR is not a breaking change
[ ] Yes

Codecov Report
Attention: Patch coverage is 33.33333% with 2 lines in your changes are missing coverage. Please review.

Project coverage is 56.22%. Comparing base (d1bec53) to head (965e4bd).

Files
Patch %
Lines

contracts/src/L1/rollup/ScrollChain.sol
33.33%
2 Missing :warning:

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #1317      +/-   ##
===========================================
- Coverage    56.23%   56.22%   -0.01%
===========================================
  Files          160      160
  Lines        12438    12436       -2
===========================================
- Hits          6994     6992       -2
  Misses        4912     4912
  Partials       532      532

Flag
Coverage Δ

contracts
56.35% <33.33%> (-0.04%)
:arrow_down:

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


[D2] 2.3 [Feature #3} [User Feature] [complete / incomplete] [Guan Lin]

Feature 3
To be completed on -

Quarterly Report feature allows the Regional Manager to generate report for the quarter and year that is selected, and with the data of the particular quarter, the data analysis generates a bar chart and a pie chart for visualization purposes, then the Regional Manager can download the report as PDF or Doc file.


Update cpal with Android support

Bumps cpal version to 0.13.0 and rodio 0.13.0 as Android support was added but rodio interface hasn't changed.
@est31

Oh, so sorry. Didn't notice that 😳

@est31 Sorry for bothering you but It looks like rodio 0.13 disappeared from crates.io 😳
I'm sure I saw it an hour ago on crates but now - there's only 0.12!

I doubt that would be possible as the publishing is broken entirely.
I need to update the crates.io token, one moment.

Thank you a lot! Maybe it's just my eyes were lagging xD

The build is here, currently queued: https://travis-ci.org/github/RustAudio/rodio/builds/741138623
Once it finishes, the crate should be published.