refactor(crates): rename published libraries to the scry-sai-* namespace#46
Merged
Conversation
Adopt the scry-sai-* (Sound Abstract Interpretation) crates.io namespace for the published library set, using the witness DEC-034 trick: rename only the Cargo `[package] name`; keep the `[lib] name` (scry_interval, …) and the on-disk directories (crates/scry-interval/, …) so `use scry_interval` and the Bazel target paths `//crates/scry-interval:scry_interval` are unchanged. Package renames (dir / lib name unchanged): scry-interval -> scry-sai-interval scry-taint -> scry-sai-taint scry-octagon -> scry-sai-octagon scry-provenance -> scry-sai-provenance scry-analyze-core -> scry-sai-core Dependent dep KEYS updated to the new package names (scry-analyze-core, wasm-lattice, scry-host-tests, scry-mcdc, scry-analyzer); code still imports the unchanged lib names. scripts/publish.rs now carries (dir, package) pairs since the crates.io package name differs from the directory. The Wasm-component crates (wasm-lattice, scry-analyzer) get their scry-sai-* package rename + the wit_bindgen::generate! binding refactor needed to publish in a follow-up PR (it touches the //:scry composition); they stay publish=false here and ship as signed .wasm assets. Verified: cargo build/test green (5 + 24), the 4 leaves cargo-package under the new names, scry-mcdc (separate workspace) builds, bare cargo build --release, fmt/clippy/rivet clean. Bazel target names + crate_name unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The clippy/test jobs invoked cargo --package scry-{provenance,taint,octagon};
those packages are now scry-sai-*. Update the --package args (the scry-host-tests
job and all crates/<dir> path references are unchanged). Also fix the
publish-to-crates-io.yml comments to the new names.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adopt the
scry-sai-*(Sound Abstract Interpretation) crates.io namespace for the published library set, using the witness DEC-034 trick: rename only the Cargo[package] name; keep the[lib] nameand the on-disk directories souse scry_intervaland the Bazel target paths are unchanged. Nothing is on crates.io yet, so this rename is free.This is part 1 of 2 — the 5 pure libraries. The two Wasm-component crates additionally need a
wit_bindgen::generate!binding refactor (it touches the//:scrycomposition) and come in a follow-up PR.Renames (directory +
[lib] nameunchanged)use)scry-sai-intervalcrates/scry-interval/scry_intervalscry-sai-taintcrates/scry-taint/scry_taintscry-sai-octagoncrates/scry-octagon/scry_octagonscry-sai-provenancecrates/scry-provenance/scry_provenancescry-sai-corecrates/scry-analyze-core/scry_analyze_coreDependent dep keys updated to the new package names (in
scry-analyze-core,wasm-lattice,scry-host-tests,scry-mcdc,scry-analyzer); code imports the unchanged lib names.scripts/publish.rsnow uses(dir, package)pairs.Why the trick (no source / Bazel churn)
use scry_intervaletc. unchanged (lib name preserved).rust_libraryname/crate_nameand//crates/scry-interval:scry_intervaltarget paths unchanged (Bazel doesn't use the Cargo package name for local targets).BUILD.bazel/MODULE.bazelpath churn.Verification
cargo build/cargo testgreen (5 analyzer + 24 octagon tests).cargo packageunder the new names.scry-mcdc(separate workspace) builds againstscry-sai-core.cargo build --release,fmt,clippy,rivet validateclean.🤖 Generated with Claude Code