unable to build images failed to prepare: parent snapshot does not exist: not found

What happened in your environment?
Hello!  I'm trying to use overlaybd and I'm having problems with parent snapshots not existing.
After following the quickstart guide I am not able to build images via buildkit.  In the section below I've outlined all versions and ran to get the following error:
error: failed to solve: failed to prepare sha256:ec9d7d32d86b2d290c7c462c974ad1bb83e2912c8d8963de31b4531a86e4e38e as u464ilm6ong9k3equvlkgb4ng: parent snapshot sha256:ec9d7d32d86b2d290c7c462c974ad1bb83e2912c8d8963de31b4531a86e4e38e does not exist: not found

Any ideas about what this might be?
 It should be an initial layer."
Dec 06 16:52:35 ip-172-31-36-217.us-east-2.compute.internal overlaybd-snapshotter[4834]: time="2023-12-06T16:52:35Z" level=info msg="snapshot R/W label: overlayfs"
Dec 06 16:52:35 ip-172-31-36-217.us-east-2.compute.internal overlaybd-snapshotter[4834]: time="2023-12-06T16:52:35Z" level=debug msg="return mount point(R/W mode: overlayfs): [{bind /var/lib/containerd/io.containerd.snapshotter.v1.overlaybd/snap>
Dec 06 16:52:35 ip-172-31-36-217.us-east-2.compute.internal overlaybd-snapshotter[4834]: time="2023-12-06T16:52:35Z" level=info msg="Mounts (key: buildkit/3/k9hqd8042swl4fdsayn89zv1d)"
Dec 06 16:52:35 ip-172-31-36-217.us-east-2.compute.internal overlaybd-snapshotter[4834]: time="2023-12-06T16:52:35Z" level=debug msg="Mounts (key: buildkit/3/k9hqd8042swl4fdsayn89zv1d, id: 11, parentID: [], kind: 2)"
Dec 06 16:52:35 ip-172-31-36-217.us-east-2.compute.internal overlaybd-snapshotter[4834]: time="2023-12-06T16:52:35Z" level=info msg="Prepare (key: buildkit/15/tmp-ft59jy045borvnn0tm0kwets2 sha256:a790f937a6aea2600982de54a5fb995c681dd74f26968d6b7>
Dec 06 16:52:35 ip-172-31-36-217.us-east-2.compute.internal overlaybd-snapshotter[4834]: time="2023-12-06T16:52:35Z" level=debug msg="Prepare (targetRefLabel: sha256:a790f937a6aea2600982de54a5fb995c681dd74f26968d6b74286e06839e4fb3, accelLayerLab>
Dec 06 16:52:35 ip-172-31-36-217.us-east-2.compute.internal overlaybd-snapshotter[4834]: time="2023-12-06T16:52:35Z" level=debug msg="failed to identify by /var/lib/containerd/io.containerd.snapshotter.v1.overlaybd/snapshots/23/fs/overlaybd.comm>
Dec 06 16:52:35 ip-172-31-36-217.us-east-2.compute.internal overlaybd-snapshotter[4834]: time="2023-12-06T16:52:35Z" level=debug msg="failed to identify by writable_data(sn: 23), try to identify by config.v1.json"
Dec 06 16:52:35 ip-172-31-36-217.us-east-2.compute.internal overlaybd-snapshotter[4834]: time="2023-12-06T16:52:35Z" level=debug msg="Prepare (storageType: 1)"
Dec 06 16:52:35 ip-172-31-36-217.us-east-2.compute.internal overlaybd-snapshotter[4834]: time="2023-12-06T16:52:35Z" level=debug msg="empty snID get. It should be an initial layer."
Dec 06 16:52:35 ip-172-31-36-217.us-east-2.compute.internal overlaybd-snapshotter[4834]: time="2023-12-06T16:52:35Z" level=info msg="snapshot R/W label: overlayfs"
Dec 06 16:52:35 ip-172-31-36-217.us-east-2.compute.internal overlaybd-snapshotter[4834]: time="2023-12-06T16:52:35Z" level=debug msg="return mount point(R/W mode: overlayfs): [{bind /var/lib/containerd/io.containerd.snapshotter.v1.overlaybd/snap>
Dec 06 16:52:35 ip-172-31-36-217.us-east-2.compute.internal overlaybd-snapshotter[4834]: time="2023-12-06T16:52:35Z" level=info msg="Walk (fs: [])"
Dec 06 16:52:35 ip-172-31-36-217.us-east-2.compute.internal overlaybd-snapshotter[4834]: time="2023-12-06T16:52:35Z" level=info msg="Remove (key: buildkit/14/tmp-9ktmesjik025846wwpsb8lqcz sha256:a790f937a6aea2600982de54a5fb995c681dd74f26968d6b74>
Dec 06 16:52:35 ip-172-31-36-217.us-east-2.compute.internal overlaybd-snapshotter[4834]: time="2023-12-06T16:52:35Z" level=debug msg="failed to identify by /var/lib/containerd/io.containerd.snapshotter.v1.overlaybd/snapshots/22/fs/overlaybd.comm>
Dec 06 16:52:35 ip-172-31-36-217.us-east-2.compute.internal overlaybd-snapshotter[4834]: time="2023-12-06T16:52:35Z" level=debug msg="failed to identify by writable_data(sn: 22), try to identify by config.v1.json"
Dec 06 16:52:35 ip-172-31-36-217.us-east-2.compute.internal overlaybd-snapshotter[4834]: time="2023-12-06T16:52:35Z" level=info msg="Remove (key: buildkit/15/tmp-ft59jy045borvnn0tm0kwets2 sha256:a790f937a6aea2600982de54a5fb995c681dd74f26968d6b74>
Dec 06 16:52:35 ip-172-31-36-217.us-east-2.compute.internal overlaybd-snapshotter[4834]: time="2023-12-06T16:52:35Z" level=debug msg="failed to identify by /var/lib/containerd/io.containerd.snapshotter.v1.overlaybd/snapshots/23/fs/overlaybd.comm>
Dec 06 16:52:35 ip-172-31-36-217.us-east-2.compute.internal overlaybd-snapshotter[4834]: time="2023-12-06T16:52:35Z" level=debug msg="failed to identify by writable_data(sn: 23), try to identify by config.v1.json"

What did you expect to happen?
No response
How can we reproduce it?
Repro
Started machine in aws us-east-2 running RHEL 9.3 and load target_core_user.
sudo modprobe target_core_user

install requirements for overlaybd
sudo dnf install libaio
sudo dnf install compat-openssl11

install requirements for buildkit
sudo dnf install git
sudo dnf install golang

install overlaybd version 1.0.7
curl -L --output overlaybd-1.0.7-1.el8.x86_64.rpm https://github.com/containerd/overlaybd/releases/download/v1.0.7/overlaybd-1.0.7-1.el8.x86_64.rpm
sudo rpm -ivh overlaybd-1.0.7-1.el8.x86_64.rpm

set logs to debug
edit  /etc/overlaybd/overlaybd.json and set logLevel to 0.
    "logConfig": {
        "logLevel": 0,

Start overlaybd
sudo systemctl enable /opt/overlaybd/overlaybd-tcmu.service
sudo systemctl start overlaybd-tcmu

install overlaybd-snapshotter 1.0.2
curl -L --output overlaybd-snapshotter-1.0.2-1.x86_64.rpm https://github.com/containerd/accelerated-container-image/releases/download/v1.0.2/overlaybd-snapshotter-1.0.2-1.x86_64.rpm

sudo rpm -ivh  overlaybd-snapshotter-1.0.2-1.x86_64.rpm

set logs to debug
edit /etc/overlaybd-snapshotter/config.json and set verbose to "debug"
   "verbose": "debug",

start overlaybd-snapshotter
sudo systemctl enable /opt/overlaybd/snapshotter/overlaybd-snapshotter.service
sudo systemctl start overlaybd-snapshotter

install containerd 1.7.10
 curl -L --output cri.tar.gz https://github.com/containerd/containerd/releases/download/v1.7.10/cri-containerd-1.7.10-linux-amd64.tar.gz
cd /
sudo tar zxvf ~/cri.tar.gz
sudo mkdir /etc/containerd

Configure config.toml
# make a default containerd config
sudo /usr/local/bin/containerd config default > config.toml

Edit and add this section.
[proxy_plugins]
  [proxy_plugins.overlaybd]
    type = "snapshot"
    address = "/run/overlaybd-snapshotter/overlaybd.sock"

Edit and update this section:
    [plugins."io.containerd.grpc.v1.cri".containerd]
      default_runtime_name = "runc"
      disable_snapshot_annotations = false
      discard_unpacked_layers = false
      ignore_blockio_not_enabled_errors = false
      ignore_rdt_not_enabled_errors = false
      no_pivot = false
      snapshotter = "overlaybd"

sudo mv config.toml /etc/containerd/

Start containerd
sudo /usr/local/bin/containerd &

Buildkit
Build buildkit
git clone https://github.com/data-accelerator/buildkit.git
cd buildkit
git checkout 202210
go build -o ./bin/buildkitd ./cmd/buildkitd/
go build -o ./bin/buildctl ./cmd/buildctl/

Start buildkit
sudo ./bin/buildkitd --containerd-worker-snapshotter=overlaybd --oci-worker=false --containerd-worker=true  --containerd-worker-snapshotter=overlaybd --oci-worker=false --containerd-worker=true --addr="tcp://<IP_ADDRESS>:9999" &

create an example dockerfile
mkdir ~/example
cd ~/example

cat > Dockerfile << EOF
FROM overlaybd/ubuntu:0705
COPY Dockerfile /Dockerfile
EOF

Attempt build:
../buildkit/bin/buildctl --addr tcp://<IP_ADDRESS>:9999 build     --frontend dockerfile.v0     --local context=.     --local dockerfile=. --progress plain

#1 [internal] load .dockerignore
#1 transferring context: 2B done
#1 DONE 0.0s

#2 [internal] load build definition from Dockerfile
#2 transferring dockerfile: 151B done
#2 DONE 0.0s

#3 [internal] load metadata for docker.io/overlaybd/ubuntu:0705
#3 DONE 0.4s

#4 [internal] load build context
#4 transferring context: 90B done
#4 DONE 0.0s

#5 [1/2] FROM docker.io/overlaybd/ubuntu:0705@sha256:a6cfec9b35890c6f615cbd51b027f8244aa9922142a3763083f57e97ac7df1b5
#5 resolve docker.io/overlaybd/ubuntu:0705@sha256:a6cfec9b35890c6f615cbd51b027f8244aa9922142a3763083f57e97ac7df1b5 0.0s done
#5 DONE 0.0s

#6 [2/2] COPY Dockerfile /Dockerfile
#6 ERROR: failed to prepare sha256:ec9d7d32d86b2d290c7c462c974ad1bb83e2912c8d8963de31b4531a86e4e38e as 6olip1fz0ssmloti1nf7gl96r: parent snapshot sha256:ec9d7d32d86b2d290c7c462c974ad1bb83e2912c8d8963de31b4531a86e4e38e does not exist: not found
------
 > [2/2] COPY Dockerfile /Dockerfile:
------
Dockerfile:2
--------------------
   1 |     FROM overlaybd/ubuntu:0705
   2 | >>> COPY Dockerfile /Dockerfile
   3 |
--------------------
error: failed to solve: failed to prepare sha256:ec9d7d32d86b2d290c7c462c974ad1bb83e2912c8d8963de31b4531a86e4e38e as 6olip1fz0ssmloti1nf7gl96r: parent snapshot sha256:ec9d7d32d86b2d290c7c462c974ad1bb83e2912c8d8963de31b4531a86e4e38e does not exist: not found

What is the version of your Accelerated Container Image?
1.0.2
What is your OS environment?
RHEL 9.3
Are you willing to submit PRs to fix it?

[ ] Yes, I am willing to fix it.

@goller  This version has some compatibility problems with normal OCI images. "overlaybd/ubuntu:0705" is not an overlaybd image. The images under overlaybd are not officially released overlaybd images, only those referenced in the documentation with the "_obd" suffix are overlaybd images. The overlaybd repository contains only some test images. It is recommended to convert your own overlaybd images.
We have another new version that we're trying to merge into mainline buildkit, but it's not progressing well and there hasn't been further follow-up recently. I will be placing this version on github.com/data-accelerator/buildkit.git shortly, and then I would kindly ask you to try it out again.

@goller you may try branch 202312 in github.com/data-accelerator/buildkit.git This version is compatible with standard OCIv1 image builds. When building from an OCIv1 image, the output is an OCIv1 image, and when building from an OverlayBD image, the output is an OverlayBD image. You can determine whether it is built in overlaybd by observing whether the full FROM image is downloaded during the pull.

@liulanzheng I will try that out now.  Thank you for the update!


Remove tag parsing

We used to parse #tags from descriptions and titles, and then we killed the tags feature, but some of the vestigial code remained

old text-only markets with # will no longer link to (nonexistant) tag pages
creating markets should be slightly faster

In firestore.rules, you might be able to remove 'tags' and 'lowercaseTags' from the modifiable keys of contracts.

I thought we still used tags array for something jank (the big groups?)
don't feel like touching it


Drop categorical metadata with only one group before attempting to do Kruskal Wallis test

https://github.com/epigen/spilterlize_integrate/blob/964c4c01d956d42c519069c5431771feff96dd6d/workflow/scripts/plot_diagnostics.R#L165C1-L171C7
Otherwise there's an error since you can't with only one group. Perhaps worth dropping earlier.

Ah - just to elaborate, there is a section of code already to drop non-varying metadata (line 133)... but this does not filter out metadata where NAs are involved, which then draws an error by Kruskal-Wallis
I.e. For a metadata column with "TRUE" and "" as factor levels
(1) Line 133 - annot <- annot[, apply(annot, 2, function(x) length(unique(x)) > 1)] does not filter these out since it has more than one unique factor level
(2) When KW test is run, I suppose the  factor level is dropped... and suddenly there is only one factor_level for this column... and voila: Error! :)

thanks for the clarification and details. the more the better. this will accelerate the resolution of this issue.


Allow strongSwan's dpdaction set to be "clear" if the connection method is set to "Start on traffic"

Important notices
Before you add a new report, we ask you kindly to acknowledge the following:
[x] I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md
[x] I have searched the existing issues and I'm convinced that mine is new.
Is your feature request related to a problem? Please describe.
It's (hopefully) not a problem.
Describe the solution you'd like
I am running a CARP cluster which is initiating IPsec connections to another peer.
Due to the fact that we have the database clients on our side, initiating the connection to the database server behind the peer Firewall is mandatory for us. Having the connection open constantly is not an option, because the peer closes SAs after 30 minutes of inactivity.
This is why the connection method is set to Start on traffic instead of Respond only.
Unfortunately, setting the connection method to Start on traffic sets strongSwan's dpdaction to restart and only setting it to Respoond only sets it to clear.
This is not much of an issue, but when the firewall does a CARP failover, the new master node initiates the connection and the old node runs into a DPD timeout, successfully clearing all SA entries. But it keeps on trying to re-establish the connection and it fails, because the own IPsec peer IP is set to the CARP virtual IP and the new master node receives the response DPD packets.
The previous node is now the standby node, thus not receiving IPsec traffic now, so it should close the IPsec tunnel istead of trying to reconnect it, until it becomes master again, receiving traffic for the IPsec tunnel. For now, I have to manually stop the tunnel on that backup node by hand in the web UI.
I can't tell (for now) if the connection from the master node is going to run into issues, if the opposite peer still receives the DPD packets from the new standby node.
Describe alternatives you've considered
Add an Option to configure strongSwan's dpdaction config option in the web UI, or set dpdaction to clear if the connection method is set to Start on traffic. Then it should automatically re-establish the tunnel again anyway, when the tunnel receives traffic.
Another option would be to make strongSwan's inactivity option configurable. Then it'd close down the tunnel after the timespan set in inactivity anyway, because it's the standby node.
This is somewhat related to https://github.com/opnsense/core/issues/3291

If the (new) backup is still sending out messages (successfully) to the other end, there's likely another issue. The carp address should be used to send out traffic, either by binding it to the address or using an outbound nat rule).
Changing the behaviour for dpdaction could be problematic without touching existing setups, but if there's a valid reason for doing so, we should take a look at our options (and the way we explain these options to the user).

Yes, the local interface is set to the CARP IP. The new backup node is sending out DPD packets via the CARP IP but never receives them, but the actual master does.
Looking into the logs, it keeps on trying to reach the other peer as a backup node, until I manually stop it.

if I'm not mistaken @mimugmail has more of these setups active, maybe he knows if there's an omission here.

The new backup node is sending out DPD packets via the CARP IP but never receives them, but the actual master does. This is why the backup nodes then stop all child SAs but keeps the parent SA alive.

This sounds like you have to check "Disable MOBIKE" in Phase1

Unfortunately, disabling MOBIKE did not change this behavior. A node still tries to restart all child SAs, after it became the CARP standby node.
Nov 19 09:36:22 	charon: 07[NET] <con1|2> sending packet: from <ip1>[500] to <ip2>[500] (464 bytes)
Nov 19 09:36:22 	charon: 07[IKE] <con1|2> retransmit 3 of request with message ID 0
Nov 19 09:36:09 	charon: 07[NET] <con1|2> sending packet: from <ip1>[500] to <ip2>[500] (464 bytes)
Nov 19 09:36:09 	charon: 07[IKE] <con1|2> retransmit 2 of request with message ID 0
Nov 19 09:36:02 	charon: 07[NET] <con1|2> sending packet: from <ip1>[500] to <ip2>[500] (464 bytes)
Nov 19 09:36:02 	charon: 07[IKE] <con1|2> retransmit 1 of request with message ID 0
Nov 19 09:35:58 	charon: 10[NET] <con1|1> sending packet: from <ip1>[500] to <ip2>[500] (464 bytes)
Nov 19 09:35:58 	charon: 10[ENC] <con1|1> generating IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(REDIR_SUP) ]
Nov 19 09:35:58 	charon: 10[IKE] <con1|1> initiating IKE_SA con1[2] to <ip2>
Nov 19 09:35:58 	charon: 10[IKE] <con1|1> restarting CHILD_SA con1
Nov 19 09:35:58 	charon: 10[IKE] <con1|1> giving up after 5 retransmits
Nov 19 09:34:42 	charon: 13[NET] <con1|1> sending packet: from <ip1>[500] to <ip2>[500] (80 bytes)
Nov 19 09:34:42 	charon: 13[IKE] <con1|1> retransmit 5 of request with message ID 15
Nov 19 09:34:00 	charon: 05[NET] <con1|1> sending packet: from <ip1>[500] to <ip2>[500] (80 bytes)
Nov 19 09:34:00 	charon: 05[IKE] <con1|1> retransmit 4 of request with message ID 15
Nov 19 09:33:37 	charon: 05[NET] <con1|1> sending packet: from <ip1>[500] to <ip2>[500] (80 bytes)
Nov 19 09:33:37 	charon: 05[IKE] <con1|1> retransmit 3 of request with message ID 15
Nov 19 09:33:24 	charon: 05[NET] <con1|1> sending packet: from <ip1>[500] to <ip2>[500] (80 bytes)
Nov 19 09:33:24 	charon: 05[IKE] <con1|1> retransmit 2 of request with message ID 15
Nov 19 09:33:17 	charon: 05[NET] <con1|1> sending packet: from <ip1>[500] to <ip2>[500] (80 bytes)
Nov 19 09:33:17 	charon: 05[IKE] <con1|1> retransmit 1 of request with message ID 15
Nov 19 09:33:12 	charon: 12[NET] <con1|1> sending packet: from <ip1>[500] to <ip2>[500] (80 bytes)
Nov 19 09:33:12 	charon: 12[ENC] <con1|1> generating INFORMATIONAL request 15 [ ]
Nov 19 09:33:12 	charon: 12[IKE] <con1|1> sending DPD request

Manually adding the following to a configuration file in /usr/local/etc/ipsec.opnsense.d/
conn con1
  dpdaction = clear

yields the results I am looking for:
Nov 19 09:44:25 	charon: 08[IKE] <con1|1> giving up after 5 retransmits
Nov 19 09:43:09 	charon: 16[NET] <con1|1> sending packet: from <ip1>[500] to <ip2>[500] (80 bytes)
Nov 19 09:43:09 	charon: 16[IKE] <con1|1> retransmit 5 of request with message ID 5
Nov 19 09:42:27 	charon: 16[NET] <con1|1> sending packet: from <ip1>[500] to <ip2>[500] (80 bytes)
Nov 19 09:42:27 	charon: 16[IKE] <con1|1> retransmit 4 of request with message ID 5
Nov 19 09:42:04 	charon: 05[NET] <con1|1> sending packet: from <ip1>[500] to <ip2>[500] (80 bytes)
Nov 19 09:42:04 	charon: 05[IKE] <con1|1> retransmit 3 of request with message ID 5
Nov 19 09:41:51 	charon: 05[NET] <con1|1> sending packet: from <ip1>[500] to <ip2>[500] (80 bytes)
Nov 19 09:41:51 	charon: 05[IKE] <con1|1> retransmit 2 of request with message ID 5
Nov 19 09:41:43 	charon: 05[NET] <con1|1> sending packet: from <ip1>[500] to <ip2>[500] (80 bytes)
Nov 19 09:41:43 	charon: 05[IKE] <con1|1> retransmit 1 of request with message ID 5
Nov 19 09:41:39 	charon: 05[NET] <con1|1> sending packet: from <ip1>[500] to <ip2>[500] (80 bytes)
Nov 19 09:41:39 	charon: 05[ENC] <con1|1> generating INFORMATIONAL request 5 [ ]
Nov 19 09:41:39 	charon: 05[IKE] <con1|1> sending DPD request

Now the tunnel is being shut down (the orange button in the overview) on the standby node, and it's automatically started again, if CARP promotes this node to master again.

https://github.com/opnsense/core/pull/3851


Implement task update

This allows tasks to have their resources updated as they are running.
Fixes #1067
Signed-off-by: Michael Crosby<EMAIL_ADDRESS>

Codecov Report

Merging #1100 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #1100   +/-   ##
=======================================
  Coverage   54.51%   54.51%
=======================================
  Files          16       16
  Lines        1229     1229
=======================================
  Hits          670      670
  Misses        386      386
  Partials      173      173

Continue to review full report at Codecov.

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

LGTM

LGTM


As an LA I can filter the schemes for my LA

As an LA I can filter the schemes for my LA so that I can easily find a particular scheme.
Acceptance criteria

A filter form is added above the table on the schemes page
The form allows the schemes table to be filtered by:

Funding programme

When the form is submitted, the schemes table only shows LA schemes that match the filter
The filter can be easily cleared to show all LA schemes again

Authority feedback:

Can all packages of schemes be listed together on the front screen (ATE ref no. mixes all packages up), to make it easier for officers to go down the list to update them.


Multitarget Views.Desktop.Common 3

This PR is similar to #1067, which is for a branch with the two commits that fails the automated build.  To gain more information, I am creating this PR to see if just the first of those commits passes the automated build.  This PR is not meant to be completed.  I think it would be better if we could figure out how to get the other branch to pass the automated build and then complete that PR instead.

Abandoning per https://github.com/mono/SkiaSharp/pull/1067#issuecomment-567554218


[2.0.0 Beta] Add col-centered options for sm and md

Adding col-centered options for sm-col-centered and md-col-centered would be beneficial.

On develop branch.


hackathon DAO | ZK Podcast

To be the main guest speaker of a podcast about ZK basics. The estimated length of the podcast post-editing would be 1-1.5 hour(s) and it should include but not limited to:

What is ZK?
Key concepts
How to explain ZK to your grandma or your kids?
Current solutions and measurement
Real world applications

Bounty: 200 USDT + 2 $HAC
Instructions

Join our Discord
Go to #💰bounties channel
Send “ZK Podcast” and our staff will follow up with you bounty details and reviewing.
The bonus will be released after the first PR of the podcast publishing.

#43


Major dependency updates

Related to #31, this PR makes major version upgrades to the various dependencies and so is a breaking change requiring a major version bump.
~Tests have been updated, but one is failing due to some formatting issue that I don't have time to investigate further right now.  If anyone has a suggested fix please let me know.~
EDIT: Fixed by adding a trimStart() to the rule fixer.
Cheers,
Alex

Upgrading to jest 27 require additional changes on the getCacheKey method, as its interface was changed.

I've managed to fix the test failure due to the whitespace, so this should be good to go.
@Tallyb, mind giving more context on what additional changes you were suggesting regarding the getCacheKey method please? After looking through the repo, I don't think it's used anywhere.

@alex-ketch https://github.com/ionic-team/stencil/pull/2927

@Tallyb right, but I don't see any of that being used in this repo.
I guess what I'm asking is, are there any specific changes that need to be made here or no? Thanks

The change in my PR (1 file) is required to upgrade to Jest 27. Otherwise it can fail.

NM. You are only updating jest for your repo. My point was that stencil cannot use jest 27.

Thanks @alex-ketch ! I had been thinking something along the lines of splitting the code up so that the minimal number of dependencies could be upgraded at a time/per pr.  For example, we could probably group all the Jest + related dependencies into a single PR, all the ESLint dependencies in a single PR, and so on. What that does is allow us to 'hopefully' find where we could have potentially have introduced a bug (assuming we find a bug in the future).
I started to take a stab at upgrading various dependencies:

Update Jest (landed)
Update np (landed)
Update rollup (still open)
Update TypeScript

I landed the initial fix
But have a fix to that fix still in review

The only thing I think remaining is the ESLint changes, which as you know, led to some breaking changes that you've seemed to covered pretty nicely 🙂 If you're up for splitting those upgrades out into a separate PR, we'd love to accept it!


Fitting to "effectively" empty bounds, with padding

I have some geojson, and I do the following:
g = L.geoJson(stuff)
map.fitBounds(g.getBounds(), { padding: [50, 50 })
If the geojson happens to be a single point (or anything that results in a bounds where ne == sw), I would expect this code to result in the same as having done:
map.setView(thatPoint, zoomSuchThatPaddingEquals50)
Instead, the padding is ignored and I get the same as a zero-area bounds.

Can you set up a JSFiddle that demostrates the problem?

http://jsfiddle.net/9x2tp3eL/1/
I think this more or less shows what I'm experiencing.

Its actually quite strange. The bounds flips the lat, long:
L.geoJson({ type: "Point", coordinates: [9, 10] }).getBounds().getNorthEast() ---> [10, 9] http://jsfiddle.net/9x2tp3eL/2/

Sorry, please disregard the last comment (now see the differences in ordering). However, the bounds problem remains for 1-item geojsons.

The bounds of a single point has zero area, so exactly what are you expecting in that case?

Regardless of the expected result, something strange is going on in JSFiddle... It's gray on initial load, then when you push zoom out, the map+marker appear but zoom in button is disabled, indicating max zoom. So there should be a hidden bug.


Deprecate Ecto.Model

We will migrate its API to the Ecto model. We need to remove model references to something else. We also need to provide an alternative for callbacks.

Questions:

Provide an alternative mechanism for repository events (prepare_query, prepare_insert, prepare_update, ...)
Provide a schema to configure the model after load
Provide a mechanism for explicit after hooks

We will also need to move the functions from Ecto.Model to Ecto.


Before mergin callback

Hi, the issue is that when the user logs in with gmail for example then logs out, the next time he will pick another service like facebook but this time he will try and merge google account with the current logged in, there will be an error as an already account exists with the same service id, so if possible to add a hook just before the merging process that will receive as params (oldId, newId) [accounts ids], so that I can do what I want with the old account (remove, update it).
My solution for another package was working great but the package is no longer updated.

The user creates account1 which is linked to FB. Then logs out and creates account2 which is created via Google. Now the user wants to link account2 to their FB account as well, but that link has already been made to account1, so they can't.
Did I get that rights?
The easiest solution is for the user to unlink FB from account1 and then link it again at account2.
I think it might be easier to figure out how to work more easily with account merging packages on this than adding that entire functionality.

Isn't this similar to #49 ?

this has been 2 years, why github says 2017 ? :'( It started to collapse (joke).  And yes this question was about linking accounts after login out and trying to log in using another social network.


[WIP] Add Experiments API

This PR adds an experiment API to FiftyOne for storing and managing runs of model predictions, similar to how brain/evaluation/annotation runs are managed. These changes provide a structured way to store and evaluate model predictions without the need to manually organize and clutter your dataset with custom label fields. Additionally, when using this experiment API, you have access to a variety of evaluation methods and notebooks that can be used to efficiently explore your model predictions.
Experiments are designed to be extensible to support various experiment tracking backends that can be linked to tools like MLFlow (coming in a follow-up PR). This initial implementation adds the ManualExperimentBackend
Example:
import fiftyone as fo
import fiftyone.zoo as foz
import fiftyone.utils.experiments as foue

dataset = foz.load_zoo_dataset("quickstart").clone()

results = dataset.register_experiment(
    "test_exp",
    label_fields=["ground_truth"],
    method="manual",
    exp_dir="/tmp/test_exp",
)

# Add model predictions
fps = dataset.values("filepath")

preds = {
    fps[0]: fo.Classification(label="test1", confidence=0.5),
    fps[1]: fo.Classification(label="test2", confidence=0.7),
}
run_key = "run1"

results.add_model_run(
    run_key,
    preds,
    key_field="filepath",
)

results.get_model_evaluation(run_key)

# TODO
results.evaluate([run_key], launch_notebook=True)

Implementation highlights

Experiments are initialized through an ExperimentBackendConfig that requires a unique experiment key, dataset/view associated with the experiment, and any information needed to connect to that experiment in an experiment tracking tool (ex: tracking URI and experiment ID for MLFlow)
Upon creation of an experiment, the dataset/view will be cloned and any model predictions will be stored on that clone to avoid cluttering the parent dataset
The experiment ExperimentResults object is the primary way to interact with an experiment to do things like adding model runs and evaluation
Add a way to store custom metadata/text descriptions for each model run

TODO

Support additional methods for adding predictions other than lists of FiftyOne Label objects
Parse prediction types and run automatic evaluation
Add convenient evaluation methods to better explore model results (ex: results.get_high_entropy_samples([run_key1, run_key2]))
Add notebooks with interesting default evaluation reports for different prediction label types
Add documentation with examples and best practices for experiment tracking and model evaluation in FiftyOne

Stale, and can be refactored to use custom runs + plugins: https://docs.voxel51.com/plugins/developing_plugins.html#storing-custom-runs


Error: Manifest version 2

When I installed this on Chrome, I got this error:
Manifest version 2 is deprecated, and support will be removed in 2023. See https://developer.chrome.com/blog/mv2-transition/ for more details.

This should not affect the extension from working as expected. I am porting it to version 3 later this year


"quoted string" is guessed as JSON in embulk-guess-csv, but it was STRING in the old Ruby-based guess

See the test case in #9.

Fixed in #9.


[Feature Request] handle the isSuppressed property from ActiveEffect5e in some fashion

As I can tell there currently isn't a great way to have an effect trigger when an item with an effect set to transfer to actor is equipped/attuned in 5e.
"On Effect Creation" will trigger immediately when the item is in your inventory, and "On Effect Toggle (on)" won't ever trigger as part of equipping it unless you manually toggle the effect.  Neither of those especially work with 5e's concept of 'Unavailable Effects'.
I suspect you don't want to support this since it's not system agnostic - but it'd make this way more convenient for creating magic items that do stuff when you equip/unequip them.

What are you hoping to have happen?

Short version: I'd like an effect on a piece of equipment to run a macro when that equipment is properly equipped or unequipped.  Currently you can trigger when the item is put in inventory, but that doesn't account for attunement.
In this particular case, it's a magic staff with a couple spells that can use charges and an effect that increases ac - but which can also just be used as a +1 quarterstaff.  If I just make the item a quarterstaff it'll try to use the up the charges if you use it for melee attacks.  I can get around that by having two items - one for melee attacks, and one with the spells and effects and whatnot attached.  But it's nice to just have one item, so made it a trinket and added a macro that creates/destroys an extra +1 quarterstaff item on the sheet and attached it to the effect that grants AC bonuses and whatever else the item does.  It works great - but doesn't quite work exactly correctly.
If I toggle attunement or equip/unequip the staff, the ac bonus bit of the effect turns on and off as expected because the 5e system handles that.  But as far as effect macro is concerned - the effect is just on the whole time.  It would be nice if it triggered the "On Effect Toggle (on)" and "On Effect Toggle (off)" macro when an effect switched from unavailable to active because the item was attuned.
Is not a huge deal and my use case is needlessly complicated and silly.  But it would be a handy feature to have - would make it simpler to make magic items that do arbitrary things when attuned.  Pretty sure I could do what I want with some combination of DAE and ItemMacro but I like how much cleaner Effect Macro is. 🤷♀

Would it be sufficient if 'toggle off' and 'toggle on' were triggered when an effect became suppressed or unsuppressed?
I'll have a look and see if that's doable.

That would be great!


Kuberay 0.5.0 docs validation update docs for GCS FT

Why are these changes needed?

Update docs for best practice docs.
for kuberay 0.5.0 we mark the GCS FT feature to stable.
Checks

[ ] I've made sure the tests are passing.
Testing Strategy

[ ] Unit tests
[ ] Manual tests
[ ] This PR is not tested :(

This PR only updates documents and has no relationship with CI tests. Merge this PR before CI passes.


MockWebserver crashing with ssl negotiation error

Hi,
We are still not sure about the root cause but our acceptance tests execution phase is failing sometimes due to MockWebserver (4.2.1) crashing when the following error happens in acceptConnections():
11-05 11:53:36.557  5607 23163 E AndroidRuntime: FATAL EXCEPTION: MockWebServer
11-05 11:53:36.557  5607 23163 E AndroidRuntime: Process: com.xxx.xxx.xxx, PID: 5607
11-05 11:53:36.557  5607 23163 E AndroidRuntime: java.lang.AssertionError: java.lang.reflect.InvocationTargetException
11-05 11:53:36.557  5607 23163 E AndroidRuntime: 	at okhttp3.internal.platform.android.AndroidSocketAdapter.a(SourceFile:86)
11-05 11:53:36.557  5607 23163 E AndroidRuntime: 	at okhttp3.internal.platform.AndroidPlatform.b(SourceFile:86)
11-05 11:53:36.557  5607 23163 E AndroidRuntime: 	at okhttp3.mockwebserver.MockWebServer$SocketHandler.handle(MockWebServer.kt:516)
11-05 11:53:36.557  5607 23163 E AndroidRuntime: 	at okhttp3.mockwebserver.MockWebServer$serveConnection$$inlined$execute$1.run(Util.kt:580)
11-05 11:53:36.557  5607 23163 E AndroidRuntime: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
11-05 11:53:36.557  5607 23163 E AndroidRuntime: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
11-05 11:53:36.557  5607 23163 E AndroidRuntime: 	at java.lang.Thread.run(Thread.java:764)
11-05 11:53:36.557  5607 23163 E AndroidRuntime: Caused by: java.lang.reflect.InvocationTargetException
11-05 11:53:36.557  5607 23163 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
11-05 11:53:36.557  5607 23163 E AndroidRuntime: 	at okhttp3.internal.platform.android.AndroidSocketAdapter.a(SourceFile:81)
11-05 11:53:36.557  5607 23163 E AndroidRuntime: 	... 6 more
11-05 11:53:36.557  5607 23163 E AndroidRuntime: Caused by: java.lang.NullPointerException: ssl == null
11-05 11:53:36.557  5607 23163 E AndroidRuntime: 	at com.android.org.conscrypt.NativeCrypto.getApplicationProtocol(Native Method)
11-05 11:53:36.557  5607 23163 E AndroidRuntime: 	at com.android.org.conscrypt.NativeSsl.getApplicationProtocol(NativeSsl.java:568)
11-05 11:53:36.557  5607 23163 E AndroidRuntime: 	at com.android.org.conscrypt.ConscryptFileDescriptorSocket.getApplicationProtocol(ConscryptFileDescriptorSocket.java:1085)
11-05 11:53:36.557  5607 23163 E AndroidRuntime: 	at com.android.org.conscrypt.OpenSSLSocketImpl.getAlpnSelectedProtocol(OpenSSLSocketImpl.java:134)
11-05 11:53:36.557  5607 23163 E AndroidRuntime: 	... 8 more

Any ideas about this? Shouldn't this be handled by MockWebserver?
Thanks in advance!

Looks like a bug in the host OS. Which device? Which Android release?

It's an emulator running API 28

Looks like a dupe of this:
https://github.com/square/okhttp/issues/3301
Thought that’s crashing in the cipher suite and this is crashing in the ALPN version.

Reported upstream:
https://github.com/google/conscrypt/issues/781

Cool, thanks for the quick update @swankjesse

@swankjesse do we want to special case handling this in AndroidSocketAdapter?

@yschimke yep. Probably even string match the exception message because we don't want to catch unexpected failures.

Not going to fix for direct users of Conscrypt as that should come from their bug fix and a dependency upgrade.

@nimeacuerdo Can you reproduce and test this when it lands in a snapshot? I'm nervous I either slightly miss the exact conditions or it just delays the NPE until the next interaction with Conscrypt.

@yschimke @swankjesse ok, just let me know when such snapshot is available... although this issue is not happening that often so there'll have to be many successful builds before considering it gone.

btw, I cannot browse the snapshots referenced at https://github.com/square/okhttp/blame/master/README.md#L108.
https://oss.sonatype.org/content/repositories/snapshots/ just shows this:
Directory listing forbidden

While you can't browse the files, they are there e.g. https://oss.sonatype.org/content/repositories/snapshots/com/squareup/okhttp3/okhttp-tls/4.3.0-SNAPSHOT/okhttp-tls-4.3.0-20191006.161431-1.pom

@yschimke @swankjesse ok, just let me know when such snapshot is available... although this issue is not happening that often so there'll have to be many successful builds before considering it gone.

I think I need to look at Travis snapshot builds - sorry, latest ones probably aren't up to date.
https://travis-ci.org/square/okhttp/builds/610830250

Looks like the core issue here is fixed.


Add ControlNet support for SDXL

What does this PR do?

[x] Add ControlNet export support via CLI

Regular SD

optimum-cli export neuron -m stabilityai/stable-diffusion-xl-base-1.0 --task stable-diffusion-xl --batch_size 1 --height 1024 --width 1024 --controlnet_ids diffusers/controlnet-canny-sdxl-1.0-small --num_images_per_prompt 1 sdxl_neuron_controlnet/

~Tiny test(compilation failed for tiny on TimestepEmbedding  forward pass)~

optimum-cli export neuron -m echarlaix/tiny-random-stable-diffusion-xl --task stable-diffusion-xl --batch_size 1 --height 64 --width 64 --controlnet_ids hf-internal-testing/tiny-controlnet-sdxl --num_images_per_prompt 1 sdxl_neuron_tiny_controlnet/

[x] Add ControlNet export support via modeling API
[ ] Add ControlNet pipeline for stable diffusion XL
[ ] Documentation

Before submitting

[ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
[ ] Did you make sure to update the documentation with your changes?
[ ] Did you write any new necessary tests?

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


Bjorncs/health check proxy

I confirm that this contribution is made under the terms of the license found in the root directory of this repository's source tree and that I have the authority necessary to make this contribution on behalf of its copyright owner.

HealthCheckProxyTest::test_server started failing, probably related to this change

Ok, I will revert that commit


Revert "bugfix for malformed chunked response will be cached under so…

…me terrible network circumstances,"
This reverts commit c2df5ba8d33b5774a35d5bc06289a7808149a337.

This looks wrong to me - I thought this fix was accepted, it was just the single line that was the problem wiithout these other changes.

I got an email from scw00, urging me to revert this because it was not needed with the single line revert. It's all very confusing ....

Yes, I agree swc00's code is useless if you revert Susan's fix, but I thought the best was to keep both because Susan's fix actually fixes a problem.

Yeh, i tried to unravel all of this, but there was no good indication on the issue itself what the hell people wanted :-/.

I think it is better to close the connection on a misbehaving origin than caching a partial response.  For now it would be better to revert the changes, until there is a better fix.

The revert looks accurate.  I am confused as well as to why the original PR is no longer needed.  Touching base with folks before proceeding seems reasonable.

As far as I can talk, the c2df5ba has broken TS-3054 at all. It is the same as reverting TS-3054.
c2df5ba send EOS to ua_session  in HttpTunnel::finish_all_internal, that will signal ats the client has closed .  I'm not sure if there is a problem here.
For TS-3054, we should fix the problem with not only the chunk request. So it also need to revert TS-3054 I think.
I agree with @bryancall , we can revert this temporarily and make a better on instead.

With TS-3054, we still lost last data from origin server even there is not a chunked response.
IMO, TS-3054 only fixed the problem on chunked encoding, it is more important to dig out the root cause and solve it.


FYI: Firefox 80 / macOS / OS X / Source Code Pro font black on dark grey text, incorrect rendering.

This is not a bug or feature request, just a bit of knowledge to maybe help the next person who runs into the same problem as I did...
All of a sudden code snippets on the web had black on dark grey and they were all using highlight.js so I naturally assumed that highlight.js was to blame. It wasn't.
It turns out that if you're using Firefox 80 on OSX with the font Source Code Pro then you'll hit bug
https://bugzilla.mozilla.org/show_bug.cgi?id=1520157
and my original bug:
https://bugzilla.mozilla.org/show_bug.cgi?id=1665427
It turns out that highlight.js is really popular and this bug showed itself all over the place...
Anyhow, feel free to close this, hopefully the google machine will index it soon.

Thanks for the info!

Will auto-close this in 2021 since there is no action we can take... do they have any plans to fix?


Please print from where tmt is loading beakerlib libraries

It's very confusing, because tmt uses some magic github URL to checkout beakerlib library, e.g. the following in the fmf file:
require:
  - library(tuned/basic)

causes tmt to silently checkout repository from the https://github.com/beakerlib/tuned/tree/master/basic. I think it should log the URL it's checking out in the default log verbosity (I was able to get this information only be enabling verbose debug logging).

Should be easy to implement. What about including the library repo in the verbose output? Perhaps level 2? Or maybe even 3? I don't think it would be a good idea to show the information by default as there can be many libraries identified in the discovered tests.
The "magic github url" is documented in the require attribute.

How much libraries are usually used simultaneously? Up to five? Just guessing. In such case it's 5 more lines, e.g.:
Including tuned/basic (https://github.com/beakerlib/tuned/tree/master/basic)
...

Or whatever source/URL is used to get the library. It can be even more compressed output.
Taking into account tmt is currently extremely verbose, e.g.:
$ tmt try rhel-9@minute
/var/tmp/tmt/run-032
Let's try /Sanity/RFE-specific-tuning-according-to-proc-cpuinfo with /default/plan on rhel-9@minute.

/default/plan
    discover
        how: fmf
        order: 50
        directory: /home/yarda/git-rhel/tests/tuned
        hash: e9853a5
        summary: 1 test selected
            /Sanity/RFE-specific-tuning-according-to-proc-cpuinfo
    provision
        queued provision.provision task #1: default-0

        provision.provision task #1: default-0
        how: minute
        order: 50
        image: rhel-9
        flavor: m1.small
        auto-select-network: false
        skip-prereserve: false
        1mt-image: 1MT-RHEL-9.5.0-20240805.2
            cmd: whoami
            err: ssh: connect to host <IP_ADDRESS> port 22: Connection refused
            cmd: whoami
            err: ssh: connect to host <IP_ADDRESS> port 22: Connection refused
            cmd: whoami
            err: Warning: Permanently added '<IP_ADDRESS>' (ED25519) to the list of known hosts.
            out: root
        multihost name: default-0
        arch: x86_64
        distro: Red Hat Enterprise Linux 9.5 Beta (Plow)
        kernel: 5.14.0-490.el9.x86_64
        package manager: dnf
        selinux: yes
        is superuser: yes

        summary: 1 guest provisioned
    prepare
        queued push task #1: push to default-0

        push task #1: push to default-0

        queued prepare task #1: requires on default-0
        queued prepare task #2: recommends on default-0

        prepare task #1: requires on default-0
        how: install
        summary: Install required packages
        name: requires
        order: 70
        where: default-0
        package: 2 packages requested
            /usr/bin/flock
            beakerlib
            cmd: rpm -q --whatprovides /usr/bin/flock beakerlib || dnf install -y  /usr/bin/flock beakerlib
            err: Warning: Permanently added '<IP_ADDRESS>' (ED25519) to the list of known hosts.
            out: util-linux-core-2.37.4-18.el9.x86_64
            out: beakerlib-1.29.3-1.el9.noarch

        prepare task #2: recommends on default-0
        how: install
        summary: Install recommended packages
        name: recommends
        order: 75
        where: default-0
        package: 1 package requested
            tuned
            cmd: rpm -q --whatprovides tuned || dnf install -y --skip-broken tuned
            err: Warning: Permanently added '<IP_ADDRESS>' (ED25519) to the list of known hosts.
            out: no package provides tuned
            out: Beaker Client - RedHatEnterpriseLinux9           52 kB/s | 8.6 kB     00:00
            out: Beaker harness                                  1.2 MB/s |  65 kB     00:00
            out: Copr repo for beakerlib-libraries owned by bgon  43 kB/s | 2.7 kB     00:00
            out: Extra Packages for Enterprise Linux 9 openh264  2.1 kB/s | 2.5 kB     00:01
            out: Copr repo for qa-tools owned by lpol            3.6 MB/s | 167 kB     00:00
            out: rhel                                             48 MB/s | 2.1 MB     00:00
            out: rhel-AppStream                                   33 MB/s | 7.2 MB     00:00
            out: rhel-HighAvailability                            13 MB/s | 239 kB     00:00
            out: rhel-HighAvailability-debuginfo                 2.3 MB/s |  26 kB     00:00
            out: rhel-NFV                                         27 MB/s | 1.0 MB     00:00
            out: rhel-NFV-debuginfo                              4.2 MB/s | 182 kB     00:00
            out: rhel-RT                                          28 MB/s | 1.0 MB     00:00
            out: rhel-RT-debuginfo                                12 MB/s | 182 kB     00:00
            out: rhel-ResilientStorage                            15 MB/s | 244 kB     00:00
            out: rhel-ResilientStorage-debuginfo                 2.3 MB/s |  29 kB     00:00
            out: rhel-SAP                                        425 kB/s | 7.2 kB     00:00
            out: rhel-SAP-debuginfo                              945 kB/s |  10 kB     00:00
            out: rhel-SAPHANA                                    833 kB/s |  14 kB     00:00
            out: rhel-SAPHANA-debuginfo                          794 kB/s | 9.4 kB     00:00
            out: Dependencies resolved.
            out: ================================================================================
            out:  Package                                Arch   Version               Repo  Size
            out: ================================================================================
            out: Installing:
            out:  tuned                                  noarch 2.24.0-0.2.rc1.el9    rhel 441 k
            out: Installing dependencies:
            out:  dmidecode                              x86_64 1:3.5-3.el9           rhel 101 k
            out:  hdparm                                 x86_64 9.62-2.el9            rhel  99 k
            out:  libdnf-plugin-subscription-manager     x86_64 1.29.40-1.el9         rhel  64 k
            out:  libtraceevent                          x86_64 1.5.3-3.el9           rhel 255 k
            out:  polkit                                 x86_64 0.117-13.el9          rhel 160 k
            out:  polkit-libs                            x86_64 0.117-13.el9          rhel 8.3 M
            out:  python3-cloud-what                     x86_64 1.29.40-1.el9         rhel  81 k
            out:  python3-decorator                      noarch 4.4.2-6.el9           rhel  31 k
            out:  python3-iniparse                       noarch 0.4-45.el9            rhel  51 k
            out:  python3-inotify                        noarch 0.9.6-25.el9          rhel  56 k
            out:  python3-librepo                        x86_64 1.14.5-2.el9          rhel  50 k
            out:  python3-linux-procfs                   noarch 0.7.3-1.el9           rhel  35 k
            out:  python3-perf                           x86_64 5.14.0-490.el9        rhel 1.8 M
            out:  python3-pyudev                         noarch 0.22.0-6.el9          rhel  94 k
            out:  python3-subscription-manager-rhsm      x86_64 1.29.40-1.el9         rhel 166 k
            out:  subscription-manager-rhsm-certificates noarch 20220623-1.el9        rhel  22 k
            out:  usermode                               x86_64 1.114-4.el9           rhel 194 k
            out:  virt-what                              x86_64 1.25-5.el9            rhel  36 k
            out: Installing weak dependencies:
            out:  polkit-pkla-compat                     x86_64 0.1-21.el9            rhel  51 k
            out:  subscription-manager                   x86_64 1.29.40-1.el9         rhel 917 k
            out:
            out: Transaction Summary
            out: ================================================================================
            out: Install  21 Packages
            out:
            out: Total download size: 13 M
            out: Installed size: 37 M
            out: Downloading Packages:
            out: (1/21): hdparm-9.62-2.el9.x86_64.rpm            6.1 MB/s |  99 kB     00:00
            out: (2/21): libdnf-plugin-subscription-manager-1.29 3.2 MB/s |  64 kB     00:00
            out: (3/21): dmidecode-3.5-3.el9.x86_64.rpm          4.3 MB/s | 101 kB     00:00
            out: (4/21): libtraceevent-1.5.3-3.el9.x86_64.rpm     17 MB/s | 255 kB     00:00
            out: (5/21): polkit-0.117-13.el9.x86_64.rpm          9.8 MB/s | 160 kB     00:00
            out: (6/21): polkit-pkla-compat-0.1-21.el9.x86_64.rp 7.4 MB/s |  51 kB     00:00
            out: (7/21): python3-decorator-4.4.2-6.el9.noarch.rp 5.2 MB/s |  31 kB     00:00
            out: (8/21): python3-cloud-what-1.29.40-1.el9.x86_64 6.5 MB/s |  81 kB     00:00
            out: (9/21): python3-iniparse-0.4-45.el9.noarch.rpm  4.3 MB/s |  51 kB     00:00
            out: (10/21): python3-inotify-0.9.6-25.el9.noarch.rp 4.9 MB/s |  56 kB     00:00
            out: (11/21): polkit-libs-0.117-13.el9.x86_64.rpm     90 MB/s | 8.3 MB     00:00
            out: (12/21): python3-linux-procfs-0.7.3-1.el9.noarc 149 kB/s |  35 kB     00:00
            out: (13/21): python3-librepo-1.14.5-2.el9.x86_64.rp 206 kB/s |  50 kB     00:00
            out: (14/21): python3-pyudev-0.22.0-6.el9.noarch.rpm 8.1 MB/s |  94 kB     00:00
            out: (15/21): python3-subscription-manager-rhsm-1.29  12 MB/s | 166 kB     00:00
            out: (16/21): subscription-manager-rhsm-certificates 4.0 MB/s |  22 kB     00:00
            out: (17/21): python3-perf-5.14.0-490.el9.x86_64.rpm 8.4 MB/s | 1.8 MB     00:00
            out: (18/21): subscription-manager-1.29.40-1.el9.x86  23 MB/s | 917 kB     00:00
            out: (19/21): tuned-2.24.0-0.2.rc1.el9.noarch.rpm     12 MB/s | 441 kB     00:00
            out: (20/21): virt-what-1.25-5.el9.x86_64.rpm        3.2 MB/s |  36 kB     00:00
            out: (21/21): usermode-1.114-4.el9.x86_64.rpm        6.7 MB/s | 194 kB     00:00
            out: --------------------------------------------------------------------------------
            out: Total                                            35 MB/s |  13 MB     00:00
            out: Running transaction check
            out: Transaction check succeeded.
            out: Running transaction test
            out: Transaction test succeeded.
            out: Running transaction
            out:   Preparing        :                                                        1/1
            out:   Installing       : dmidecode-1:3.5-3.el9.x86_64                          1/21
            out:   Installing       : python3-cloud-what-1.29.40-1.el9.x86_64               2/21
            out:   Installing       : virt-what-1.25-5.el9.x86_64                           3/21
            out:   Installing       : subscription-manager-rhsm-certificates-20220623-1.    4/21
            out:   Installing       : python3-iniparse-0.4-45.el9.noarch                    5/21
            out:   Installing       : polkit-libs-0.117-13.el9.x86_64                       6/21
            out:   Running scriptlet: polkit-0.117-13.el9.x86_64                            7/21
            out:   Installing       : polkit-0.117-13.el9.x86_64                            7/21
            out:   Running scriptlet: polkit-0.117-13.el9.x86_64                            7/21
            out:   Installing       : polkit-pkla-compat-0.1-21.el9.x86_64                  8/21
            out:   Installing       : python3-subscription-manager-rhsm-1.29.40-1.el9.x8    9/21
            out:   Installing       : usermode-1.114-4.el9.x86_64                          10/21
            out:   Installing       : python3-pyudev-0.22.0-6.el9.noarch                   11/21
            out:   Installing       : python3-linux-procfs-0.7.3-1.el9.noarch              12/21
            out:   Installing       : python3-librepo-1.14.5-2.el9.x86_64                  13/21
            out:   Installing       : python3-inotify-0.9.6-25.el9.noarch                  14/21
            out:   Installing       : python3-decorator-4.4.2-6.el9.noarch                 15/21
            out:   Installing       : libtraceevent-1.5.3-3.el9.x86_64                     16/21
            out:   Installing       : python3-perf-5.14.0-490.el9.x86_64                   17/21
            out:   Installing       : libdnf-plugin-subscription-manager-1.29.40-1.el9.x   18/21
            out:   Running scriptlet: subscription-manager-1.29.40-1.el9.x86_64            19/21
            out:   Installing       : subscription-manager-1.29.40-1.el9.x86_64            19/21
            out:   Running scriptlet: subscription-manager-1.29.40-1.el9.x86_64            19/21
            out: Created symlink /etc/systemd/system/multi-user.target.wants/rhsmcertd.service → /usr/lib/systemd/system/rhsmcertd.service.
            out:
            out:   Installing       : hdparm-9.62-2.el9.x86_64                             20/21
            out:   Installing       : tuned-2.24.0-0.2.rc1.el9.noarch                      21/21
            out:   Running scriptlet: tuned-2.24.0-0.2.rc1.el9.noarch                      21/21
            out: Created symlink /etc/systemd/system/multi-user.target.wants/tuned.service → /usr/lib/systemd/system/tuned.service.
            out:
            out:   Running scriptlet: subscription-manager-1.29.40-1.el9.x86_64            21/21
            out:   Running scriptlet: tuned-2.24.0-0.2.rc1.el9.noarch                      21/21
            out:   Verifying        : dmidecode-1:3.5-3.el9.x86_64                          1/21
            out:   Verifying        : hdparm-9.62-2.el9.x86_64                              2/21
            out:   Verifying        : libdnf-plugin-subscription-manager-1.29.40-1.el9.x    3/21
            out:   Verifying        : libtraceevent-1.5.3-3.el9.x86_64                      4/21
            out:   Verifying        : polkit-0.117-13.el9.x86_64                            5/21
            out:   Verifying        : polkit-libs-0.117-13.el9.x86_64                       6/21
            out:   Verifying        : polkit-pkla-compat-0.1-21.el9.x86_64                  7/21
            out:   Verifying        : python3-cloud-what-1.29.40-1.el9.x86_64               8/21
            out:   Verifying        : python3-decorator-4.4.2-6.el9.noarch                  9/21
            out:   Verifying        : python3-iniparse-0.4-45.el9.noarch                   10/21
            out:   Verifying        : python3-inotify-0.9.6-25.el9.noarch                  11/21
            out:   Verifying        : python3-librepo-1.14.5-2.el9.x86_64                  12/21
            out:   Verifying        : python3-linux-procfs-0.7.3-1.el9.noarch              13/21
            out:   Verifying        : python3-perf-5.14.0-490.el9.x86_64                   14/21
            out:   Verifying        : python3-pyudev-0.22.0-6.el9.noarch                   15/21
            out:   Verifying        : python3-subscription-manager-rhsm-1.29.40-1.el9.x8   16/21
            out:   Verifying        : subscription-manager-1.29.40-1.el9.x86_64            17/21
            out:   Verifying        : subscription-manager-rhsm-certificates-20220623-1.   18/21
            out:   Verifying        : tuned-2.24.0-0.2.rc1.el9.noarch                      19/21
            out:   Verifying        : usermode-1.114-4.el9.x86_64                          20/21
            out:   Verifying        : virt-what-1.25-5.el9.x86_64                          21/21
            out:
            out: Installed:
            out:   dmidecode-1:3.5-3.el9.x86_64
            out:   hdparm-9.62-2.el9.x86_64
            out:   libdnf-plugin-subscription-manager-1.29.40-1.el9.x86_64
            out:   libtraceevent-1.5.3-3.el9.x86_64
            out:   polkit-0.117-13.el9.x86_64
            out:   polkit-libs-0.117-13.el9.x86_64
            out:   polkit-pkla-compat-0.1-21.el9.x86_64
            out:   python3-cloud-what-1.29.40-1.el9.x86_64
            out:   python3-decorator-4.4.2-6.el9.noarch
            out:   python3-iniparse-0.4-45.el9.noarch
            out:   python3-inotify-0.9.6-25.el9.noarch
            out:   python3-librepo-1.14.5-2.el9.x86_64
            out:   python3-linux-procfs-0.7.3-1.el9.noarch
            out:   python3-perf-5.14.0-490.el9.x86_64
            out:   python3-pyudev-0.22.0-6.el9.noarch
            out:   python3-subscription-manager-rhsm-1.29.40-1.el9.x86_64
            out:   subscription-manager-1.29.40-1.el9.x86_64
            out:   subscription-manager-rhsm-certificates-20220623-1.el9.noarch
            out:   tuned-2.24.0-0.2.rc1.el9.noarch
            out:   usermode-1.114-4.el9.x86_64
            out:   virt-what-1.25-5.el9.x86_64
            out:
            out: Complete!

        queued pull task #1: pull from default-0

        pull task #1: pull from default-0

        summary: 2 preparations applied
    execute
        queued execute task #1: default-0 on default-0

        execute task #1: default-0 on default-0
        how: tmt
        order: 50
        exit-first: false
            test: Test for BZ#1748965 (RFE specific tuning according to /proc/cpuinfo)
        warn: Ignoring requested duration, not supported in interactive mode.
                cmd: ./runtest.sh
Warning: Permanently added '<IP_ADDRESS>' (ED25519) to the list of known hosts.

There is a lot of useless information, but unfortunately nothing about included libraries, I don't think five more lines would make it worse.
For me it's no more show stopper, because I already know from where it checkouts the libraries, but for newcomers it can be really confusing.

Hello, how about something like #3208? Would that be sufficient to address this issue?


No such file or directory: 'dvisvgm'

Hello, I just installed this package and I tried to complie my README.md.
After I command python -m readme2tex --output result.md README.md, I got this error message but I don't know how to handle it
'$cost=\sum { { (y-\bar { y } ) }^{ 2 } } +\lambda \sum { { \left| W \right|  }^{ 2 } }$' has warnings during compilation. See /var/folders/zb/9sv0pm4x7v1c9ng44rpbqs7r0000gn/T/readme2tex-k3308sx3/6cfc9fee460f304e0df2af7fcf3336f8
Traceback (most recent call last):
  File "/Users/bmy4415/.pyenv/versions/3.5.4/lib/python3.5/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/Users/bmy4415/.pyenv/versions/3.5.4/lib/python3.5/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/Users/bmy4415/.pyenv/versions/3.5.4/lib/python3.5/site-packages/readme2tex/__main__.py", line 160, in <module>
    args.bustcache)
  File "/Users/bmy4415/.pyenv/versions/3.5.4/lib/python3.5/site-packages/readme2tex/render.py", line 167, in render
    svg, dvi, name = rendertex(engine, equation, packages, temp_dir, block)
  File "/Users/bmy4415/.pyenv/versions/3.5.4/lib/python3.5/site-packages/readme2tex/render.py", line 44, in rendertex
    ['dvisvgm', '-v0', '-a', '-n', '-s', dvi])
  File "/Users/bmy4415/.pyenv/versions/3.5.4/lib/python3.5/subprocess.py", line 316, in check_output
    **kwargs).stdout
  File "/Users/bmy4415/.pyenv/versions/3.5.4/lib/python3.5/subprocess.py", line 383, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/Users/bmy4415/.pyenv/versions/3.5.4/lib/python3.5/subprocess.py", line 676, in __init__
    restore_signals, start_new_session)
  File "/Users/bmy4415/.pyenv/versions/3.5.4/lib/python3.5/subprocess.py", line 1289, in _execute_child
    raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'dvisvgm'

I think there are some faults in my LATEX code but not sure.
Can anybody help me?

You need to install dvisvgm onto your system (it does not come pre-installed with this package).


ENHx: Change order for deserialize

Enhancements might refer to other objects of the repo so create them after the other objects.
Example: Repo includes enhancement for an exception class. Therefore, the exception class has to be deserialized before the enhancement.

👍


investigate possibility to start browsermob proxy for mobile before app startup

we can't start proxy until we receive device from STF/HUB. But as result app usually can't be started successfully and need to be restarted using adb stop/launch activity. Such use-case is pretty complicated.
We should determine automatic solution for getting device from hub even before starting driver. It seems like that's the only way to get capabilities with proxy_port preliminary.
Moreover such feature should help in resolution for:
https://github.com/qaprosoft/carina/issues/445
https://github.com/qaprosoft/carina/issues/436
https://github.com/qaprosoft/carina/issues/382

we started investigation howto improve carina-grid (QPS-HUB) to make integration between carina and devices smarter: https://github.com/qaprosoft/carina/issues/184.
As only #184 is finished we can start with current one

closing as won't fix because browermob and browserup deprecated and will be removed completely from carina. Scalable mitm proxy should be added on Zebrunner Selenium Grid side (https://zebrunner.com/selenium-grid) and maybe device farm (https://zebrunner.com/mcloud)


Contract call finishes with error

Error description:
Code: (-32000) Custom error, Message: gas required exceeds allowance or always failing transaction, Data: null

Executed code example:
     network: VerifiedNetwork(origin: InfuraNetwork(chain: "mainnet", apiKey: "metamask")),
     senderKey: senderKey,
     contractAddress: contractAddress,
     weiAmount: weiAmount,
     functionCall: EncodedABIFunction(
       signature: SimpleString(
         string: "fillOrder(address[5],uint256[6],uint256,bool,uint8,bytes32,bytes32)"
       ),
       parameters: [
        // some parameters
       ]
     )
   )
   return try SendRawTransactionProcedure(
     network: VerifiedNetwork(origin: InfuraNetwork(chain: "mainnet", apiKey: "metamask")),
     transactionBytes: contractBytes
   ).call()```

@biboran/z please, pay attention to this issue

@kondranton can you give an example of parameters you are supplying?
Is there any chance you are using ABITuple for address[5] and uint256[6]? There is a technical constraint right now that makes it impossible to perfectly replicate some fixed length collection semantics. If that's the case can you please try applying parameters as if they were flatmapped (like address[5] would be address,address,address,address,address) but don't change the signature.

@biboran I tried to call without ABITuple usage, but the same error occurs.
ABI types that I use in my call are:

ABIFixedBytes
ABIBoolean
ABIUnsignedNumber
ABIAddress

Maybe that will help.

@kondranton I found a bug in QuantityParameter that was causing this error. It's encoding value of 0 as a string "0x" when it should be "0x0".

The job is not in WBS, won't close the order


LightOpenGlView does not rotate with the change in screen orientation

While using the LightOpenGlView  the image captured by the camera  does not rotate with the change in orientation of the screen. Instead it stretches to match the new width and height of the layout.
To fix that i have replaced the call to  processMatrix and calculateViewPort in drawFrame(int width, int height, boolean keepAspectRatio, int mode, int rotation,       boolean isPreview, boolean flipStreamVertical, boolean flipStreamHorizontal) of SimpleCameraRender with
GLES20.glViewport(0, 0, width, height);
I wonder if this change compromises something else in the behavior of the  LightOpenGlView  class.

Hello,
I'm not sure what do you mean with "no rotate with the change in orientation of the screen". My library is designed to work without rotate screen orientation. The idea is to block orientation after call startStream/startRecord like a normal camera app.
Your change affect to record video, stream and preview size so if you check all and it is working as required you can use it without problems.

Hi Pedro,
Thank  you for the prompt reply. Your library is awesome. In the past I used the OpenGlView class and it was working great rotating the view while streaming when the phone orientation was changing. However I ended up needing a quick restart of the containing activity and  from time to time the OpenGlView was crashing my activity by throwing the following exceptions as I was restarting or shooting down :
E/libEGL: Could not restore original EGL context  eglMakeCurrent:891 error 3009 (EGL_BAD_MATCH)
E/SurfaceManager: eglMakeCurrent failed
E/GLConsumer: [SurfaceTexture-1-21878-409] checkAndUpdateEglState: invalid current EGLContext
I/SurfaceManager: GL released
I/Adreno: DequeueBuffer: dequeueBuffer failed
E/SurfaceManager: GL already released
E/libEGL: eglDestroySurface:663 error 300d (EGL_BAD_SURFACE)
I/SurfaceManager: GL released
E/SurfaceManager: GL already released
E/AndroidRuntime: FATAL EXCEPTION: glThread
Process: ...: 21878
java.lang.RuntimeException: drawFilter end. GL error: 1281
at ....GlUtil.checkGlError(GlUtil.java:127)
at ....gl.render.filters.BaseFilterRender.draw(BaseFilterRender.java:55)
at ....gl.render.ManagerRender.drawOffScreen(ManagerRender.java:62)
at ....gl.OpenGlView.run(OpenGlView.java:136)
at java.lang.Thread.run(Thread.java:764)
E/libEGL: eglTerminate:329 error 3008 (EGL_BAD_DISPLAY)
I tried releasing all the resources before shutdown by calling the following in Camera2Base :
stopRecord();
stopStream();
stopPreview();
No luck so I decided to replace the OpenGlView  with the LightOpenGlView  version. And that got rid of the  EGL_BAD_DISPLAY error above at shutdown however unlike while using OpenGlView   when relying on LightOpenGlView  the rotations were disabled at streaming as you explained above and my camera started with a 90 deg initial rotation.  I have not checked the video recording but the preview and streaming part seems to work so far with the change above. Thank you for the clarification.


Is the android/ios platform available?

Hi，Is the android/ios platform available?

I'm guessing that porting into android would be trivial. If you look into the c file you'll see that the author is using /dev/urandom for the seed. Which is available on android. Not really sure about iOS though.
The implementation is very small though so you could easily hack your way around.


Add ChannelHandlerContext.invoker() to 4.1

The now-defunct 5.0 had a ChannelHandlerContext.invoker() method. I found it to be useful, and the method is already implemented; it just needs to be exposed on the interface. It's my understanding of Netty API stability policy that new methods can be added to interfaces between minor versions (thus, 4.1, since it isn't final yet). If 4.1 is too close to release to add the API, I understand.
I will grant that needing to use the invoker is rare and quite advanced, but in some ways it isn't that strange. When writing Http2MultiplexCodec I used the invoker because: 1) I needed to call a particular handler 2) from possibly a different thread 3) while ideally not having to deal with exceptions. Parts 2 and 3 are well-served by ChannelHandlerContext, but 1 isn't because it will call the next or previous handler and using the previous or next context (respectively) to compensate is unstable as the pipeline is modified.
It is possible to write your own invoker on top of ctx.executor(), but that seems like needless boilerplate and cause for trouble if someone has actually specified their own ChannelHandlerInvoker for the channel.
Some additional context: https://github.com/netty/netty/pull/4503#discussion_r45705972

@normanmaurer @trustin - Any objections?

@ejona86 works for me. Please open a pr


Independent query operators

Superceded by #307 (@opsb please reopen if some aspects here are worth reviewing)


Fix Variant conversion to float instead of double

real_t is defined as a float (or a double depending on a flag it seems?) in core/math/math_defs.h and Variant::construct was thus casting to a float.
Instead of using a double, maybe it is better to fix whatever is causing the flag not to be set?
https://github.com/godotengine/godot/blob/2a4f0bc4d9e81d31777253853850780077672156/core/math/math_defs.h#L109-L113
Closes #44303

Thanks!


After adding a speedometer, the arrow independently adds values. How to stop this so that there is a stable zero?

I found it. app:sv_withTremble="false"


[firebase_storage] Extract platform interface

Is your feature request related to a problem? Please describe.
We'd sure love to be able to use firebase_storage with Flutter Web (see #1972, flutter/flutter#45294). The first step in supporting the web platform is to migrate the plugin to use the platform interface pattern.
Describe the solution you'd like
Modeling the plugin architecture on cloud_firestore or cloud_functions or firebase_auth, define the platform interface and rewrite the current plugin so that it is using the platform interface. This will open the door to additional platform implementations.

Took an initial spin at the platform interface.
Largely based on cloud_firestore.
Needs:

Tests
Move appropriate types to platform_interfaces
Recover method handler - right now commented out.

Any feedback or help would be great.

We'll be doing this as part of #2582 when we get to it.

We'll be doing this as part of #2582 when we get to it.

Okay. Should I stop the work on it for now then ?

We'll be doing this as part of #2582 when we get to it.

Okay. Should I stop the work on it for now then ?
I just need upload functionality of firebase_storage

Yes please, we're nearing completion so don't want to duplicate effort.

Official support for Web (along with a platform interface) has now been shipped. Thanks everyone.


Css question

How to import only one single CSS without having webpack changing my class names adding sort of a hash at the end of each of them?

Hi,
You can prefix any global CSS classes with :global and it will skip the renaming.
:global {
  .global-class-name {
    color: green;
  }
}


Add support for cargo-machete

The CI failure appears to be unrelated to this change.

Published in 2.16.0.


I found an alternative, see https://github.com/georgewfraser/java-language-server/issues/197
Published!

 It aims at repackaging your fatJar into a jpms module and let jlink process it. Aya is built entirely with jpms, so if we have all upstream deps jpms-ed, we can get rid of this plugin entirely.

The plugin does not work with Java 19.

There are new maintainers now, works with latest Java

Gradle -- it is fine at the moment because we still want it to offer us the ability to publish to maven central, but Gradle is also designed for maven style projects. Ughh.
(Solved) ANTLR4-runtime -- doesn't support jpms is the only problem (yet). Seems not very hard to repackage with jpms support.

We've decided #466

(Solved) Commonmark -- doesn't support jpms, written in Java 8 with a return-void visitor (https://github.com/commonmark/commonmark-java/issues/125). I think we can take some code from it, repackage, and add jpms support.

There is an outdated attempt to add jpms: https://github.com/xzel23/commonmark-java/tree/0.14.0-jigsaw
Already repackaged and redistrubuted, see https://github.com/aya-prover/commonmark-java outdated
The official distribution how supports jpms

GSON -- it's a PROJECT FROM GOOGLE so it's gonna be a disaster to depend on it. However, it supports jpms, so I think it's fine to use it (well but people are complaining https://github.com/google/gson/issues/1315#issuecomment-733899200).
(Removed) JImGui -- it doesn't yet have jpms support, but I can add it in a minute since it's my project, so it's a small problem.

Also, I propose removing the tgbot subproject since it's useless.

runtimeClasspath - Runtime classpath of source set 'main'.
+--- org.eclipse.lsp4j:org.eclipse.lsp4j:0.15.0
|    +--- org.eclipse.lsp4j:org.eclipse.lsp4j.generator:0.15.0
|    |    +--- org.eclipse.lsp4j:org.eclipse.lsp4j.jsonrpc:0.15.0
|    |    |    \--- com.google.code.gson:gson:[2.9.0,2.10) -> 2.9.1
|    |    \--- org.eclipse.xtend:org.eclipse.xtend.lib:2.24.0
|    |         +--- org.eclipse.xtext:org.eclipse.xtext.xbase.lib:2.24.0
|    |         |    \--- com.google.guava:guava:27.1-jre
|    |         |         +--- com.google.guava:failureaccess:1.0.1
|    |         |         +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
|    |         |         +--- com.google.code.findbugs:jsr305:3.0.2
|    |         |         +--- org.checkerframework:checker-qual:2.5.2
|    |         |         +--- com.google.errorprone:error_prone_annotations:2.2.0
|    |         |         +--- com.google.j2objc:j2objc-annotations:1.1
|    |         |         \--- org.codehaus.mojo:animal-sniffer-annotations:1.17
|    |         \--- org.eclipse.xtend:org.eclipse.xtend.lib.macro:2.24.0
|    |              \--- org.eclipse.xtext:org.eclipse.xtext.xbase.lib:2.24.0 (*)
|    \--- org.eclipse.lsp4j:org.eclipse.lsp4j.jsonrpc:0.15.0 (*)
+--- org.eclipse.lsp4j:org.eclipse.lsp4j.jsonrpc:0.15.0 (*)
\--- project :cli
     +--- project :base
     |    +--- project :tools
     |    |    +--- org.jetbrains:annotations:23.0.0
     |    |    +--- org.glavo.kala:kala-common:0.50.0
     |    |    |    +--- org.glavo.kala:kala-base:0.50.0
     |    |    |    +--- org.glavo.kala:kala-collection:0.50.0
     |    |    |    |    \--- org.glavo.kala:kala-base:0.50.0
     |    |    |    \--- org.glavo.kala:kala-collection-primitive:0.50.0
     |    |    |         +--- org.glavo.kala:kala-base:0.50.0
     |    |    |         \--- org.glavo.kala:kala-collection:0.50.0 (*)
     |    |    \--- project :pretty
     |    |         +--- org.jetbrains:annotations:23.0.0
     |    |         \--- org.glavo.kala:kala-common:0.50.0 (*)
     |    +--- project :pretty (*)
     |    +--- org.aya-prover.guest0x0:cubical:0.17.1
     |    |    \--- org.aya-prover:pretty:0.20 -> project :pretty (*)
     |    \--- org.aya-prover:commonmark:0.19.1
     +--- project :parser
     |    \--- org.antlr:antlr4-runtime:4.10.1
     +--- project :tools-repl
     |    +--- project :pretty (*)
     |    +--- project :tools (*)
     |    +--- org.jline:jline-reader:3.21.0
     |    |    \--- org.jline:jline-terminal:3.21.0
     |    +--- org.jline:jline-terminal:3.21.0
     |    \--- org.antlr:antlr4-runtime:4.10.1
     +--- com.google.code.gson:gson:2.9.1
     +--- info.picocli:picocli:4.6.3
     +--- org.jline:jline-terminal-jansi:3.21.0
     |    +--- org.fusesource.jansi:jansi:2.4.0
     |    \--- org.jline:jline-terminal:3.21.0
     \--- org.jline:jline-builtins:3.21.0
          +--- org.jline:jline-reader:3.21.0 (*)
          \--- org.jline:jline-style:3.21.0
               \--- org.jline:jline-terminal:3.21.0

Removing our own libraries:
runtimeClasspath - Runtime classpath of source set 'main'.
+--- org.eclipse.lsp4j:org.eclipse.lsp4j:0.15.0
|    +--- org.eclipse.lsp4j:org.eclipse.lsp4j.generator:0.15.0
|    |    +--- org.eclipse.lsp4j:org.eclipse.lsp4j.jsonrpc:0.15.0
|    |    |    \--- com.google.code.gson:gson:[2.9.0,2.10) -> 2.9.1
|    |    \--- org.eclipse.xtend:org.eclipse.xtend.lib:2.24.0
|    |         +--- org.eclipse.xtext:org.eclipse.xtext.xbase.lib:2.24.0
|    |         |    \--- com.google.guava:guava:27.1-jre
|    |         |         +--- com.google.guava:failureaccess:1.0.1
|    |         |         +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
|    |         |         +--- com.google.code.findbugs:jsr305:3.0.2
|    |         |         +--- org.checkerframework:checker-qual:2.5.2
|    |         |         +--- com.google.errorprone:error_prone_annotations:2.2.0
|    |         |         +--- com.google.j2objc:j2objc-annotations:1.1
|    |         |         \--- org.codehaus.mojo:animal-sniffer-annotations:1.17
|    |         \--- org.eclipse.xtend:org.eclipse.xtend.lib.macro:2.24.0
|    |              \--- org.eclipse.xtext:org.eclipse.xtext.xbase.lib:2.24.0 (*)
|    \--- org.eclipse.lsp4j:org.eclipse.lsp4j.jsonrpc:0.15.0 (*)
+--- org.eclipse.lsp4j:org.eclipse.lsp4j.jsonrpc:0.15.0 (*)
\--- project :cli
     +--- project :base
     |    +--- project :tools
     |    |    +--- org.jetbrains:annotations:23.0.0
     |    |    \--- project :pretty
     |    |         +--- org.jetbrains:annotations:23.0.0
     +--- project :parser
     |    \--- org.antlr:antlr4-runtime:4.10.1
     +--- project :tools-repl
     |    +--- org.jline:jline-reader:3.21.0
     |    |    \--- org.jline:jline-terminal:3.21.0
     |    +--- org.jline:jline-terminal:3.21.0
     |    \--- org.antlr:antlr4-runtime:4.10.1
     +--- com.google.code.gson:gson:2.9.1
     +--- info.picocli:picocli:4.6.3
     +--- org.jline:jline-terminal-jansi:3.21.0
     |    +--- org.fusesource.jansi:jansi:2.4.0
     |    \--- org.jline:jline-terminal:3.21.0
     \--- org.jline:jline-builtins:3.21.0
          +--- org.jline:jline-reader:3.21.0 (*)
          \--- org.jline:jline-style:3.21.0
               \--- org.jline:jline-terminal:3.21.0

Latest
+--- project :ide
|    \--- project :cli-impl
|         +--- project :base
|         |    +--- project :syntax
|         |    |    +--- project :tools-kala
|         |    |    |    +--- org.glavo.kala:kala-common:0.74.0
|         |    |    |    |    +--- org.glavo.kala:kala-base:0.74.0
|         |    |    |    |    |    \--- org.jetbrains:annotations:24.1.0 -> 26.0.1
|         |    |    |    |    +--- org.glavo.kala:kala-collection:0.74.0
|         |    |    |    |    |    +--- org.glavo.kala:kala-base:0.74.0 (*)
|         |    |    |    |    |    \--- org.jetbrains:annotations:24.1.0 -> 26.0.1
|         |    |    |    |    +--- org.glavo.kala:kala-collection-primitive:0.74.0
|         |    |    |    |    |    +--- org.glavo.kala:kala-base:0.74.0 (*)
|         |    |    |    |    |    +--- org.glavo.kala:kala-collection:0.74.0 (*)
|         |    |    |    |    |    \--- org.jetbrains:annotations:24.1.0 -> 26.0.1
|         |    |    |    |    \--- org.jetbrains:annotations:24.1.0 -> 26.0.1
|         |    |    |    \--- project :tools
|         |    |    |         +--- org.jetbrains:annotations:26.0.1
|         |    |    |         +--- org.glavo.kala:kala-collection:0.74.0 (*)
|         |    |    |         +--- project :pretty
|         |    |    |         |    +--- org.jetbrains:annotations:26.0.1
|         |    |    |         |    \--- org.glavo.kala:kala-collection:0.74.0 (*)
|         |    |    |         \--- org.aya-prover.upstream:ij-util-text:0.0.28
|         |    |    |              +--- org.jetbrains:annotations:26.0.1
|         |    |    |              +--- org.glavo.kala:kala-collection:0.74.0 (*)
|         |    |    |              \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21
|         |    |    |                   \--- org.jetbrains:annotations:13.0 -> 26.0.1
|         |    |    +--- project :tools-md
|         |    |    |    +--- project :tools-kala (*)
|         |    |    |    +--- org.jetbrains:annotations:26.0.1
|         |    |    |    \--- org.commonmark:commonmark:0.24.0
|         |    |    +--- project :pretty (*)
|         |    |    \--- org.aya-prover.upstream:ij-parsing-core:0.0.28
|         |    |         +--- org.glavo.kala:kala-common:0.74.0 (*)
|         |    |         +--- org.aya-prover.upstream:ij-util-text:0.0.28 (*)
|         |    |         +--- org.aya-prover.upstream:lang-syntax:0.0.28
|         |    |         |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21 (*)
|         |    |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21 (*)
|         |    \--- project :tools-md (*)
|         +--- project :parser
|         |    +--- org.jetbrains:annotations:26.0.1
|         |    +--- org.aya-prover.upstream:ij-parsing-core:0.0.28 (*)
|         |    \--- org.aya-prover.upstream:ij-parsing-wrapper:0.0.28
|         |         \--- org.aya-prover.upstream:ij-parsing-core:0.0.28 (*)
|         +--- com.google.code.gson:gson:2.11.0
|         |    \--- com.google.errorprone:error_prone_annotations:2.27.0
|         +--- project :producer
|         |    +--- project :syntax (*)
|         |    \--- project :parser (*)
|         +--- project :jit-compiler
|         |    \--- project :base (*)
|         \--- org.commonmark:commonmark:0.24.0
+--- org.aya-prover.upstream:javacs-protocol:0.0.28
|    +--- org.jetbrains:annotations:26.0.1
|    +--- org.glavo.kala:kala-common:0.74.0 (*)
|    \--- com.google.code.gson:gson:2.11.0 (*)
+--- project :cli-console
|    +--- project :tools-repl
|    |    +--- project :tools (*)
|    |    +--- org.jline:jline-reader:3.27.1
|    |    |    \--- org.jline:jline-terminal:3.27.1
|    |    |         \--- org.jline:jline-native:3.27.1
|    |    \--- org.jline:jline-terminal:3.27.1 (*)
|    +--- project :cli-impl (*)
|    +--- project :producer (*)
|    +--- info.picocli:picocli:4.7.6
|    +--- org.jline:jline-terminal-jni:3.27.1
|    |    +--- org.jline:jline-native:3.27.1
|    |    \--- org.jline:jline-terminal:3.27.1 (*)
|    \--- org.jline:jline-builtins:3.27.1
|         +--- org.jline:jline-reader:3.27.1 (*)
|         \--- org.jline:jline-style:3.27.1
|              \--- org.jline:jline-terminal:3.27.1 (*)
\--- info.picocli:picocli:4.7.6

It may look like more dependencies, but most of them are actually very small libraries maintained by us. So it should be an improvement.


./run_tests.py "Could not find firefox in your system PATH."

vagrant@jessie-amd64:/vagrant/tor-browser-crawler/tor-browser-selenium$ ./run_tests.py /vagrant/tor-browser_en-US
......s...s.sssssEE.......EEEEEEEEEE
ERROR: test_screen_capture (test_tbdriver.ScreenshotTest)
Make sure we can capture the screen.
Traceback (most recent call last):
File "/vagrant/tor-browser-selenium/tbselenium/test/test_tbdriver.py", line 153, in test_screen_capture
canvas_exceptions=[cm.CHECK_TPO_URL]) as driver:
File "tbselenium/tbdriver.py", line 56, in init
timeout=60)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 67, in init
firefox_options.binary_location = self.binary if isinstance(self.binary, basestring) else self.binary._get_firefox_start_cmd()
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 163, in _get_firefox_start_cmd
" Please specify the firefox binary location or install firefox")
RuntimeError: Could not find firefox in your system PATH. Please specify the firefox binary location or install firefox
======================================================================
ERROR: test_should_fail_with_wrong_sys_socks_port (test_tbdriver.TBDriverFailTest)
Traceback (most recent call last):
File "/vagrant/tor-browser-selenium/tbselenium/test/test_tbdriver.py", line 121, in test_should_fail_with_wrong_sys_socks_port
tor_cfg=cm.USE_SYSTEM_TOR) as driver:
File "tbselenium/tbdriver.py", line 56, in init
timeout=60)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 67, in init
firefox_options.binary_location = self.binary if isinstance(self.binary, basestring) else self.binary._get_firefox_start_cmd()
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 163, in _get_firefox_start_cmd
" Please specify the firefox binary location or install firefox")
RuntimeError: Could not find firefox in your system PATH. Please specify the firefox binary location or install firefox
======================================================================
ERROR: test_font_bundling (test_tbdriver.TBDriverOptionalArgs)
Traceback (most recent call last):
File "/vagrant/tor-browser-selenium/tbselenium/test/test_tbdriver.py", line 223, in test_font_bundling
with TorBrowserDriver(TBB_PATH, tbb_logfile_path=log_file) as driver:
File "tbselenium/tbdriver.py", line 56, in init
timeout=60)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 67, in init
firefox_options.binary_location = self.binary if isinstance(self.binary, basestring) else self.binary._get_firefox_start_cmd()
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 163, in _get_firefox_start_cmd
" Please specify the firefox binary location or install firefox")
RuntimeError: Could not find firefox in your system PATH. Please specify the firefox binary location or install firefox
======================================================================
ERROR: test_security_slider_settings_hi (test_tbdriver.TBDriverOptionalArgs)
Traceback (most recent call last):
File "/vagrant/tor-browser-selenium/tbselenium/test/test_tbdriver.py", line 169, in test_security_slider_settings_hi
with TorBrowserDriver(TBB_PATH, pref_dict=slider_pref) as driver:
File "tbselenium/tbdriver.py", line 56, in init
timeout=60)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 67, in init
firefox_options.binary_location = self.binary if isinstance(self.binary, basestring) else self.binary._get_firefox_start_cmd()
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 163, in _get_firefox_start_cmd
" Please specify the firefox binary location or install firefox")
RuntimeError: Could not find firefox in your system PATH. Please specify the firefox binary location or install firefox
======================================================================
ERROR: test_security_slider_settings_low_mid (test_tbdriver.TBDriverOptionalArgs)
Traceback (most recent call last):
File "/vagrant/tor-browser-selenium/tbselenium/test/test_tbdriver.py", line 182, in test_security_slider_settings_low_mid
pref_dict=slider_pref) as driver:
File "tbselenium/tbdriver.py", line 56, in init
timeout=60)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 67, in init
firefox_options.binary_location = self.binary if isinstance(self.binary, basestring) else self.binary._get_firefox_start_cmd()
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 163, in _get_firefox_start_cmd
" Please specify the firefox binary location or install firefox")
RuntimeError: Could not find firefox in your system PATH. Please specify the firefox binary location or install firefox
======================================================================
ERROR: test_tbb_logfile (test_tbdriver.TBDriverOptionalArgs)
Make sure log file is populated.
Traceback (most recent call last):
File "/vagrant/tor-browser-selenium/tbselenium/test/test_tbdriver.py", line 199, in test_tbb_logfile
with TorBrowserDriver(TBB_PATH, tbb_logfile_path=log_file) as driver:
File "tbselenium/tbdriver.py", line 56, in init
timeout=60)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 67, in init
firefox_options.binary_location = self.binary if isinstance(self.binary, basestring) else self.binary._get_firefox_start_cmd()
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 163, in _get_firefox_start_cmd
" Please specify the firefox binary location or install firefox")
RuntimeError: Could not find firefox in your system PATH. Please specify the firefox binary location or install firefox
======================================================================
ERROR: test_httpseverywhere (test_tbdriver.TBDriverTest)
HTTPSEverywhere should redirect to HTTPS version.
Traceback (most recent call last):
File "/vagrant/tor-browser-selenium/tbselenium/test/test_tbdriver.py", line 36, in setUp
self.tb_driver = TorBrowserDriver(TBB_PATH)
File "tbselenium/tbdriver.py", line 56, in init
timeout=60)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 67, in init
firefox_options.binary_location = self.binary if isinstance(self.binary, basestring) else self.binary._get_firefox_start_cmd()
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 163, in _get_firefox_start_cmd
" Please specify the firefox binary location or install firefox")
RuntimeError: Could not find firefox in your system PATH. Please specify the firefox binary location or install firefox
======================================================================
ERROR: test_noscript (test_tbdriver.TBDriverTest)
NoScript should disable WebGL.
Traceback (most recent call last):
File "/vagrant/tor-browser-selenium/tbselenium/test/test_tbdriver.py", line 36, in setUp
self.tb_driver = TorBrowserDriver(TBB_PATH)
File "tbselenium/tbdriver.py", line 56, in init
timeout=60)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 67, in init
firefox_options.binary_location = self.binary if isinstance(self.binary, basestring) else self.binary._get_firefox_start_cmd()
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 163, in _get_firefox_start_cmd
" Please specify the firefox binary location or install firefox")
RuntimeError: Could not find firefox in your system PATH. Please specify the firefox binary location or install firefox
======================================================================
ERROR: test_tbdriver_profile_not_modified (test_tbdriver.TBDriverTest)
Visiting a site should not modify the original profile contents.
Traceback (most recent call last):
File "/vagrant/tor-browser-selenium/tbselenium/test/test_tbdriver.py", line 36, in setUp
self.tb_driver = TorBrowserDriver(TBB_PATH)
File "tbselenium/tbdriver.py", line 56, in init
timeout=60)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 67, in init
firefox_options.binary_location = self.binary if isinstance(self.binary, basestring) else self.binary._get_firefox_start_cmd()
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 163, in _get_firefox_start_cmd
" Please specify the firefox binary location or install firefox")
RuntimeError: Could not find firefox in your system PATH. Please specify the firefox binary location or install firefox
======================================================================
ERROR: test_tbdriver_simple_visit (test_tbdriver.TBDriverTest)
checktor.torproject.org should detect Tor IP.
Traceback (most recent call last):
File "/vagrant/tor-browser-selenium/tbselenium/test/test_tbdriver.py", line 36, in setUp
self.tb_driver = TorBrowserDriver(TBB_PATH)
File "tbselenium/tbdriver.py", line 56, in init
timeout=60)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 67, in init
firefox_options.binary_location = self.binary if isinstance(self.binary, basestring) else self.binary._get_firefox_start_cmd()
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 163, in _get_firefox_start_cmd
" Please specify the firefox binary location or install firefox")
RuntimeError: Could not find firefox in your system PATH. Please specify the firefox binary location or install firefox
======================================================================
ERROR: test_https_everywhere_disabled (test_tbdriver.TBDriverTestAssumptions)
Make sure the HTTP->HTTPS redirection in the
Traceback (most recent call last):
File "/vagrant/tor-browser-selenium/tbselenium/test/test_tbdriver.py", line 260, in test_https_everywhere_disabled
with TorBrowserDriver(TBB_PATH, pref_dict=disable_HE_pref) as driver:
File "tbselenium/tbdriver.py", line 56, in init
timeout=60)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 67, in init
firefox_options.binary_location = self.binary if isinstance(self.binary, basestring) else self.binary._get_firefox_start_cmd()
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 163, in _get_firefox_start_cmd
" Please specify the firefox binary location or install firefox")
RuntimeError: Could not find firefox in your system PATH. Please specify the firefox binary location or install firefox
======================================================================
ERROR: test_noscript_webgl_enabled (test_tbdriver.TBDriverTestAssumptions)
Make sure that when we disable NoScript's WebGL blocking,
Traceback (most recent call last):
File "/vagrant/tor-browser-selenium/tbselenium/test/test_tbdriver.py", line 275, in test_noscript_webgl_enabled
pref_dict=disable_NS_webgl_pref) as driver:
File "tbselenium/tbdriver.py", line 56, in init
timeout=60)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 67, in init
firefox_options.binary_location = self.binary if isinstance(self.binary, basestring) else self.binary._get_firefox_start_cmd()
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 163, in _get_firefox_start_cmd
" Please specify the firefox binary location or install firefox")
RuntimeError: Could not find firefox in your system PATH. Please specify the firefox binary location or install firefox

Ran 36 tests in 35.725s
FAILED (errors=12, skipped=7)
vagrant@jessie-amd64:/vagrant/tor-browser-crawler/tor-browser-selenium$ find /vagrant/tor-browser_en-US  -name firefox
/vagrant/tor-browser_en-US/Browser/firefox
vagrant@jessie-amd64:/vagrant/tor-browser-crawler/tor-browser-selenium$ date && uname -a
Mon Apr 11 10:09:55 UTC 2016
Linux jessie-amd64 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt9-2 (2015-04-13) x86_64 GNU/Linux
vagrant@jessie-amd64:/vagrant/tor-browser-crawler/tor-browser-selenium$

selenium/webdriver/firefox/webdriver.py, line 67 asks the firefox binary to find its path.
_get_firefox_start_cmd() in FirefoxBinary, in the specific case of linux, looks for "firefox" in the PATH.

The problem is that in _get_firefox_start_cmd() it is assumed that self._start_cmd is not valid.
In our case, it is and it should return its value.
So a small patch like this in that function makes it work:
if isinstance(self._start_cmd, basestring):             return self._start_cmd

Thanks @parmegv, for the test and the analysis.
Just for the record, it seems this is due to a Selenium issue and doesn't affect the our tests at the moment.
But we may run into problems when we have Marionette tests as Selenium will try to use the system Firefox binary instead of the modified binary in the TBB folder. It's a good idea to make sure we run the modified Firefox binary from TBB, not the one installed on the system.

More specifically the problem is that they run the this seemingly pointless test in this line. It's seemingly pointless because self.binary is supposed to be a FirefoxBinary object and not a basestring or str object; therefore, it will always fail. If you look at line 57 in that same file you can see that you can skip that whole mess by initializing an Options object and passing it to the call super(TorBrowserDiver, self).__init__ in the __init__ method of the TorBrowserDriver object we're initializing. If that didn't quite follow, see this commit where I've implemented the workaround.
The problem with this, at least for me working in the Ubuntu 14.04 server Docker image built from this repo is that TBB is not self-contained, so now it's failing because certain libraries libxul.so (the main Firefox library) is wanting to load are not present on this minimal image. But, that's a whole different and much easier to diagnose problem... PR incoming!

so now it's failing because certain libraries libxul.so (the main Firefox library) is wanting to load are not present on this minimal image.

That's interesting! These libraries are present in TBB's Browser directory but can't be loaded, right?
Do you think this implies that in normal (non-minimal) boxes we load libxul.so and other libs from the system, but not the ones shipped with TBB? This can be serious issue.


[TASK]: env variable validation using zod

Task Summary
will ensure env variables exist by parsing process.env instead of using non-null assertion (! or ?? "")
Acceptance criteria

[] dev server errors when an env variable is missing

Any Additional Context

zod

I can recommend https://github.com/t3-oss/t3-env for this.


docs: Add setReleaseMode example

Description

This was what I was looking for in the documentation.
Checklist

[x] The title of my PR starts with a Conventional Commit prefix (fix:, feat:, refactor:,
docs:, chore:, test:, ci: etc).
[x] I have read the Contributor Guide and followed the process outlined for submitting PRs.
[x] I have updated/added tests for ALL new/updated/fixed functionality.
[x] I have updated/added relevant documentation and added dartdoc comments with ///, where necessary.
[x] I have updated/added relevant examples in example.

Breaking Change

[ ] Yes, this is a breaking change.
[x] No, this is not a breaking change.

Related Issues

Thank you!