aboutsummaryrefslogtreecommitdiff
path: root/HOWTO-RELEASE
blob: d862c8ab60823f6eb14387c509d7e98461b01b51 (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
	Preparing a PROJ.4 Release
	==========================

1) Update the version number in configure.ac (in AC_INIT()).

   1a) Update the version number in PROJ_BUILD_VERSION in CMakeLists.txt
   1b) Update the version number in doc/source/conf.py
   1c) Update version numbers in man pages in man/man1/ and man/man3/

2) Update the version number in proj_api.h (#define PJ_VERSION).

   2a) Update PROJ_VERSION_MAJOR, PROJ_VERSION_MINOR and PROJ_VERSION_PATCH
       in src/proj.h

3) Update the version number, and date in src/pj_release.c.

4) Update the version number in the -version-info definition in
   src/Makefile.am.  It consists of "current:revision:age".

   4a) Increment PROJ_BUILD_VERSION in CMakeLists.txt to follow
       libtool versioning

   - If the library source code has changed at all since the last update,
     then increment revision (c:r:a becomes c:r+1:a).

   - If any interfaces have been added, removed, or changed since the last
     update, increment current, and set revision to 0.

   - If any interfaces have been added since the last public release, then
     increment age.

   - If any interfaces have been removed since the last public release, then
     set age to 0.

4.5) Run "autogen.sh" (hopefully on the same machine it was last run on)

5) Add a note to the ChangeLog that a new release is being issued, and what
   the release number is.

6) Update NEWS file with summary of release changes.

7) Update the proj.spec file for the new version:
    - PACKAGE_VERSION
    - Source0
    - %setup line
    - rm -rf line

8) If this is a major release, prepare a branch.

   git checkout -b 5.0

9) Tag the release

   git tag 5.0.0

10) Do a "make dist-all" in the proj root directory.  After some grinding
   this should result in files like proj-4.4.3.tar.gz and proj-4.4.3.zip
   being created.  These are full source distributions.

11) Put these in the proj ftp area on /osgeo/download/proj on
   download.osgeo.org.  This can be done via scp using a command like the
   following.

  scp proj-4.4.3.{tar.gz,zip} warmerdam@download.osgeo.org:/osgeo/download/proj

12) Announce the new release on the PROJ.4 and MetaCRS mailing lists.

13) Issue a new release report on GitHub:

   https://github.com/OSGeo/proj.4/releases/new

NOTES:

 o Information about preparing binary releases, and RPMs should be formalized.
 o A "beta" release step should likely be incorporated.