aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.travis.yml10
-rw-r--r--CHANGES.txt7
-rw-r--r--docs/releases.txt27
-rw-r--r--release.py20
-rwxr-xr-xsetup.cfg17
-rwxr-xr-xsetup.py11
-rw-r--r--setuptools/version.py4
7 files changed, 49 insertions, 47 deletions
diff --git a/.travis.yml b/.travis.yml
index ae14639a..e93c3750 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -27,3 +27,13 @@ script:
# test the bootstrap script
- python ez_setup.py
+before_deploy:
+ - export SETUPTOOLS_INSTALL_WINDOWS_SPECIFIC_FILES=1
+deploy:
+ provider: pypi
+ on:
+ tags: true
+ user: jaraco
+ password:
+ secure: tfWrsQMH2bHrWjqnP+08IX1WlkbW94Q30f4d7lCyhWS1FIf/jBDx4jrEILNfMxQ1NCwuBRje5sihj1Ow0BFf0vVrkaeff2IdvnNDEGFduMejaEQJL3s3QrLfpiAvUbtqwyWaHfAdGfk48PovDKTx0ZTvXZKYGXZhxGCYSlG2CE6Y6RDvnEl6Tk8e+LqUohkcSOwxrRwUoyxSnUaavdGohXxDT8MJlfWOXgr2u+KsRrriZqp3l6Fdsnk4IGvy6pXpy42L1HYQyyVu9XyJilR2JTbC6eCp5f8p26093m1Qas49+t6vYb0VLqQe12dO+Jm3v4uztSS5pPQzS7PFyjEYd2Rdb6ijsdbsy1074S4q7G9Sz+T3RsPUwYEJ07lzez8cxP64dtj5j94RL8m35A1Fb1OE8hHN+4c1yLG1gudfXbem+fUhi2eqhJrzQo5vsvDv1xS5x5GIS5ZHgKHCsWcW1Tv+dsFkrhaup3uU6VkOuc9UN+7VPsGEY7NvquGpTm8O1CnGJRzuJg6nbYRGj8ORwDpI0KmrExx6akV92P72fMC/I5TCgbSQSZn370H3Jj40gz1SM30WAli9M+wFHFd4ddMVY65yxj0NLmrP+m1tvnWdKtNh/RHuoW92d9/UFtiA5IhMf1/3djfsjBq6S9NT1uaLkVkTttqrPYJ7hOql8+g=
+ distributions: release
diff --git a/CHANGES.txt b/CHANGES.txt
index a784c33c..c95017d9 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -2,6 +2,13 @@
CHANGES
=======
+20.6
+----
+
+* New release process that relies on
+ `bumpversion <https://github.com/peritus/bumpversion>`_
+ and Travis CI for continuous deployment.
+
20.5
----
diff --git a/docs/releases.txt b/docs/releases.txt
index a9742c20..3f29334a 100644
--- a/docs/releases.txt
+++ b/docs/releases.txt
@@ -3,19 +3,14 @@ Release Process
===============
In order to allow for rapid, predictable releases, Setuptools uses a
-mechanical technique for releases. The release script, ``release.py`` in the
-repository, defines the details of the releases, and is executed by the
-`jaraco.packaging <https://bitbucket.org/jaraco/jaraco.packaging>`_ release
-module. The script does some checks (some interactive) and fully automates
-the release process.
+mechanical technique for releases, enacted by Travis following a
+successful build of a tagged release per
+`PyPI deployment <https://docs.travis-ci.com/user/deployment/pypi>`_.
-A Setuptools release manager must have maintainer access on PyPI to the
-project and administrative access to the Bitbucket project.
-
-To make a release, run the following from a Mercurial checkout at the
-revision slated for release::
-
- python -m jaraco.packaging.release
+To cut a release, install and run ``bumpversion {part}`` where ``part``
+is major, minor, or patch based on the scope of the changes in the
+release. Then, push the commits to the master branch. If tests pass,
+the release will be uploaded to PyPI.
Bootstrap Bookmark
------------------
@@ -23,7 +18,7 @@ Bootstrap Bookmark
Setuptools has a bootstrap script (ez_setup.py) which is hosted in the
repository and must be updated with each release (to bump the default version).
The "published" version of the script is the one indicated by the ``bootstrap``
-bookmark (Mercurial) or branch (Git).
+branch.
Therefore, the latest bootstrap script can be retrieved by checking out the
repository at that bookmark. It's also possible to get the bootstrap script for
@@ -57,7 +52,5 @@ corrected quickly, in many cases before other users have yet to encounter them.
Release Managers
----------------
-Jason R. Coombs is the primary release manager. Additionally, the following
-people have access to create releases:
-
-- Matthew Iversen (Ivoz)
+Additionally, anyone with push access to the master branch has access to cut
+releases.
diff --git a/release.py b/release.py
deleted file mode 100644
index cd4848f0..00000000
--- a/release.py
+++ /dev/null
@@ -1,20 +0,0 @@
-"""
-Setuptools is released using 'jaraco.packaging.release'. To make a release,
-install jaraco.packaging and run 'python -m jaraco.packaging.release'
-"""
-
-import os
-
-import pkg_resources
-
-pkg_resources.require('jaraco.packaging>=2.11')
-pkg_resources.require('wheel')
-
-files_with_versions = 'setuptools/version.py',
-
-# bdist_wheel must be included or pip will break
-dist_commands = 'sdist', 'bdist_wheel'
-
-test_info = "Travis-CI tests: http://travis-ci.org/#!/pypa/setuptools"
-
-os.environ["SETUPTOOLS_INSTALL_WINDOWS_SPECIFIC_FILES"] = "1"
diff --git a/setup.cfg b/setup.cfg
index a6da2c77..72967fa4 100755
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,8 +1,10 @@
[egg_info]
-tag_build = dev
+tag_build = .post
+tag_date = 1
[aliases]
-release = egg_info -RDb ''
+clean_egg_info = egg_info -RDb ''
+release = clean_egg_info build_sphinx sdist bdist_wheel upload_docs
source = register sdist binary
binary = bdist_egg upload --show-response
test = pytest
@@ -20,3 +22,14 @@ formats = gztar zip
[wheel]
universal=1
+
+[bumpversion]
+current_version = 20.5
+commit = True
+tag = True
+parse = (?P<major>\d+)\.(?P<minor>\d+)(\.(?P<patch>\d+))?
+serialize=
+ {major}.{minor}.{patch}
+ {major}.{minor}
+
+[bumpversion:file:setup.py]
diff --git a/setup.py b/setup.py
index 7986906d..021edab3 100755
--- a/setup.py
+++ b/setup.py
@@ -22,11 +22,6 @@ with open(init_path) as init_file:
SETUP_COMMANDS = command_ns['__all__']
-main_ns = {}
-ver_path = convert_path('setuptools/version.py')
-with open(ver_path) as ver_file:
- exec(ver_file.read(), main_ns)
-
import setuptools
scripts = []
@@ -68,10 +63,12 @@ needs_pytest = set(['ptr', 'pytest', 'test']).intersection(sys.argv)
pytest_runner = ['pytest-runner'] if needs_pytest else []
needs_sphinx = set(['build_sphinx', 'upload_docs']).intersection(sys.argv)
sphinx = ['sphinx', 'rst.linker>=1.5'] if needs_sphinx else []
+needs_wheel = set(['release', 'bdist_wheel']).intersection(sys.argv)
+wheel = ['wheel'] if needs_wheel else []
setup_params = dict(
name="setuptools",
- version=main_ns['__version__'],
+ version="20.5",
description="Easily download, build, install, upgrade, and uninstall "
"Python packages",
author="Python Packaging Authority",
@@ -161,7 +158,7 @@ setup_params = dict(
'pytest>=2.8',
] + (['mock'] if sys.version_info[:2] < (3, 3) else []),
setup_requires=[
- ] + sphinx + pytest_runner,
+ ] + sphinx + pytest_runner + wheel,
)
if __name__ == '__main__':
diff --git a/setuptools/version.py b/setuptools/version.py
index 6496a76f..2f943027 100644
--- a/setuptools/version.py
+++ b/setuptools/version.py
@@ -1 +1,3 @@
-__version__ = '20.6'
+import pkg_resources
+
+__version__ = pkg_resources.require('setuptools')[0].version