Merge pull request #156 from nicoddemus/release-howto-towncrier
Add towncrier and HOWTORELEASE docs
This commit is contained in:
17
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
17
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
Thanks for submitting a PR, your contribution is really appreciated!
|
||||
|
||||
Here's a quick checklist that should be present in PRs:
|
||||
|
||||
- [ ] Make sure to include reasonable tests for your change if necessary
|
||||
|
||||
- [ ] Add a new news fragment into the changelog folder, following these guidelines:
|
||||
* Name it `$issue_id.$type` for example `588.bug`
|
||||
* If you don't have an issue_id change it to the PR id after creating it
|
||||
* Ensure type is one of `removal`, `feature`, `bugfix`, `vendor`, `doc` or `trivial`
|
||||
* Make sure to use full sentences with correct case and punctuation, for example:
|
||||
|
||||
```
|
||||
Fix issue with non-ascii contents in doctest text files.
|
||||
```
|
||||
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
..
|
||||
You should *NOT* be adding new change log entries to this file, this
|
||||
file is managed by towncrier. You *may* edit previous change logs to
|
||||
fix problems like typo corrections or such.
|
||||
To add a new change log entry, please see
|
||||
https://pip.pypa.io/en/latest/development/#adding-a-news-entry
|
||||
We named the news folder ``changelog``
|
||||
|
||||
.. towncrier release notes start
|
||||
|
||||
|
||||
1.17.0
|
||||
------
|
||||
|
||||
45
HOWTORELEASE.rst
Normal file
45
HOWTORELEASE.rst
Normal file
@@ -0,0 +1,45 @@
|
||||
======================
|
||||
Releasing pytest-xdist
|
||||
======================
|
||||
|
||||
This document describes the steps to make a new ``pytest-xdist`` release.
|
||||
|
||||
Version
|
||||
-------
|
||||
|
||||
``master`` should always be green and a potential release candidate. ``pytest-xdist`` follows
|
||||
semantic versioning, so given that the current version is ``X.Y.Z``, to find the next version number
|
||||
one needs to look at the ``changelog`` folder:
|
||||
|
||||
- If there is any file named ``*.feature``, then we must make a new **minor** release: next
|
||||
release will be ``X.Y+1.0``.
|
||||
|
||||
- Otherwise it is just a **bug fix** release: ``X.Y.Z+1``.
|
||||
|
||||
|
||||
Steps
|
||||
-----
|
||||
|
||||
To publish a new release ``X.Y.Z``, the steps are as follows:
|
||||
|
||||
#. Create a new branch named ``release-X.Y.Z``.
|
||||
|
||||
#. Install ``pytest-xdist`` and dev requirements in a virtualenv::
|
||||
|
||||
$ pip install -e . -r dev-requirements.txt
|
||||
|
||||
#. Update ``CHANGELOG.rst`` file by running::
|
||||
|
||||
$ towncrier
|
||||
|
||||
It might ask for confirmation to remove news fragments; answer yes.
|
||||
|
||||
#. Commit and push the branch for review.
|
||||
|
||||
#. Once PR is **green** and **approved**, create and push a tag::
|
||||
|
||||
$ export VERSION=X.Y.Z
|
||||
$ git tag v$VERSION release-$VERSION
|
||||
$ git push git@github.com:pytest-dev/pytest-xdist.git v$VERSION
|
||||
|
||||
That will build the package and publish it on ``PyPI`` automatically.
|
||||
1
changelog/154.doc
Normal file
1
changelog/154.doc
Normal file
@@ -0,0 +1 @@
|
||||
Introduced ``towncrier`` for ``CHANGELOG`` management.
|
||||
1
changelog/155.doc
Normal file
1
changelog/155.doc
Normal file
@@ -0,0 +1 @@
|
||||
Added ``HOWTORELEASE`` documentation.
|
||||
39
changelog/_template.rst
Normal file
39
changelog/_template.rst
Normal file
@@ -0,0 +1,39 @@
|
||||
{% for section in sections %}
|
||||
{% set underline = "-" %}
|
||||
{% if section %}
|
||||
{{section}}
|
||||
{{ underline * section|length }}{% set underline = "~" %}
|
||||
|
||||
{% endif %}
|
||||
{% if sections[section] %}
|
||||
{% for category, val in definitions.items() if category in sections[section] and category != 'trivial' %}
|
||||
|
||||
{{ definitions[category]['name'] }}
|
||||
{{ underline * definitions[category]['name']|length }}
|
||||
|
||||
{% if definitions[category]['showcontent'] %}
|
||||
{% for text, values in sections[section][category]|dictsort(by='value') %}
|
||||
- {{ text }}{% if category != 'vendor' %} ({{ values|sort|join(', ') }}){% endif %}
|
||||
|
||||
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
- {{ sections[section][category]['']|sort|join(', ') }}
|
||||
|
||||
|
||||
{% endif %}
|
||||
{% if sections[section][category]|length == 0 %}
|
||||
|
||||
No significant changes.
|
||||
|
||||
|
||||
{% else %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
|
||||
No significant changes.
|
||||
|
||||
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
1
dev-requirements.txt
Normal file
1
dev-requirements.txt
Normal file
@@ -0,0 +1 @@
|
||||
towncrier
|
||||
36
pyproject.toml
Normal file
36
pyproject.toml
Normal file
@@ -0,0 +1,36 @@
|
||||
[tool.towncrier]
|
||||
package = "xdist"
|
||||
filename = "CHANGELOG.rst"
|
||||
directory = "changelog/"
|
||||
title_format = "pytest-xdist {version} ({project_date})"
|
||||
template = "changelog/_template.rst"
|
||||
|
||||
[[tool.towncrier.type]]
|
||||
directory = "removal"
|
||||
name = "Deprecations and Removals"
|
||||
showcontent = true
|
||||
|
||||
[[tool.towncrier.type]]
|
||||
directory = "feature"
|
||||
name = "Features"
|
||||
showcontent = true
|
||||
|
||||
[[tool.towncrier.type]]
|
||||
directory = "bugfix"
|
||||
name = "Bug Fixes"
|
||||
showcontent = true
|
||||
|
||||
[[tool.towncrier.type]]
|
||||
directory = "vendor"
|
||||
name = "Vendored Libraries"
|
||||
showcontent = true
|
||||
|
||||
[[tool.towncrier.type]]
|
||||
directory = "doc"
|
||||
name = "Improved Documentation"
|
||||
showcontent = true
|
||||
|
||||
[[tool.towncrier.type]]
|
||||
directory = "trivial"
|
||||
name = "Trivial Changes"
|
||||
showcontent = false
|
||||
Reference in New Issue
Block a user