HHH-18861 - Improve GitHub release announcement body for automated releases

This commit is contained in:
Steve Ebersole 2024-11-18 13:36:36 -06:00
parent 7921473bf8
commit fe9a3cce2e
4 changed files with 105 additions and 121 deletions

View File

@ -103,15 +103,9 @@ and the documentation to [docs.jboss.org](https://docs.jboss.org/hibernate/orm/)
Note only `RELEASE_VERSION` is absolutely necessary. Note only `RELEASE_VERSION` is absolutely necessary.
* Note that for new branches where the job has never run, the first run may not ask for parameters and thus may fail: * Note that for new branches where the job has never run, the first run may not ask for parameters and thus may fail:
that's expected, just run it again. that's expected, just run it again.
* After the job succeeds, check the artifacts are available on Maven Central:
https://repo1.maven.org/maven2/org/hibernate/orm/hibernate-core/.
They should appear after a few minutes, sometimes a few hours.
#### Announcing the release After the job succeeds:
* 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.
Use [release-announcement.adoc](release-announcement.adoc) as a starting point.
* Update [hibernate.org](https://github.com/hibernate/hibernate.org) if necessary: * 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 * If it is a new major or minor release, add a `_data/projects/orm/releases/series.yml` file
and a `orm/releases/<version>/index.adoc` file. and a `orm/releases/<version>/index.adoc` file.
@ -119,6 +113,14 @@ and the documentation to [docs.jboss.org](https://docs.jboss.org/hibernate/orm/)
* Depending on which series you want to have displayed, * 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. make sure to adjust the `status`/`displayed` attributes of the `series.yml` file of the old series.
* Push to the production branch. * Push to the production branch.
* Check that the artifacts are available on Maven Central:
https://repo1.maven.org/maven2/org/hibernate/orm/hibernate-core/.
They should appear after a few minutes, sometimes a few hours.
* Make sure a GitHub release got created and that everything looks ok.
#### Announcing the release
* Send an email to `hibernate-announce@lists.jboss.org` and CC `hibernate-dev@lists.jboss.org`. * Send an email to `hibernate-announce@lists.jboss.org` and CC `hibernate-dev@lists.jboss.org`.
* Tweet about the release via the `@Hibernate` account. * Tweet about the release via the `@Hibernate` account.
@ -137,7 +139,7 @@ If you just released the latest stable, you will need to update other projects:
In any case: In any case:
* Reset [release-announcement.adoc](release-announcement.adoc). * Reset [release_notes.md](release_notes.md).
**If it is a new major or minor release**: **If it is a new major or minor release**:

View File

@ -147,7 +147,12 @@ pipeline {
env.RELEASE_VERSION = releaseVersion.toString() env.RELEASE_VERSION = releaseVersion.toString()
env.DEVELOPMENT_VERSION = developmentVersion.toString() env.DEVELOPMENT_VERSION = developmentVersion.toString()
env.SCRIPT_OPTIONS = params.RELEASE_DRY_RUN ? "-d" : ""
def matchingFiles = findFiles(glob: "/release_notes.md")
env.SCRIPT_OPTIONS = " --notes=${matchingFiles[0]}"
if ( params.RELEASE_DRY_RUN ) {
env.SCRIPT_OPTIONS += " -d"
}
// Determine version id to check if Jira version exists // Determine version id to check if Jira version exists
sh ".release/scripts/determine-jira-version-id.sh ${env.JIRA_KEY} ${releaseVersion.withoutFinalQualifier}" sh ".release/scripts/determine-jira-version-id.sh ${env.JIRA_KEY} ${releaseVersion.withoutFinalQualifier}"

View File

@ -1,112 +0,0 @@
= Hibernate 7.0.0.Beta2
Steve Ebersole
:toc:
:toclevels: 2
:awestruct-tags: ["Hibernate ORM", "Releases"]
:awestruct-layout: blog-post
:family: 7.0
:docs-url: https://docs.jboss.org/hibernate/orm/{family}
:javadocs-url: {docs-url}/javadocs
:migration-guide-url: {docs-url}/migration-guide/migration-guide.html
:intro-guide-url: {docs-url}/introduction/html_single/Hibernate_Introduction.html
:user-guide-url: {docs-url}/userguide/html_single/Hibernate_User_Guide.html
:ql-guide-url: {docs-url}/querylanguage/html_single/Hibernate_Query_Language.html
The Hibernate ORM 7.0 Beta2 release has just been published. Here are some highlights...
[[jpa-32]]
== Jakarta Persistence 3.2
7.0 migrates to Jakarta Persistence 3.2 which can be fairly disruptive. See the link:{migration-guide-url}#jpa-32[Migration Guide] for details.
See https://in.relation.to/2024/04/01/jakarta-persistence-3/[this blog post] for a summary of the changes in 3.2
- https://ci.hibernate.org/view/ORM/job/hibernate-orm-tck-3.2/job/wip%252F7.0/24/[TCK Results] with Java 17
- https://ci.hibernate.org/view/ORM/job/hibernate-orm-tck-3.2/job/wip%252F7.0/25/[TCK Results] with Java 21
[[java-17]]
== Java 17
Version 3.2 of Jakarta Persistence requires Java 17. Hibernate 7.0 therefore baselines on Java 17 whereas previous versions baseline on Java 11.
[[model-validations]]
== Domain Model Validations
7.0 does much more validation of an application's domain model and especially its mapping details, e.g.
* illegal combinations such as `@Basic` and `@ManyToOne` on the same attribute
* misplaced annotations such as an annotated getter method with FIELD access
* stricter following of JavaBean conventions
See the link:{migration-guide-url}#annotation-validation[Migration Guide] for details.
[[mapping-xml]]
== mapping.xsd
Hibernate 7.0 provides a new XSD that represents an "extension" of the Jakarta Persistence orm.xsd weaving in Hibernate-specific mapping features. The namespace for this extended mapping is `http://www.hibernate.org/xsd/orm/mapping`
For applications using Hibernate's legacy `hbm.xml` format, we provide a tool to help with the transformation.
See the link:{migration-guide-url}#hbm-transform[Migration Guide] for details.
[[hibernate-models]]
== Hibernate Models
7.0 migrates from https://github.com/hibernate/hibernate-commons-annotations/[Hibernate Commons Annotations] (HCANN) to the new https://github.com/hibernate/hibernate-models[Hibernate Models] project for low-level processing of an application domain model, reading annotations and weaving in XML mapping documents.
See the link:{migration-guide-url}#hibernate-models[Migration Guide] for details.
[[json-and-xml-functions]]
== JSON and XML functions
Support for most of the JSON and XML functions that the SQL standard specifies was added to HQL/Criteria.
The implementations retain the SQL standard semantics and will throw an error if emulation on a database is impossible.
New functions include:
* construction functions like `json_array()`, `json_object()`, `xmlelement()` and `xmlforest()`
* query functions like `json_value()`, `json_query()` and `xmlquery()`
* aggregation functions like `json_agg()`, `json_object_agg()` and `xmlagg()`
* manipulation functions like `json_set()`, `json_mergepatch()`
* any many more
NOTE: The functions are incubating/tech-preview and to use them in HQL,
it is necessary to enable the `hibernate.query.hql.json_functions_enabled` and `hibernate.query.hql.xml_functions_enabled` configuration settings.
[[set-returning-functions]]
== Set-returning Functions
A set-returning function is a new type of function that can return rows and is exclusive to the `from` clause.
The concept is known in many different database SQL dialects and is sometimes referred to as table valued function or table function.
Custom set-returning functions can be registered via a `FunctionContributor`.
Out-of-the-box, some common set-returning functions are already supported or emulated
* `unnest()` - allows to turn an array into rows
* `generate_series()` - can be used to create a series of values as rows
* `json_table()` - turns a JSON document into rows
* `xmltable()` - turns an XML document into rows
[[any-discriminator]]
== @AnyDiscriminatorImplicitValues
The new `@AnyDiscriminatorImplicitValues` offers 2 related improvements for the mapping of discriminator values
for `@Any` and `ManyToAny` associations.
First, it allows control over how Hibernate determines the discriminator value to store in the database for
implicit discriminator mappings. Historically, Hibernate would always use the full name of the associated
entity.
Second, it allows mixing of explicit and implicit value strategies.
See the link:{user-guide-url}#associations-any[User Guide] for details.
[[cleanup]]
== Clean-up
A lot of deprecated contracts and behavior has been removed. See the link:{migration-guide-url}#cleanup[Migration Guide] for details.

89
release_notes.md Normal file
View File

@ -0,0 +1,89 @@
### <a name="jpa-32"></a> Jakarta Persistence 3.2
7.0 migrates to Jakarta Persistence 3.2 which can be fairly disruptive.
See the [Migration Guide](https://docs.jboss.org/hibernate/orm/7.0/migration-guide/migration-guide.html#jpa-32) for details.
See [this blog post](https://in.relation.to/2024/04/01/jakarta-persistence-3/) for a summary of the changes in 3.2
- [TCK Results](https://ci.hibernate.org/view/ORM/job/hibernate-orm-tck-3.2/job/wip%252F7.0/24/) with Java 17
- [TCK Results](https://ci.hibernate.org/view/ORM/job/hibernate-orm-tck-3.2/job/wip%252F7.0/25/) with Java 21
### <a name="java-17"></a> Java 17
Version 3.2 of Jakarta Persistence requires Java 17.
Hibernate 7.0 therefore baselines on Java 17 whereas previous versions baseline on Java 11.
### <a name="model-validations"></a> Domain Model Validations
7.0 does much more validation of an application's domain model and especially its mapping details, e.g.
* illegal combinations such as `@Basic` and `@ManyToOne` on the same attribute
* misplaced annotations such as an annotated getter method with FIELD access
* stricter following of JavaBean conventions
See the [Migration Guide](https://docs.jboss.org/hibernate/orm/7.0/migration-guide/migration-guide.html#model-validation) for details.
### <a name="mapping-xml"></a> mapping.xsd
Hibernate 7.0 provides a new XSD that represents an "extension" of the Jakarta Persistence orm.xsd weaving in Hibernate-specific mapping features.
The namespace for this extended mapping is `http://www.hibernate.org/xsd/orm/mapping`
For applications using Hibernate's legacy `hbm.xml` format, we provide a tool to help with the transformation.
See the [Migration Guide](https://docs.jboss.org/hibernate/orm/7.0/migration-guide/migration-guide.html#hbm-transform) for details.
### <a name="hibernate-models"></a> Hibernate Models
7.0 migrates from [Hibernate Commons Annotations](https://github.com/hibernate/hibernate-commons-annotations/) (HCANN) to the new [Hibernate Models](https://github.com/hibernate/hibernate-models) project for low-level processing of an application domain model, reading annotations and weaving in XML mapping documents.
See the [Migration Guide](https://docs.jboss.org/hibernate/orm/7.0/migration-guide/migration-guide.html#hibernate-models) for details.
### <a name="json-and-xml-functions"></a> JSON and XML functions
Support for most of the JSON and XML functions that the SQL standard specifies was added to HQL/Criteria.
The implementations retain the SQL standard semantics and will throw an error if emulation on a database is impossible.
New functions include:
* construction functions like `json_array()`, `json_object()`, `xmlelement()` and `xmlforest()`
* query functions like `json_value()`, `json_query()` and `xmlquery()`
* aggregation functions like `json_agg()`, `json_object_agg()` and `xmlagg()`
* manipulation functions like `json_set()`, `json_mergepatch()`
* any many more
> The functions are incubating/tech-preview - to use them in HQL it is necessary to enable the `hibernate.query.hql.json_functions_enabled` and `hibernate.query.hql.xml_functions_enabled` configuration settings.
### <a name="set-returning-functions"></a> Set-returning Functions
A set-returning function is a new type of function that can return rows and is exclusive to the `from` clause.
The concept is known in many different database SQL dialects and is sometimes referred to as table valued function or table function.
Custom set-returning functions can be registered via a `FunctionContributor`.
Out-of-the-box, some common set-returning functions are already supported or emulated
* `unnest()` - allows to turn an array into rows
* `generate_series()` - can be used to create a series of values as rows
* `json_table()` - turns a JSON document into rows
* `xmltable()` - turns an XML document into rows
### <a name="any-discriminator"></a> @AnyDiscriminatorImplicitValues
The new `@AnyDiscriminatorImplicitValues` offers 2 related improvements for the mapping of discriminator values
for `@Any` and `ManyToAny` associations.
First, it allows control over how Hibernate determines the discriminator value to store in the database for
implicit discriminator mappings. Historically, Hibernate would always use the full name of the associated
entity.
Second, it allows mixing of explicit and implicit value strategies.
See the [Migration Guide](https://docs.jboss.org/hibernate/orm/7.0/userguide/html_single/Hibernate_User_Guide.html#associations-any) for details.
### <a name=cleanup"></a> Clean-up
A lot of deprecated contracts and behavior has been removed.
See the [Migration Guide](https://docs.jboss.org/hibernate/orm/7.0/migration-guide/migration-guide.html#cleanup) for details.