Skip to content

decrating: absorb shipper-process into shipper::ops::process#55

Merged
EffortlessSteven merged 1 commit into
mainfrom
feature/decrating-absorb-process
Apr 15, 2026
Merged

decrating: absorb shipper-process into shipper::ops::process#55
EffortlessSteven merged 1 commit into
mainfrom
feature/decrating-absorb-process

Conversation

@EffortlessSteven

Copy link
Copy Markdown
Member

Summary

  • Absorbs the standalone shipper-process microcrate (1948 LOC) into crates/shipper/src/ops/process/ as crate-private modules. See docs/decrating-plan.md §6 Phase 2.
  • Splits the canonical implementation into cohesive sub-files: types.rs (result types), run.rs (basic runners), timeout.rs (timeout-aware runner), which.rs (PATH lookups), cargo.rs (cargo convenience wrappers), plus three test modules (tests.rs, snapshot_tests.rs, cross_platform_edge_case_tests.rs). A thin mod.rs facade re-exports what the single in-tree caller (crate::cargo) needs.
  • Deletes the stale 105-LOC duplicate at crates/shipper/src/process.rs and the 32-LOC shim at crates/shipper/src/process_micro.rs. Drops shipper-process from workspace members and from shipper's dependencies, plus the micro-process feature in both shipper and shipper-cli. Adds which = "8.0" to shipper and enables the yaml feature on the insta dev-dep so the co-located snapshot tests keep working.

Visibility

All items in ops::process are pub(crate) — this subsystem is an internal implementation detail. crate::cargo (the only call site) goes through crate::ops::process::run_command_with_timeout.

Conflict notes

  • crates/shipper/src/ops/mod.rs — this PR appends pub(crate) mod process;. The concurrent lock-absorption PR also modifies this file to append pub(crate) mod lock;. Expect a small, trivially resolvable textual conflict when the second PR lands.
  • crates/shipper/Cargo.toml, crates/shipper-cli/Cargo.toml, and the root Cargo.toml workspace members list are edited by several concurrent absorption PRs at disjoint lines — git auto-merge should handle those.

Test plan

  • cargo check --workspace --all-targets — clean.
  • cargo clippy --workspace --all-targets --all-features -- -D warnings — clean.
  • cargo fmt --all -- --check — clean.
  • cargo test -p shipper --lib ops::process — 113 tests pass (matches the original microcrate's test count).
  • cargo test -p shipper --lib — 881 tests pass.
  • cargo test -p shipper-cli — 10 tests pass.
  • Snapshot files moved and renamed from shipper_process__snapshot_tests__* to shipper__ops__process__snapshot_tests__* with source: paths updated; insta accepts them without regeneration.

@gemini-code-assist

Copy link
Copy Markdown

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@coderabbitai

coderabbitai Bot commented Apr 15, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@EffortlessSteven has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 35 minutes and 13 seconds before requesting another review.

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 35 minutes and 13 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: fcc2bdc2-151f-4d07-adaa-92573820061d

📥 Commits

Reviewing files that changed from the base of the PR and between f99aef6 and 01e813b.

⛔ Files ignored due to path filters (16)
  • Cargo.lock is excluded by !**/*.lock
  • crates/shipper/src/ops/process/snapshots/shipper__ops__process__snapshot_tests__command_output_failure.snap is excluded by !**/*.snap
  • crates/shipper/src/ops/process/snapshots/shipper__ops__process__snapshot_tests__command_output_json_format.snap is excluded by !**/*.snap
  • crates/shipper/src/ops/process/snapshots/shipper__ops__process__snapshot_tests__command_output_success.snap is excluded by !**/*.snap
  • crates/shipper/src/ops/process/snapshots/shipper__ops__process__snapshot_tests__command_output_timed_out.snap is excluded by !**/*.snap
  • crates/shipper/src/ops/process/snapshots/shipper__ops__process__snapshot_tests__command_result_failure_no_exit_code.snap is excluded by !**/*.snap
  • crates/shipper/src/ops/process/snapshots/shipper__ops__process__snapshot_tests__command_result_failure_with_exit_code.snap is excluded by !**/*.snap
  • crates/shipper/src/ops/process/snapshots/shipper__ops__process__snapshot_tests__command_result_json_format.snap is excluded by !**/*.snap
  • crates/shipper/src/ops/process/snapshots/shipper__ops__process__snapshot_tests__command_result_success.snap is excluded by !**/*.snap
  • crates/shipper/src/ops/process/snapshots/shipper__ops__process__snapshot_tests__command_result_with_multiline_output.snap is excluded by !**/*.snap
  • crates/shipper/src/ops/process/snapshots/shipper__ops__process__snapshot_tests__error_message_empty_stderr.snap is excluded by !**/*.snap
  • crates/shipper/src/ops/process/snapshots/shipper__ops__process__snapshot_tests__error_message_with_exit_code.snap is excluded by !**/*.snap
  • crates/shipper/src/ops/process/snapshots/shipper__ops__process__snapshot_tests__error_message_without_exit_code.snap is excluded by !**/*.snap
  • crates/shipper/src/ops/process/snapshots/shipper__ops__process__snapshot_tests__snapshot_publish_args_basic.snap is excluded by !**/*.snap
  • crates/shipper/src/ops/process/snapshots/shipper__ops__process__snapshot_tests__snapshot_publish_args_full_flags.snap is excluded by !**/*.snap
  • crates/shipper/src/ops/process/snapshots/shipper__ops__process__snapshot_tests__snapshot_publish_args_with_registry_and_no_verify.snap is excluded by !**/*.snap
📒 Files selected for processing (23)
  • Cargo.toml
  • RELEASE_CHECKLIST_v0.3.0.md
  • crates/shipper-cli/Cargo.toml
  • crates/shipper-process/CLAUDE.md
  • crates/shipper-process/Cargo.toml
  • crates/shipper-process/README.md
  • crates/shipper-process/src/lib.rs
  • crates/shipper/Cargo.toml
  • crates/shipper/src/cargo.rs
  • crates/shipper/src/lib.rs
  • crates/shipper/src/ops/mod.rs
  • crates/shipper/src/ops/process/CLAUDE.md
  • crates/shipper/src/ops/process/cargo.rs
  • crates/shipper/src/ops/process/cross_platform_edge_case_tests.rs
  • crates/shipper/src/ops/process/mod.rs
  • crates/shipper/src/ops/process/run.rs
  • crates/shipper/src/ops/process/snapshot_tests.rs
  • crates/shipper/src/ops/process/tests.rs
  • crates/shipper/src/ops/process/timeout.rs
  • crates/shipper/src/ops/process/types.rs
  • crates/shipper/src/ops/process/which.rs
  • crates/shipper/src/process.rs
  • crates/shipper/src/process_micro.rs
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/decrating-absorb-process

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 16ffc58b87

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread crates/shipper-cli/Cargo.toml Outdated
Comment on lines 43 to 44
micro-registry = ["shipper/micro-registry"]
micro-process = ["shipper/micro-process"]
micro-policy = ["shipper/micro-policy"]

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Preserve micro-process feature alias for shipper-cli

Removing the micro-process feature from shipper-cli makes the existing CI matrix fail because .github/workflows/ci.yml still runs cargo test -p shipper-cli --features "micro-process" (BDD job, line 213/233), which now errors with the package 'shipper-cli' does not contain this feature. This blocks that matrix leg (and any downstream automation still using the feature flag), so the feature removal needs to be coordinated with workflow updates or kept as a compatibility alias in the same change.

Useful? React with 👍 / 👎.

EffortlessSteven added a commit that referenced this pull request Apr 15, 2026
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 shipper-process crate (1948 LOC) into crates/shipper/src/ops/process/
as crate-private modules, split into types.rs, run.rs, timeout.rs, which.rs,
cargo.rs + mod.rs facade, tests.rs, snapshot_tests.rs, and
cross_platform_edge_case_tests.rs. Delete the stale 105-LOC duplicate at
crates/shipper/src/process.rs and the 32-LOC shim at process_micro.rs.
Remove shipper-process from workspace members and from shipper's deps.
Drop the micro-process feature flag (from both shipper and shipper-cli
Cargo.toml). Add `which = "8.0"` as a shipper dep and enable `yaml`
feature on insta dev-dep to support the co-located snapshot tests.

Per docs/decrating-plan.md §6 Phase 2.
@EffortlessSteven EffortlessSteven force-pushed the feature/decrating-absorb-process branch from 16ffc58 to 01e813b Compare April 15, 2026 06:00
@EffortlessSteven EffortlessSteven merged commit cf89360 into main Apr 15, 2026
2 of 3 checks passed
EffortlessSteven added a commit that referenced this pull request Apr 15, 2026
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.
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