Cross-pipeline structural analysis: shared images, unreachable steps, orphaned files #5
Notifications
Due Date
No due date set.
Depends on
Reference: oleks/pipetree#5
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
SPEC.md roadmap item 4. Once JSON output is stable and consumed by more
than one caller, build analysis on top of it:
consolidation).
depends_onbut also neverdefault-run.
.woodpecker/*.yamlfiles nothing references.Depends on #1 and #4 (rollup mode and the health layer both exercise/stress
the JSON shape first, per the v0.3 milestone plan).
Source: SPEC.md.
Acceptance criteria
depends_on).woodpecker/*.yamldetection defined and implemented (what makes a file "orphaned" needs a precise definition — e.g. not reachable from any tag/event that could plausibly fire it)~/projectswith at least one confirmed true positive per categoryResolved by
2f13297(v0.3 batch push), with a course-correction: the originally planned "unreachable steps" check was dropped after reading Woodpecker's actual DAG compiler source proved it describes something that can't happen (caught via a live false positive against builder-arbitrage before shipping). Replaced with two source-verified depends_on checks (step-level = hard compile error, pipeline-level = silently dropped workflow). Also found+fixed a real parser bug along the way: depends_on's {name, optional} mapping form was silently parsed as empty strings (forrest/notify.yaml). Fleet currently shows 0 broken depends_on (clean, not untested - the shared-images check alone confirmed 15 true positives). See SPEC.md for full detail.