summaryrefslogtreecommitdiff
path: root/RELEASING.txt
blob: 63f9220543339167648bad028c312e87aa34c011 (plain)
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
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.0 to 1.1a1, or 0.9 to 1.0.

  - A *minor* or *bug fix* release is where the number after the second dot
    increases. Example: 1.0 to 1.0.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:

  $ 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.

- Ensure all features of the release are documented (audit CHANGES.txt or
  communicate with contributors).

- Change CHANGES.txt heading to reflect the new version number.

- Minor releases should include a link under "Bug Fix Releases" to the minor
  feature changes in CHANGES.txt.

- Update README.rst to use correct versions of badges, URLs, and ALT option
  according to the new release branch name.

- Change setup.py version to the release version number.

- Make sure PyPI long description renders (requires ``readme_renderer``
  installed into your Python)::

  $ python setup.py check -r -s -m

- Create a release tag.

- Make sure your Python has ``setuptools-git``, ``twine``, and ``wheel``
  installed and release to PyPI::

  $ python setup.py sdist bdist_wheel
  $ twine upload dist/waitress-X.X-*


Prepare master for further development (major releases only)
------------------------------------------------------------

- Checkout master.

- In CHANGES.txt, preserve headings but clear out content. Add heading
  "unreleased" for the version number.

- From the release branch, forward port the changes in CHANGES.txt to
  HISTORY.txt.

- Change setup.py version to the next version number.


Marketing and communications
----------------------------

- Check `https://wiki.python.org/moin/WebServers
  <https://wiki.python.org/moin/WebServers>`_.

- Announce to Twitter.

```
waitress 1.x released.

PyPI
https://pypi.org/project/waitress/1.x/

=== One time only for new version, first pre-release ===
What's New
https://docs.pylonsproject.org/projects/waitress/en/latest/#id2
=== For all subsequent pre-releases ===
Changes
https://docs.pylonsproject.org/projects/waitress/en/latest/#change-history

Documentation:
https://docs.pylonsproject.org/projects/waitress/en/latest/

Issues
https://github.com/Pylons/waitress/issues
```

- Announce to maillist.

```
waitress 1.X.X has been released.

The full changelog is here:
https://docs.pylonsproject.org/projects/waitress/en/latest/#change-history

What's New In waitress 1.X:
https://docs.pylonsproject.org/projects/waitress/en/latest/#id2

Documentation:
https://docs.pylonsproject.org/projects/waitress/en/latest/

You can install it via PyPI:

  pip install waitress==1.X

Enjoy, and please report any issues you find to the issue tracker at
https://github.com/Pylons/waitress/issues

Thanks!

- waitress core developers
```