mirror of
				https://gitlab.freedesktop.org/wayland/wayland.git
				synced 2025-11-03 09:01:42 -05:00 
			
		
		
		
	Signed-off-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Armin Krezović <krezovic.armin@gmail.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
		
			
				
	
	
		
			180 lines
		
	
	
	
		
			5.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			180 lines
		
	
	
	
		
			5.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
= Contributing to Wayland =
 | 
						|
 | 
						|
== Sending patches ==
 | 
						|
 | 
						|
Patches should be sent to wayland-devel@lists.freedesktop.org, using
 | 
						|
git send-email. See git's documentation for help [1].
 | 
						|
 | 
						|
The first line of a commit message should contain a prefix indicating
 | 
						|
what part is affected by the patch followed by one sentence that
 | 
						|
describes the change. For examples:
 | 
						|
 | 
						|
    protocol: Support scaled outputs and surfaces
 | 
						|
 | 
						|
and
 | 
						|
 | 
						|
    doc: generate server documentation from XML too
 | 
						|
 | 
						|
If in doubt what prefix to use, look at other commits that change the
 | 
						|
same file(s) as the patch being sent.
 | 
						|
 | 
						|
The body of the commit message should describe what the patch changes
 | 
						|
and why, and also note any particular side effects. This shouldn't be
 | 
						|
empty on most of the cases. It shouldn't take a lot of effort to write
 | 
						|
a commit message for an obvious change, so an empty commit message
 | 
						|
body is only acceptable if the questions "What?" and "Why?" are already
 | 
						|
answered on the one-line summary.
 | 
						|
 | 
						|
The lines of the commit message should have at most 76 characters, to
 | 
						|
cope with the way git log presents them.
 | 
						|
 | 
						|
See [2] for a recommended reading on writing commit messages.
 | 
						|
 | 
						|
Your patches should also include a Signed-off-by line with your name and
 | 
						|
email address.  If you're not the patch's original author, you should
 | 
						|
also gather S-o-b's by them (and/or whomever gave the patch to you.) The
 | 
						|
significance of this is that it certifies that you created the patch,
 | 
						|
that it was created under an appropriate open source license, or
 | 
						|
provided to you under those terms.  This lets us indicate a chain of
 | 
						|
responsibility for the copyright status of the code.
 | 
						|
 | 
						|
We won't reject patches that lack S-o-b, but it is strongly recommended.
 | 
						|
 | 
						|
== Tracking patches and following up ==
 | 
						|
 | 
						|
Patchwork is used for tracking patches to Wayland and Weston:
 | 
						|
http://patchwork.freedesktop.org/project/wayland/list/
 | 
						|
 | 
						|
Xwayland patches are tracked with the Xorg project, not here.
 | 
						|
 | 
						|
Libinput patches, even though they use the same mailing list as Wayland, are
 | 
						|
not tracked in the Wayland Patchwork.
 | 
						|
 | 
						|
The following applies only to Wayland and Weston.
 | 
						|
 | 
						|
If a patch is not found in Patchwork, there is a high possibility for it to be
 | 
						|
forgotten. Patches attached to bug reports or not arriving to the mailing list
 | 
						|
because of e.g. subscription issues will not be in Patchwork because Patchwork
 | 
						|
only collects patches sent to the list.
 | 
						|
 | 
						|
When you send a revised version of a patch, it would be very nice to mark your
 | 
						|
old patch as superseded (or rejected, if that is applicable). You can change
 | 
						|
the status of your own patches by registering to Patchwork - ownership is
 | 
						|
identified by email address you use to register. Updating your patch status
 | 
						|
appropriately will help maintainer work.
 | 
						|
 | 
						|
The following patch states are found in Patchwork:
 | 
						|
 | 
						|
  New
 | 
						|
	Patches under discussion or not yet processed.
 | 
						|
 | 
						|
  Under review
 | 
						|
	Mostly unused state.
 | 
						|
 | 
						|
  Accepted
 | 
						|
	The patch is merged in the master branch upstream, as is or slightly
 | 
						|
	modified.
 | 
						|
 | 
						|
  Rejected
 | 
						|
	The idea or approach is rejected and cannot be fixed by revising
 | 
						|
	the patch.
 | 
						|
 | 
						|
  RFC
 | 
						|
	Request for comments, not meant to be merged as is.
 | 
						|
 | 
						|
  Not applicable
 | 
						|
	The email was not actually a patch, or the patch is not for Wayland or
 | 
						|
	Weston. Libinput patches are usually automatically ignored by Wayland
 | 
						|
	Patchwork, but if they get through, they will be marked as Not
 | 
						|
	applicable.
 | 
						|
 | 
						|
  Changes requested
 | 
						|
	Reviewers determined that changes to the patch are needed. The
 | 
						|
	submitter is expected to send a revised version. (You should
 | 
						|
	not wait for your patch to be set to this state before revising,
 | 
						|
	though.)
 | 
						|
 | 
						|
  Awaiting upstream
 | 
						|
	Mostly unused as the patch is waiting for upstream actions but
 | 
						|
	is not shown in the default list, which means it is easy to
 | 
						|
	overlook.
 | 
						|
 | 
						|
  Superseded
 | 
						|
	A revised version of the patch has been submitted.
 | 
						|
 | 
						|
  Deferred
 | 
						|
	Used mostly during freeze periods before releases, to temporarily
 | 
						|
	hide patches that cannot be merged during a freeze.
 | 
						|
 | 
						|
Note, that in the default listing, only patches in New or Under review are
 | 
						|
shown.
 | 
						|
 | 
						|
There is also a command line interface to Patchwork called 'pwclient', see
 | 
						|
http://patchwork.freedesktop.org/project/wayland/
 | 
						|
for links where to get it and the sample .pwclientrc for Wayland/Weston.
 | 
						|
 | 
						|
 | 
						|
== Coding style ==
 | 
						|
 | 
						|
You should follow the style of the file you're editing. In general, we
 | 
						|
try to follow the rules below.
 | 
						|
 | 
						|
- indent with tabs, and a tab is always 8 characters wide
 | 
						|
- opening braces are on the same line as the if statement;
 | 
						|
- no braces in an if-body with just one statement;
 | 
						|
- if one of the branches of an if-else condition has braces, then the
 | 
						|
  other branch should also have braces;
 | 
						|
- there is always an empty line between variable declarations and the
 | 
						|
  code;
 | 
						|
 | 
						|
static int
 | 
						|
my_function(void)
 | 
						|
{
 | 
						|
	int a = 0;
 | 
						|
 | 
						|
	if (a)
 | 
						|
		b();
 | 
						|
	else
 | 
						|
		c();
 | 
						|
 | 
						|
	if (a) {
 | 
						|
		b();
 | 
						|
		c();
 | 
						|
	} else {
 | 
						|
		d();
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
- lines should be less than 80 characters wide;
 | 
						|
- when breaking lines with functions calls, the parameters are aligned
 | 
						|
  with the opening parentheses;
 | 
						|
- when assigning a variable with the result of a function call, if the
 | 
						|
  line would be longer we break it around the equal '=' sign if it makes
 | 
						|
  sense;
 | 
						|
 | 
						|
	long_variable_name =
 | 
						|
		function_with_a_really_long_name(parameter1, parameter2,
 | 
						|
						 parameter3, parameter4);
 | 
						|
 | 
						|
	x = function_with_a_really_long_name(parameter1, parameter2,
 | 
						|
					     parameter3, parameter4);
 | 
						|
 | 
						|
== Licensing ==
 | 
						|
 | 
						|
Wayland is licensed with the intention to be usable anywhere X.org is.
 | 
						|
Originally, X.org was covered under the MIT X11 license, but changed to
 | 
						|
the MIT Expat license.  Similarly, Wayland was covered initially as MIT
 | 
						|
X11 licensed, but changed to the MIT Expat license, following in X.org's
 | 
						|
footsteps.  Other than wording, the two licenses are substantially the
 | 
						|
same, with the exception of a no-advertising clause in X11 not included
 | 
						|
in Expat.
 | 
						|
 | 
						|
New source code files should specify the MIT Expat license in their
 | 
						|
boilerplate, as part of the copyright statement.
 | 
						|
 | 
						|
== References ==
 | 
						|
 | 
						|
	[1] http://git-scm.com/documentation
 | 
						|
 | 
						|
	[2] http://who-t.blogspot.de/2009/12/on-commit-messages.html
 | 
						|
 |