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