Skip to content

Latest commit

 

History

History
68 lines (50 loc) · 2.12 KB

CONTRIBUTING.md

File metadata and controls

68 lines (50 loc) · 2.12 KB

Contributing to AltsManager (API)

Thanks for your interest in contributing. This project is early and the data model/API surface is still changing, so it's worth opening an issue to discuss larger changes before investing time in a PR.

Getting set up

Follow the Setup section of the README. In short:

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt -r requirements-dev.txt
cp .env.example .env
docker compose up -d postgres
alembic upgrade head

Before opening a PR

ruff check .       # lint
pytest             # tests (needs postgres up)

If you changed any SQLAlchemy models, generate a migration:

alembic revision --autogenerate -m "describe the change"

Dependencies

requirements.in / requirements-dev.in are the source of truth (loose, hand-edited); requirements.txt / requirements-dev.txt are fully pinned lockfiles generated from them, for reproducible installs. Don't hand-edit the .txt files — edit the .in file and recompile:

pip install uv   # one-time, any Python version
uv pip compile requirements.in -o requirements.txt --python-version 3.12
uv pip compile requirements-dev.in -o requirements-dev.txt --python-version 3.12 --constraint requirements.txt

Then reinstall (pip install -r requirements.txt -r requirements-dev.txt) and run the test suite before committing the regenerated lockfiles alongside your .in change.

Pull requests

  • Keep PRs focused — one logical change per PR is easier to review.
  • Add or update tests for behavior you change.
  • Use the PR template; link the issue it addresses if there is one.
  • Security-sensitive changes (auth, access control, document storage) get extra scrutiny — see SECURITY.md for the project's security model.

Reporting bugs / proposing features

Use the issue templates under .github/ISSUE_TEMPLATE/. For security vulnerabilities, see SECURITY.md instead of opening a public issue.

Code of conduct

This project follows the Code of Conduct. By participating, you're expected to uphold it.