|
| 1 | +# Contribution guidelines |
| 2 | + |
| 3 | +We are grateful for anyone spending their valuable time on contributions to this library. |
| 4 | + |
| 5 | +To avoid dissapointments, before contributing code, please review our |
| 6 | +[Design goals](https://open-formulieren.github.io/formio-renderer/). We cannot commit to maintaining |
| 7 | +features that are not directly beneficial to |
| 8 | +[Open Forms](https://open-forms.readthedocs.io/en/stable/). |
| 9 | + |
| 10 | +However, if you wish to contribute despite these warnings, you can do so in a number of ways! |
| 11 | + |
| 12 | +## Reporting bugs |
| 13 | + |
| 14 | +If you have encountered a bug in this project, please check if an issue already exists in the list |
| 15 | +of existing [issues][issues]. If such an issue does not exist, you can create a [new |
| 16 | +issue][new_issue]. When writing the bug report, try to add a clear example that shows how to |
| 17 | +reproduce said bug. |
| 18 | + |
| 19 | +[issues]: https://github.com/open-formulieren/formio-renderer/issues |
| 20 | +[new_issue]: https://github.com/open-formulieren/formio-renderer/issues/new/choose |
| 21 | + |
| 22 | +## Performing accessibility audits and testing |
| 23 | + |
| 24 | +Accessibility is definitely a blind spot for us - if you can help out with user tests or by |
| 25 | +performing accessibility audits, we will happily receive the results and check what can be done to |
| 26 | +resolve issues! |
| 27 | + |
| 28 | +## Adding new features |
| 29 | + |
| 30 | +We recommend creating a feature request ticket **BEFORE** developing a new feature. This way, we can |
| 31 | +gauge interest in the feature and let you know if we're not (yet) open to it so that you don't spend |
| 32 | +a lot of time on something that will not be merged in the near future. |
| 33 | + |
| 34 | +If you get the go-ahead and start writing code, that's wonderful! We do ask you to keep the quality |
| 35 | +control process in mind - and all of the things below are enforced through Github Actions: |
| 36 | + |
| 37 | +- we use Typescript for its type-safety features - downcasting is frowned upon (i.e. you should |
| 38 | + really avoid using `as SomeType`!). |
| 39 | +- code formatting is done with prettier, you can run `npm run checkformat` and `npm run format`, or |
| 40 | + enable format-on-save in your editor. |
| 41 | +- code is linted using eslint, you can run it locally using `npm run lint`. |
| 42 | +- code must have tests - often these will be interaction tests in Storybook, but for unit-test like |
| 43 | + tests you can write additional tests and run them with vitest. |
| 44 | +- components must be documented in Storybook, so that they undergo visual regression testing. |
| 45 | +- use [NL Design System](https://www.nldesignsystem.nl/) components rather than reinventing the |
| 46 | + wheel. |
| 47 | + |
| 48 | +In general - check the `scripts` section in `package.json` for the available developer tools! |
| 49 | + |
| 50 | +### Commit messages |
| 51 | + |
| 52 | +Commit messages are very important to us, as they are essential to understand _why_ changes are |
| 53 | +made. They should explain your thought process. |
| 54 | + |
| 55 | +- always refer to the github issue in the commit message summary. |
| 56 | +- stick to commit message best practices by using a short summary, and add additional paragraphs to |
| 57 | + the body when relevant |
| 58 | +- good things to note down are: alternative solutions considered and reason why they were rejected, |
| 59 | + the requirements that applied at the time, possible limitations/external factors that were |
| 60 | + relevant... |
0 commit comments