Refactor plan builder into focused modules#248
Conversation
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Warning Rate limit exceeded
You’ve run out of usage credits. Purchase more in the billing tab. ⌛ 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 selected for processing (6)
✨ 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 |
|
Droid finished @EffortlessSteven's task —— View job Review Complete ✓ Phase 2 Validation Result: Approved — no issues found. Summary: The refactoring cleanly splits the
|
Motivation
build_planimplementation was large and mixed multiple responsibilities (metadata loading, publishability checks, graph construction, selection, sorting, and plan assembly), making it hard to reason about and test.Description
build_planbody with a short orchestration that delegates to focused submodules:metadata,publishability,graph,selection, andassembly, and wire their APIs together viabuild_plan.crates/shipper-core/src/plan/metadata.rsto isolate thecargo metadataboundary andload_metadatacall used by planning.crates/shipper-core/src/plan/publishability.rsto compute the publishable workspace set, record skipped packages, and encapsulatepublish_allowed/skip-reason logic.crates/shipper-core/src/plan/graph.rsto construct manifest-level workspace dependency edges, validate non-publishable deps, and provide the deterministictopo_sortimplementation.crates/shipper-core/src/plan/selection.rsto resolve selected-package inclusion and transitively include internal dependencies.crates/shipper-core/src/plan/assembly.rsto buildPlannedPackagevalues, produce the dependency projection map, and compute the stableplan_idhash.crates/shipper-core/src/plan/mod.rsto use the new modules and to assemble the finalPlannedWorkspacefrom their outputs while preserving existing behavior and test surface.Testing
cargo check -p shipper-coreand it completed successfully.cargo test -p shipper-core planand the plan-related test suite completed successfully (all tests passed).cargo fmt --all -- --checkand the code is properly formatted (check passed).Codex Task