diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5e02664c919..f1ce07a8040 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -29,11 +29,36 @@ Thanks for wanting to contribute source code to Nextcloud. That's great! Please read the [Developer Manuals][devmanual] to learn how to create your first application or how to test the Nextcloud code with PHPUnit. +### Tests + In order to constantly increase the quality of our software we can no longer accept pull request which submit un-tested code. It is a must have that changed and added code segments are unit tested. In some areas unit testing is hard (aka almost impossible) as of today - in these areas refactoring WHILE fixing a bug is encouraged to enable unit testing. +### Sign your work + +We use the Developer Certificate of Origin (DCO) as a additional safeguard +for the Nextcloud project. This is a well established and widely used +mechanism to assure contributors have confirmed their right to license +their contribution under the project's license. +Please read [contribute/developer-certificate-of-origin][dcofile]. +If you can certify it, then just add a line to every git commit message: + +```` + Signed-off-by: Random J Developer +```` + +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`. + +### Apply a license + +In case you are not sure how to add or update the license header correctly please have a look at [contribute/HowToApplyALicense.md][applyalicense] + [devmanual]: https://docs.nextcloud.org/server/10/developer_manual/ +[dcofile]: https://github.com/nextcloud/server/blob/master/contribute/developer-certificate-of-origin +[applyalicense]: https://github.com/nextcloud/server/blob/master/contribute/HowToApplyALicense.md ## Translations Please submit translations via [Transifex][transifex]. diff --git a/contribute/HowToApplyALicense.md b/contribute/HowToApplyALicense.md new file mode 100644 index 00000000000..3ed231a6c1c --- /dev/null +++ b/contribute/HowToApplyALicense.md @@ -0,0 +1,46 @@ +# How to apply a license + +Originally Nextcloud was licensed under the GNU AGPLv3 only. From +June, 16 2016 on we switched to "GNU AGPLv3 or any later version" for +better long-term maintainability and to make it more secure from a +legal point of view. + +Additionally Nextcloud doesn't require a CLA (Contributor License +Agreement). The copyright belongs to all the individual +contributors. + +If you modify an existing file, please keep the existing license header as +it is and just add your copyright notice: + +```` +@copyright Copyright (c) , () +```` + +If you create a new file please use this license header: + +```` +/** + * @copyright Copyright (c) , () + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ +```` + +Additionally we require a Developer Certificate of Origin (DCO), look +at [CONTRIBUTING.md][contributing] to learn more how to sign your commits. + +[contributing]: https://github.com/nextcloud/server/blob/master/CONTRIBUTING.md#sign-your-work diff --git a/contribute/developer-certificate-of-origin b/contribute/developer-certificate-of-origin new file mode 100644 index 00000000000..a6bbb9846c3 --- /dev/null +++ b/contribute/developer-certificate-of-origin @@ -0,0 +1,35 @@ +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.