| # Contributing to the reference library |
| |
| ## Community help |
| |
| If you need help, please ask in the [#distribution](https://cloud-native.slack.com/archives/C01GVR8SY4R) channel on CNCF community slack. |
| [Click here for an invite to the CNCF community slack](https://slack.cncf.io/) |
| |
| ## Reporting security issues |
| |
| The maintainers take security seriously. If you discover a security |
| issue, please bring it to their attention right away! |
| |
| Please **DO NOT** file a public issue, instead send your report privately to |
| [cncf-distribution-security@lists.cncf.io](mailto:cncf-distribution-security@lists.cncf.io). |
| |
| ## Reporting an issue properly |
| |
| By following these simple rules you will get better and faster feedback on your issue. |
| |
| - search the bugtracker for an already reported issue |
| |
| ### If you found an issue that describes your problem: |
| |
| - please read other user comments first, and confirm this is the same issue: a given error condition might be indicative of different problems - you may also find a workaround in the comments |
| - please refrain from adding "same thing here" or "+1" comments |
| - you don't need to comment on an issue to get notified of updates: just hit the "subscribe" button |
| - comment if you have some new, technical and relevant information to add to the case |
| - __DO NOT__ comment on closed issues or merged PRs. If you think you have a related problem, open up a new issue and reference the PR or issue. |
| |
| ### If you have not found an existing issue that describes your problem: |
| |
| 1. create a new issue, with a succinct title that describes your issue: |
| - bad title: "It doesn't work with my docker" |
| - good title: "Private registry push fail: 400 error with E_INVALID_DIGEST" |
| 2. copy the output of (or similar for other container tools): |
| - `docker version` |
| - `docker info` |
| - `docker exec <registry-container> registry --version` |
| 3. copy the command line you used to launch your Registry |
| 4. restart your docker daemon in debug mode (add `-D` to the daemon launch arguments) |
| 5. reproduce your problem and get your docker daemon logs showing the error |
| 6. if relevant, copy your registry logs that show the error |
| 7. provide any relevant detail about your specific Registry configuration (e.g., storage backend used) |
| 8. indicate if you are using an enterprise proxy, Nginx, or anything else between you and your Registry |
| |
| ## Contributing Code |
| |
| Contributions should be made via pull requests. Pull requests will be reviewed |
| by one or more maintainers or reviewers and merged when acceptable. |
| |
| You should follow the basic GitHub workflow: |
| |
| 1. Use your own [fork](https://help.github.com/en/articles/about-forks) |
| 2. Create your [change](https://github.com/containerd/project/blob/master/CONTRIBUTING.md#successful-changes) |
| 3. Test your code |
| 4. [Commit](https://github.com/containerd/project/blob/master/CONTRIBUTING.md#commit-messages) your work, always [sign your commits](https://github.com/containerd/project/blob/master/CONTRIBUTING.md#commit-messages) |
| 5. Push your change to your fork and create a [Pull Request](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork) |
| |
| Refer to [containerd's contribution guide](https://github.com/containerd/project/blob/master/CONTRIBUTING.md#successful-changes) |
| for tips on creating a successful contribution. |
| |
| ## Sign your work |
| |
| The sign-off is a simple line at the end of the explanation for the patch. Your |
| signature certifies that you wrote the patch or otherwise have the right to pass |
| it on as an open-source patch. The rules are pretty simple: if you can certify |
| the below (from [developercertificate.org](http://developercertificate.org/)): |
| |
| ``` |
| Developer Certificate of Origin |
| Version 1.1 |
| |
| Copyright (C) 2004, 2006 The Linux Foundation and its contributors. |
| 660 York Street, Suite 102, |
| San Francisco, CA 94110 USA |
| |
| Everyone is permitted to copy and distribute verbatim copies of this |
| license document, but changing it is not allowed. |
| |
| Developer's Certificate of Origin 1.1 |
| |
| By making a contribution to this project, I certify that: |
| |
| (a) The contribution was created in whole or in part by me and I |
| have the right to submit it under the open source license |
| indicated in the file; or |
| |
| (b) The contribution is based upon previous work that, to the best |
| of my knowledge, is covered under an appropriate open source |
| license and I have the right under that license to submit that |
| work with modifications, whether created in whole or in part |
| by me, under the same open source license (unless I am |
| permitted to submit under a different license), as indicated |
| in the file; or |
| |
| (c) The contribution was provided directly to me by some other |
| person who certified (a), (b) or (c) and I have not modified |
| it. |
| |
| (d) I understand and agree that this project and the contribution |
| are public and that a record of the contribution (including all |
| personal information I submit with it, including my sign-off) is |
| maintained indefinitely and may be redistributed consistent with |
| this project or the open source license(s) involved. |
| ``` |
| |
| Then you just add a line to every git commit message: |
| |
| Signed-off-by: Joe Smith <joe.smith@email.com> |
| |
| Use your real name (sorry, no pseudonyms or anonymous contributions.) |
| |
| If you set your `user.name` and `user.email` git configs, you can sign your |
| commit automatically with `git commit -s`. |