Welcome to FormSG! The following are guidelines for contribution. Use your best judgment, and feel free to propose changes to this document in an issue.
To contribute, you can start by taking a look at our open issues marked 'contribute' under GitHub's 'Issues' tab. Feel free to assign yourself to any 'contribute' issue that interests you, and comment with questions or clarifications.
Before starting work on a PR, please first discuss the change you wish to make via GitHub issue, email, or any other method with the repository owners beforehand. This will give us the opportunity to provide feedback, and avoid wasted effort subsequently.
For other changes which are not currently in our open issues, please file an issue first for discussion, before starting work on the PR. We strongly encourage contributors not to open unsolicited PRs, as we may not be able to review or accept them.
Please do not file an open issue for ongoing security bugs. Instead, email us directly with your findings at [email protected].
The following guidelines help maintainers and the community understand your report, reproduce the behavior, and find related reports.
Before submitting bug reports or feature request, please check our issues and PRs. You might find out that you don't need to create one.
When submitting a bug report, please include as many details as possible, such as the steps to reproduce this bug, expected and actual behaviour.
When submitting a feature request, please include the motivation, alternatives that you've considered and any additional contexts that could help us better understand your goal.
Here are some tips to writing good issues:
- Use a clear and descriptive title to identify the problem
- Describe the exact steps to reproduce the problem and explain how you did it
- Provide specific examples to demonstrate the steps
- Include screenshots or animated GIFs if you can
- Explain why this new feature would be useful
Issues available to be picked up by the community are labeled with contribute
.
If you're submitting a pull request, some points to note:
- Ensure any install or build dependencies are removed before the end of the layer when doing a build. Refer to README.md for more details
- Update the README.md with details of changes to the interface, including new environment variables, exposed ports, useful file locations and container parameters.
- Write semantic commit messages. See past PRs for examples.
- You may merge the Pull Request in once you have the sign-off of two other developers, or if you do not have permission to do that, you may request the second reviewer to merge it for you.
Code contributions to this project must be accompanied by a Contributor License Agreement. You (or your employer) retain the copyright to your contribution; this simply gives us permission to use and redistribute your contributions as part of the project. Head over here to submit one.
You generally only need to submit a CLA once, so if you've already submitted one (even if it was for a different project owned by GovTech), you probably don't need to do it again.
Have questions? Feel free to reach out to us at [email protected].