Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 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
4 changes: 2 additions & 2 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ jobs:
- uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v4
uses: astral-sh/setup-uv@v7
with:
version: "latest"
enable-cache: true

- name: Set up Python 3.13
run: uv python install 3.13
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,10 @@ jobs:
with:
python-version: '3.12'

- uses: astral-sh/setup-uv@v3
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true

- name: Generate docs (pdoc + mkdocs)
run: |
Expand Down
49 changes: 17 additions & 32 deletions .github/workflows/pypi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,47 +9,32 @@ permissions:
contents: read

jobs:
build:
name: Build distribution 📦
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Install pypa/build
run: >-
python3 -m
pip install
uv
- name: Build a binary wheel and a source tarball
run: uv build --sdist --wheel --out-dir dist
- name: Store the distribution packages
uses: actions/upload-artifact@v4
with:
name: python-package-distributions
path: dist/

publish-to-pypi:
name: Publish Python 🐍 distribution 📦 to PyPI
needs:
- build
runs-on: ubuntu-latest
environment:
name: pypi
url: https://pypi.org/p/confkit
permissions:
id-token: write # IMPORTANT: mandatory for trusted publishing
contents: read

steps:
- name: Download all the dists
uses: actions/download-artifact@v4
- name: Checkout
uses: actions/checkout@v4
with:
name: python-package-distributions
path: dist/
persist-credentials: false

- name: Install uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true

- name: Set up Python
run: uv python install 3.14
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

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

This workflow pins the build environment to Python 3.14 via uv python install 3.14, which may be unavailable/unstable on GitHub runners and isn't required by requires-python (>=3.11). Prefer a stable version you support (e.g., 3.12 or 3.13) for building and publishing.

Suggested change
run: uv python install 3.14
run: uv python install 3.12

Copilot uses AI. Check for mistakes.

- name: Build distribution 📦
run: uv build

- name: Publish distribution 📦 to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
run: uv publish
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

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

The workflow switched from pypa/gh-action-pypi-publish (which handles trusted publishing) to uv publish, but no API token/environment variables are configured. If uv publish isn't configured for OIDC/trusted publishing in this repo, this step will fail to authenticate. Either keep the trusted-publishing action or document/configure the required auth mechanism for uv publish (token env var or OIDC support).

Suggested change
run: uv publish
uses: pypa/gh-action-pypi-publish@release/v1

Copilot uses AI. Check for mistakes.
24 changes: 15 additions & 9 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ permissions:
contents: read

jobs:
test:
check-cache:
runs-on: ubuntu-latest
strategy:
matrix:
Expand All @@ -33,28 +33,34 @@ jobs:
restore-keys: |
${{ runner.os }}-pytest-${{ matrix.python-version }}-

test:
runs-on: ubuntu-latest
needs: check-cache
if: needs.check-cache.outputs.cache-hit != 'true'
strategy:
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

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

test job condition references needs.check-cache.outputs.cache-hit, but check-cache does not define any job outputs. As written, this condition will never reflect the cache action result (likely evaluating to true every time), so the extra check-cache matrix runs for no benefit. Expose cache-hit as a job output (via outputs:) or remove this job and do cache restore/check within test.

Copilot uses AI. Check for mistakes.
Copy link
Owner Author

Choose a reason for hiding this comment

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

@copilot open a new pull request to apply changes based on this feedback

matrix:
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
fail-fast: false
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

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

The test matrix includes Python 3.10 even though pyproject.toml declares requires-python = ">=3.11", so CI on 3.10 will fail or be misleading. Also consider whether 3.14 is intentionally supported/available on runners; if not, pin the matrix to supported stable versions (3.11+).

Copilot uses AI. Check for mistakes.

steps:
- uses: actions/checkout@v4

- name: Install uv
if: steps.cache-pytest.outputs.cache-hit != 'true'
uses: astral-sh/setup-uv@v4
uses: astral-sh/setup-uv@v7
with:
version: "latest"
enable-cache: true

- name: Set up Python ${{ matrix.python-version }}
if: steps.cache-pytest.outputs.cache-hit != 'true'
run: uv python install ${{ matrix.python-version }}

- name: Install dependencies
if: steps.cache-pytest.outputs.cache-hit != 'true'
run: uv sync --group dev

- name: Run tests
if: steps.cache-pytest.outputs.cache-hit != 'true'
run: uv run pytest .

- name: Run ruff check
if: steps.cache-pytest.outputs.cache-hit != 'true'
run: uv run ruff check .

- name: Run type checking
if: steps.cache-pytest.outputs.cache-hit != 'true'
run: uvx ty check . --ignore no-matching-overload
Comment on lines 53 to 54
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

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

uv run ty check requires the ty package to be installed in the environment, but uv sync --group dev does not include ty in pyproject.toml dependency groups. This will fail at runtime; either add ty to the dev dependency group or revert to uvx ty ... (or another installation approach) so the command is available.

Copilot uses AI. Check for mistakes.