Community

Termin is an open-source project and welcomes contribution. This page describes how the project is governed, how to participate, and who to contact.

Maintainers

Primary maintainer: Jamie-Leigh Blake — author of the compiler, the reference runtime, the conformance suite, and the IR (intermediate representation) specification.

The project is open to co-maintainers. The process for adding a co-maintainer is described in the governance model below: sustained contribution, demonstrated judgment on the project's scope and guarantees, and agreement from the existing maintainer set.

Governance

Decisions

Technical decisions are made in public on GitHub — in issues, pull requests, and the design-discussion process under docs/design-decisions/ in the compiler repository. The maintainer set is the final decision-maker on scope, guarantees, and release contents. Where multiple maintainers exist, disagreement is resolved by discussion; if discussion does not converge, the primary maintainer decides. The goal is to keep decision-making transparent and reversible, not to construct a heavyweight process.

The guarantees document is the authoritative specification of what the project promises. Any change that affects Tier 1 guarantees requires an explicit public design proposal and a corresponding change to the conformance suite.

Conflict resolution

Disagreements that cannot be resolved through normal discussion are escalated to the maintainer set for a decision. For issues involving conduct rather than technical scope, the code of conduct's enforcement process applies.

Succession

If the primary maintainer steps back, the project is Apache 2.0 — a motivated community can fork and continue at any time. The IR schema, the package format, and the conformance suite are the contract; the reference implementation is one conforming implementation among possible others.

A formal succession plan (named successor, transition procedure) will be published when a co-maintainer is in place. Until then, the fork-safety of the project stands in for one. See /license for the licensing guarantees that make this credible.

Contributing

The short version:

  1. Read CONTRIBUTING.md in the compiler repository for the current contribution flow.
  2. File an issue before a large change. Small fixes can go straight to a pull request. Large changes benefit from alignment first.
  3. Sign off on your commits. Contributions are accepted under the Developer Certificate of Origin. Each commit must carry a Signed-off-by: trailer (git commit -s). There is no contributor license agreement.
  4. Write the test alongside the change. For compiler or runtime changes, this usually means an update to the conformance suite. For bug fixes, a failing test that the fix makes pass.
  5. Open a pull request. CI runs the full test suite and the conformance suite. Review is in public on the pull request itself.

Who is welcome to contribute

The project explicitly welcomes:

The guarantees of the project depend on the quality of the contributions that touch the guarantee-bearing code paths. That is the standard, regardless of who or what wrote the patch.

What makes a good contribution

Where to go

Code of conduct

The project adopts the Contributor Covenant as its code of conduct. The current version is reproduced in CODE_OF_CONDUCT.md in the compiler repository.

Reports of conduct concerns should be sent to conduct@termin.dev. Reports are handled privately; the reporter's identity is not shared without their consent.

Contributors

A full contributor list is maintained in the compiler repository's CONTRIBUTORS.md and is regenerated on each release. Credit is also given in the changelog for the release a contribution landed in.

What the project is not asking for