docs(ci): say what the nightly step actually buys today
CI / shellcheck + selftests (pull_request) Successful in 1m24s
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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user