12
Release Procedure
Kevin Wooten edited this page 2021-05-25 13:24:09 -07:00
The release procedure is now easy and uses Gradle tasks for each step. This ensures each release process is consistent from release to release and removes as much of the user error as possible.
- Change project
version
by removing SNAPSHOT & update the release notes- Edit
build.gradle.kts
- Update related release notes in
documentation
- commit locally with relevant version message
- Edit
- Generate clean tested release build
./gradlew -Prelease=true clean build uberJar
- CHECK SIZE OF PRODUCTS
- Uber jars should be larger than regular jars.
- Jars should be of comparable sizes to previous releases.
- CHECK WRITTEN DOCS
- Folders must exist at
documentation/build/docs/html5
: -
user-guide
-
release-notes
- Check Both doc pages refer to the version being built.
- Folders must exist at
- Publish signed artifacts to Maven Central Staging
./gradlew -Prelease=true publish
- Verify artifacts & release to Maven Central
- Download
pgjdbc-ng-all-<ver>.jar
from staging repository - Run simple verifier against a running server:
-
verify/run.sh <location to downloaded jar> <connection string>
-
-
- If not provided, the connection string defaults to
jdbc:pgsql://test:test@localhost:5432/test
- If not provided, the connection string defaults to
-
-
- It should print
Success: PostgreSQL (<server version>)
- It should print
- Download
- Generate GitHub release draft
./gradlew -Prelease=true githubRelease
- NOTE: This downloads the artifacts from Maven Central to ensure exact artifacts are used. Ensure the Maven release process is finished before executing the Gradle task (usually only takes a couple minutes).
- Verify artifacts in GitHub are correct.
- Publish documentation to Github Pages
./gradlew -Prelease=true documentation:gitPublishPush
- Increment project
version
to next SNAPSHOT- Edit
build.gradle.kts
- Create
release-notes-<ver>.adoc
indocumentation
- commit locally with relevant version message
- Edit
- Push versioning commits to origin
git push
- Finalize GitHub release
- From "recent commits" ensure the release commit is selected
🎉Done🎉