From 7dafc611b447d6b7cc6727e661a747e221d69b66 Mon Sep 17 00:00:00 2001 From: Kyle Oliver Date: Sat, 5 Jul 2025 14:41:58 -0400 Subject: [PATCH 01/20] chore: sync up with straight project generation to remove artifacts from commit hooks when meaning to just do cruft update previously --- .github/workflows/release-python.yml | 4 +++- .pre-commit-config.yaml | 10 +--------- noxfile.py | 2 +- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/.github/workflows/release-python.yml b/.github/workflows/release-python.yml index c97dee4..2eed05a 100644 --- a/.github/workflows/release-python.yml +++ b/.github/workflows/release-python.yml @@ -12,7 +12,7 @@ on: workflow_dispatch: inputs: tag: - description: "Git tag to build and release (e.g., v1.2.3). Must already exist." + description: 'Git tag to build and release (e.g., v1.2.3). Must already exist.' required: true jobs: @@ -103,6 +103,7 @@ jobs: # Optional: TWINE_REPOSITORY if publishing to a custom production index run: uvx nox -s publish-package # Call the publish-package session (defaults to pypi.org) + # Job 3: Create GitHub Release (Runs regardless of PyPI publish success, relies on build job for info/artifacts) create_github_release: name: Create GitHub Release @@ -134,6 +135,7 @@ jobs: # The body of the release notes - access the output from the 'build_and_testpypi' job body: ${{ needs.build_and_testpypi.outputs.changelog_body }} # Access changelog body from dependent job output + files: dist/* # Attach built sdist and wheel files as release assets # Optional: Mark as a draft release for manual review before publishing # draft: true diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a33da9c..8c8afdb 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -60,14 +60,6 @@ repos: - id: prettier name: Prettier - - repo: https://github.com/doublify/pre-commit-rust - rev: master - hooks: - - id: fmt - - id: clippy - args: ["--all-features", "--", "--write"] - - id: cargo-check - - repo: https://github.com/commitizen-tools/commitizen rev: v4.8.2 hooks: @@ -75,4 +67,4 @@ repos: name: Commitizen - id: commitizen-branch name: Commitizen Branch - stages: [commit-msg] + stages: [ commit-msg ] diff --git a/noxfile.py b/noxfile.py index 23c11a1..9f60984 100644 --- a/noxfile.py +++ b/noxfile.py @@ -124,7 +124,7 @@ def tests_python(session: Session) -> None: "--cov-report=term", "--cov-report=xml", f"--junitxml={junitxml_file}", - "tests/", + "tests/" ) From f35bd13ec2e80f03a728c3f4876c80d04d2de82c Mon Sep 17 00:00:00 2001 From: Kyle Oliver Date: Sat, 5 Jul 2025 14:53:03 -0400 Subject: [PATCH 02/20] chore: manual cruft update --- .cookiecutter.json | 2 +- .cruft.json | 4 ++-- .github/workflows/test-python.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.cookiecutter.json b/.cookiecutter.json index 623e66d..c6a8b00 100644 --- a/.cookiecutter.json +++ b/.cookiecutter.json @@ -1,5 +1,5 @@ { - "_commit": "252149c8d29f972741ea3a7bbf5de824f4bdaabd", + "_commit": "4eaddb481f0a4bd3d51ef0d5b32ff82a56e2be79", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", "add_rust_extension": false, "author": "Kyle Oliver", diff --git a/.cruft.json b/.cruft.json index b046b28..1394d84 100644 --- a/.cruft.json +++ b/.cruft.json @@ -1,6 +1,6 @@ { "template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "commit": "252149c8d29f972741ea3a7bbf5de824f4bdaabd", + "commit": "4eaddb481f0a4bd3d51ef0d5b32ff82a56e2be79", "checkout": null, "context": { "cookiecutter": { @@ -18,7 +18,7 @@ "license": "MIT", "development_status": "Development Status :: 1 - Planning", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "_commit": "252149c8d29f972741ea3a7bbf5de824f4bdaabd" + "_commit": "4eaddb481f0a4bd3d51ef0d5b32ff82a56e2be79" } }, "directory": null diff --git a/.github/workflows/test-python.yml b/.github/workflows/test-python.yml index fbbc8d9..f06168b 100644 --- a/.github/workflows/test-python.yml +++ b/.github/workflows/test-python.yml @@ -48,7 +48,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Run test suite - run: uvx nox -s test-python + run: uvx nox -s test-python-${{ matrix.python-version }} - name: Upload test reports uses: actions/upload-artifact@v4 From 39c54bf36e1c726894b3d206598c8553ac55ed15 Mon Sep 17 00:00:00 2001 From: Kyle Oliver Date: Sat, 5 Jul 2025 15:04:40 -0400 Subject: [PATCH 03/20] chore: manual cruft update --- .cookiecutter.json | 2 +- .github/workflows/build-python.yml | 2 +- .github/workflows/docs-build.yml | 2 +- .github/workflows/lint-global.yml | 2 +- .github/workflows/lint-python.yml | 2 +- .github/workflows/release-python.yml | 4 ++-- .github/workflows/security-python.yml | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.cookiecutter.json b/.cookiecutter.json index c6a8b00..0912b40 100644 --- a/.cookiecutter.json +++ b/.cookiecutter.json @@ -1,5 +1,5 @@ { - "_commit": "4eaddb481f0a4bd3d51ef0d5b32ff82a56e2be79", + "_commit": "dfcbcf4e6b22b8eeffdcf88b2a2ff6e42b6259c9", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", "add_rust_extension": false, "author": "Kyle Oliver", diff --git a/.github/workflows/build-python.yml b/.github/workflows/build-python.yml index 3abeeaa..edd2e92 100644 --- a/.github/workflows/build-python.yml +++ b/.github/workflows/build-python.yml @@ -47,7 +47,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version-file: .python-version + python-version-file: "pyproject.toml" - name: Run package build run: uvx nox -s build-python-package diff --git a/.github/workflows/docs-build.yml b/.github/workflows/docs-build.yml index 2bd99e5..0ed66e5 100644 --- a/.github/workflows/docs-build.yml +++ b/.github/workflows/docs-build.yml @@ -43,7 +43,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version-file: .python-version + python-version-file: "pyproject.toml" - name: Build documentation run: uvx nox -s docs-build diff --git a/.github/workflows/lint-global.yml b/.github/workflows/lint-global.yml index 05a8b9e..23a4989 100644 --- a/.github/workflows/lint-global.yml +++ b/.github/workflows/lint-global.yml @@ -49,7 +49,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version-file: .python-version + python-version-file: "pyproject.toml" - name: Run global linting checks run: uvx nox -s lint-global diff --git a/.github/workflows/lint-python.yml b/.github/workflows/lint-python.yml index e79f89f..2764d9a 100644 --- a/.github/workflows/lint-python.yml +++ b/.github/workflows/lint-python.yml @@ -43,7 +43,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version-file: .python-version + python-version-file: "pyproject.toml" - name: Run formatting checks run: uvx nox -s format-python diff --git a/.github/workflows/release-python.yml b/.github/workflows/release-python.yml index 2eed05a..14bc577 100644 --- a/.github/workflows/release-python.yml +++ b/.github/workflows/release-python.yml @@ -32,7 +32,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version-file: .python-version + python-version-file: "pyproject.toml" - name: Upload built package artifacts uses: actions/upload-artifact@v4 @@ -86,7 +86,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version-file: .python-version + python-version-file: "pyproject.toml" - name: Set up uv uses: astral-sh/setup-uv@v6 diff --git a/.github/workflows/security-python.yml b/.github/workflows/security-python.yml index 7fad5d7..ed67aa0 100644 --- a/.github/workflows/security-python.yml +++ b/.github/workflows/security-python.yml @@ -43,7 +43,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version-file: .python-version + python-version-file: "pyproject.toml" - name: Run Python code security analysis run: uvx nox -s security-python From 60cc9a213e660f04e3238661c6db7b02b4b8a7df Mon Sep 17 00:00:00 2001 From: Kyle Oliver Date: Sat, 5 Jul 2025 15:07:26 -0400 Subject: [PATCH 04/20] chore: manual cruft update --- .cruft.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cruft.json b/.cruft.json index 1394d84..f13b81d 100644 --- a/.cruft.json +++ b/.cruft.json @@ -1,6 +1,6 @@ { "template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "commit": "4eaddb481f0a4bd3d51ef0d5b32ff82a56e2be79", + "commit": "dfcbcf4e6b22b8eeffdcf88b2a2ff6e42b6259c9", "checkout": null, "context": { "cookiecutter": { @@ -18,7 +18,7 @@ "license": "MIT", "development_status": "Development Status :: 1 - Planning", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "_commit": "4eaddb481f0a4bd3d51ef0d5b32ff82a56e2be79" + "_commit": "dfcbcf4e6b22b8eeffdcf88b2a2ff6e42b6259c9" } }, "directory": null From c495be129ec7b7de2d81c0d47173112ee13a30c1 Mon Sep 17 00:00:00 2001 From: Kyle Oliver Date: Sat, 5 Jul 2025 15:11:49 -0400 Subject: [PATCH 05/20] chore: manual cruft update --- .cookiecutter.json | 2 +- .cruft.json | 4 ++-- .github/workflows/build-python.yml | 4 ++-- .github/workflows/docs-build.yml | 2 +- .github/workflows/lint-global.yml | 2 +- .github/workflows/lint-python.yml | 2 +- .github/workflows/release-python.yml | 4 ++-- .github/workflows/security-python.yml | 2 +- 8 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.cookiecutter.json b/.cookiecutter.json index 0912b40..3ca3a5f 100644 --- a/.cookiecutter.json +++ b/.cookiecutter.json @@ -1,5 +1,5 @@ { - "_commit": "dfcbcf4e6b22b8eeffdcf88b2a2ff6e42b6259c9", + "_commit": "4791d8ea236a9167781afea85128b49adf52127c", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", "add_rust_extension": false, "author": "Kyle Oliver", diff --git a/.cruft.json b/.cruft.json index f13b81d..31b629d 100644 --- a/.cruft.json +++ b/.cruft.json @@ -1,6 +1,6 @@ { "template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "commit": "dfcbcf4e6b22b8eeffdcf88b2a2ff6e42b6259c9", + "commit": "4791d8ea236a9167781afea85128b49adf52127c", "checkout": null, "context": { "cookiecutter": { @@ -18,7 +18,7 @@ "license": "MIT", "development_status": "Development Status :: 1 - Planning", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "_commit": "dfcbcf4e6b22b8eeffdcf88b2a2ff6e42b6259c9" + "_commit": "4791d8ea236a9167781afea85128b49adf52127c" } }, "directory": null diff --git a/.github/workflows/build-python.yml b/.github/workflows/build-python.yml index edd2e92..4787ba7 100644 --- a/.github/workflows/build-python.yml +++ b/.github/workflows/build-python.yml @@ -47,10 +47,10 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version-file: "pyproject.toml" + python-version-file: ".github\workflows\.python-version" - name: Run package build - run: uvx nox -s build-python-package + run: uvx nox -s build-python - name: Upload built packages artifact uses: actions/upload-artifact@v4 diff --git a/.github/workflows/docs-build.yml b/.github/workflows/docs-build.yml index 0ed66e5..3607686 100644 --- a/.github/workflows/docs-build.yml +++ b/.github/workflows/docs-build.yml @@ -43,7 +43,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version-file: "pyproject.toml" + python-version-file: ".githubworkflows.python-version" - name: Build documentation run: uvx nox -s docs-build diff --git a/.github/workflows/lint-global.yml b/.github/workflows/lint-global.yml index 23a4989..342e2cd 100644 --- a/.github/workflows/lint-global.yml +++ b/.github/workflows/lint-global.yml @@ -49,7 +49,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version-file: "pyproject.toml" + python-version-file: ".githubworkflows.python-version" - name: Run global linting checks run: uvx nox -s lint-global diff --git a/.github/workflows/lint-python.yml b/.github/workflows/lint-python.yml index 2764d9a..75d076d 100644 --- a/.github/workflows/lint-python.yml +++ b/.github/workflows/lint-python.yml @@ -43,7 +43,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version-file: "pyproject.toml" + python-version-file: ".githubworkflows.python-version" - name: Run formatting checks run: uvx nox -s format-python diff --git a/.github/workflows/release-python.yml b/.github/workflows/release-python.yml index 14bc577..acca7a3 100644 --- a/.github/workflows/release-python.yml +++ b/.github/workflows/release-python.yml @@ -32,7 +32,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version-file: "pyproject.toml" + python-version-file: ".githubworkflows.python-version" - name: Upload built package artifacts uses: actions/upload-artifact@v4 @@ -86,7 +86,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version-file: "pyproject.toml" + python-version-file: ".githubworkflows.python-version" - name: Set up uv uses: astral-sh/setup-uv@v6 diff --git a/.github/workflows/security-python.yml b/.github/workflows/security-python.yml index ed67aa0..5c127a7 100644 --- a/.github/workflows/security-python.yml +++ b/.github/workflows/security-python.yml @@ -43,7 +43,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version-file: "pyproject.toml" + python-version-file: ".githubworkflows.python-version" - name: Run Python code security analysis run: uvx nox -s security-python From 88301be642884c4145e178065d8e7e87926aa279 Mon Sep 17 00:00:00 2001 From: Kyle Oliver Date: Sat, 5 Jul 2025 17:26:00 -0400 Subject: [PATCH 06/20] chore: manual cruft update --- .cookiecutter.json | 2 +- .cruft.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.cookiecutter.json b/.cookiecutter.json index 3ca3a5f..68e72c7 100644 --- a/.cookiecutter.json +++ b/.cookiecutter.json @@ -1,5 +1,5 @@ { - "_commit": "4791d8ea236a9167781afea85128b49adf52127c", + "_commit": "42660fdc96e82eac45fc0931b83a2c73593d4b26", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", "add_rust_extension": false, "author": "Kyle Oliver", diff --git a/.cruft.json b/.cruft.json index 31b629d..b970eed 100644 --- a/.cruft.json +++ b/.cruft.json @@ -1,6 +1,6 @@ { "template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "commit": "4791d8ea236a9167781afea85128b49adf52127c", + "commit": "42660fdc96e82eac45fc0931b83a2c73593d4b26", "checkout": null, "context": { "cookiecutter": { @@ -18,7 +18,7 @@ "license": "MIT", "development_status": "Development Status :: 1 - Planning", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "_commit": "4791d8ea236a9167781afea85128b49adf52127c" + "_commit": "42660fdc96e82eac45fc0931b83a2c73593d4b26" } }, "directory": null From aa2df250b204fd413fbe3f6621db3cd2fcccef8f Mon Sep 17 00:00:00 2001 From: Kyle Oliver Date: Sat, 5 Jul 2025 17:29:38 -0400 Subject: [PATCH 07/20] chore: manual cruft update --- .cookiecutter.json | 2 +- .cruft.json | 4 ++-- .github/workflows/docs-build.yml | 2 +- .github/workflows/lint-global.yml | 2 +- .github/workflows/lint-python.yml | 2 +- .github/workflows/release-python.yml | 4 ++-- .github/workflows/security-python.yml | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.cookiecutter.json b/.cookiecutter.json index 68e72c7..727a4d2 100644 --- a/.cookiecutter.json +++ b/.cookiecutter.json @@ -1,5 +1,5 @@ { - "_commit": "42660fdc96e82eac45fc0931b83a2c73593d4b26", + "_commit": "9d514a22b32f7c7a779e7d222910128215722191", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", "add_rust_extension": false, "author": "Kyle Oliver", diff --git a/.cruft.json b/.cruft.json index b970eed..be548c5 100644 --- a/.cruft.json +++ b/.cruft.json @@ -1,6 +1,6 @@ { "template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "commit": "42660fdc96e82eac45fc0931b83a2c73593d4b26", + "commit": "9d514a22b32f7c7a779e7d222910128215722191", "checkout": null, "context": { "cookiecutter": { @@ -18,7 +18,7 @@ "license": "MIT", "development_status": "Development Status :: 1 - Planning", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "_commit": "42660fdc96e82eac45fc0931b83a2c73593d4b26" + "_commit": "9d514a22b32f7c7a779e7d222910128215722191" } }, "directory": null diff --git a/.github/workflows/docs-build.yml b/.github/workflows/docs-build.yml index 3607686..6a29527 100644 --- a/.github/workflows/docs-build.yml +++ b/.github/workflows/docs-build.yml @@ -43,7 +43,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version-file: ".githubworkflows.python-version" + python-version-file: ".github/workflows/.python-version" - name: Build documentation run: uvx nox -s docs-build diff --git a/.github/workflows/lint-global.yml b/.github/workflows/lint-global.yml index 342e2cd..3300a61 100644 --- a/.github/workflows/lint-global.yml +++ b/.github/workflows/lint-global.yml @@ -49,7 +49,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version-file: ".githubworkflows.python-version" + python-version-file: ".github/workflows/.python-version" - name: Run global linting checks run: uvx nox -s lint-global diff --git a/.github/workflows/lint-python.yml b/.github/workflows/lint-python.yml index 75d076d..6acae86 100644 --- a/.github/workflows/lint-python.yml +++ b/.github/workflows/lint-python.yml @@ -43,7 +43,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version-file: ".githubworkflows.python-version" + python-version-file: ".github/workflows/.python-version" - name: Run formatting checks run: uvx nox -s format-python diff --git a/.github/workflows/release-python.yml b/.github/workflows/release-python.yml index acca7a3..2462fb2 100644 --- a/.github/workflows/release-python.yml +++ b/.github/workflows/release-python.yml @@ -32,7 +32,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version-file: ".githubworkflows.python-version" + python-version-file: ".github/workflows/.python-version" - name: Upload built package artifacts uses: actions/upload-artifact@v4 @@ -86,7 +86,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version-file: ".githubworkflows.python-version" + python-version-file: ".github/workflows/.python-version" - name: Set up uv uses: astral-sh/setup-uv@v6 diff --git a/.github/workflows/security-python.yml b/.github/workflows/security-python.yml index 5c127a7..f5aed7b 100644 --- a/.github/workflows/security-python.yml +++ b/.github/workflows/security-python.yml @@ -43,7 +43,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version-file: ".githubworkflows.python-version" + python-version-file: ".github/workflows/.python-version" - name: Run Python code security analysis run: uvx nox -s security-python From 21b8e80a7e43a6c71c89053d7084e6b34e0a42dd Mon Sep 17 00:00:00 2001 From: Kyle Oliver Date: Sat, 5 Jul 2025 17:34:25 -0400 Subject: [PATCH 08/20] chore: manual cruft update --- .cookiecutter.json | 2 +- .cruft.json | 4 +- .github/workflows/lint-global.yml | 55 -------------------------- .github/workflows/test-python.yml | 2 +- .github/workflows/typecheck-python.yml | 2 +- 5 files changed, 5 insertions(+), 60 deletions(-) delete mode 100644 .github/workflows/lint-global.yml diff --git a/.cookiecutter.json b/.cookiecutter.json index 727a4d2..6f33319 100644 --- a/.cookiecutter.json +++ b/.cookiecutter.json @@ -1,5 +1,5 @@ { - "_commit": "9d514a22b32f7c7a779e7d222910128215722191", + "_commit": "2be3ae578e25fc12f07086fe3097eedad1170986", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", "add_rust_extension": false, "author": "Kyle Oliver", diff --git a/.cruft.json b/.cruft.json index be548c5..0256e7f 100644 --- a/.cruft.json +++ b/.cruft.json @@ -1,6 +1,6 @@ { "template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "commit": "9d514a22b32f7c7a779e7d222910128215722191", + "commit": "2be3ae578e25fc12f07086fe3097eedad1170986", "checkout": null, "context": { "cookiecutter": { @@ -18,7 +18,7 @@ "license": "MIT", "development_status": "Development Status :: 1 - Planning", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "_commit": "9d514a22b32f7c7a779e7d222910128215722191" + "_commit": "2be3ae578e25fc12f07086fe3097eedad1170986" } }, "directory": null diff --git a/.github/workflows/lint-global.yml b/.github/workflows/lint-global.yml deleted file mode 100644 index 3300a61..0000000 --- a/.github/workflows/lint-global.yml +++ /dev/null @@ -1,55 +0,0 @@ -# .github/workflows/lint-global.yml -# See https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions - -name: Lint Global Configuration - -on: - pull_request: - paths: - - "**.yaml" - - "**.toml" - - ".editorconfig" - - ".gitignore" - - ".pre-commit-config.yaml" - - "Dockerfile" - - "compose.yaml" - - ".github/workflows/lint-global.yml" - - "docs/**.md" - - "docs/**.rst" - - "docs/**/*.py" - push: - branches: - - main - - master - paths: - - "**.yaml" - - "**.toml" - - ".editorconfig" - - ".gitignore" - - ".pre-commit-config.yaml" - - "Dockerfile" - - "compose.yaml" - - ".github/workflows/lint-global.yml" - - "docs/**" - - workflow_dispatch: - -jobs: - lint-global: - name: Run Global Configuration Checks - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Set up uv - uses: astral-sh/setup-uv@v6 - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version-file: ".github/workflows/.python-version" - - - name: Run global linting checks - run: uvx nox -s lint-global diff --git a/.github/workflows/test-python.yml b/.github/workflows/test-python.yml index f06168b..ef1dd87 100644 --- a/.github/workflows/test-python.yml +++ b/.github/workflows/test-python.yml @@ -48,7 +48,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Run test suite - run: uvx nox -s test-python-${{ matrix.python-version }} + run: uvx nox -s tests-python-${{ matrix.python-version }} - name: Upload test reports uses: actions/upload-artifact@v4 diff --git a/.github/workflows/typecheck-python.yml b/.github/workflows/typecheck-python.yml index 6011b57..ceac885 100644 --- a/.github/workflows/typecheck-python.yml +++ b/.github/workflows/typecheck-python.yml @@ -50,4 +50,4 @@ jobs: python-version: ${{ matrix.python-version }} - name: Run Python type checking - run: uvx nox -s typecheck-python + run: uvx nox -s typecheck-python-${{ matrix.python-version }} From ae69b173ccc2925b9f96d6a746e2b8097ce9b0bd Mon Sep 17 00:00:00 2001 From: Kyle Oliver Date: Sat, 5 Jul 2025 17:37:19 -0400 Subject: [PATCH 09/20] chore: manual cruft update --- .cookiecutter.json | 2 +- .cruft.json | 4 ++-- .github/workflows/typecheck-python.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.cookiecutter.json b/.cookiecutter.json index 6f33319..5d1fe97 100644 --- a/.cookiecutter.json +++ b/.cookiecutter.json @@ -1,5 +1,5 @@ { - "_commit": "2be3ae578e25fc12f07086fe3097eedad1170986", + "_commit": "3c58b26e9106081d92f722b8f4b1bb6f6619f034", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", "add_rust_extension": false, "author": "Kyle Oliver", diff --git a/.cruft.json b/.cruft.json index 0256e7f..5542751 100644 --- a/.cruft.json +++ b/.cruft.json @@ -1,6 +1,6 @@ { "template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "commit": "2be3ae578e25fc12f07086fe3097eedad1170986", + "commit": "3c58b26e9106081d92f722b8f4b1bb6f6619f034", "checkout": null, "context": { "cookiecutter": { @@ -18,7 +18,7 @@ "license": "MIT", "development_status": "Development Status :: 1 - Planning", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "_commit": "2be3ae578e25fc12f07086fe3097eedad1170986" + "_commit": "3c58b26e9106081d92f722b8f4b1bb6f6619f034" } }, "directory": null diff --git a/.github/workflows/typecheck-python.yml b/.github/workflows/typecheck-python.yml index ceac885..a02a824 100644 --- a/.github/workflows/typecheck-python.yml +++ b/.github/workflows/typecheck-python.yml @@ -50,4 +50,4 @@ jobs: python-version: ${{ matrix.python-version }} - name: Run Python type checking - run: uvx nox -s typecheck-python-${{ matrix.python-version }} + run: uvx nox -s typecheck-${{ matrix.python-version }} From 634e5b145abf9fb39ca680826988709648718947 Mon Sep 17 00:00:00 2001 From: Kyle Oliver Date: Sat, 5 Jul 2025 17:54:20 -0400 Subject: [PATCH 10/20] chore: manual cruft update --- .cookiecutter.json | 2 +- .cruft.json | 4 ++-- noxfile.py | 10 ++++------ 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/.cookiecutter.json b/.cookiecutter.json index 5d1fe97..61418cc 100644 --- a/.cookiecutter.json +++ b/.cookiecutter.json @@ -1,5 +1,5 @@ { - "_commit": "3c58b26e9106081d92f722b8f4b1bb6f6619f034", + "_commit": "cfc5c69a0ba5b18e9f6bc5cd118eefb687fb7f50", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", "add_rust_extension": false, "author": "Kyle Oliver", diff --git a/.cruft.json b/.cruft.json index 5542751..9efa939 100644 --- a/.cruft.json +++ b/.cruft.json @@ -1,6 +1,6 @@ { "template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "commit": "3c58b26e9106081d92f722b8f4b1bb6f6619f034", + "commit": "cfc5c69a0ba5b18e9f6bc5cd118eefb687fb7f50", "checkout": null, "context": { "cookiecutter": { @@ -18,7 +18,7 @@ "license": "MIT", "development_status": "Development Status :: 1 - Planning", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "_commit": "3c58b26e9106081d92f722b8f4b1bb6f6619f034" + "_commit": "cfc5c69a0ba5b18e9f6bc5cd118eefb687fb7f50" } }, "directory": null diff --git a/noxfile.py b/noxfile.py index 9f60984..7033dbf 100644 --- a/noxfile.py +++ b/noxfile.py @@ -86,14 +86,12 @@ def lint_python(session: Session) -> None: session.run("uvx", "ruff", "check", "--fix", "--verbose") -@nox.session(python=PYTHON_VERSIONS, name="typecheck", tags=[TYPE, PYTHON, CI]) -def typecheck(session: Session) -> None: +@nox.parametrize(arg_names="python_version", arg_values_list=PYTHON_VERSIONS) +@nox.session(python=None, name="typecheck", tags=[TYPE, PYTHON, CI]) +def typecheck(session: Session, python_version: str) -> None: """Run static type checking (Pyright) on Python code.""" - session.log("Installing type checking dependencies...") - session.install("pyright") - session.log(f"Running Pyright check with py{session.python}.") - session.run("pyright") + session.run("uvx", "pyright", "--pythonversion", python_version) @nox.session(python=None, name="security-python", tags=[SECURITY, PYTHON, CI]) From 2e913348404635217a8db15a8d6ce073a48d8af7 Mon Sep 17 00:00:00 2001 From: Kyle Oliver Date: Sat, 5 Jul 2025 19:26:45 -0400 Subject: [PATCH 11/20] chore: manual cruft update --- .cookiecutter.json | 2 +- .cruft.json | 4 ++-- .github/workflows/test-python.yml | 21 +++++++++++++-------- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/.cookiecutter.json b/.cookiecutter.json index 61418cc..1660dd3 100644 --- a/.cookiecutter.json +++ b/.cookiecutter.json @@ -1,5 +1,5 @@ { - "_commit": "cfc5c69a0ba5b18e9f6bc5cd118eefb687fb7f50", + "_commit": "08cc6f2a85e537a839165028d4d39006b452f13e", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", "add_rust_extension": false, "author": "Kyle Oliver", diff --git a/.cruft.json b/.cruft.json index 9efa939..e978b6c 100644 --- a/.cruft.json +++ b/.cruft.json @@ -1,6 +1,6 @@ { "template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "commit": "cfc5c69a0ba5b18e9f6bc5cd118eefb687fb7f50", + "commit": "08cc6f2a85e537a839165028d4d39006b452f13e", "checkout": null, "context": { "cookiecutter": { @@ -18,7 +18,7 @@ "license": "MIT", "development_status": "Development Status :: 1 - Planning", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "_commit": "cfc5c69a0ba5b18e9f6bc5cd118eefb687fb7f50" + "_commit": "08cc6f2a85e537a839165028d4d39006b452f13e" } }, "directory": null diff --git a/.github/workflows/test-python.yml b/.github/workflows/test-python.yml index ef1dd87..6eb9da9 100644 --- a/.github/workflows/test-python.yml +++ b/.github/workflows/test-python.yml @@ -28,13 +28,18 @@ on: jobs: test-python: - name: Run Python Tests on ${{ matrix.os }}/${{ matrix.python-version }} + name: Run Python Tests on ${{ matrix.os }}/${{ matrix.python }} runs-on: ${{ matrix.os }} strategy: matrix: - python-version: [ "3.9", "3.10", "3.11", "3.12", "3.13" ] - os: [ ubuntu-latest, windows-latest, macos-latest ] - + include: + - { python: "3.9", os: "ubuntu-latest" } + - { python: "3.10", os: "ubuntu-latest" } + - { python: "3.11", os: "ubuntu-latest" } + - { python: "3.12", os: "ubuntu-latest" } + - { python: "3.13", os: "ubuntu-latest" } + - { python: "3.13", os: "macos-latest" } + - { python: "3.13", os: "windows-latest" } steps: - name: Checkout code uses: actions/checkout@v4 @@ -45,21 +50,21 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: ${{ matrix.python-version }} + python-version: ${{ matrix.python }} - name: Run test suite - run: uvx nox -s tests-python-${{ matrix.python-version }} + run: uvx nox -s tests-python-${{ matrix.python }} - name: Upload test reports uses: actions/upload-artifact@v4 with: - name: test-results-${{ matrix.os }}-py${{ matrix.python-version }} + name: test-results-${{ matrix.os }}-py${{ matrix.python }} path: tests/results/*.xml retention-days: 5 - name: Upload coverage report uses: actions/upload-artifact@v4 with: - name: coverage-report-${{ matrix.os }}-py${{ matrix.python-version }} + name: coverage-report-${{ matrix.os }}-py${{ matrix.python }} path: coverage.xml retention-days: 5 From 7dc99de21450b135b88feb6ac1b7b86f6f4b0e88 Mon Sep 17 00:00:00 2001 From: Kyle Oliver Date: Sat, 5 Jul 2025 19:31:03 -0400 Subject: [PATCH 12/20] chore: manual cruft update --- .cookiecutter.json | 2 +- .cruft.json | 4 ++-- noxfile.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.cookiecutter.json b/.cookiecutter.json index 1660dd3..71d992b 100644 --- a/.cookiecutter.json +++ b/.cookiecutter.json @@ -1,5 +1,5 @@ { - "_commit": "08cc6f2a85e537a839165028d4d39006b452f13e", + "_commit": "637f49c0b1908a8f2a3fb0fc5e80a0c54935c44d", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", "add_rust_extension": false, "author": "Kyle Oliver", diff --git a/.cruft.json b/.cruft.json index e978b6c..85b5751 100644 --- a/.cruft.json +++ b/.cruft.json @@ -1,6 +1,6 @@ { "template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "commit": "08cc6f2a85e537a839165028d4d39006b452f13e", + "commit": "637f49c0b1908a8f2a3fb0fc5e80a0c54935c44d", "checkout": null, "context": { "cookiecutter": { @@ -18,7 +18,7 @@ "license": "MIT", "development_status": "Development Status :: 1 - Planning", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "_commit": "08cc6f2a85e537a839165028d4d39006b452f13e" + "_commit": "637f49c0b1908a8f2a3fb0fc5e80a0c54935c44d" } }, "directory": null diff --git a/noxfile.py b/noxfile.py index 7033dbf..afa65e3 100644 --- a/noxfile.py +++ b/noxfile.py @@ -86,7 +86,7 @@ def lint_python(session: Session) -> None: session.run("uvx", "ruff", "check", "--fix", "--verbose") -@nox.parametrize(arg_names="python_version", arg_values_list=PYTHON_VERSIONS) +@nox.parametrize(arg_names="python_version", arg_values_list=PYTHON_VERSIONS, ids=PYTHON_VERSIONS) @nox.session(python=None, name="typecheck", tags=[TYPE, PYTHON, CI]) def typecheck(session: Session, python_version: str) -> None: """Run static type checking (Pyright) on Python code.""" From 59390c0defb8238d7e7867171fb01300c9a3a167 Mon Sep 17 00:00:00 2001 From: Kyle Oliver Date: Sat, 5 Jul 2025 19:55:46 -0400 Subject: [PATCH 13/20] chore: manual cruft update --- .cookiecutter.json | 2 +- .cruft.json | 4 ++-- .github/workflows/typecheck-python.yml | 2 +- noxfile.py | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.cookiecutter.json b/.cookiecutter.json index 71d992b..192940c 100644 --- a/.cookiecutter.json +++ b/.cookiecutter.json @@ -1,5 +1,5 @@ { - "_commit": "637f49c0b1908a8f2a3fb0fc5e80a0c54935c44d", + "_commit": "b8d0f2967a3aabcb7e3eb80b361fa2452cd2e4c8", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", "add_rust_extension": false, "author": "Kyle Oliver", diff --git a/.cruft.json b/.cruft.json index 85b5751..c51d8bc 100644 --- a/.cruft.json +++ b/.cruft.json @@ -1,6 +1,6 @@ { "template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "commit": "637f49c0b1908a8f2a3fb0fc5e80a0c54935c44d", + "commit": "b8d0f2967a3aabcb7e3eb80b361fa2452cd2e4c8", "checkout": null, "context": { "cookiecutter": { @@ -18,7 +18,7 @@ "license": "MIT", "development_status": "Development Status :: 1 - Planning", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "_commit": "637f49c0b1908a8f2a3fb0fc5e80a0c54935c44d" + "_commit": "b8d0f2967a3aabcb7e3eb80b361fa2452cd2e4c8" } }, "directory": null diff --git a/.github/workflows/typecheck-python.yml b/.github/workflows/typecheck-python.yml index a02a824..310b1c8 100644 --- a/.github/workflows/typecheck-python.yml +++ b/.github/workflows/typecheck-python.yml @@ -50,4 +50,4 @@ jobs: python-version: ${{ matrix.python-version }} - name: Run Python type checking - run: uvx nox -s typecheck-${{ matrix.python-version }} + run: uvx nox -s typecheck(${{ matrix.python-version }}) diff --git a/noxfile.py b/noxfile.py index afa65e3..2655037 100644 --- a/noxfile.py +++ b/noxfile.py @@ -90,7 +90,7 @@ def lint_python(session: Session) -> None: @nox.session(python=None, name="typecheck", tags=[TYPE, PYTHON, CI]) def typecheck(session: Session, python_version: str) -> None: """Run static type checking (Pyright) on Python code.""" - session.log(f"Running Pyright check with py{session.python}.") + session.log(f"Running Pyright check with py{python_version}.") session.run("uvx", "pyright", "--pythonversion", python_version) From 9c830e512f7a4b18399187f849f148746a0fe567 Mon Sep 17 00:00:00 2001 From: Kyle Oliver Date: Sat, 5 Jul 2025 20:19:32 -0400 Subject: [PATCH 14/20] chore: update demo to the latest cookiecutter-robust-python --- .cookiecutter.json | 2 +- .cruft.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.cookiecutter.json b/.cookiecutter.json index 192940c..9a216ee 100644 --- a/.cookiecutter.json +++ b/.cookiecutter.json @@ -1,5 +1,5 @@ { - "_commit": "b8d0f2967a3aabcb7e3eb80b361fa2452cd2e4c8", + "_commit": "356e6882418f18b164a97e54cd4b76d196824fe3", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", "add_rust_extension": false, "author": "Kyle Oliver", diff --git a/.cruft.json b/.cruft.json index c51d8bc..7ee6057 100644 --- a/.cruft.json +++ b/.cruft.json @@ -1,6 +1,6 @@ { "template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "commit": "b8d0f2967a3aabcb7e3eb80b361fa2452cd2e4c8", + "commit": "356e6882418f18b164a97e54cd4b76d196824fe3", "checkout": null, "context": { "cookiecutter": { @@ -18,7 +18,7 @@ "license": "MIT", "development_status": "Development Status :: 1 - Planning", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "_commit": "b8d0f2967a3aabcb7e3eb80b361fa2452cd2e4c8" + "_commit": "356e6882418f18b164a97e54cd4b76d196824fe3" } }, "directory": null From 73f7f79ad3dbe925238068a047b85c269e8165c5 Mon Sep 17 00:00:00 2001 From: Kyle Oliver Date: Sat, 5 Jul 2025 20:21:22 -0400 Subject: [PATCH 15/20] chore: update demo to the latest cookiecutter-robust-python --- .cookiecutter.json | 2 +- .cruft.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.cookiecutter.json b/.cookiecutter.json index 9a216ee..ac82c2d 100644 --- a/.cookiecutter.json +++ b/.cookiecutter.json @@ -1,5 +1,5 @@ { - "_commit": "356e6882418f18b164a97e54cd4b76d196824fe3", + "_commit": "2bf35a7b4b48fa9630eae5f28047244673393d28", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", "add_rust_extension": false, "author": "Kyle Oliver", diff --git a/.cruft.json b/.cruft.json index 7ee6057..b2c5280 100644 --- a/.cruft.json +++ b/.cruft.json @@ -1,6 +1,6 @@ { "template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "commit": "356e6882418f18b164a97e54cd4b76d196824fe3", + "commit": "2bf35a7b4b48fa9630eae5f28047244673393d28", "checkout": null, "context": { "cookiecutter": { @@ -18,7 +18,7 @@ "license": "MIT", "development_status": "Development Status :: 1 - Planning", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "_commit": "356e6882418f18b164a97e54cd4b76d196824fe3" + "_commit": "2bf35a7b4b48fa9630eae5f28047244673393d28" } }, "directory": null From 8b7d5fa9f3f0ae0dbd8d7bb35a91c9593b1fdee4 Mon Sep 17 00:00:00 2001 From: Kyle Oliver Date: Sat, 5 Jul 2025 20:26:20 -0400 Subject: [PATCH 16/20] chore: update demo to the latest cookiecutter-robust-python --- .cookiecutter.json | 2 +- .cruft.json | 4 ++-- .github/workflows/release-python.yml | 34 ++++------------------------ 3 files changed, 8 insertions(+), 32 deletions(-) diff --git a/.cookiecutter.json b/.cookiecutter.json index ac82c2d..6a96a54 100644 --- a/.cookiecutter.json +++ b/.cookiecutter.json @@ -1,5 +1,5 @@ { - "_commit": "2bf35a7b4b48fa9630eae5f28047244673393d28", + "_commit": "4f636ea3baad0c8f840f745f236eebe41eaf3993", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", "add_rust_extension": false, "author": "Kyle Oliver", diff --git a/.cruft.json b/.cruft.json index b2c5280..9f844e7 100644 --- a/.cruft.json +++ b/.cruft.json @@ -1,6 +1,6 @@ { "template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "commit": "2bf35a7b4b48fa9630eae5f28047244673393d28", + "commit": "4f636ea3baad0c8f840f745f236eebe41eaf3993", "checkout": null, "context": { "cookiecutter": { @@ -18,7 +18,7 @@ "license": "MIT", "development_status": "Development Status :: 1 - Planning", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "_commit": "2bf35a7b4b48fa9630eae5f28047244673393d28" + "_commit": "4f636ea3baad0c8f840f745f236eebe41eaf3993" } }, "directory": null diff --git a/.github/workflows/release-python.yml b/.github/workflows/release-python.yml index 2462fb2..8c99c07 100644 --- a/.github/workflows/release-python.yml +++ b/.github/workflows/release-python.yml @@ -12,7 +12,7 @@ on: workflow_dispatch: inputs: tag: - description: 'Git tag to build and release (e.g., v1.2.3). Must already exist.' + description: "Git tag to build and release (e.g., v1.2.3). Must already exist." required: true jobs: @@ -65,16 +65,11 @@ jobs: description: "Release notes body extracted from CHANGELOG.md" value: ${{ steps.changelog.outputs.changes }} # Output the extracted changelog body - # Job 2: Publish to Production PyPI - # This job runs only if Job 1 completes successfully (implicit dependency) - # and only on tag push events (NOT manual dispatch for production). publish_pypi: name: Publish to Production PyPI runs-on: ubuntu-latest - # This job explicitly depends on build_and_testpypi completing successfully needs: build_and_testpypi - # Only run on tag push events, NOT on manual dispatch for the final PyPI publish if: "github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')" steps: - name: Download package artifacts @@ -91,27 +86,17 @@ jobs: - name: Set up uv uses: astral-sh/setup-uv@v6 - # --- Publish to Production PyPI Step --- - name: Publish to PyPI - # Execute the Task Automation publish session for Production PyPI. - # Calls uv publish dist/* which defaults to pypi.org (Topic 10). - # Configure Production PyPI credentials securely. env: - # Production PyPI credentials stored as secrets in GitHub Settings -> Secrets TWINE_USERNAME: __token__ - TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} # Use GitHub Encrypted Secret - # Optional: TWINE_REPOSITORY if publishing to a custom production index - run: uvx nox -s publish-package # Call the publish-package session (defaults to pypi.org) + TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} + run: uvx nox -s publish-python - - # Job 3: Create GitHub Release (Runs regardless of PyPI publish success, relies on build job for info/artifacts) create_github_release: name: Create GitHub Release runs-on: ubuntu-latest - # Needs the build job (which includes getting changelog) needs: build_and_testpypi - # Only run this job if triggered by a tag push if: "github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')" steps: @@ -125,19 +110,10 @@ jobs: run: echo "tag=${{ github.ref_name }}" >> $GITHUB_OUTPUT - name: Create GitHub Release - # Uses a standard action to create a release in GitHub based on the tag. uses: softprops/action-gh-release@v2 with: - # The Git tag the release is associated with tag_name: ${{ steps.get_tag.outputs.tag }} - # The name of the release (often the same as the tag) name: Release ${{ steps.get_tag.outputs.tag }} - # The body of the release notes - access the output from the 'build_and_testpypi' job - body: ${{ needs.build_and_testpypi.outputs.changelog_body }} # Access changelog body from dependent job output - - - files: dist/* # Attach built sdist and wheel files as release assets - # Optional: Mark as a draft release for manual review before publishing - # draft: true - # Optional: Mark as a pre-release for tags containing hyphens (e.g., v1.0.0-rc1) + body: ${{ needs.build_and_testpypi.outputs.changelog_body }} + files: dist/* prerelease: ${{ contains(steps.get_tag.outputs.tag, '-') }} # Checks if tag contains hyphen (e.g. v1.0.0-rc.1) From f84cd3ef80250d540e9032137e5fc57eca7b0715 Mon Sep 17 00:00:00 2001 From: Kyle Oliver Date: Sat, 5 Jul 2025 20:27:21 -0400 Subject: [PATCH 17/20] chore: update demo to the latest cookiecutter-robust-python --- .cookiecutter.json | 2 +- .cruft.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.cookiecutter.json b/.cookiecutter.json index 6a96a54..5e9d155 100644 --- a/.cookiecutter.json +++ b/.cookiecutter.json @@ -1,5 +1,5 @@ { - "_commit": "4f636ea3baad0c8f840f745f236eebe41eaf3993", + "_commit": "26ae079cf9f80154c9bd7cb7658a18448a7a37dc", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", "add_rust_extension": false, "author": "Kyle Oliver", diff --git a/.cruft.json b/.cruft.json index 9f844e7..5942b43 100644 --- a/.cruft.json +++ b/.cruft.json @@ -1,6 +1,6 @@ { "template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "commit": "4f636ea3baad0c8f840f745f236eebe41eaf3993", + "commit": "26ae079cf9f80154c9bd7cb7658a18448a7a37dc", "checkout": null, "context": { "cookiecutter": { @@ -18,7 +18,7 @@ "license": "MIT", "development_status": "Development Status :: 1 - Planning", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "_commit": "4f636ea3baad0c8f840f745f236eebe41eaf3993" + "_commit": "26ae079cf9f80154c9bd7cb7658a18448a7a37dc" } }, "directory": null From dec94d7d45383c9096f0ba644546e13813c17bb2 Mon Sep 17 00:00:00 2001 From: Kyle Oliver Date: Sat, 5 Jul 2025 20:30:34 -0400 Subject: [PATCH 18/20] chore: update demo to the latest cookiecutter-robust-python --- .cookiecutter.json | 2 +- .cruft.json | 4 ++-- .github/workflows/typecheck-python.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.cookiecutter.json b/.cookiecutter.json index 5e9d155..e48b6f8 100644 --- a/.cookiecutter.json +++ b/.cookiecutter.json @@ -1,5 +1,5 @@ { - "_commit": "26ae079cf9f80154c9bd7cb7658a18448a7a37dc", + "_commit": "742c9257b9b008cc0801f4817a0e9f2d029a8cce", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", "add_rust_extension": false, "author": "Kyle Oliver", diff --git a/.cruft.json b/.cruft.json index 5942b43..bef4efb 100644 --- a/.cruft.json +++ b/.cruft.json @@ -1,6 +1,6 @@ { "template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "commit": "26ae079cf9f80154c9bd7cb7658a18448a7a37dc", + "commit": "742c9257b9b008cc0801f4817a0e9f2d029a8cce", "checkout": null, "context": { "cookiecutter": { @@ -18,7 +18,7 @@ "license": "MIT", "development_status": "Development Status :: 1 - Planning", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "_commit": "26ae079cf9f80154c9bd7cb7658a18448a7a37dc" + "_commit": "742c9257b9b008cc0801f4817a0e9f2d029a8cce" } }, "directory": null diff --git a/.github/workflows/typecheck-python.yml b/.github/workflows/typecheck-python.yml index 310b1c8..48deca7 100644 --- a/.github/workflows/typecheck-python.yml +++ b/.github/workflows/typecheck-python.yml @@ -50,4 +50,4 @@ jobs: python-version: ${{ matrix.python-version }} - name: Run Python type checking - run: uvx nox -s typecheck(${{ matrix.python-version }}) + run: uvx nox -s "typecheck(${{ matrix.python-version }})" From 95fc8e881b78416cb0bad20b4e114dbb0531e110 Mon Sep 17 00:00:00 2001 From: Kyle Oliver Date: Sat, 5 Jul 2025 20:33:23 -0400 Subject: [PATCH 19/20] chore: update demo to the latest cookiecutter-robust-python --- .cookiecutter.json | 2 +- .cruft.json | 4 ++-- noxfile.py | 12 +++++++----- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/.cookiecutter.json b/.cookiecutter.json index e48b6f8..a548180 100644 --- a/.cookiecutter.json +++ b/.cookiecutter.json @@ -1,5 +1,5 @@ { - "_commit": "742c9257b9b008cc0801f4817a0e9f2d029a8cce", + "_commit": "2703dc5244f82596b74101c9d19393c4168a3f9a", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", "add_rust_extension": false, "author": "Kyle Oliver", diff --git a/.cruft.json b/.cruft.json index bef4efb..c8f01ac 100644 --- a/.cruft.json +++ b/.cruft.json @@ -1,6 +1,6 @@ { "template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "commit": "742c9257b9b008cc0801f4817a0e9f2d029a8cce", + "commit": "2703dc5244f82596b74101c9d19393c4168a3f9a", "checkout": null, "context": { "cookiecutter": { @@ -18,7 +18,7 @@ "license": "MIT", "development_status": "Development Status :: 1 - Planning", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "_commit": "742c9257b9b008cc0801f4817a0e9f2d029a8cce" + "_commit": "2703dc5244f82596b74101c9d19393c4168a3f9a" } }, "directory": null diff --git a/noxfile.py b/noxfile.py index 2655037..6aa7f13 100644 --- a/noxfile.py +++ b/noxfile.py @@ -86,12 +86,14 @@ def lint_python(session: Session) -> None: session.run("uvx", "ruff", "check", "--fix", "--verbose") -@nox.parametrize(arg_names="python_version", arg_values_list=PYTHON_VERSIONS, ids=PYTHON_VERSIONS) -@nox.session(python=None, name="typecheck", tags=[TYPE, PYTHON, CI]) -def typecheck(session: Session, python_version: str) -> None: +@nox.session(python=PYTHON_VERSIONS, name="typecheck", tags=[TYPE, PYTHON, CI]) +def typecheck(session: Session) -> None: """Run static type checking (Pyright) on Python code.""" - session.log(f"Running Pyright check with py{python_version}.") - session.run("uvx", "pyright", "--pythonversion", python_version) + session.log("Installing type checking dependencies...") + session.install("-e", ".", "--group", "dev") + + session.log(f"Running Pyright check with py{session.python}.") + session.run("pyright", "--pythonversion", session.python) @nox.session(python=None, name="security-python", tags=[SECURITY, PYTHON, CI]) From 3f9e9449d75cb7514e9f0edd82db3e1efb5badc0 Mon Sep 17 00:00:00 2001 From: Kyle Oliver Date: Sat, 5 Jul 2025 20:34:37 -0400 Subject: [PATCH 20/20] chore: update demo to the latest cookiecutter-robust-python --- .cookiecutter.json | 2 +- .cruft.json | 4 ++-- .github/workflows/typecheck-python.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.cookiecutter.json b/.cookiecutter.json index a548180..720d6be 100644 --- a/.cookiecutter.json +++ b/.cookiecutter.json @@ -1,5 +1,5 @@ { - "_commit": "2703dc5244f82596b74101c9d19393c4168a3f9a", + "_commit": "87a677683e54c30ad9ec09aba0c43a3572e4c215", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", "add_rust_extension": false, "author": "Kyle Oliver", diff --git a/.cruft.json b/.cruft.json index c8f01ac..067fe26 100644 --- a/.cruft.json +++ b/.cruft.json @@ -1,6 +1,6 @@ { "template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "commit": "2703dc5244f82596b74101c9d19393c4168a3f9a", + "commit": "87a677683e54c30ad9ec09aba0c43a3572e4c215", "checkout": null, "context": { "cookiecutter": { @@ -18,7 +18,7 @@ "license": "MIT", "development_status": "Development Status :: 1 - Planning", "_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python", - "_commit": "2703dc5244f82596b74101c9d19393c4168a3f9a" + "_commit": "87a677683e54c30ad9ec09aba0c43a3572e4c215" } }, "directory": null diff --git a/.github/workflows/typecheck-python.yml b/.github/workflows/typecheck-python.yml index 48deca7..a02a824 100644 --- a/.github/workflows/typecheck-python.yml +++ b/.github/workflows/typecheck-python.yml @@ -50,4 +50,4 @@ jobs: python-version: ${{ matrix.python-version }} - name: Run Python type checking - run: uvx nox -s "typecheck(${{ matrix.python-version }})" + run: uvx nox -s typecheck-${{ matrix.python-version }}