Michael Merickel
2018-10-18 e4c0570d5c67ddf0ad9502169b59475ba0784d82
commit | author | age
66fcbf 1 Releasing Pyramid
CM 2 =================
3
7c9eab 4 - For clarity, we define releases as follows.
SP 5
6   - Alpha, beta, dev and similar statuses do not qualify whether a release is
7     major or minor. The term "pre-release" means alpha, beta, or dev.
8
a575d1 9   - A release is final when it is no longer pre-release.
SP 10
7c9eab 11   - A *major* release is where the first number either before or after the
SP 12     first dot increases. Examples: 1.6 to 1.7a1, or 1.8 to 2.0.
13
14   - A *minor* or *bug fix* release is where the number after the second dot
15     increases. Example: 1.6 to 1.6.1.
a575d1 16
SP 17 Prepare new release branch
18 --------------------------
19
20 - Create a new release branch, incrementing the version number.
7c9eab 21
SP 22 - Do any necessary branch merges (e.g., master to branch, branch to master).
629d19 23
CM 24 - On release branch:
25
26   $ git pull
ad508e 27
47a6bb 28 - Do platform test via tox:
CM 29
629d19 30   $ tox -r
47a6bb 31
aa1c9b 32   Make sure statement coverage is at 100% (the test run will fail if not).
66fcbf 33
fd9110 34 - Run tests on Windows if feasible.
66fcbf 35
482075 36 - Make sure all scaffold tests pass (CPython 2.7, 3.4, 3.5, 3.6, and 3.7, and
SP 37   PyPy on UNIX; this doesn't work on Windows):
d6cc11 38
eadaee 39   $ tox -e{py27,py34,py35,py36,py37,pypy}-scaffolds
d6cc11 40
d179ce 41 - For each ``pyramid-cookiecutter-*``, make a new branch off "master" with the
SP 42   same name to align with the new Pyramid release branch name.
43
64cf0e 44 - In the docs, update the ``cookiecutter`` command with the new branch name,
SP 45   for example, ``cookiecutter gh:Pylons/pyramid-cookiecutter-starter --checkout
46   x.y-branch``. A search for ``cookiecutter gh:Pylons/pyramid-cookiecutter-``
47   should return all instances to be updated.
48
39ff2c 49 - Ensure all features of the release are documented (audit CHANGES.rst or
66fcbf 50   communicate with contributors).
CM 51
39ff2c 52 - Change CHANGES.rst heading to reflect the new version number.
a575d1 53
39ff2c 54 - Copy relevant changes (delta bug fixes) from CHANGES.rst to
c0fdec 55   docs/whatsnew-X.X (if it's a major release).  Minor releases should
TT 56   include a link under "Bug Fix Releases" to the minor feature
39ff2c 57   changes in CHANGES.rst.
66fcbf 58
7dbc4a 59 - Update README.rst to use correct versions of badges, URLs, and ALT option
93c94e 60   according to the new release branch name.
bbbcfb 61
fa16cb 62 - Update whatsnew-X.X.rst in docs to point at change log entries for individual
CM 63   releases if applicable.
64
19af3f 65 - For major version releases, in contributing.md, update branch descriptions.
SP 66
a9f92b 67 - For major version releases, in docs/conf.py, update values under
SP 68   html_theme_options for in_progress and outdated across master, releasing
48738d 69   branch, and previously released branch. Also in the previously released
SP 70   branch only, uncomment the sections to enable pylons_sphinx_latesturl.
a9f92b 71
a575d1 72 - Change setup.py version to the release version number.
66fcbf 73
17e3ab 74 - Make sure PyPI long description renders::
21a937 75
17e3ab 76   $ tox -e lint
21a937 77
66fcbf 78 - Create a release tag.
CM 79
17e3ab 80   $ git tag X.X
66fcbf 81
17e3ab 82 - Build the sdist and wheel.
MM 83
84   $ tox -e build
85
86 - Upload the artifacts to PyPI:
87
b9298c 88   $ twine upload dist/pyramid-X.X-*
66fcbf 89
a575d1 90 - Configure RTD to publish the new release version of the docs.
SP 91
92 Prepare master for further development (major releases only)
93 ------------------------------------------------------------
94
95 - Checkout master.
96
39ff2c 97 - In CHANGES.rst, preserve headings but clear out content. Add heading
b5237a 98   "unreleased" for the version number.
a575d1 99
39ff2c 100 - From the release branch, forward port the changes in CHANGES.rst to
TS 101   HISTORY.rst.
a575d1 102
SP 103 - In contributing.md, forward port branch descriptions from release branch.
104
105 - In docs/conf.py, add a commented line under
106   pylons_sphinx_latesturl_pagename_overrides for the release.
107
108 - Change setup.py version to the next version number.
109
93c94e 110 - Update README.rst to use correct versions of badges, URLs, and ALT option
SP 111   for "master" instead of the major release version.
112
cb3b05 113 - In the docs, update the ``cookiecutter`` command with ``master``,
SP 114   for example, ``cookiecutter gh:Pylons/pyramid-cookiecutter-starter --checkout
115   master``. A search for ``cookiecutter gh:Pylons/pyramid-cookiecutter-``
116   should return all instances to be updated.
117
a575d1 118 Update previous version (final releases only)
SP 119 ---------------------------------------------
d179ce 120
a575d1 121 - In docs/conf.py, update values under html_theme_options for in_progress and
SP 122   outdated. Uncomment the sections to enable pylons_sphinx_latesturl.
123
124 - Configure RTD to point the "latest" alias to the new release version of the
125   docs.
126
3fbd22 127
SP 128 Cookiecutters
129 -------------
130
131 - For each cookiecutter, clone the newly released branch to "latest" branch.
132
133
a575d1 134 Marketing and communications
SP 135 ----------------------------
136
7d1e06 137 - Edit Pylons/trypyramid.com/src/templates/resources.html for major releases,
SP 138   pre-releases, and once pre-releases are final.
f8309d 139
5a6c30 140 - Edit `https://wiki.python.org/moin/WebFrameworks
SP 141   <https://wiki.python.org/moin/WebFrameworks>`_.
66fcbf 142
c87f61 143 - Edit `https://en.wikipedia.org/wiki/Pylons_project <https://en.wikipedia.org/wiki/Pylons_project>`_.
SP 144
c7eca0 145 - Edit `https://en.wikipedia.org/wiki/Comparison_of_web_frameworks <https://en.wikipedia.org/wiki/Comparison_of_web_frameworks>`_.
SP 146
a575d1 147 - Announce to Twitter.
SP 148
149 ```
150 Pyramid 1.x released.
151
152 PyPI
8bd6f7 153 https://pypi.org/project/pyramid/1.x/
a575d1 154
9b4eed 155 === One time only for new version, first pre-release ===
a575d1 156 What's New
19d341 157 https://docs.pylonsproject.org/projects/pyramid/en/1.X-branch/whatsnew-1.X.html
9b4eed 158 === For all subsequent pre-releases ===
SP 159 Changes
19d341 160 https://docs.pylonsproject.org/projects/pyramid/en/1.X-branch/changes.html#version-yyyy-mm-dd
a575d1 161
SP 162 Issues
163 https://github.com/Pylons/pyramid/issues
164 ```
66fcbf 165
CM 166 - Announce to maillist.
167
a575d1 168 ```
169dba 169 Pyramid 1.X.X has been released.
5aeb91 170
e42ba5 171 The full changelog is here:
MM 172 https://docs.pylonsproject.org/projects/pyramid/en/1.X-branch/changes.html
5aeb91 173
314636 174 What's New In Pyramid 1.X:
19d341 175 https://docs.pylonsproject.org/projects/pyramid/en/1.X-branch/whatsnew-1.X.html
5aeb91 176
314636 177 1.X release documentation (across all alphas and betas, as well as when it gets
SP 178 to final release):
19d341 179 https://docs.pylonsproject.org/projects/pyramid/en/1.X-branch/
5aeb91 180
CM 181 You can install it via PyPI:
182
a575d1 183   pip install Pyramid==1.X
5aeb91 184
CM 185 Enjoy, and please report any issues you find to the issue tracker at
186 https://github.com/Pylons/pyramid/issues
187
188 Thanks!
189
a575d1 190 - Pyramid core developers
SP 191 ```