Skip to content

refactoring gradle.build: Use gradle's task parallelization and caching to speedup builds#7556

Draft
Vest wants to merge 279 commits into
PCGen:masterfrom
Vest:kar_gh_build_gradle_deps
Draft

refactoring gradle.build: Use gradle's task parallelization and caching to speedup builds#7556
Vest wants to merge 279 commits into
PCGen:masterfrom
Vest:kar_gh_build_gradle_deps

Conversation

@Vest
Copy link
Copy Markdown
Contributor

@Vest Vest commented May 11, 2026

I'd better post here one of my recent commits. Here is the task that I was chasing:

Rewrite JDK download/extract as per-platform tasks for parallel cross-compilation
The previous downloadJRE/downloadJavaFXModules tasks used imperative doLast logic incompatible with the configuration cache, and extractJDKs was broken (ran checks at configuration time, always reported NO-SOURCE).
Replace with declarative per-platform Download and Copy tasks that run in parallel, support proper up-to-date checks, and are configuration-cache compatible. The runtime plugin now references jdks/ instead of jre/.

Removed default task - build.

I will create the PR as draft, but if you like it, I'd better merge it with squashing.
p.s. @karianna

Vest and others added 30 commits July 9, 2023 14:27
* pcGenGUISFmechanicTest: updated sf_mechanic.xml to fix the integration test.
The change is related to the commit 765bb11

* Partially reverted the commit ba9759c, because WeakReference lost values for CSKILL object. This is a regression.
It is possible, that either SoftReference should be used, or a strong reference.
Fixed: pcGenGUISFmechanicTest - after the bug with CSKILL is fixed
Fixed: pcGenGUISFsoldierTest - after the bug with CSKILL is fixed
…og, because the underlying code works in Swing threads only. Now the entire content of the panel is running in JavaFX thread. (PCGen#6896)

Removed few empty lines.
Bumps [org.springframework:spring-beans](https://github.com/spring-projects/spring-framework) from 6.0.10 to 6.0.11.
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](spring-projects/spring-framework@v6.0.10...v6.0.11)

---
updated-dependencies:
- dependency-name: org.springframework:spring-beans
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [org.springframework:spring-web](https://github.com/spring-projects/spring-framework) from 6.0.10 to 6.0.11.
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](spring-projects/spring-framework@v6.0.10...v6.0.11)

---
updated-dependencies:
- dependency-name: org.springframework:spring-web
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [org.springframework:spring-core](https://github.com/spring-projects/spring-framework) from 6.0.10 to 6.0.11.
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](spring-projects/spring-framework@v6.0.10...v6.0.11)

---
updated-dependencies:
- dependency-name: org.springframework:spring-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Goldielocks has incorrect value displayed for darkvision in the ability.

* NEWSOURCE-424
Starfinder Near Space request
* Goldielocks has incorrect value displayed for darkvision in the ability.

* NEWSOURCE-435
Request for Vanguard (Path of Iron - Ascension Games)
…en#6902)

Bumps [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit5) from 5.9.3 to 5.10.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](junit-team/junit-framework@r5.9.3...r5.10.0)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-params
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…CGen#6906)

Bumps [org.junit.platform:junit-platform-runner](https://github.com/junit-team/junit5) from 1.9.3 to 1.10.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/commits)

---
updated-dependencies:
- dependency-name: org.junit.platform:junit-platform-runner
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…6905)

Bumps [org.junit.jupiter:junit-jupiter-api](https://github.com/junit-team/junit5) from 5.9.3 to 5.10.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](junit-team/junit-framework@r5.9.3...r5.10.0)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…en#6903)

Bumps [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.9.3 to 5.10.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](junit-team/junit-framework@r5.9.3...r5.10.0)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-engine
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…CGen#6904)

Bumps [org.junit.platform:junit-platform-launcher](https://github.com/junit-team/junit5) from 1.9.3 to 1.10.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/commits)

---
updated-dependencies:
- dependency-name: org.junit.platform:junit-platform-launcher
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps org.apache.commons:commons-lang3 from 3.12.0 to 3.13.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-lang3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps edu.sc.seis.launch4j from 3.0.3 to 3.0.4.

---
updated-dependencies:
- dependency-name: edu.sc.seis.launch4j
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps com.github.spotbugs from 5.0.14 to 5.1.0.

---
updated-dependencies:
- dependency-name: com.github.spotbugs
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps com.github.spotbugs from 5.1.0 to 5.1.1.

---
updated-dependencies:
- dependency-name: com.github.spotbugs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps com.github.spotbugs from 5.1.1 to 5.1.2.

---
updated-dependencies:
- dependency-name: com.github.spotbugs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Vest and others added 25 commits December 2, 2025 11:16
…lity class

Signed-off-by: Vest <Vest@users.noreply.github.com>
Signed-off-by: Vest <Vest@users.noreply.github.com>
Signed-off-by: Vest <Vest@users.noreply.github.com>
Signed-off-by: Vest <Vest@users.noreply.github.com>
Signed-off-by: Vest <Vest@users.noreply.github.com>
# Conflicts:
#	.github/workflows/gradle-release.yml
#	AGENTS.md
#	build.gradle
#	code/src/utest/pcgen/persistence/lst/URIFactoryTest.java
#	gradle.properties
Signed-off-by: Vest <Vest@users.noreply.github.com>
…-compilation

The previous downloadJRE/downloadJavaFXModules tasks used imperative doLast logic incompatible with the configuration cache, and extractJDKs was broken (ran checks at configuration time, always reported NO-SOURCE).
Replace with declarative per-platform Download and Copy tasks that run in parallel, support proper up-to-date checks, and are configuration-cache compatible. The runtime plugin now references jdks/ instead of jre/.

Removed default task - build.

Signed-off-by: Vest <Vest@users.noreply.github.com>
Comment thread gradlew.bat
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have updated Gradle to 9.5.0

Vest added 4 commits May 12, 2026 07:16
Xalan 2.x is effectively unmaintained and causes module-system friction
in jlink builds. Saxon-HE 12.7 is the modern replacement and registers
the same javax.xml.transform.TransformerFactory SPI.

- Remove xalan:xalan and xalan:serializer dependencies; exclude them
  from FOP's transitive graph so they cannot re-enter
- Add net.sf.saxon:Saxon-HE:12.7
- Explicitly name Saxon's TransformerFactoryImpl in FopTask rather than
  relying on classpath SPI ordering
- Replace org.apache.xml.utils.XMLChar.isValid() in AbstractToken with
  an inline XML 1.0 §2.2 character validity check, eliminating the last
  direct reference to the Xalan serializer jar
- Update jlink forceMerge and drop the now-unnecessary
  excludeProvides for org.apache.xalan.extensions.bsf.BSFManager
- Replace xalan:nodeset() with exsl:node-set() and update namespace
  declarations across 171 output sheet XSLT files for Saxon compatibility
…tion

The badass-jlink-plugin (org.beryx.jlink) replaces org.beryx.runtime
which is incompatible with Gradle 9's configuration cache. These
supporting changes complete the migration:

- Add module-info.java declaring the pcgen module with its requires,
  exports, and opens directives for JPMS compliance
- Update distribution.gradle: replace runtimeZip with jlinkZip, fix
  installDist to avoid config-cache-unsafe delete{} block
- Update release.gradle: replace runtimeZip with jlinkZip, reference
  fullJpackage task for Mac/Linux artifact assembly
Fixes 'Expression should be of type number' warnings by making the
string-to-number conversion explicit in all outputsheet XSL files.
- MacDirLauncher: cd to Contents/app so PCGen finds data/plugins/preview/
  outputsheets, invoke PcGen binary via absolute path
- module-info.java: open pcgen.gui3.* packages for JavaFX FXML reflection
- assembleJpackageImage: always re-copy since jpackageImage wipes the
  output directory on rebuild
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants