releases.txt 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. ===============
  2. Release Process
  3. ===============
  4. In order to allow for rapid, predictable releases, Setuptools uses a
  5. mechanical technique for releases, enacted by Travis following a
  6. successful build of a tagged release per
  7. `PyPI deployment <https://docs.travis-ci.com/user/deployment/pypi>`_.
  8. To cut a release, install and run ``bumpversion {part}`` where ``part``
  9. is major, minor, or patch based on the scope of the changes in the
  10. release. Then, push the commits to the master branch. If tests pass,
  11. the release will be uploaded to PyPI (from the Python 3.5 tests).
  12. Bootstrap Branch
  13. ----------------
  14. Setuptools has a bootstrap script (ez_setup.py), which is hosted in the
  15. repository in the ``bootstrap`` branch.
  16. Therefore, the latest bootstrap script can be retrieved by checking out
  17. that branch.
  18. The officially-published location of the bootstrap script is hosted on Python
  19. infrastructure (#python-infra on freenode) at https://bootstrap.pypa.io and
  20. is updated every fifteen minutes from the bootstrap branch. Sometimes,
  21. especially when the bootstrap script is rolled back, this
  22. process doesn't work as expected and requires manual intervention.
  23. Release Frequency
  24. -----------------
  25. Some have asked why Setuptools is released so frequently. Because Setuptools
  26. uses a mechanical release process, it's very easy to make releases whenever the
  27. code is stable (tests are passing). As a result, the philosophy is to release
  28. early and often.
  29. While some find the frequent releases somewhat surprising, they only empower
  30. the user. Although releases are made frequently, users can choose the frequency
  31. at which they use those releases. If instead Setuptools contributions were only
  32. released in batches, the user would be constrained to only use Setuptools when
  33. those official releases were made. With frequent releases, the user can govern
  34. exactly how often he wishes to update.
  35. Frequent releases also then obviate the need for dev or beta releases in most
  36. cases. Because releases are made early and often, bugs are discovered and
  37. corrected quickly, in many cases before other users have yet to encounter them.
  38. Release Managers
  39. ----------------
  40. Additionally, anyone with push access to the master branch has access to cut
  41. releases.