整理代码
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
# ECM Sync Quality Cleanup Execution Plan
|
||||
|
||||
## Goal
|
||||
|
||||
This cleanup pass keeps behavior unchanged and prioritizes deleting, merging, and unifying duplicated code on the single-pipeline path.
|
||||
|
||||
Acceptance remains unchanged:
|
||||
|
||||
- `backend/local_tests/sync_system_tests/depm_to_ecm_bootstrap_pull_then_project_push.pipeline.yaml` must still run successfully.
|
||||
- Local Summary and Remote Summary must keep the same structure and stable output shape.
|
||||
|
||||
## Constraints
|
||||
|
||||
- Do not modify `schemas/`.
|
||||
- Do not modify `filtered_datasource/`.
|
||||
- Do not bypass schema validation.
|
||||
- Do not add fallback logic that changes behavior.
|
||||
- Prefer helper extraction, deletion, and merge over new abstraction layers.
|
||||
|
||||
## Execution Order
|
||||
|
||||
### Batch 1: Entry + Factory
|
||||
|
||||
Status: completed
|
||||
|
||||
- Turn `run.py` into a thin wrapper around `sync_state_machine.cli.main`.
|
||||
- Merge duplicated datasource lifecycle and resolved-config logging in `sync_state_machine/pipeline/factory.py`.
|
||||
- Verify with focused unit tests and the real DEPM to ECM profile.
|
||||
|
||||
### Batch 2: Pipeline Flow + Backend Runner
|
||||
|
||||
Status: completed
|
||||
|
||||
- Reduce repeated phase-completion, strategy-loop, reload-skip, and close-handling code in `sync_state_machine/pipeline/full_sync_pipeline.py`.
|
||||
- Reduce repeated orchestration code in `backend/app/thirdparty/ecm_sync/scripts/depm_to_ecm/run_pipeline.py` without changing CLI behavior or fail-fast rules.
|
||||
- Keep log text stable where practical.
|
||||
|
||||
### Batch 3: Datasource + Handler Base Cleanup
|
||||
|
||||
Status: completed
|
||||
|
||||
- Reduce duplicated handler registration and context injection between datasource base classes and subclasses.
|
||||
- Reduce duplicated node metadata initialization across handler subclasses by pushing safe defaults into handler base classes.
|
||||
- Delete domain-level constructor boilerplate where subclasses only repeat node type, node class, schema, or no-op `_create_node` wrappers.
|
||||
|
||||
### Batch 4: Domain Repeat Cleanup + Docs
|
||||
|
||||
Status: in progress
|
||||
|
||||
- Inspect domain handlers for repeated load/update helper logic and merge only stable repeated fragments into shared helpers.
|
||||
- Update docs so they only describe the real maintained execution path.
|
||||
- Keep backend runner documentation aligned with current script behavior.
|
||||
- Remove stale references only after code paths are confirmed stable.
|
||||
|
||||
## Validation Plan
|
||||
|
||||
1. Run targeted `ecm_sync_system` unit tests for the touched pipeline code.
|
||||
2. Run the real backend profile with the backend interpreter.
|
||||
3. Confirm the output still ends with pipeline completion plus Local Summary and Remote Summary tables.
|
||||
|
||||
## Current Focus
|
||||
|
||||
Current implementation focus is Batch 4.
|
||||
|
||||
- repeated load/update helpers under `sync_state_machine/domain/`
|
||||
- maintained execution-path docs under `docs/`
|
||||
|
||||
The intent is code reduction only, not behavior redesign.
|
||||
Reference in New Issue
Block a user