Skip to content

Commit 6027a68

Browse files
committed
Merge branch 'main' into fix/npe-entity-entry-context
2 parents 3ba92d7 + 014d311 commit 6027a68

File tree

25,847 files changed

+1776131
-986834
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

25,847 files changed

+1776131
-986834
lines changed

.git-blame-ignore-revs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Initial commits that enabled spotless automatic formatting
2+
59731c089e9d649a663c81d9622b54557d6aba37
3+
4d63ffd98cdead513ab0be0fa23f9787423092d3
4+
# Envers removal/restore
5+
9c7dd3bf34dfbb2f4fa9eb79a0294c2cc759c836
6+
b2a528f2945cee26667b22b867ccef143b7c430c
7+
4273f1cde06f3622f50c2846078398c1977a49c4

.gitattributes

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# By default, detect text files automatically, and use whatever line terminators make sense for the OS
2+
* text=auto eol=lf
3+
4+
# Java files are text, and we want Java-friendly readable hunk headers for diff
5+
*.java text diff=java eol=lf
6+
7+
# Force LF/CRLF format for files that are known to require it.
8+
*.sh text eol=lf
9+
*.bat text eol=crlf
10+
11+
# For some reason the above is not enough, in particular for gradlew.bat,
12+
# as some commands (git status, git add --renormalize) will still change its line endings to LF.
13+
# So, we explicitly tell git not to mess with *.bat line endings.
14+
# It's annoying as git won't show diffs for these files anymore,
15+
# but that's the best I could come up with after an hour of head-scratching.
16+
*.bat binary
17+

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<!--
2+
If this is your first time contributing to the project, please consider reviewing https://github.com/hibernate/hibernate-orm/blob/main/CONTRIBUTING.md
3+
-->
4+
5+
[Please describe here what your change is about]
6+
7+
<!--
8+
Please read and do not remove the following lines:
9+
-->
10+
----------------------
11+
By submitting this pull request, I confirm that my contribution is made under the terms of the [Apache 2.0 license](https://www.apache.org/licenses/LICENSE-2.0.txt)
12+
and can be relicensed under the terms of the [LGPL v2.1 license](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt) in the future at the maintainers' discretion.
13+
For more information on licensing, please check [here](https://github.com/hibernate/hibernate-orm/blob/main/CONTRIBUTING.md#legal).
14+
15+
----------------------

.github/ci-prerequisites-atlas.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Reclaims disk space and sanitizes user home on Atlas infrastructure
2+
3+
# We use the GitHub cache for the relevant parts of these directories.
4+
# Also, we do not want to keep things like ~/.gradle/build-scan-data.
5+
rm -rf ~/.gradle/
6+
rm -rf ~/.m2/

.github/ci-prerequisites.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Reclaim disk space, otherwise we only have 13 GB free at the start of a job
22

3+
# Remove the container images for node:
34
docker rmi node:10 node:12 mcr.microsoft.com/azure-pipelines/node8-typescript:latest
45
# That is 18 GB
56
sudo rm -rf /usr/share/dotnet

.github/dependabot.yml

Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
version: 2
2+
registries:
3+
gradle-plugin-portal:
4+
type: maven-repository
5+
url: https://plugins.gradle.org/m2
6+
username: dummy # Required by dependabot
7+
password: dummy # Required by dependabot
8+
updates:
9+
- package-ecosystem: github-actions
10+
directory: "/"
11+
schedule:
12+
interval: monthly
13+
groups:
14+
workflow-actions:
15+
patterns:
16+
- "*"
17+
allow:
18+
- dependency-name: "actions/*"
19+
- dependency-name: "redhat-actions/*"
20+
- package-ecosystem: "gradle"
21+
directory: "/"
22+
registries:
23+
- gradle-plugin-portal
24+
schedule:
25+
interval: "weekly"
26+
day: "wednesday"
27+
open-pull-requests-limit: 20
28+
groups:
29+
# These are used in tooling we publish (Gradle, Ant, Maven plugins)
30+
# and thus must be treated as runtime dependencies,
31+
# which cannot be included in the build-dependencies group below.
32+
tooling-dependencies:
33+
patterns:
34+
# Note: Gradle tooling dependencies seem to be tied to the version of Gradle we use for building.
35+
- "org.apache.ant*"
36+
- "org.apache.maven:maven-plugin-api"
37+
- "org.apache.maven:maven-project"
38+
- "org.apache.maven.shared:file-management"
39+
- "org.apache.maven.plugin-tools:maven-plugin-annotations"
40+
# This group combines all build-only dependencies. Published artifacts do not depend on them.
41+
# Grouping such dependencies will make Dependabot create PRs with a branch name
42+
# following the pattern (`dependabot/maven/build-dependencies-.*`)
43+
# and with a title like `Bump the build-dependencies group with 8 updates` that we can easily
44+
# use for Hibernate Bot rules.
45+
build-dependencies:
46+
patterns:
47+
# Gradle plugins:
48+
- "com.gradle*"
49+
- "org.moditect*"
50+
- "de.thetaphi*"
51+
- "org.gradlex*"
52+
- "org.hibernate.build*"
53+
- "org.hibernate.orm.build*"
54+
- "org.hibernate.orm.database-service*"
55+
- "org.hibernate.orm.antlr*"
56+
- "io.github.gradle-nexus*"
57+
- "biz.aQute.bnd*"
58+
- "org.checkerframework*"
59+
- "org.jetbrains.gradle*"
60+
- "com.dorongold*"
61+
- "org.asciidoctor*"
62+
- "com.diffplug.spotless*"
63+
# Local build plugin dependencies:
64+
- "org.apache.maven*"
65+
- "org.apache.httpcomponents*"
66+
# DB drivers:
67+
- "com.h2database:h2"
68+
- "org.orbisgis:h2gis"
69+
- "org.hsqldb:hsqldb"
70+
- "org.apache.derby*"
71+
- "org.postgresql:*"
72+
- "com.enterprisedb:*"
73+
- "com.mysql:mysql-connector-j"
74+
- "org.mariadb.jdbc:mariadb-java-client"
75+
- "com.oracle.database.*"
76+
- "com.microsoft.sqlserver:mssql-jdbc"
77+
- "com.ibm.db2:jcc"
78+
- "com.sap.cloud.db.jdbc:ngdbc"
79+
- "net.sourceforge.jtds:jtds"
80+
- "com.ibm.informix:jdbc"
81+
- "org.firebirdsql.jdbc:jaybird"
82+
- "com.altibase:altibase-jdbc"
83+
# Other test dependencies
84+
- "org.apache.groovy:groovy-jsr223" # used for scripting maven plugin
85+
- "org.apache.commons:commons-lang3" # used in hibernate-search-util-common tests
86+
- "org.apache.commons:commons-math3" # used to solve dependency convergence for Wiremock
87+
- "org.openjdk.jmh:*" # performance testing dependency
88+
- "com.google.guava:guava" # Guava is used in our test utils
89+
- "org.asciidoctor:*" # Asciidoctor is used for rendering the documentation
90+
- "org.jboss.marshalling:jboss-marshalling" # JBeret IT dependency
91+
- "org.wildfly.security:wildfly-security-manager" # JBeret IT dependency
92+
- "org.springframework.boot:*" # Spring is only for ITs
93+
- "io.agroal:agroal-spring-boot-starter" # part of Spring dependencies, is only for ITs
94+
- "dev.snowdrop:narayana-spring-boot-starter" # part of Spring dependencies, is only for ITs
95+
- "org.mockito:*"
96+
- "org.hamcrest:*"
97+
- "org.apache.logging.log4j:*"
98+
- "org.assertj:*"
99+
- "org.jsoup:*"
100+
- "org.junit*"
101+
- "org.jboss.weld.se:*"
102+
- "org.jboss.narayana.*:*"
103+
- "org.wildfly.transaction:*"
104+
- "org.jboss:jboss-transaction-spi"
105+
- "org.jboss.shrinkwrap*"
106+
- "org.jboss.byteman*"
107+
hibernate:
108+
patterns:
109+
- "org.hibernate*"
110+
jakarta:
111+
patterns:
112+
- "jakarta.*"
113+
- "org.glassfish*"
114+
- "org.eclipse:yasson"
115+
ignore:
116+
# Avoid non-patch updates for complex dependencies and their implementation, even if we only use them for tests.
117+
- dependency-name: "org.hibernate*"
118+
update-types: ["version-update:semver-major", "version-update:semver-minor"]
119+
- dependency-name: "jakarta.*"
120+
update-types: ["version-update:semver-major", "version-update:semver-minor"]
121+
- dependency-name: "org.jboss.narayana*"
122+
update-types: ["version-update:semver-major", "version-update:semver-minor"]
123+
- dependency-name: "org.jboss.weld*"
124+
update-types: ["version-update:semver-major", "version-update:semver-minor"]
125+
- dependency-name: "org.wildfly*"
126+
update-types: ["version-update:semver-major", "version-update:semver-minor"]
127+
- dependency-name: "org.glassfish*"
128+
update-types: ["version-update:semver-major", "version-update:semver-minor"]
129+
- dependency-name: "org.eclipse:yasson"
130+
update-types: ["version-update:semver-major", "version-update:semver-minor"]
131+
- dependency-name: "org.apache.maven*"
132+
update-types: ["version-update:semver-major", "version-update:semver-minor"]
133+
- dependency-name: "org.apache.ant*"
134+
update-types: ["version-update:semver-major", "version-update:semver-minor"]
135+
# Avoid non-patch updates for JUnit, because it is exposed in hibernate-testing,
136+
# which contains @BytecodeEnhanced, which is very sensitive to internal changes in JUnit.
137+
- dependency-name: "org.junit*"
138+
update-types: ["version-update:semver-major", "version-update:semver-minor"]
139+
# Sticking to SLF4J 1.x for now since later versions require upgrading providers
140+
# (Log4j, ... see https://www.slf4j.org/faq.html#changesInVersion200),
141+
# and also because we only need this dependency for Maven,
142+
# which is currently still on SLF4J 1.x
143+
# (see https://central.sonatype.com/artifact/org.apache.maven/maven-embedder/3.9.9/dependencies)
144+
- dependency-name: "org.slf4j:*"
145+
update-types: ["version-update:semver-major"]

.github/hibernate-github-bot.yml

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,83 @@
11
---
22
jira:
33
projectKey: "HHH"
4+
insertLinksInPullRequests: true
5+
ignore:
6+
# See the `build-dependencies` group in Dependabot's configuration file
7+
- user: dependabot[bot]
8+
titlePattern: "Bump.*the (build-dependencies|workflow-actions) group.*+"
9+
ignoreFiles:
10+
# Git
11+
- ".git*"
12+
- "*/.git*"
13+
- ".mailmap"
14+
# Gradle
15+
- "gradlew*"
16+
- "gradle/"
17+
- "local-build-plugins/"
18+
- "build.gradle"
19+
# NOT settings.gradle: contains dependency versions, changing those requires a Jira issue
20+
- "utilities.gradle"
21+
# CI
22+
- ".github/"
23+
- ".release/"
24+
- "ci/"
25+
- "databases/"
26+
- "*.sh"
27+
- "*.bat"
28+
- "Jenkinsfile"
29+
- "*/Jenkinsfile"
30+
- "*.Jenkinsfile"
31+
# In-repo documentation
32+
- "design/"
33+
- "README.adoc"
34+
- "MAINTAINERS.md"
35+
- "CONTRIBUTING.md"
36+
# Misc. build files
37+
- "checkerstubs/"
38+
- "drivers/"
39+
- "edb/"
40+
- "etc/"
41+
- "javadoc/"
42+
- "patched-libs/"
43+
- "release/"
44+
- "rules/"
45+
- "shared/"
46+
- ".sdkmanrc"
47+
- "*/.sdkmanrc"
48+
develocity:
49+
buildScan:
50+
addCheck: true
51+
tags:
52+
- column: "OS"
53+
pattern: "Linux"
54+
- column: "OS"
55+
pattern: "Windows.*"
56+
replacement: "Windows"
57+
- column: "Java"
58+
pattern: "jdk-(.*)"
59+
replacement: "$1"
60+
- column: "Java"
61+
pattern: "s390x"
62+
replacement: "$0"
63+
- column: "DB"
64+
pattern: "((?:h2|postgres(?:ql)?|pgsql|mysql|mariadb|mssql|tidb|cockroach(?:db)?|oracle|db2|hsqldb|edb|sybase)(?:.*(?=_ci)|.*))(?:_ci)?"
65+
replacement: "$1"
66+
- pattern: "main|HEAD|\\d+.\\d+|PR-\\d+"
67+
replacement: "" # Just remove these tags
68+
licenseAgreement:
69+
enabled: true
70+
ignore:
71+
- user: dependabot[bot]
72+
titlePattern: "Bump.*"
73+
# Members of this team already agreed to both LGPL and ASL2 for all their contributions.
74+
- team:
75+
name: license-agreement
76+
organization: hibernate
77+
titlePattern: ".*"
78+
branches:
79+
enabled: true
80+
label: "%s"
81+
ignore:
82+
- user: dependabot[bot]
83+
titlePattern: ".*"

.github/workflows/ci-report.yml

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
name: GH Actions CI reporting
2+
3+
on:
4+
workflow_run:
5+
workflows: [ "GH Actions CI" ]
6+
types: [ completed ]
7+
8+
defaults:
9+
run:
10+
shell: bash
11+
12+
jobs:
13+
publish-build-scans:
14+
name: Publish Develocity build scans
15+
if: github.repository == 'hibernate/hibernate-orm' && github.event.workflow_run.conclusion != 'cancelled'
16+
runs-on: ubuntu-latest
17+
steps:
18+
# Checkout target branch which has trusted code
19+
- name: Check out target branch
20+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
21+
with:
22+
persist-credentials: false
23+
ref: ${{ github.ref }}
24+
- name: Set up JDK
25+
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
26+
with:
27+
distribution: 'temurin'
28+
java-version: '25'
29+
30+
- name: Generate cache key
31+
id: cache-key
32+
run: |
33+
CURRENT_BRANCH="${{ github.repository != 'hibernate/hibernate-orm' && 'fork' || github.base_ref || github.ref_name }}"
34+
CURRENT_MONTH=$(/bin/date -u "+%Y-%m")
35+
CURRENT_DAY=$(/bin/date -u "+%d")
36+
ROOT_CACHE_KEY="buildtool-cache"
37+
echo "buildtool-monthly-cache-key=${ROOT_CACHE_KEY}-${CURRENT_MONTH}" >> $GITHUB_OUTPUT
38+
echo "buildtool-monthly-branch-cache-key=${ROOT_CACHE_KEY}-${CURRENT_MONTH}-${CURRENT_BRANCH}" >> $GITHUB_OUTPUT
39+
echo "buildtool-cache-key=${ROOT_CACHE_KEY}-${CURRENT_MONTH}-${CURRENT_BRANCH}-${CURRENT_DAY}" >> $GITHUB_OUTPUT
40+
- name: Restore Maven/Gradle Dependency/Dist Caches
41+
uses: actions/cache/restore@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
42+
with:
43+
path: |
44+
~/.m2/repository/
45+
~/.m2/wrapper/
46+
~/.gradle/caches/modules-2
47+
~/.gradle/wrapper/
48+
key: ${{ steps.cache-key.outputs.buildtool-cache-key }}
49+
restore-keys: |
50+
${{ steps.cache-key.outputs.buildtool-monthly-branch-cache-key }}-
51+
${{ steps.cache-key.outputs.buildtool-monthly-cache-key }}-
52+
53+
- name: Download GitHub Actions artifacts for the Develocity build scans
54+
id: downloadBuildScan
55+
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
56+
with:
57+
pattern: build-scan-data-*
58+
github-token: ${{ github.token }}
59+
repository: ${{ github.repository }}
60+
run-id: ${{ github.event.workflow_run.id }}
61+
path: /tmp/downloaded-build-scan-data/
62+
# Don't fail the build if there are no matching artifacts
63+
continue-on-error: true
64+
- name: Publish Develocity build scans for previous builds
65+
if: ${{ steps.downloadBuildScan.outcome != 'failure'}}
66+
run: |
67+
shopt -s nullglob # Don't run the loop below if there are no artifacts
68+
status=0
69+
mkdir -p ~/.gradle/
70+
for build_scan_data_directory in /tmp/downloaded-build-scan-data/*
71+
do
72+
rm -rf ~/.gradle/build-scan-data
73+
mv "$build_scan_data_directory" ~/.gradle/build-scan-data \
74+
&& ./gradlew --no-build-cache buildScanPublishPrevious || status=1
75+
done
76+
exit $status
77+
env:
78+
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY_PR }}

0 commit comments

Comments
 (0)