aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatti Picus <matti.picus@gmail.com>2019-05-20 12:56:07 +0300
committerMatti Picus <matti.picus@gmail.com>2019-05-20 12:56:07 +0300
commit0e247a0a32ba68f9c3aefb4ea00adf587a577507 (patch)
treef67580115b429571920c457cbb1ccc9469c057f3 /lib-python
parentupdate to v2.7.16 (diff)
downloadpypy-0e247a0a32ba68f9c3aefb4ea00adf587a577507.tar.gz
pypy-0e247a0a32ba68f9c3aefb4ea00adf587a577507.tar.bz2
pypy-0e247a0a32ba68f9c3aefb4ea00adf587a577507.zip
add how-to-update
Diffstat (limited to 'lib-python')
-rw-r--r--lib-python/stdlib-upgrade.txt37
1 files changed, 37 insertions, 0 deletions
diff --git a/lib-python/stdlib-upgrade.txt b/lib-python/stdlib-upgrade.txt
new file mode 100644
index 0000000000..19d1143feb
--- /dev/null
+++ b/lib-python/stdlib-upgrade.txt
@@ -0,0 +1,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