From 2cbef3f9a3a76254fa347b83bb901098d5550952 Mon Sep 17 00:00:00 2001 From: Greg Gibeling Date: Sun, 22 Feb 2026 20:14:19 -0800 Subject: [PATCH 1/2] G2-1865 Preserve bulldozer temp files during release process --- .../com/g2forge/bulldozer/build/Release.java | 2 + .../build/model/BulldozerProject.java | 39 +++++++++++++------ .../bulldozer/build/model/BulldozerTemp.java | 14 ++++++- 3 files changed, 42 insertions(+), 13 deletions(-) diff --git a/bd-build/src/main/java/com/g2forge/bulldozer/build/Release.java b/bd-build/src/main/java/com/g2forge/bulldozer/build/Release.java index 3e0ed16..8a095ad 100644 --- a/bd-build/src/main/java/com/g2forge/bulldozer/build/Release.java +++ b/bd-build/src/main/java/com/g2forge/bulldozer/build/Release.java @@ -257,6 +257,7 @@ public IExit invoke() throws Throwable { switchToBranch(git); // Commit any changes from a past prepare commitUpstreamReversion(git); + project.preserveTemp(); // Prepare the project (stream stdio to the console) getContext().getMaven().releasePrepare(project.getDirectory(), releaseProperties.getTag(), releaseProperties.getRelease(), releaseProperties.getDevelopment(), IMaven.PROFILES_RELEASE); @@ -352,6 +353,7 @@ public IExit invoke() throws Throwable { // Commit anything dirty, since those are the things with version updates switchToBranch(project.getGit()); commitUpstreamReversion(project.getGit()); + project.preserveTemp(); } // Re-install all the downstream projects that have had updated upstreams diff --git a/bd-build/src/main/java/com/g2forge/bulldozer/build/model/BulldozerProject.java b/bd-build/src/main/java/com/g2forge/bulldozer/build/model/BulldozerProject.java index f2e03fd..fd900f6 100644 --- a/bd-build/src/main/java/com/g2forge/bulldozer/build/model/BulldozerProject.java +++ b/bd-build/src/main/java/com/g2forge/bulldozer/build/model/BulldozerProject.java @@ -103,6 +103,14 @@ public void close() { HIO.closeAll(getCloseables()); } + protected String computeCommit() { + try { + return getGit().getRepository().findRef(Constants.HEAD).getObjectId().getName(); + } catch (IOException exception) { + throw new RuntimeIOException(String.format("Failed to determine commit for %1$s!", getName()), exception); + } + } + protected BulldozerDependencies computeDependencies() { final Map nameToProject = getContext().getNameToProject(); final Map groupToProject = getContext().getGroupToProject(); @@ -190,28 +198,20 @@ public String getName() { } public T loadTemp(IFunction1 getter, IConsumer2 setter, ISupplier generator) { - final String commit; - try { - commit = getGit().getRepository().findRef(Constants.HEAD).getObjectId().getName(); - } catch (IOException exception) { - throw new RuntimeIOException(String.format("Failed to determine commit for %1$s!", getName()), exception); - } + final String commit = computeCommit(); final Path path = getDirectory().resolve(BulldozerTemp.BULLDOZER_TEMP); BulldozerTemp temp = null; if (Files.exists(path)) { try { final BulldozerTemp read = getContext().getObjectMapper().readValue(path.toFile(), BulldozerTemp.class); - if (read.getKey().equals(commit)) temp = read; + if (read.isValidForCommit(commit)) temp = read; else Files.delete(path); } catch (IOException exception) { log.warn(String.format("Failed to read bulldozer temp data for %1$s, will regenerate...", getName())); } } - if (temp == null) { - temp = new BulldozerTemp(); - temp.setKey(commit); - } + if (temp == null) temp = BulldozerTemp.builder().commit(commit).build(); final T retVal0 = getter.apply(temp); if (retVal0 != null) return retVal0; @@ -229,4 +229,21 @@ public T loadTemp(IFunction1 getter, IConsumer2 otherCommits; protected String group; @@ -21,4 +27,8 @@ public class BulldozerTemp { protected BulldozerDependencies dependencies; protected String parentGroup; + + public boolean isValidForCommit(String commit) { + return getCommit().equals(commit) || ((getOtherCommits() != null) && getOtherCommits().contains(commit)); + } } \ No newline at end of file From 9689be5b685b27fbb7f3978369b6f0c3fe5d2c38 Mon Sep 17 00:00:00 2001 From: Greg Gibeling Date: Sun, 22 Feb 2026 21:12:44 -0800 Subject: [PATCH 2/2] G2-1865 Fix whitespace --- bd-build/src/main/java/com/g2forge/bulldozer/build/Release.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bd-build/src/main/java/com/g2forge/bulldozer/build/Release.java b/bd-build/src/main/java/com/g2forge/bulldozer/build/Release.java index 8a095ad..b011107 100644 --- a/bd-build/src/main/java/com/g2forge/bulldozer/build/Release.java +++ b/bd-build/src/main/java/com/g2forge/bulldozer/build/Release.java @@ -283,7 +283,7 @@ public IExit invoke() throws Throwable { try { // Skip ourselves & projects that don't depend on us if ((downstream == project) || !downstream.getDependencies().getTransitive().keySet().contains(name)) continue; - log.info("\tFound downstream{}", downstream.getName()); + log.info("\tFound downstream {}", downstream.getName()); // Record that we're updating this project so it needs to be re-installed at the end unreleasedProjectsToReinstall.add(downstream.getName()); // Update all the downstreams to new release versions