Skip to content

Commit e424797

Browse files
committed
Centralize release instructions in MAINTAINERS.md
As discussed offline.
1 parent c5ad153 commit e424797

File tree

4 files changed

+44
-63
lines changed

4 files changed

+44
-63
lines changed

CONTRIBUTING.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,3 +108,11 @@ It is important that this topic branch of your fork:
108108

109109
# Notes
110110
<sup>(1)</sup> 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
111+
112+
## <a id="ci"></a> Continuous integration
113+
114+
See [MAINTAINERS.md](MAINTAINERS.md#ci) for information about CI.
115+
116+
## <a id="releasing"></a> Releasing
117+
118+
See [MAINTAINERS.md](MAINTAINERS.md#ci) for information about releasing.

MAINTAINERS.md

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ i.e. anybody with direct push access to the git repository.
88

99
See [CONTRIBUTING.md](CONTRIBUTING.md).
1010

11-
## Continuous integration
11+
## <a id="ci"></a> Continuous integration
1212

1313
Continuous integration is split across two platforms:
1414

@@ -46,6 +46,12 @@ See [Releasing](#releasing) for more information.
4646

4747
## <a id="releasing"></a> Releasing
4848

49+
### Where is the information
50+
51+
If you're looking for information about how releases are implemented technically, see [release/README.adoc](release/README.adoc).
52+
53+
If you're looking for information about how to release Hibernate ORM, read on.
54+
4955
### Automated releases
5056

5157
On select maintenance branches (`6.2`, `6.4`, ...),
@@ -71,12 +77,14 @@ In any case, before the release:
7177
* Check that the [CI jobs](#continuous-integration) for the branch you want to release are green.
7278
* Check Jira [Releases](https://hibernate.atlassian.net/projects/HHH?selectedItem=com.atlassian.jira.jira-projects-plugin%3Arelease-page):
7379
* Check that the release you are about to publish exists in Jira.
74-
* Check there are no outstanding issues assigned to that release.
80+
* Remove the fix version for anything rejected, etc.
81+
* Move unresolved issues to another version
7582
* Check there are no resolved/closed issues in the corresponding "work-in-progress version"
7683
(e.g. `6.6`, `6.6-next`, ... naming convention may vary);
7784
if there are, you might want to assign them to your release.
85+
* Pull all upstream changes and perform `./gradlew preVerifyRelease` locally.
7886

79-
**If it is a new major or minor release**, before the release:
87+
**If it's the first `Alpha`/`Beta` of a new major or minor release**, before the release:
8088

8189
* Reset the migration guide to include only information relevant to the new major or minor.
8290

@@ -93,7 +101,7 @@ Once you trigger the CI job, it automatically pushes artifacts to the
93101
and the documentation to [docs.jboss.org](https://docs.jboss.org/hibernate/orm/).
94102

95103
* Do *not* mark the Jira Release as "released" or close issues,
96-
the release job does it for you.
104+
the release job triggers Jira automation that does it for you.
97105
* Do *not* update the repository (in particular changelog.txt and README.md),
98106
the release job does it for you.
99107
* Trigger the release on CI:
@@ -118,10 +126,15 @@ After the job succeeds:
118126
to enable/disable the automatic release of the staging repository update the [jreleaser.yml](jreleaser.yml) file,
119127
in particular change the `deploy.maven.nexus2.maven-central.releaseRepository` to `true`/`false`.
120128

121-
* Update [hibernate.org](https://github.com/hibernate/hibernate.org) if necessary:
122-
* If it is a new major or minor release, add a `_data/projects/orm/releases/series.yml` file
123-
and a `orm/releases/<version>/index.adoc` file.
124-
* Adjust the release file in `_data/projects/orm/releases`: use a meaningful summary and set `announcement_url` to the blog post, if any.
129+
* Update [hibernate.org](https://github.com/hibernate/hibernate.org) as necessary:
130+
* If it is a new major or minor release (new "series"):
131+
* Add a `_data/projects/orm/releases/<series>/series.yml` file,
132+
a `orm/releases/<series>/index.adoc` file, and a `orm/documentation/<series>/index.adoc` file.
133+
Generally these files can be copied from previous series.
134+
* If this new series is to support a new JPA release, also be sure to update `orm/releases/index.adoc`
135+
* Adjust the release file in `_data/projects/orm/releases` that was created automatically by the release job:
136+
use a meaningful summary, if relevant, and set `announcement_url` to the blog post, if any.
137+
* None of the above is necessary for maintenance (micro) releases.
125138
* Depending on which series you want to have displayed,
126139
make sure to adjust the `status`/`displayed` attributes of the `series.yml` file of the old series.
127140
* Push to the production branch.
@@ -133,8 +146,13 @@ After the job succeeds:
133146

134147
#### Announcing the release
135148

149+
If it is an `Alpha`, `Beta`, `CR` or first `Final` (`x.y.0.Final`) release, announce it:
150+
151+
* Blog about release on [in.relation.to](https://github.com/hibernate/in.relation.to).
152+
Make sure to use the tags "Hibernate ORM" and "Releases" for the blog entry.
136153
* Send an email to `[email protected]` and CC `[email protected]`.
137154
* Tweet about the release via the `@Hibernate` account.
155+
* Announce it anywhere else you wish (BlueSky, etc).
138156

139157
#### Updating depending projects
140158

README.adoc

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,7 @@ See https://hibernate.org/orm/[Hibernate.org] for more information.
1313

1414
== Continuous Integration
1515

16-
Hibernate uses both https://jenkins-ci.org[Jenkins] and https://github.com/features/actions[GitHub Actions]
17-
for its CI needs. See
18-
19-
* https://ci.hibernate.org/view/ORM/[Jenkins Jobs]
20-
* https://github.com/hibernate/hibernate-orm/actions[GitHub Actions Jobs]
16+
See link:MAINTAINERS.md#ci[MAINTAINERS.md] for information about CI.
2117

2218
== Building from sources
2319

release/README.adoc

Lines changed: 9 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,20 @@
11
= ORM Releases
22
:toc:
33

4-
This module performs the tasks needed as part of creating a release for Hibernate ORM.
5-
Releases are triggered as a link:../ci/release/Jenkinsfile[Jenkins pipeline].
6-
7-
Hibernate ORM also publishes SNAPSHOT releases using an automated link:../ci/snapshot-publish.Jenkinsfile[Jenkins pipeline],
8-
which is triggered on a merge to the main branch. This job requires no user interactions.
9-
10-
== Preparation
11-
12-
There are a few steps that need to be performed prior to starting the release job:
13-
14-
. Pull all upstream changes and perform `./gradlew preVerifyRelease`.
15-
. Verify issues in the Jira version
16-
.. Remove fix version for anything rejected, etc.
17-
.. Move unresolved issues to another version
18-
. Mark version released in Jira
19-
. Bulk close all issues in the Jira version
20-
21-
=== New Series
22-
23-
If this is a new series, some additional steps are required to prepare the website:
4+
== Where is the information
245

25-
. Create the series descriptor
26-
.. create the directory `_data/projects/orm/releases/${family_name}`
27-
.. create the file `series.yml`
28-
.. add the appropriate content (_generally this can be copied from previous series_)
29-
. Create the series listing
30-
.. create the directory `orm/releases/${family_name}`
31-
.. create the file `index.adoc`
32-
.. add listing of all new features in the series
33-
. Create the documentation listing
34-
.. create the directory `orm/documentation/${family_name}`
35-
.. create the file `index.adoc`
36-
.. add links to all documentation (_generally this can be copied from previous series_)
37-
. If this new series is to support a new JPA release, also be sure to update `orm/releases/index.adoc`
6+
If you're looking for information about how to release Hibernate ORM, see link:/MAINTAINERS.md[MAINTAINERS.md]
387

8+
If you're looking for information about how releases are implemented technically, read on.
399

40-
== Perform the Release
10+
== How it works
4111

42-
Start the appropriate Jenkins https://ci.hibernate.org/view/Release/job/hibernate-orm-release[job].
12+
Releases are triggered as a link:../ci/release/Jenkinsfile[Jenkins pipeline].
13+
Hibernate ORM also publishes SNAPSHOT releases using an automated link:../ci/snapshot-publish.Jenkinsfile[Jenkins pipeline],
14+
which is triggered on a merge to the main branch. This job requires no user interactions.
4315

44-
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,
16+
When a release job is started,
17+
the job coordinates with the unified Hibernate https://github.com/hibernate/hibernate-release-scripts[release scripts] in a number of stages and steps,
4518
calling tasks on this module's link:./release.gradle[Gradle script] and leveraging link:../jreleaser.yml[JReleaser configuration].
4619

4720
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
7649

7750
All documentation for the release is generated, assembled and then published to the https://docs.jboss.org/hibernate/orm/[documentation server].
7851

79-
80-
== Announce
81-
82-
If the release is a maintenance release, there is nothing more to do.
83-
84-
However, for Alpha, Beta, CR and first Final releases some announcements are in order:
85-
86-
. Write a release announcement blog post.
87-
. Announce the release, with link to the blob post:
88-
.. on the hibernate-dev and hibernate-announce mailing lists
89-
.. on the https://discourse.hibernate.org/[forums]
90-
.. on Twitter
91-
.. anywhere else you wish (BlueSky, etc).
92-

0 commit comments

Comments
 (0)