Argus

Development

Setup

Requires Python 3.11+.

pip install -r requirements.txt
pip install ruff pytest

Lint and test

# Lint
ruff check .
ruff check --fix .    # auto-fix safe violations

# Run all tests
pytest -v

# Run a single test
pytest -v tests/path/to/test_file.py::test_name

Run natively

python -m app

Binds to http://localhost:8100. See Getting started for options.

Releasing a new version

1. Update the version

The version string lives in app/__init__.py and is the single source of truth — the health endpoint, Docker image tag, and UI footer all read from it.

# app/__init__.py
__version__ = "0.1.0-beta.2"

2. Run tests

ruff check .
pytest -v

All checks must pass before tagging.

3. Commit, tag, and push

git add app/__init__.py
git commit -m "Bump version to 0.1.0-beta.2"
git tag v0.1.0-beta.2
git push origin main
git push origin v0.1.0-beta.2

4. GitHub Actions takes over

Pushing the tag triggers release.yml, which re-runs the test suite as a gate, then builds and pushes the Docker image to ghcr.io/michaelyagi/argus and michaelyagi/argus on Docker Hub, and creates a GitHub Release with autogenerated notes. Pre-release tags (containing -) are marked as pre-releases automatically; stable tags get the latest tag on both registries.

Monitor progress at github.com/MichaelYagi/argus/actions.