-
Notifications
You must be signed in to change notification settings - Fork 9
/
RELEASING.txt
149 lines (90 loc) · 3.72 KB
/
RELEASING.txt
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
Releasing
=========
- 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 via a pull request
---------------------------------------------
- Consider the release number (bugfix-only vs. features, changes in platforms).
- Synch the local repository with the ``master`` branch from ``upstream``,
where ``upstream`` is the repository ``Pylons/peppercorn``, not the
developer's own fork::
$ git checkout master
$ git fetch --all
$ git merge upstream/master
- Tests will run when the PR is submitted. Optionally run tests locally first.
- 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.
- Create a new release branch, incrementing the version number::
$ git checkout -b prep-<#.#.#>-release
- Ensure all features of the release are documented (audit ``CHANGES.rst`` or
communicate with contributors, checking against recent merged pull requests).
- Add date and new release number to ``CHANGES.rst`` heading.
- Normalize changelog if needed (imperative voice, spacing, etc.).
- Update the release number in ``setup.py``.
- Make sure PyPI long description renders (requires ``readme_renderer``
installed into your Python)::
$ python setup.py check -r -s -m
- Use "standard" commit message for the pull request::
$ git commit . -m "Prep #.#.# release."
$ git push upstream prep-#.#.#-release
- Submit the pull request via GitHub.
Make the release
----------------
- Once the pull request passes all checks from continuous integration, and the
pull request is approved, merge it.
- Synch the local repository with the ``master`` branch::
$ git checkout master
$ git fetch --all
$ git merge upstream/master
- Create a release tag with a "standard" commit message::
$ git tag -a #.#.# -m "Tag #.#.# release"
- Push the tag to upstream.
$ git push --tags upstream
- Make sure your Python has ``setuptools-git``, ``twine``, and ``wheel``
installed. Make the release files, and push the release to PyPI::
$ python setup.py sdist bdist_wheel
$ twine upload dist/*
Prepare master for further development after the release
--------------------------------------------------------
- Synch the local repository with the ``master`` branch::
$ git checkout master
$ git fetch --all
$ git merge upstream/master
- In CHANGES.rst, add heading "unreleased" for the version number, and push to
upstream.
$ git commit . -m "back to work"
$ git push upstream
Marketing and communications
----------------------------
- Announce to Twitter.
```
Peppercorn x.x.x released.
PyPI
https://pypi.org/project/peppercorn/x.x.x/
Changes
https://docs.pylonsproject.org/projects/peppercorn/en/latest/changes.html#version-yyyy-mm-dd
Issues
https://github.com/Pylons/peppercorn/issues
```
- Announce to maillist.
```
Peppercorn x.x.x has been released.
The full changelog is here:
https://docs.pylonsproject.org/projects/peppercorn/en/latest/changes.html
x.x.x documentation:
https://docs.pylonsproject.org/projects/peppercorn/en/latest/
You can install it via PyPI:
pip install peppercorn==x.x.x
Enjoy, and please report any issues you find to the issue tracker at
https://github.com/Pylons/peppercorn/issues
Thanks!
- Peppercorn core developers
```