Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
fc52998
Refresh Whitaker user's guide and bump installer to 0.2.7 (#462)
Jul 29, 2026
82b1519
Narrow no_std_fs_operations exemptions to module paths (#462)
Jul 29, 2026
b9ae521
Lint test_support with Whitaker and narrow its exemption (#462)
leynos Jul 29, 2026
bc6078f
Use the -ize spelling in the dylint.toml exclusion rationale (#462)
leynos Jul 29, 2026
9cd375f
Hold the environment lock across CWD tests and fix suppression docs (…
leynos Jul 31, 2026
3e72932
Note that crate-root exclusions remain sanctioned (#462)
leynos Aug 1, 2026
3840d71
Cover the poisoned localizer lock and the exclusion boundary (#462)
leynos Aug 1, 2026
7f4118a
Gate the test_support suite and fix the localizer drop order (#462)
leynos Aug 2, 2026
978f531
Record the test_support test runs beside the lint run (#462)
leynos Aug 2, 2026
3b99b65
Take camino paths in the executable-stub helpers (#462)
leynos Aug 2, 2026
7d7da57
Document the camino stub helpers and name the boundary paths (#462)
leynos Aug 2, 2026
54bbd32
Gate the test_support test recipes and fix a guard drop order (#462)
leynos Aug 2, 2026
e8005c9
Route the manifest path predicates through test_support::fs (#462)
leynos Aug 2, 2026
3c7df62
Name the localizer guards for what they are and pin --all-targets (#462)
leynos Aug 2, 2026
cfdfc59
Bring the dev-fast harness under the test_support lint boundary (#462)
leynos Aug 2, 2026
4668973
Expansion-test the test_support RUSTFLAGS lines (#462)
leynos Aug 2, 2026
404089b
Route the dev-fast sandbox through the fs boundary (#462)
leynos Aug 3, 2026
5f95d57
Narrow the test_support exemption to the fs boundary alone (#462)
leynos Aug 3, 2026
c8cc45c
Bring test_support under Clippy (#462)
leynos Aug 3, 2026
8e6e4bc
Quote the manifest path and cover the poisoned env lock (#462)
leynos Aug 3, 2026
6988861
Serialise the env-lock tests against each other (#462)
leynos Aug 3, 2026
c92e01e
Share the Makefile contract helpers across the test crates (#462)
leynos Aug 3, 2026
f674fc1
Close the two remaining test-coverage gaps (#462)
leynos Aug 3, 2026
78c9527
Probe this thread's env-lock guard, not the global mutex (#462)
leynos Aug 3, 2026
0d86e53
Document the fs helpers dev_fast relies on (#462)
leynos Aug 3, 2026
4c4a74e
Reflow the developer guide to the mdtablefix 0.5.0 standard (#462)
leynos Aug 3, 2026
e65aad9
Name an is_dir caller in the developer guide (#462)
leynos Aug 4, 2026
b89df2f
Attribute lint behaviour to Whitaker HEAD, not the installer pin (#462)
leynos Aug 4, 2026
78f4d76
Give the fixture helpers worked examples (#462)
leynos Aug 4, 2026
8f04e2b
Guard the stub name and pin the test_support exemption set (#462)
leynos Aug 4, 2026
a6cc0b0
Give three inline modules their inner docs (#462)
leynos Aug 4, 2026
d33427f
Give the Makefile contract helpers worked examples (#462)
leynos Aug 4, 2026
ad3da36
Record HEAD-tracking of the lint libraries as a decision (#462)
leynos Aug 4, 2026
067784f
Assert neither manifest pins the lint libraries (#462)
leynos Aug 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
# not shadow .cargo/config.toml and strip -Zpolonius=next; tools such as
# cargo-llvm-cov append their own flags to this value.
RUSTFLAGS: -D warnings -Zpolonius=next
WHITAKER_INSTALLER_VERSION: '0.2.6'
WHITAKER_INSTALLER_VERSION: '0.2.7'
# Single source of truth for the cargo-nextest pin. `make test` runs the
# non-doctest suite through nextest, so the job installs it up front.
NEXTEST_VERSION: '0.9.133'
Expand Down
9 changes: 6 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,10 @@ rustix = { version = "1.0.8", features = ["fs"] }

[workspace]
# `test_support` is a path dependency that Cargo would otherwise auto-include as a
# member. It is excluded here to keep its gate coverage unchanged in this focused
# change; folding it into the workspace is tracked separately as it requires
# clearing its own lint backlog.
# member. It stays excluded so its gate coverage is decided deliberately rather
# than inherited; folding it into the workspace is tracked separately. Because
# the exclusion also puts the crate out of reach of workspace-root cargo
# invocations, `make lint-whitaker` runs the Whitaker suite a second time
# against `test_support/dylint.toml`, and `make test-nextest` and `make doctest`
# each run a second time against `$(TEST_SUPPORT_MANIFEST)`.
exclude = ["test_support"]
16 changes: 16 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ RUSTDOC_FLAGS ?= --cfg docsrs -D warnings
VERUS_FLAGS ?=
VERUS_INSTALL_FLAGS ?=
WHITAKER ?= whitaker
# `test_support` is excluded from the root workspace, so root-level cargo
# invocations cannot reach it; the test and lint recipes target it explicitly.
TEST_SUPPORT_MANIFEST ?= test_support/Cargo.toml

export PATH := $(HOME)/.cargo/bin:$(HOME)/.local/bin:$(HOME)/.bun/bin:$(PATH)

Expand All @@ -81,9 +84,13 @@ test: test-nextest doctest ## Run every Rust test with warnings treated as error

test-nextest: ## Run all non-doctest Rust tests through cargo-nextest
RUSTFLAGS="$${RUSTFLAGS:+$$RUSTFLAGS }-D warnings $(POLONIUS_FLAGS)" $(CARGO) nextest run --all-targets --all-features $(NEXTEST_BUILD_JOBS)
# `test_support` is excluded from the root workspace, so the run above cannot
# reach its own tests. Run them separately, as lint-whitaker does.
RUSTFLAGS="$${RUSTFLAGS:+$$RUSTFLAGS }-D warnings $(POLONIUS_FLAGS)" $(CARGO) nextest run --all-targets --all-features --manifest-path "$(TEST_SUPPORT_MANIFEST)" $(NEXTEST_BUILD_JOBS)

doctest: ## Run doctests, which cargo-nextest cannot execute
RUSTFLAGS="$${RUSTFLAGS:+$$RUSTFLAGS }-D warnings $(POLONIUS_FLAGS)" $(CARGO) test --doc --all-features $(BUILD_JOBS)
RUSTFLAGS="$${RUSTFLAGS:+$$RUSTFLAGS }-D warnings $(POLONIUS_FLAGS)" $(CARGO) test --doc --all-features --manifest-path "$(TEST_SUPPORT_MANIFEST)" $(BUILD_JOBS)

test-workflow-contracts: ## Validate the mutation-testing caller contract
uv run --with 'pytest>=8' --with 'pyyaml>=6' pytest tests/workflow_contracts -q
Expand All @@ -98,9 +105,15 @@ lint: lint-clippy lint-whitaker ## Run Clippy and the Whitaker Dylint suite with
lint-clippy: ## Run rustdoc and Clippy with warnings denied
RUSTDOCFLAGS="$(RUSTDOC_FLAGS)" RUSTFLAGS="$${RUSTFLAGS-} $(POLONIUS_FLAGS)" $(CARGO) doc --no-deps
RUSTFLAGS="$${RUSTFLAGS:+$$RUSTFLAGS }-D warnings $(POLONIUS_FLAGS)" $(CARGO) clippy $(CLIPPY_FLAGS)
# `test_support` is excluded from the root workspace, so the run above cannot
# reach it. Lint it separately, as lint-whitaker does.
RUSTFLAGS="$${RUSTFLAGS:+$$RUSTFLAGS }-D warnings $(POLONIUS_FLAGS)" $(CARGO) clippy --manifest-path "$(TEST_SUPPORT_MANIFEST)" $(CLIPPY_FLAGS)

lint-whitaker: ## Run the Whitaker Dylint suite with warnings denied
RUSTFLAGS="$${RUSTFLAGS:+$$RUSTFLAGS }-D warnings $(POLONIUS_FLAGS)" $(WHITAKER) --all -- --all-targets --all-features
# `test_support` is excluded from the root workspace, so the run above cannot
# reach it. Lint it separately against its own dylint.toml.
cd test_support && RUSTFLAGS="$${RUSTFLAGS:+$$RUSTFLAGS }-D warnings $(POLONIUS_FLAGS)" $(WHITAKER) --all -- --all-targets --all-features

fmt: ## Format Rust and Markdown sources
$(CARGO) fmt --all
Expand Down Expand Up @@ -183,6 +196,9 @@ dev-build: dev-fast-check ## Build the debug binary with Cranelift and mold

dev-test: dev-fast-check ## Run the nextest pass with Cranelift and mold
RUSTUP_TOOLCHAIN=$(DEV_FAST_TOOLCHAIN) $(CARGO) --config "$$DEV_FAST_CONFIG" nextest run --all-targets --all-features $(NEXTEST_BUILD_JOBS)
# Mirrors test-nextest: `test_support` is excluded from the root workspace,
# so the run above cannot reach its tests.
RUSTUP_TOOLCHAIN=$(DEV_FAST_TOOLCHAIN) $(CARGO) --config "$$DEV_FAST_CONFIG" nextest run --all-targets --all-features --manifest-path "$(TEST_SUPPORT_MANIFEST)" $(NEXTEST_BUILD_JOBS)

bench-build: dev-fast-check ## Time clean and incremental debug builds for both paths
@CARGO="$(CARGO)" scripts/bench-build.sh
Expand Down
Loading
Loading