From 82becd7b22a4c2bd01e748b81b1f464a38fef4bc Mon Sep 17 00:00:00 2001 From: priya-sundaram-dev Date: Fri, 4 Sep 2026 08:14:06 +0000 Subject: [PATCH 1/2] ci: add informational (non-blocking) ty type-check job --- .github/workflows/ty.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 .github/workflows/ty.yml diff --git a/.github/workflows/ty.yml b/.github/workflows/ty.yml new file mode 100644 index 000000000000..052e9aea9a74 --- /dev/null +++ b/.github/workflows/ty.yml @@ -0,0 +1,25 @@ +# https://docs.astral.sh/ty/ +name: ty +on: + push: + branches: + - master + pull_request: + branches: + - master +jobs: + ty: + runs-on: ubuntu-latest + # Informational only: ty is not yet a required gate. This job surfaces + # type-check findings in the logs so they can be triaged into gradual + # [tool.ty] rules without blocking merges. Flip `continue-on-error` to + # false once the baseline is clean. + continue-on-error: true + steps: + - uses: actions/checkout@v7 + - uses: astral-sh/setup-uv@v7 + # Type-check on a regular (GIL) 3.14 interpreter so third-party stubs + # resolve. The free-threaded 3.14t venv used by the test matrix does not + # resolve several typed dependencies, which made ty skip its own config. + - run: uv sync --python 3.14 --group=test + - run: uv run --python 3.14 --with=ty==0.0.78 ty check --output-format=github From db5a082324c690e5e09c377680cf50aad2ac944a Mon Sep 17 00:00:00 2001 From: priya-sundaram-dev Date: Fri, 4 Sep 2026 08:14:07 +0000 Subject: [PATCH 2/2] ci: pin ty environment python-version to 3.14 --- pyproject.toml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 1f51bddc8a13..32a9eb7bd09f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -184,6 +184,12 @@ skip = """\ [tool.mypy] python_version = "3.14" +[tool.ty.environment] +# Type-check against a regular (GIL) 3.14 interpreter. Pinning this keeps ty's +# assumptions consistent with the CI job in .github/workflows/ty.yml, where the +# free-threaded 3.14t test venv would otherwise leave several stubs unresolved. +python-version = "3.14" + [tool.pytest] ini_options.addopts = [ "--durations=10", @@ -200,3 +206,4 @@ report.omit = [ "project_euler/*", ] report.sort = "Cover" +