Skip to content

Contributing

Marmitakus edited this page Aug 5, 2026 · 1 revision

Contributing

Jul.IA welcomes focused code, test, documentation, and operational improvements.

Local workflow

  1. Fork and clone the repository.

  2. Create a focused branch.

  3. Install the supported Go toolchain and any tools needed by the area you change.

  4. Run the fast local checks:

    make ci-fast
  5. Run the full-tag checks when an optional feature is affected:

    make ci-full
  6. Use the closest local pull-request gate when practical:

    make ci-pr

The exact CI matrix evolves. The contribution guide and workflows under .github/workflows/ are authoritative.

Change expectations

A user-visible feature normally needs:

  • implementation and tests;
  • schema and validation updates where configurable;
  • canonical configuration documentation;
  • a focused feature guide when needed;
  • a runnable example or fixture;
  • a security/threat note when relevant;
  • an entry under CHANGELOG.md [Unreleased];
  • admin, metrics, lifecycle, and compatibility updates where applicable.

Engineering conventions

  • Format Go code with gofmt and satisfy the configured linters.
  • Preserve error context and deterministic cleanup.
  • Keep optional features behind explicit build tags with useful missing-tag errors.
  • Prefer table-driven tests for handlers, middleware, parsing, and validation.
  • Keep configuration behavior and documentation in the same pull request.
  • Record durable design choices in an ADR rather than burying them in an implementation comment.

Commits and pull requests

Conventional commit prefixes are preferred, for example feat:, fix:, docs:, test:, refactor:, and chore:. Open a draft pull request early, keep the scope coherent, and explain user impact, validation, and compatibility.

The project uses the Developer Certificate of Origin. Sign commits with:

git commit -s

Canonical references

Clone this wiki locally