28 Commits

Author SHA1 Message Date
David Davis
e6765fa636 Migrate to uv (#1434)
* init uv project

* fix workflow for uv

* updated docs

* update dependabot to use uv

* lock python version

* fix python version

* update uv deps

* Address PR review feedback

- Match dependency versions to dev branch (Django 5.2.13, allauth 65.15.1,
  health-check 4.2.2 with [celery,redis] extras, ruff 0.15.10, fakeredis[lua])
- Remove unused django-decorator-include
- Restore single-line ruff ignore array (unrelated whitespace)
- Drop description/readme; mark as non-package via [tool.uv]
- Install supervisor via apk in Dockerfile
- Fix CI: use 'uv run playwright install'; drop unused --all-extras
- README: set `dynamic = ["version"]` to avoid declaring version

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>

* Fix container startup after switch to uv base image

- Dockerfile: prepend /.venv/bin to PATH so python/gunicorn/celery
  resolve directly (entrypoint.sh and supervisord.conf invoke them by
  name).
- entrypoint.sh: drop hardcoded /usr/local/bin/ prefix for supervisord;
  apk installs it to /usr/bin/supervisord, so let PATH resolve it.
- uv.lock: regenerated after pyproject.toml switched to dynamic version.

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>

* Add mkdocs and supervisor as uv deps; lint pyproject.toml

- Add a 'docs' dependency group with mkdocs and its plugins; switch
  build-docs.yml to use uv and remove docs/requirements.txt.
- Add supervisor to project deps so it ships in /.venv/bin instead of
  via apk in the Docker image.
- Add validate-pyproject and pyproject-fmt as dev deps and pre-commit
  hooks; reformat pyproject.toml accordingly.
- Drop unused dynamic version metadata (app version comes from the
  VERSION env var, not package metadata).

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>

* Move uv virtualenv into /yamtrack workdir

Set WORKDIR before copying pyproject.toml and uv.lock so the
uv-managed virtualenv is created at /yamtrack/.venv. Update PATH
accordingly and ignore .venv in .dockerignore.

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>

* Pin Python version to 3.12

Add .python-version so uv (and pyenv) consistently select the
same interpreter when creating the virtualenv.

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>

* Enable uv bytecode compilation in Docker image

Set UV_COMPILE_BYTECODE=1 so uv precompiles .pyc files during
'uv sync'. This trades a small build-time cost for faster
container/worker startup since Python doesn't have to compile
modules on first import.

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>

* Use multi-stage Docker build to slim the runtime image

Build the virtualenv with uv in a builder stage based on
ghcr.io/astral-sh/uv:python3.12-alpine, then copy /yamtrack/.venv
into a clean python:3.12-alpine final stage. The final image no
longer carries the uv binary or its build cache, and collectstatic
runs via 'python manage.py' since the venv is on PATH.

Set UV_LINK_MODE=copy in the builder so packages are copied (not
symlinked from a cache that the final stage will not see).

Reduces image size by roughly 150 MB in local testing.

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>

* Drop validate-pyproject and pyproject-fmt; revert pyproject formatting

Remove the validate-pyproject and pyproject-fmt pre-commit hooks
and dev dependencies, and revert the cosmetic pyproject.toml
formatting that pyproject-fmt had applied (e.g. nested
[tool.ruff.lint.*] tables and tight list spacing) to match the
dev branch style.

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>

* Pin Alpine version and preserve bytecode in Docker build

- Pin both builder and final stages to alpine3.21 for reproducibility
  and binary compatibility between the virtualenv and runtime image.
- Stop deleting __pycache__ after uv sync so the bytecode compiled via
  UV_COMPILE_BYTECODE=1 is actually shipped, giving faster startup and
  avoiding runtime compilation on read-only filesystems.

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>

* Add django-tailwind-cli for Tailwind integration

Replaces the standalone tailwindcss CLI workflow with django-tailwind-cli,
which downloads and manages the standalone Tailwind binary itself. The
output path (static/css/main.css) is preserved so base.html and the
production build are unchanged.

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>

* Split dev dependency group into lint and test

The dev group now includes both via include-group, preserving the existing
'uv sync' behavior while allowing lint-only or test-only installs.

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>

* Revert "Add django-tailwind-cli for Tailwind integration"

This reverts commit 3796e53e347b81784e69fa0328c4e3d35be90d55.

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>

* Add back pinning version to `0.0.0`

Using `dynamic`, uv tries to build an egg every time dependencies are
added/removed.

* Switch docs group from mkdocs to zensical

Upstream migrated documentation tooling from mkdocs to zensical. Replace
the mkdocs-* plugins in the docs dependency group with zensical and the
squidfunk fork of mike that zensical expects.

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>

---------

Co-authored-by: Eddi <75438446+minerop5000@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: David Davis <86290+daviddavis@users.noreply.github.com>
2026-05-17 14:58:53 +02:00
FuzzyGrim
01063df479 sync docs home page from readme 2026-05-10 17:16:36 +02:00
Alessandro Burzio
78aee8e8ed feat(add-docs): Add documentation (#1208)
* feat(docs): Add documentation & first configs

* feat(docs): update build-docs workflow to trigger on feat/add-docs branch

* feat(docs): update build-docs workflow to trigger on main branch

* feat(docs): Fixes
- Correctly rename `social-auth` from `social-auto` page
- Fix links in documentation
- Fix inline code formatting

* feat(docs): Update documentation structure and add installation guide

* feat(docs): add .cache to .gitignore

* feat(docs): Fix branch name in docs deployment workflow

* feat(docs): Fix branch name in docs deployment workflow
2026-05-10 15:48:43 +02:00
FuzzyGrim
c17b5791e5 add .agents folder to ignore 2026-05-07 23:41:29 +02:00
FuzzyGrim
c273d2e92a add .codex to gitignore 2026-04-04 23:06:11 +02:00
FuzzyGrim
53cbedbb0d add agents.md to ignore files 2026-04-04 20:57:33 +02:00
FuzzyGrim
0c96e84d37 fix: add extra files to .gitignore 2025-11-28 22:09:40 +01:00
CrazyTim71
0254f53a3b ignore launch.json 2025-08-26 20:34:02 +02:00
FuzzyGrim
4067924df9 add periodic tasks 2025-02-05 11:49:43 +01:00
FuzzyGrim
a22cdf4c99 ignore sqlite wal files 2024-09-20 05:49:30 +09:00
FuzzyGrim
f74871d211 add celery beat schedule 2024-08-17 16:30:16 +02:00
FuzzyGrim
cf187590c6 ignore files generated by coverage --parallel-mode 2024-03-14 15:05:11 +01:00
FuzzyGrim
67dc4a8af1 separate redis from src 2024-03-04 18:56:30 +01:00
FuzzyGrim
2e17c02925 add redis persistance 2024-02-29 16:30:58 +01:00
FuzzyGrim
75d316e5ec prepare django-sass-processor for django 5.0 2024-02-17 17:07:54 +01:00
FuzzyGrim
6427cf3732 change save images locally to use external cdns 2023-09-27 22:57:48 +02:00
FuzzyGrim
7aaabf0624 compile scss on dockerfile 2023-08-29 23:09:48 +02:00
FuzzyGrim
4e520b18a5 Refactor media folder (#12)
* refactor download images functions

* only download images if not downloaded previously

* remove intermediary image folder

* create folder before test

* update directories
2023-03-11 15:38:29 +01:00
FuzzyGrim
bbcb36aba3 remove assets folder, separate media and assets 2023-03-07 12:41:32 +01:00
FuzzyGrim
aa41e13e56 track admin page coverage 2023-02-08 09:34:13 +01:00
FuzzyGrim
88d55705d1 create parent assets folder for static and media 2023-01-27 22:12:01 +01:00
FuzzyGrim
761d852be1 update 2023-01-26 12:24:08 +01:00
FuzzyGrim
78825702e8 move database to data folder for docker persistance volume 2023-01-26 12:24:08 +01:00
FuzzyGrim
f5885f8469 create docker setup 2023-01-26 12:24:07 +01:00
FuzzyGrim
917ec98063 use own image not found 2023-01-04 22:09:39 +01:00
FuzzyGrim
16da452fa9 store images for tracked media 2022-12-27 00:12:28 +01:00
FuzzyGrim
cb1ecdac06 ignore generated css 2022-12-26 23:09:07 +01:00
FuzzyGrim
bcdc69333f create django project 2022-12-12 11:36:45 +01:00