forked from postgis/postgis
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHOWTO_RELEASE
160 lines (125 loc) · 6.24 KB
/
HOWTO_RELEASE
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
How to release
~~~~~~~~~~~~~~
Date: 2020-02-23
Versioning Scheme
-----------------
*PostGIS*
PostGIS release version is composed by POSTGIS_MAJOR_VERSION,
POSTGIS_MINOR_VERSION and POSTGIS_MICRO_VERSION components, all
set in Version.config.
By default only [POSTGIS_MICRO_VERSION] increments between releases.
Starting at PostGIS 2.1 in development POSTGIS_MICRO_VERSION should have
a "dev" string at the end
[POSTGIS_MINOR_VERSION] is incremented (and MICRO set to 0) when minor
additions have been introduced (one or two functions can be considered
*micro* additions)
[POSTGIS_MAJOR_VERSION] is incremented (and MICRO and MINOR set to 0) when
a dump/reload of existing spatial databases is *REQUIRED* for things
to work or rather *HIGHLY RECOMMENDED* to get new functionalities.
All POSTGIS_MICRO_VERSION that are in branch or trunk should end in dev.
So for example if you just release 2.1.1, then the 2.1 branch should have
POSTGIS_MICRO_VERSION set to 2dev so that the full version is 2.1.2dev.
*Liblwgeom*
Liblwgeom versioning is composed by by LIBLWGEOM_IFACE_CUR,
LIBLWGEOM_IFACE_AGE and LIBLWGEOM_IFACE_REV; all set and documented
in Version.config.
The liblwgeom versioning represents compatibility of the library
within a PostGIS minor version.
Requirements
------------
In order to build a release, you will need to build PostGIS and the
documentation -- that means having the required software:
* For PostGIS:
- PostgreSQL
- GEOS
- Proj
- SFCGAL
- protobuf-c
- GDAL (for raster)
- json-c (for GeoJSON load support)
* For the docs:
- xsltproc
- DocBook XSL scripts
- ImageMagic
- DbLatex (for PDF)
Release procedure
-----------------
1. Check access.
- Can edit tickets and milestones on http://trac.osgeo.org/postgis/
- Can commit to upstream git https://git.osgeo.org/gitea/postgis/postgis
- Have SSH to download.osgeo.org and can write to /osgeo/download/postgis.
- Have SSH to postgis.net and can write to /etc/nginx/sites-enabled/postgis.net.
- Post to https://git.osgeo.org/gitea/postgis/postgis.net/ and get it added to feed
https://planet.postgresql.org/register/new/
- Can alter https://debbie.postgis.net
2. Check greenlight.
- Ensure all bots are green: https://trac.osgeo.org/postgis
- Check no blockers on https://trac.osgeo.org/postgis/roadmap on version you're releasing.
3. Reconcile done & planned.
- Edit NEWS: set release date and check all notable changes have been reported
(extract from git log and trac tickets for milestone).
- Create milestone for next verison in Trac.
- Push all the open tickets in Trac milestone to future and Fund Me milestones.
4. Update code.
- For first micro of a minor, make sure to pull the latest translations from transifex
TODO: more detail here - there is a job on debbie for 3.1 for examples
https://debbie.postgis.net/view/PostGIS/job/PostGIS_docs_translations_3.1
and she's setup with an api key to pull and push translations.
- Update the README.md to reflect new to be created buildbot badges
(this should only be needed for trunk release)
- Edit README.postgis and set release date and version.
- Add release notes in doc/release_notes.xml
- Update Version.config to drop the "dev" suffix
- Add the "dev" suffixed version in extensions/upgradeable_versions.mk
and ensure all the previous released minor versions are listed in it
- Commit all changes
- If this is a minor or major release (no branch exists):
$ rev=x.x
$ git checkout master; git checkout -b "$rev"; git push -u osgeo $rev
Go to: https://debbie.postgis.net and copy last branch version and make new job
a) Replace PostGIS_* string params with new version
b) Replace repository url with new branch repo url
c) Update the PostGIS_trunk by updating the PostGIS_* string params
Go to: https://trac.osgeo.org/postgis/ edit the matrix to reflect new branch
5. Publish release
- Check that bots are still green on https://trac.osgeo.org/postgis
- Tag branch: (replace x.x and x.x.x with minor and micro version e.g 2.3, 2.3.1)
$ rev=x.x.x
$ git tag -a $rev -m "Tagged release $rev"
$ git push osgeo --tags
- Take tar ball from http://postgis.net/stuff/
(You might need to wait a few minutes to see it.
If impatient check status of job - https://debbie.postgis.net/job/PostGIS_Make_Dist/
If it fails, sh make_dist.sh $rev)
- Documentation should also have been built and should be in http://postgis.net/stuff
(this sometimes takes sometime so wait 15 minutes)
- Test generated tarball (including extension upgrade)
- Copy tarball, pdf, doc-html to https://download.osgeo.org/postgis/ web site.
- PostGIS doc release versioned doc - http://postgis.net/documentation/
- On postgis.net server, change /etc/nginx/sites-enabled/postgis.net (Versionless URL line )
- nginx -t #to confirm you didn't breat the config
- service nginx reload
Verify the documentation is up to date (might need to change the apache config)
- Post on website:
- https://git.osgeo.org/gitea/postgis/postgis.net/src/branch/master/_content/config.yml
Fix latest version pointers.
- https://git.osgeo.org/gitea/postgis/postgis.net/src/master/_content/posts
a) create a new Post for current year making sure the page name starts with mm-dd
b) Update links on https://git.osgeo.org/gitea/postgis/postgis.net/src/master/_content/pages/source.html
c) commit and wait 5 minutes to see changes on website
6. Spread the word
- Announce on e-mail
- [email protected] (send email just to them, not with other ccs, they reject if others in cc)
- [email protected] to be included in Weekly news
- External web sites
- Wikipedia https://en.wikipedia.org/wiki/PostGIS
- Wikidata https://www.wikidata.org/wiki/Q1569955
- Twitter
This should automatically happen as a result of posting to PostGIS website since Planet PostGIS and Planet PostgreSQL both autotweet.
7. Start new development cycle
- Update Trac and make old Milestone as completed
- Push the revision number forward (see Versioning Scheme)
- Remove the "dev" suffixed version from extensions/upgradeable_versions.mk