Skip to content

chore - 1481 the kernel-side crates move into their rings - #1582

Open
dannymeijer wants to merge 18 commits into
0.6.0-dev.5from
chore/1481-kernel-crates-into-rings
Open

dannymeijer wants to merge 18 commits into
0.6.0-dev.5from
chore/1481-kernel-crates-into-rings

Conversation

@dannymeijer

Copy link
Copy Markdown
Member

Summary

Step 4a of the layout rewrite: the crates that are not toolchain support crates move into their rings by directory. incan_syntax, incan_semantics_core and incan_codegraph go to loaves/kernel/; rust_inspect and incan_semantics_stdlib go to loaves/compiler/ — the semantics packs are compiler implementation per layering.md, so they sit beside incan_provider rather than in the kernel; crates/third_party becomes loaves/third_party. Crate names stay what they are (step 5 renames incan_coreincan_lang, incan_semantics_coreincan_semantics, rust_inspectincan_inspect); the directories carry the crate names until then, and each crate's README says so.

The five toolchain support crates stay under crates/ for now, deliberately: incan_core, incan_derive, incan_stdlib, incan_vocab and incan_web_macros are what the release archive ships under crates/, what generated projects and SDK components depend on by path, and what CI's INCAN_TOOLCHAIN_CRATES_DIR override points at as one directory. They move together with the toolchain path policy in 4b (the stdlib ring), as recorded on #1481.

What names the moved paths and follows them: every manifest path dependency (the root, the compiler-ring crates, the kernel crates' own ../incan_core/../incan_vocab); the compiler-suite target spelling for rust_inspect's lib in oven_model::compiler_suite_env; the third_party registry-patch directory policy in legacy_cargo (and its test); the effect-digest roots for the two semantics crates; the rustdoc gate's third_party skip rule; the semantic-string audit's roots and fixture entries for rust_inspect; the reporter label in one native-test test; and the in-repo docs that name the parser directory (AGENTS.md, the test skill and agent). The moved crates' rustdoc fills the width, like every crate moved before it.

Type of change

  • Bug fix
  • New feature
  • Refactor / maintenance
  • Documentation
  • CI / tooling
  • RFC (adds/updates docs/RFCs/*)

Area(s)

  • Incan Language (syntax/semantics)
  • Compiler (frontend/backend/codegen)
  • Tooling (CLI/formatter/test runner)
  • Editor integration (LSP/VS Code extension)
  • Runtime / Core crates (stdlib/core/derive)
  • Documentation

Key details

  • User-facing behavior: none; the release archive's crates/ layout is untouched because the support crates did not move.
  • Internals: six directory moves; Cargo.lock does not change (path dependencies record no paths). check_oven_ring still passes: no Oven crate depends on any moved crate.
  • Risks: none beyond a path someone spells by hand; scripts/check_doc_paths.py (step 6) catches the docs-site ones.

Testing / verification

  • cargo check -p incan in the six feature configurations; cargo clippy --all-targets default and --all-features with -D warnings; rustdoc gate last
  • cargo test -p incan_syntax -p incan_semantics_core -p incan_codegraph -p rust_inspect -p incan_semantics_stdlib — 543 tests, the incan_syntax embedded-fragment tests reading the examples/pro consumers through one more ../
  • cargo test --test cli_layering_guardrails --test vocab_guardrails --test layering_guard
  • cargo test --test codegen_snapshot_tests — 266 unchanged
  • make check-oven-ring
  • root unit tests with the CLI built for cli::commands::inspect, cli::commands::oven, lsp
  • one exact Oven root: make test-one TEST_ROOT=tests/cli_surface_tests.rs TEST_EXACT=a_cargo_manifest_beside_a_loaf_manifest_warns_without_stopping_the_build — bake + build, the compiler suite's target plan names rust_inspect's new path

Docs impact

  • No docs changes needed beyond the in-repo path mentions updated here (the docs site is step 6)
  • Docs updated
  • Docs follow Divio intent (tutorial/how-to/reference/explanation) where applicable

Checklist

  • I kept public docs user-focused and moved internals to contributing docs when appropriate
  • I avoided duplicating canonical install/run instructions in multiple places
  • I added/updated tests where it materially reduces regressions

Part of #1481 (slice 5, #1478). Builds on #1577#1581: the branch carries their commits, so the diff shows every step until they land and merge-commit syncs narrow it to this one.

@incan-triage-bot incan-triage-bot Bot added incan compiler Suggestions, features, or bugs related to the Compiler (frontend/backend/codegen) runtime / core crates Suggestions, features, or bugs related to the `incan-core`, `incan-stdlib`, 'incan-derive` crates tooling Suggestions, features, or bugs related to the Tooling (CLI/formatter/test runner) labels Sep 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

incan compiler Suggestions, features, or bugs related to the Compiler (frontend/backend/codegen) runtime / core crates Suggestions, features, or bugs related to the `incan-core`, `incan-stdlib`, 'incan-derive` crates tooling Suggestions, features, or bugs related to the Tooling (CLI/formatter/test runner)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant