Ways to contribute
Not every contribution is code. We welcome:- Bug fixes and new features
- Documentation
- Builds and CI/CD
- Issue triage
- Answering questions on Discord and GitHub Discussions
- Web design and UI/UX
- Blog posts, talks, and social media
- Release management
Find an issue
good first issueissues include extra context for your first contribution.help wantedissues suit anyone who isn’t a core maintainer.
Set up your environment
Run Routr from source
Build and run every service on your machine.
Develop with Gitpod
A ready-made workspace in your browser.
Write your commits
Use Conventional Commits
Commit messages must follow Conventional Commits (for examplefix(dispatcher): ... or docs: ...). A commit-msg hook runs commitlint with @commitlint/config-conventional and rejects other formats. Release notes are generated from these messages.
The pre-commit hook runs npm test, npm run format, npm run lint, npm run typecheck, and npm run generate:readme, so expect commits to take a moment.
Sign off your commits
We require a Developer Certificate of Origin (DCO) sign-off on every commit. It certifies that you wrote the code or have the right to contribute it. The sign-off must match the Git user and email of the commit:-s:
Pull request lifecycle
- Check that nobody else is working on the same issue. If a related pull request exists, offer to help there. If it gets no response in a reasonable time, open your own.
- Open the pull request against
main. CI runs unit tests, the type check, lint, and the Java tests. - A maintainer reviews it and may ask you to improve the code, add tests or docs, change the approach, or split the change into smaller pull requests.
- Depending on the roadmap, a maintainer may delay the merge to fit a release, or ask you to close it and open a revised one.
Pull request checklist
Before you submit, confirm that:- Your code builds and the tests pass locally (
npm test,npm run test:java) -
npm run typecheckand lint pass - Your commits follow Conventional Commits and are signed off
- You added tests for your change, where applicable
- You updated the documentation, where applicable