blob: 8656ee7da814a71e9df41c3ecdb7164622bf9430 [file] [log] [blame]
Shawn O. Pearce2d1a3962009-07-02 13:18:42 -07001Short Version:
2
3 - Make small logical changes.
4 - Provide a meaningful commit message.
David Pursehouse4f7bdea2012-10-22 12:50:15 +09005 - Check for coding errors with pylint
Shawn O. Pearce2d1a3962009-07-02 13:18:42 -07006 - Make sure all code is under the Apache License, 2.0.
Mark E. Hamiltonb29e6112016-02-16 18:30:44 -07007 - Publish your changes for review.
8 - Make corrections if requested.
9 - Verify your changes on gerrit so they can be submitted.
Shawn O. Pearce2d1a3962009-07-02 13:18:42 -070010
David Pursehousea43f42f2012-08-21 16:26:07 +090011 git push https://gerrit-review.googlesource.com/git-repo HEAD:refs/for/master
Shawn O. Pearce2d1a3962009-07-02 13:18:42 -070012
13
14Long Version:
15
16I wanted a file describing how to submit patches for repo,
17so I started with the one found in the core Git distribution
18(Documentation/SubmittingPatches), which itself was based on the
19patch submission guidelines for the Linux kernel.
20
21However there are some differences, so please review and familiarize
22yourself with the following relevant bits:
23
24
25(1) Make separate commits for logically separate changes.
26
27Unless your patch is really trivial, you should not be sending
28out a patch that was generated between your working tree and your
29commit head. Instead, always make a commit with complete commit
30message and generate a series of patches from your repository.
31It is a good discipline.
32
33Describe the technical detail of the change(s).
34
35If your description starts to get too long, that's a sign that you
36probably need to split up your commit to finer grained pieces.
37
38
David Pursehouse4f7bdea2012-10-22 12:50:15 +090039(2) Check for coding errors with pylint
40
41Run pylint on changed modules using the provided configuration:
42
43 pylint --rcfile=.pylintrc file.py
44
45
46(3) Check the license
Shawn O. Pearce2d1a3962009-07-02 13:18:42 -070047
48repo is licensed under the Apache License, 2.0.
49
50Because of this licensing model *every* file within the project
51*must* list the license that covers it in the header of the file.
52Any new contributions to an existing file *must* be submitted under
53the current license of that file. Any new files *must* clearly
54indicate which license they are provided under in the file header.
55
56Please verify that you are legally allowed and willing to submit your
57changes under the license covering each file *prior* to submitting
58your patch. It is virtually impossible to remove a patch once it
59has been applied and pushed out.
60
61
David Pursehouse4f7bdea2012-10-22 12:50:15 +090062(4) Sending your patches.
Shawn O. Pearce2d1a3962009-07-02 13:18:42 -070063
64Do not email your patches to anyone.
65
66Instead, login to the Gerrit Code Review tool at:
67
Shawn O. Pearce9b017da2012-02-28 18:53:12 -080068 https://gerrit-review.googlesource.com/
Shawn O. Pearce2d1a3962009-07-02 13:18:42 -070069
70Ensure you have completed one of the necessary contributor
71agreements, providing documentation to the project maintainers that
72they have right to redistribute your work under the Apache License:
73
Shawn O. Pearce9b017da2012-02-28 18:53:12 -080074 https://gerrit-review.googlesource.com/#/settings/agreements
Shawn O. Pearce2d1a3962009-07-02 13:18:42 -070075
Shawn O. Pearce9b017da2012-02-28 18:53:12 -080076Ensure you have obtained an HTTP password to authenticate:
Shawn O. Pearce2d1a3962009-07-02 13:18:42 -070077
Shawn O. Pearce9b017da2012-02-28 18:53:12 -080078 https://gerrit-review.googlesource.com/new-password
Shawn O. Pearce2d1a3962009-07-02 13:18:42 -070079
Mark E. Hamiltonb29e6112016-02-16 18:30:44 -070080Ensure that you have the local commit hook installed to automatically
81add a ChangeId to your commits:
82
83 curl -Lo `git rev-parse --git-dir`/hooks/commit-msg https://gerrit-review.googlesource.com/tools/hooks/commit-msg
84 chmod +x `git rev-parse --git-dir`/hooks/commit-msg
85
86If you have already committed your changes you will need to amend the commit
87to get the ChangeId added.
88
89 git commit --amend
90
Shawn O. Pearce9b017da2012-02-28 18:53:12 -080091Push your patches over HTTPS to the review server, possibly through
Shawn O. Pearce2d1a3962009-07-02 13:18:42 -070092a remembered remote to make this easier in the future:
93
Shawn O. Pearce9b017da2012-02-28 18:53:12 -080094 git config remote.review.url https://gerrit-review.googlesource.com/git-repo
David Pursehousea43f42f2012-08-21 16:26:07 +090095 git config remote.review.push HEAD:refs/for/master
Shawn O. Pearce2d1a3962009-07-02 13:18:42 -070096
97 git push review
98
99You will be automatically emailed a copy of your commits, and any
100comments made by the project maintainers.
Mark E. Hamiltonb29e6112016-02-16 18:30:44 -0700101
102
103(5) Make changes if requested
104
105The project maintainer who reviews your changes might request changes to your
106commit. If you make the requested changes you will need to amend your commit
107and push it to the review server again.
108
109
110(6) Verify your changes on gerrit
111
112After you receive a Code-Review+2 from the maintainer, select the Verified
113button on the gerrit page for the change. This verifies that you have tested
114your changes and notifies the maintainer that they are ready to be submitted.
115The maintainer will then submit your changes to the repository.