Can't upgrade portainer - no published ports and container restarting

Before you start, we need a little bit more information from you:
Use Case : Using Portainer at Home.
Have you reviewed our technical documentation and knowledge base? Yes
Question:
I am trying to upgrade portainer on a RPi4 to the latest CE edition (I had the previous version [2.13?]) installed. I can't get the container to run. If I deploy the container it immediately begins restarting and stays in the status. Other thing is I can't see any published ports although I ran the docker command with it. I copied part of the terminal output hoping it makes sense to you:
`pi@RPi4:~ $ sudo docker rm portainer
portainer
pi@RPi4:~ $ sudo docker rmi portainer
Error: No such image: portainer
pi@RPi4:~ $ sudo docker rmi portainer/portainer-ce
Untagged: portainer/portainer-ce:latest
Untagged: portainer/portainer-ce@sha256:f716a714e6cdbb04b3f3ed4f7fb2494ce7eb4146e94020e324b2aae23e3917a9
Deleted: sha256:a607effa3b46790a8e995139c00a87efb3e1cc306ef3d5b0bc61564e41b2c673
Deleted: sha256:085845426b82ff2fb9903852e9d8725296608ff7e8c4081acbec0c17e9e158a5
Deleted: sha256:7a59dac71d820521071fd22c5b4115095f08183f5137f52c285c8a4a685897b2
Deleted: sha256:e0a46f5d05e1b93a7993c45aaea39729d111d7a096e02ac1656c721e39cb5222
Deleted: sha256:8c004456aeb58b75f792fa091b194c20d6ed4f0d95dd25b0150d71c5c9ab601b
pi@RPi4:~ $ sudo docker image prune
WARNING! This will remove all dangling images.
   15 months ago    Up 18 hours                             <IP_ADDRESS>:8082->80/tcp, :::8082->80/tcp   dtv3-8082
pi@RPi4:~ $
`
Funny thing is: I did successfully upgrade portainer on my RPi3 using the same commands. Could it have something to do with the OS? RPi4 is Buster and RPI3 is Bullseye.
Thank you for reading!
EDIT: When I am quick enough I get this output after starting the container:
`pi@RPi4:~ $ sudo docker start portainer
portainer
pi@RPi4:~ $ sudo docker container ls
CONTAINER ID   IMAGE                           COMMAND                  CREATED          STATUS                  PORTS                                                                                NAMES
5c9a02707cad   portainer/portainer-ce:latest   "/portainer"             16 minutes ago   Up Less than a second   <IP_ADDRESS>:8000->8000/tcp, :::8000->8000/tcp, <IP_ADDRESS>:9000->9000/tcp, :::9000->9000/tcp, <IP_ADDRESS>:9443->9443/tcp, :::9443->9443/tcp   portainer
10eb0b4e99a4   dtv3-8082                       "docker-php-entrypoi…"   15 months ago    Up 18 hours             <IP_ADDRESS>:8082->80/tcp, :::8082->80/tcp
dtv3-8082
pi@RPi4:~ $ sudo docker container ls
CONTAINER ID   IMAGE                           COMMAND                  CREATED          STATUS                          PORTS                                   NAMES
5c9a02707cad   portainer/portainer-ce:latest   "/portainer"             17 minutes ago   Restarting (1) 25 seconds ago                                           portainer
10eb0b4e99a4   dtv3-8082                       "docker-php-entrypoi…"   15 months ago    Up 18 hours                     <IP_ADDRESS>:8082->80/tcp, :::8082->80/tcp   dtv3-8082
pi@RPi4:~ $
`
So at first the ports are published but a few seconds later they are no longer available.

Can you try and get the logs from the portainer container when it's failing to start? If you can't catch it with docker logs portainer you can try using docker events to monitor Docker then do your docker run command (there's more detail on using docker events in this ServerFault answer).

Hi James,
Thank you for your support! Much appreciated!
I ran the command to log the output of Portainer which gave me this:
pi@RPi4:~ $ sudo docker start portainer portainer pi@RPi4:~ $ sudo docker logs portainer time="2022-07-10T10:27:47Z" level=info msg="Encryption key file portainernot present" time="2022-07-10T10:27:47Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:27:47Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:27:47Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:27:47Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:27:49Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:27:49Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:27:49Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:27:49Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:27:49Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:27:50Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:27:50Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:27:50Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:27:50Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:27:50Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:27:52Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:27:52Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:27:52Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:27:52Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:27:52Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:27:54Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:27:54Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:27:54Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:27:54Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:27:54Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:27:56Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:27:56Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:27:56Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:27:56Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:27:56Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:28:01Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:28:01Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:28:01Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:28:01Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:28:01Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:28:08Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:28:08Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:28:08Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:28:08Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:28:08Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:28:22Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:28:22Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:28:22Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:28:22Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:28:22Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:28:49Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:28:49Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:28:49Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:28:49Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:28:49Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:29:41Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:29:41Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:29:41Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:29:41Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:29:41Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:30:42Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:30:42Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:30:42Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:30:42Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:30:42Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:31:44Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:31:44Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:31:44Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:31:44Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:31:44Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:32:45Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:32:45Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:32:45Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:32:45Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:32:45Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:33:46Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:33:46Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:33:46Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:33:46Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:33:46Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:34:47Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:34:47Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:34:47Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:34:47Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:34:47Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:35:48Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:35:48Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:35:48Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:35:48Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:35:48Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:36:49Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:36:49Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:36:49Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:36:49Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:36:49Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:37:50Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:37:50Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:37:50Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:37:50Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:37:51Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:38:52Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:38:52Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:38:52Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:38:52Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:38:52Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:43:51Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:43:51Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:43:51Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:43:51Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:43:51Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:43:53Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:43:53Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:43:53Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:43:53Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:43:53Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:43:54Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:43:54Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:43:54Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:43:54Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:43:54Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:43:56Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:43:56Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:43:56Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:43:56Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:43:56Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:43:58Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:43:58Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:43:58Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:43:58Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:43:58Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:44:01Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:44:01Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:44:01Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:44:01Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:44:01Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:44:05Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:44:05Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:44:05Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:44:05Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:44:05Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:44:13Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:44:13Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:44:13Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:44:13Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:44:13Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:44:27Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:44:27Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:44:27Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:44:27Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:44:27Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:44:54Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:44:54Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:44:54Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:44:54Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:44:54Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:45:46Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:45:46Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:45:46Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:45:46Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:45:46Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:46:47Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:46:47Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:46:47Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:46:47Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:46:47Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-10T10:47:48Z" level=info msg="Encryption key fileportainernot present" time="2022-07-10T10:47:48Z" level=info msg="Proceeding without encryption key" time="2022-07-10T10:47:48Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-10T10:47:48Z" level=info msg="Opened existing store" version=50 time="2022-07-10T10:47:48Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-11T17:10:32Z" level=info msg="Encryption key fileportainernot present" time="2022-07-11T17:10:32Z" level=info msg="Proceeding without encryption key" time="2022-07-11T17:10:32Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-11T17:10:32Z" level=info msg="Opened existing store" version=50 time="2022-07-11T17:10:32Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-11T17:10:33Z" level=info msg="Encryption key fileportainernot present" time="2022-07-11T17:10:33Z" level=info msg="Proceeding without encryption key" time="2022-07-11T17:10:33Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-11T17:10:33Z" level=info msg="Opened existing store" version=50 time="2022-07-11T17:10:33Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-11T17:10:35Z" level=info msg="Encryption key fileportainernot present" time="2022-07-11T17:10:35Z" level=info msg="Proceeding without encryption key" time="2022-07-11T17:10:35Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-11T17:10:35Z" level=info msg="Opened existing store" version=50 time="2022-07-11T17:10:35Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-11T17:10:36Z" level=info msg="Encryption key fileportainernot present" time="2022-07-11T17:10:36Z" level=info msg="Proceeding without encryption key" time="2022-07-11T17:10:36Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-11T17:10:36Z" level=info msg="Opened existing store" version=50 time="2022-07-11T17:10:36Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-11T17:10:38Z" level=info msg="Encryption key fileportainernot present" time="2022-07-11T17:10:38Z" level=info msg="Proceeding without encryption key" time="2022-07-11T17:10:38Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-11T17:10:38Z" level=info msg="Opened existing store" version=50 time="2022-07-11T17:10:38Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/" time="2022-07-11T17:10:41Z" level=info msg="Encryption key fileportainernot present" time="2022-07-11T17:10:41Z" level=info msg="Proceeding without encryption key" time="2022-07-11T17:10:41Z" level=info msg="Loading PortainerDB: portainer.db" time="2022-07-11T17:10:41Z" level=info msg="Opened existing store" version=50 time="2022-07-11T17:10:41Z" level=fatal msg="the Portainer database is set for Portainer Business Edition, please follow the instructions in our documentation to downgrade it: https://documentation.portainer.io/v2.0-be/downgrade/be-to-ce/"
I tried the proposed URL but that came up blank.
Looks like I somehow used the BE version at some time but for the life of me I don; t know how that happened.
If there is a way to "downgrade" would you be so nice as to point me to the location of that page?
Thank you!

@Sjonnie2018
The correct URL is https://docs.portainer.io/faq/upgrading#can-i-downgrade-from-portainer-business-to-portainer-ce - I've fixed the redirect from the URL included in the error message and will also get it updated in a future version.

Hi James,
I am sorry for my late reply! And I thank you for your continued support.
I will try the conversion/downgrade after my holiday. If this thread hasn't become stale by then I will report back my findings


Publish to Azure: ASP.NET Core Azure tutorial available now

There's a separate page for the ASP.NET Core version of this tutorial now, right next to the ASP.NET one. You can update the "Publish to Azure" section.
https://docs.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-dotnetcore-sqldb

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 39b6d0f3-9bc7-d091-0d45-9fc1e2e7aac8
Version Independent ID: 20e7eb53-215b-09ab-205d-d20177221278
Content: Add validation to an ASP.NET Core Razor Page
Content Source: aspnetcore/tutorials/razor-pages/validation.md
Product: aspnet-core
Technology: aspnetcore-tutorials
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

@taylort7147  thanks for the tip. I'll get this updated next week.


GetAccessTokenRequest with HasJsonBody

Hello!
This is an amazing package that's really a pleasure to work with :)
The problem I'm running into is with the getAccessToken() method. Looking into this method, I can see that it creates a GetAccessTokenRequest which uses the HasFormBody trait. This sets the content type for the token request to "application/x-www-form-urlencoded". In my case, I need the posted content type to be JSON as this format is required by the API so that it will accept the post.
If I change the GetAccessTokenRequest to use the HasJsonBody, the request posts correctly. Would it be possible to have the GetAccessTokenRequest be capable of using a JSON content type as well? Or should I just build out a new trait based on AuthorizationCodeGrant?
I was also thinking that maybe it would be good to have the getAccessToken method accept a request strategy so that I could use a different one that uses HasJsonBody. I dunno, just throwing it out there :)
Thanks!
Quick update:
The way I've solved this for the moment, is to create a new trait that extends the AuthorizationCodeGrant trait and overrides the getAccessToken so that I can use a custom request that uses HasJsonBody.
I'm thinking there might be a better way within the framework, but that's just where I'm at now,

Hey @Darkyn
Many thanks for your kind message and thoughtful suggestion!
I think this is a great point - currently I don't think Saloon allows you to overwrite the entire OAuth2 request class - it will let you modify the request at run-time, but when it comes to request bodies, as they're added with traits this won't be able to be modified in the request modifier.
I wonder if adding a couple of extra methods to the OAuthConfig class could help with this? For example:
protected function defaultOauthConfig(): OAuthConfig
{
    return OAuthConfig::make()
        ->resolveGetAccessTokenRequest(function ($args) {
                return new CustomClass($args);
        })
       ->resolveRefreshAccessTokenRequest(function ($args) {
                return new CustomClass($args);
        })
}

Hi @Sammyjo20
That would be perfect, and it's keeping within the spirit of the framework. :)

Great, I'll get working on that!

@Sammyjo20 Awesome thanks so much! Also, apologies for creating this as an issue. I should have done it in Discussions ;)

No need to apologise at all @Darkyn! Appreciate the suggestion to make Saloon even better 🔥

Hey @Darkyn - just released this - it should all be documented here. Please let me know what you think! https://docs.saloon.dev/digging-deeper/oauth2-authentication/oauth2-authentication#using-your-own-request-classes

@Sammyjo20 Wow thank you! Looks great!! 🥇


About train

Because I don't very familiar with Linux，I create a new project based Windows, But the Losses have not declined.
I check the Experiments and Loss section, it doesn't seem to have some other operations.
so I want to know whether run the train.py or train.sh directly?

/bin/bash train.sh and python train.py (#config .yml file correctly in train.py) are both ok

Think you, I have fixed the bugs, Your project has too many document, do those documents apply to earlier comparisons?
I simplify the project based on paper and your project,
Before the image is fed into the network，it will be process with random rotation and flip，and then compute the loss, right?
I don't seem to see a weight of 0.1 of the loss in the project.
If you can, could you please take a look at my repository about the PSDGN reappearance, is there anything missing besides pre-processing of image and gradient descent strategy?

一梦丶
@.***

------------------ 原始邮件 ------------------
发件人: @.>;
发送时间: 2023年8月1日(星期二) 下午4:28
收件人: @.>;
抄送: @.>; @.>;
主题: Re: [yuhuUSTC/FSDGN] About train (Issue #10)
/bin/bash train.sh and python train.py (#config .yml file correctly in train.py) are both ok
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>


Modal gallery on mobile covers whole height.

Modal gallery covers whole height on mobile, therefore user can't exit once in gallery.

Hi @bogacg, I have already fixed this, but I haven't push it to npm yet, a quick fix is to add this in your global style
.g-btn-close {
  z-index: 999;
}

I didn't work. On mobile selected image is on the center and thumbanails are so on top, I don't even see space for a close-button.

Can you paste your usage code and a screenshot?
On Mon, 8 May 2017 at 15:58, Bogac Guven<EMAIL_ADDRESS>wrote:

I didn't work. On mobile selected image is on the center and thumbanails
are so on top, I don't even see space for a close-button.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/MurhafSousli/ng-gallery/issues/9#issuecomment-299859579,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHwQhPhlqGEBTW_noCr_XYdKwgRgAvudks5r3xFygaJpZM4NTq3c
.

--
Murhaf Sousli
Software engineer & Web developer
http://murhafsousli.com

We've commented same moment, please see my update comment above

Even after giving close-button container higher z-index than navbar, it doesn't work.

Height property is overwritten on mobile even if it's defined in gallery config.style as far as I understand. Maybe that can be left to users as optional.

@bogacg True, we are using ngStyle to customize the main parts of the gallery, and @media is not supported in ngStyle, so users will have to use the css to change that at this time.
From my observation, I can tell that most mobile apps use a full height container for their image browser, that's why I adapted this style.
It is pretty difficult to find one solution that satisfy all users, but luckily we can use !important to force setting custom css.

It might also be a good idea to move modal component to body level upon initialization, it will be less infected by z-index that contains it (app component, or maybe route component, in my example its a lazy-loaded component for example).

Simply put <gallery-modal> on body level  😊


This flow does not work in the new application schema with different app_id fields

Hi, I really appreaciate what you have done, it saved me a lot of time. There is one problem though. It looks like mongo/realm changed the application schema. The config config.json now require application-specific id app_id field, so this file can not be shared across different realm applications. When I try to deploy it to a different application I get

Failed: failed to import app: cannot change name of app from source control

Did you solve this problem? Or do you have any idea how to solve it?

Ok, nevermind. I just found the answer. I can remove the properties from config.json and it still works 😄

Woot!  Glad you were able to get it working!

Yeah, and btw. mongo/realm now supports deployment from specific branch, so there is no need to create multiple repos anymore :)

Yes! 🎉
I updated my pipeline and the Readme about a month ago to use multiple branches instead of multiple repos. Much easier.


Python example for setting a static name

File: themes/default/content/docs/intro/concepts/resources/names.md
On the python example it suggests setting it as a dictionary but a simple argument name suffices.
example:
role = iam.Role('my-role', {
    name='my-role-001'
})

suggestion
role = iam.Role('my-role',
    name='my-role-001')

i tested it on dynamoDB with python and something like this worked.
table = dynamodb.Table(
    "MyTableName",
    name="MyTableName",
    ...)

i wonder if setting the docs to use a simple argument wouldn’t be better

Nice catch @kenseii ! This was updated at some point and the current docs use the named parameter instead of a dictionary. Thanks for the feedback.


Getting started step 13 does not progress

Getting started step 13 does not progress to step 14 when play button is pressed, nor do any steps >= 13 progress when the play button is pressed. Those steps also cannot be navigated to manually.
Uncaught DOMException: Failed to execute 'querySelector' on 'Document': 'rgb(186, 218, 85)' is not a valid selector.
Information
Tested with MacOS Sierra:

Chrome version 64.0.3282.186 (Official Build) (64-bit) – issue occurs
Chrome version 65.0.3325.162 (Official Build) (64-bit) – issue occurs

Disabling uBlock Origin  did not change behaviour.

Confirmed

Confirmed
Ubuntu 16.04
Chrome Version 68.0.3440.84 (Official Build) (64-bit)
Firefox 61.0.1 (64-bit)

Confirmed

Any update? I am still seeing this problem.

I suspect it's because it's using an old version of Snap on there. Not sure I would expect it to be updated soon. Is there a separate issue you are having ?


AKMIDISampler outputs to earpiece but not speaker

I realize this has been an issue a couple of times in the past, but I've posted to SO, tried all the "fixes" I could find online, and I'm still completely stuck. This is in my Conductor's init:
    midiSampler = AKMIDISampler()
    mixer = AKMixer(midiSampler)
    let bundlePath = Bundle.main.bundlePath
    let soundPath = ("\(bundlePath)/Sounds/KorgTritonPiano")
    do { _ = try self.midiSampler.loadSoundFont(soundPath, preset: 0, bank: 0) }
    catch {
        print("Failed in loadSoundFont. Try loadMelodicSoundFont...")
        do { _ = try self.midiSampler.loadMelodicSoundFont(soundPath, preset: 0) }
        catch { print("Error loading soundfont") }
    }
    AudioKit.output = mixer
    do { try AKSettings.setSession(category: .playAndRecord, with: .mixWithOthers) }
    catch { print("Can't update session info...") }
    do {
        _ = try AudioKit.start()
    } catch {
        print("AudioKit wouldn't start!")
    }
    midiSampler.enableMIDI()

Both "mixer" and "midiSampler" are var properties of Conductor. I get very quiet, distorted audio from the iPhone earpiece, but nothing from the speaker. I've also tried AKSettings.defaultToSpeaker = true, and .defaultToSpeaker as the "with" argument to setSession(). My app does have Inter-App audio capability enabled, but it's the same with it disabled. Really don't know what else to try...
I'm on Xcode 9.3, iOS 11.3, macOS 10.13.4.

I understand your frustration, but this is not a forum for this.  Can you post an example project on Stack Overflow or is that what you tried already?

Thanks for the quick reply.
Well, there's a question on SO with the above code (https://stackoverflow.com/questions/49549611/ios-akmidisampler-no-audio-output). Posting the project is impractical, unfortunately... I suppose I could post a project, but if it doesn't replicate the problem, then I'm no further along, am I?

Okay, since it is on StackOverflow already, and getting some attention, I'll close this.  But if there is more information, or something to act on, go ahead and reopen it.

Just a note that this is solved by the new AKSampler (never tried AKAppleSampler, but I'm assuming it would have the same problem).


Plugins before 2022.2 need JDK11, from 2022.2 and up need JDK 17

Releases 1.2.5 (JDK17) and 1.2.6 (JDK11) have been removed from Jetbrains-Marketplace.
Version 1.2.4 is now latest version for platform < 2022.2.
1.3.0 Will be the first version for platform >= 2022.2.

Done with Relase 1.3.0.


Suggestion: Move config file to ~/.config

Is propose to move the config file to ~/.config/ansiweather/whatever. This corresponds to the XDG specification (in order to fully comply with the standard some environment variables also need to be honored but that is not of central interest for me).
Two ideas come to mind in order not to break compatibility for old users:

allow for both config files (~/.answeather and ~/.config/ansiweather/whatever) and try them in some given order
introduce a environment variable ANSIWEATHERRC to specify the filename instead of moving the default location

The reason I suggest this is to remove as many config files from $HOME as possible.

I think the ANSIWEATHERRC environment variable solution sounds reasonable, and would also allow to close #58.
So if ANSIWEATHERRC is defined, use the defined value, and if not, default to the current ~/.ansiweatherrc

Just merged, thanks for your contribution!


Error: Building package liblzma:arm-uwp failed with: BUILD_FAILED

HI, I am not able to build liblzma for arm-uwp, where as it is building fine for x86-windows and x64-windows. But for arm-uwp, x86-uwp, x64-uwp its not building. I am attaching supporting files.. Please help me.

package-arm-uwp-rel-out.txt

Problems are:

 4>tuklib_physmem.obj : error LNK2019: unresolved external symbol GetVersion referenced in function lzma_tuklib_physmem [E:\vcpkg\buildtrees\liblzma\arm-uwp-rel\lzma.vcxproj]

 4>tuklib_physmem.obj : error LNK2019: unresolved external symbol GetModuleHandle referenced in function lzma_tuklib_physmem [E:\vcpkg\buildtrees\liblzma\arm-uwp-rel\lzma.vcxproj]
 4>tuklib_physmem.obj : error LNK2019: unresolved external symbol GlobalMemoryStatus referenced in function lzma_tuklib_physmem [E:\vcpkg\buildtrees\liblzma\arm-uwp-rel\lzma.vcxproj]
 4>stream_encoder_mt.obj : error LNK2019: unresolved external symbol GetTickCount referenced in function wait_for_work [E:\vcpkg\buildtrees\liblzma\arm-uwp-rel\lzma.vcxproj]

UWP lacks these APIs, and additional patch(es) should be provided to fix dependencies on these APIs.

Hi zabulus, thanks for your reply. Where we can get the additional patches, as i have searched but couldn't find them.

I'd recommend submitting an issue to the liblzma mailing list that you'd like them to support UWP. Their main website is https://tukaani.org/xz/. Once they have support in their current development branch, we could look at building a patch out of that.
Otherwise, you could try following our tutorial on how to patch the library yourself: https://github.com/Microsoft/vcpkg/blob/master/docs/example-3-patch-libpng.md.

See PR #3907

Hi @vivekbarkam, thanks for posting this issue. This port has already supported UWP. This feature has been merged in this PR #5607. Please try to update this port to the latest version and try to use it.
PS F:\Files\vcpkgTest\vcpkg> .\vcpkg.exe install liblzma:arm-uwp
The following packages will be built and installed:
liblzma[core]:arm-uwp
Starting package 1/1: liblzma:arm-uwp
Building package liblzma[core]:arm-uwp...
-- Using cached F:/Files/vcpkgTest/vcpkg/downloads/xz-mirror-xz-v5.2.4.tar.gz
-- Using source at F:/Files/vcpkgTest/vcpkg/buildtrees/liblzma/src/v5.2.4-66bfe33102
-- Configuring arm-uwp
-- Building arm-uwp-dbg
-- Building arm-uwp-rel
-- Installing: F:/Files/vcpkgTest/vcpkg/packages/liblzma_arm-uwp/share/liblzma/copyright
-- Performing post-build validation
-- Performing post-build validation done
Building package liblzma[core]:arm-uwp... done
Installing package liblzma[core]:arm-uwp...
Installing package liblzma[core]:arm-uwp... done
Elapsed time for package liblzma:arm-uwp: 3.762 min
Total elapsed time: 3.762 min
The package liblzma:arm-uwp provides CMake targets:
find_package(LibLZMA CONFIG REQUIRED)
target_link_libraries(main PRIVATE LibLZMA::LibLZMA)


Constant Error in Python Bot

Hi Guys, first post, I hope its okay.
Expected Behavior:
Bot should work as normal
Actual Behavior:
Ever since yesterday the app errors out on the loading status for the bot.
Downloaded the app again, same issue.
Steps to Reproduce
No clue, I can't find out what went wrong.
Information
Mac OSX 10.11.4
Error Message:
2016-08-23 16:08:44,746 [sentry.errors.uncaught] [ERROR] [u'ServerBusyOrOfflineException', u'  File "pokecli.py", line 504, in ', u'  File "pokecli.py", line 132, in main', u'  File "pokecli.py", line 141, in report_summary', u'  File "pokemongo_bot/metrics.py", line 76, in capture_stats', u'  File "pokemongo_bot/api_wrapper.py", line 133, in call']
2016-08-23 16:08:44,742 [sentry.errors] [ERROR] Sentry responded with an error: 'ascii' codec can't decode byte 0x9c in position 1: ordinal not in range(128) (url: https://app.getsentry.com/api/90254/store/)
Traceback (most recent call last):
File "packages/raven/transport/threaded.py", line 174, in send_sync
super(ThreadedHTTPTransport, self).send(data, headers)
File "packages/raven/transport/http.py", line 47, in send
ca_certs=self.ca_certs,
File "packages/raven/utils/http.py", line 66, in urlopen
return opener.open(url, data, timeout)
File "packages/future/backports/urllib/request.py", line 494, in open
response = self._open(req, data)
File "packages/future/backports/urllib/request.py", line 512, in _open
'_open', req)
File "packages/future/backports/urllib/request.py", line 466, in _call_chain
result = func(*args)
File "packages/raven/utils/http.py", line 46, in https_open
return self.do_open(ValidHTTPSConnection, req)
File "packages/future/backports/urllib/request.py", line 1284, in do_open
h.request(req.get_method(), req.selector, req.data, headers)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 1053, in request
self._send_request(method, url, body, headers)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 1093, in _send_request
self.endheaders(body)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 1049, in endheaders
self._send_output(message_body)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 891, in _send_output
msg += message_body
UnicodeDecodeError: 'ascii' codec can't decode byte 0x9c in position 1: ordinal not in range(128)

Same issue for me, except I am a Windows user. The error message prompt on Windows is a bit different in the sense that I can not highlight and copy the error message (otherwise I would include it here).
Operating System: Windows 10 64-bit

I know nothing about these but it seemed it occurs naturally every now and then. Go re-run the app and see if it still pops up, just keep trying and eventually it'd be back to how it was.

Same issue for me like Sp333th and the prompt is same.
I can not log in, because the program breaks down when i just run it.

@KyonCN you might be pertaining to just an error within the config. You might have configured something the app couldn't launch. Somethin like that. Have you tried launching the app without changing anything but the login information that you need with the default config?

Duplicate #225


Bump containerd to fix reported vuln

Pull Request Motivation
:point_right: Note that cert-manager is not actually vulnerable to CVE-2022-23471 since the affected code is not used.
We only depend on containerd via Helm, and helm only uses containerd's "remotes" library which I don't believe would be affected by the vuln. See here.
Removing the dependency on helm and limiting it to only cmctl would be great, if possible, but out of scope for this PR.
This PR updates a lot more than just containerd, since it uses go get -u=patch. For the backports, I'll use a more minimal approach.
Kind
/kind cleanup
Release Note
NONE

Backports are included with a base image update:
release-1.11: #5707
release-1.10: #5705


What's up with Object.observe?

Wouldn't this be really useful for mithril?
Anytime controller data changes or whatever, redraw.
It'd be as simple as that, and you'll also get less unnecessary redraws from user events and stuff.
Why aren't you using Object.observe? What's wrong with it?

Well, there's nothing wrong with Object.observe per se, but support for it is still extremely poor
Mithril doesn't use it because it doesn't need it. Object.observe is more useful for templating engines that do dirty checking (like Angular) or that have observable-based infrastructure (like Ember, Knockout), but it turns out to not be that useful to virtual dom engines.

I didn't realize support was so bad! It was in chrome since like a year ago.
I don't like typing m.redraw.strategy('none') in most of my event handlers. O.o would be a nice fix for that
But the poor support makes it unusable anyway. Maybe it's something to consider later


Add: ELITE (ftm.guru) Token to Fantom

[x] Fork the Github repository

[x] Create folder with name of token smartcontact address in CHECKSUM format blockchains/ethereum/assets/<token_smartcontract_address>/.

[x] Tell your designer that token image must be in PNG format, avoid transparent background, recommended size 256x256px, with max file size of 100kB.

[x] Upload your logo with file named logo.png to previously created folder with smartcontract address, and if you done all correctly your path should look like this. blockchains/ethereum/assets/0x1234567461d3f8Db7496581774Bd869C83D51c93/logo.png

[x] Run npm run check and make sure tests pass

[x] Create a pull request to the main repo

[x] Add link to sushiswap/default-token-list Issue

https://github.com/sushiswap/list/pull/54

Closing PR in favor of https://github.com/sushiswap/list/pull/171


Can we please get a truncated version of tables?

Tables are implemented really well, but is it possible to shrink them a bit vertically? Something simple, like reduce the padding on the top and bottom of each line. Just a little bit would do, so I can fit more on each page, would be great.

What table are you referring to in particular? You can do this with inline style blocks. For example, to reduce the top and bottom padding of class tables, add this to the beginning of your brew:
<style>
  .classTable table tbody tr td { padding-top:1px; padding-bottom:1px; }
</style>

See here for an example. Alternatively, you can do it for all tables by adding a style of td { padding-top: 1px !important; padding-bottom: 1px !important; }.

Rae2che5 that's perfect, I didn't realize it would register CSS. Thanks!


Two workflow in a model - disable validation between the two statuses

I have problem validating the status attribute of two workflow attached to a model.
Saving the model it try to validate the passage from status of workflow 1 (STATO attribute) to status of workflow 2 (STATO_INTERNO attribute), the error is:
{"STATO_INTERNO":["Workflow validation failed : No transition found between status DomandeWorkflow/VALIDATA and DomandeWorkflowBackoffice/DALAVORARE"]}
How I can not validate passage from a workflow to another?

The solution I found is to detach the old behaviour and to attach the new behaviour.
I also change the scenario to validate the new attribute
['STATO', WorkflowValidator::class, 'on' => self::SCENARIO_DEFAULT],
['STATO_INTERNO', WorkflowValidator::class, 'on' => self::SCENARIO_BACKOFFICE],

if($this->statusEquals(DomandeWorkflow::STATUS_PROTOCOLLATA)){
            $this->detachBehavior('simpleWorkflow');
            $this->attachBehavior('backofficeWorkflow',[
                'class'                  => SimpleWorkflowBehavior::class,
                'defaultWorkflowId'      => 'DomandeWorkflowBackoffice',
                'statusAttribute'        => 'STATO_INTERNO',
                'propagateErrorsToModel' => true,
            ]);
            $this->scenario = self::SCENARIO_BACKOFFFICE;
        }


Fix HSL + HEX example

The following case breaks: linear-gradient(160deg, transparent, #070707, hsl(246, 6.0%, 9.0%), hsl(240, 5.1%, 11.6%))
Reproduction: https://snack.expo.dev/@beatgig/css-gradient-to-expo-linear-gradient
I'll try to find why and send a PR.

The issue lies somewhere in parseColorStops. I'll explore there.

The issue lies with the HAS_LENGTH regex, I believe it's matching HSL incorrectly.

The current regex, ENDS_WITH_LENGTH = /(px)|%|( 0)$/i, incorrectly matches for hsl(0, 100%, 50%), since HSL colors use percentages.

This update fixed support for HSL:
const ENDS_WITH_LENGTH = /(px)$|(%$)|( 0$)/

However, the stop variable is still null, causing a crash. I'll figure that out next.

The final change was updating the stop variable. Rather than falling back to null, it now falls back to evenly-distributed color stops along the way.
    const stop = HAS_LENGTH
      ? value.substring(lastSpaceIndex + 1)
      : i === firstColorStopIndex
      ? '0%'
      : i === args.length - 1
      ? '100%'
      : // fallback to evenly spaced color stops
        `${
          ((i - firstColorStopIndex) /
            (args.length - firstColorStopIndex - 1)) *
          100
        }%`


Difficulties to chain http requests

Hello,
I have a problem that appeared on 0.10.4, but was not present on 0.10.3.
Imagine you want to chain multiple HTTP requests, like so:

HTTP endpoints

[GET] /1 which return 1
[GET] /2 which return 2

Flow

[GET] /1 ---> Debug msg.payload ---> [GET] /2 ---> Debug msg.payload

The log should show 1, then 2. But on 0.10.4 it shows 1 then 1 again. It seems that the http request node changes the msg.url to the node url, meaning that the next http request node is overriden by the msg.url, which is why the same URL is called two times.
Flow (assuming node-red listens on <IP_ADDRESS>:1880)
[{"id":"cce44c6b.35bd2","type":"inject","name":"","topic":"","payload":"","payloadType":"none","repeat":"","crontab":"","once":false,"x":94,"y":52,"z":"f48bce72.710dc","wires":[["dedd67ed.fbce28"]]},{"id":"4276fee6.f35ee8","type":"http in","name":"","url":"/1","method":"get","x":74,"y":153,"z":"f48bce72.710dc","wires":[["153d219e.58acce"]]},{"id":"3de3506e.153298","type":"http in","name":"","url":"/2","method":"get","x":81,"y":211,"z":"f48bce72.710dc","wires":[["56f2eec9.3a1488"]]},{"id":"153d219e.58acce","type":"change","action":"replace","property":"payload","from":"","to":"1","reg":false,"name":"","x":224,"y":153,"z":"f48bce72.710dc","wires":[["bdb133d3.fccd6"]]},{"id":"56f2eec9.3a1488","type":"change","action":"replace","property":"payload","from":"","to":"2","reg":false,"name":"","x":238,"y":212,"z":"f48bce72.710dc","wires":[["bdb133d3.fccd6"]]},{"id":"bdb133d3.fccd6","type":"http response","name":"","x":421,"y":174,"z":"f48bce72.710dc","wires":[]},{"id":"dedd67ed.fbce28","type":"http request","name":"request 1","method":"GET","ret":"txt","url":"http://<IP_ADDRESS>:1880/1","x":239,"y":55,"z":"f48bce72.710dc","wires":[["aaa42965.71cb1","ad93eba6.80b0a8"]]},{"id":"aaa42965.71cb1","type":"http request","name":"request 2","method":"GET","ret":"txt","url":"http://<IP_ADDRESS>:1880/2","x":527,"y":51,"z":"f48bce72.710dc","wires":[["ad93eba6.80b0a8"]]},{"id":"ad93eba6.80b0a8","type":"debug","name":"","active":true,"console":"false","complete":"payload","x":687,"y":116,"z":"f48bce72.710dc","wires":[]}]

Flow with msg.url deletion between the two http request node, fixing the problem (assuming node-red listens on <IP_ADDRESS>:1880)
[{"id":"cce44c6b.35bd2","type":"inject","name":"","topic":"","payload":"","payloadType":"none","repeat":"","crontab":"","once":false,"x":94,"y":52,"z":"f48bce72.710dc","wires":[["dedd67ed.fbce28"]]},{"id":"4276fee6.f35ee8","type":"http in","name":"","url":"/1","method":"get","x":74,"y":153,"z":"f48bce72.710dc","wires":[["153d219e.58acce"]]},{"id":"3de3506e.153298","type":"http in","name":"","url":"/2","method":"get","x":81,"y":211,"z":"f48bce72.710dc","wires":[["56f2eec9.3a1488"]]},{"id":"153d219e.58acce","type":"change","action":"replace","property":"payload","from":"","to":"1","reg":false,"name":"","x":224,"y":153,"z":"f48bce72.710dc","wires":[["bdb133d3.fccd6"]]},{"id":"56f2eec9.3a1488","type":"change","action":"replace","property":"payload","from":"","to":"2","reg":false,"name":"","x":238,"y":212,"z":"f48bce72.710dc","wires":[["bdb133d3.fccd6"]]},{"id":"bdb133d3.fccd6","type":"http response","name":"","x":421,"y":174,"z":"f48bce72.710dc","wires":[]},{"id":"dedd67ed.fbce28","type":"http request","name":"request 1","method":"GET","ret":"txt","url":"http://<IP_ADDRESS>:1880/1","x":239,"y":55,"z":"f48bce72.710dc","wires":[["ad93eba6.80b0a8","553d50f.84f443"]]},{"id":"aaa42965.71cb1","type":"http request","name":"request 2","method":"GET","ret":"txt","url":"http://<IP_ADDRESS>:1880/2","x":588,"y":51,"z":"f48bce72.710dc","wires":[["ad93eba6.80b0a8"]]},{"id":"ad93eba6.80b0a8","type":"debug","name":"","active":true,"console":"false","complete":"payload","x":668,"y":132,"z":"f48bce72.710dc","wires":[]},{"id":"553d50f.84f443","type":"change","action":"delete","property":"url","from":"","to":"","reg":false,"name":"","x":438,"y":51,"z":"f48bce72.710dc","wires":[["aaa42965.71cb1"]]}]

I hope I was clear enough!

Hi - apologies - was getting ahead of myself. Reverted the change.
idea was to pass on the inbound url (whatever that ended up being if you had used templating on the way in) - but the one in the node should have priority... however previous versions (0.9x) gave priority to the msg - and so we added a deprecated message - but of course that only just made it to the released version... so we can't really change the underlying behaviour - to give priority to the node url - until we have given people a decent warning period... probably release 11.
So the net is my change was premature... so reverting it until then...

Understood, thanks for the quick reply!
Le 8 mars 2015 19:42, "Dave Conway-Jones"<EMAIL_ADDRESS>a
écrit :

Hi - apologies - was getting ahead of myself. Reverted the change.
idea was to pass on the inbound url (whatever that ended up being if you
had used templating on the way in) - but the one in the node should have
priority... however previous versions (0.9x) gave priority to the msg - and
so we added a deprecated message - but of course that only just made it to
the released version... so we can't really change the underlying behaviour

to give priority to the node url - until we have given people a decent
warning period... probably release 11.

So the net is my change was premature... so reverting it until then...
—
Reply to this email directly or view it on GitHub
https://github.com/node-red/node-red/issues/582#issuecomment-77766778.

Fix pushed to master.


Pixels per Inch option for PNG export actually parses as Pixels per Point

Description
Basically the title, if I use --ppi 4 it interprets the input as 4 PPP = 288 PPI
You can either change the option name to PPP or change the way it's parsed
Reproduction URL
No response
Operating system
Windows
Typst version

[X] I am using the latest version of Typst

Yes, it shouldn't be renamed. The internals should be switched to PPI instead.

Yes, it shouldn't be renamed. The internals should be switched to PPI instead.

I was thinking about just multiplying PPI by 72 and passing it to the render function this way


Update Transformations.py

Reduced code duplication: The scale_mat function has been modified to handle scaling with one or three parameters.
Additionally, the apply_transform function was created to eliminate code repetition when combining matrices (local and global).
Improved readability: Function and variable names have been simplified and made more logical, and parts of the code have been
refactored into more general and reusable functions.
Better efficiency: np.eye is used for generating the identity matrix, which is more efficient and faster than manually creating the matrix.

Thank you for your changes, please register your request for beta, all changes will be committed on beta and after the relevant tests, they will be merged with the new tag version on main.
I will do my best to make GitHub's collaboration space brighter and more advanced.

Thank you for your changes, please register your request for beta, all changes will be committed on beta and after the relevant tests, they will be merged with the new tag version on main.
I will do my best to make GitHub's collaboration space brighter and more advanced.

Reduced code duplication: The scale_mat function has been modified to handle scaling with one or three parameters. Additionally, the apply_transform function was created to eliminate code repetition when combining matrices (local and global). Improved readability: Function and variable names have been simplified and made more logical, and parts of the code have been refactored into more general and reusable functions. Better efficiency: np.eye is used for generating the identity matrix, which is more efficient and faster than manually creating the matrix.

Thank you for your changes, please register your request for beta, all changes will be committed on beta and after the relevant tests, they will be merged with the new tag version on main.
I will do my best to make GitHub's collaboration space brighter and more advanced.


HHH-12868 Fix NPE when loading entity with CacheConcurrencyStrategy.NONE

https://hibernate.atlassian.net/browse/HHH-12868

Merged.


Consistent ordering for RibbonClients.defaultConfiguration's

See conversation in #374

I would love it if it could behave like with the "main" application context: you provide sensible defaults by auto configuration, and I can override them by injecting my own beans. You know, just like with the Auto Configuration... see what I mean?
I don't know the auto configuration stuff works behind the scenes, but to me all happens as if my beans simply hide/override the default ones. With that strategy, an error would be raised if I register more than one bean of a given type. Like with the "normal" context...
I even wonder if @RibbonConfig shouldn't simply be enhanced to allow ones to inject new beans of any types in the context. Let me take an exemple: I'd like to react on some application events in the parent context to act on the load balancer. Well, you can imagine all sorts of things... I'm just looking here for a way to add beans to the context created for the client.

I think that may be what is happening.  Changing the order didn't matter, it always picked your custom server list impl regardless of whether your default config was first or last (in SpringClientFactory).  I'll wait for @dsyer to comment, maybe this issue isn't needed.

@spencergibb I had a look at your test case and it fails on my platform. Looks like the RibbonClientDefaultConfigurationTestsConfig configuration is not loaded at all.
Shouldn't you add it to the TestConfig?
@EnableAutoConfiguration
@Configuration
@Import(RibbonClientDefaultConfigurationTestsConfig.class)
public static class TestConfig {

}

@brenuart I did commit a version that was broken b746ad5504c29ca55c009b16266266a4894a7234, but then committed a fix in 0f2fbf8e1cd4dddd6170610c3bd436cef85d382f

Some feedback and share my experience...
I played a bit with this fix and it wasn't working. My mistake was to create a configuration bean with the same class name as yours:
com.mycompany.boot.ribbon.EurekaRibbonClientConfiguration
org.springframework.cloud.netflix.ribbon.eureka.EurekaRibbonClientConfiguration

When they are added to the application context, Spring gives them a name set after the class name. So they got both the same bean name. Since mine was added first, your bean definition overridden mine. This is shown by the following trace in the log output:
...s.b.factory.support.DefaultListableBeanFactory Overriding bean definition for bean 'eurekaRibbonClientConfiguration': replacing [Generic bean: class [com.mycompany.boot.ribbon.EurekaRibbonClientConfiguration] ...with [Generic bean: class [org.springframework.cloud.netflix.ribbon.eureka.EurekaRibbonClientConfiguration]; ...

Everything worked fine after I changed the class name of my config bean.
This shows that the order configurations are applied by the SpringClientFactory may have an importance.

Good to here.  Does this need to stay open?

As far as I understand, the name collision scenario described here can happen in any application context - not only those created by the SpringClientFactory. So everything looks right with your fix.
However, I wonder how I can guarantee my configuration bean will never be overridden "by mistake" by another coming from a third-party lib for instance. I'm worried...


SillyKoalaHugs.IdleEucalytus version 1.1.1

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

[x] Does your manifest conform to the 1.4 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

The download has started working again. Request to restart the checks

@wingetbot waivers Add Validation-Domain


Conflict resolution for multiple changed attributes on a single entity

Thanks for this rather straightforward looking package!
I have one question about following use case:
entity: id, name, color, category
node1: ch1: changes color and name
node2: ch2: changes category and name
changes on node1 and node2 happen on the same state, means none of those changes is more "correct" than the other.
ch2 arrives at server first, then ch1. Would it work in Last-Write-Wins fashion? Would it retain color and category changes without conflict?
How does the server decide, which change to apply first?
Thanks!

The change with the highest HLC timestamp would win: HLCs are compared using date & time, followed by the vector counter, and finally the node id as a deterministic tie breaker.
So in a sense it is last-write-wins, except it's based on the timestamp rather than the first to arrive. The result of a merge is guaranteed to be the same regardless of order of operations.
In your example the result of the merge would cause either ch1 or ch2 to be lost since one record would "win" over the other.
This is by design as conflict resolution works on the record rather than its fields since data consistency cannot otherwise be guaranteed.
If you want to allow for simultaneous changes of properties, you have to mirror that in your data structure. Something like:
entity: id, name, color, category
entity_color: id, color
entity_category: id, category
(Closing since this isn't an issue with the code, but feel free to continue commenting)

@cachapa Thanks for the quick response! Good to have my hunch confirmed. Do you plan to add some dev guides later? The code is quite clean and mostly self-explanatory, but to have some high-level docs would be great.
I might try to re-implement this package in TypeScript and Elixir, and an overview of taken trade-offs and gotchas would help.
Have a great day!
Roman

Thanks!
I've been meaning to write something on this, but whenever I start I always struggle to find the right audience: should I get really technical, or go more high-level?
I'm usually more comfortable answering direct questions, such as this one :-)
For now I have "living documentation" in the form of an end-to-end open source project: tudo.
A re-implementation in other languages could be really interesting, please keep me posted if you go ahead with it.
Funny thing, a couple of years ago @fum36205 and I built a prototype of sql_crdt for StoryArk, and his backend implementation was in Elixir.

@cachapa That's funny! :) Yeah, I'll try to orient myself on the "living documentation" and see how far I come. When I have something more concrete, I'll send you a link to the repo.
If some questions come up, I'll post them here as issues, I hope that's ok.
Thanks again!

Docs: I guess it might make sense to start with technical details, since your audience might be more of the "local-first" crowd, and they already know the nice high level properties of CRDTs and sync issues in client / server architectures. Maybe a discord group with https://www.linen.dev/  to expose discussions for accessibility and SEO, if community-building and feedback is something you would like to facilitate. But just for docs I would keep it low-tech, couple markdown files in guides/ folder with some mostly-unstructured brain-dumps would be already great.
The maintainer of Replicache @aboodman has a couple public documents like following:

https://roamresearch.com/#/app/aboodman/search
https://roamresearch.com/#/app/aboodman/page/p-fk069VQ
https://replicache.notion.site/Diff-Strategies-3cccf424123042ed8796cf0773cacf4e
https://replicache.notion.site/The-Row-Version-Strategy-5c5560b0ba3c437fae6eb34318b54712

They are not final and polished, but already helpful to understand trade-offs.

Thanks for the links, I'll have a look.
I'm honestly not too crazy on the idea of building a community since I already have more projects than there are hours in the day, and I try to keep my time commitments to a minimum, esp. when it involves other people.
I do think technical documentation and/or a guide makes sense. I'll have to consider the best way to create and host one.
For now I activated the Discussions tab in this repository, it may be a better way to have these sorts of interactions than (mis)using the issues :-)

Community building: I can totally understand :) Thumbs up on the Discussions tab.


Refactor tx fee/priority evaluation out of AcceptToMemoryPool

This split out transaction fee/priority evaluation out of AcceptToMemoryPool and into a class FeeEvaluator. This class is given unit test coverage, and the tests clearly define transaction acceptance policy.
The somewhat broken -relaypriority parameter is replaced with a more descriptive -allowfreetx parameter.
QA tests that broke due to fee policy change are fixed.
On top of #459

Rebased-as-@dagurval

@dagurval Curious, do you see more of ATMP moving into mempoolacceptor?

@dgenr8 With time, I hope to see all of it moved and with tests :-)


chore(package): update vue-loader to version 14.0.2

Closes #19

:tada: This PR is included in version 1.1.5 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Android Studio integration to App Center Test

Describe the solution you'd like
It would be great to be able to upload directly from Android Studio (etc.) to App Center Test. This allows a less interrupted experience if one is actively developing features/tests in an IDE and wants to submit them to run on real devices.
Describe alternatives you've considered
The only alternative is the CLI.
Additional context
This is output from a dogfooding exercise

Thanks for the feature request @sapieneptus! Keeping this open to track future interest in this feature.


Ionex reader for TEC files

This PR includes the functionalities necessary to read TEC map in IONEX format.
Code is imported from Mintpy.

Thank you @vbrancat. Looks good to me overall. I would suggest copying over from mintpy the testing script (https://github.com/insarlab/MintPy/blob/main/tests/objects/ionex.py) and data (https://github.com/insarlab/MintPy/blob/main/tests/data/jplg3190.15i) also. If the test pass, the PR is ready to get merged.
I see that the unit test for COMPASS is not merged yet (https://github.com/opera-adt/COMPASS/pull/46). I would suggest we split #46 into two PRs: one for the pytest setup and one for the geocode SLC test, so that the unit test can be quickly merged and leveraged by other PRs like this one. What do you think @LiangJYu ?

I see that the unit test for COMPASS is not merged yet (#46). I would suggest we split #46 into two PRs: one for the pytest setup and one for the geocode SLC test, so that the unit test can be quickly merged and leveraged by other PRs like this one. What do you think @LiangJYu ?

@yunjunz currently the pytest setup is broken in CI. I hope that's not the part you wanted to leverage.

@yunjunz currently the pytest setup is broken in CI. I hope that's not the part you wanted to leverage.

Yes it is 😂

Thank you @vbrancat. Looks good to me overall. I would suggest copying over from mintpy the testing script (https://github.com/insarlab/MintPy/blob/main/tests/objects/ionex.py) and data (https://github.com/insarlab/MintPy/blob/main/tests/data/jplg3190.15i) also. If the test pass, the PR is ready to get merged.
I see that the unit test for COMPASS is not merged yet (#46). I would suggest we split #46 into two PRs: one for the pytest setup and one for the geocode SLC test, so that the unit test can be quickly merged and leveraged by other PRs like this one. What do you think @LiangJYu ?

Thank you @yunjunz for your review. May be we can submit the unit test in another PR and open an issue for that? I do not want to delay this PR any longes and it seems that it may take a while to fix the unit test running on the CI system

Thank you @yunjunz for your review. May be we can submit the unit test in another PR and open an issue for that? I do not want to delay this PR any longes and it seems that it may take a while to fix the unit test running on the CI system

Sounds good to me too.


[Regression] Re-enable ANSI color support on Windows

Also adds a test to make sure we don't break it again.


Prevent panic during nil to string type assertion

This change causes func newMessage to assert reply[1].(string) safely and prevents the function from panicking. This one closes #1319.

Thanks!


More jshint fixes

remove duplicate var declarations in compiled JS
fix && warnings (move && to EOL so there is no ambiguity)
make typeof comparisons less ambiguous
could not fix 1 error that resulted from compilation of tagged template literals

@drudru just resolving a few more JS lint warnings

Looks good - 👍
Thank you!


[wip] Auto forward port

Work In Progress

@nicholasSUSE You can use the DRAFT feature instead of [wip] prefix.


Update Blog “2021-03-01-how-to-edit-the-content”

Automatically generated by Netlify CMS

👷 Deploy Preview for visionary-brigadeiros-5b21d1 processing.

Name
Link

🔨 Latest commit
cce68ab59c5947d45c3ca4d90d556c27d13f993a

🔍 Latest deploy log
https://app.netlify.com/sites/visionary-brigadeiros-5b21d1/deploys/6334929279c82f00086df4e0


Readme link to languagetool

The link in the first paragraph should point to https://github.com/languagetool-org/languagetool but actually points to https://github.com/bminixhofer/nlprule/blob/main/github.com/languagetool-org/languagetool which 404's because the https:// is omitted.

Thanks, good catch, I fixed it.


Getting "Invalid field name tags"

Affected module
UI
Describe the bug
Clicking on any service gives "Invalid field name tags". Also happening on database details page
To Reproduce
https://user-images.githubusercontent.com/83201188/156302088-583f2b17-fb04-44c5-bbd3-395a2e12b08a.mov
Expected behavior
Should not get such error on clicking services
Version:

OS: [e.g. iOS]
Python version:
OpenMetadata version: [e.g. 0.8]
OpenMetadata Ingestion package version: [e.g. openmetadata-ingestion[docker]==XYZ]

Additional context
NA

@darth-coder00 we removed unnecessary fields so might affect other areas too


fixed unwanted line feed in spinner stop message

Pull Request Test Coverage Report for Build 886523669

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.03%) to 86.974%

Totals

Change from base Build 885583983:
-0.03%

Covered Lines:
434

Relevant Lines:
499

💛  - Coveralls


Modal crash in iOS

my app orientations only landspace

Modal was presented with 0x2 orientations mask but the application only supports 0x18.Add more interface orientations to your app's Info.plist to fix this.NOTE: This will crash in non-dev mode.
-[RCTModalHostViewController supportedInterfaceOrientations]
RCTModalHostViewController.m:66
-[UIViewController __supportedInterfaceOrientations]
-[UIViewController _preferredInterfaceOrientationGivenStatusBarAndDeviceAndOrientation:]
-[UIViewController _preferredInterfaceOrientationForPresentationInWindow:fromInterfaceOrientation:]
-[_UIFullscreenPresentationController _adjustOrientationIfNecessaryInWindow:forViewController:preservingViewController:]
-[UIPresentationController _presentWithAnimationController:interactionController:target:didEndSelector:]
-[UIViewController _presentViewController:modalSourceViewController:presentationController:animationController:interactionController:completion:]
-[UIViewController _presentViewController:withAnimationController:completion:]
__63-[UIViewController _presentViewController:animated:completion:]_block_invoke_2
+[UIView(Animation) performWithoutAnimation:]
__63-[UIViewController _presentViewController:animated:completion:]_block_invoke
-[UIViewController _performCoordinatedPresentOrDismiss:animated:]
-[UIViewController _presentViewController:animated:completion:]
-[UIViewController presentViewController:animated:completion:]
-[RCTModalHostViewManager presentModalHostView:withViewController:animated:]
-[RCTModalHostView didMoveToWindow]
-[UIView(Internal) _didMoveFromWindow:toWindow:]
__45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke
-[NSISEngine withBehaviors:performModifications:]
-[UIView(Hierarchy) _postMovedFromSuperview:]
-[UIView(Internal) _addSubview:positioned:relativeTo:]
-[UIView(React) didUpdateReactSubviews]
-[RCTView didUpdateReactSubviews]
__48-[RCTUIManager _dispatchChildrenDidChangeEvents]_block_invoke
__44-[RCTUIManager flushUIBlocksWithCompletion:]_block_invoke
__44-[RCTUIManager flushUIBlocksWithCompletion:]_block_invoke.544
__RCTExecuteOnMainQueue_block_invoke
_dispatch_call_block_and_release
_dispatch_client_callout
_dispatch_main_queue_callback_4CF
CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE
__CFRunLoopRun
CFRunLoopRunSpecific
GSEventRunModal
UIApplicationMain
main
start

Path: node_modules/react-native-lightbox/LightboxOverlay.js
i added supportedOrientations={['landscape']} to Modal. problem is resolve.
<Modal visible={isOpen} transparent={true} onRequestClose={() => this.close()}>
        {background}
        {content}
        {header}
      </Modal>

?

I think you need to add orientation for your app. You can add it info.plist.
You can review this
<key>UISupportedInterfaceOrientations</key>
<array>
	<string>UIInterfaceOrientationPortrait</string>
	<string>UIInterfaceOrientationLandscapeLeft</string>
	<string>UIInterfaceOrientationLandscapeRight</string>
</array>

This is a blocking issue for apps/games where the design only supports landscape orientation (i.e. situations where adding UIInterfaceOrientationPortrait is not possible because it would break the rest of the app layout).
If the lightbox had a landscapeOnly prop or similar, that could pass the correct supportedOrientations prop to the underlying Modal component and prevent the crash.


feat(17781): Notification framework and new release notice

See https://hivemq.kanbanize.com/ctrl_board/57/cards/17781/details/
This PR introduces notice to the user for any new release of the system, for potential updating it.
The feature is introduced as part of the wider management of notifications in HiveMQ Edge.
Design

a simple "notification" button badge is added to the navigation panel, making the feature available from every point of the web application
The button badge contains a small badge indicating the number of unread notifications
The notifications are fetched dynamically; therefore the number displayed can change at any point in time.
If there are no unread notifications, the button badge is inactive
When the user clicks on the button badge, the unread notifications are displayed as "toasts" on the right-hand side of the screen, consistent with any other toasts used in the web app.
The design of the toasts is slightly different: light version, info or warning only, a "do not notify me again" check box, and a longer timeout.
Once displayed and then closed (manually or timed out), the notification will be considered as "unread", the button badge being adapted accordingly
The "unread" status is NOT persisted: reloading the page will renew the notifications
Checking the "do not notify me again" option WILL persist the decision: the same notification (as identified by its name/ID, will not be listed again

Out-of-scope

The use of toast for the notifications has the merit of consistency within the app but might create a visual overload when combined with other "overlay" components (other toasts or panels, see the last screenshot below). This will have to be looked at, using Heap Analytics and user journeys monitoring
The notifications will be limited to 9 (single-digit badge on the button badge). This might create a discrepancy between data and UI.
There is no mechanism in the UI (short of deleting the localStorage) to cancel the "Do not notify me again". A user preference or settings might have to be implemented

After

Holding on this PR, until I can assess pros/cons of delivering a feature like notifications without persistency

Holding on this PR, until I can assess pros/cons of delivering a feature like notifications without persistency

Good to go with the current UX:

fix the version check
add localStorage for the "Do not notify me again"

Looks nice. The notifications disappear as I consume them. Question, what generates the new version available notification? Doesn't seem to come from the API?

The version request is done from the UI, using GitHub public API. It might be worth integrating it with the backend's existing check and notifications.

The UI works nicely, I wonder if we could use a Bell icon (typically used for notifications) rather than an email icon?

Done


package-lock.json and yarn.lock

as far as I know, these two lockfiles are not automatically kept in sync, i.e. yarn does not modify package-lock when it adds a dependency.  Perhaps it is better to just settle on using one or the other?

+1 to that! It would also be important to create a CONTRIBUTING doc so you can document that one package manager is the preferred for this project, as well as making sure that anyone that wants to contribute with a pull request needs update the preferred lockfile before it can be merged.
FWIW, I really like yarn but I'm usually in favor of keeping npm as the standard for OSS projects, because it is inherently more popular.

Personally I've been using npm. However, I have no strong preference for any of the two. Should we use npm because it's what Facebook uses in the React Native tutorial?

Up to you, just better to pick one and stick with it (afaik) (and delete the unused lockfile).


Configuration Object

We are going to need to create a global configuration object to keep track of paths and other settings.
It will need to keep track of these items:

Source path (default: src)
External commands path (default: Application/Commands as established in #3)
Public index path (default: public/index.php)
Bootstrap directory (default: app)
Not sure if we do need all of these, I'm just brainstorming)

We should enable populating that object using:

JSON Configuration
YAML Configuration
PHP Configuration
Env Variables (These will always take precedence over all others)

What should the configuration files be named?

slim.config.(json|yaml|php)?

slim-console.config.php?
I would highly recommend creating it as a .php file.
Any other format will require that we parse it and format it over to php so we can use the configuration to preset/make stuff.

@l0gicgate May I can work on this one if it is OK 😄

Let’s proceed with the initial configuration being .php and further down the road we can offer other options if requested!
And @flangofas absolutetly!

@l0gicgate For now, should I use the following parameters?
    protected static $defaultParams = [
        'root'          => 'Absolute path of the project\'s root directory',
        'bootstrap'     => 'app',
        'commandsDir'   => 'Application/Commands',
        'public'        => 'public/index.php',
        'src'           => 'src',
    ];

I think we should probably keep the naming uniform and alphabetized keys:
    $defaultParams = [
        'bootstrapDir'	=> 'app',
        'commandsDir'	=> 'Application/Commands',
        'indexDir'	=> 'public',
        'indexFile'	=> 'index.php',
        'rootDir'	=> 'Absolute path of the project\'s root directory',
        'sourceDir'	=> 'src',
    ];

I'm not final on this but that's what I'm thinking. Thoughts @ABGEO07?

@l0gicgate
And the environment variables would be these:
SLIM_CONSOLE_BOOTSTRAP_DIR
SLIM_CONSOLE_COMMANDS_DIR
SLIM_CONSOLE_INDEX_DIR
SLIM_CONSOLE_INDEX_FILE
SLIM_CONSOLE_SOURCE_DIR

$defaultParams = [
        'bootstrapDir'	=> 'app',
        'commandsDir'	=> 'Application/Commands',
        'indexDir'	=> 'public',
        'indexFile'	=> 'index.php',
        'rootDir'	=> 'Absolute path of the project\'s root directory',
        'sourceDir'	=> 'src',
    ];

@l0gicgate this is a good structure :+1: But i have one offer for improvement:
What do you think about using some kind of placeholders like
...
'commandsDir' => '{sourceDir}/Commands', // or %sourceDir%
'sourceDir'   => 'src',
...

or something else? This would be good practice when we need to reuse some parameters in other parameters.
It will be easy to parse them using regex and replace before defining constants.

What do you think about using some kind of placeholders like

I’m not so sure we need to go that complex. We should have path formatting done via internal functions. sourceDir is implied that it would prefix the commandsDir in this case.
We’ll have to see what @flangofas comes up with and we can make further decision once we see the initial config object.


Support downloading of segment from controller on load error in Realtime table

Currently, for realtime Pinot table, a segment load error (during server restart for eg) will result in the segment going into an ERROR state. This might happen if the segment was not sealed properly (server got shut down) or default column got removed.
This can be resolved by adding a retry logic to fetch the segment from Controller (this is what happens today for Offline Table).
CC @Jackie-Jiang @fx19880617

#6647

The segment download code is the same on the server, with retry logic -- whether realtime or offline

@mcvsubbu For real-time table, when server finds a local copy of the segment, but cannot load it, server will throw exception.  The proposal here is to download a new copy from the controller when server fails to load the local copy.


skywalking ui topology graph advice

Please answer these questions before submitting your issue.

Why do you submit this issue?
[ ] Question or discussion
tracing must running a distributed system
so if our system invoke other system ,the skywalking would be add a unknown service.if the invoke target is a ip list ,the graph would be appear so many unknown service. And the behavior would be cost so many time when the front end rendering.
why not the default graphql query is to ignore unknown services?
and add a button to keep now status

But that is the topology designed for, showing the real distributed relationships. Once we hide those conjecture nodes, people may even don't know they exist.

so In the above description:

when we access the page ,i think the default page should inclue the following items

if we want to know the mysql,es,unknown point ,we can open it

now our staus is following:

so priority in my mind:

only show depenency between services
switch to open external components  dependency,for example : mysql ,es, or unknown services

We gave the service group for the huge topology and make it more meaningful. For 100+ service nodes, I don't think there would be a real difference with or without conjecture nodes.

i know the service group ,but the page rander is so slow because of the the front end render when has so many unknown services.
At 7.0.0 ,the service group has bug, cannot add some services which beyond the border

i think the services dependency for whole services has positive sense for deciders

First, about (1) and (2), those are code level thing, they are not related to this topic. Should not change based on those.
For (3), I am not sure whether a 150 nodes topo and a 200 nodes topo have any different? Who can see what is happening there?
All three should not be treated as a reasonable requirement for the feature you asked. At least for myself.

I think your way of thinking is right,

about (1) and (2) i will open a new topic to discuss it
about 3, i agree with you if have more than 200 node in a dashboard

Could there be a more convenient way?
for example :

user chose a central point
Increase the degree or decrease the degree to control the graph
Whether this approach is more efficient in analyzing service relationships

Do you have a video to demo? I can't be sure of your points.

reply the demo picture on qq


Buttons text is limited in slack coversation

Hi
i have using some buttons actions in my slack bot
If buttons have some bigger button text they are not getting displayed fully.
please find the below attached screenshot.

Is there any option to display full button text (or) is there any option like tool tip (or) is there any thing we can do please suggest me

@kittu610 - This is a limitation in each individual Slack client and is out of our control. All channels have limitations for how long button titles can be, and we recommend keeping your titles shorter than 20 characters. You might try sending a numbered list before the buttons if you need more room to explain what each button does, and then the button titles could just be 1, 2, etc.
I'm closing this issue now.


Allow to have router script in any directory and start the server using "-t" option.

Changes

Use built-in extend from util.
Add -t for server startup.

This PR contains better solution, described in https://github.com/micahblu/gulp-connect-php/pull/19

Merged!


[Question]: What is the FileTransform@1 migration path?

Task name
FileTransform
Task version
1.244.0
Environment type (Please select at least one enviroment where you face this issue)

[X] Self-Hosted
[ ] Microsoft Hosted
[ ] VMSS Pool
[ ] Container

Azure DevOps Server type
dev.azure.com (formerly visualstudio.com)
Azure DevOps Server Version (if applicable)
No response
Operation system
Windows 11
Question
#20222 deprecated FileTransform@1.
FileTransform@2 is still marked as "preview", so it's not something customers should be using.
What is the expected migration path for users of FileTransform@1?

Hi @HamsterExAstris, thanks for your question. As far as I know the FileTransform@2 task has been around for about 5 years, and it should be used instead of the v1. I think it was just overlooked that the preview label was still there

Adding more to this:
The README.md for FileTransform@2 also needs a revision. As of now it is mostly a copy-paste from FileTransform@1 even though the usage has changed with new parameters.

Now that FileTransform@1 is marked as deprecated, because FileTransform@2 is still marked as preview, the task as a whole is marked as deprecated when trying to add to a Classic pipeline.


Export phone entries as CSV values

Having a possibility of exporting a "phonebook" from the website could be useful to add information to your own contact register.

Has anyone requested this lately? I don't see the need for it.


Update kamon-core, kamon-prometheus to 2.1.13

Updates

io.kamon:kamon-core
io.kamon:kamon-prometheus

from 2.1.10 to 2.1.13.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "io.kamon" } ]

labels: library-update, semver-patch

Superseded by #635.


Should we raise PointOutsideBounds if point is outside the mosaic bounds

https://github.com/developmentseed/cogeo-mosaic/blob/26cf783e3e5b41bdad27e6b3c0b8c8a048e7caea/cogeo_mosaic/backends/http.py#L28

I think the behaviour is ok for now!


Unexpected change in 3D transforms

Describe the bug
Going from Compose-Desktop 1.4.0 to 1.4.1 the handling of 3D transforms has changed. The attached test program just rotates a rectangle around the x-axis. In 1.4.0 this resulted in some perspective transform but in 1.4.1 this looks like a parallel transform (infinite camera distance). Is this change in behaviour correct? See the attachments for details.
Affected platforms

Tested on Desktop

Versions

Kotlin version*:  1.8.20
Compose Multiplatform version*: 1.4.0 and 1.4.1
OS version(s)* (required for Desktop and iOS issues): macOS 13.4.1
OS architecture (x86 or arm64): x86
JDK (for desktop issues): temurin 17

To Reproduce
See Main.kt
Expected behavior
A perspective transform like in "Compose 1.4.0.png"
Screenshots
See attachments.
Archiv.zip

This change was made due to #3230

Yes, but that's about some specific problems with pointer input and not about changing the whole transformation behaviour.

Is this change in behaviour correct?

Yes. Since you're applying custom matrix instead of built-in rotation, you control transformations (including perspective) yourself.
The root cause of it is that in 1.4.0, perspective was mistakenly applied unconditionally that lead to double/triple effect on complex UI trees. Current behaviour is applying cameraDistance only if rotationX orrotationY != 0. It matches common sense and Jetpack Compose (Android) behaviour.
Also please note that your sample crashes on android with java.lang.IllegalArgumentException: Android does not support arbitrary transforms

that's about some specific problems with pointer input and not about changing the whole transformation behaviour.

Not exactly - input was just and symptom that transform matrixes were incorrect.

The factor 72 between these two definitions would explain the discrepancy.

Well, during work on it I had the same question, but I'm sure that the current behaviour is correct and matches Google's Jetpack Compsoe android library. But there is some documentation mess about what units are used here.
This is my findings:
Because on Android there is additional layer between compose and skia, the specific code inside compose might look the different. Even more - on multi platform compose builds matrix itself instead of relying on skia camera etc.
The full chain for Android that explains this cameraDistance * 72f formula:

In GraphicsLayerScope.cameraDistance, it's "The distance is expressed in pixels" (ref)
In ViewLayer.cameraDistancePx, it mentions that android's View "operates in Dp values" and it multiplies "pixels" to DPI (ref). Please note that it's not "device-independent pixels" as you can expect.
In View.setCameraDistance, it's "The distance in "depth pixels"" (ref). For passing value further, it divides value on DPI to get initial value back.
In RenderNode.setCameraDistance, it's again "The distance is expressed in pixels" (ref). It passes the value as-is to skia.
In skia's Sk3DView::setCameraLocation , the code uses the camera distance as inches and multiplies it to const 72 to get "pt". (ref)

Hope I answered to all your questions. Let me know if not

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


Serializing Guzzle

Hi,
I think I may have a unique case but nonetheless I thought I'd post it. the Issue is with using Guzzle with Drupal 7. I have a form that i've made into a class, that class gets Guzzle feeded to it through the constructor and saved to a property of the class. The form gets cached automatically by Drupal core and it has to serialize this to accomplish that. It runs into an "Cannot serialize a Closure..." error when trying to serialize the RequestFsm handler which contains closures. Is there anyway around this or is it an issue I am going to have to work out outside of Guzzle?

Yeah, you can't serialize a Guzzle client because it uses closures. I think you'll need to find a workaround for this in your application. I'm not sure what Guzzle could do to make this work.


add truncated timestamp column to row

We're working on sql on druid, when we transform such sql
select * from someDataSource where (time > '20160801 010000' and time < '20160801 100000' and dimA='xxx') or (time > '20160801 110000 ' and time <= '20160801 160000' and dimA='yyy')
to a druid query, we need 2 things from druid:
1: the timestampSpec info (done in another PR): the timestamp column and format, then we can know the 'time' range can be transformed to 'intervals':['2016-08-01 01:00:00/2016-08-01 10:00:00', '2016-08-01 11:00:00/2016-08-01 16:00:00']
"timestampSpec": {
  "column": "time",
  "format": "yyyyMMdd HHmmss"
}

2: the ability to do complex filter on time.
When ingestion, the timestamp column defined in timestampSpec is explicit excluded in dimension list because of the need of rollup, this patch adds the timestamp column back, but with truncated value according to queryGranularity and in origin format, in other word, it is the dimension version of __time.
If queryGranularity is set to 'HOUR', the original value is '20160801 013556', the final value in row is '20160801 010000'.
This feature is very useful when filtering by complex time range which 'intervals' can't represent(but still can use intervals to narrow down to less segments), like the above example.
The above query can be transformed to BoundDimFilter on 'time' or IntervalDimFilter on __time within an OrDimFilter.
But for a sql like
select * from someDataSource where time > '201608' and time < '201609', we can't use IntervalDimFilter due to the '201608' is not in pattern 'yyyyMMdd HHmmss' and we don't have another pattern to parse the '201608' string to a valid representation that the Interval class can understand.
To use this feature, just set the option includeTruncatedTimestampColumnAsDimension=true in dimensionsSpec in DataSchema:
"parser": {
  "type": "string",
  "parseSpec": {
    "timestampSpec": {
      "column": "time",
      "format": "iso"
    },
    "dimensionsSpec": {
      "includeTruncatedTimestampColumnAsDimension": true,
      "dimensions": [
        "appId",
        "containerId",
        "cluster"
      ]
    },
    "format": "json"
  }
}

Instead of ingesting an extra dimension, would it suffice to add a time format string parameter to the IntervalDimFilter(PR for that here, for reference: https://github.com/druid-io/druid/pull/3315), to allow it to accept more than ISO-8601 strings?

IMO, if we need to have two time columns with basically the same data, that seems like a workaround to an underlying deficiency in the query language. Ideally we could improve the query language to make things work on a single time column.
#3180 was meant to solve (2) without need for a separate column. @kaijianding could you double check if that functionality satisfies your needs? If not, do you think it'd be possible to go down the road of using the __time column directly through some additional options (like @jon-wei had suggested)?

For a sql like
select * from someDataSource where time > '201608' and time < '201609', we can't just say it is in 'yyyyMM' format, '201608' can be '20160801' or '20160801 10' in other sqls, thus IntervalDimFilter can't handle this case even it can support customized format due to we don't know the format in advance.
But we still can do string compare on dimension. @jon-wei

@kaijianding does something like this work?
"filter" : {
  "type": "bound",
  "dimension" : "__time",
  "lower" : "201608",
  "upper" : "201609",
  "extractionFn" : {
    "type" : "timeFormat",
    "format" : "yyyyMMdd HHmmss"
  }
}

It seems just what I need! Will try this solution, @gianm .
But I think TimeFormatExtractionFn still need to support the formats used in TimestampParser, like posix/nano/ruby/millis/iso.

@jon-wei @gianm can u guys take a look here?

Does this PR still need review, or was the solution proposed by @gianm sufficient?

@kaijianding does this PR still require review?

@kaijianding did you still need this PR or @gianm suggestion is not enough ?

Close this PR for now, will open it if I still need it in future


[Feature Request] change minimum progress steps to 1%

makes the progress better adjustable by going in 1% steps

I would only want to do that if we make the slider "biased" towards multiples of 10, so it kind of snaps preferably at these values.

why is that? No offense, but I think, this could lead to     some adjustment problems, 'cause depending on the finger movement I would imagine, that it will snap, while for example I'd like to set it to 29% or 41% etc…
I just thought a 1% change could give a more accurate way to have a rating for a task. Would also make sense, while it calculates the precise % out of done subtasks, what's defeneitly a neat feature👍.

My idea is to use a non-linear scale, giving the 10s (and 5s) a higher "gravity". So it feels more like this:

The visible slider thumb will still snap at the linear position, so you won't see this scale.
This way it's easier to hit the 10s (and 5s) but you still have a precision of 1%.

Yeah. Sounds great🤘. Looking forward.😎