republisher/AGENTS.md
2026-03-30 11:54:28 +02:00

1.4 KiB

republisher-redux

Overview

  • republisher-redux is a Scrapy-based tool that mirrors RSS and Atom feeds for offline use.
  • Python packaging uses pyproject.toml with setuptools.
  • Development uses uv
  • Nix development and packaging use flake.nix.
  • Formatting is managed through treefmt-nix, exposed via nix fmt.

Workflow

  • Use Python 3.13.
  • Enter the dev environment with nix develop if you are not already inside it
  • Sync Python dependencies with uv sync --all-groups.
  • Run the app with uv run repub.
uv sync --all-groups
uv run pytest
uv run flake8 repub/ tests/
uv run pyright
nix fmt
nix flake check
uv run repub
uv run repub crawl -c repub.toml

Validation

  • Run nix fmt after changing repo files that are covered by treefmt.
  • Run nix flake check before declaring work complete.
  • nix flake check is expected to build and check the formatter, devshell, package, tests, and lint derivations.

Editing Rules

  • Keep treefmt.nix, flake.nix, and pyproject.toml aligned.
  • Prefer updating the flake-exported package and checks rather than adding ad hoc scripts.
  • Do not commit, amend, or stage unrelated files unless explicitly asked.
  • Final verication nix flake check must be greenbefore claiming task completeness

Repo Notes

  • The console entrypoint is repub.
  • Runtime ffmpeg availability is provided by the flake package and devshell.
  • Tests live under tests/.