docs(ci): say what the nightly step actually buys today
CI / shellcheck + selftests (pull_request) Successful in 1m24s

The step's comment claimed nightly was not optional. CI's own first green run
falsified that: 1.100.0-nightly accepts -Z checksum-freshness and resolves
freshness by mtime regardless, so the suite's probe reports it and skips the
scenario either way.

The step stays — twenty seconds, and the coverage returns by itself the day
upstream restores the behaviour — but the comment now says that rather than
the opposite. The open question about what upstream actually did is
daniel/gitdan#62.
This commit is contained in:
2026-08-26 12:57:15 -05:00
parent 6a80423bd0
commit eb3f0bd09b
2 changed files with 14 additions and 11 deletions
+10 -7
View File
@@ -69,13 +69,16 @@ jobs:
# Nightly first, stable second, so stable ends up the default and
# nightly is only reachable through an explicit `+nightly`.
#
# Nightly is not optional here. `hardlink-clone-selftest.sh` gates its
# two strongest assertions on `-Z checksum-freshness` — the mode where
# Cargo's dep-info file carries per-source checksums and is rewritten in
# place, which is the mutation that turns a hardlink clone into SILENT
# stale-artifact reuse rather than a slow build. Without a nightly the
# suite still runs, and skips exactly the hazard this whole scheme exists
# to close.
# `hardlink-clone-selftest.sh`'s last scenario needs a Cargo that
# resolves freshness by CONTENT — the mode where the dep-info file
# carries per-source checksums, which is the mutation that turns a
# hardlink clone into silent stale-artifact reuse rather than a slow
# build. As of 1.100.0-nightly (2026-08-25) no nightly provides it:
# `-Z checksum-freshness` is still accepted and freshness is still
# resolved by mtime, so the suite's probe reports that by name and skips
# the scenario. This step therefore buys nothing today and is kept
# anyway — it costs about twenty seconds, and the day upstream restores
# the behaviour the coverage comes back with no edit here. See daniel/gitdan#62.
- name: Install Rust nightly
uses: dtolnay/rust-toolchain@nightly
- name: Install Rust toolchain
+4 -4
View File
@@ -544,10 +544,10 @@ bash scripts/selftest.sh --fast # fixture-only suites, no compiler
Both run in CI — `.gitea/workflows/ci.yaml`, one job, on pushes to `main` and
on PRs that were non-draft when the run was created. It installs shellcheck
and both a stable and a nightly Rust toolchain (nightly for
`-Z checksum-freshness`, without which `hardlink-clone-selftest.sh` skips the
scenario that covers the silent-stale-reuse hazard) and references no
credentials; the scratch
and both a stable and a nightly Rust toolchain (nightly so
`hardlink-clone-selftest.sh` can run its content-freshness scenario — which no
nightly currently enables, so it is skipped and the step is kept only against
the day upstream restores it) and references no credentials; the scratch
workspaces the compiler-backed suites build use path dependencies only, so
nothing reaches crates.io. It runs the full suite rather than `--fast`,
because the two compiler-backed suites are the ones that check this scheme