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 |
|
aa1c9b
|
39 |
$ ./scaffoldtests.sh |
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 |
|
21a937
|
74 |
- Make sure PyPI long description renders (requires ``readme_renderer`` |
SP |
75 |
installed into your Python):: |
|
76 |
|
|
77 |
$ python setup.py check -r -s -m |
|
78 |
|
66fcbf
|
79 |
- Create a release tag. |
CM |
80 |
|
21a937
|
81 |
- Make sure your Python has ``setuptools-git``, ``twine``, and ``wheel`` |
SP |
82 |
installed and release to PyPI:: |
66fcbf
|
83 |
|
b9298c
|
84 |
$ python setup.py sdist bdist_wheel |
MM |
85 |
$ twine upload dist/pyramid-X.X-* |
66fcbf
|
86 |
|
a575d1
|
87 |
- Configure RTD to publish the new release version of the docs. |
SP |
88 |
|
|
89 |
Prepare master for further development (major releases only) |
|
90 |
------------------------------------------------------------ |
|
91 |
|
|
92 |
- Checkout master. |
|
93 |
|
39ff2c
|
94 |
- In CHANGES.rst, preserve headings but clear out content. Add heading |
b5237a
|
95 |
"unreleased" for the version number. |
a575d1
|
96 |
|
39ff2c
|
97 |
- From the release branch, forward port the changes in CHANGES.rst to |
TS |
98 |
HISTORY.rst. |
a575d1
|
99 |
|
SP |
100 |
- In contributing.md, forward port branch descriptions from release branch. |
|
101 |
|
|
102 |
- In docs/conf.py, add a commented line under |
|
103 |
pylons_sphinx_latesturl_pagename_overrides for the release. |
|
104 |
|
|
105 |
- Change setup.py version to the next version number. |
|
106 |
|
93c94e
|
107 |
- Update README.rst to use correct versions of badges, URLs, and ALT option |
SP |
108 |
for "master" instead of the major release version. |
|
109 |
|
cb3b05
|
110 |
- In the docs, update the ``cookiecutter`` command with ``master``, |
SP |
111 |
for example, ``cookiecutter gh:Pylons/pyramid-cookiecutter-starter --checkout |
|
112 |
master``. A search for ``cookiecutter gh:Pylons/pyramid-cookiecutter-`` |
|
113 |
should return all instances to be updated. |
|
114 |
|
a575d1
|
115 |
Update previous version (final releases only) |
SP |
116 |
--------------------------------------------- |
d179ce
|
117 |
|
a575d1
|
118 |
- In docs/conf.py, update values under html_theme_options for in_progress and |
SP |
119 |
outdated. Uncomment the sections to enable pylons_sphinx_latesturl. |
|
120 |
|
|
121 |
- Configure RTD to point the "latest" alias to the new release version of the |
|
122 |
docs. |
|
123 |
|
3fbd22
|
124 |
|
SP |
125 |
Cookiecutters |
|
126 |
------------- |
|
127 |
|
|
128 |
- For each cookiecutter, clone the newly released branch to "latest" branch. |
|
129 |
|
|
130 |
|
a575d1
|
131 |
Marketing and communications |
SP |
132 |
---------------------------- |
|
133 |
|
7d1e06
|
134 |
- Edit Pylons/trypyramid.com/src/templates/resources.html for major releases, |
SP |
135 |
pre-releases, and once pre-releases are final. |
f8309d
|
136 |
|
66fcbf
|
137 |
- Edit `http://wiki.python.org/moin/WebFrameworks |
CM |
138 |
<http://wiki.python.org/moin/WebFrameworks>`_. |
|
139 |
|
c87f61
|
140 |
- Edit `https://en.wikipedia.org/wiki/Pylons_project <https://en.wikipedia.org/wiki/Pylons_project>`_. |
SP |
141 |
|
c7eca0
|
142 |
- Edit `https://en.wikipedia.org/wiki/Comparison_of_web_frameworks <https://en.wikipedia.org/wiki/Comparison_of_web_frameworks>`_. |
SP |
143 |
|
a575d1
|
144 |
- Announce to Twitter. |
SP |
145 |
|
|
146 |
``` |
|
147 |
Pyramid 1.x released. |
|
148 |
|
|
149 |
PyPI |
8bd6f7
|
150 |
https://pypi.org/project/pyramid/1.x/ |
a575d1
|
151 |
|
9b4eed
|
152 |
=== One time only for new version, first pre-release === |
a575d1
|
153 |
What's New |
19d341
|
154 |
https://docs.pylonsproject.org/projects/pyramid/en/1.X-branch/whatsnew-1.X.html |
9b4eed
|
155 |
=== For all subsequent pre-releases === |
SP |
156 |
Changes |
19d341
|
157 |
https://docs.pylonsproject.org/projects/pyramid/en/1.X-branch/changes.html#version-yyyy-mm-dd |
a575d1
|
158 |
|
SP |
159 |
Issues |
|
160 |
https://github.com/Pylons/pyramid/issues |
|
161 |
``` |
66fcbf
|
162 |
|
CM |
163 |
- Announce to maillist. |
|
164 |
|
a575d1
|
165 |
``` |
169dba
|
166 |
Pyramid 1.X.X has been released. |
5aeb91
|
167 |
|
e42ba5
|
168 |
The full changelog is here: |
MM |
169 |
https://docs.pylonsproject.org/projects/pyramid/en/1.X-branch/changes.html |
5aeb91
|
170 |
|
314636
|
171 |
What's New In Pyramid 1.X: |
19d341
|
172 |
https://docs.pylonsproject.org/projects/pyramid/en/1.X-branch/whatsnew-1.X.html |
5aeb91
|
173 |
|
314636
|
174 |
1.X release documentation (across all alphas and betas, as well as when it gets |
SP |
175 |
to final release): |
19d341
|
176 |
https://docs.pylonsproject.org/projects/pyramid/en/1.X-branch/ |
5aeb91
|
177 |
|
CM |
178 |
You can install it via PyPI: |
|
179 |
|
a575d1
|
180 |
pip install Pyramid==1.X |
5aeb91
|
181 |
|
CM |
182 |
Enjoy, and please report any issues you find to the issue tracker at |
|
183 |
https://github.com/Pylons/pyramid/issues |
|
184 |
|
|
185 |
Thanks! |
|
186 |
|
a575d1
|
187 |
- Pyramid core developers |
SP |
188 |
``` |