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>
- Replace the Docker build/publish CI stages with ruff (lint + format
check), ty (type check), pip-audit, and pytest run directly against
python:3.11-slim; Docker remains for manual/server deployment only.
- Swap black/pylint/mypy for ruff/ty across pyproject.toml, and fix
every resulting lint, format, and type diagnostic in gallery/ and
plotstyle/.
- Fix tests broken/stale from before the package restructuring: wrong
`utils.*` import paths, mock patch targets pointed at the wrong
module, and PDF-conversion tests still assuming ImageMagick instead
of the current PyMuPDF-first path. Drop test_container.py (obsolete
Docker-container smoke tests, fully superseded elsewhere).
- Add a plain-venv + systemd --user timer deployment path
(deploy/systemd/) for HPC login nodes without a Docker daemon, where
public_html is already served by existing infrastructure.
- Document both in CLAUDE.md, including running CI's checks locally
before committing.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Root-level docs hadn't caught up with the plotstyle package addition
(KIT styling toolkit, plotting extra, plotstyle/CLAUDE.md pointer) or
the earlier Singularity-to-Docker deployment switch.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Deleted NavigationManager, RecentPlotsManager, SearchManager, SortManager, StatsManager, ThemeManager, Utils, and ViewManager classes.
- Updated gallery builder to improve asset copying logic with a more efficient modification time check.
- Cleaned up gallery HTML template by removing subdirectory listing and embedding gallery data as JSON.
- Added CLAUDE.md for project documentation and guidelines.