Skip to content

Add scripts/dev.sh and scope the CI jobs to what changed - #25

Merged
zmaril merged 1 commit into
mainfrom
dev-script-and-ci-scoping
Aug 30, 2026
Merged

zmaril merged 1 commit into
mainfrom
dev-script-and-ci-scoping

Conversation

@zmaril

@zmaril zmaril commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Two fleet findings: scripts and ci-scoped.

scripts

scripts/dev.sh sets core.hooksPath, which no clone can inherit, then runs the gate CI runs: build, fmt, clippy, the tests, and the doctests. The doctests are a separate step because --all-targets does not run them, and they are what holds the README to the crate. It is named in a new Development section in the README, and is ShellCheck-clean at --severity=warning.

ci-scoped

test and msrv were flagged as running on every pull request with nothing deciding whether they need to. A changes job now answers that once, and all four cargo jobs (test, examples, msrv, packaging) depend on it. It follows the fleet lint workflow's pattern: fetch-depth: 0, a diff of ${{ github.event.pull_request.base.sha }}...HEAD, and an empty base treated as "everything changed", so a push to main still runs the whole file. timeout-minutes: 5.

The filter names what cannot affect a build — DESIGN.md, CHANGELOG.md, images/ — rather than what can, so an unfamiliar new file is treated as code until somebody decides otherwise. README.md is deliberately absent from that list: every Rust snippet in it is a doctest and cargo package ships it, so a README-only change really does have to run the suite.

Verification

ordnung check on this branch:

pass  ci-scoped  no heavy pull-request job runs without change scoping
pass  scripts    shell scripts are corralled in scripts/ and scripts/dev.sh is documented
skip  artifacts-built  no distributable artifacts detected

Failing checks went from 23 to 21 against origin/main, with nothing newly failing. The workflow parses under yaml.safe_load.

🤖 Generated with Claude Code

https://claude.ai/code/session_0144PU3MssnfbM5tZiqXW7d3

`scripts` had nothing to point a fresh checkout at. scripts/dev.sh sets
core.hooksPath, which no clone can inherit, then runs the gate CI runs.
Doctests get their own step because --all-targets does not run them, and
they are what holds the README to the crate.

`ci-scoped` flagged test and msrv as running on every pull request with
nothing deciding whether they need to. A changes job now answers that once
and the four cargo jobs depend on it. On a push there is no base to diff
against, so everything counts as changed and main is gated exactly as
before.

The filter names what cannot affect a build -- DESIGN.md, CHANGELOG.md,
images/ -- rather than what can, so an unfamiliar file is treated as code
until someone decides otherwise. README.md is deliberately not on that
list: its Rust snippets are doctests and `cargo package` ships it, so a
README-only change really does have to run the suite.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0144PU3MssnfbM5tZiqXW7d3
@zmaril
zmaril force-pushed the dev-script-and-ci-scoping branch from aee2e92 to 49c1a12 Compare August 29, 2026 23:53
@zmaril
zmaril merged commit 208944a into main Aug 30, 2026
10 checks passed
@zmaril
zmaril deleted the dev-script-and-ci-scoping branch August 30, 2026 09:23
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