From 78a615ed4d3c4bd800aae315bcd88a1a6c2818cc Mon Sep 17 00:00:00 2001 From: Todd Leonhardt Date: Sun, 25 May 2025 15:44:02 -0400 Subject: [PATCH 1/9] Refactor GitHub Actions workflows Changes include: - Only run on PR creation/change or merge to master branch (stop running on pushes to random branches) - Combine lint and format checks into one Quality workflow which is based on running pre-commit so it includes additional formatters - Rename build workflow to tests and change how coverage data gets uploaded to codecov - Rename mypy workflow to typecheck and also make sure to run it for every version of Python as type support varies --- .github/actions/setup-python-env/action.yml | 30 ++++++++++++++++ .github/workflows/build.yml | 37 ------------------- .github/workflows/doc.yml | 31 ---------------- .github/workflows/docs.yml | 26 ++++++++++++++ .github/workflows/format.yml | 20 ----------- .github/workflows/lint.yml | 20 ----------- .github/workflows/mypy.yml | 26 -------------- .github/workflows/quality.yml | 29 +++++++++++++++ .github/workflows/tests.yml | 39 +++++++++++++++++++++ .github/workflows/typecheck.yml | 33 +++++++++++++++++ 10 files changed, 157 insertions(+), 134 deletions(-) create mode 100644 .github/actions/setup-python-env/action.yml delete mode 100644 .github/workflows/build.yml delete mode 100644 .github/workflows/doc.yml create mode 100644 .github/workflows/docs.yml delete mode 100644 .github/workflows/format.yml delete mode 100644 .github/workflows/lint.yml delete mode 100644 .github/workflows/mypy.yml create mode 100644 .github/workflows/quality.yml create mode 100644 .github/workflows/tests.yml create mode 100644 .github/workflows/typecheck.yml diff --git a/.github/actions/setup-python-env/action.yml b/.github/actions/setup-python-env/action.yml new file mode 100644 index 00000000..274a47a5 --- /dev/null +++ b/.github/actions/setup-python-env/action.yml @@ -0,0 +1,30 @@ +name: "Setup Python Environment" +description: "Set up Python environment for the given Python version" + +inputs: + python-version: + description: "Python version to use" + required: true + default: "3.13" + uv-version: + description: "uv version to use" + required: true + default: "0.7.8" + +runs: + using: "composite" + steps: + - uses: actions/setup-python@v5 + with: + python-version: ${{ inputs.python-version }} + + - name: Install uv + uses: astral-sh/setup-uv@v6 + with: + version: ${{ inputs.uv-version }} + enable-cache: "true" + cache-suffix: ${{ matrix.python-version }} + + - name: Install Python dependencies + run: uv sync --frozen + shell: bash diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index c984140d..00000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,37 +0,0 @@ -# For documentation on GitHub Actions Workflows, see: -# https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions -name: "build" - -on: [push, pull_request] - -jobs: - build: - strategy: - fail-fast: false - matrix: - os: [ubuntu-latest, macos-latest, windows-latest] - python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14-dev"] - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v4 # https://github.com/actions/checkout - with: - # Only a single commit is fetched by default, for the ref/SHA that triggered the workflow. - # Set fetch-depth: 0 to fetch all history for all branches and tags. - fetch-depth: 0 # Needed for setuptools_scm to work correctly - - name: Install uv - uses: astral-sh/setup-uv@v6 - - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} - allow-prereleases: true - - - name: Install the project - run: uv sync --all-extras --dev - - - name: Run tests - run: uv run inv pytest --junit --no-pty --base - - - name: Run isolated tests - run: uv run inv pytest --junit --no-pty --isolated diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml deleted file mode 100644 index 86f26bfb..00000000 --- a/.github/workflows/doc.yml +++ /dev/null @@ -1,31 +0,0 @@ -# For documentation on GitHub Actions Workflows, see: -# https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions -name: Doc - -on: [push, pull_request, workflow_dispatch] - -permissions: - contents: read - -jobs: - doc: - strategy: - matrix: - os: [ubuntu-latest] - python-version: ["3.13"] - fail-fast: false - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v4 # https://github.com/actions/checkout - with: - # Only a single commit is fetched by default, for the ref/SHA that triggered the workflow. - # Set fetch-depth: 0 to fetch all history for all branches and tags. - fetch-depth: 0 # Needed for setuptools_scm to work correctly - - name: Install uv and set the python version - uses: astral-sh/setup-uv@v6 - with: - python-version: ${{ matrix.python-version }} - - name: Install the project - run: uv sync --group docs - - name: MkDocs documentation build - run: uv run mkdocs build -s diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 00000000..4d94c33e --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,26 @@ +# For documentation on GitHub Actions Workflows, see: +# https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions +name: Docs +on: + pull_request: + types: [opened, synchronize, reopened] + push: + branches: [master] + + workflow_dispatch: + +permissions: + contents: read + +jobs: + check-docs: + runs-on: ubuntu-latest + steps: + - name: Check out + uses: actions/checkout@v4 + + - name: Set up the environment + uses: ./.github/actions/setup-python-env + + - name: Check if documentation can be built + run: uv run mkdocs build -s diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml deleted file mode 100644 index 70d56586..00000000 --- a/.github/workflows/format.yml +++ /dev/null @@ -1,20 +0,0 @@ -# For documentation on GitHub Actions Workflows, see: -# https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions -name: Format - -on: [push, pull_request] - -permissions: - contents: read - -jobs: - format: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 # https://github.com/actions/checkout - with: - # Only a single commit is fetched by default, for the ref/SHA that triggered the workflow. - # Set fetch-depth: 0 to fetch all history for all branches and tags. - fetch-depth: 0 # Needed for setuptools_scm to work correctly - - uses: astral-sh/ruff-action@v3 - - run: ruff format --check diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml deleted file mode 100644 index f2d086d1..00000000 --- a/.github/workflows/lint.yml +++ /dev/null @@ -1,20 +0,0 @@ -# For documentation on GitHub Actions Workflows, see: -# https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions -name: Lint - -on: [push, pull_request] - -permissions: - contents: read - -jobs: - lint: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 # https://github.com/actions/checkout - with: - # Only a single commit is fetched by default, for the ref/SHA that triggered the workflow. - # Set fetch-depth: 0 to fetch all history for all branches and tags. - fetch-depth: 0 # Needed for setuptools_scm to work correctly - - uses: astral-sh/ruff-action@v3 - - run: ruff check --output-format=github . diff --git a/.github/workflows/mypy.yml b/.github/workflows/mypy.yml deleted file mode 100644 index 6c5a047e..00000000 --- a/.github/workflows/mypy.yml +++ /dev/null @@ -1,26 +0,0 @@ -# For documentation on GitHub Actions Workflows, see: -# https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions -name: MyPy - -on: [push, pull_request] - -permissions: - contents: read - -jobs: - mypy: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 # https://github.com/actions/checkout - with: - # Only a single commit is fetched by default, for the ref/SHA that triggered the workflow. - # Set fetch-depth: 0 to fetch all history for all branches and tags. - fetch-depth: 0 # Needed for setuptools_scm to work correctly - - name: Install uv and set the python version - uses: astral-sh/setup-uv@v6 - with: - python-version: 3.13 - - name: Install the project - run: uv sync --group validate - - name: Run mypy static type checker - run: uv run mypy . diff --git a/.github/workflows/quality.yml b/.github/workflows/quality.yml new file mode 100644 index 00000000..7589a125 --- /dev/null +++ b/.github/workflows/quality.yml @@ -0,0 +1,29 @@ +# For documentation on GitHub Actions Workflows, see: +# https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions +name: Quality +on: + pull_request: + types: [opened, synchronize, reopened] + push: + branches: [master] + +permissions: + contents: read + +jobs: + quality: + runs-on: ubuntu-latest + steps: + - name: Check out + uses: actions/checkout@v4 + + - uses: actions/cache@v4 + with: + path: ~/.cache/pre-commit + key: pre-commit-${{ hashFiles('.pre-commit-config.yaml') }} + + - name: Set up the environment + uses: ./.github/actions/setup-python-env + + - name: Run pre-commit + run: uv run pre-commit run -a --show-diff-on-failure diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 00000000..47a2c648 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,39 @@ +# For documentation on GitHub Actions Workflows, see: +# https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions +name: Tests +on: + pull_request: + types: [opened, synchronize, reopened] + push: + branches: [master] + +jobs: + tests: + strategy: + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14-dev"] + fail-fast: false + + runs-on: ${{ matrix.os }} + defaults: + run: + shell: bash + steps: + - name: Check out + uses: actions/checkout@v4 + + - name: Set up the environment + uses: ./.github/actions/setup-python-env + with: + python-version: ${{ matrix.python-version }} + + - name: Run tests + run: uv run inv pytest --junit --no-pty --base + + - name: Run isolated tests + run: uv run inv pytest --junit --no-pty --isolated + + - name: Upload coverage reports to Codecov with GitHub Action on Python 3.13 for each OS + uses: codecov/codecov-action@v3 + if: ${{ matrix.python-version == '3.13' }} diff --git a/.github/workflows/typecheck.yml b/.github/workflows/typecheck.yml new file mode 100644 index 00000000..9d6f5472 --- /dev/null +++ b/.github/workflows/typecheck.yml @@ -0,0 +1,33 @@ +# For documentation on GitHub Actions Workflows, see: +# https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions +name: TypeCheck +on: + pull_request: + types: [opened, synchronize, reopened] + push: + branches: [master] + +permissions: + contents: read + +jobs: + type-check: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14-dev"] + fail-fast: false + defaults: + run: + shell: bash + steps: + - name: Check out + uses: actions/checkout@v4 + + - name: Set up the environment + uses: ./.github/actions/setup-python-env + with: + python-version: ${{ matrix.python-version }} + + - name: Check typing + run: uv run mypy From b0a72dcc0c767e642d14750cd77add96320577df Mon Sep 17 00:00:00 2001 From: Todd Leonhardt Date: Sun, 25 May 2025 15:46:45 -0400 Subject: [PATCH 2/9] Change how uv dependencies get install for GitHub Actions so it doesn't require a uv.lock file to be committed --- .github/actions/setup-python-env/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/setup-python-env/action.yml b/.github/actions/setup-python-env/action.yml index 274a47a5..d4efec21 100644 --- a/.github/actions/setup-python-env/action.yml +++ b/.github/actions/setup-python-env/action.yml @@ -26,5 +26,5 @@ runs: cache-suffix: ${{ matrix.python-version }} - name: Install Python dependencies - run: uv sync --frozen + run: uv sync shell: bash From 5125dcfcc1e86dcecb4ec1e705e974ed4226c275 Mon Sep 17 00:00:00 2001 From: Todd Leonhardt Date: Sun, 25 May 2025 15:56:06 -0400 Subject: [PATCH 3/9] Tweak what dependencies get installed for each workflow --- .github/actions/setup-python-env/action.yml | 6 +++++- .github/workflows/docs.yml | 2 ++ .github/workflows/quality.yml | 2 ++ .github/workflows/tests.yml | 1 + .github/workflows/typecheck.yml | 1 + 5 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/actions/setup-python-env/action.yml b/.github/actions/setup-python-env/action.yml index d4efec21..201a8386 100644 --- a/.github/actions/setup-python-env/action.yml +++ b/.github/actions/setup-python-env/action.yml @@ -2,6 +2,10 @@ name: "Setup Python Environment" description: "Set up Python environment for the given Python version" inputs: + extra-dependencies: + description: "Extra dependency groups to install" + required: false + default: "" python-version: description: "Python version to use" required: true @@ -26,5 +30,5 @@ runs: cache-suffix: ${{ matrix.python-version }} - name: Install Python dependencies - run: uv sync + run: uv sync $${{ inputs.extra-dependencies }} shell: bash diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 4d94c33e..ef5c6a8e 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -21,6 +21,8 @@ jobs: - name: Set up the environment uses: ./.github/actions/setup-python-env + with: + extra-dependencies: --group docs - name: Check if documentation can be built run: uv run mkdocs build -s diff --git a/.github/workflows/quality.yml b/.github/workflows/quality.yml index 7589a125..65808e91 100644 --- a/.github/workflows/quality.yml +++ b/.github/workflows/quality.yml @@ -24,6 +24,8 @@ jobs: - name: Set up the environment uses: ./.github/actions/setup-python-env + with: + extra-dependencies: --all-extras - name: Run pre-commit run: uv run pre-commit run -a --show-diff-on-failure diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 47a2c648..f695c668 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -27,6 +27,7 @@ jobs: uses: ./.github/actions/setup-python-env with: python-version: ${{ matrix.python-version }} + extra-dependencies: --all-extras --dev - name: Run tests run: uv run inv pytest --junit --no-pty --base diff --git a/.github/workflows/typecheck.yml b/.github/workflows/typecheck.yml index 9d6f5472..f9b198af 100644 --- a/.github/workflows/typecheck.yml +++ b/.github/workflows/typecheck.yml @@ -28,6 +28,7 @@ jobs: uses: ./.github/actions/setup-python-env with: python-version: ${{ matrix.python-version }} + extra-dependencies: --group validate - name: Check typing run: uv run mypy From fbbfe73779c497733e067f07a1da0f0104e1f932 Mon Sep 17 00:00:00 2001 From: Todd Leonhardt Date: Sun, 25 May 2025 15:57:21 -0400 Subject: [PATCH 4/9] Fix typo --- .github/actions/setup-python-env/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/setup-python-env/action.yml b/.github/actions/setup-python-env/action.yml index 201a8386..ea0b8a3a 100644 --- a/.github/actions/setup-python-env/action.yml +++ b/.github/actions/setup-python-env/action.yml @@ -30,5 +30,5 @@ runs: cache-suffix: ${{ matrix.python-version }} - name: Install Python dependencies - run: uv sync $${{ inputs.extra-dependencies }} + run: uv sync ${{ inputs.extra-dependencies }} shell: bash From 8af28c012308523b902d63b6f634c38b361f4a78 Mon Sep 17 00:00:00 2001 From: Todd Leonhardt Date: Sun, 25 May 2025 16:01:14 -0400 Subject: [PATCH 5/9] Try to fix Docs GitHub Action workflow --- .github/workflows/docs.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index ef5c6a8e..3783e501 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -18,11 +18,14 @@ jobs: steps: - name: Check out uses: actions/checkout@v4 - - - name: Set up the environment - uses: ./.github/actions/setup-python-env with: - extra-dependencies: --group docs + fetch-depth: 0 # Needed for setuptools_scm to work correctly - - name: Check if documentation can be built + - name: Install uv and set the python version + uses: astral-sh/setup-uv@v6 + with: + python-version: "3.13" + - name: Install the project + run: uv sync --group docs + - name: Check if the MkDocs documentation can be built run: uv run mkdocs build -s From 3cea301b7661d6741d2e818eb9b3a5dfedff8869 Mon Sep 17 00:00:00 2001 From: Todd Leonhardt Date: Sun, 25 May 2025 16:05:51 -0400 Subject: [PATCH 6/9] Try to fix quality QH Actions workflow --- .github/workflows/quality.yml | 12 +++++++----- pyproject.toml | 1 + 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/quality.yml b/.github/workflows/quality.yml index 65808e91..45598763 100644 --- a/.github/workflows/quality.yml +++ b/.github/workflows/quality.yml @@ -16,16 +16,18 @@ jobs: steps: - name: Check out uses: actions/checkout@v4 + with: + fetch-depth: 0 # Needed for setuptools_scm to work correctly - uses: actions/cache@v4 with: path: ~/.cache/pre-commit key: pre-commit-${{ hashFiles('.pre-commit-config.yaml') }} - - - name: Set up the environment - uses: ./.github/actions/setup-python-env + - name: Install uv and set the python version + uses: astral-sh/setup-uv@v6 with: - extra-dependencies: --all-extras - + python-version: "3.13" + - name: Install the project + run: uv sync --group quality - name: Run pre-commit run: uv run pre-commit run -a --show-diff-on-failure diff --git a/pyproject.toml b/pyproject.toml index 75476f39..0b7e69c4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -65,6 +65,7 @@ docs = [ "setuptools_scm>=8", ] plugins = ["cmd2-ext-test"] +quality = ["pre-commit>=2.20.0"] test = [ "codecov>=2", "coverage>=7", From 1238fcd200f219c194f415915b6a69246529b339 Mon Sep 17 00:00:00 2001 From: Todd Leonhardt Date: Sun, 25 May 2025 16:11:31 -0400 Subject: [PATCH 7/9] Try to fix tests and tying GitHub Actions workflows In the process also delete the common action file because it isn't useful. --- .github/actions/setup-python-env/action.yml | 34 --------------------- .github/workflows/tests.yml | 10 +++--- .github/workflows/typecheck.yml | 9 +++--- 3 files changed, 11 insertions(+), 42 deletions(-) delete mode 100644 .github/actions/setup-python-env/action.yml diff --git a/.github/actions/setup-python-env/action.yml b/.github/actions/setup-python-env/action.yml deleted file mode 100644 index ea0b8a3a..00000000 --- a/.github/actions/setup-python-env/action.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: "Setup Python Environment" -description: "Set up Python environment for the given Python version" - -inputs: - extra-dependencies: - description: "Extra dependency groups to install" - required: false - default: "" - python-version: - description: "Python version to use" - required: true - default: "3.13" - uv-version: - description: "uv version to use" - required: true - default: "0.7.8" - -runs: - using: "composite" - steps: - - uses: actions/setup-python@v5 - with: - python-version: ${{ inputs.python-version }} - - - name: Install uv - uses: astral-sh/setup-uv@v6 - with: - version: ${{ inputs.uv-version }} - enable-cache: "true" - cache-suffix: ${{ matrix.python-version }} - - - name: Install Python dependencies - run: uv sync ${{ inputs.extra-dependencies }} - shell: bash diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f695c668..6a18ae7d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -22,12 +22,14 @@ jobs: steps: - name: Check out uses: actions/checkout@v4 - - - name: Set up the environment - uses: ./.github/actions/setup-python-env + with: + fetch-depth: 0 # Needed for setuptools_scm to work correctly + - name: Install uv and set the python version + uses: astral-sh/setup-uv with: python-version: ${{ matrix.python-version }} - extra-dependencies: --all-extras --dev + - name: Install the project + run: uv sync --all-extras --dev - name: Run tests run: uv run inv pytest --junit --no-pty --base diff --git a/.github/workflows/typecheck.yml b/.github/workflows/typecheck.yml index f9b198af..df53b15f 100644 --- a/.github/workflows/typecheck.yml +++ b/.github/workflows/typecheck.yml @@ -23,12 +23,13 @@ jobs: steps: - name: Check out uses: actions/checkout@v4 + with: + fetch-depth: 0 # Needed for setuptools_scm to work correctly - - name: Set up the environment - uses: ./.github/actions/setup-python-env + - name: Install uv and set the python version + uses: astral-sh/setup-uv with: python-version: ${{ matrix.python-version }} - extra-dependencies: --group validate - name: Check typing - run: uv run mypy + run: uv run mypy . From e6d6cdc3f61979a6faef5af29dbd3c75af20d52c Mon Sep 17 00:00:00 2001 From: Todd Leonhardt Date: Sun, 25 May 2025 16:17:23 -0400 Subject: [PATCH 8/9] Fix typo --- .github/workflows/tests.yml | 2 +- .github/workflows/typecheck.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 6a18ae7d..8a099fe3 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -25,7 +25,7 @@ jobs: with: fetch-depth: 0 # Needed for setuptools_scm to work correctly - name: Install uv and set the python version - uses: astral-sh/setup-uv + uses: astral-sh/setup-uv@v6 with: python-version: ${{ matrix.python-version }} - name: Install the project diff --git a/.github/workflows/typecheck.yml b/.github/workflows/typecheck.yml index df53b15f..635712e7 100644 --- a/.github/workflows/typecheck.yml +++ b/.github/workflows/typecheck.yml @@ -27,7 +27,7 @@ jobs: fetch-depth: 0 # Needed for setuptools_scm to work correctly - name: Install uv and set the python version - uses: astral-sh/setup-uv + uses: astral-sh/setup-uv@v6 with: python-version: ${{ matrix.python-version }} From e6e7bd469f6ae8918d292f584986babfd9ab379d Mon Sep 17 00:00:00 2001 From: Todd Leonhardt Date: Sun, 25 May 2025 16:24:20 -0400 Subject: [PATCH 9/9] Don't run typecheck on pre-release versions of Python and change how Python is installed for tests --- .github/workflows/tests.yml | 6 +++++- .github/workflows/typecheck.yml | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8a099fe3..1b6197f5 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -24,10 +24,14 @@ jobs: uses: actions/checkout@v4 with: fetch-depth: 0 # Needed for setuptools_scm to work correctly - - name: Install uv and set the python version + - name: Install uv uses: astral-sh/setup-uv@v6 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} + allow-prereleases: true - name: Install the project run: uv sync --all-extras --dev diff --git a/.github/workflows/typecheck.yml b/.github/workflows/typecheck.yml index 635712e7..c4448d26 100644 --- a/.github/workflows/typecheck.yml +++ b/.github/workflows/typecheck.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14-dev"] + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] fail-fast: false defaults: run: