@@ -8,10 +8,9 @@ What it Takes
8
8
9
9
When you have consistently contributed patches which meet quality standards
10
10
without requiring extensive rewrites prior to being committed,
11
- you may qualify for
12
- commit privileges and become a core developer of Python. You must also work
13
- well with other core developers (and people in general) as you become an
14
- ambassador for the Python project.
11
+ you may qualify for commit privileges and become a core developer of Python.
12
+ You must also work well with other core developers (and people in general)
13
+ as you become an ambassador for the Python project.
15
14
16
15
Typically a core developer will offer you the chance to gain commit privilege.
17
16
The person making the offer will become your mentor and watch your commits for
@@ -24,10 +23,6 @@ request is turned down. Do not take this personally! It simply means that other
24
23
core developers think you need more time contributing patches before you are
25
24
able to commit them without supervision.
26
25
27
- A complete list of core developer usernames can be found at
28
- https://hg.python.org/committers.txt. :ref: `developers ` lists when and why
29
- someone received commit privileges.
30
-
31
26
32
27
Gaining Commit Privileges
33
28
-------------------------
@@ -57,30 +52,22 @@ form, please change it. This is so that it is easier to assign issues to the
57
52
right person.
58
53
59
54
60
- SSH
61
- '''
62
-
63
- You need to provide an SSH-2 key to be able to commit code. You may have
64
- multiple keys if you wish (e.g., for work and home). Using Ed25519 keys is
65
- encouraged. Send your key as an attachment in an email to
66
- hgaccounts@python.org along with your GitHub username so you can be added to
67
- the "Python core" team at https://github.com/python.
68
-
69
- Your SSH key will be set to a username in the form of "first_name.last_name".
70
- This should match your username on the issue tracker.
71
-
72
- You can verify your commit access by looking at
73
- https://hg.python.org/committers.txt which lists all core developers by
74
- username. If you want to practice, there is a `test repository
75
- <https://hg.python.org/test/> `_ where you can freely commit and push any
76
- changes you like::
55
+ GitHub
56
+ ''''''
77
57
78
- hg clone ssh://hg@hg.python.org/test/ hgtest
58
+ You will be added to the `Python core team `_ on GitHub. This will give you
59
+ rights to commit to various repositories under the `Python organization `_
60
+ on GitHub. When you are initially added you will be emailed by GitHub with
61
+ an invitation to join the team. Please accept the invite in the email or
62
+ go to https://github.com/python and accept the invite there.
79
63
80
64
An entry in the :ref: `developers ` should also be entered for you.
81
65
Typically the person who sponsored your application to become a core developer
82
66
makes sure an entry is created for you.
83
67
68
+ .. _Python core team : https://github.com/orgs/python/teams/python-core
69
+ .. _Python organization : https://github.com/python
70
+
84
71
85
72
.. _contributor_agreement :
86
73
@@ -95,30 +82,22 @@ it can be legally distributed with Python.
95
82
This is a very important step! Hopefully you have already submitted a
96
83
contributor agreement if you have been submitting patches. But if you have not
97
84
done this yet, it is best to do this ASAP, probably before you even do your
98
- first commit so as to not forget.
85
+ first commit so as to not forget. Also do not forget to enter your GitHub
86
+ username into your details on the issue tracker.
99
87
100
88
101
89
.. _contributor form for Python : http://www.python.org/psf/contrib/
102
90
103
91
104
92
105
- Read/Write Checkout
106
- '''''''''''''''''''
107
-
108
- With your commit privileges working and your contributor form submitted, you
109
- can now get a read/write checkout of the code. URLs for read/write checkouts
110
- are different than those for read-only checkouts as SSH is used instead of
111
- HTTP.
112
-
113
- You can clone the repository (which contains all active branches) with::
93
+ Pull Request merging
94
+ ''''''''''''''''''''
114
95
115
- hg clone ssh://hg@hg.python.org/cpython
116
-
117
- The default branch in that repository is the current development branch.
118
- You can of course switch your working copy to one of the maintenance branches,
119
- for example::
120
-
121
- hg update 2.7
96
+ Once you have your commit privileges on GitHub you will be able to accept
97
+ pull requests on GitHub. You should plan to continue to submit your own
98
+ changes through pull requests as if you weren't a core developer to benefit
99
+ from various things such as automatic integration testing, but you
100
+ can accept your own pull requests if you feel comfortable doing so.
122
101
123
102
124
103
Responsibilities
@@ -143,12 +122,11 @@ do on the issue tracker.
143
122
144
123
Third, please list what areas you want to be considered an expert in the
145
124
:ref: `experts `. This allows triagers to direct issues to you which involve
146
- an area you are an expert in. But,
147
- as stated in the second point above, if you do not have the time to answer
148
- questions promptly then please remove yourself as needed from the file so that
149
- you will not be bothered in the future. Once again, we all understand how life
150
- gets in the way, so no one will be insulted if you remove yourself from the
151
- list.
125
+ an area you are an expert in. But, as stated in the second point above, if you
126
+ do not have the time to answer questions promptly then please remove yourself as
127
+ needed from the file so that you will not be bothered in the future. Once again,
128
+ we all understand how life gets in the way, so no one will be insulted if you
129
+ remove yourself from the list.
152
130
153
131
Fourth, please consider whether or not you wish to add your name to the
154
132
:ref: `motivations ` list. Core contributor participation in the list helps the
@@ -164,138 +142,3 @@ break or figure out what you need to do to make it enjoyable again.
164
142
165
143
166
144
.. _PSF Code of Conduct : https://www.python.org/psf/codeofconduct/
167
-
168
-
169
- .. _version-core-devs :
170
-
171
- Version control for core developers
172
- -----------------------------------
173
-
174
- .. _hg-commit :
175
-
176
- How do I commit a change to a file?
177
- '''''''''''''''''''''''''''''''''''
178
-
179
- To commit any changes to a file (which includes adding a new file or deleting
180
- an existing one), you use the command::
181
-
182
- hg commit [PATH]
183
-
184
- ``PATH `` is optional: if it is omitted, all changes in your working copy
185
- will be committed to the local repository. When you commit, be sure that all
186
- changes are desired by reviewing them first; also, when making commits that you
187
- intend to push to public repositories, you should **not ** commit together
188
- unrelated changes.
189
-
190
- To abort a commit that you are in the middle of, leave the message
191
- empty (i.e., close the text editor without adding any text for the
192
- message). Mercurial will then abort the commit operation so that you can
193
- try again later.
194
-
195
- Once a change is committed to your local repository, it is still only visible
196
- by you. This means you are free to experiment with as many local commits
197
- you feel like.
198
-
199
- .. note ::
200
- If you do not like the default text editor Mercurial uses for
201
- entering commit messages, you may specify a different editor,
202
- either by changing the ``EDITOR `` environment variable or by setting
203
- a Mercurial-specific editor in your global ``.hgrc `` with the ``editor ``
204
- option in the ``[ui] `` section.
205
-
206
-
207
- .. _hg-merge-conflicts :
208
-
209
- How do I solve merge conflicts?
210
- '''''''''''''''''''''''''''''''
211
-
212
- The easiest way is to install KDiff3 --- Mercurial will open it automatically
213
- in case of conflicts, and you can then use it to solve the conflicts and
214
- save the resulting file(s). KDiff3 will also take care of marking the
215
- conflicts as resolved.
216
-
217
- If you don't use a merge tool, you can use ``hg resolve --list `` to list the
218
- conflicting files, resolve the conflicts manually, and the use
219
- ``hg resolve --mark <file path> `` to mark these conflicts as resolved.
220
- You can also use ``hg resolve -am `` to mark all the conflicts as resolved.
221
-
222
- .. note ::
223
- Mercurial will use KDiff3 automatically if it's installed and it can find
224
- it --- you don't need to change any settings. KDiff3 is also already
225
- included in the installer of TortoiseHg. For more information, see
226
- https://www.mercurial-scm.org/wiki/KDiff3.
227
-
228
-
229
- .. _hg-null-merge :
230
-
231
- How do I make a null merge?
232
- '''''''''''''''''''''''''''
233
-
234
- If you committed something (e.g. on 3.5) that shouldn't be ported on newer
235
- branches (e.g. on default), you have to do a *null merge *::
236
-
237
- cd 3.x
238
- hg merge 3.5
239
- hg revert -ar default
240
- hg resolve -am # needed only if the merge created conflicts
241
- hg ci -m '#12345: null merge with 3.5.'
242
-
243
- Before committing, ``hg status `` should list all the merged files as ``M ``,
244
- but ``hg diff `` should produce no output. This will record the merge without
245
- actually changing the content of the files.
246
-
247
-
248
- .. _hg-heads-merge :
249
-
250
- I got "abort: push creates new remote heads!" while pushing, what do I do?
251
- ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
252
-
253
- If you see this message while pushing, it means that you committed something
254
- on a clone that was not up to date, thus creating a new head.
255
- This usually happens for two reasons:
256
-
257
- 1. You forgot to run ``hg pull `` and/or ``hg up `` before committing;
258
- 2. Someone else pushed on the main repo just before you, causing a push race;
259
-
260
- First of all you should pull the new changesets using ``hg pull ``. Then you can
261
- use ``hg heads `` to see which branches have multiple heads.
262
-
263
- If only one branch has multiple heads, you can do::
264
-
265
- cd default
266
- hg heads .
267
- hg up csid-of-the-other-head
268
- hg merge
269
- hg ci -m 'Merge heads.'
270
-
271
- ``hg heads . `` will show you the two heads of the current branch: the one you
272
- pulled and the one you created with your commit (you can also specify a branch
273
- with ``hg heads <branch> ``). While not strictly necessary, it is highly
274
- recommended to switch to the other head before merging. This way you will be
275
- merging only your changeset with the rest, and in case of conflicts it will be
276
- a lot easier.
277
-
278
- If more than one branch has multiple heads, you have to repeat these steps for
279
- each branch. Since this creates new changesets, you will also have to
280
- :ref: `merge them between branches <branch-merge >`. For example, if both ``3.5 ``
281
- and ``default `` have multiple heads, you should first merge heads in ``3.5 ``,
282
- then merge heads in ``default ``, and finally merge ``3.5 `` with ``default ``
283
- using ``hg merge 3.5 `` as usual.
284
-
285
- In order to avoid this, you should *always remember to pull and update before
286
- committing *.
287
-
288
-
289
- How do I undo the changes made in a recent commit?
290
- ''''''''''''''''''''''''''''''''''''''''''''''''''
291
-
292
- First, this should not happen if you take the habit of reviewing changes before
293
- committing them.
294
-
295
- In any case, run::
296
-
297
- git revert <revision number>
298
-
299
- This will modify your working copy so that all changes in ``<revision number> ``
300
- (including added or deleted files) are undone. You then need to commit
301
- these changes so that the backout gets permanently recorded.
0 commit comments