21f36f55 |
Instructions for s3cmd maintainers for doing a tagged release and publishing on sourceforge.net. |
5811f35b |
In the below, 2.1.0 is the example version being released. Salt to taste.
Dependency that could be needed for the release:
pip install --user twine |
21f36f55 |
1. Make a fresh clone of the repo: |
5811f35b |
git clone ssh+git://git@github.com/s3tools/s3cmd s3cmd-release |
21f36f55 |
2. Run ./run-tests.py to verify it all works OK.
|
5811f35b |
3. Update version to 2.1.0 in S3/PkgInfo.py |
21f36f55 |
4. Update manpage with ./s3cmd --help | ./format-manpage.pl > s3cmd.1
|
5811f35b |
5. Update NEWS with info about new features. Best to extract from git with:
git log --abbrev-commit --no-merges v2.0.2.. |
21f36f55 |
(list all tags with: "git tag")
6. Verify the above changes:
git diff --check && git diff
git status
(The only changed files should be NEWS, s3cmd.1, S3/PkgInfo.py)
7. Remove testsuite (intentionally inaccessible files break the next
step):
chmod -R +rwx testsuite/permission-tests/permission-denied-dir && rm -rf testsuite
8. If everything worked fine commit the above changes: |
5811f35b |
git commit -a -m "Update version to 2.1.0" |
21f36f55 |
|
5811f35b |
9. Tag it:
git tag --sign -a v2.1.0 -m "Tag v2.1.0" |
21f36f55 |
10. Push back to github:
git push --tags
|
5811f35b |
11. Build the "Source Distribution" and the universal "Wheel" package:
python setup.py sdist bdist_wheel --universal
-> 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
12. Generate the GPG signatures for the previously generated artefacts
gpg2 --default-key XXXX --detach-sign -a dist/s3cmd-2.1.0.tar.gz
gpg2 --default-key XXXX --detach-sign -a dist/s3cmd-2.1.0.zip
gpg2 --default-key XXXX --detach-sign -a dist/s3cmd-2.1.0-py2.py3-none-any.whl
13. Publish to PyPi, so 'pip install s3cmd' downloads the new version.
twine upload dist/s3cmd-2.1.0.tar.gz* dist/s3cmd-2.1.0-py2.py3-none-any.whl* |
21f36f55 |
|
5811f35b |
Note: we only publish the .tar.gz and the .whl (+.asc signatures) to Pypi, and
not the .zip as Pypi only accepts a single "sdist" source file for a given version. |
21f36f55 |
GitHub releases
1. Login to github.com/s3tools/s3cmd
2. You will see your new tag in the Tags tab. Click "Draft a new
release".
3. In the 'Tag version' drop-down, select your new tag.
|
5811f35b |
4. In the 'Release title' field, name it v2.1.0. |
21f36f55 |
5. In the 'Describe this release' text box, add in this release's
notes from the NEWS file.
6. Upload all 4 files from dist/.
7. Click "Publish release"
SourceForge releases
1. Login to sf.net
2. Go to https://sourceforge.net/p/s3tools/admin/
|
5811f35b |
3. Files -> s3cmd -> Add Folder -> Enter "2.1.0" -> Create |
21f36f55 |
|
5811f35b |
4. Go into 2.1.0 -> Add File -> upload dist/s3cmd-2.1.0.tar.gz |
21f36f55 |
5. Once uploaded click the little "i" icon on the right and click
"Select all" under "Default Download For:" to update the default
download button to this new version.
6. Give it a few minutes and verify on the Summary page that the |
5811f35b |
download button has been updated to s3cmd-2.1.0.tar.gz |
21f36f55 |
Now it's time to send out an announcement email to |
39a0f58f |
s3tools-announce@lists.sourceforge.net and
s3tools-general@lists.sourceforge.net (check out the s3cmd-announce |
21f36f55 |
archive for an inspiration :)
And the last step is to ask the respective distribution maintainers
(Fedora, Debian, Ubuntu, OpenSuse, ...?) to update the package in
their builds. |