Contributing
On this page
Contributions are welcome: a bug report, a fix, a translation, a review of someone else’s pull request. The repository’s CONTRIBUTING.md is the authority and this page follows it.
For anything larger than a small fix, open an issue and discuss it before you write code.
What is wanted most#
The team is particularly interested in:
- security improvements
- privacy enhancements
- reliability enhancements
- public sector application experience
- backend development
- frontend development
Contributions are handled in three groups.
| Kind | How it is treated |
|---|---|
| Security and privacy improvements | Highest priority. Reviewed and merged quickly when they verifiably improve security or privacy. |
| Bug fixes and core improvements | Reviewed on impact and fit with the project’s goals. |
| New features | Must fit the roadmap, and should include documentation and tests. |
Before you open a pull request#
- Set the project up. The commands are under “Run it locally” on the self-hosting page. The local development guide goes further.
- Follow the existing code style, add tests for new features and update the documentation your change touches.
- Run the checks that CI runs.
cd dembrane/platform
bun run check # lint, types, the layer rule, tests
cd dembrane/frontend
pnpm lint
pnpm exec tsc
pnpm exec vitest run
The backend is Bun and TypeScript. The frontend uses pnpm.
The contributor agreement#
Your first pull request needs the “Dembrane B.V. Individual Contributor License Agreement” (CLA.md).
- You keep all right, title and interest in your contributions, except for the licences you grant.
- You grant Dembrane B.V., and the recipients of its software, a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright licence, with the right to sublicense.
- You also grant a patent licence, which ends for anyone who starts patent litigation over the work.
- You state that the contribution is your own original work, or you mark third-party work as such.
To sign, add your GitHub username as a new line in contributors.yml, in the same pull request. A check on every pull request to main comments when the author is missing from that file.
CONTRIBUTING.md also says: “By contributing, you agree that your contributions will be licensed under our license.” See licensing.
Review#
- Initial review by maintainers.
- Feedback and discussion.
- Revisions if needed.
- Final review and merge.
Translations#
You can translate the dashboard and the participant portal without being a developer. TRANSLATING.md in the repository is the guide.
- The interface has 8 languages: English (the source text), Dutch, German, French, Spanish, Italian, Ukrainian and Czech. Italian, Ukrainian and Czech are marked as partial.
- You can suggest wording in an issue, edit a
.pofile in the browser on GitHub, or edit locally. - Change
msgstronly. Keep placeholders, tags and plural structure exactly. Leave an entry empty when you are unsure. - Do not edit the generated
.tscatalogs by hand. A local change includes both the.pofile and the regenerated catalog: runpnpm messages:extract, edit, thenpnpm messages:compileindembrane/frontend. - A new language starts with an issue. A
.pofile alone does not enable a language.
Security issues#
Email [email protected] to disclose a security vulnerability. The team investigates all legitimate reports.
Conduct and help#
- The code of conduct is
CODE_OF_CONDUCT.mdin the repository. - Create an issue for a bug.
- Email [email protected] for general guidance.
Comments