Run ruff check, ruff format --check, and ty check as separate steps
per package (gallery, plotstyle, tests) instead of one combined
command, so a failure points at which package broke.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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>
pip-audit can't look up the local editable "gallery" package on PyPI,
so skip it explicitly. Also bump the setuptools build requirement to
pull in recent security fixes.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The python:3.11-slim job container lacked a Node.js runtime, so the
runner couldn't exec actions/checkout inside it. Run jobs on the
default runner image instead and pin Python via actions/setup-python.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Replace .gitlab-ci.yml with .gitea/workflows/ci.yml, keeping the same
lint/format/typecheck/pip-audit/pytest jobs against python:3.11-slim,
and update docs that referenced the old GitLab pipeline file.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>