Added instructions for doing a release
[datasette-pytables.git] / RELEASING.md
1 # Releasing datasette-pytables
2
3 Author: Javier Sancho, Francesc Alted
4 Contact: jsf@jsancho.org, francesc@blosc.org
5 Date: 2018-06-01
6
7
8 ## Preliminaries
9
10 * Make sure that ``RELEASE_NOTES.md`` and ``ANNOUNCE.md`` are up to
11   date with the latest news in the release.
12
13 * Commit your changes:
14
15 ```
16     $ git commit -a -m"Getting ready for X.Y.Z final"
17 ```
18
19 * Once a year: check that the copyright year in `LICENSE` file.
20
21
22 ## Tagging
23
24 * Create a tag ``X.Y.Z`` from ``master``.  Use the next message:
25
26 ```
27     $ git tag -a X.Y.Z -m "Tagging version X.Y.Z"
28 ```
29
30   Note: For release candidates, just add a rcN suffix to tag ("X.Y.ZrcN").
31
32 * Or, alternatively, make a signed tag (requires gpg correctly configured):
33
34 ```
35     $ git tag -s X.Y.Z -m "Tagging version X.Y.Z"
36 ```
37
38 * Push the tag to the Github repo:
39
40 ```
41     $ git push
42     $ git push --tags
43 ```
44
45
46 ## Testing
47
48 * Go to the root directory and run:
49
50 ```
51     $ pytest
52 ```
53
54
55 ## Packaging
56
57 * Make sure that you are in a clean directory.  The best way is to
58   re-clone and re-build:
59
60 ```
61   $ cd /tmp
62   $ git clone https://github.com/PyTables/datasette-pytables
63   $ cd datasette-pytables
64   $ python setup.py build
65 ```
66
67 * Make the tarball with the command:
68
69 ```
70   $ python setup.py sdist
71 ```
72
73 Do a quick check that the tarball is sane.
74
75
76 ## Uploading
77
78 * Upload it also in the PyPi repository:
79
80 ```
81     $ python setup.py sdist upload
82 ```
83
84
85 ## Announcing
86
87 * Send an announcement to the python-announce, python-users and pydata
88   lists.  Use the ``ANNOUNCE.md`` file as skeleton (or possibly as
89   the definitive version).
90
91 * Tweet about the new release and rejoice!
92
93
94 ## Post-release actions
95
96 * Create new headers for adding new features in ``RELEASE_NOTES.rst``
97   and add this place-holder instead:
98
99   #XXX version-specific blurb XXX#
100
101 * Commit your changes with:
102
103 ```
104   $ git commit -a -m"Post X.Y.Z release actions done"
105 ```
106
107
108 That's all folks!