Contributing
Contributing
Everything you need to work on Rift runs in containers, so you only need Docker (opens in a new tab) and GNU Make (opens in a new tab) on your machine: no PHP, Composer, Go or Bun.
Getting started
Clone the repository:
git clone https://github.com/LucaPipolo/rift.git cd riftInstall the PHP dependencies, and the commit tooling with its Git hook:
make composer install make bun installRun the tests:
make test
The first make command builds the images it needs:
| Image | What it holds |
|---|---|
rift-dev | PHP 8.5, Composer (opens in a new tab), Git and PCOV (opens in a new tab). |
rift-bun | Bun (opens in a new tab) and Git, for the commit tooling and this documentation site. |
rift-go | Go (opens in a new tab), golangci-lint (opens in a new tab) and Git. |
make bun install also installs the Git hook that checks commit messages.
Containers start for a single command and are removed when it finishes, so there is nothing to keep running: docker compose up is never needed. They run as your user, so files they create belong to you.
Where to go next
How Rift is built
The two programs in every binary, and the contract between them.
Development commands
Every make target, for tests, analysis, formatting, builds and this site.
Tests
How the PHP and Go suites are written, and the 100% coverage they keep.
Commits and pull requests
Commit messages, branch names, and what a pull request needs to merge.