diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index ac7b3859c315..4985218c6743 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -108,3 +108,11 @@ It is important that this topic branch of your fork:
# Notes
(1) Gradle `eclipse` plugin is no longer supported, so the recommended way to import the project in your IDE is with the proper IDE tools/plugins. Don't try to run `./gradlew clean eclipse --refresh-dependencies` from the command line as you'll get an error because `eclipse` no longer exists
+
+## Continuous integration
+
+See [MAINTAINERS.md](MAINTAINERS.md#ci) for information about CI.
+
+## Releasing
+
+See [MAINTAINERS.md](MAINTAINERS.md#ci) for information about releasing.
diff --git a/MAINTAINERS.md b/MAINTAINERS.md
index 441eebc4be6d..e65905484e9b 100644
--- a/MAINTAINERS.md
+++ b/MAINTAINERS.md
@@ -8,7 +8,7 @@ i.e. anybody with direct push access to the git repository.
See [CONTRIBUTING.md](CONTRIBUTING.md).
-## Continuous integration
+## Continuous integration
Continuous integration is split across two platforms:
@@ -46,6 +46,12 @@ See [Releasing](#releasing) for more information.
## Releasing
+### Where is the information
+
+If you're looking for information about how releases are implemented technically, see [release/README.adoc](release/README.adoc).
+
+If you're looking for information about how to release Hibernate ORM, read on.
+
### Automated releases
On select maintenance branches (`6.2`, `6.4`, ...),
@@ -71,12 +77,14 @@ In any case, before the release:
* Check that the [CI jobs](#continuous-integration) for the branch you want to release are green.
* Check Jira [Releases](https://hibernate.atlassian.net/projects/HHH?selectedItem=com.atlassian.jira.jira-projects-plugin%3Arelease-page):
* Check that the release you are about to publish exists in Jira.
- * Check there are no outstanding issues assigned to that release.
+ * Remove the fix version for anything rejected, etc.
+ * Move unresolved issues to another version
* Check there are no resolved/closed issues in the corresponding "work-in-progress version"
(e.g. `6.6`, `6.6-next`, ... naming convention may vary);
if there are, you might want to assign them to your release.
+* Pull all upstream changes and perform `./gradlew preVerifyRelease` locally.
-**If it is a new major or minor release**, before the release:
+**If it's the first `Alpha`/`Beta` of a new major or minor release**, before the release:
* Reset the migration guide to include only information relevant to the new major or minor.
@@ -93,7 +101,7 @@ Once you trigger the CI job, it automatically pushes artifacts to the
and the documentation to [docs.jboss.org](https://docs.jboss.org/hibernate/orm/).
* Do *not* mark the Jira Release as "released" or close issues,
- the release job does it for you.
+ the release job triggers Jira automation that does it for you.
* Do *not* update the repository (in particular changelog.txt and README.md),
the release job does it for you.
* Trigger the release on CI:
@@ -118,10 +126,15 @@ After the job succeeds:
to enable/disable the automatic release of the staging repository update the [jreleaser.yml](jreleaser.yml) file,
in particular change the `deploy.maven.nexus2.maven-central.releaseRepository` to `true`/`false`.
-* Update [hibernate.org](https://github.com/hibernate/hibernate.org) if necessary:
- * If it is a new major or minor release, add a `_data/projects/orm/releases/series.yml` file
- and a `orm/releases//index.adoc` file.
- * Adjust the release file in `_data/projects/orm/releases`: use a meaningful summary and set `announcement_url` to the blog post, if any.
+* Update [hibernate.org](https://github.com/hibernate/hibernate.org) as necessary:
+ * If it is a new major or minor release (new "series"):
+ * Add a `_data/projects/orm/releases//series.yml` file,
+ a `orm/releases//index.adoc` file, and a `orm/documentation//index.adoc` file.
+ Generally these files can be copied from previous series.
+ * If this new series is to support a new JPA release, also be sure to update `orm/releases/index.adoc`
+ * Adjust the release file in `_data/projects/orm/releases` that was created automatically by the release job:
+ use a meaningful summary, if relevant, and set `announcement_url` to the blog post, if any.
+ * None of the above is necessary for maintenance (micro) releases.
* Depending on which series you want to have displayed,
make sure to adjust the `status`/`displayed` attributes of the `series.yml` file of the old series.
* Push to the production branch.
@@ -133,8 +146,13 @@ After the job succeeds:
#### Announcing the release
+If it is an `Alpha`, `Beta`, `CR` or first `Final` (`x.y.0.Final`) release, announce it:
+
+* Blog about release on [in.relation.to](https://github.com/hibernate/in.relation.to).
+ Make sure to use the tags "Hibernate ORM" and "Releases" for the blog entry.
* Send an email to `hibernate-announce@lists.jboss.org` and CC `hibernate-dev@lists.jboss.org`.
* Tweet about the release via the `@Hibernate` account.
+* Announce it anywhere else you wish (BlueSky, etc).
#### Updating depending projects
diff --git a/README.adoc b/README.adoc
index 2494b776536a..880ddd162494 100644
--- a/README.adoc
+++ b/README.adoc
@@ -13,11 +13,7 @@ See https://hibernate.org/orm/[Hibernate.org] for more information.
== Continuous Integration
-Hibernate uses both https://jenkins-ci.org[Jenkins] and https://github.com/features/actions[GitHub Actions]
-for its CI needs. See
-
-* https://ci.hibernate.org/view/ORM/[Jenkins Jobs]
-* https://github.com/hibernate/hibernate-orm/actions[GitHub Actions Jobs]
+See link:MAINTAINERS.md#ci[MAINTAINERS.md] for information about CI.
== Building from sources
diff --git a/release/README.adoc b/release/README.adoc
index e2d08c117cb1..e8a1c73c876f 100644
--- a/release/README.adoc
+++ b/release/README.adoc
@@ -1,47 +1,20 @@
= ORM Releases
:toc:
-This module performs the tasks needed as part of creating a release for Hibernate ORM.
-Releases are triggered as a link:../ci/release/Jenkinsfile[Jenkins pipeline].
-
-Hibernate ORM also publishes SNAPSHOT releases using an automated link:../ci/snapshot-publish.Jenkinsfile[Jenkins pipeline],
-which is triggered on a merge to the main branch. This job requires no user interactions.
-
-== Preparation
-
-There are a few steps that need to be performed prior to starting the release job:
-
-. Pull all upstream changes and perform `./gradlew preVerifyRelease`.
-. Verify issues in the Jira version
-.. Remove fix version for anything rejected, etc.
-.. Move unresolved issues to another version
-. Mark version released in Jira
-. Bulk close all issues in the Jira version
-
-=== New Series
-
-If this is a new series, some additional steps are required to prepare the website:
+== Where is the information
-. Create the series descriptor
-.. create the directory `_data/projects/orm/releases/${family_name}`
-.. create the file `series.yml`
-.. add the appropriate content (_generally this can be copied from previous series_)
-. Create the series listing
-.. create the directory `orm/releases/${family_name}`
-.. create the file `index.adoc`
-.. add listing of all new features in the series
-. Create the documentation listing
-.. create the directory `orm/documentation/${family_name}`
-.. create the file `index.adoc`
-.. add links to all documentation (_generally this can be copied from previous series_)
-. If this new series is to support a new JPA release, also be sure to update `orm/releases/index.adoc`
+If you're looking for information about how to release Hibernate ORM, see link:/MAINTAINERS.md[MAINTAINERS.md]
+If you're looking for information about how releases are implemented technically, read on.
-== Perform the Release
+== How it works
-Start the appropriate Jenkins https://ci.hibernate.org/view/Release/job/hibernate-orm-release[job].
+Releases are triggered as a link:../ci/release/Jenkinsfile[Jenkins pipeline].
+Hibernate ORM also publishes SNAPSHOT releases using an automated link:../ci/snapshot-publish.Jenkinsfile[Jenkins pipeline],
+which is triggered on a merge to the main branch. This job requires no user interactions.
-NOTE: When a release is started, the job coordinates with the unified Hibernate https://github.com/hibernate/hibernate-release-scripts[release scripts] in a number of stages and steps,
+When a release job is started,
+the job coordinates with the unified Hibernate https://github.com/hibernate/hibernate-release-scripts[release scripts] in a number of stages and steps,
calling tasks on this module's link:./release.gradle[Gradle script] and leveraging link:../jreleaser.yml[JReleaser configuration].
NOTE: Snapshot releases are not relying on JReleaser but on built-in Gradle publish plugin. See the link:../ci/snapshot-publish.Jenkinsfile[Jenkinsfile].
@@ -76,17 +49,3 @@ See https://plugins.gradle.org/plugin/org.hibernate.orm
All documentation for the release is generated, assembled and then published to the https://docs.jboss.org/hibernate/orm/[documentation server].
-
-== Announce
-
-If the release is a maintenance release, there is nothing more to do.
-
-However, for Alpha, Beta, CR and first Final releases some announcements are in order:
-
-. Write a release announcement blog post.
-. Announce the release, with link to the blob post:
-.. on the hibernate-dev and hibernate-announce mailing lists
-.. on the https://discourse.hibernate.org/[forums]
-.. on Twitter
-.. anywhere else you wish (BlueSky, etc).
-