From d180cb63d2507cf7701dea5ab1b0850378a999b9 Mon Sep 17 00:00:00 2001 From: Steve Ebersole Date: Thu, 30 Apr 2020 07:11:00 -0500 Subject: [PATCH] Added release-process.adoc --- release/release-process.adoc | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 release/release-process.adoc diff --git a/release/release-process.adoc b/release/release-process.adoc new file mode 100644 index 0000000000..eb3df8da61 --- /dev/null +++ b/release/release-process.adoc @@ -0,0 +1,36 @@ += Release Process + +== Resources + +First, a list of resources you will need access to in order to perform a release: + +* JBoss doc server - SSH key. See List of resources a dev team member needs access to +* SourceForge - SSH key. There is a great wiki on SourceForge covering setting up your SSH key ( https://sourceforge.net/p/forge/documentation/SSH/ ). You must also be added to the admin group of the Hibernate SourceForge project. +* Bintray - Uses an "api key". Both the username (PERSONAL_BINTRAY_USER) and the api key (PERSONAL_BINTRAY_API_KEY) are needed - add them to ~/.gradle/gradle.properties. To find your api key, go to Bintray.com > Edit Profile > API Key. +* Post permissions for both hibernate-dev and hibernate-announce mailing lists. Again, see List of resources a dev team member needs access to +* Post permissions for both G+ and Twitter + +NOTE: Realistically, release builds can only be run on *Nix systems. We rely on system commands for parts of the release tasks in the build script. Specifically we use `rsync` and `ln` (for symlink creation). + +== Steps + +Many release steps have been automated, but some still need to be done manually: + +1. Mark version released in Jira +2. Bulk close all the version's Jira tickets +3. Get changelog from Jira and add to `../changelog.txt` +4. Change version (`ext.hibernateTargetVersion`) in `gradle/base-information.gradle` to the release version +5. Commit - do not push, because pushing will cause CI to upload another staging repository +6. Do the release - from the root-dir, `./gradlew release`. This relies on Gradle's UP-TO-DATE checks, assuming you have verified the build already. `./gradlew cleanAndRelease` can be used instead to trigger a full clean+build for the release +7. Verify / trigger the sync to Central from BinTray happened. This never seems to happen automatically so plan on triggering the sync manually. +8. Create the release tag +9. Change version in `gradle/base-information.gradle` to the next development version +10. Commit +11. Push (both the branch and tag) upstream +12. Update the https://github.com/hibernate/hibernate.org[website] ("production" branch") +.. If this is the first release in a new family/series, some additional steps are required: +... Create a directory `_data/projects/orm/releases/${family_name}` and create a file named `series.yml`. E.g. for 4.3.0.Final you'd be adding _data/projects/orm/releases/4.3/series.yml +... Create a directory `orm/releases/${family_name}` and create a file named `index.adoc`. E.g. for 4.3.0.Final you'd be adding orm/releases/4.3/index.adoc +... Create a directory `orm/documentation/${family_name}` and create a file named `index.adoc`. E.g. for 4.3.0.Final you'd be adding orm/documentation/4.3/index.adoc +... If this new series is to support a new JPA release, also be sure to update `orm/releases/index.adoc` +.. Create a release-specific yml file in `_data/projects/orm/releases/${family_name}`. E.g. for 4.3.0.Final you'd add _data/projects/orm/releases/4.3/4.3.0.Final.yml \ No newline at end of file