Move build system from setuptools to uv, wire uv into CI/CD
Convert both pyproject.toml files to the uv_build backend and turn the repo into a proper uv workspace (plotstyle moved to src layout, since uv_build requires the module in its own subdirectory). Dev tooling moves from an optional-dependencies extra to a dependency-group, and plotstyle's matplotlib dependency is now its own rather than a gallery "plotting" extra. Gitea Actions workflows and the Dockerfile now use astral-sh/setup-uv, uv sync, uv run, uv build, and uv publish throughout instead of pip, build, and twine. Also fixes .dockerignore, which was excluding uv.lock, deploy/, and README.md and would have broken even the previous Dockerfile's COPY of deploy/entrypoint.sh. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+20
-25
@@ -10,52 +10,48 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-python@v5
|
||||
- uses: astral-sh/setup-uv@v9.0.0
|
||||
with:
|
||||
python-version: "3.11"
|
||||
cache: pip
|
||||
cache-dependency-path: pyproject.toml
|
||||
- run: pip install -e ".[dev,plotting]"
|
||||
- run: ruff check gallery plotstyle tests
|
||||
enable-cache: true
|
||||
- run: uv sync --all-packages
|
||||
- run: uv run ruff check gallery plotstyle tests
|
||||
|
||||
format:
|
||||
name: format:ruff
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-python@v5
|
||||
- uses: astral-sh/setup-uv@v9.0.0
|
||||
with:
|
||||
python-version: "3.11"
|
||||
cache: pip
|
||||
cache-dependency-path: pyproject.toml
|
||||
- run: pip install -e ".[dev,plotting]"
|
||||
- run: ruff format --check gallery plotstyle tests
|
||||
enable-cache: true
|
||||
- run: uv sync --all-packages
|
||||
- run: uv run ruff format --check gallery plotstyle tests
|
||||
|
||||
typecheck:
|
||||
name: typecheck:ty
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-python@v5
|
||||
- uses: astral-sh/setup-uv@v9.0.0
|
||||
with:
|
||||
python-version: "3.11"
|
||||
cache: pip
|
||||
cache-dependency-path: pyproject.toml
|
||||
- run: pip install -e ".[dev,plotting]"
|
||||
- run: ty check gallery plotstyle
|
||||
enable-cache: true
|
||||
- run: uv sync --all-packages
|
||||
- run: uv run ty check gallery plotstyle
|
||||
|
||||
vulnerabilities:
|
||||
name: vulnerabilities:pip-audit
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-python@v5
|
||||
- uses: astral-sh/setup-uv@v9.0.0
|
||||
with:
|
||||
python-version: "3.11"
|
||||
cache: pip
|
||||
cache-dependency-path: pyproject.toml
|
||||
- run: pip install -e ".[dev,plotting]"
|
||||
- run: pip-audit --skip-editable
|
||||
enable-cache: true
|
||||
- run: uv sync --all-packages
|
||||
- run: uv run pip-audit --skip-editable
|
||||
|
||||
test:
|
||||
name: test:pytest
|
||||
@@ -63,10 +59,9 @@ jobs:
|
||||
needs: [lint, format, typecheck, vulnerabilities]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-python@v5
|
||||
- uses: astral-sh/setup-uv@v9.0.0
|
||||
with:
|
||||
python-version: "3.11"
|
||||
cache: pip
|
||||
cache-dependency-path: pyproject.toml
|
||||
- run: pip install -e ".[dev,plotting]"
|
||||
- run: python -m pytest tests/ -v
|
||||
enable-cache: true
|
||||
- run: uv sync --all-packages
|
||||
- run: uv run pytest tests/ -v
|
||||
|
||||
Reference in New Issue
Block a user