Reconciliation plan#13748
Conversation
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
a057fa0 to
46e274e
Compare
|
/review |
There was a problem hiding this comment.
Pull request overview
Introduces a new “reconciliation plan” pipeline for docker compose create by replacing the legacy convergence flow with: observed state collection → plan generation (DAG) → parallel plan execution.
Changes:
- Added new reconciliation components:
ObservedState,Plan,reconcilelogic, and a parallelexecutePlanexecutor with grouped progress events. - Refactored
create()to use the new pipeline (including “Running” events for unchanged containers) and removed most of the oldconvergenceimplementation. - Updated
runto resolveservice:references withoutconvergence, and added/updated unit tests for the new modules.
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| reconciliation.md | Architecture/design doc for the new reconciliation engine and pipeline. |
| pkg/compose/run.go | Replaces convergence-based service-reference resolution for run with a new helper. |
| pkg/compose/reconcile_test.go | Adds unit tests validating plan output for networks/volumes/containers/orphans. |
| pkg/compose/reconcile.go | Implements reconciler producing a deterministic DAG plan for infra + containers. |
| pkg/compose/progress.go | Removes runningEvent helper (replaced by direct newEvent usage). |
| pkg/compose/plan_test.go | Adds unit tests for Plan and OperationType stringification. |
| pkg/compose/plan.go | Introduces Plan, PlanNode, Operation, and OperationType abstractions. |
| pkg/compose/observed_state_test.go | Adds tests for observed-state snapshot construction and classification. |
| pkg/compose/observed_state.go | Adds snapshot types + collection logic; adds “Running” events emission helper. |
| pkg/compose/executor_test.go | Adds executor tests using mocked API client calls. |
| pkg/compose/executor.go | Implements parallel plan execution, operation handlers, and grouped progress events. |
| pkg/compose/create.go | Refactors create() to build observed state → reconcile → emit running events → execute plan. |
| pkg/compose/convergence.go | Removes convergence struct/logic; keeps/exports service-reference resolution helpers. |
| pkg/compose/containers.go | Adds getContainersByService() and removes Containers.names(). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| ensureImagesExists -> ensureNetworks/Volumes -> collectObservedState -> reconcile -> executePlan | ||
| (inchange) (inchange) (1) (2) (3) | ||
| ``` |
There was a problem hiding this comment.
Spelling: "inchange" should be "inchangé".
ff0c5cd to
136845b
Compare
|
/review |
|
❌ PR Review Failed — The review agent encountered an error and could not complete the review. View logs. |
8f2d032 to
b812190
Compare
|
/review |
|
❌ PR Review Failed — The review agent encountered an error and could not complete the review. View logs. |
b812190 to
f418dc4
Compare
f418dc4 to
b812190
Compare
b812190 to
08da1d5
Compare
f5336ce to
7bbbc77
Compare
8ab1685 to
341ffc0
Compare
341ffc0 to
5d67ce6
Compare
this is an alternative for #13641
based on previous work, I first generated an analysis an plan document, so AI work on this significant refactoring is better guided and impact is well understood