My favorites | Sign in
Project Home Downloads Issues Source
Project Information
Members
Featured
Downloads
Links

This project is to keep my common distribution code in one place.

This is currently under constant flux and I don't recommend using it except for copy/pasting or forking at the moment.

Typical Workflow for Release

  • Edit the release notes.
  • Run ./build.py --check. This may also update debian/changelog, setup.py and yourapp.py if a new release has has been mentioned in RELEASE.rst.
  • Run ./build.py --missing-docs to create the README.rst and INSTALL.rst in various languages, derived from the setup.py text. Also creates the license file if needed.
  • Run ./build.py --gettext to get any translatable text strings.
  • Run ./build.py --check again to see how much you need to translate.
  • Run ./build.py --tests to run any unit tests.
  • Run hg commit if everything's ok.
  • Run hg push to upload to the Mercurial repository.
  • Run ./build.py --dist to create the distribution packages. This includes creating the man pages, debian distribution, zip and tar files.
  • Run ./build.py --upload to upload to code.google.com. Also sets the files as featured and unsets the old featured files.
  • Run ./build.py --pypi to upload to pypi.python.org.
  • Run ./build.py --check-remote to verify that all remote repositories are up-to-date.
  • Run ./build.py --git to upload a release to git.
  • Run ./build.py --mail to make an announcement on your mailing list.
  • Run ./build.py --freshmeat to make an announcement on freshmeat.
  • Run ./build.py --twitter to announce on your twitter account. Currently broken because of python-twitter doesn't work with the new twitter rules.

Features

  • Creates a tar, and zip source packages.
  • Creates a Debian distribution (from debian folder)
    • Optionally adds a man page.
    • Optionally adds a .desktop menu and icon.
  • Creates man page by help2man (so you need --version in your program).
    • Creates multiple man pages for multiple languages.
  • Uploads to code.google.com.
    • Adds the new files as 'featured' and removes the old 'featured' flags.
  • Uploads to pypi (aka. Cheeseshop).
  • Announces on Freshmeat.
  • Announces on Twitter.
  • Verifies that the Release notes version matches the setup.py version which matches the application's version string and matches the Debian changelog.
  • Performs spell check on your release notes and updates debian/changelog, so that the release notes all match.
  • Checks release notes and setup.py for reStructuredText errors.
  • Creates README, INSTALL and LICENSE documents if missing or out of date in multiple languages.
  • Runs pychecker on all files.
  • Runs nosetest on sub-folders.
  • Verifies that you committed to mercurial.
  • Verifies that you pushed mercurial to code.google.com.
  • Optionally performs "remote" checks, verifying that the versions are up-to-date in code.google.com and pypi.

This project is self hosting so you can look at setup.py and build_all.py .

Powered by Google Project Hosting