Skip to content

Commit ea8a259

Browse files
committed
Add contribution file
1 parent e23406e commit ea8a259

File tree

1 file changed

+264
-0
lines changed

1 file changed

+264
-0
lines changed

CONTRIBUTING.md

Lines changed: 264 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,264 @@
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

Comments
 (0)