|
| 1 | +Contributing to Thymeleaf: Terms and Conditions |
| 2 | +=============================================== |
| 3 | + |
| 4 | +------------------------------------------------------------------------------ |
| 5 | + |
| 6 | + |
| 7 | +Do you want to contribute your work to thymeleaf? Well, then first and most important: **THANK YOU!** |
| 8 | + |
| 9 | + |
| 10 | +Now, in order to accept your contribution, there are some terms you must expressly agree with, so please |
| 11 | +read them carefully. They might look a bit cumbersome, but they are here just in order to protect |
| 12 | +you, your contribution, and especially the project's future. |
| 13 | + |
| 14 | +**Important**: submitting any contributions to the Thymeleaf project implies your **full acceptance of these terms**, |
| 15 | +including the *"Thymeleaf Individual Contributor License Agreement"* detailed at the end. |
| 16 | + |
| 17 | +Who can contribute? |
| 18 | +------------------- |
| 19 | + |
| 20 | +Anyone, with the unique condition that he/she must be a **private individual**, acting in |
| 21 | +his/her own name, and not being endorsed in their contributed work by any company or government. |
| 22 | + |
| 23 | +Note that this condition will not only refer to the ownership of the effort invested in contributing |
| 24 | +to the project, but also to the fact that *no private or public company will be mentioned as a a part |
| 25 | +of your contribution on the project's website or code*, including but not limited to web/email addresses |
| 26 | +or package names. |
| 27 | + |
| 28 | + |
| 29 | +What is the first step to be taken? |
| 30 | +----------------------------------- |
| 31 | + |
| 32 | +First of all, **talk to the [project members](http://www.thymeleaf.org/team.html)** (an email should do) about |
| 33 | +your ideas: new features, fixes, documentation... whatever you would like to contribute to the project. Let we |
| 34 | +discuss the possibilities with you so that we make sure your contribution goes in the right direction and aligns |
| 35 | +with the project's standards, intentions and roadmap. |
| 36 | + |
| 37 | + |
| 38 | + |
| 39 | +How will your relation with the Thymeleaf project be? |
| 40 | +----------------------------------------------------- |
| 41 | + |
| 42 | +Your contributions will have the form of GitHub *pull requests*. Note that contributors do not |
| 43 | +have read+write (or *pull+push*) access to the project repositories, only project *members* do. |
| 44 | + |
| 45 | +Also, please understand that *not all pull requests will be accepted and merged into the project's |
| 46 | +repositories*. Talking about your planned contributions with the project members before creating pull requests |
| 47 | +will maximize the possibilities of your contributions being accepted. |
| 48 | + |
| 49 | +Once your contribution is approved, you will be listed as a *contributor* at the |
| 50 | +[Thymeleaf Team page](http://www.thymeleaf.org/team.html). You can opt-out of this if you want. |
| 51 | +Also, you will be `@author` for any new Java classes that you write and also co-`@author` to any existing classes to |
| 52 | +which you make significant changes. You can also opt-out of this if you want. |
| 53 | + |
| 54 | + |
| 55 | + |
| 56 | + |
| 57 | +About the code you contribute |
| 58 | +----------------------------- |
| 59 | + |
| 60 | +### General guidelines: |
| 61 | + |
| 62 | + - Obviously, **your code must both compile and work correctly**. Also, the addition of any new patches to the |
| 63 | + codebase should not render it unstable in any way. |
| 64 | + - All your code should be easy to read and understand by a human. |
| 65 | + - There should be no compilation warnings at all. |
| 66 | + |
| 67 | +### Detailed Java code quality standards: |
| 68 | + |
| 69 | + - All your code should compile and run in **Java 5.0**. |
| 70 | + - All comments, names of classes and variables, log messages, etc. must be **in English**. |
| 71 | + - All `.java` files must include the standard Thymeleaf copyright header. |
| 72 | + - All your code should follow the Java Code Conventions regarding variable/method/class naming. |
| 73 | + - Maximum line size is 120 characters. |
| 74 | + - Indentation should be made with 4 spaces, not tabs. |
| 75 | + - Line feeds should be UNIX-like (`\n`). |
| 76 | + - All .java source files should be pure ASCII. All .properties files should be ISO-8859-1. |
| 77 | + - Number autoboxing and/or autounboxing is forbidden. |
| 78 | + - Every class should define a constructor, even if it is the default one, and include a call to `super()`. |
| 79 | + - Every non-nullable argument in a public method should be first validated with a `Validate.notNull(...)` call. |
| 80 | + - All method arguments should include the `final` modifier, so that their value is never changed. |
| 81 | + - Include `/* ... */` comments for every algorithm you develop with a minimum of complexity. *"Minimum |
| 82 | + of complexity"* usually means you had to take some design decisions in order to write it the way you did. Do |
| 83 | + not write obvious comments. |
| 84 | + - All public methods and classes directly available to users (i.e. public) should have comprehensive javadoc. |
| 85 | + |
| 86 | +### Detailed HTML/XML code quality standards: |
| 87 | + |
| 88 | + - All tags, CSS styles, file names, etc. must be **in English**. |
| 89 | + - Lower case should be prefered for HTML/XML artifacts. The only exceptions are `DOCTYPE` and `CDATA` clauses. |
| 90 | + - All HTML code should be XML-valid (i.e. all tags should be closed, attributes surrounded by commas, etc.) |
| 91 | + - Maximum line size is 120 characters. |
| 92 | + - Indentation should be made with 4 spaces, not tabs. |
| 93 | + - Line feeds should be UNIX-like (`\n`). |
| 94 | + - All .html and .xml source files should be pure ASCII, even if _content-type_ is set to a different encoding. |
| 95 | + - All XHTML self-closing (minimized) tags should have a space before `/>` (the XHTML standards say so!). |
| 96 | + - All inline scripts must be enclosed inside a commented `<![CDATA[...]]>` block. |
| 97 | + |
| 98 | + |
| 99 | +About the documentation/articles you contribute |
| 100 | +----------------------------------------------- |
| 101 | + |
| 102 | +Note the following only applies to documentation/articles meant to be published at the Thymeleaf website. |
| 103 | + |
| 104 | + - All documentation artifacts, including articles, must be written **in correct English**. |
| 105 | + - Your name and email will be displayed as *"author"* of any documentation artifacts you create. |
| 106 | + - Topic and text structure must be first discussed and agreed upon with the project members. |
| 107 | + - Project members may edit and make small changes to your texts --of which you will be informed-- before |
| 108 | + publishing them. |
| 109 | + - Format and visual styles must adhere to the thymeleaf website standards, of which you will be informed |
| 110 | + by the project members. |
| 111 | + |
| 112 | + |
| 113 | + |
| 114 | +Pay special attention to this |
| 115 | +----------------------------- |
| 116 | + |
| 117 | +All Thymeleaf software is distributed under the **Apache License 2.0** open source license, and your contributions |
| 118 | +will be licensed in the same way. |
| 119 | + |
| 120 | +If you work for a company which, by the way or place in which your code was written, by your contract terms |
| 121 | +or by the laws in your country, could claim any rights (including but not limited to intellectual or industrial |
| 122 | +property) over your contributed code, you will have to send the project members (either by email from your |
| 123 | +authorised superiors or by signed fax), a statement indicating that your company agrees with the terms |
| 124 | +explained in this page, and that it both authorises your contribution to Thymeleaf and states that will |
| 125 | +never claim any kind of rights over it. |
| 126 | + |
| 127 | + |
| 128 | + |
| 129 | +Thymeleaf Individual Contributor License Agreement |
| 130 | +-------------------------------------------------- |
| 131 | + |
| 132 | +This contributor agreement ("Agreement") documents the rights granted by contributors to the Thymeleaf Project. |
| 133 | + |
| 134 | +This is a legally binding document, so please read it carefully before agreeing to it. The Agreement |
| 135 | +may cover more than one software project managed by Thymeleaf. |
| 136 | + |
| 137 | +###1. Definitions |
| 138 | + |
| 139 | + * _"Thymeleaf"_ means the "Thymeleaf Project organization and members". |
| 140 | + * _"You"_ means the individual who submits a Contribution to Thymeleaf. |
| 141 | + * _"Contribution"_ means any work of authorship that is submitted by you to Thymeleaf in which you own |
| 142 | + or assert ownership of the Copyright. |
| 143 | + * _"Copyright"_ means all rights protecting works of authorship owned or controlled by you, |
| 144 | + including copyright, moral and neighboring rights, as appropriate, for the full term of their |
| 145 | + existence including any extensions by you. |
| 146 | + * _"Material"_ means the work of authorship which is made available by Thymeleaf to third parties. When |
| 147 | + this Agreement covers more than one software project, the Material means the work of authorship |
| 148 | + to which the Contribution was submitted. After you submit the Contribution, it may be included |
| 149 | + in the Material. |
| 150 | + * _"Submit"_ means any form of electronic, verbal, or written communication sent to Thymeleaf or its |
| 151 | + representatives, including but not limited to electronic mailing lists, source code control systems, |
| 152 | + and issue tracking systems that are managed by, or on behalf of, Thymeleaf for the purpose of discussing |
| 153 | + and improving the Material, but excluding communication that is conspicuously marked or |
| 154 | + otherwise designated in writing by you as _"Not a Contribution." |
| 155 | + * _"Submission Date"_ means the date on which you submit a Contribution to Thymeleaf. |
| 156 | + * _"Effective Date"_ means the date you execute this agreement or the date You first submit a |
| 157 | + Contribution to Thymeleaf, whichever is earlier. |
| 158 | + |
| 159 | +###2. Grant of Rights |
| 160 | + |
| 161 | +####2.1. Copyright License |
| 162 | + |
| 163 | + * (a) You retain ownership of the copyright in your Contribution and have the same rights to use or |
| 164 | + license the Contribution which you would have had without entering into the agreement. |
| 165 | + * (b) To the maximum extent permitted by the relevant law, you grant to Thymeleaf a perpetual, worldwide, |
| 166 | + non-exclusive, transferable, royalty-free, irrevocable license under the copyright covering the |
| 167 | + Contribution, with the right to sublicense such rights through multiple tiers of sublicensees, to |
| 168 | + reproduce, modify, display, perform and distribute the Contribution as part of the Material; provided |
| 169 | + that this license is conditioned upon compliance with Section 2.3. |
| 170 | + |
| 171 | +####2.2 Patent License |
| 172 | + |
| 173 | +For patent claims including, without limitation, method, process, and apparatus claims which you |
| 174 | +own, control or have the right to grant, now or in the future, you grant to Thymeleaf a perpetual, worldwide, |
| 175 | +non-exclusive, transferable, royalty-free, irrevocable patent license, with the right to sublicense these |
| 176 | +rights to multiple tiers of sublicensees, to make, have made, use, sell, offer for sale, import and |
| 177 | +otherwise transfer the Contribution and the Contribution in combination with the Material (and |
| 178 | +portions of such combination). This license is granted only to the extent that the exercise of the |
| 179 | +licensed rights infringes such patent claims; and provided that this license is conditioned upon |
| 180 | +compliance with Section 2.3. |
| 181 | + |
| 182 | + |
| 183 | +####2.3 Outbound License |
| 184 | + |
| 185 | +As a condition on the grant of rights in Sections 2.1 and 2.2, Thymeleaf agrees to license the Contribution only |
| 186 | +under the terms of the Apache License 2.0 (including any right to adopt any future version of this license if |
| 187 | +permitted). |
| 188 | + |
| 189 | + |
| 190 | +####2.4 Moral Rights |
| 191 | + |
| 192 | +If moral rights apply to the Contribution, to the maximum extent permitted by law, you waive and agree not |
| 193 | +to assert such moral rights against Thymeleaf or its successors in interest, or any of our licensees, either |
| 194 | +direct or indirect. |
| 195 | + |
| 196 | + |
| 197 | +####2.5 Thymeleaf Rights |
| 198 | + |
| 199 | +You acknowledge that Thymeleaf is not obligated to use your Contribution as part of the |
| 200 | +Material and may decide to include any Contributions Thymeleaf considers appropriate. |
| 201 | + |
| 202 | +####2.6 Reservation of Rights |
| 203 | + |
| 204 | +Any rights not expressly assigned or licensed under this section are expressly reserved by you. |
| 205 | + |
| 206 | + |
| 207 | + |
| 208 | +###3. Agreement |
| 209 | + |
| 210 | +You confirm that: |
| 211 | + |
| 212 | + * (a) You have the legal authority to enter into this Agreement. |
| 213 | + * (b) You own the Copyright and patent claims covering the Contribution which are required to grant |
| 214 | + the rights under Section 2. |
| 215 | + * (c) The grant of rights under Section 2 does not violate any grant of rights which you have made to |
| 216 | + third parties, including your employer. If you are an employee, you have had your employer approve |
| 217 | + this Agreement. If you are less than eighteen years old, please have your parents or guardian |
| 218 | + sign the Agreement. |
| 219 | + |
| 220 | + |
| 221 | + |
| 222 | +###4. Disclaimer |
| 223 | + |
| 224 | +EXCEPT FOR THE EXPRESS WARRANTIES IN SECTION 3, THE CONTRIBUTION IS PROVIDED "AS IS". MORE PARTICULARLY, |
| 225 | +ALL EXPRESS OR IMPLIED WARRANTIES INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTY OF MERCHANTABILITY, |
| 226 | +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE EXPRESSLY DISCLAIMED BY YOU TO THYMELEAF AND BY |
| 227 | +THYMELEAF TO YOU. TO THE EXTENT THAT ANY SUCH WARRANTIES CANNOT BE DISCLAIMED, SUCH WARRANTY IS LIMITED IN |
| 228 | +DURATION TO THE MINIMUM PERIOD PERMITTED BY LAW. |
| 229 | + |
| 230 | + |
| 231 | + |
| 232 | +###5. Consequential Damage Waiver |
| 233 | + |
| 234 | +TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT WILL YOU OR THYMELEAF BE LIABLE FOR ANY LOSS OF |
| 235 | +PROFITS, LOSS OF ANTICIPATED SAVINGS, LOSS OF DATA, INDIRECT, SPECIAL, INCIDENTAL, CONSEQUENTIAL AND EXEMPLARY |
| 236 | +DAMAGES ARISING OUT OF THIS AGREEMENT REGARDLESS OF THE LEGAL OR EQUITABLE THEORY (CONTRACT, TORT OR OTHERWISE) |
| 237 | +UPON WHICH THE CLAIM IS BASED. |
| 238 | + |
| 239 | + |
| 240 | + |
| 241 | +###6. Miscellaneous |
| 242 | + |
| 243 | + * 6.1 This Agreement will be governed by and construed in accordance with the laws of Spain excluding its |
| 244 | + conflicts of law provisions. Under certain circumstances, the governing law in this section might be |
| 245 | + superseded by the United Nations Convention on Contracts for the International Sale of Goods ("UN |
| 246 | + Convention") and the parties intend to avoid the application of the UN Convention to this Agreement |
| 247 | + and, thus, exclude the application of the UN Convention in its entirety to this Agreement. |
| 248 | + * 6.2 This Agreement sets out the entire agreement between you and Thymeleaf for your Contributions to Thymeleaf |
| 249 | + and overrides all other agreements or understandings. |
| 250 | + * 6.3 If You or Thymeleaf assign the rights or obligations received through this Agreement to a third party, as a |
| 251 | + condition of the assignment, that third party must agree in writing to abide by all the rights and |
| 252 | + obligations in the Agreement. |
| 253 | + * 6.4 The failure of either party to require performance by the other party of any provision of this |
| 254 | + Agreement in one situation shall not affect the right of a party to require such performance at any time |
| 255 | + in the future. A waiver of performance under a provision in one situation shall not be considered a |
| 256 | + waiver of the performance of the provision in the future or a waiver of the provision in its entirety. |
| 257 | + * 6.5 If any provision of this Agreement is found void and unenforceable, such provision will be |
| 258 | + replaced to the extent possible with a provision that comes closest to the meaning of the original |
| 259 | + provision and which is enforceable. The terms and conditions set forth in this Agreement shall apply |
| 260 | + notwithstanding any failure of essential purpose of this Agreement or any limited remedy to the |
| 261 | + maximum extent possible under law. |
| 262 | + |
| 263 | + |
| 264 | + |
0 commit comments