aboutsummaryrefslogtreecommitdiff
blob: 19d1143feb46912dbee6a347d1978ac5dd8df49f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Process for upgrading the stdlib to a new cpython version
==========================================================

.. note::

    overly detailed

The idea is to 
- exactly copy cpython's stdlib to a "vendor" branch on top of the previous
  version
- clean up the hg history for moved files so the merge from pypy will work
- branch off that with a new integration branch
- merge default or py3 into that branch, which will update with all the
  modifications pypy made to the stdlib

And in more detail:

0. make sure your working dir is clean
1. check out the branch vendor/stdlib (for 2.7) or vendor/stdlib-3-* (for py3k)
   or create branch vendor/stdlib-3-*
2. upgrade the files there
   2a. remove lib-python/2.7/ or lib-python/3/
   2b. copy the files from the cpython repo
   2c. hg add lib-python/2.7/ or lib-python/3/
   2d. hg remove --after
   2e. show copied files in cpython repo by running `hg diff --git -r v<old> -r v<new> Lib | grep '^copy \(from\|to\)'` or `git diff --compact-summary v<old>..v<new> Lib` and search for `=>`
   2f. fix copies / renames manually by running `hg copy --after <from> <to>` for each copied file
3. update stdlib-version.txt with the output of hg -id from the cpython repo
4. commit
5. update to default / py3k
6. create a integration branch for the new stdlib
   (just hg branch stdlib-$version)
7. merge vendor/stdlib or vendor/stdlib-3-*
8. commit
10. fix issues
11. commit --close-branch
12. merge to default / py3k