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