# Contributing

Thanks for being here. This project is source-available under the PolyForm Shield License 1.0.0 (with packages/contracts additionally under Apache 2.0), and contributions of every size — typo fixes, new adapters, fresh ADRs, "this surprised me" issues — are genuinely welcome.

By submitting a contribution you agree your changes are licensed under the same terms as the file(s) they touch.

The goal of the codebase is to be an auditable, production-grade reference for the BDI protocol. Every choice in this guide flows from that single goal: the code should be obvious enough that a stranger can reason about its security properties without a tour.

# House rules

A short list. None of these are arbitrary; each one prevents a class of bug we'd rather not have to fix.

# Branching

# Commit messages

We use Conventional Commits — they're a small constraint that pays off when you're scrolling through git log looking for the change that broke something.

feat(asr): add GLEIF verification source

Implements the authoritative entity lookup required for assurance 'high'
when an LEI is provided. Falls back to partial outcome on non-200 from
the GLEIF data source.

# What we look for in review

A short checklist a reviewer (or you, before you ask for review) can run through:

# Running locally

If you haven't already, SETUP.md is the friendlier walk-through. The short version:

bun install
bun test              # all tests
bun test --coverage   # coverage report

Per-package:

bun test --filter @transportial/asr
bun run --filter @transportial/asr dev   # watch-mode server

# Writing tests

A few patterns that have worked well for us — feel free to follow them or deviate when something fits better:

# Releasing

  1. Bump versions in each package.json so they match.
  2. Tag v<x>.<y>.<z>; CI publishes OCI images to ghcr.io.
  3. Update CHANGELOG.md per service.

# If you find a security issue

Please don't file a public issue. See SECURITY.md for the private disclosure channel — we take security reports seriously and aim to acknowledge within three business days.