Serguey Asael Shinder: Hibernate's 8.0.0.Beta2 is not flagged as a prerelease
Hibernate ORM 8.0.0.Beta2 was published on 23 September 2026 at https://github.com/hibernate/hibernate-orm/releases/tag/8.0.0.Beta2, with the release notes pointing at the 8.0 requirements page, the What's New guide and the migration guide, and at two reports worth knowing about on their own: the incubating API report listing everything annotated @Incubating, and the deprecated API report.
There is a detail in the release metadata that has nothing to do with Hibernate and everything to do with how the rest of us consume releases. On GitHub, this release carries prerelease: false
- the flag is not set, even though the version string says
Beta2.

Why that matters more than it sounds
Two different declarations of stability live in the same release, and they disagree. The version string says beta. The repository flag says this is a normal release. Anything that reads the flag rather than parsing the name will treat 8.0.0.Beta2 as generally available.
Plenty of things read the flag. Release-watching bots, dependency-update automation, internal dashboards that list "latest release" for a library, changelog aggregators - the flag is the structured field, and the version string is free text that each tool parses by its own rules. Beta2 is not a suffix every parser knows; a tool built around semantic versioning expects 8.0.0-beta.2, with a hyphen, and the string here has none.
The practical consequence is a pull request that looks routine. An automated dependency update titled "bump hibernate-core to 8.0.0.Beta2" reads exactly like a patch bump if nothing in the pipeline knows the difference - and the one signal that would have caught it is a flag nobody set.
What to do about it
Check the flag against the string, not instead of it. If you automate dependency updates, the rule worth having is: treat a version whose name contains alpha, beta, rc, M or CR as a prerelease regardless of what the repository metadata says. Publishers forget the checkbox; the version string is chosen deliberately.
And read the two reports Hibernate links. @Incubating marks API that may change without the usual compatibility guarantees, and a release that ships an incubating-API report is telling you exactly which parts of it are not promises yet. That is more useful than the beta label, because it is specific.
⚠️ Nothing here is a criticism of the release. The version string is unambiguous and the project's own compatibility policy is linked from the notes. The observation is about the metadata channel between a publisher and everyone's automation - and it is checkable in one API call.