Type-check the release profile, and compile in it again #150
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "land/release-build"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
guard: type-check the release profile, and compile in it again
Manifest::liftasserts round-trip stability throughdebug_assert!,whose argument is type-checked in every profile — but
mirrorswas#[cfg(debug_assertions)], so the call survived into release buildswhile the method did not. Keel 0.10.0 and 0.10.1 cannot be built in
release at all.
Nothing here ever compiled that profile. Guard runs
cargo testandclippy
--all-targets, both debug; the acts run a debug binary; and therelease lane publishes crates, where
cargo publishverifies in debugtoo. Keel is a library, so no lane of its own was ever going to reach
release. The first build that did was a downstream Dockerfile, two
versions later.
The gate ungates:
debug_assert!already compiles the call away, so themethod costs nothing in release and dead-code analysis still counts it
used. Guard gains
cargo check --release, which is what would havecaught this — the defect is a type error under a different
cfg, so acheck is enough and takes seconds where a build takes minutes.
release: advance keel to 0.10.2
The release-profile compile fix, with its changelog in en and zh. Nothing
is asked of a caller: the public surface is unchanged and the estate
format stays at eleven.