Sync latest commits from upstream #9

Merged
Mssol94 merged 6 commits from ci-upstream-sync into master 2026-10-11 01:42:11 +02:00

This PR syncs the latest commits from the upstream repository.

This PR syncs the latest commits from the upstream repository.
Problem: Cargo.toml has none of the fields crates.io displays:
description, license, repository, readme, keywords and categories.
It also does not say which Rust version it needs, so an older
compiler fails with a confusing error deep in a dependency.

Solution: fill in these fields. The description is the GitHub
repository description, and the license is MPL-2.0, as in the REUSE
headers. rust-version is 1.85. It is the oldest release that builds
the crate when dependencies are resolved fresh, as `cargo install`
does. On 1.84, the latest clap and hashbrown fail to build.
Problem: `rust-version` is 1.85, but with edition 2018 Cargo uses
resolver v1, which ignores `rust-version` when picking dependency
versions. Once a dependency releases a version that needs a newer
compiler, a plain `cargo install deploy-rs` on 1.85 picks it and fails
to build.

Solution: set `resolver = "3"`. It prefers dependency versions whose
`rust-version` fits ours, and it needs Cargo 1.84, which is below our
MSRV. It also brings resolver v2's feature unification rules. The
build and tests pass, and Cargo.lock does not change.

This changes what "measuring the MSRV" means. Under v1, the previous
commit's 1.85 was the true minimum for the latest dependency
versions. Under v3, `rust-version` also steers which versions get
picked, so lowering it would make the resolver pick older
dependencies to match, and "the oldest version that builds" is no
longer a fixed target to bisect toward. 1.85 is kept as a floor we
maintain rather than a value to keep re-deriving: it is also the
exact rustc version (1.85.0) that this repository's own flake pins
today, via nixpkgs bd3bac8bfb (2025-03-26), so it cannot be lowered
without also losing margin in this project's own Nix CI.
Problem: cargo package includes every file tracked by git, which
pulls in 39 files that have nothing to do with building the Rust
crate: flake.nix, flake.lock, the Nix example flakes under examples/,
the e2e tests under nix/tests/, the CI workflow, and .gitignore.

Solution: exclude them with the `exclude` field. `nix/
transform-deploy.nix` stays in, since src/cli.rs embeds it with
`include_str!` and needs it present when building from the published
tarball. `cargo package` now includes 17 files instead of 39.
Problem: checks was nested inside deploy.nodes.example instead of
being a sibling of deploy. Evaluating it forces self.deploy, which
contains the node, which contains checks again: infinite recursion.
nix flake check never caught this, since it only looks for checks at
the top level, not buried inside a deploy.nodes.* entry, so it never
evaluated the attribute at all.

Solution: move checks out to be a top-level output, alongside deploy.
[#402] Add crates.io package metadata
Merge branch 'master' into ci-upstream-sync
Some checks failed
Nix flake check / get-matrix (pull_request) Successful in 2s
Nix flake check / check activation-failure-cancellation (activation-failure-cancellation) (pull_request) Failing after 8m1s
Nix flake check / check clippy (clippy) (pull_request) Successful in 29s
Nix flake check / check color-log-tags (color-log-tags) (pull_request) Successful in 12m14s
Nix flake check / check color-log-tags-failing (color-log-tags-failing) (pull_request) Successful in 5m7s
Nix flake check / check deploy-rs (deploy-rs) (pull_request) Successful in 3s
Nix flake check / check hyphen-ssh-opts-regression (hyphen-ssh-opts-regression) (pull_request) Successful in 5m33s
Nix flake check / check no-demarcate-output (no-demarcate-output) (pull_request) Has been cancelled
Nix flake check / check non-flake-build (non-flake-build) (pull_request) Has been cancelled
Nix flake check / check non-flake-remote-build (non-flake-remote-build) (pull_request) Has been cancelled
Nix flake check / check non-flake-with-flakes (non-flake-with-flakes) (pull_request) Has been cancelled
Nix flake check / check options-overriding (options-overriding) (pull_request) Has been cancelled
Nix flake check / check prefix-demarcation (prefix-demarcation) (pull_request) Has been cancelled
Nix flake check / check profile (profile) (pull_request) Has been cancelled
Nix flake check / check remote-build (remote-build) (pull_request) Has been cancelled
Nix flake check / check reuse (reuse) (pull_request) Has been cancelled
Nix flake check / check revoke-demarcation (revoke-demarcation) (pull_request) Has been cancelled
Nix flake check / check rustfmt (rustfmt) (pull_request) Has been cancelled
Nix flake check / check transform-deploy (transform-deploy) (pull_request) Has been cancelled
Nix flake check / check local-build (local-build) (pull_request) Has been cancelled
1bbf426993
forgejo-actions force-pushed ci-upstream-sync from 1bbf426993
Some checks failed
Nix flake check / get-matrix (pull_request) Successful in 2s
Nix flake check / check activation-failure-cancellation (activation-failure-cancellation) (pull_request) Failing after 8m1s
Nix flake check / check clippy (clippy) (pull_request) Successful in 29s
Nix flake check / check color-log-tags (color-log-tags) (pull_request) Successful in 12m14s
Nix flake check / check color-log-tags-failing (color-log-tags-failing) (pull_request) Successful in 5m7s
Nix flake check / check deploy-rs (deploy-rs) (pull_request) Successful in 3s
Nix flake check / check hyphen-ssh-opts-regression (hyphen-ssh-opts-regression) (pull_request) Successful in 5m33s
Nix flake check / check no-demarcate-output (no-demarcate-output) (pull_request) Has been cancelled
Nix flake check / check non-flake-build (non-flake-build) (pull_request) Has been cancelled
Nix flake check / check non-flake-remote-build (non-flake-remote-build) (pull_request) Has been cancelled
Nix flake check / check non-flake-with-flakes (non-flake-with-flakes) (pull_request) Has been cancelled
Nix flake check / check options-overriding (options-overriding) (pull_request) Has been cancelled
Nix flake check / check prefix-demarcation (prefix-demarcation) (pull_request) Has been cancelled
Nix flake check / check profile (profile) (pull_request) Has been cancelled
Nix flake check / check remote-build (remote-build) (pull_request) Has been cancelled
Nix flake check / check reuse (reuse) (pull_request) Has been cancelled
Nix flake check / check revoke-demarcation (revoke-demarcation) (pull_request) Has been cancelled
Nix flake check / check rustfmt (rustfmt) (pull_request) Has been cancelled
Nix flake check / check transform-deploy (transform-deploy) (pull_request) Has been cancelled
Nix flake check / check local-build (local-build) (pull_request) Has been cancelled
to 45ba3f8c5c 2026-10-09 02:01:13 +02:00
Compare
Merge branch 'master' into ci-upstream-sync
All checks were successful
Nix flake check / get-matrix (pull_request) Successful in 2s
Nix flake check / check activation-failure-cancellation (activation-failure-cancellation) (pull_request) Successful in 3m21s
Nix flake check / check clippy (clippy) (pull_request) Successful in 3s
Nix flake check / check color-log-tags (color-log-tags) (pull_request) Successful in 9s
Nix flake check / check color-log-tags-failing (color-log-tags-failing) (pull_request) Successful in 8s
Nix flake check / check deploy-rs (deploy-rs) (pull_request) Successful in 3s
Nix flake check / check hyphen-ssh-opts-regression (hyphen-ssh-opts-regression) (pull_request) Successful in 9s
Nix flake check / check local-build (local-build) (pull_request) Successful in 5m27s
Nix flake check / check no-demarcate-output (no-demarcate-output) (pull_request) Successful in 3m23s
Nix flake check / check non-flake-build (non-flake-build) (pull_request) Successful in 8m26s
Nix flake check / check non-flake-with-flakes (non-flake-with-flakes) (pull_request) Successful in 5m25s
Nix flake check / check prefix-demarcation (prefix-demarcation) (pull_request) Successful in 3m47s
Nix flake check / check non-flake-remote-build (non-flake-remote-build) (pull_request) Successful in 7m14s
Nix flake check / check options-overriding (options-overriding) (pull_request) Successful in 6m4s
Nix flake check / check profile (profile) (pull_request) Successful in 3m56s
Nix flake check / check remote-build (remote-build) (pull_request) Successful in 7m30s
Nix flake check / check reuse (reuse) (pull_request) Successful in 7s
Nix flake check / check revoke-demarcation (revoke-demarcation) (pull_request) Successful in 4m7s
Nix flake check / check rustfmt (rustfmt) (pull_request) Successful in 4s
Nix flake check / check transform-deploy (transform-deploy) (pull_request) Successful in 4s
c47a5f1f93
forgejo-actions force-pushed ci-upstream-sync from c47a5f1f93
All checks were successful
Nix flake check / get-matrix (pull_request) Successful in 2s
Nix flake check / check activation-failure-cancellation (activation-failure-cancellation) (pull_request) Successful in 3m21s
Nix flake check / check clippy (clippy) (pull_request) Successful in 3s
Nix flake check / check color-log-tags (color-log-tags) (pull_request) Successful in 9s
Nix flake check / check color-log-tags-failing (color-log-tags-failing) (pull_request) Successful in 8s
Nix flake check / check deploy-rs (deploy-rs) (pull_request) Successful in 3s
Nix flake check / check hyphen-ssh-opts-regression (hyphen-ssh-opts-regression) (pull_request) Successful in 9s
Nix flake check / check local-build (local-build) (pull_request) Successful in 5m27s
Nix flake check / check no-demarcate-output (no-demarcate-output) (pull_request) Successful in 3m23s
Nix flake check / check non-flake-build (non-flake-build) (pull_request) Successful in 8m26s
Nix flake check / check non-flake-with-flakes (non-flake-with-flakes) (pull_request) Successful in 5m25s
Nix flake check / check prefix-demarcation (prefix-demarcation) (pull_request) Successful in 3m47s
Nix flake check / check non-flake-remote-build (non-flake-remote-build) (pull_request) Successful in 7m14s
Nix flake check / check options-overriding (options-overriding) (pull_request) Successful in 6m4s
Nix flake check / check profile (profile) (pull_request) Successful in 3m56s
Nix flake check / check remote-build (remote-build) (pull_request) Successful in 7m30s
Nix flake check / check reuse (reuse) (pull_request) Successful in 7s
Nix flake check / check revoke-demarcation (revoke-demarcation) (pull_request) Successful in 4m7s
Nix flake check / check rustfmt (rustfmt) (pull_request) Successful in 4s
Nix flake check / check transform-deploy (transform-deploy) (pull_request) Successful in 4s
to 45ba3f8c5c 2026-10-10 02:01:27 +02:00
Compare
Merge branch 'master' into ci-upstream-sync
All checks were successful
Nix flake check / get-matrix (pull_request) Successful in 3s
Nix flake check / check activation-failure-cancellation (activation-failure-cancellation) (pull_request) Successful in 12s
Nix flake check / check clippy (clippy) (pull_request) Successful in 3s
Nix flake check / check color-log-tags (color-log-tags) (pull_request) Successful in 10s
Nix flake check / check color-log-tags-failing (color-log-tags-failing) (pull_request) Successful in 9s
Nix flake check / check deploy-rs (deploy-rs) (pull_request) Successful in 3s
Nix flake check / check hyphen-ssh-opts-regression (hyphen-ssh-opts-regression) (pull_request) Successful in 9s
Nix flake check / check local-build (local-build) (pull_request) Successful in 9s
Nix flake check / check no-demarcate-output (no-demarcate-output) (pull_request) Successful in 9s
Nix flake check / check non-flake-build (non-flake-build) (pull_request) Successful in 9s
Nix flake check / check non-flake-remote-build (non-flake-remote-build) (pull_request) Successful in 9s
Nix flake check / check non-flake-with-flakes (non-flake-with-flakes) (pull_request) Successful in 9s
Nix flake check / check options-overriding (options-overriding) (pull_request) Successful in 9s
Nix flake check / check prefix-demarcation (prefix-demarcation) (pull_request) Successful in 9s
Nix flake check / check profile (profile) (pull_request) Successful in 9s
Nix flake check / check remote-build (remote-build) (pull_request) Successful in 9s
Nix flake check / check reuse (reuse) (pull_request) Successful in 5s
Nix flake check / check revoke-demarcation (revoke-demarcation) (pull_request) Successful in 9s
Nix flake check / check rustfmt (rustfmt) (pull_request) Successful in 3s
Nix flake check / check transform-deploy (transform-deploy) (pull_request) Successful in 2s
ff54e2b3e2
Mssol94 merged commit b30e84113e into master 2026-10-11 01:42:11 +02:00
Sign in to join this conversation.
No reviewers
No labels
Upstream
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Mssol94/deploy-rs!9
No description provided.