-
Notifications
You must be signed in to change notification settings - Fork 0
chore(workspace): propagate unified make and release automation #3
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
c318dcb
2b3b507
cf58975
d616bbb
a8de292
1f638d9
0096967
9c63c47
be9ad89
9ca7374
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 | ||||
|---|---|---|---|---|---|---|
|
|
@@ -19,6 +19,17 @@ CHECK_GATES ?= | |||||
| VALIDATE_GATES ?= | ||||||
| DOCS_PHASE ?= all | ||||||
| AUTO_ADJUST ?= 1 | ||||||
| PR_ACTION ?= status | ||||||
| PR_BASE ?= main | ||||||
| PR_HEAD ?= | ||||||
| PR_NUMBER ?= | ||||||
| PR_TITLE ?= | ||||||
| PR_BODY ?= | ||||||
| PR_DRAFT ?= 0 | ||||||
| PR_MERGE_METHOD ?= squash | ||||||
| PR_AUTO ?= 0 | ||||||
| PR_DELETE_BRANCH ?= 0 | ||||||
| PR_CHECKS_STRICT ?= 0 | ||||||
|
|
||||||
| PYTEST_REPORT_ARGS := -ra --durations=25 --durations-min=0.001 --tb=short | ||||||
| PYTEST_DIAG_ARGS := -rA --durations=0 --tb=long --showlocals | ||||||
|
|
@@ -89,8 +100,8 @@ $(LINT_CACHE_DIR): | |||||
| $(Q)mkdir -p $(LINT_CACHE_DIR) | ||||||
|
|
||||||
| # === SIMPLE VERB SURFACE === | ||||||
| .PHONY: help setup build check security format docs docs-base docs-sync-scripts test validate clean _preflight | ||||||
| STANDARD_VERBS := setup build check security format docs test validate clean | ||||||
| .PHONY: help setup build check security format docs docs-base docs-sync-scripts test validate clean pr _preflight | ||||||
| STANDARD_VERBS := setup build check security format docs test validate clean pr | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. P2: Prompt for AI agents
Suggested change
|
||||||
| $(STANDARD_VERBS): _preflight | ||||||
|
|
||||||
| define ENFORCE_WORKSPACE_VENV | ||||||
|
|
@@ -170,7 +181,15 @@ help: ## Show commands | |||||
| $(Q)echo " docs Build docs" | ||||||
| $(Q)echo " test Run pytest only" | ||||||
| $(Q)echo " validate Run validate gates only (use FIX=1 to auto-fix first)" | ||||||
| $(Q)echo " pr Manage this repository PR (default: status)" | ||||||
| $(Q)echo " clean Clean build/test/type artifacts" | ||||||
| $(Q)echo "" | ||||||
| $(Q)echo "PR variables:" | ||||||
| $(Q)echo " PR_ACTION=status|create|view|checks|merge|close" | ||||||
| $(Q)echo " PR_BASE=main PR_HEAD=<branch> PR_NUMBER=<id>" | ||||||
| $(Q)echo " PR_TITLE='title' PR_BODY='body' PR_DRAFT=0|1" | ||||||
| $(Q)echo " PR_MERGE_METHOD=squash|merge|rebase PR_AUTO=0|1 PR_DELETE_BRANCH=0|1" | ||||||
| $(Q)echo " PR_CHECKS_STRICT=0|1 (checks: fail command only when strict=1)" | ||||||
|
|
||||||
| setup: ## Complete setup | ||||||
| $(Q)if [ "$(CORE_STACK)" = "go" ]; then \ | ||||||
|
|
@@ -484,6 +503,21 @@ validate: ## Run validate gates (VALIDATE_GATES=complexity,docstring to select, | |||||
| $(POETRY) run interrogate $(SRC_DIR) --fail-under=$(DOCSTRING_MIN) --ignore-init-method --ignore-magic -q; \ | ||||||
| fi | ||||||
|
|
||||||
| pr: ## Manage pull requests for this repository | ||||||
| $(Q)python3 "$(WORKSPACE_ROOT)/scripts/github/pr_manager.py" \ | ||||||
| --repo-root "$(CURDIR)" \ | ||||||
| --action "$(PR_ACTION)" \ | ||||||
| --base "$(PR_BASE)" \ | ||||||
| $(if $(PR_HEAD),--head "$(PR_HEAD)",) \ | ||||||
| $(if $(PR_NUMBER),--number "$(PR_NUMBER)",) \ | ||||||
| $(if $(PR_TITLE),--title "$(PR_TITLE)",) \ | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. P1: Shell quoting breakage for Prompt for AI agents |
||||||
| $(if $(PR_BODY),--body "$(PR_BODY)",) \ | ||||||
| --draft "$(PR_DRAFT)" \ | ||||||
| --merge-method "$(PR_MERGE_METHOD)" \ | ||||||
| --auto "$(PR_AUTO)" \ | ||||||
| --delete-branch "$(PR_DELETE_BRANCH)" \ | ||||||
| --checks-strict "$(PR_CHECKS_STRICT)" | ||||||
|
|
||||||
| clean: ## Clean artifacts | ||||||
| $(Q)if [ "$(CORE_STACK)" = "go" ]; then \ | ||||||
| rm -f coverage.out coverage.html; \ | ||||||
|
|
||||||
| +1 −0 | .python-version | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py |
| +1 −0 | .python-version | |
| +1 −1 | poetry.lock | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py | |
| +22 −0 | tests/conftest.py |
| +1 −0 | .python-version | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py | |
| +22 −0 | tests/conftest.py |
| +1 −0 | .python-version | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py | |
| +22 −0 | tests/conftest.py |
| +1 −0 | .python-version | |
| +3 −0 | .sonarcloud.properties | |
| +5 −5 | scripts/core/generate_scripts_inventory.py | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +115 −13 | scripts/dependencies/sync_internal_deps.py | |
| +67 −0 | scripts/github/lint_workflows.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +202 −0 | scripts/github/sync_workflows.py | |
| +26 −41 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +88 −0 | scripts/release/build.py | |
| +73 −0 | scripts/release/changelog.py | |
| +105 −0 | scripts/release/notes.py | |
| +224 −0 | scripts/release/run.py | |
| +68 −0 | scripts/release/shared.py | |
| +86 −0 | scripts/release/version.py | |
| +22 −0 | tests/conftest.py |
| +1 −0 | .python-version | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py | |
| +22 −0 | tests/conftest.py |
| +1 −0 | .python-version | |
| +36 −2 | base.mk | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py | |
| +22 −0 | tests/conftest.py |
| +1 −0 | .python-version | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py | |
| +22 −0 | tests/conftest.py |
| +1 −0 | .python-version | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py | |
| +22 −0 | tests/conftest.py |
| +1 −0 | .python-version | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py |
| +1 −0 | .python-version | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py | |
| +22 −0 | tests/conftest.py |
| +1 −0 | .python-version | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py | |
| +22 −0 | tests/conftest.py |
| +1 −0 | .python-version | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py | |
| +22 −0 | tests/conftest.py |
| +1 −0 | .python-version | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py |
| +1 −0 | .python-version | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py |
| +1 −0 | .python-version | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py | |
| +22 −0 | tests/conftest.py |
| +1 −0 | .python-version | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py | |
| +22 −0 | tests/conftest.py |
| +1 −0 | .python-version | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py | |
| +22 −0 | tests/conftest.py |
| +1 −0 | .python-version | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py | |
| +22 −0 | tests/conftest.py |
| +1 −0 | .python-version | |
| +3 −3 | poetry.lock | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py | |
| +22 −0 | tests/conftest.py |
| +3 −3 | poetry.lock | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py | |
| +22 −0 | tests/conftest.py |
| +1 −0 | .python-version | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py | |
| +22 −0 | tests/conftest.py |
| +1 −0 | .python-version | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py | |
| +22 −0 | tests/conftest.py |
| +1 −0 | .python-version | |
| +3 −3 | poetry.lock | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py | |
| +22 −0 | tests/conftest.py |
| +1 −0 | .python-version | |
| +3 −3 | poetry.lock | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py | |
| +22 −0 | tests/conftest.py |
| +1 −0 | .python-version | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py | |
| +22 −0 | tests/conftest.py |
| +1 −0 | .python-version | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py |
| +1 −0 | .python-version | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py | |
| +22 −0 | tests/conftest.py |
| +1 −0 | .python-version | |
| +12 −37 | scripts/core/skill_validate.py | |
| +11 −7 | scripts/core/stub_supply_chain.py | |
| +20 −19 | scripts/dependencies/dependency_detection.py | |
| +204 −0 | scripts/github/pr_manager.py | |
| +9 −27 | scripts/github/sync_workflows.py | |
| +5 −40 | scripts/maintenance/_discover.py | |
| +249 −0 | scripts/maintenance/enforce_python_version.py | |
| +3 −4 | scripts/release/build.py | |
| +3 −2 | scripts/release/changelog.py | |
| +4 −5 | scripts/release/notes.py | |
| +71 −49 | scripts/release/run.py | |
| +23 −49 | scripts/release/shared.py | |
| +24 −22 | scripts/release/version.py | |
| +22 −0 | tests/conftest.py |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| from __future__ import annotations | ||
|
|
||
| __all__ = [ | ||
| "discovery", | ||
| "git", | ||
| "paths", | ||
| "reporting", | ||
| "selection", | ||
| "subprocess", | ||
| ] |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,44 @@ | ||
| from __future__ import annotations | ||
|
|
||
| import re | ||
| from dataclasses import dataclass | ||
| from pathlib import Path | ||
|
|
||
|
|
||
| @dataclass(frozen=True) | ||
| class ProjectInfo: | ||
| path: Path | ||
| name: str | ||
| kind: str | ||
|
|
||
|
|
||
| def _is_git_project(path: Path) -> bool: | ||
| return (path / ".git").exists() | ||
|
|
||
|
|
||
| def _submodule_names(workspace_root: Path) -> set[str]: | ||
| gitmodules = workspace_root / ".gitmodules" | ||
| if not gitmodules.exists(): | ||
| return set() | ||
| try: | ||
| content = gitmodules.read_text(encoding="utf-8") | ||
| except OSError: | ||
| return set() | ||
| return set(re.findall(r"^\s*path\s*=\s*(.+?)\s*$", content, re.MULTILINE)) | ||
|
|
||
|
|
||
| def discover_projects(workspace_root: Path) -> list[ProjectInfo]: | ||
| projects: list[ProjectInfo] = [] | ||
| submodules = _submodule_names(workspace_root) | ||
| for entry in sorted(workspace_root.iterdir(), key=lambda value: value.name): | ||
| if not entry.is_dir() or entry.name == "cmd" or entry.name.startswith("."): | ||
| continue | ||
| if not _is_git_project(entry): | ||
| continue | ||
| if not (entry / "Makefile").exists(): | ||
| continue | ||
| if not (entry / "pyproject.toml").exists() and not (entry / "go.mod").exists(): | ||
| continue | ||
| kind = "submodule" if entry.name in submodules else "external" | ||
| projects.append(ProjectInfo(path=entry, name=entry.name, kind=kind)) | ||
| return projects |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,14 @@ | ||
| from __future__ import annotations | ||
|
|
||
| from pathlib import Path | ||
|
|
||
| from libs.subprocess import run_capture | ||
|
|
||
|
|
||
| def current_branch(repo_root: Path) -> str: | ||
| return run_capture(["git", "rev-parse", "--abbrev-ref", "HEAD"], cwd=repo_root) | ||
|
|
||
|
|
||
| def tag_exists(repo_root: Path, tag: str) -> bool: | ||
| value = run_capture(["git", "tag", "-l", tag], cwd=repo_root) | ||
| return value.strip() == tag |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| from __future__ import annotations | ||
|
|
||
| from pathlib import Path | ||
|
|
||
|
|
||
| def workspace_root(path: str | Path = ".") -> Path: | ||
| return Path(path).resolve() | ||
|
|
||
|
|
||
| def repo_root_from_script(script_file: str | Path) -> Path: | ||
| return Path(script_file).resolve().parents[1] |
Uh oh!
There was an error while loading. Please reload this page.
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.
P2: Missing
$(ENFORCE_WORKSPACE_VENV)guard in theprtarget. Every other target that invokes$(ORCHESTRATOR)(which depends on the workspace venv) includes this guard. Without it, runningmake prbeforemake setupwill produce a confusing failure instead of the standard venv-not-found error message.Prompt for AI agents