diff options
Diffstat (limited to 'RELEASING.txt')
| -rw-r--r-- | RELEASING.txt | 179 |
1 files changed, 142 insertions, 37 deletions
diff --git a/RELEASING.txt b/RELEASING.txt index 553d2dcf2..94726f9f3 100644 --- a/RELEASING.txt +++ b/RELEASING.txt @@ -1,7 +1,25 @@ 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: @@ -11,76 +29,163 @@ Releasing Pyramid $ tox -r - Make sure statement coverage is at 100%:: + Make sure statement coverage is at 100% (the test run will fail if not). + +- Run tests on Windows if feasible. -- Run Windows tests for Python 2.6, 2.7, 3.2, and 3.3 if feasible. +- 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): -- Make sure all scaffold tests pass (Py 2.6, 2.7, 3.2, 3.3 and pypy on UNIX; - this doesn't work on Windows): + $ tox -e{py27,py34,py35,py36,py37,pypy}-scaffolds - $ python pyramid/scaffolds/tests.py +- For each ``pyramid-cookiecutter-*``, make a new branch off "master" with the + same name to align with the new Pyramid release branch name. -- Ensure all features of the release are documented (audit CHANGES.txt or +- 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 - docs/whatsnew-X.X (if it's a major release). +- 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. -- Make sure docs render OK:: +- Update README.rst to use correct versions of badges, URLs, and ALT option + according to the new release branch name. - $ cd docs - $ make clean html +- Update whatsnew-X.X.rst in docs to point at change log entries for individual + releases if applicable. - There should be no meaningful errors or warnings. +- For major version releases, in contributing.md, update branch descriptions. -- Change setup.py version to the new version number. +- For major version releases, in docs/conf.py, update values under + html_theme_options for in_progress and outdated across master, releasing + branch, and previously released branch. Also in the previously released + branch only, uncomment the sections to enable pylons_sphinx_latesturl. -- Change CHANGES.txt heading to reflect the new version number. +- Change setup.py version to the release version number. -- Make sure PyPI long description renders (requires ``collective.dist`` - installed into your Python):: +- Make sure PyPI long description renders:: - $ python setup.py check -r + $ tox -e lint - Create a release tag. -- Make sure your system Python has ``setuptools-git`` installed and release to - PyPI:: + $ git tag X.X - $ python setup.py sdist register upload +- Build the sdist and wheel. -- Edit `http://wiki.python.org/moin/WebFrameworks - <http://wiki.python.org/moin/WebFrameworks>`_. + $ tox -e build -- Publish new version of docs. +- Upload the artifacts to PyPI: -- Announce to maillist. + $ twine upload dist/pyramid-X.X-* + +- Configure RTD to publish the new release version of the docs. + +Prepare master for further development (major releases only) +------------------------------------------------------------ + +- Checkout master. + +- 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/documentation.ejs 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. -Announcement template ----------------------- +``` +Pyramid 1.x released. + +PyPI +https://pypi.org/project/pyramid/1.x/ -Pyramid 1.1.X has been released. +=== 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. -Here are the changes: +``` +Pyramid 1.X.X has been released. -<<changes>> +The full changelog is here: +https://docs.pylonsproject.org/projects/pyramid/en/1.X-branch/changes.html -A "What's New In Pyramid 1.1" document exists at -http://docs.pylonsproject.org/projects/pyramid/1.1/whatsnew-1.1.html . +What's New In Pyramid 1.X: +https://docs.pylonsproject.org/projects/pyramid/en/1.X-branch/whatsnew-1.X.html -You will be able to see the 1.1 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.1/ . +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.1a4 + 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 +``` |
