v1.0 local release gate
This checklist is the reproducible, repository-local gate for v1.0. It does not claim that hosted CI, an external audit, or an external chemistry oracle has completed. Run it from a clean checkout with the release candidate revision selected.
Required checks
# Static and dependency controls
cargo fmt --all -- --check
cargo check --workspace --all-targets --locked
cargo clippy --workspace --all-targets -- -D warnings
cargo audit
cargo deny check --all-features
python3 scripts/check_workflow_pins.py
python3 scripts/check_unsafe_surface.py
python3 scripts/security_review_gate.py
python3 scripts/validate_long_run_evidence.py
python3 scripts/check_release_docs_consistency.py
# Rust and binding contracts
cargo test --workspace --all-targets --locked
cargo test -p chematic-smiles --test cross_binding_contract --locked
python3 -m pytest crates/chematic-py/tests/ -q
(cd crates/chematic-wasm && wasm-pack build --target nodejs --out-dir pkg-node --release)
for f in crates/chematic-wasm/tests/*.test.mjs; do node "$f"; done
# Focused Miri (Linux nightly)
cargo +nightly miri test -p chematic-core --lib molecule::tests::test_with_atom_removed_remaps_bond_direction
cargo +nightly miri test -p chematic-core --lib molecule::tests::test_remove_bond_remaps_bond_direction_not_misattributes
cargo +nightly miri test -p chematic-smiles --lib canonical::tests::test_caffeine_stable
cargo +nightly miri test -p chematic-smiles --lib canonical::tests::ez_canonical_smiles_is_idempotent
# Sanitizers (Linux nightly; run each separately)
bash scripts/run_sanitizer.sh address
bash scripts/run_sanitizer.sh leak
bash scripts/run_sanitizer.sh thread
cargo test --workspace --all-targets --locked は、bench harness に
test-runner 用の追加引数を渡さず実行する。Experimental 3D の反復最適化
と大規模 canonical corpus は通常ゲートから分離し、必要なときは次の
明示 lane を実行する。
# Experimental 3D / MMFF94 long-run lane
cargo test -p chematic-3d --lib -- --ignored
# Corpus-scale canonical measurement lane
cargo test -p chematic-chem --test canonical_idempotency_corpus_standardized -- --ignored
これらのテストは削除・無効化されたのではなく、実行時間と実験的な
収束特性を理由に通常の v1.0 gate から quarantine されている。通常
workspace gate と各 long-run lane の結果は manifest に別々に記録する。
今回の実行結果は
validation/manifests/v1.0.0-long-run-evidence.json
に固定している。corpus lane は並列実行で contention が発生し得るため、
ChEMBL accuracy は単独実行を正規の再現手順とする。
The Miri and sanitizer commands require Linux nightly; on macOS they must be run in a Linux environment and the result recorded as supplemental execution evidence. The local gate still requires the checked-in workflows and runner scripts to remain present and reproducible.
Fuzz gate
cargo fuzz run smiles -- -runs=100000
cargo fuzz run xyz -- -runs=100000
cargo fuzz run moljson -- -runs=100000
cargo fuzz run formats -- -runs=100000
cargo fuzz cmin smiles
cargo fuzz cmin xyz
cargo fuzz cmin moljson
cargo fuzz cmin formats
Review fuzz/artifacts/ for new crash or timeout files and retain minimized
regressions under fuzz/corpus/. The fuzz lockfile and corpus are local
campaign outputs and are intentionally not part of the main workspace lock.
Release decision
Record the candidate revision, command results, toolchain versions, and any typed residual failures in the release manifest. Do not mark S5 independent review complete unless a non-maintainer review or external audit actually occurred.