How to Create a New Release in Geoweaver
Geoweaver keeps a stable jar URL for installers and PyGeoweaver:
https://github.com/ESIPFed/Geoweaver/releases/download/latest/geoweaver.jar
That URL works because the published release is tagged latest (a git tag name), not merely marked with GitHub’s “Latest” badge.
Recommended: one-command publish (after merge to main)
From a clean checkout with gh authenticated:
# After merging your release PR into main — bump version, push, build, promote to latest
./scripts/publish-latest-release.sh 3.0.0 --bump
If a build release already exists (workflow running or finished) and you only need to attach the stable URL:
./scripts/publish-latest-release.sh 3.0.0 --promote-only v3.0.0-pre-YYYYMMDDHHMMSS
Or if pom.xml / gw.js are already set to the release version on main:
git checkout main && git pull
./scripts/publish-latest-release.sh 3.0.0
Do not run without --bump while pom.xml still ends in -SNAPSHOT — the script will refuse, because that would publish a mislabeled jar.
What the script does:
- Archives the previous
latestrelease under a versioned tag (e.g.v2.2.2-pre) so old jars remain downloadable. - Creates a temporary build tag (e.g.
v3.0.0-pre) onmain→ triggersrelease_workflow.yml. - Waits until Actions attaches
geoweaver.jar(and other installers). - Retags that release to
latestso the stable URL above always points at the new jar. - Verifies HTTP access to the stable URL.
Dry run:
./scripts/publish-latest-release.sh 3.0.0 --dry-run
Manual process (same outcome)
-
Update version in
pom.xmlandsrc/main/resources/static/js/gw.js(e.g.3.0.0). Commit and push tomain. - Archive the current
latestrelease
Edit the release currently taggedlatestand change its tag to a historical name such asv2.2.2-pre.
Or delete the remote tag only after re-pointing the release:git push --delete origin latest # only after the old release has another tag -
Publish a temporary release tagged e.g.
v3.0.0-pretargetingmain.
Wait for Build and Publish Geoweaver App to finish and attachgeoweaver.jar. -
Promote to stable URL
Edit that release and set the tag tolatest(create taglatestif prompted).
Title can remain3.0.0. - Confirm:
curl -sI -L https://github.com/ESIPFed/Geoweaver/releases/download/latest/geoweaver.jar | head
Notes
- Geoweaver 2.2+ requires Java 17+. Keep 2.1.x jars under versioned tags for Java 11 users.
- The GitHub UI badge “Latest” is not the same as the git tag named
latest; the download URL requires the taglatest. - Docker tags
geoweaver/geoweaver:latestandgeoweaver/geoweaver:<version>are pushed by the same release workflow.