Skip to content

Commit

Permalink
Prepping for GEOS 3.9.5 release
Browse files Browse the repository at this point in the history
  • Loading branch information
robe2 committed Nov 12, 2023
1 parent a3e58f1 commit d5cc75b
Show file tree
Hide file tree
Showing 5 changed files with 125 additions and 22 deletions.
77 changes: 77 additions & 0 deletions .github/workflows/release.yml
@@ -0,0 +1,77 @@
#
# GitHub Actions for GEOS Web Pages
# Paul Ramsey <pramsey@cleverelephant.ca>, Regina Obe <lr@pcorp.us>
#

#
# Only run on tag
# Only release if distcheck succeeds
# Only release of the tag name is identical to the full version
# Use the first block of NEWS entries as release notes
#

name: 'Release'

on:
push:
tags:
- '*.*.*'

jobs:
release:
name: 'Release on Tag'
runs-on: ubuntu-latest

# Only run docbuild on central repo
if: github.repository == 'libgeos/geos'
steps:

- name: 'Install'
run: |
pwd
uname -a
sudo -E apt-get -yq --no-install-suggests --no-install-recommends install make doxygen
- name: 'Check Out'
uses: actions/checkout@v3

- name: Get tag
id: tag
uses: dawidd6/action-get-tag@v1

- name: 'Read Version'
id: version
run: |
pwd
source Version.txt
GEOS_FULL_VERSION=${GEOS_VERSION_MAJOR}.${GEOS_VERSION_MINOR}.${GEOS_VERSION_PATCH}${GEOS_PATCH_WORD}
echo GEOS_FULL_VERSION $GEOS_FULL_VERSION
echo "::set-output name=geosversion::${GEOS_FULL_VERSION}"
- name: 'Create Release Notes'
id: notes
run: |
pwd
perl tools/ci/releasenotes.pl NEWS > release.md
echo "::set-output name=geosnotes::./release.md"
- name: 'Bundle & Check Package'
id: bundle
run: |
pwd
set -e
mkdir _build && cd _build
cmake -DBUILD_DOCUMENTATION=YES ..
cmake --version
cmake --build . --target distcheck
- name: Create Release
if: ${{ steps.tag.outputs.tag == steps.version.outputs.geosversion }}
id: create_release
uses: softprops/action-gh-release@v1
with:
body_path: ${{ steps.notes.outputs.geosnotes }}
name: Release ${{ steps.version.outputs.geosversion }}
prerelease: false
files: |
./_build/geos*.tar.bz2
53 changes: 34 additions & 19 deletions HOWTO_RELEASE
@@ -1,45 +1,60 @@
1. Verify that the versions currently set in Version.txt
make sense for this release.
make sense for this release. See file for instructions.

- GEOS_VERSION_PATCH
- GEOS_VERSION_MINOR
- GEOS_VERSION_MAJOR
- GEOS_PATCH_WORD

- CAPI_INTERFACE_CURRENT
- CAPI_INTERFACE_REVISION
- CAPI_INTERFACE_AGE

2. Run 'make distcheck', fix any problem with it.
2. Prepare the build directory.

3. Update the NEWS file (extract most important things from the
repository log). Make sure to update the release date.
$ mkdir _build && cd _build && cmake -DBUILD_DOCUMENTATION=YES ..

4. Commit the changes in the NEWS file.
3. Run the build, distcheck, docs targets, fix any problems with them.

5. Run 'make dist-bzip2'.
$ cmake --build .
$ cmake --build . --target docs
$ ctest --output-on-failure .
$ cmake --build . --target distcheck

$ ./autogen.sh && ./configure && make dist-bzip2
4. Update the NEWS file (extract most important things from the repository log).
Make sure to update the release date.

6. Verify that you can un-pack and build the tarball.
5. Commit the changes in the NEWS file.
Push changes with: git push origin,
and confirm all bots are green before moving forward

- autotools: ./configure && make check
- cmake: mkdir build && cd build && cmake .. && make && make check

7. Copy the tarball to upload.osgeo.org:/osgeo/download/geos

8. Tag the release:
6. Tag the release:

$ git tag MAJOR.MINOR.PATCH
$ git push origin MAJOR.MINOR.PATCH

9. Increment all the version numbers for the next release (described in 1 above).
7. At this point the github/release.yml action should run,
wait for it to finish and then verify you can build with it.

$ VERSION=MAJOR.MINOR.PATCH
$ wget https://github.com/libgeos/geos/releases/download/$VERSION/geos-$VERSION.tar.bz2
$ tar xvfz geos-$VERSION.tar.bz2
$ cd geos-$VERSION
$ mkdir _build && cd _build && cmake ..
$ cmake --build .
$ ctest --output-on-failure .

10. Update wiki page https://trac.osgeo.org/geos/ at Download section
8. Copy the tar.bz2 tarball to upload.osgeo.org:/osgeo/download/geos

9. Create and push a release branch if this was a PATCH=0 release,
update the versions for next release in Version.txt (both in
main and release branch).

10. Update download page in main branch: web/content/usage/download.md

- Add latest release
- Remove previous patch level release (if any)

11. Close current trac milestone and add new one for next release

12. Announce on geos-devel
11. Close current GitHub milestone and add a new one for next release.

12. Announce on geos-devel
2 changes: 1 addition & 1 deletion NEWS
@@ -1,5 +1,5 @@
Changes in 3.9.5
2023-XX-XX
2023-11-xx

- Bug fixes / improvements:
- GEOSUnaryUnion: Fix crash on collection containing empty point (GH-830, Dan Baston)
Expand Down
4 changes: 2 additions & 2 deletions Version.txt
Expand Up @@ -2,7 +2,7 @@
# GEOS Versions
GEOS_VERSION_MAJOR=3
GEOS_VERSION_MINOR=9
GEOS_VERSION_PATCH=4
GEOS_VERSION_PATCH=5

# OPTIONS: "", "dev", "rc1" etc.
GEOS_PATCH_WORD=
Expand All @@ -16,7 +16,7 @@ GEOS_PATCH_WORD=
# ( THIS MUST BE CAREFULLY AVOIDED )
#
CAPI_INTERFACE_CURRENT=15
CAPI_INTERFACE_REVISION=4
CAPI_INTERFACE_REVISION=5
CAPI_INTERFACE_AGE=14

# JTS Port
Expand Down
11 changes: 11 additions & 0 deletions tools/ci/releasenotes.pl
@@ -0,0 +1,11 @@
my $first = 0;
while(<>) {
if (/^##/ && !$first) {
$first = 1;
next;
}
if (/^##/ && $first) {
exit;
}
print;
}

0 comments on commit d5cc75b

Please sign in to comment.