
* Add release tool - Add tool for release managers to use to generate commits - I'm trying to only use stdlib so we have no depdencies ... - Default is to change date strings in hard coded documentation files + CHANGES.md - I write directly to files cause we have SCM to fix any screw ups ... - We hackily convert calver to ints to sort (all for better ideas here) - If we hit a ValueError we just set to 0 for sorting - This is alhpa + beta release we can safely ignore these days - Add new CI to only run release unittests in 3.12 only on all platforms - Update release docs - Checked with `mypy --strict` + ensure we are `black --preview` formatted :D Tests: - Run it to generate template PR - `python3.12 release.py --debug --add-changes-template` - Run it to cleanup CHANGE.md + change version in specified doc files ``` crl-m1:black cooper$ python3.12 release.py -d [2023-10-23 23:39:38,414] INFO: Current version detected to be 23.10.1 (release.py:221) [2023-10-23 23:39:38,414] INFO: Next version will be 23.10.2 (release.py:222) [2023-10-23 23:39:38,414] INFO: Cleaning up /Users/cooper/repos/black/CHANGES.md (release.py:127) [2023-10-23 23:39:38,416] DEBUG: Finished Cleaning up /Users/cooper/repos/black/CHANGES.md (release.py:147) [2023-10-23 23:39:38,416] INFO: Updating black version to 23.10.2 in /Users/cooper/repos/black/docs/integrations/source_version_control.md (release.py:173) [2023-10-23 23:39:38,416] DEBUG: Finished updating black version to 23.10.2 in /Users/cooper/repos/black/docs/integrations/source_version_control.md (release.py:185) [2023-10-23 23:39:38,416] INFO: Updating black version to 23.10.2 in /Users/cooper/repos/black/docs/usage_and_configuration/the_basics.md (release.py:173) [2023-10-23 23:39:38,417] DEBUG: Finished updating black version to 23.10.2 in /Users/cooper/repos/black/docs/usage_and_configuration/the_basics.md (release.py:185) ``` - Add tests around some key logic * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fix lints + add git to release CI - Remove black + mypy as linting already runs it ... - Ignore delete param to TemporaryDirectory as we can't set mypy to 3.12 :D * Only run CI on linux/ubuntu for now * Add lots of debug printing + directly run unitests (not via coverage) * Overloading __str__ is bad on a TestCase * Add more logging around git tag * Print where git is in a step * Rollback creating a fake black repo as we were not using it - I did plan to but I can't get it working on GitHub actions * Do a deep checkout * Add noqa for E701,E761 ... maybe we need this in our flake8 config now? * Fix action to have correct workflow yaml to action on - Also add fix to not double run when we push directly to psf/black * All jelle suggestions - Fix bug missing lines ending with --> in CHANGES.md to delete ... - Update ci to run out of scripts dir too - Update test_tuple_calver --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
57 lines
1.6 KiB
YAML
57 lines
1.6 KiB
YAML
name: Release tool CI
|
|
|
|
on:
|
|
push:
|
|
paths:
|
|
- .github/workflows/release_tests.yml
|
|
- release.py
|
|
- release_tests.py
|
|
pull_request:
|
|
paths:
|
|
- .github/workflows/release_tests.yml
|
|
- release.py
|
|
- release_tests.py
|
|
|
|
jobs:
|
|
build:
|
|
# We want to run on external PRs, but not on our own internal PRs as they'll be run
|
|
# by the push to the branch. Without this if check, checks are duplicated since
|
|
# internal PRs match both the push and pull_request events.
|
|
if:
|
|
github.event_name == 'push' || github.event.pull_request.head.repo.full_name !=
|
|
github.repository
|
|
|
|
name: Running python ${{ matrix.python-version }} on ${{matrix.os}}
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
python-version: ["3.12"]
|
|
os: [macOS-latest, ubuntu-latest, windows-latest]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
# Give us all history, branches and tags
|
|
fetch-depth: 0
|
|
- name: Set up Python ${{ matrix.python-version }}
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
allow-prereleases: true
|
|
|
|
- name: Print Python Version
|
|
run: python --version --version && which python
|
|
|
|
- name: Print Git Version
|
|
run: git --version && which git
|
|
|
|
- name: Update pip, setuptools + wheels
|
|
run: |
|
|
python -m pip install --upgrade pip setuptools wheel
|
|
|
|
- name: Run unit tests via coverage + print report
|
|
run: |
|
|
python -m pip install coverage
|
|
coverage run scripts/release_tests.py
|
|
coverage report --show-missing
|