Skip to content

chore(ci): repin fleet-ci to the revision that gates the unsafe lint - #11

Merged
h4x0r merged 1 commit into
mainfrom
chore/repin-fleet-ci-unsafe-audit
Aug 20, 2026
Merged

chore(ci): repin fleet-ci to the revision that gates the unsafe lint#11
h4x0r merged 1 commit into
mainfrom
chore/repin-fleet-ci-unsafe-audit

Conversation

@h4x0r

@h4x0r h4x0r commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Moves this repo from 9234e1fa to 85c7263.

Unsafe lint audit — a new job inside the gate

It asserts that every workspace member effectively forbids or denies unsafe_code, which is the part the compiler cannot tell you. Cargo does not apply workspace lints implicitly:

  • a member with no [lints] table does not inherit them
  • a member with its own [lints] table replaces inheritance rather than extending it

Either way the crate compiles with unsafe permitted while the workspace root still reads compliant. Surveying the root scores such a repo green — which is how five published crates across two repos went unnoticed until this check existed.

It replaces the Unsafe Audit (cargo-geiger) job that eighteen repos carried as a sibling of the shared-workflow call. That job could not fail (|| true on the step, continue-on-error on the job), and being a sibling rather than a job inside the reusable workflow, ci / All checks never reached it and branch protection never required it.

Coverage inputs

coverage-metric (lines | functions | both) and coverage-include-regex let a repo gate on functions, or hold one published path at 100% while the rest carries tracked debt. Both default to today's behaviour, so this repo's coverage posture is unchanged unless it opts in.

Expected result

Green. The whole fleet already passes the unsafe audit — that was verified across all 92 repos with manifests before this sweep began.

Also in this revision

Every job now carries timeout-minutes, and apt-get update is retried behind a 300s timeout. Nothing had a ceiling before: a hung apt consumed GitHub's full six-hour job limit across six repos yesterday and produced a red gate that looked like a code failure. A new job-timeout-minutes input (default 45) lets a heavy repo raise the ceiling rather than remove it.

Moves this repo from 9234e1fa to 85c7263, which adds two things it did not
have.

`Unsafe lint audit` is a new job INSIDE the aggregate gate. It asserts that
every workspace member EFFECTIVELY forbids or denies `unsafe_code` -- the part
the compiler cannot tell you. Cargo does not apply workspace lints implicitly:
a member with no `[lints]` table does not inherit them, and a member with its
own `[lints]` table replaces inheritance rather than extending it. Either way
the crate compiles with `unsafe` permitted while the workspace root still reads
compliant. Surveying the root scores such a repo green, which is how five
published crates across two repos went unnoticed until this check existed.

It replaces the `Unsafe Audit (cargo-geiger)` job that eighteen repos carried
as a SIBLING of the shared-workflow call. That job could not fail -- `|| true`
on the step and `continue-on-error` on the job -- and, being a sibling rather
than a job inside the reusable workflow, `ci / All checks` never reached it and
branch protection never required it.

The coverage job also gains `coverage-metric` (lines | functions | both) and
`coverage-include-regex`, which let a repo gate on functions or hold one path
at 100% while the rest carries tracked debt. Both default to today's behaviour,
so this repo's coverage posture is unchanged unless it opts in.

No repo-side change is needed: the whole fleet already passes the unsafe audit.

This revision also bounds every job with `timeout-minutes` and retries
`apt-get update` behind a 300s timeout. Nothing had a ceiling before, so a hung
apt consumed GitHub's full six-hour job limit across six repos yesterday and
reported a red gate that looked like a code failure.
@h4x0r
h4x0r merged commit 00c2665 into main Aug 20, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant