| | |
| | | Releasing Pyramid |
| | | ================= |
| | | |
| | | - Do any necessary branch merges (e.g. master to branch, branch to master). |
| | | - 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., master to branch, branch to master). |
| | | |
| | | - On release branch: |
| | | |
| | |
| | | |
| | | - Run tests on Windows if feasible. |
| | | |
| | | - Make sure all scaffold tests pass (Py 2.6, 2.7, 3.2, 3.3, 3.4, 3.5, pypy, and |
| | | pypy3 on UNIX; this doesn't work on Windows): |
| | | - Make sure all scaffold tests pass (CPython 2.7, 3.4, 3.5, 3.6, and 3.7, and |
| | | PyPy on UNIX; this doesn't work on Windows): |
| | | |
| | | $ ./scaffoldtests.sh |
| | | $ tox -e{py27,py34,py35,py36,py37,pypy}-scaffolds |
| | | |
| | | - Ensure all features of the release are documented (audit CHANGES.txt or |
| | | - For each ``pyramid-cookiecutter-*``, make a new branch off "master" 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). |
| | | |
| | | - Copy relevant changes (delta bug fixes) from CHANGES.txt to |
| | | - 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.txt . |
| | | changes in CHANGES.rst. |
| | | |
| | | - Update README.rst to use correct versions of badges and URLs according to |
| | | each branch and context, i.e., RTD "latest" == GitHub/Travis "1.x-branch". |
| | | - 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. |
| | |
| | | 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 new version number. |
| | | - Change setup.py version to the release version number. |
| | | |
| | | - Change CHANGES.txt heading to reflect the new version number. |
| | | - Make sure PyPI long description renders:: |
| | | |
| | | - Make sure PyPI long description renders (requires ``collective.dist`` |
| | | installed into your Python):: |
| | | |
| | | $ python setup.py check -r |
| | | $ tox -e lint |
| | | |
| | | - Create a release tag. |
| | | |
| | | - Make sure your Python has ``setuptools-git``, ``twine`` and ``wheel`` |
| | | installed and release to PyPI:: |
| | | $ git tag X.X |
| | | |
| | | $ python setup.py sdist bdist_wheel |
| | | - Build the sdist and wheel. |
| | | |
| | | $ tox -e build |
| | | |
| | | - Upload the artifacts to PyPI: |
| | | |
| | | $ twine upload dist/pyramid-X.X-* |
| | | |
| | | - Edit Pylons/pylonshq/templates/home/home.mako. |
| | | - Configure RTD to publish the new release version of the docs. |
| | | |
| | | - Edit Pylons/pylonshq/templates/home/inside.rst for major releases only. |
| | | Prepare master for further development (major releases only) |
| | | ------------------------------------------------------------ |
| | | |
| | | - Edit Pylons/trypyramid.com/src/templates/resources.html for major releases |
| | | only. |
| | | - Checkout master. |
| | | |
| | | - Edit Pylons/pylonsrtd/pylonsrtd/docs/pyramid.rst for major releases only. |
| | | - 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 "master" instead of the major release version. |
| | | |
| | | - In the docs, update the ``cookiecutter`` command with ``master``, |
| | | for example, ``cookiecutter gh:Pylons/pyramid-cookiecutter-starter --checkout |
| | | master``. 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/src/templates/resources.html for major releases, |
| | | pre-releases, and once pre-releases are final. |
| | | |
| | | - Edit `http://wiki.python.org/moin/WebFrameworks |
| | | <http://wiki.python.org/moin/WebFrameworks>`_. |
| | | |
| | | - Publish new version of docs. |
| | | - Edit `https://en.wikipedia.org/wiki/Pylons_project <https://en.wikipedia.org/wiki/Pylons_project>`_. |
| | | |
| | | - Announce to maillist. |
| | | - Edit `https://en.wikipedia.org/wiki/Comparison_of_web_frameworks <https://en.wikipedia.org/wiki/Comparison_of_web_frameworks>`_. |
| | | |
| | | - Announce to Twitter. |
| | | |
| | | Announcement template |
| | | ---------------------- |
| | | ``` |
| | | Pyramid 1.x released. |
| | | |
| | | PyPI |
| | | https://pypi.org/project/pyramid/1.x/ |
| | | |
| | | === One time only for new version, first pre-release === |
| | | What's New |
| | | https://docs.pylonsproject.org/projects/pyramid/en/1.X-branch/whatsnew-1.X.html |
| | | === For all subsequent pre-releases === |
| | | Changes |
| | | https://docs.pylonsproject.org/projects/pyramid/en/1.X-branch/changes.html#version-yyyy-mm-dd |
| | | |
| | | Issues |
| | | https://github.com/Pylons/pyramid/issues |
| | | ``` |
| | | |
| | | - Announce to maillist. |
| | | |
| | | ``` |
| | | Pyramid 1.X.X has been released. |
| | | |
| | | Here are the changes: |
| | | The full changelog is here: |
| | | https://docs.pylonsproject.org/projects/pyramid/en/1.X-branch/changes.html |
| | | |
| | | <<changes>> |
| | | What's New In Pyramid 1.X: |
| | | https://docs.pylonsproject.org/projects/pyramid/en/1.X-branch/whatsnew-1.X.html |
| | | |
| | | A "What's New In Pyramid 1.X" document exists at |
| | | http://docs.pylonsproject.org/projects/pyramid/1.X/whatsnew-1.X.html . |
| | | |
| | | You will be able to see the 1.X release documentation (across all |
| | | alphas and betas, as well as when it eventually gets to final release) |
| | | at http://docs.pylonsproject.org/projects/pyramid/1.X/ . |
| | | 1.X release documentation (across all alphas and betas, as well as when it gets |
| | | to final release): |
| | | https://docs.pylonsproject.org/projects/pyramid/en/1.X-branch/ |
| | | |
| | | You can install it via PyPI: |
| | | |
| | | easy_install Pyramid==1.X |
| | | pip install Pyramid==1.X |
| | | |
| | | Enjoy, and please report any issues you find to the issue tracker at |
| | | https://github.com/Pylons/pyramid/issues |
| | | |
| | | Thanks! |
| | | |
| | | - C |
| | | - Pyramid core developers |
| | | ``` |