Skip to content

Commit 0da501f

Browse files
Vestdependabot[bot]kariannaLegacyKingmertonmonk
authored
refactoring gradle.build: Use gradle's task parallelization and caching to speedup builds (#7556)
* Bump org.springframework:spring-core from 6.0.10 to 6.0.11 (#6897) 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> * gradle investigation * Newsource 424 (#6901) * Goldielocks has incorrect value displayed for darkvision in the ability. * NEWSOURCE-424 Starfinder Near Space request * Newsource 435 (#6900) * Goldielocks has incorrect value displayed for darkvision in the ability. * NEWSOURCE-435 Request for Vanguard (Path of Iron - Ascension Games) * Bump org.junit.jupiter:junit-jupiter-params from 5.9.3 to 5.10.0 (#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> * Bump org.junit.platform:junit-platform-runner from 1.9.3 to 1.10.0 (#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> * Bump org.junit.jupiter:junit-jupiter-api from 5.9.3 to 5.10.0 (#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> * Bump org.junit.jupiter:junit-jupiter-engine from 5.9.3 to 5.10.0 (#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> * Bump org.junit.platform:junit-platform-launcher from 1.9.3 to 1.10.0 (#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> * Fixed #6901: fixed the Piazo - Near Space cover. (#6907) * Bump org.apache.commons:commons-lang3 from 3.12.0 to 3.13.0 (#6908) 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> * Bump edu.sc.seis.launch4j from 3.0.3 to 3.0.4 (#6909) 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> * Bump com.github.spotbugs from 5.0.14 to 5.1.0 (#6910) 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> * Bump com.github.spotbugs from 5.1.0 to 5.1.1 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> * Bump com.github.spotbugs from 5.1.1 to 5.1.2 (#6912) 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> * Spaces before tags; symbols we avoid; and outputsheet improvements * Bump com.github.spotbugs from 5.1.2 to 5.1.3 (#6913) Bumps com.github.spotbugs from 5.1.2 to 5.1.3. --- 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> * Bump org.apache.xmlgraphics:fop from 2.8 to 2.9 (#6915) Bumps org.apache.xmlgraphics:fop from 2.8 to 2.9. --- updated-dependencies: - dependency-name: org.apache.xmlgraphics:fop 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> * fix checkstyle warning * Added initial GH action support * Upgraded gradle wrapper to 8.11.1. * Added testing to gh-action. * First attempt to log data in test. It failed in GH actions. * Added the logging to all tests. * Added gradle cache to a github action setup-java. * Disabled logging, but added the test results upload. * Enabled "write" permissions for test results * Refactored TestHelper.java Added some logging. * Updated cache-dependency-path. * First attempt to cache build/classes and build/jre * Corrected a typo in gradle.yml * Try to clear the cache and fill it with values. * First step to remove NSIS from the distro; Removed explicit System.exit(0) in Main. It allows to enable "slowtest" that generates and compares XMLs. Marked SystemExitInterceptor as deprecated and removal=true. Since Java does not offer any alternative, we have to find a better solution. P.S. NSIS is planned to be removed to use jpackage only. * Performance optimization: the debugPrint (when called frequently) uses StackTrace to determine the logger name. This is expensive and replaced with an explicit logger creation. * Refactored Logging.java. * Upgraded gradle-wrapper from 8.11.1 to 8.12 * Remove .run/ from git repository, because it tracked by mistake in #7056 * Refactored several classes. The main goal was adding the Optional to methods that return null. In some cases, the null reference/result was not checked, but the code never failed, because it was not executed. There were no tests, that is why it was difficult to check, whether the refactoring was right :( * Corrected pf_Cleric test; 1. Corrected the typo in special properties (light crossbow); 2. Corrected maxdex for MAXDEX bonus; * Remove "public" and "abstract" for several interfaces (redundant) * Added more logging to PcgenFtlTestCase.java (it will help to determine the difference between "golden" and generated files). Trimmed lines in base.xml and base-xml.ftl template. * Trimmed different *.xml inputs. Corrected pf_Rogue.xml result: +1 reflex comes from Halfling Luch and +3 from his Cloak. * Updated build.gradle - disable security manager for all Test Gradle "actions" Created a "graceful exit" object + interceptor. It is supposed to replace System.Exit calls in different parts of the project; Updated reporting.gradle by increasing versions of some dependencies; Removed a DM_EXIT rule from spotbugs -> the calls of System.Exit must be replaced with GracefulExit. The decision to create a custom interceptor was taken based on the discussion from Reddit: https://www.reddit.com/r/java/comments/1fpxmfp/jep_486_permanently_disable_the_security_manager/ * Added JavaDoc to Exit* and GracefulExit classes. * Resolved warnings for Gradle 8.12: "Space-assignment syntax in Groovy DSL has been deprecated." * Moved GracefulExit from test to main (util). Replaced few System.exit with GracefulExit.exit calls. Refactored few methods to satisfy SonarQube warnings. * Refactored CommandLineArguments.java to avoid hidden System.exit calls. * Corrected failed int (slow) tests * Corrected a wrong assertion message * Removed SystemExitInterceptor.java, because it was deprecated; Refactored CommandLineArguments and its test. Increased the code coverage. * Added a checkstyle rule that prevents the project from System.exit usage outside GracefulExit. * Use the latest version of Freemarker template engine. * Resolved warnings from Gradle. * Resolved comments from Github PR. Moved a GUI-error message to the localization file. Formatted error messages * JaCoCo was added to github actions - now it shows the high-level code coverage my tests * Create a jpackage build. Signed-off-by: Vest <Vest@users.noreply.github.com> * First attempt to build releases for all OSes. Signed-off-by: Vest <Vest@users.noreply.github.com> * Changed the event to build a release conditionally. Signed-off-by: Vest <Vest@users.noreply.github.com> * Update gradle-release.yml * Corrected the artifact name Signed-off-by: Vest <Vest@users.noreply.github.com> * Attempt to create releases Signed-off-by: Vest <Vest@users.noreply.github.com> * Attempt to create releases (v2) Signed-off-by: Vest <Vest@users.noreply.github.com> * Corrected the artifact creation. Signed-off-by: Vest <Vest@users.noreply.github.com> * Attempt to create one more release Signed-off-by: Vest <Vest@users.noreply.github.com> * Updated JDK from 21.0.5 to 21.0.6 Signed-off-by: Vest <Vest@users.noreply.github.com> * Corrected a build for Windows (at least). gradle jpackageImage Signed-off-by: Vest <Vest@users.noreply.github.com> * Added ubuntu-24-arm Signed-off-by: Vest <Vest@users.noreply.github.com> * Added a hotfix to repair linux-arm build. Signed-off-by: Vest <Vest@users.noreply.github.com> * Update Gradle wrapper to version 8.13 and fix output formatting in gradlew Signed-off-by: Vest <Vest@users.noreply.github.com> * Update Gradle wrapper to version 8.14 Signed-off-by: Vest <Vest@users.noreply.github.com> * Removed jar-export-plugins from pluginbuild.xml Added the same task to plugins.gradle Signed-off-by: Vest <Vest@users.noreply.github.com> * Update Appveyor config to adjust Gradle commands and formatting Removed the `buildNsis` task from the Gradle `test_script`, streamlining the build process. Additionally, fixed unnecessary trailing spaces in multiple sections for better formatting consistency. These changes simplify the CI process and improve readability. Signed-off-by: Vest <Vest@users.noreply.github.com> * Remove Ant-based build files for Gradle-only build system This commit deletes `build-gradle.xml` and `pluginbuild.xml` as they are no longer required. The transition to a Gradle-based build system eliminates dependency on Ant, simplifying the build process. Signed-off-by: Vest <Vest@users.noreply.github.com> * Update properties and refine Gradle plugin Jar tasks Added a new warning message for remote list preferences in properties. Improved Gradle tasks to include all nested class files for export and bonus plugins, ensuring more comprehensive builds. Signed-off-by: Vest <Vest@users.noreply.github.com> * Refactor code style by removing unnecessary whitespace and updating method signatures in PCGenTaskExecutor and PluginLoader Signed-off-by: Vest <Vest@users.noreply.github.com> * Refactored and changed files that didn't pass ```gradle checkstyleMain``` Few recent pull requests broke the styling: #7319 Signed-off-by: Vest <Vest@users.noreply.github.com> * Refactored and changed files that didn't pass ```gradle checkstyleMain``` Few recent pull requests broke the styling: #7319 Signed-off-by: Vest <Vest@users.noreply.github.com> * Refactor PluginClassLoader Signed-off-by: Vest <Vest@users.noreply.github.com> * Add plugins.gradle to Gradle configuration for release and test workflows Signed-off-by: Vest <Vest@users.noreply.github.com> * Update Gradle wrapper to version 9.0.0 and fix classpath configuration in wrapper scripts Signed-off-by: Vest <Vest@users.noreply.github.com> * Update JavaFX version to 21.0.8 and improve URIFactory error handling with new tests Signed-off-by: Vest <Vest@users.noreply.github.com> * Improve README formatting and grammar for clarity and consistency Signed-off-by: Vest <Vest@users.noreply.github.com> * Refactor test task configurations to use correct directory paths for test classes Signed-off-by: Vest <Vest@users.noreply.github.com> * Set name and description for code review agent Updated agent metadata with name and description. * Create Security Review Agent documentation Adds a new agent for security review of code. * Rename my-agent.md to my-code-review-agent.md * Changed PluginBuildTest, because the new plugins are built from corresponding .java files. The slow test has been reverted, because it was broken in old commits (DATA-4372) Signed-off-by: Vest <Vest@users.noreply.github.com> * Updated Java to 21.0.8 (mac aarch64) Gradle wrapper to 9.1.0 Signed-off-by: Vest <Vest@users.noreply.github.com> * Update Gradle wrapper to version 9.2.0 and refactor dependency declarations to avoid Gradle's warnings. Such constructions will be deprecated in Gradle 10. Signed-off-by: Vest <Vest@users.noreply.github.com> * Update Java&JavaFX to 25.0.1 and JaCoCo to 0.8.14 versions in build.gradle Signed-off-by: Vest <Vest@users.noreply.github.com> * Add native access flags for JavaFX modules in distribution.gradle Signed-off-by: Vest <Vest@users.noreply.github.com> * Refactor JavaFX resource loading by introducing PanelFromResource utility class Signed-off-by: Vest <Vest@users.noreply.github.com> * Reverted a part of #7462, that broke DescriptionTest. Signed-off-by: Vest <Vest@users.noreply.github.com> * Update FXML files to use JavaFX 25.0.1 namespace Signed-off-by: Vest <Vest@users.noreply.github.com> * Corrected checkstyle findings Signed-off-by: Vest <Vest@users.noreply.github.com> * Added initial GH action support * Upgraded gradle wrapper to 8.11.1. * Added testing to gh-action. * First attempt to log data in test. It failed in GH actions. * Added the logging to all tests. * Added gradle cache to a github action setup-java. * Disabled logging, but added the test results upload. * Enabled "write" permissions for test results * Refactored TestHelper.java Added some logging. * Updated cache-dependency-path. * First attempt to cache build/classes and build/jre * Corrected a typo in gradle.yml * Try to clear the cache and fill it with values. * First step to remove NSIS from the distro; Removed explicit System.exit(0) in Main. It allows to enable "slowtest" that generates and compares XMLs. Marked SystemExitInterceptor as deprecated and removal=true. Since Java does not offer any alternative, we have to find a better solution. P.S. NSIS is planned to be removed to use jpackage only. * Performance optimization: the debugPrint (when called frequently) uses StackTrace to determine the logger name. This is expensive and replaced with an explicit logger creation. * Refactored Logging.java. * Upgraded gradle-wrapper from 8.11.1 to 8.12 * Remove .run/ from git repository, because it tracked by mistake in #7056 * Refactored several classes. The main goal was adding the Optional to methods that return null. In some cases, the null reference/result was not checked, but the code never failed, because it was not executed. There were no tests, that is why it was difficult to check, whether the refactoring was right :( * Updated PMD to 7.17 Added many rules to ruleset.xml Fixed few warnings Enabled config-cache for testing purposes. Signed-off-by: Vest <Vest@users.noreply.github.com> * Corrected pf_Cleric test; 1. Corrected the typo in special properties (light crossbow); 2. Corrected maxdex for MAXDEX bonus; * Remove "public" and "abstract" for several interfaces (redundant) * Added more logging to PcgenFtlTestCase.java (it will help to determine the difference between "golden" and generated files). Trimmed lines in base.xml and base-xml.ftl template. * Trimmed different *.xml inputs. Corrected pf_Rogue.xml result: +1 reflex comes from Halfling Luch and +3 from his Cloak. * Updated build.gradle - disable security manager for all Test Gradle "actions" Created a "graceful exit" object + interceptor. It is supposed to replace System.Exit calls in different parts of the project; Updated reporting.gradle by increasing versions of some dependencies; Removed a DM_EXIT rule from spotbugs -> the calls of System.Exit must be replaced with GracefulExit. The decision to create a custom interceptor was taken based on the discussion from Reddit: https://www.reddit.com/r/java/comments/1fpxmfp/jep_486_permanently_disable_the_security_manager/ * Added JavaDoc to Exit* and GracefulExit classes. * Resolved warnings for Gradle 8.12: "Space-assignment syntax in Groovy DSL has been deprecated." * Moved GracefulExit from test to main (util). Replaced few System.exit with GracefulExit.exit calls. Refactored few methods to satisfy SonarQube warnings. * Refactored CommandLineArguments.java to avoid hidden System.exit calls. * Corrected failed int (slow) tests * Corrected a wrong assertion message * Removed SystemExitInterceptor.java, because it was deprecated; Refactored CommandLineArguments and its test. Increased the code coverage. * Added a checkstyle rule that prevents the project from System.exit usage outside GracefulExit. * Use the latest version of Freemarker template engine. * Resolved warnings from Gradle. * Resolved comments from Github PR. Moved a GUI-error message to the localization file. Formatted error messages * JaCoCo was added to github actions - now it shows the high-level code coverage my tests * Create a jpackage build. Signed-off-by: Vest <Vest@users.noreply.github.com> * First attempt to build releases for all OSes. Signed-off-by: Vest <Vest@users.noreply.github.com> * Changed the event to build a release conditionally. Signed-off-by: Vest <Vest@users.noreply.github.com> * Update gradle-release.yml * Corrected the artifact name Signed-off-by: Vest <Vest@users.noreply.github.com> * Attempt to create releases Signed-off-by: Vest <Vest@users.noreply.github.com> * Attempt to create releases (v2) Signed-off-by: Vest <Vest@users.noreply.github.com> * Corrected the artifact creation. Signed-off-by: Vest <Vest@users.noreply.github.com> * Attempt to create one more release Signed-off-by: Vest <Vest@users.noreply.github.com> * Updated JDK from 21.0.5 to 21.0.6 Signed-off-by: Vest <Vest@users.noreply.github.com> * Corrected a build for Windows (at least). gradle jpackageImage Signed-off-by: Vest <Vest@users.noreply.github.com> * Added ubuntu-24-arm Signed-off-by: Vest <Vest@users.noreply.github.com> * Added a hotfix to repair linux-arm build. Signed-off-by: Vest <Vest@users.noreply.github.com> * Update Gradle wrapper to version 8.13 and fix output formatting in gradlew Signed-off-by: Vest <Vest@users.noreply.github.com> * Update Gradle wrapper to version 8.14 Signed-off-by: Vest <Vest@users.noreply.github.com> * Removed jar-export-plugins from pluginbuild.xml Added the same task to plugins.gradle Signed-off-by: Vest <Vest@users.noreply.github.com> * Update Appveyor config to adjust Gradle commands and formatting Removed the `buildNsis` task from the Gradle `test_script`, streamlining the build process. Additionally, fixed unnecessary trailing spaces in multiple sections for better formatting consistency. These changes simplify the CI process and improve readability. Signed-off-by: Vest <Vest@users.noreply.github.com> * Remove Ant-based build files for Gradle-only build system This commit deletes `build-gradle.xml` and `pluginbuild.xml` as they are no longer required. The transition to a Gradle-based build system eliminates dependency on Ant, simplifying the build process. Signed-off-by: Vest <Vest@users.noreply.github.com> * Update properties and refine Gradle plugin Jar tasks Added a new warning message for remote list preferences in properties. Improved Gradle tasks to include all nested class files for export and bonus plugins, ensuring more comprehensive builds. Signed-off-by: Vest <Vest@users.noreply.github.com> * Refactor code style by removing unnecessary whitespace and updating method signatures in PCGenTaskExecutor and PluginLoader Signed-off-by: Vest <Vest@users.noreply.github.com> * Refactored and changed files that didn't pass ```gradle checkstyleMain``` Few recent pull requests broke the styling: #7319 Signed-off-by: Vest <Vest@users.noreply.github.com> * Refactored and changed files that didn't pass ```gradle checkstyleMain``` Few recent pull requests broke the styling: #7319 Signed-off-by: Vest <Vest@users.noreply.github.com> * Refactor PluginClassLoader Signed-off-by: Vest <Vest@users.noreply.github.com> * Add plugins.gradle to Gradle configuration for release and test workflows Signed-off-by: Vest <Vest@users.noreply.github.com> * Update Gradle wrapper to version 9.0.0 and fix classpath configuration in wrapper scripts Signed-off-by: Vest <Vest@users.noreply.github.com> * Update JavaFX version to 21.0.8 and improve URIFactory error handling with new tests Signed-off-by: Vest <Vest@users.noreply.github.com> * Improve README formatting and grammar for clarity and consistency Signed-off-by: Vest <Vest@users.noreply.github.com> * Refactor test task configurations to use correct directory paths for test classes Signed-off-by: Vest <Vest@users.noreply.github.com> * Changed PluginBuildTest, because the new plugins are built from corresponding .java files. The slow test has been reverted, because it was broken in old commits (DATA-4372) Signed-off-by: Vest <Vest@users.noreply.github.com> * Updated Java to 21.0.8 (mac aarch64) Gradle wrapper to 9.1.0 Signed-off-by: Vest <Vest@users.noreply.github.com> * DATA-4380 - 3.5e - Enable Jack Of All Trades to display 'Untrained' class skills * DATA-4379 - d20 modern, taking magical heritage, the 3 cantrips aren't selectable 6.08.00 rc10 * DATA-4381 - PF1e - Racial Heritage in Mythic not implemented * DATA-4381 - PF1e - Racial Heritage in Mythic not implemented * DATA-4383 PF1e Human Racial Heritage feat should only allow Humanoids; it currently allows any playable race * DATA-4384 Pf1e - Racial Heritage does not set RACESUBTYPE therefore all feats looking for a specific race do not qualify. Phase 1: Switch from "Racial Heritage ~ xxx" as a global to "Race ~ xxx" leaving Racial Heritage to correctly reference those qualifying for the Racial Heritage feat. * DATA-4384 Pf1e - Racial Heritage does not set RACESUBTYPE therefore all feats looking for a specific race do not qualify. Phase 2: Change PRERACE to PREFACT to simplify qualification as a Race and also clean up the RaceName%,SUBRACETYPE= vs RaceName,SUBRACETYPE= vs. RaceName% vs. RaceName entries. * Bump com.github.spotbugs from 6.4.2 to 6.4.4 (#7453) Bumps com.github.spotbugs from 6.4.2 to 6.4.4. --- updated-dependencies: - dependency-name: com.github.spotbugs dependency-version: 6.4.4 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> * Bump org.springframework:spring-beans from 6.2.11 to 6.2.12 (#7446) Bumps [org.springframework:spring-beans](https://github.com/spring-projects/spring-framework) from 6.2.11 to 6.2.12. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](spring-projects/spring-framework@v6.2.11...v6.2.12) --- updated-dependencies: - dependency-name: org.springframework:spring-beans dependency-version: 6.2.12 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> * Bump com.github.spotbugs:spotbugs-annotations from 4.9.6 to 4.9.8 (#7452) Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.9.6 to 4.9.8. - [Release notes](https://github.com/spotbugs/spotbugs/releases) - [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md) - [Commits](spotbugs/spotbugs@4.9.6...4.9.8) --- updated-dependencies: - dependency-name: com.github.spotbugs:spotbugs-annotations dependency-version: 4.9.8 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> * DATA-4385 Pf1e - Improve descriptions for some equipment modifiers to indicate they are conditional * 6.09.info (#7459) * support HASINFO and INFO tags * INFO tags are case insensitive * 6.09.info (#7462) * support HASINFO and INFO tags * INFO tags are case insensitive * INFO tag used explicitly rather than trying to override DESC tag * 6.09.info (#7463) * support HASINFO and INFO tags * INFO tags are case insensitive * INFO tag used explicitly rather than trying to override DESC tag * return an empty string if the INFO tag does not exist * 6.09.info (#7464) * support HASINFO and INFO tags * INFO tags are case insensitive * INFO tag used explicitly rather than trying to override DESC tag * return an empty string if the INFO tag does not exist * do not try INFO string for DESC tags unless specified * 6.09.info (#7465) * support HASINFO and INFO tags * INFO tags are case insensitive * INFO tag used explicitly rather than trying to override DESC tag * return an empty string if the INFO tag does not exist * do not try INFO string for DESC tags unless specified * checking for equality with a String * Update Gradle wrapper to version 9.2.0 and refactor dependency declarations to avoid Gradle's warnings. Such constructions will be deprecated in Gradle 10. Signed-off-by: Vest <Vest@users.noreply.github.com> * Update Java&JavaFX to 25.0.1 and JaCoCo to 0.8.14 versions in build.gradle Signed-off-by: Vest <Vest@users.noreply.github.com> * Add native access flags for JavaFX modules in distribution.gradle Signed-off-by: Vest <Vest@users.noreply.github.com> * Refactor JavaFX resource loading by introducing PanelFromResource utility class Signed-off-by: Vest <Vest@users.noreply.github.com> * Reverted a part of #7462, that broke DescriptionTest. Signed-off-by: Vest <Vest@users.noreply.github.com> * Update FXML files to use JavaFX 25.0.1 namespace Signed-off-by: Vest <Vest@users.noreply.github.com> * Fix remnant issues from PREFACT conversion with multiples lingering from PRERACE * Clean up * Fix Non-Monk getting Wisdom bonus. * Fix a bunch of minor formatting errors in pcc files * Some textual improvements and typo fixes. * Corrected checkstyle findings Signed-off-by: Vest <Vest@users.noreply.github.com> * Upgrade to Java 25 and fix lots of typos * Revert failing MULT:YES and fix var name in build script * Fix merge conflicts in GH actions * Disable configuration cache for now * Update dependencies * Now correctly creates images, also allows build to continue on finding PMD violations * Add LLM AGENT guidance * Update pcgen version to match what we are releasing next * Use previous way to release and apply to GH Actions * Upgrade gradle-wrapper.jar to 9.3.1 Signed-off-by: Vest <Vest@users.noreply.github.com> * Update Gradle properties and wrapper for version 9.5.0; Signed-off-by: Vest <Vest@users.noreply.github.com> * 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. Signed-off-by: Vest <Vest@users.noreply.github.com> * Replace Xalan with Saxon-HE as XSLT processor 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 * Add module-info.java and update gradle scripts for jlink plugin migration 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 * Wrap substring-before() with number() in XSLT arithmetic expressions Fixes 'Expression should be of type number' warnings by making the string-to-number conversion explicit in all outputsheet XSL files. * Fix jpackage app bundle: set working directory and open gui3 packages - 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 * Add requires directives for PCGen.base and PCGen.Formula modules IntelliJ enforces module boundaries strictly unlike the Gradle build which uses --patch-module to merge dependencies into the pcgen module. * Update Saxon-HE to 12.9 and enable native access for javafx.graphics * Update AGENTS.md to reflect current build.gradle state Fixes stale task names, plugin versions, and tool versions that drifted as build.gradle evolved (cleanJre→cleanJdks, JUnit 5→6, Checkstyle 12→13, SpotBugs plugin 6.4→6.5, PMD version added, jpackage→fullJpackage, download task names corrected, jlink plugin version noted). * Remove deprecated jdk.jsobject module requirement jdk.jsobject was deprecated for removal in Java 22 (JEP 471). JavaFX 22+ bundles its own JSObject support in javafx.web, so the explicit JDK module dependency is no longer needed. * Relocate split-package classes to resolve module boundary conflicts Move classes out of packages shared with PCGen-base/PCGen-Formula jars so that those jars can live on --module-path as proper modules instead of being merged via --patch-module: - pcgen.base.util.{NamedFormula,ProxyUtilities,RandomUtil,WeightedCollection} → pcgen.util - pcgen.base.format.HandedManager → pcgen.format This eliminates the split-package violation that prevented javac from seeing PCGen.base and PCGen.Formula as separate modules during compilation, allowing the requires directives in module-info.java to work with both Gradle and IntelliJ. * Fix jlink/jpackage by switching to proper module-path compilation - Remove fat jar: dependencies are now separate jars handled by jlink's forceMerge rather than bundled into pcgen.jar - Add xmlresolver to forceMerge to resolve package export conflict - Replace --patch-module with --module-path for compileJava: all dependencies are now visible as proper modules - Add requires directives for all runtime dependencies in module-info.java so the compiler can resolve them on the module-path * Fix IntelliJ module visibility and test source set scoping - Remove --patch-module hack from compileJava, place all dependencies on --module-path so IntelliJ and Gradle use the same module resolution - Add requires directives to module-info.java for all runtime deps (commons-lang3, commons-io, fop-core, fop-events, xmlgraphics-commons, spring, freemarker, jdom2, argparse4j, controlsfx, xmlunit, Saxon, jep) - Open additional packages to Spring for reflective bean instantiation - Add sourceSets.test.output to itest/slowtest compile classpaths so IntelliJ maps the test module dependency at Compile scope, not Runtime * Open additional gui3 sub-packages for reflection access * Remove org.openjfx.javafxplugin — redundant with manual JavaFX setup The plugin was causing configuration cache warnings (SourceSetContainer serialization). JavaFX modules are already managed manually via downloadJavaFXLocal/extractJavaFXLocal tasks and explicit --module-path args. The jlink task now depends on downloadJavaFXMods directly to get JavaFX jmods into the target JDK. * Add JavaFX SDK jars as dependencies for IntelliJ module resolution Without the javafxplugin, IntelliJ can't find javafx.controls etc. Adding the local mods/lib jars as implementation dependencies makes them visible to the IDE while Gradle still uses --module-path. * Fix checkstyle violations: exclude module-info.java and correct code issues - Exclude module-info.java from Checkstyle (it uses syntax Checkstyle can't parse) - Remove redundant same-package import in RandomUtil.java - Fix incorrect @param tag in AbstractToken.isValidXMLChar() --------- Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: Vest <Vest@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Martijn Verburg <martijnverburg@gmail.com> Co-authored-by: Andrew Maitland <drew0500@yahoo.com> Co-authored-by: mertonmonk <33469335+mertonmonk@users.noreply.github.com> Co-authored-by: Cullen Walsh <ckwalsh@cullenwalsh.com> Co-authored-by: AtlasHackert <danielpharos@hotmail.com>
1 parent 8203907 commit 0da501f

210 files changed

Lines changed: 1090 additions & 1015 deletions

File tree

Some content is hidden

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

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ pcgen.iws
115115

116116
# Misc
117117
jre/
118+
jdks/
118119
mods/
119120
code/manifest-tests
120121
.DS_Store

AGENTS.md

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ This document captures the concrete commands, structure, conventions, and gotcha
88
- Build tool: Gradle (via wrapper)
99
- Java toolchain: Java 25 (Temurin)
1010
- UI: JavaFX; headless testing uses TestFX/Monocle
11-
- Packaging: jlink/jpackage with custom runtimes and native installers
11+
- Packaging: jlink (org.beryx.jlink 4.0.0) / jpackage with custom runtimes and native installers
1212

1313
Key entry point: `pcgen.system.Main` (code/src/java/pcgen/system/Main.java)
1414

@@ -39,7 +39,7 @@ Always use the wrapper (./gradlew). Java 25 is required; Gradle will fetch depen
3939
- ./gradlew tasks
4040
- Build (default)
4141
- ./gradlew build
42-
- Run unit tests (JUnit 5; headless JavaFX)
42+
- Run unit tests (JUnit 6; headless JavaFX)
4343
- ./gradlew test
4444
- Integration tests (defined source set)
4545
- ./gradlew itest
@@ -60,12 +60,13 @@ Always use the wrapper (./gradlew). Java 25 is required; Gradle will fetch depen
6060
- Run the app (ensures JavaFX modules for host platform)
6161
- ./gradlew run
6262
- Create native app image/installer via jpackage
63-
- ./gradlew jpackage
63+
- ./gradlew fullJpackage
6464
- Clean outputs and auxiliary folders (extended)
65-
- ./gradlew clean (also triggers cleanPlugins, cleanOutput, cleanJre, cleanMods, cleanMasterSheets)
65+
- ./gradlew clean (also triggers cleanPlugins, cleanOutput, cleanJdks, cleanMods, cleanMasterSheets)
6666

6767
Notes
68-
- Some tasks trigger downloads of JDKs/JavaFX for all platforms (downloadJRE, downloadJavaFXModules) or host SDK (downloadJavaFXLocal/extractJavaFXLocal). CI caches build/jre and build/libs.
68+
- Some tasks trigger downloads of JDKs/JavaFX for all platforms (downloadJDKs, extractJDKs, downloadJavaFXMods) or host SDK (downloadJavaFXLocal/extractJavaFXLocal). CI caches build/jre and build/libs.
69+
- The `jre` task prepares all platform JDKs with JavaFX modules for runtime image creation.
6970
- Runtime bundles expect assets in data/, system/, outputsheets/, preview/, vendordata/, homebrewdata/.
7071

7172
## Running From Source
@@ -90,7 +91,7 @@ Batch export path exists in Main.startupWithoutGUI(). Tests demonstrate usage in
9091

9192
## Testing Approach
9293

93-
- JUnit 5 with Jupiter, xmlunit for XML comparisons, TestFX for JavaFX UI components.
94+
- JUnit 6 with Jupiter, xmlunit for XML comparisons, TestFX for JavaFX UI components.
9495
- Source sets:
9596
- test: code/src/utest + testcommon
9697
- itest: code/src/itest + testcommon
@@ -103,9 +104,9 @@ Batch export path exists in Main.startupWithoutGUI(). Tests demonstrate usage in
103104

104105
## Code Quality and Style
105106

106-
- Checkstyle config: code/standards/checkstyle.xml (enforced via reporting.gradle; toolVersion 12.1.2). Newline at EOF; 201 char line length; prohibits `System.exit` (use pcgen.util.GracefulExit.exit).
107-
- PMD: ruleset at code/standards/ruleset.xml (referenced from reporting.gradle).
108-
- SpotBugs: plugin 6.4.7; toolVersion 4.9.8; exclude filter code/standards/spotbugs_ignore.xml; ignoreFailures true; extra findsecbugs plugin.
107+
- Checkstyle config: code/standards/checkstyle.xml (enforced via reporting.gradle; toolVersion 13.2.0). Newline at EOF; 201 char line length; prohibits `System.exit` (use pcgen.util.GracefulExit.exit).
108+
- PMD: ruleset at code/standards/ruleset.xml (referenced from reporting.gradle); toolVersion 7.21.0; dependencies pmd-java 7.24.0 and pmd-ant 7.24.0.
109+
- SpotBugs: plugin 6.5.4; toolVersion 4.9.8; exclude filter code/standards/spotbugs_ignore.xml; ignoreFailures true; extra findsecbugs plugin.
109110
- Aggregate quality task: ./gradlew allReports
110111

111112
Conventions/gotchas observed
@@ -177,10 +178,11 @@ Conventions/gotchas observed
177178
- Java version and JavaFX module handling are intertwined across build.gradle and distribution tasks — changing one often requires adjusting tasks (run, test, JavaCompile, runtime/jpackage) and CI.
178179
- The distribution relies on file layout in data/, outputsheets/, system/, preview/ — deletions or renames will break runtime validation in Main.validateEnvironment().
179180
- GracefulExit should be used for controlled termination (tests hook the exit function).
181+
- Module compilation: PCGen-base and PCGen-Formula jars are placed on `--module-path` while all other dependencies are merged into the pcgen module via `--patch-module`. This means **no source file in the pcgen module may share a package with classes in PCGen-base or PCGen-Formula jars** (Java forbids split packages across modules). Currently conflicting packages (`pcgen.base.util`, `pcgen.base.format`) have been relocated to `pcgen.util` and `pcgen.format` respectively. If adding new classes whose package exists in either jar, place them in a non-overlapping package.
180182

181183
## Maintainer/Issue Tracking Context
182184

183185
- Primary docs: README.md (development setup, essential Gradle tasks)
184186
- Issue tracker: Jira at https://pcgenorg.atlassian.net (CODE/DATA/etc.) as referenced in README and docs/faqpages/faqsubmittingabugreport.md
185187

186-
This file documents only observed behavior and commands present in this repository as of the current state.
188+
This file documents only observed behavior and commands present in this repository as of the current state.

0 commit comments

Comments
 (0)