decrating: Phase 3 — drop micro-all default and delete all micro-* features#76
Merged
Merged
Conversation
…atures Phase 2 is complete (13-crate target achieved). The remaining micro-* features are no-op transitives — they gated the old in-tree-vs-shim architecture-swap system, which is gone now that all absorbed microcrates are physically removed. Removes: - default = ["micro-all"] from shipper-cli - 5 feature definitions from crates/shipper/Cargo.toml - 6 feature definitions from crates/shipper-cli/Cargo.toml - BDD feature-flag matrix from .github/workflows/ci.yml - BDD feature-flag matrix from templates/circleci-config.yml - Feature-flag discussion from docs/architecture.md and docs/testing.md - Duplicate #[cfg(feature = "micro-all")] test in bdd_micro_backends.rs - features/micro_backend_feature_flags.feature (obsolete scenario file) Per docs/decrating-plan.md §6 Phase 3.
There was a problem hiding this comment.
Code Review
This pull request completes Phase 3 of the decrating effort by removing all micro-* feature flags and the associated dual-implementation logic from the shipper and shipper-cli crates. Key changes include the removal of the [features] sections in Cargo.toml files, the simplification of BDD tests to focus on preflight stability rather than feature-flag combinations, and extensive updates to documentation and CI configurations to reflect the move to a single canonical code path. I have no feedback to provide as there were no review comments to assess.
EffortlessSteven
added a commit
that referenced
this pull request
May 24, 2026
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
Phase 3 of the decrating effort. Phase 2 is complete (13-crate target achieved on main), which means the remaining
micro-*feature flags are no-op transitives — they gated the in-tree-vs-shim architecture-swap system, which is gone now that all absorbed microcrates have been physically removed. This PR deletes that dead weight.Per
docs/decrating-plan.md§6 Phase 3.Changes
Cargo manifests
crates/shipper-cli/Cargo.toml: removeddefault = ["micro-all"]and allmicro-*feature passthrough entries;[features]section deleted entirely.crates/shipper/Cargo.toml: deletedmicro-encrypt,micro-webhook,micro-types,micro-config,micro-all;[features]section deleted entirely.CI
.github/workflows/ci.yml: dropped the BDD feature-flag matrix (feature-set: ["", "micro-git", ...]); BDD job now runs a single canonical build.templates/circleci-config.yml: same cleanup.Tests
crates/shipper-cli/tests/bdd_micro_backends.rs: removed the#[cfg(feature = "micro-all")]-gated duplicate test; renamed the surviving modulepreflight_with_micro_backends→preflight_stability; rewrote the module preamble to reflect current reality.features/micro_backend_feature_flags.feature: deleted (the scenarios described behavior that no longer exists).Docs
docs/architecture.md: removed theCompile-Time Feature Flagsfeature-matrix block and the "optional composition viamicro-*" bullet, replaced with a note about the canonical-single-path model.docs/testing.md: removed--features micro-gitexamples and the "BDD suites across all micro-backend feature combinations" note.docs/decrating-plan.md: marked Phase 3 complete with a concrete status block listing what landed.Diff stat: 9 files changed, 43 insertions(+), 179 deletions(-).
Verification
cargo check --workspace --all-targets— cleancargo clippy --workspace --all-targets --all-features -- -D warnings— cleancargo fmt --all -- --check— cleancargo build -p shipper-cli— cleancargo run -p shipper-cli -- --help/plan --help— responds correctly, no regression in CLI surfacecargo test -p shipper— one pre-existing flake (ops::git::cleanliness::tests::ensure_git_clean_new_phrasing) reproduces identically on unmodified main; unrelated to this PR.cargo test -p shipper-cli— one pre-existing flake (e2e_expanded::preflight_allow_dirty_snapshot, network timing in the tiny_http mock) also reproduces on unmodified main; unrelated to this PR.grep '#\[cfg(feature = "micro'across the crates tree returns no matches.Test plan
cargo run -p shipper-cli -- planagainst a sample workspace still works end-to-endshipper-cli/shipperfeatures