~osomon/pyexiv2/pyexiv2-0.3

298.1.1 by Olivier Tilloy
Documented release procedure.
1
pyexiv2 release procedure
2
=========================
3
4
.. highlight:: bash
5
6
Release branch
7
##############
8
9
Set the version number to release::
10
11
  export VERSION=0.2.0
12
  export D=pyexiv2-$VERSION
13
14
Branch to release::
15
16
  bzr branch lp:pyexiv2 $D
17
  cd $D
18
19
Bump the version number: change the value of ``version_info`` in
20
``src/pyexiv2/__init__.py``.
21
22
Bump the version number in the Windows installer script: change the value of
23
``PYEXIV2_VERSION`` in ``win32-installer.nsi``.
24
25
Commit the changes::
26
27
  bzr commit -m "Bumped version number to $VERSION."
28
29
Update the ``NEWS`` file with the changes since the last release:
30
31
* dependencies
32
* changes
33
* bugs fixed
34
* contributors
35
36
Commit and push the changes::
37
38
  bzr commit -m "Updated NEWS."
39
  bzr push lp:~osomon/pyexiv2/$D
40
41
Source tarball
42
##############
43
44
Build pyexiv2::
45
46
  scons
47
48
Build the HTML documentation::
49
307 by Olivier Tilloy
Updated release procedure.
50
  scons doc
298.1.2 by Olivier Tilloy
Rename the HTML documentation directory to 'html' before creating the tarball.
51
  mv doc/_build doc/html
298.1.1 by Olivier Tilloy
Documented release procedure.
52
53
Create the tarball and sign it::
54
55
  cd ..
56
  tar cvvjf $D.tar.bz2 $D --exclude-vcs \
57
      --exclude=build --exclude=.doctrees --exclude=.buildinfo \
58
      --exclude=objects.inv --exclude=.sconsign.dblite --exclude=*.pyc
59
  gpg --armor --sign --detach-sig $D.tar.bz2
60
  cd $D
61
62
Windows installer
63
#################
64
65
Cross-compile::
66
67
  ./cross-compile.sh
68
69
Build the installer and sign it::
70
71
  makensis win32-installer.nsi
72
  gpg --armor --sign --detach-sig pyexiv2-0.2-setup.exe
73
74
Publication
75
###########
76
77
* Create a release for the milestone
78
  (e.g. at https://launchpad.net/pyexiv2/+milestone/0.2/+addrelease)
79
* Upload the source tarball and the windows installer
80
  e.g. at https://launchpad.net/pyexiv2/0.2.x/0.2/+adddownloadfile
81
* Change the status of all the bugs marked as "Fix Committed" in the milestone
82
  to "Fix Released"
83
84
Communication
85
#############
86
87
* Write an announcement
88
  `on Launchpad <https://launchpad.net/pyexiv2/+announce>`_
89
* Send a mail to the
90
  `pyexiv2-developers mailing list <pyexiv2-developers@lists.launchpad.net>`_
91
* Send a mail to the current distribution packagers
92
  (Debian, Ubuntu, Fedora, ...)
93
* Write about the release on the
94
  `exiv2 forums <http://dev.exiv2.org/projects/exiv2/boards>`_
95
* Send a mail to the
96
  `Python announce mailing list <python-announce-list@python.org>`_
97
* Blog about the release (optional)
98
99
Web site
100
########
101
102
The branch for the website is at
103
`lp:~osomon/pyexiv2/website <https://code.launchpad.net/~osomon/pyexiv2/website>`_.
104
105
* Update the download page with the new release
106
* Update the online documentation
107
108
Final
109
#####
110
111
Merge back the release branch in the master branch and tag it::
112
113
  cd <local/path/to/master/>
114
  bzr merge lp:~osomon/pyexiv2/$D
115
  bzr commit -m "Merge the $VERSION release."
116
  bzr tag release-$VERSION
117
  bzr push
118