Simpl-Resultat/docs/adr
le king fu 8d9a3ca9e9
All checks were successful
PR Check — Rust / rust (pull_request) Successful in 5m12s
ci: guard the windows-sys 0.61.2 pin in check-rust
Seven crates in Cargo.lock accept windows-sys through a wide bound
(colored, dirs-sys, errno, rustix, rustls-platform-verifier, tempfile,
winapi-util), so cargo may point them at any windows-sys version already in
the graph. All seven point at 0.61.2, the state every Windows release has
shipped with since v0.14.0. Some updates re-resolve them (cargo update -p
hyper, -p h2, -p rustls-webpki -p tar did) down to 0.48/0.52/0.59 while
cargo only reports the packages it bumped: the Windows build then compiles
five windows-sys versions instead of three, and nothing says so.

A new blocking step, "Verify windows-sys pinning", reads the lockfile with
awk right after the suppression guard and fails if any edge of the seven
crates leaves 0.61.2 (a bare edge only passes when the lockfile holds a
single windows-sys, at 0.61.2), if a guarded crate has no block, or if the
set of windows-sys versions changes. awk's exit code is tested apart from
its output, every check is logged with a summary line, and a canary
(tempfile) must be read and checked by the loop.

The step text was extracted from the YAML and run as is, with the runner's
bash options, on copies of the lockfile: main's and the five release tags'
locks pass (9 checks, exit 0); the hyper-bumped lock, an added
windows-sys 0.53.0, a renamed guarded crate, a missing lockfile and a
guarded list without the canary all exit 1.

ADR 0023 records why 0.61.2, the measured cost (3 versions compiled for
Windows instead of 5), the triggers, the exit condition (windows-sys 0.62,
or convergence on a single version) and the repair when the step fails.
CLAUDE.md and docs/architecture.md cite the guard next to the suppression
check. Cargo.lock and .cargo/audit.toml are untouched.

Resolves #345

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 20:14:25 -04:00
..
0001-tauri-v2.md docs: organize technical documentation into docs/ folder 2026-02-19 07:34:01 -05:00
0002-useReducer-vs-redux.md docs: organize technical documentation into docs/ folder 2026-02-19 07:34:01 -05:00
0003-sqlx-migrations.md docs: ADR 0021, guide and changelog for the profile catch-up (#390) 2026-10-06 20:35:00 -04:00
0004-aes-256-gcm-encryption.md docs: organize technical documentation into docs/ folder 2026-02-19 07:34:01 -05:00
0005-multi-profile-db.md docs: ADR 0021, guide and changelog for the profile catch-up (#390) 2026-10-06 20:35:00 -04:00
0006-oauth-tokens-keychain.md docs: ADR 0006 + changelog + architecture for OAuth keychain (#82) 2026-04-14 08:26:21 -04:00
0007-reports-hub-refactor.md docs: polish + changelog + ADR + legacy cleanup for reports refactor (#76) 2026-04-14 15:29:49 -04:00
0008-modified-dietz-pour-rendement.md docs(adr): add ADRs 0008-0010 (Modified Dietz, proxy price-fetching, FK RESTRICT) 2026-04-25 17:06:40 -04:00
0009-proxy-price-fetching-via-maximus-api.md docs(adr): add ADRs 0008-0010 (Modified Dietz, proxy price-fetching, FK RESTRICT) 2026-04-25 17:06:40 -04:00
0010-fk-restrict-balance-transfers.md docs(adr): add ADRs 0008-0010 (Modified Dietz, proxy price-fetching, FK RESTRICT) 2026-04-25 17:06:40 -04:00
0011-providers-best-effort-yahoo.md docs(prices): commit /v1/prices contract + ADR 0011 2026-04-27 08:06:03 -04:00
0012-balance-two-level-model.md docs(balance): ADR 0014 + reject 0012 + guide + changelog (#205) 2026-06-01 21:15:06 -04:00
0013-stocks-provider-evaluation.md docs(adr): 0013 — stocks provider evaluation, AV retained as bascule target (#196) 2026-05-09 12:40:08 +00:00
0014-balance-vehicule-attribut.md docs(balance): ADR 0014 + reject 0012 + guide + changelog (#205) 2026-06-01 21:15:06 -04:00
0015-balance-detail-par-titre.md docs(balance): ADR 0015 + guide + architecture + CHANGELOG for per-security detail (#218) 2026-06-06 14:17:03 -04:00
0016-persistance-etat-ui-par-profil.md docs(collapse): ADR 0016 per-profile UI state + guide, architecture, i18n 2026-07-18 14:43:24 -04:00
0017-feature-gating-par-tier.md fix(license): drop an activation token that no longer stands for this machine 2026-10-04 17:58:25 -04:00
0018-suppression-advisories-non-atteignables.md fix(deps): resolve the quick-xml advisories, unyank deep-link and spin 2026-08-15 11:51:46 -04:00
0019-format-import-persiste.md docs: architecture, ADR 0019, user guide and changelog for the import format 2026-08-14 11:13:25 -04:00
0020-identifiant-machine-derive.md fix(license): drop an activation token that no longer stands for this machine 2026-10-04 17:58:25 -04:00
0021-migrations-profils-secondaires.md docs: ADR 0021, guide and changelog for the profile catch-up (#390) 2026-10-06 20:35:00 -04:00
0022-canal-evenements-donnees.md docs(onboarding): the import counter, D9 and the QA cases from the stack's review 2026-10-08 21:05:30 -04:00
0023-windows-sys-pinning.md ci: guard the windows-sys 0.61.2 pin in check-rust 2026-10-10 20:14:25 -04:00