Skip to content

decrating: Phase 3 — drop micro-all default and delete all micro-* features#76

Merged
EffortlessSteven merged 1 commit into
mainfrom
feature/decrating-phase3-drop-micro
Apr 15, 2026
Merged

decrating: Phase 3 — drop micro-all default and delete all micro-* features#76
EffortlessSteven merged 1 commit into
mainfrom
feature/decrating-phase3-drop-micro

Conversation

@EffortlessSteven

Copy link
Copy Markdown
Member

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: removed default = ["micro-all"] and all micro-* feature passthrough entries; [features] section deleted entirely.
  • crates/shipper/Cargo.toml: deleted micro-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 module preflight_with_micro_backendspreflight_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 the Compile-Time Feature Flags feature-matrix block and the "optional composition via micro-*" bullet, replaced with a note about the canonical-single-path model.
  • docs/testing.md: removed --features micro-git examples 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 — clean
  • cargo clippy --workspace --all-targets --all-features -- -D warnings — clean
  • cargo fmt --all -- --check — clean
  • cargo build -p shipper-cli — clean
  • cargo run -p shipper-cli -- --help / plan --help — responds correctly, no regression in CLI surface
  • cargo test -p shipperone 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-clione 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

  • CI green on PR
  • Manual: cargo run -p shipper-cli -- plan against a sample workspace still works end-to-end
  • Verify no downstream consumer in this repo references shipper-cli / shipper features

…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.
@EffortlessSteven EffortlessSteven merged commit dc0f866 into main Apr 15, 2026
9 of 16 checks passed

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant