-
Notifications
You must be signed in to change notification settings - Fork 1
fix(sync): add tools/*.py to sync manifest for reusable workflow support #338
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -90,10 +90,16 @@ codex_config: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| description: "Agent instructions - base instructions for all Codex runs" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Scripts required by consumer workflows | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Note: CI helper scripts (scripts/sync_test_dependencies.py, tools/resolve_mypy_pin.py) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # live in each consumer repo and are not synced; reusable workflows expect them | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # to be present and repo-specific. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Note: These scripts are synced because they're referenced by reusable workflows | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # that run in the consumer repo context | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| scripts: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Tools directory - Python helpers used by reusable-10-ci-python.yml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - source: tools/resolve_mypy_pin.py | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| description: "Resolves mypy version pinning - required by reusable CI workflow" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - source: tools/coverage_trend.py | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| description: "Generates coverage trend summaries - required by reusable CI workflow" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - source: tools/post_ci_summary.py | |
| description: "Posts CI summary information for Gate/Gate-adjacent workflows" |
Copilot
AI
Dec 30, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The synced workflow maint-coverage-guard.yml (line 62 of this manifest) references tools/coverage_guard.py at line 175, but this script is not included in the sync manifest. Consumer repos will fail when running the coverage guard workflow with a "No such file or directory" error.
Add this entry to the scripts section to fix the issue.
| - source: tools/coverage_guard.py | |
| description: "Enforces coverage thresholds - required by maint-coverage-guard workflow" |
Copilot
AI
Dec 30, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The reusable workflow reusable-10-ci-python.yml references scripts/sync_test_dependencies.py at lines 1511 and 1527, but this script is not included in the sync manifest. Consumer repos will fail when running CI with a "No such file or directory" error if they have undeclared test dependencies.
Add this entry to the scripts section to fix the issue.
| - source: scripts/sync_test_dependencies.py | |
| description: "Synchronizes Python test dependencies for CI - required by reusable CI workflow" |
Copilot
AI
Dec 30, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The reusable workflow reusable-10-ci-python.yml references several additional scripts when optional features are enabled:
scripts/ci_metrics.py(line 1847) - needed whenenable-metrics,enable-history, orenable-classificationis truescripts/ci_history.py(line 1867) - needed whenenable-historyorenable-classificationis truescripts/ci_coverage_delta.py(line 1898) - needed whenenable-coverage-deltais truescripts/coverage_history_append.py(line 1956) - needed whenenable-soft-gateis true
While these features default to false, consumer repos enabling any of these features will fail with "No such file or directory" errors. Consider adding these scripts to the sync manifest to support the full feature set of the reusable workflow.
| # Optional CI Python helpers used by reusable-10-ci-python.yml | |
| - source: scripts/ci_metrics.py | |
| description: "Computes and reports CI metrics - used when metrics/history/classification features are enabled" | |
| - source: scripts/ci_history.py | |
| description: "Manages CI history data - used when history/classification features are enabled" | |
| - source: scripts/ci_coverage_delta.py | |
| description: "Calculates coverage deltas between runs - used when coverage-delta feature is enabled" | |
| - source: scripts/coverage_history_append.py | |
| description: "Appends coverage data to history for soft gates - used when soft-gate feature is enabled" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The comment on line 96 states that tools are "used by reusable-10-ci-python.yml", but the synced workflows
pr-00-gate.ymlandmaint-coverage-guard.ymlalso depend on tools/ scripts (post_ci_summary.pyandcoverage_guard.pyrespectively).Consider updating the comment to be more general, such as "Python helpers used by reusable and consumer workflows" to accurately reflect that both reusable workflows and synced caller workflows depend on these scripts.