Thanks for taking the time to contribute. Decant is a young library — PRs, bug reports, and design feedback all welcome.
Development setup
Prerequisites: Elixir ~> 1.19 and Erlang/OTP ~> 28. Postgres
required for the test suite.
git clone https://github.com/Arsenalist/decant.git
cd decant
mix deps.get
createdb decant_test
mix test
Format before pushing:
mix format
Branching & PRs
mainis the release branch.- Branch from
mainfor features and fixes; submit a PR. - Keep PRs scoped — one logical change per PR.
- Update
CHANGELOG.mdunder[Unreleased]for every user-visible change. - The architecture test (
test/decant/architecture_test.exs) enforces the boundary: no host-app references inlib/, runtime deps locked to[:ecto]. Fix the offending file rather than weakening the test.
TDD discipline
This codebase was built test-first. Every implementation has a paired test. When adding behaviour, write the failing test first, watch it go red, then make it pass. Pull requests adding code without test coverage will be sent back.
Versioning
While in 0.x, the minor version bumps for every breaking change. The
patch version bumps for non-breaking additions and fixes.