Skip to the content.

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.

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:

  1. Archives the previous latest release under a versioned tag (e.g. v2.2.2-pre) so old jars remain downloadable.
  2. Creates a temporary build tag (e.g. v3.0.0-pre) on main → triggers release_workflow.yml.
  3. Waits until Actions attaches geoweaver.jar (and other installers).
  4. Retags that release to latest so the stable URL above always points at the new jar.
  5. Verifies HTTP access to the stable URL.

Dry run:

./scripts/publish-latest-release.sh 3.0.0 --dry-run

Manual process (same outcome)

  1. Update version in pom.xml and src/main/resources/static/js/gw.js (e.g. 3.0.0). Commit and push to main.

  2. Archive the current latest release
    Edit the release currently tagged latest and change its tag to a historical name such as v2.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
    
  3. Publish a temporary release tagged e.g. v3.0.0-pre targeting main.
    Wait for Build and Publish Geoweaver App to finish and attach geoweaver.jar.

  4. Promote to stable URL
    Edit that release and set the tag to latest (create tag latest if prompted).
    Title can remain 3.0.0.

  5. Confirm:
    curl -sI -L https://github.com/ESIPFed/Geoweaver/releases/download/latest/geoweaver.jar | head
    

Notes