Instructions for s3cmd maintainers for doing a tagged release and publishing on
 In the below, 1.5.0-rc1 is the example version being released.  Salt to taste.
 1.  Make a fresh clone of the repo:
    git clone ssh+git:// s3cmd-release
 2.  Run ./ to verify it all works OK.
 3.  Update version to 1.5.0-rc1 in S3/
 4.  Update manpage with ./s3cmd --help | ./ > s3cmd.1
 5.  Update NEWS with info about new features. Best to extract from git
     with:  git log --no-merges v1.5.0-beta1..
     (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/
 7.  Remove testsuite (intentionally inaccessible files break the next
     chmod -R +rwx testsuite/permission-tests/permission-denied-dir && rm -rf testsuite
 8.  Build the "Source Distribution":
     python sdist
     -> Creates dist/s3cmd-1.5.0-rc1.tar.gz and dist/
 9.  If everything worked fine commit the above changes:
     git commit -a -m "Update version to 1.5.0-rc1"
 10. Tag it:
     git tag --sign -a v1.5.0-rc1 -m "Tag v1.5.0-rc1"
 11. Push back to github:
     git push --tags
 That's it for building the release. Now upload it to SourceForge:
 1.  Login to
 2.  Go to
 3.  Files -> s3cmd -> Add Folder -> Enter "1.5.0-rc1" -> Create
 4.  Go into 1.5.0-rc1 -> Add File -> upload dist/s3cmd-1.5.0-rc1.tar.gz
 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
     download button has been updated to s3cmd-1.5.0-rc1.tar.gz
 Now it's time to send out an announcement email to and (check out the s3cmd-announce
 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.