decrating: absorb shipper-config-runtime into shipper-config::runtime#58
Conversation
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 27 minutes and 52 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: ⛔ Files ignored due to path filters (17)
📒 Files selected for processing (16)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Sweep-cleanup of CI workflows, templates, and docs for references to microcrates and micro-* feature flags that have been deleted or are queued for deletion via absorption PRs #52 #54 #55 #56 #57 #58. Changes: - .github/workflows/ci.yml - removed deleted features (micro-lock, micro-plan, micro-policy, micro-process, micro-store) from BDD matrix - .github/workflows/mutation.yml - removed shipper-plan, shipper-policy, shipper-levels from the mutation-testing target list - .github/workflows/release.yml - added note that publish order is finalized in Phase 8 of the decrating plan - templates/circleci-config.yml - matching feature-matrix cleanup - docs/architecture.md - per-crate absorbed notes in microcrates table plus top-of-section notes on Dependency Graph and Module Responsibilities pointing out those sections reflect pre-decrating state - docs/testing.md - removed deleted crates from example test invocations and the mutation-testing example - RELEASE_CHECKLIST_v0.3.0.md - header note listing absorbed crates and pruned publish steps - RELEASE_NOTES_v0.3.0.md - reworded Modular Architecture bullet to reflect the consolidated public-crate layout References to still-in-flight absorptions (auth, environment, git, storage, engine-parallel, registry, progress) are left alone - they will be cleaned up in their respective absorption PRs. Per docs/decrating-plan.md.
Move the shipper-config-runtime crate (1780 LOC, pure adapter) into crates/shipper-config/src/runtime/ as a pub submodule. The crate had no orchestration or I/O - it only converted shipper-config types into shipper-types::RuntimeOptions - so it fits naturally as a submodule of shipper-config and removes one unnecessary hop from the dependency graph. Changes: - Move src/lib.rs to crates/shipper-config/src/runtime/mod.rs (retargeted `use shipper_config::...` imports to `use crate::...`). - Move tests/*.rs to crates/shipper-config/tests/ and retarget `use shipper_config_runtime::into_runtime_options` to `use shipper_config::runtime::into_runtime_options`. - Move src/snapshots/ to crates/shipper-config/src/runtime/snapshots/ and rename prefix from `shipper_config_runtime__` to `shipper_config__runtime__` to match the new module path used by insta. - Update shipper/src/config.rs: replace `pub use shipper_config_runtime::*` with `pub use shipper_config::runtime::*` to preserve the facade re-export. - Drop shipper-config-runtime dep from crates/shipper/Cargo.toml and fuzz/Cargo.toml; retarget the fuzz_targets/config_runtime_adapter.rs import accordingly. - Remove `crates/shipper-config-runtime` from workspace members. - Update docs/architecture.md and RELEASE_CHECKLIST_v0.3.0.md to reflect the merge; add crates/shipper-config/src/runtime/CLAUDE.md. Per docs/decrating-plan.md Phase 5. Pre-1.0 (v0.3.0-rc.1), so the public `shipper_config_runtime` namespace is gone without a deprecation shim. Validation: cargo check --workspace, cargo test -p shipper-config (299 tests pass incl. all moved snapshots), cargo test -p shipper, cargo test -p shipper-cli, cargo clippy --workspace --all-targets -- -D warnings, cargo fmt --all -- --check all green.
a3ae2bf to
6eced3e
Compare
Sweep-cleanup of CI workflows, templates, and docs for references to microcrates and micro-* feature flags that have been deleted or are queued for deletion via absorption PRs #52 #54 #55 #56 #57 #58. Changes: - .github/workflows/ci.yml - removed deleted features (micro-lock, micro-plan, micro-policy, micro-process, micro-store) from BDD matrix - .github/workflows/mutation.yml - removed shipper-plan, shipper-policy, shipper-levels from the mutation-testing target list - .github/workflows/release.yml - added note that publish order is finalized in Phase 8 of the decrating plan - templates/circleci-config.yml - matching feature-matrix cleanup - docs/architecture.md - per-crate absorbed notes in microcrates table plus top-of-section notes on Dependency Graph and Module Responsibilities pointing out those sections reflect pre-decrating state - docs/testing.md - removed deleted crates from example test invocations and the mutation-testing example - RELEASE_CHECKLIST_v0.3.0.md - header note listing absorbed crates and pruned publish steps - RELEASE_NOTES_v0.3.0.md - reworded Modular Architecture bullet to reflect the consolidated public-crate layout References to still-in-flight absorptions (auth, environment, git, storage, engine-parallel, registry, progress) are left alone - they will be cleaned up in their respective absorption PRs. Per docs/decrating-plan.md.
Fixes two distinct failures that have kept CI red on `main` for weeks
and block every open PR:
1. Snapshot mismatch in `publish_invalid_manifest_content_snapshot`
(`crates/shipper-cli/tests/e2e_expanded.rs`). On Linux CI runners,
`cargo metadata` reports the invalid manifest using a path relative
to the workspace CWD (e.g. `../../../tmp/.tmpXXX/Cargo.toml`). The
tempdir replacement consumed the leading `/`, leaving `..` fragments
that the previous single-pass `.replace("../", "")` could not clean
up (it left `..<TMPDIR>/...`).
`normalize_stderr` now:
- converts backslashes to forward slashes so path separators are
platform-independent in snapshots; and
- iteratively strips `../` and any residual `..<TMPDIR>` fragments
until stable.
Updated the committed snapshot to the canonical forward-slash form.
2. Race in `FileStorage::write` causing
`tests::concurrent_reads_and_writes_same_file` to panic with
"No such file or directory (os error 2)" on macOS and Linux. All
threads writing to the same destination shared a single
`<basename>.tmp` scratch file, so one thread's `rename` could
remove the file while another thread's `rename` was still pending.
Each write now uses a unique temp filename built from pid, thread
id, and subsecond timestamp. Adjusted two local tests that inspected
the old fixed `.tmp` name to observe the more general invariant
("no `.tmp` extension files remain after a successful write") and
relaxed `atomic_write_overwrites_stale_tmp_from_prior_crash` to only
assert the new write succeeds (the new impl intentionally does not
clobber unrelated stale `.tmp` files).
Validated locally on Windows:
- `cargo test -p shipper-storage -- --include-ignored` → 93 lib + 33
integration + 1 doctest pass (including
`concurrent_reads_and_writes_same_file`, previously `#[cfg_attr]`
ignored on Windows; now runs cleanly).
- `cargo test -p shipper-cli --test e2e_expanded` → 126/126 pass.
- `cargo fmt --all -- --check` and
`cargo clippy -p shipper-storage -p shipper-cli --all-targets
--all-features -- -D warnings` both clean.
Coverage-job-only validation (`cargo llvm-cov`) is deferred to CI.
Unblocks green CI for the decrating PR queue (#48-#58).
Summary
shipper-config-runtimemicrocrate (1780 LOC, pure adapter) intocrates/shipper-config/src/runtime/as apub mod. No orchestration, no I/O — just aRuntimeOptions → shipper_types::RuntimeOptionsconversion that naturally belongs next to the config types it reshapes.shippernow depends directly onshipper-configfor the runtime conversion instead of hopping throughshipper-config-runtime(which itself depended onshipper-config). One less crate, one less edge.shipper_config_runtime::X→shipper_config::runtime::Xacross 4 call sites (crates/shipper/src/config.rs,fuzz/fuzz_targets/config_runtime_adapter.rs, and 3 integration test files).shipper_config_runtime__*→shipper_config__runtime__*) to match the new module path thatinstainfers.crates/shipper-config-runtimefrom workspace members; drops its entry fromshipper/Cargo.tomlandfuzz/Cargo.toml.docs/architecture.mdandRELEASE_CHECKLIST_v0.3.0.mdto drop the standalone crate and describe the new submodule.crates/shipper-config/src/runtime/CLAUDE.mddocumenting the absorbed module.Per
docs/decrating-plan.mdPhase 5.Public API
shipper_config_runtime::into_runtime_options.shipper_config::runtime::into_runtime_options.shipperfacade continues to re-export the conversion viapub use shipper_config::runtime::*, so downstream code using the facade is unaffected.shipper_config_runtimenamespace.Test plan
cargo check --workspacecargo test -p shipper-config(231 unit + 2 + 3 + 48 + 15 = 299 tests pass, incl. all migrated snapshots)cargo test -p shippercargo test -p shipper-clicargo clippy --workspace --all-targets -- -D warningscargo fmt --all -- --checkcargo build -p shipper-cli