chore - 1480 incan_driver is a crate - #1581
Open
dannymeijer wants to merge 16 commits into
Open
dannymeijer wants to merge 16 commits into
dannymeijer wants to merge 16 commits into
Conversation
…an-ir-and-incan-emit-crates
…n-store-and-oven-rustc-crates
…k-model-into-oven-model
…an-provider-and-incan-oven-facet-crates
…480-oven-store-and-oven-rustc-crates
…/1480-lock-model-into-oven-model
…incan-provider-and-incan-oven-facet-crates
This was referenced Sep 15, 2026
… cycle reaches it
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
The driver becomes the crate LAYOUT names as the root crate's closest successor.
loaves/compiler/incan_driverissrc/driver/as its root — sessions, module collection, typecheck orchestration, Cargo policy, the lock and test-discovery logic, the build pipeline behind theclifeature — withbackend/(the generated project, the shadow comparison,c_abi, and thebackend::irshim overincan_ir/incan_emit),inspect/(the codegraph and closure analyses),generated_cache,replacement_compatibilityand its frozen v0.5 baselines as its modules.cli/commands/shadow_support.rscomes along asshadow_support: it was driver glue that happened to live under the CLI, and the shadow tests calling itsprepare_shadow_legacy_materializationwere the lastbackend → clireach; the CLI keeps a one-line re-export ofcompare_source_observablefor theruncommand.The root re-exports every module under its old path —
driver,backend,inspect,generated_cache,replacement_compatibility— so the 131crate::driver::…references in the CLI, the 8 in the LSP, and everyincan::driver::…,incan::backend::…andincan::replacement_compatibility::…intests/are untouched. Inside the crate the spellings became its own:crate::driver::→crate::,crate::provider::→incan_provider::,crate::oven::→ the store or the baker crate,crate::lockfile::→oven_model::lock::, and thesuper::chains that climbed to the old root are absolute paths now.Facts the split carries, each fixed here:
reset_project_lock_collection_metrics,project_lock_collection_counts) and its build tests borrowdriver::build::test_support; both werecfg(test)and ride the crate'stest_supportfeature now, which the root's dev-dependency turns on. The feature also forwards the provider's, emission's, the frontend's, rust-inspect's and the Oven crates' test-support features, so one flag lights the whole stack.driver/lockhas a submodule namedrust_inspect, so the crate's paths to therust_inspectcrate are spelled::rust_inspect.CARGO_MANIFEST_DIRanchors meant the checkout root (the generatedCargo.tomltests'crates/…paths, the prepare-project test'sCargo.lock, the replacement-compatibility corpus root); they anchor atoven_model::toolchain_layout::development_root(). Twoinclude_str!paths that climbed out ofsrc/climb three more levels.cliincluded in its defaults: the build pipeline, the report and test-output derives, and the compatibility corpus's checked collection are behind it (12 tests need it), and the root's defaults had it.cargo test -p incan_driverwantsCARGO_BIN_EXE_incanpointing at a built CLI, as the root's unit tests always did; the Oven suite exports it for every root.src/frontend/…,src/backend/replacement/…) — something only the generator andcommitted_projections_match_the_validated_registrysee, which the light lane never runs. Re-rooted here with the frozen v0.5 snapshot (its constant, the baselinemanifest.json,tests/example_capability_coverage.rs), and the docs inventory regenerated withgenerate_replacement_compatibility_inventory.shadow_support.rsentry; the semantic-string audit classifies fourteen driver-crate files for the first time (backend/{c_abi,project,shadow},generated_cache,inspect/,replacement_compatibilitywith its 40 identifier sites,shadow_support) and refreshes one fingerprint whose site now spellsoven_rustc::loaf::OVEN_LOAF_ENV.src/driver,src/backend,src/inspect,src/generated_cache.rs,src/replacement_compatibility*,shadow_support.rs→ the crate).backend/project/{plan,lock_projection,cargo_toml,runner}.rsstay in the driver for now: their moves intooven_rustcandoven_cargo_compatneed inversions of their own (the runner's cfg-gated rust-inspect hook, the generated-project stdlib baseline as plan facts) and are the Oven ring's next step, not this crate's.Type of change
docs/RFCs/*)Area(s)
Key details
incan_codegraph,rust_inspect,clap(optional), serde/toml/toml_edit, sha1/sha2/hex, semver, rustix, tempfile, thiserror, tracing.Cargo.lockgains it. What remains in the root crate is the CLI, the LSP, the binaries andtests/— the next two steps.pubis wider than the crate's eventual surface.Testing / verification
cargo check -p incanin the six feature configurations;cargo clippy --all-targetsdefault and--all-featureswith-D warnings; rustdoc gate lastcargo test -p incan_driverwith the CLI built — 412/413, the one miss the macOSTMPDIRcanonicalization case (canonical_frames_reenter_the_entry_module_through_a_checked_cycle, identical on dev.5)cargo test --test cli_layering_guardrails --test vocab_guardrails --test layering_guardcargo test --test codegen_snapshot_tests— 266 unchangedmake check-oven-ringcli::commands::{build,run,oven,tools,lock},cli::test_runner,lsp— 112/116, the four misses the prewarmed-storebuild_library_*/inspect_registry_*class that fails identically on the base treemake test-one TEST_ROOT=tests/cli_surface_tests.rs TEST_EXACT=a_cargo_manifest_beside_a_loaf_manifest_warns_without_stopping_the_build— bake + buildDocs impact
Checklist
Part of #1480 (slice 5, #1478). Builds on #1577, #1578, #1579 and #1580: the branch carries their commits, so the diff shows every step until they land and merge-commit syncs narrow it to this one.