Skip to content

Commit 7a74b41

Browse files
authored
build(release): derive versions and notes from tags and fragments (#3487)
1 parent 7ec88cd commit 7a74b41

8 files changed

Lines changed: 1933 additions & 0 deletions

File tree

‎.claude/rules/ci.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ The required check names are in `AGENTS.md` (CI). Reading a red check: `.claude/
7575
- actionlint, which also shellchecks every inline `run:` block;
7676
- `shellcheck --severity=warning` on every `*.sh` under `scripts` and `.claude/skills`;
7777
- the tooling tests: `scripts/ci/test_*.py`, `scripts/lib/test_*.py`, `scripts/test_localization.py`, `.github/scripts/test_update_registry.py` and two shell tests;
78+
- `scripts/release/test_*.py` on Python 3.9 from `actions/setup-python`, in a venv that installs `scripts/release/requirements.txt` with `pip --require-hashes`;
7879
- `check-lib-sourcing.py`, `check-plugin-manifest.py`, `check-deployment-target.sh`, `check-ios-shared-isolation.py`;
7980
- `localization.py plugins` and `plugins --target ios`;
8081
- `check-string-catalogs.py`, `check-license-inventory.py`, `check-entitlements.py`, `check-test-plans.py`;

‎.github/workflows/repo-hygiene.yml‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,27 @@ jobs:
5454
bash scripts/ci/test_draft_release.sh
5555
bash scripts/ci/test_libs_release.sh
5656
57+
# 3.9 is the macOS /usr/bin/python3 that runs notes.py in the build. The other steps keep the
58+
# runner's Python, which has PyYAML.
59+
- name: Set up Python 3.9 for the release tooling
60+
id: python
61+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
62+
with:
63+
python-version: "3.9"
64+
update-environment: false
65+
66+
- name: Install the release tooling
67+
env:
68+
PYTHON: ${{ steps.python.outputs.python-path }}
69+
run: |
70+
set -euo pipefail
71+
"$PYTHON" -m venv "$RUNNER_TEMP/release-venv"
72+
"$RUNNER_TEMP/release-venv/bin/pip" install --quiet --disable-pip-version-check --require-hashes \
73+
-r scripts/release/requirements.txt
74+
75+
- name: Test the release tooling
76+
run: '"$RUNNER_TEMP/release-venv/bin/python" -m unittest discover -s scripts/release -p "test_*.py"'
77+
5778
# shellcheck cannot tell a library function from a command, so a missing source is exit 127
5879
# at release time (v0.67.1).
5980
- name: Check every script sources the libraries it calls into

0 commit comments

Comments
 (0)