Project maintenance alignment #123
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Bring CANG in line with the standard project maintenance checklist from current-tasks.md (2026-07-19 session). Covers CI, scaffolding, container, code fixes, and versioning — 19 items total tracked in TODO.md.
Plan of attack
19 maintenance tasks across five areas, all tracked in TODO.md with collapsible prose context.
Area 1: CI fixes (3 tasks)
Replace
curl | shwithastral-sh/setup-uv@v5— checks, publish, deploy-docs jobs inci.yml; alsoweekly-checks.yml. Remove theecho "$HOME/.local/bin" >> $GITHUB_PATHlines (action handles PATH).Gitleaks checksum verification — read version from
.pre-commit-config.yaml, download both tarball and checksums file, verify withsha256sum -cbefore extracting.Add
publish-containerCI job — triggered on release,needs: [gitleaks, checks],buildah bud --isolation chroot --platform linux/amd64, push toregistry.marvin8.zone/marvin8/cang:latestand:VERSION.Area 2: Scaffolding (9 tasks)
.gitleaks.toml— standard form: title + extend useDefault.ruff.toml— line-length 120, TID252, mccabe, expanded rules. Remove inline[tool.ruff]frompyproject.toml.LICENSE.md— AGPL-3.0-or-later full text..editorconfig— noinsert_final_newline = falseoverride.uv_buildfloor —>=0.11.0,<0.12.0in[build-system] requires.ruff→ruff-checkin.pre-commit-config.yaml.[tool.deptry.per_rule_ignores]— DEP002 for starlette, python-multipart, pydantic-settings.src/so no blanket# ruff: noqa:directives are needed. Test files may keep per-file D100/D103 noqa.Area 3: Container (4 tasks)
uv build --wheelin builder stage, pin UV_VERSION from pyproject.toml viaARG UV_VERSION+COPY --from=ghcr.io/astral-sh/uv:${UV_VERSION}, pre-compile bytecode withUV_COMPILE_BYTECODE=1+python -m compileall.--annotationflags to justfile — matching every OCI label in Containerfile.latest+$VERSIONonly — remove docker.io push, use onlyregistry.marvin8.zone. Justfile and CI.reset-release-notesrecipe — standalone justfile recipe;fediverse-postcalls it.Area 4: Code fixes (3 tasks)
web/routes/clips.pyand_build_query_stringinweb/routes/snapshots.py.list_daysandlist_days_with_stats— fromdb.py.Area 5: Versioning (1 task)
YYYY.MM.DDformat. Touchespyproject.toml,[tool.bumpversion],Release-Notes.mdtemplate,CHANGELOG.md, and the justfilereleaserecipe.Rough commit sequence
:wrench: add scaffolding files (gitleaks.toml, ruff.toml, LICENSE.md, .editorconfig):art: add README badges, bump uv_build, rename ruff hook, add deptry ignores:green_heart: replace curl|sh with setup-uv, gitleaks checksums, add publish-container job:whale: make Containerfile self-contained, add annotations, simplify tags:page_facing_up: document source files, extract reset-release-notes recipe:bug: fix URL encoding and dead functions in db.py:bookmark: switch to calver versioning