From eeaa7a3bed4f46633cee61472f09212fa59e780f Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 22 Jul 2026 16:54:45 +0000 Subject: [PATCH 1/2] ci: skip node install in base-setup for pure-Python workflows traitlets has no JavaScript, so set node_version: "none" on the maintainer-tools base-setup action to skip installing node in the test and release workflows. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01E4KrMceq44AzZCZfxt7sam --- .github/workflows/prep-release.yml | 2 ++ .github/workflows/publish-changelog.yml | 2 ++ .github/workflows/publish-release.yml | 2 ++ .github/workflows/tests.yml | 16 ++++++++++++++++ 4 files changed, 22 insertions(+) diff --git a/.github/workflows/prep-release.yml b/.github/workflows/prep-release.yml index 396330bb9..b37d06b59 100644 --- a/.github/workflows/prep-release.yml +++ b/.github/workflows/prep-release.yml @@ -30,6 +30,8 @@ jobs: contents: write steps: - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 + with: + node_version: "none" - name: Prep Release id: prep-release diff --git a/.github/workflows/publish-changelog.yml b/.github/workflows/publish-changelog.yml index 7d3d4b909..25d51b395 100644 --- a/.github/workflows/publish-changelog.yml +++ b/.github/workflows/publish-changelog.yml @@ -15,6 +15,8 @@ jobs: environment: release steps: - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 + with: + node_version: "none" - uses: actions/create-github-app-token@v3 id: app-token diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index 6df5d8319..371fbe786 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -20,6 +20,8 @@ jobs: id-token: write steps: - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 + with: + node_version: "none" - uses: actions/create-github-app-token@v3 id: app-token diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 6867250c8..bb9f07319 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -36,6 +36,8 @@ jobs: steps: - uses: actions/checkout@v7 - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 + with: + node_version: "none" - name: Run Tests run: hatch run cov:test - uses: jupyterlab/maintainer-tools/.github/actions/upload-coverage@v1 @@ -58,6 +60,7 @@ jobs: uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 with: dependency_type: minimum + node_version: "none" - name: Run the unit tests run: | hatch run test:nowarn || hatch -v run test:nowarn --lf @@ -68,6 +71,8 @@ jobs: steps: - uses: actions/checkout@v7 - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 + with: + node_version: "none" - name: Run Linters run: | hatch run typing:test @@ -81,6 +86,8 @@ jobs: steps: - uses: actions/checkout@v7 - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 + with: + node_version: "none" - name: Build the docs run: hatch run docs:build @@ -95,6 +102,7 @@ jobs: uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 with: dependency_type: pre + node_version: "none" - name: Run the tests run: | hatch run test:nowarn || hatch run test:nowarn --lf @@ -106,6 +114,8 @@ jobs: steps: - uses: actions/checkout@v7 - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 + with: + node_version: "none" - uses: jupyterlab/maintainer-tools/.github/actions/make-sdist@v1 test_sdist: @@ -115,6 +125,8 @@ jobs: timeout-minutes: 20 steps: - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 + with: + node_version: "none" - uses: jupyterlab/maintainer-tools/.github/actions/test-sdist@v1 check_links: @@ -122,6 +134,8 @@ jobs: timeout-minutes: 10 steps: - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 + with: + node_version: "none" - uses: jupyterlab/maintainer-tools/.github/actions/check-links@v1 check_release: @@ -131,6 +145,8 @@ jobs: uses: actions/checkout@v7 - name: Base Setup uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 + with: + node_version: "none" - name: Install Dependencies run: | pip install -e . From 9e3716f64477d5dd805493e8d8c4b38a06089120 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 25 Jul 2026 18:32:55 +0000 Subject: [PATCH 2/2] ci: speed up test workflow setup - Use uv for base-setup's pip operations (python_package_manager: "uv pip"). - Run free-threaded 3.14t on Linux only. The free-threaded build is not in the runner tool cache and is expensive to provision on Windows/macOS (~73s base-setup vs ~23s on Linux); Linux coverage is retained. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01E4KrMceq44AzZCZfxt7sam --- .github/workflows/prep-release.yml | 1 + .github/workflows/publish-changelog.yml | 1 + .github/workflows/publish-release.yml | 1 + .github/workflows/tests.yml | 16 +++++++++++++++- 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/.github/workflows/prep-release.yml b/.github/workflows/prep-release.yml index b37d06b59..c84d5eba1 100644 --- a/.github/workflows/prep-release.yml +++ b/.github/workflows/prep-release.yml @@ -32,6 +32,7 @@ jobs: - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 with: node_version: "none" + python_package_manager: "uv pip" - name: Prep Release id: prep-release diff --git a/.github/workflows/publish-changelog.yml b/.github/workflows/publish-changelog.yml index 25d51b395..213d018ef 100644 --- a/.github/workflows/publish-changelog.yml +++ b/.github/workflows/publish-changelog.yml @@ -17,6 +17,7 @@ jobs: - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 with: node_version: "none" + python_package_manager: "uv pip" - uses: actions/create-github-app-token@v3 id: app-token diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index 371fbe786..81937c408 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -22,6 +22,7 @@ jobs: - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 with: node_version: "none" + python_package_manager: "uv pip" - uses: actions/create-github-app-token@v3 id: app-token diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index bb9f07319..bdcf3f07e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -24,12 +24,17 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] - python-version: ["3.10", "3.13", "3.14", "3.14t"] + python-version: ["3.10", "3.13", "3.14"] include: - os: ubuntu-latest python-version: "3.11" - os: ubuntu-latest python-version: "3.12" + # Free-threaded builds aren't in the runner tool cache and are + # expensive to provision on Windows/macOS (~73s vs ~23s on Linux), + # so exercise 3.14t on Linux only. + - os: ubuntu-latest + python-version: "3.14t" - os: ubuntu-latest python-version: "pypy-3.11" @@ -38,6 +43,7 @@ jobs: - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 with: node_version: "none" + python_package_manager: "uv pip" - name: Run Tests run: hatch run cov:test - uses: jupyterlab/maintainer-tools/.github/actions/upload-coverage@v1 @@ -61,6 +67,7 @@ jobs: with: dependency_type: minimum node_version: "none" + python_package_manager: "uv pip" - name: Run the unit tests run: | hatch run test:nowarn || hatch -v run test:nowarn --lf @@ -73,6 +80,7 @@ jobs: - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 with: node_version: "none" + python_package_manager: "uv pip" - name: Run Linters run: | hatch run typing:test @@ -88,6 +96,7 @@ jobs: - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 with: node_version: "none" + python_package_manager: "uv pip" - name: Build the docs run: hatch run docs:build @@ -103,6 +112,7 @@ jobs: with: dependency_type: pre node_version: "none" + python_package_manager: "uv pip" - name: Run the tests run: | hatch run test:nowarn || hatch run test:nowarn --lf @@ -116,6 +126,7 @@ jobs: - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 with: node_version: "none" + python_package_manager: "uv pip" - uses: jupyterlab/maintainer-tools/.github/actions/make-sdist@v1 test_sdist: @@ -127,6 +138,7 @@ jobs: - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 with: node_version: "none" + python_package_manager: "uv pip" - uses: jupyterlab/maintainer-tools/.github/actions/test-sdist@v1 check_links: @@ -136,6 +148,7 @@ jobs: - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 with: node_version: "none" + python_package_manager: "uv pip" - uses: jupyterlab/maintainer-tools/.github/actions/check-links@v1 check_release: @@ -147,6 +160,7 @@ jobs: uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 with: node_version: "none" + python_package_manager: "uv pip" - name: Install Dependencies run: | pip install -e .