Browse code

Update RELEASE_INSTRUCTIONS with the new procedure to upload to Pypi

Florent Viard authored on 2020/04/09 10:54:18
Showing 2 changed files
... ...
@@ -1,20 +1,22 @@
1 1
 Instructions for s3cmd maintainers for doing a tagged release and publishing on sourceforge.net.
2
-In the below, 1.5.0-rc1 is the example version being released.  Salt to taste.
2
+In the below, 2.1.0 is the example version being released.  Salt to taste.
3
+
4
+Dependency that could be needed for the release:
5
+    pip install --user twine
3 6
 
4 7
 1.  Make a fresh clone of the repo:
5
-   git clone ssh+git://git@github.com/s3tools/s3cmd s3cmd-release
8
+    git clone ssh+git://git@github.com/s3tools/s3cmd s3cmd-release
6 9
 
7 10
 2.  Run ./run-tests.py to verify it all works OK.
8 11
 
9
-3.  Update version to 1.5.0-rc1 in S3/PkgInfo.py
12
+3.  Update version to 2.1.0 in S3/PkgInfo.py
10 13
 
11 14
 4.  Update manpage with ./s3cmd --help | ./format-manpage.pl > s3cmd.1
12 15
 
13
-5.  Update NEWS with info about new features. Best to extract from git
14
-    with:  git log --no-merges v1.5.0-beta1..
16
+5.  Update NEWS with info about new features. Best to extract from git with:
17
+    git log --abbrev-commit --no-merges v2.0.2..
15 18
     (list all tags with: "git tag")
16 19
 
17
-
18 20
 6.  Verify the above changes:
19 21
     git diff --check && git diff
20 22
     git status
... ...
@@ -25,21 +27,28 @@ In the below, 1.5.0-rc1 is the example version being released.  Salt to taste.
25 25
     chmod -R +rwx testsuite/permission-tests/permission-denied-dir && rm -rf testsuite
26 26
 
27 27
 8.  If everything worked fine commit the above changes:
28
-    git commit -a -m "Update version to 1.5.0-rc1"
28
+    git commit -a -m "Update version to 2.1.0"
29 29
 
30
-9. Tag it:
31
-    git tag --sign -a v1.5.0-rc1 -m "Tag v1.5.0-rc1"
30
+9.  Tag it:
31
+    git tag --sign -a v2.1.0 -m "Tag v2.1.0"
32 32
 
33 33
 10. Push back to github:
34 34
     git push --tags
35 35
 
36
-11.  Build the "Source Distribution":
37
-    python setup.py sdist upload --sign
38
-    -> Creates dist/s3cmd-1.5.0-rc1.tar.gz* and dist/s3cmd-1.5.0-rc1.zip*
36
+11. Build the "Source Distribution" and the universal "Wheel" package:
37
+    python setup.py sdist bdist_wheel --universal
38
+    -> Creates dist/s3cmd-2.1.0.tar.gz , dist/s3cmd-2.1.0.zip and dist/s3cmd-2.1.0-py2.py3-none-any.whl
39
+
40
+12. Generate the GPG signatures for the previously generated artefacts
41
+    gpg2 --default-key XXXX --detach-sign -a dist/s3cmd-2.1.0.tar.gz
42
+    gpg2 --default-key XXXX --detach-sign -a dist/s3cmd-2.1.0.zip
43
+    gpg2 --default-key XXXX --detach-sign -a dist/s3cmd-2.1.0-py2.py3-none-any.whl
44
+
45
+13. Publish to PyPi, so 'pip install s3cmd' downloads the new version.
46
+    twine upload dist/s3cmd-2.1.0.tar.gz* dist/s3cmd-2.1.0-py2.py3-none-any.whl*
39 47
 
40
-The upload step publishes it to PyPi, so 'pip install s3cmd' downloads
41
-the new version.  It also generated the GPG signatures, so you don't
42
-have to do that manually, and have them available for the next steps.
48
+Note: we only publish the .tar.gz and the .whl (+.asc signatures) to Pypi, and
49
+not the .zip as Pypi only accepts a single "sdist" source file for a given version.
43 50
 
44 51
 
45 52
 GitHub releases
... ...
@@ -51,7 +60,7 @@ GitHub releases
51 51
 
52 52
 3.  In the 'Tag version' drop-down, select your new tag.
53 53
 
54
-4.  In the 'Release title' field, name it v1.5.0-rc1.
54
+4.  In the 'Release title' field, name it v2.1.0.
55 55
 
56 56
 5.  In the 'Describe this release' text box, add in this release's
57 57
     notes from the NEWS file.
... ...
@@ -68,16 +77,16 @@ SourceForge releases
68 68
 
69 69
 2.  Go to https://sourceforge.net/p/s3tools/admin/
70 70
 
71
-3.  Files -> s3cmd -> Add Folder -> Enter "1.5.0-rc1" -> Create
71
+3.  Files -> s3cmd -> Add Folder -> Enter "2.1.0" -> Create
72 72
 
73
-4.  Go into 1.5.0-rc1 -> Add File -> upload dist/s3cmd-1.5.0-rc1.tar.gz
73
+4.  Go into 2.1.0 -> Add File -> upload dist/s3cmd-2.1.0.tar.gz
74 74
 
75 75
 5.  Once uploaded click the little "i" icon on the right and click
76 76
     "Select all" under "Default Download For:" to update the default
77 77
     download button to this new version.
78 78
 
79 79
 6.  Give it a few minutes and verify on the Summary page that the
80
-    download button has been updated to s3cmd-1.5.0-rc1.tar.gz
80
+    download button has been updated to s3cmd-2.1.0.tar.gz
81 81
 
82 82
 Now it's time to send out an announcement email to
83 83
 s3tools-announce@lists.sourceforge.net and
... ...
@@ -83,7 +83,9 @@ setup(
83 83
 Authors:
84 84
 --------
85 85
     Florent Viard <florent@sodria.com>
86
+
86 87
     Michal Ludvig  <michal@logix.cz>
88
+
87 89
     Matt Domsch (github.com/mdomsch)
88 90
 """ % (S3.PkgInfo.long_description),
89 91