|
| 1 | +<!-- |
| 2 | +SPDX-FileCopyrightText: 'Copyright Contributors to the LSIS project' |
| 3 | +
|
| 4 | +SPDX-License-Identifier: Apache-2.0 |
| 5 | +--> |
| 6 | + |
| 7 | + |
| 8 | +# How to Contribute |
| 9 | + |
| 10 | +We'd love to accept your patches and contributions to this project. There are |
| 11 | +just a few small guidelines you need to follow. |
| 12 | + |
| 13 | +## Ways of contributing |
| 14 | + |
| 15 | +Contribution does not necessarily mean committing code to the repository. |
| 16 | +We recognize different levels of contributions as shown below in increasing order of dedication: |
| 17 | + |
| 18 | +1. Keep the API specifications up to date by opening issues or pull requests. |
| 19 | +2. Request changes via issues or pull requests. |
| 20 | + |
| 21 | +## Filing bugs, security vulnerability or feature requests |
| 22 | + |
| 23 | +You can file bugs against and feature requests for the project via github issues. Consult [GitHub Help](https://docs.github.com/en/free-pro-team@latest/github/managing-your-work-on-github/creating-an-issue) for more |
| 24 | +information on using github issues. |
| 25 | + |
| 26 | +If you think you've found a potential vulnerability in this project, please |
| 27 | +email <lsis@alliander.com> to responsibly disclose it. |
| 28 | + |
| 29 | +## Community Guidelines |
| 30 | + |
| 31 | +This project follows the following [Code of Conduct](CODE_OF_CONDUCT.md). |
| 32 | + |
| 33 | +## REUSE Compliance & Source Code Headers |
| 34 | + |
| 35 | +All the files in the repository need to be [REUSE compliant](https://reuse.software/). |
| 36 | +We use the pipeline to automatically check this. |
| 37 | +If there are files which are not complying, the pipeline will fail the pull request will be blocked. |
| 38 | + |
| 39 | +This means that every file containing source code must include copyright and license |
| 40 | +information. This includes any JS/CSS files that you might be serving out to |
| 41 | +browsers. (This is to help well-intentioned people avoid accidental copying that |
| 42 | +doesn't comply with the license.) |
| 43 | + |
| 44 | +MPL-2.0 header: |
| 45 | + |
| 46 | +``` |
| 47 | + SPDX-FileCopyrightText: 'Copyright Contributors to the LSIS project' |
| 48 | + SPDX-License-Identifier: MPL-2.0 |
| 49 | +``` |
| 50 | + |
| 51 | +## Signing the Developer Certificate of Origin (DCO) |
| 52 | + |
| 53 | +This project utilize a Developer Certificate of Origin (DCO) to ensure that |
| 54 | +each commit was written by the author or that the author has the appropriate rights |
| 55 | +necessary to contribute the change. |
| 56 | +Specifically, we utilize [Developer Certificate of Origin, Version 1.1](http://developercertificate.org/), |
| 57 | +which is the same mechanism that the Linux® Kernel and many other communities use to manage code contributions. |
| 58 | +The DCO is considered one of the simplest tools for sign-offs from contributors as the representations are |
| 59 | +meant to be easy to read and indicating signoff is done as a part of the commit message. |
| 60 | + |
| 61 | +This means that each commit must include a DCO which looks like this: |
| 62 | + |
| 63 | +`Signed-off-by: Joe Smith <joe.smith@email.com>` |
| 64 | + |
| 65 | +The project requires that the name used is your real name and the e-mail used is your real e-mail. |
| 66 | +Neither anonymous contributors nor those utilizing pseudonyms will be accepted. |
| 67 | + |
| 68 | +There are other great tools out there to manage DCO signoffs for developers to make it much easier to do signoffs: |
| 69 | +* Git makes it easy to add this line to your commit messages. Make sure the `user.name` and `user.email` are set in your git configs. Use `-s` or `--signoff` to add the Signed-off-by line to the end of the commit message. |
| 70 | +* [Github UI automatic signoff capabilities](https://github.blog/changelog/2022-06-08-admins-can-require-sign-off-on-web-based-commits/) for adding the signoff automatically to commits made with the GitHub browser UI. This one can only be activated by the github org or repo admin. |
| 71 | +* [GitHub UI automatic signoff capabilities via custom plugin]( https://github.com/scottrigby/dco-gh-ui ) for adding the signoff automatically to commits made with the GitHub browser UI |
| 72 | +* Additionally, it is possible to use shell scripting to automatically apply the sign-off. For an example for bash to be put into a .bashrc file, see [here](https://wiki.lfenergy.org/display/HOME/Contribution+and+Compliance+Guidelines+for+LF+Energy+Foundation+hosted+projects). |
| 73 | +* Alternatively, you can add `prepare-commit-msg hook` in .git/hooks directory. For an example, see [here](https://github.com/Samsung/ONE-vscode/wiki/ONE-vscode-Developer's-Certificate-of-Origin). |
| 74 | + |
| 75 | +## Code reviews |
| 76 | + |
| 77 | +All patches and contributions, including patches and contributions by project members, require review by one of the maintainers of the project. We |
| 78 | +use GitHub pull requests for this purpose. Consult |
| 79 | +[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more |
| 80 | +information on using pull requests. |
| 81 | + |
| 82 | +## Pull Request Process |
| 83 | +Contributions should be submitted as Github pull requests. See [Creating a pull request](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request) if you're unfamiliar with this concept. |
| 84 | + |
| 85 | +The process for a code change and pull request you should follow: |
| 86 | + |
| 87 | +1. Create a topic branch in your local repository, following the naming format |
| 88 | +"feature-[description]". For more information see the Git branching guideline. |
| 89 | +1. Make changes, compile, and test thoroughly. Ensure any install or build dependencies are removed before the end of the layer when doing a build. Code style should match existing style and conventions, and changes should be focused on the topic the pull request will be addressed. For more information see the style guide. |
| 90 | +1. Push commits to your fork. |
| 91 | +1. Create a Github pull request from your topic branch. |
| 92 | +1. Pull requests will be reviewed by one of the maintainers who may discuss, offer constructive feedback, request changes, or approve |
| 93 | +the work. For more information see the Code review guideline. |
| 94 | +1. Upon receiving the sign-off of one of the maintainers you may merge your changes, or if you |
| 95 | + do not have permission to do that, you may request a maintainer to merge it for you. |
| 96 | + |
| 97 | +## Attribution |
| 98 | + |
| 99 | +This Contributing.md is adapted from Google |
| 100 | +available at |
| 101 | +https://github.com/google/new-project/blob/master/docs/contributing.md |
0 commit comments