diff --git a/.gitignore b/.gitignore index e871c05ad7470..f21b36a36f8f7 100644 --- a/.gitignore +++ b/.gitignore @@ -33,4 +33,5 @@ mvnd.zip* backlog .claude .omc -.oss-ai-helper-rules \ No newline at end of file +.oss-ai-helper-rules +.rewrite-enabled diff --git a/etc/scripts/regen.sh b/etc/scripts/regen.sh index 5f4b75f2a69b0..e710691240b9d 100755 --- a/etc/scripts/regen.sh +++ b/etc/scripts/regen.sh @@ -25,6 +25,24 @@ cd `dirname "$0"`/../.. git clean -fdx rm -Rf **/src/generated/ +# Enable OpenRewrite only for modules with changed Java files. +# Maven's file-activated profile (.rewrite-enabled) checks +# per-module, so OpenRewrite runs only where needed — no -Prewrite flag required. +# We only need --deepen=1 (depth 1 -> 2) since we compare adjacent commits: +# for PRs, HEAD~1 is the base branch tip (first parent of the merge commit); +# for main builds, HEAD~1 is the previous squash-merged commit. +if ! git rev-parse HEAD~1 >/dev/null 2>&1; then + git fetch --deepen=1 --quiet 2>/dev/null || true +fi + +if git rev-parse HEAD~1 >/dev/null 2>&1; then + git diff HEAD~1 HEAD --name-only -- '*.java' ':!*/src/generated/*' \ + | sed 's|/src/.*||' | sort -u \ + | while read module; do + [ -d "$module" ] && touch "$module/.rewrite-enabled" + done +fi + # Regenerate everything if ./mvnw --batch-mode -Pregen -DskipTests ${MAVEN_EXTRA_ARGS} install >> build.log 2>&1; then echo "✅ mvn -Pregen succeeded." diff --git a/parent/pom.xml b/parent/pom.xml index 3cc1d9705782a..2c1a4e7e22216 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -4183,6 +4183,11 @@ rewrite + + + .rewrite-enabled + + diff --git a/pom.xml b/pom.xml index bf74fe541a446..09060bbd3f5b4 100644 --- a/pom.xml +++ b/pom.xml @@ -261,6 +261,7 @@ ${maven.multiModuleProjectDirectory}/buildingtools/src/main/resources/header.txt + **/.rewrite-enabled release.properties **/pom.xml.tag **/pom.xml.releaseBackup