Skip to content

Handbook

The rules every repository in the entirius organisation follows: naming, language, licensing, toolchain, git flow, CI, releases, the module layout and the API v2 standard. How services run in production is in DevOps.

A change to a module needs nothing beyond these pages and the repository itself. The maintainers work with AI coding tools; no rule depends on them.

One local check needs a file only maintainers have: make check and one pre-commit hook exit 1 without it. What to run instead: Secret Scanning.

The short path, with the rules that apply at each step:

  1. Fork and branch: branch from develop, name it feature/<name> or fix/<name> (Git Flow).
  2. Set up the environment: make install, then make test to confirm a green baseline (Python Toolchain, Makefile Convention). Many modules test against PostgreSQL: the suite reads DATABASE_URL, and the module’s tests/settings.py holds the default it falls back to. In entirius-django-pim that is postgresql://postgres:postgres@localhost:5432/test, so a local PostgreSQL has to answer there or at the URL you set.
  3. Write the change: in English (Language Policy), MPL-2.0 header on new files (Licensing), respecting the module anatomy (Django Module Standard).
  4. Adding an endpoint? Follow the API v2 Standard: URL pattern, Pydantic schemas, @extend_schema, service layer, tests. The post-implementation checklist on that page is what review will check.
  5. Run the checks: uv run ruff check . && uv run ruff format --check . and make test (CI/CD).
  6. Commit with the guard hook skipped: SKIP=require-canonical-gitleaks-config git commit ....
  7. Open the pull request against develop: in a Python repository the checks lint, test and secret-scan run on it, and it needs one approving review before it is merged (Git Flow).

Maintainers cut the releases (Releases). A pull request does not touch the version or the changelog unless the review asks for it.

A rule changes here, in one place, and a repository that deviates says so in its AGENTS.md (AGENTS.md Convention). Platform architecture decisions are in System Architecture. The reference of a module lives in the module’s repository.

Repository Naming: what a repository’s name says about its type and stack