Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 7 additions & 14 deletions .github/actions/setup-nix/action.yaml
Original file line number Diff line number Diff line change
@@ -1,26 +1,19 @@
name: "Setup Nix"
description: "Install Nix and configure cache"
inputs:
python-version:
description: "Python version for cache key (e.g., python311, python313)"
required: false
default: "python311"
description: "Install Nix and configure Cachix"
runs:
using: "composite"
steps:
- name: Install Nix
uses: cachix/install-nix-action@4e002c8ec80594ecd40e759629461e26c8abed15 # v31.9.0
uses: cachix/install-nix-action@0b0e072294b088b73964f1d72dfdac0951439dbd # v31.8.4
Copy link

Copilot AI Jan 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The install-nix-action is being downgraded from v31.9.0 to v31.8.4. Downgrading dependencies in a revert can reintroduce bugs or miss security fixes that were included in the newer version. Unless there's a specific incompatibility, it's better to keep the action at the latest version (v31.9.0).

Suggested change
uses: cachix/install-nix-action@0b0e072294b088b73964f1d72dfdac0951439dbd # v31.8.4
uses: cachix/install-nix-action@v31.9.0 # v31.9.0

Copilot uses AI. Check for mistakes.
with:
github_access_token: ${{ github.token }}

- name: Cache Nix store
uses: nix-community/cache-nix-action@b426b118b6dc86d6952988d396aa7c6b09776d08 # v7
- name: Setup Cachix (numtide)
uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
with:
primary-key: nix-${{ runner.os }}-${{ inputs.python-version }}-${{ hashFiles('flake.lock', 'uv.lock', 'pyproject.toml', 'src/**/*.py') }}
restore-prefixes-first-match: |
nix-${{ runner.os }}-${{ inputs.python-version }}-
nix-${{ runner.os }}-
name: numtide
authToken: ""

Comment on lines +15 to 16
Copy link

Copilot AI Jan 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The caching strategy has been downgraded from nix-community/cache-nix-action@v7 to cachix/cachix-action@v16. This changes from Nix store caching (which caches the entire Nix build outputs) to Cachix (which is a binary cache service). Without proper configuration, this could significantly impact CI performance as the development environment will need to be rebuilt on every run instead of being restored from cache. Consider retaining the cache-nix-action to avoid unnecessary rebuilds.

Suggested change
authToken: ""
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
- name: Cache Nix store
uses: nix-community/cache-nix-action@v7

Copilot uses AI. Check for mistakes.
- name: Verify Nix installation
- name: Load Nix development environment
shell: bash
run: nix develop --command true
21 changes: 15 additions & 6 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,12 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["python311", "python313"]
python-version: ["3.11", "3.13"]
include:
- python-version: "3.11"
sync-extras: "--all-extras"
- python-version: "3.13"
sync-extras: "--all-extras"
Comment on lines +38 to +42
Copy link

Copilot AI Jan 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The sync-extras matrix parameter is defined but serves no clear purpose since both Python versions use the identical value "--all-extras". This adds unnecessary complexity to the workflow configuration. Either remove the matrix parameter and use --all-extras directly in the install step, or differentiate the extras needed for different Python versions if there's a legitimate reason for the matrix structure.

Copilot uses AI. Check for mistakes.
steps:
- name: Checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
Expand All @@ -43,17 +48,18 @@ jobs:

- name: Setup Nix
uses: ./.github/actions/setup-nix
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: nix develop --command just install ${{ matrix.sync-extras }}

- name: Run Lint
run: nix develop .#${{ matrix.python-version }} --command just lint
run: nix develop --command just lint

- name: Run Ty
run: nix develop .#${{ matrix.python-version }} --command just ty
run: nix develop --command just ty

- name: Run Tests
run: nix develop .#${{ matrix.python-version }} --command just test
run: nix develop --command just test

coverage:
runs-on: ubuntu-latest
Expand All @@ -67,6 +73,9 @@ jobs:
- name: Setup Nix
uses: ./.github/actions/setup-nix

- name: Install dependencies
run: nix develop --command just install --all-extras

- name: Run Tests with Coverage
run: nix develop --command just coverage

Expand Down
102 changes: 15 additions & 87 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading