HHH-18861 - Improve GitHub release announcement body for automated releases
This commit is contained in:
parent
7921473bf8
commit
fe9a3cce2e
|
@ -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**:
|
||||||
|
|
||||||
|
|
|
@ -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}"
|
||||||
|
|
|
@ -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.
|
|
|
@ -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.
|
||||||
|
|
Loading…
Reference in New Issue