Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
311 commits
Select commit Hold shift + click to select a range
f7943c8
Bump org.apache.xmlgraphics:fop from 2.8 to 2.9 (#6915)
dependabot[bot] Aug 22, 2023
93ddca2
Merge branch 'master' of github.com:PCGen/pcgen
karianna Aug 22, 2023
1ab46cb
merge conflicts
karianna Oct 2, 2023
69e59ef
Merge branch 'master' of github.com:PCGen/pcgen
karianna Oct 3, 2023
73ba1f3
fix checkstyle warning
karianna Nov 5, 2023
571bd4c
Merge branch 'master' of github.com:PCGen/pcgen
karianna Nov 5, 2023
e0b961b
merge conflicts
karianna Sep 30, 2024
8a114a1
merge conflicts
karianna Nov 22, 2024
4213a98
Added initial GH action support
Vest Nov 22, 2024
4d6772e
Upgraded gradle wrapper to 8.11.1.
Vest Nov 22, 2024
89188be
Added testing to gh-action.
Vest Nov 22, 2024
3d1400a
First attempt to log data in test. It failed in GH actions.
Vest Nov 22, 2024
2cf3d44
Added the logging to all tests.
Vest Nov 22, 2024
0f6b522
Added gradle cache to a github action setup-java.
Vest Nov 22, 2024
3e474f9
Disabled logging, but added the test results upload.
Vest Nov 22, 2024
44a4cd7
Enabled "write" permissions for test results
Vest Nov 22, 2024
ccf45fd
Refactored TestHelper.java
Vest Nov 22, 2024
78968a1
Updated cache-dependency-path.
Vest Nov 25, 2024
797b24f
First attempt to cache build/classes and build/jre
Vest Nov 25, 2024
4b2d667
Corrected a typo in gradle.yml
Vest Nov 25, 2024
38eab4b
Try to clear the cache and fill it with values.
Vest Nov 25, 2024
2af5e06
Merge branch 'master' into gh_build
Vest Dec 20, 2024
5b85e17
First step to remove NSIS from the distro;
Vest Dec 22, 2024
ea32a3a
Performance optimization: the debugPrint (when called frequently) use…
Vest Dec 22, 2024
4effb4f
Refactored Logging.java.
Vest Dec 22, 2024
13b9398
Merge branch 'master' of github.com:PCGen/pcgen
karianna Dec 24, 2024
c8495ca
Upgraded gradle-wrapper from 8.11.1 to 8.12
Vest Dec 24, 2024
505d668
Remove .run/ from git repository, because it tracked by mistake in #7056
Vest Dec 24, 2024
5dfc7e0
Refactored several classes. The main goal was adding the Optional to …
Vest Dec 24, 2024
efd9bd9
Merge pull request #2 from PCGen/master
Vest Dec 24, 2024
e049370
Corrected pf_Cleric test;
Vest Dec 27, 2024
e29ad64
Remove "public" and "abstract" for several interfaces (redundant)
Vest Dec 27, 2024
f6466bf
Merge branch 'master' into gh_build
Vest Jan 5, 2025
01b97b5
Added more logging to PcgenFtlTestCase.java (it will help to determin…
Vest Jan 11, 2025
373f2b1
Trimmed different *.xml inputs.
Vest Jan 11, 2025
acd1482
Updated build.gradle - disable security manager for all Test Gradle "…
Vest Jan 11, 2025
ec70b26
Added JavaDoc to Exit* and GracefulExit classes.
Vest Jan 11, 2025
623933e
Resolved warnings for Gradle 8.12: "Space-assignment syntax in Groovy…
Vest Jan 12, 2025
66cebf9
Moved GracefulExit from test to main (util).
Vest Jan 12, 2025
0717621
Refactored CommandLineArguments.java to avoid hidden System.exit calls.
Vest Jan 12, 2025
4b1146e
Corrected failed int (slow) tests
Vest Jan 12, 2025
113a305
Corrected a wrong assertion message
Vest Jan 12, 2025
59833c5
Removed SystemExitInterceptor.java, because it was deprecated;
Vest Jan 13, 2025
857ba4b
Merge branch 'master' into gh_build
Vest Jan 13, 2025
beb34d2
Added a checkstyle rule that prevents the project from System.exit us…
Vest Jan 13, 2025
98e865c
Use the latest version of Freemarker template engine.
Vest Jan 13, 2025
d299d04
Resolved warnings from Gradle.
Vest Jan 13, 2025
8b14c4d
Resolved comments from Github PR.
Vest Jan 14, 2025
198ca33
Merge pull request #3 from Vest/master
Vest Jan 15, 2025
e06d5b4
JaCoCo was added to github actions - now it shows the high-level code…
Vest Jan 31, 2025
05bc739
Merge branch 'master' into gh_build
Vest Jan 31, 2025
a03e8da
Create a jpackage build.
Vest Feb 1, 2025
cbe681d
First attempt to build releases for all OSes.
Vest Feb 1, 2025
095b1ed
Changed the event to build a release conditionally.
Vest Feb 1, 2025
1f6a122
Update gradle-release.yml
Vest Feb 1, 2025
21c2248
Corrected the artifact name
Vest Feb 1, 2025
24b463c
Attempt to create releases
Vest Feb 1, 2025
aebc6a4
Attempt to create releases (v2)
Vest Feb 1, 2025
995136a
Corrected the artifact creation.
Vest Feb 1, 2025
00f09c1
Attempt to create one more release
Vest Feb 1, 2025
592f9e6
Updated JDK from 21.0.5 to 21.0.6
Vest Feb 2, 2025
9febf0c
Corrected a build for Windows (at least).
Vest Feb 5, 2025
40e5157
Added ubuntu-24-arm
Vest Feb 10, 2025
09f54e6
Merge branch 'master' into gh_build
Vest Feb 10, 2025
3175c23
Added a hotfix to repair linux-arm build.
Vest Feb 10, 2025
717adc9
Merge branch 'master' of github.com:PCGen/pcgen
karianna Feb 13, 2025
3244d91
Merge branch 'refs/heads/master' into gh_build
Vest Mar 1, 2025
e77a2d1
Merge branch 'refs/heads/master' into gh_build
Vest Apr 2, 2025
2bb2f77
Update Gradle wrapper to version 8.13 and fix output formatting in gr…
Vest Apr 2, 2025
f47ed9d
Merge branch 'refs/heads/master' into gh_build
Vest May 4, 2025
10599f5
Update Gradle wrapper to version 8.14
Vest May 4, 2025
2bd9d44
Removed jar-export-plugins from pluginbuild.xml
Vest May 6, 2025
dbb8d2d
Update Appveyor config to adjust Gradle commands and formatting
Vest May 6, 2025
489afac
Remove Ant-based build files for Gradle-only build system
Vest May 6, 2025
3228591
Update properties and refine Gradle plugin Jar tasks
Vest May 6, 2025
4bf5e6d
Refactor code style by removing unnecessary whitespace and updating m…
Vest May 9, 2025
bf30f79
Refactored and changed files that didn't pass ```gradle checkstyleMai…
Vest May 9, 2025
7a8cd9e
Refactored and changed files that didn't pass ```gradle checkstyleMai…
Vest May 9, 2025
beb35db
Refactor PluginClassLoader
Vest May 10, 2025
b35be04
Add plugins.gradle to Gradle configuration for release and test workf…
Vest May 10, 2025
f7ee009
Merge branch 'master' into gh_build
Vest Aug 4, 2025
3d482c1
Update Gradle wrapper to version 9.0.0 and fix classpath configuratio…
Vest Aug 4, 2025
ce371bc
Update JavaFX version to 21.0.8 and improve URIFactory error handling…
Vest Aug 4, 2025
db579b8
Improve README formatting and grammar for clarity and consistency
Vest Aug 4, 2025
8d4df31
Refactor test task configurations to use correct directory paths for …
Vest Aug 4, 2025
a345d28
Set name and description for code review agent
karianna Oct 5, 2025
20d9da8
Create Security Review Agent documentation
karianna Oct 5, 2025
86ead86
Rename my-agent.md to my-code-review-agent.md
karianna Oct 5, 2025
c1d1e30
Merge branch 'master' of github.com:PCGen/pcgen
karianna Oct 12, 2025
2c84e66
Changed PluginBuildTest, because the new plugins are built from corre…
Vest Oct 16, 2025
5b64be3
Merge branch 'master' into gh_build
Vest Oct 16, 2025
f18e0e6
Updated Java to 21.0.8 (mac aarch64)
Vest Oct 16, 2025
7a7c095
Merge branch 'master' of github.com:karianna/pcgen
karianna Oct 23, 2025
68cfb1d
Merge branch 'master' into gh_build
Vest Nov 5, 2025
61ed417
Update Gradle wrapper to version 9.2.0 and refactor dependency declar…
Vest Nov 5, 2025
246ab50
Update Java&JavaFX to 25.0.1 and JaCoCo to 0.8.14 versions in build.g…
Vest Nov 5, 2025
7d9d599
Add native access flags for JavaFX modules in distribution.gradle
Vest Nov 9, 2025
b8384d4
Refactor JavaFX resource loading by introducing PanelFromResource uti…
Vest Nov 10, 2025
810228d
Reverted a part of #7462, that broke DescriptionTest.
Vest Nov 15, 2025
1910d4b
Update FXML files to use JavaFX 25.0.1 namespace
Vest Nov 15, 2025
8181e05
Merge branch 'master' into gh_build
Vest Nov 25, 2025
3f5c96f
Corrected checkstyle findings
Vest Nov 25, 2025
1088549
Added initial GH action support
Vest Nov 22, 2024
96534ac
Upgraded gradle wrapper to 8.11.1.
Vest Nov 22, 2024
be7afc9
Added testing to gh-action.
Vest Nov 22, 2024
00b5746
First attempt to log data in test. It failed in GH actions.
Vest Nov 22, 2024
4a23cca
Added the logging to all tests.
Vest Nov 22, 2024
c66e964
Added gradle cache to a github action setup-java.
Vest Nov 22, 2024
7265225
Disabled logging, but added the test results upload.
Vest Nov 22, 2024
b0f8897
Enabled "write" permissions for test results
Vest Nov 22, 2024
19d32c5
Refactored TestHelper.java
Vest Nov 22, 2024
f30dcef
Updated cache-dependency-path.
Vest Nov 25, 2024
ab2ee9f
First attempt to cache build/classes and build/jre
Vest Nov 25, 2024
a3844c1
Corrected a typo in gradle.yml
Vest Nov 25, 2024
2f87383
Try to clear the cache and fill it with values.
Vest Nov 25, 2024
306cee4
First step to remove NSIS from the distro;
Vest Dec 22, 2024
2d3d67c
Performance optimization: the debugPrint (when called frequently) use…
Vest Dec 22, 2024
5966729
Refactored Logging.java.
Vest Dec 22, 2024
d507a4d
Upgraded gradle-wrapper from 8.11.1 to 8.12
Vest Dec 24, 2024
6650a42
Remove .run/ from git repository, because it tracked by mistake in #7056
Vest Dec 24, 2024
6926296
Refactored several classes. The main goal was adding the Optional to …
Vest Dec 24, 2024
31954ae
Updated PMD to 7.17
Vest Dec 1, 2025
2555af3
Merge branch 'master' into gh_build
Vest Dec 1, 2025
d14f1d7
Corrected pf_Cleric test;
Vest Dec 27, 2024
8ef8a98
Remove "public" and "abstract" for several interfaces (redundant)
Vest Dec 27, 2024
8a2d6f3
Added more logging to PcgenFtlTestCase.java (it will help to determin…
Vest Jan 11, 2025
4023e59
Trimmed different *.xml inputs.
Vest Jan 11, 2025
d046643
Updated build.gradle - disable security manager for all Test Gradle "…
Vest Jan 11, 2025
19d4310
Added JavaDoc to Exit* and GracefulExit classes.
Vest Jan 11, 2025
e03f054
Resolved warnings for Gradle 8.12: "Space-assignment syntax in Groovy…
Vest Jan 12, 2025
bd78ddf
Moved GracefulExit from test to main (util).
Vest Jan 12, 2025
0118a22
Refactored CommandLineArguments.java to avoid hidden System.exit calls.
Vest Jan 12, 2025
6cf7525
Corrected failed int (slow) tests
Vest Jan 12, 2025
27c080a
Corrected a wrong assertion message
Vest Jan 12, 2025
a37dcd1
Removed SystemExitInterceptor.java, because it was deprecated;
Vest Jan 13, 2025
2ffe3b8
Added a checkstyle rule that prevents the project from System.exit us…
Vest Jan 13, 2025
c84c9e9
Use the latest version of Freemarker template engine.
Vest Jan 13, 2025
8734520
Resolved warnings from Gradle.
Vest Jan 13, 2025
c7dfb15
Resolved comments from Github PR.
Vest Jan 14, 2025
d441fdd
JaCoCo was added to github actions - now it shows the high-level code…
Vest Jan 31, 2025
4e27717
Create a jpackage build.
Vest Feb 1, 2025
1e65ed8
First attempt to build releases for all OSes.
Vest Feb 1, 2025
323ce7a
Changed the event to build a release conditionally.
Vest Feb 1, 2025
a9756e0
Update gradle-release.yml
Vest Feb 1, 2025
2854f9f
Corrected the artifact name
Vest Feb 1, 2025
80c433b
Attempt to create releases
Vest Feb 1, 2025
2a9c48c
Attempt to create releases (v2)
Vest Feb 1, 2025
b437f86
Corrected the artifact creation.
Vest Feb 1, 2025
f929f8f
Attempt to create one more release
Vest Feb 1, 2025
cef8846
Updated JDK from 21.0.5 to 21.0.6
Vest Feb 2, 2025
7b3ee46
Corrected a build for Windows (at least).
Vest Feb 5, 2025
4c0331e
Added ubuntu-24-arm
Vest Feb 10, 2025
daca6c2
Added a hotfix to repair linux-arm build.
Vest Feb 10, 2025
d15c808
Update Gradle wrapper to version 8.13 and fix output formatting in gr…
Vest Apr 2, 2025
eabb1cb
Update Gradle wrapper to version 8.14
Vest May 4, 2025
7a9674f
Removed jar-export-plugins from pluginbuild.xml
Vest May 6, 2025
570cb9a
Update Appveyor config to adjust Gradle commands and formatting
Vest May 6, 2025
ecc3f02
Remove Ant-based build files for Gradle-only build system
Vest May 6, 2025
9a6c2f2
Update properties and refine Gradle plugin Jar tasks
Vest May 6, 2025
5733815
Refactor code style by removing unnecessary whitespace and updating m…
Vest May 9, 2025
aa0688a
Refactored and changed files that didn't pass ```gradle checkstyleMai…
Vest May 9, 2025
d365c9a
Refactored and changed files that didn't pass ```gradle checkstyleMai…
Vest May 9, 2025
a33dba0
Refactor PluginClassLoader
Vest May 10, 2025
8526033
Add plugins.gradle to Gradle configuration for release and test workf…
Vest May 10, 2025
fe62e42
Update Gradle wrapper to version 9.0.0 and fix classpath configuratio…
Vest Aug 4, 2025
769bfbb
Update JavaFX version to 21.0.8 and improve URIFactory error handling…
Vest Aug 4, 2025
ebe1131
Improve README formatting and grammar for clarity and consistency
Vest Aug 4, 2025
d608e81
Refactor test task configurations to use correct directory paths for …
Vest Aug 4, 2025
7447654
Changed PluginBuildTest, because the new plugins are built from corre…
Vest Oct 16, 2025
ac14b3a
Updated Java to 21.0.8 (mac aarch64)
Vest Oct 16, 2025
ef99bb9
DATA-4380 - 3.5e - Enable Jack Of All Trades to display 'Untrained' c…
LegacyKing Oct 18, 2025
2c98b44
DATA-4379 - d20 modern, taking magical heritage, the 3 cantrips aren'…
LegacyKing Oct 18, 2025
c7b6948
DATA-4381 - PF1e - Racial Heritage in Mythic not implemented
LegacyKing Oct 18, 2025
3674e16
DATA-4381 - PF1e - Racial Heritage in Mythic not implemented
LegacyKing Oct 20, 2025
e4e2e2f
DATA-4383
LegacyKing Oct 21, 2025
60a15ad
DATA-4384
LegacyKing Oct 22, 2025
c073277
DATA-4384
LegacyKing Oct 22, 2025
e94eeb1
Bump com.github.spotbugs from 6.4.2 to 6.4.4 (#7453)
dependabot[bot] Oct 23, 2025
c832673
Bump org.springframework:spring-beans from 6.2.11 to 6.2.12 (#7446)
dependabot[bot] Oct 23, 2025
5f8d833
Bump com.github.spotbugs:spotbugs-annotations from 4.9.6 to 4.9.8 (#7…
dependabot[bot] Oct 23, 2025
09ea905
DATA-4385
LegacyKing Oct 23, 2025
437cf9f
6.09.info (#7459)
mertonmonk Oct 26, 2025
5b0ef73
6.09.info (#7462)
mertonmonk Oct 27, 2025
685d72f
6.09.info (#7463)
mertonmonk Oct 27, 2025
3740eb9
6.09.info (#7464)
mertonmonk Oct 27, 2025
f4daf7f
6.09.info (#7465)
mertonmonk Oct 27, 2025
1c9fdc8
Update Gradle wrapper to version 9.2.0 and refactor dependency declar…
Vest Nov 5, 2025
aa43787
Update Java&JavaFX to 25.0.1 and JaCoCo to 0.8.14 versions in build.g…
Vest Nov 5, 2025
33e617c
Add native access flags for JavaFX modules in distribution.gradle
Vest Nov 9, 2025
11c1afd
Refactor JavaFX resource loading by introducing PanelFromResource uti…
Vest Nov 10, 2025
e7f171e
Reverted a part of #7462, that broke DescriptionTest.
Vest Nov 15, 2025
453a94b
Update FXML files to use JavaFX 25.0.1 namespace
Vest Nov 15, 2025
5489f1c
Fix remnant issues from PREFACT conversion with multiples lingering f…
LegacyKing Nov 8, 2025
9e0566f
Clean up
LegacyKing Nov 17, 2025
f0f6c81
Fix Non-Monk getting Wisdom bonus.
LegacyKing Nov 18, 2025
884d260
Fix a bunch of minor formatting errors in pcc files
ckwalsh Oct 20, 2025
7df4fc3
Some textual improvements and typo fixes.
AtlasHackert Jul 10, 2025
2f25dad
Corrected checkstyle findings
Vest Nov 25, 2025
8e4c3db
Upgrade to Java 25 and fix lots of typos
karianna Dec 1, 2025
c6c4865
Fix merge conflicts
karianna Dec 1, 2025
9e09093
Revert failing MULT:YES and fix var name in build script
karianna Dec 2, 2025
8fdaaa2
Fix merge conflicts in GH actions
karianna Dec 2, 2025
ed8c3d3
Disable configuration cache for now
karianna Dec 2, 2025
4f0bc4b
Update dependencies
karianna Feb 6, 2026
2e447d6
merge conflicts
karianna Feb 6, 2026
9db7c2e
Now correctly creates images, also allows build to continue on findin…
karianna Feb 6, 2026
28285fd
Add LLM AGENT guidance
karianna Feb 6, 2026
b8f6a50
Update pcgen version to match what we are releasing next
karianna Feb 7, 2026
0f3df1d
Use previous way to release and apply to GH Actions
karianna Feb 10, 2026
ef02a8f
Upgrade gradle-wrapper.jar to 9.3.1
Vest Feb 18, 2026
7d0ca66
Merge branch 'refs/heads/master' into kar_gh_build_gradle_deps
Vest Feb 27, 2026
048c619
Update Gradle properties and wrapper for version 9.5.0;
Vest May 11, 2026
2cd68f6
Rewrite JDK download/extract as per-platform tasks for parallel cross…
Vest May 11, 2026
b4791fc
Merge branch 'master' into kar_gh_build_gradle_deps
Vest May 11, 2026
54f893d
Replace Xalan with Saxon-HE as XSLT processor
Vest May 12, 2026
80f800b
Add module-info.java and update gradle scripts for jlink plugin migra…
Vest May 12, 2026
4b09d8c
Wrap substring-before() with number() in XSLT arithmetic expressions
Vest May 12, 2026
d2c0796
Fix jpackage app bundle: set working directory and open gui3 packages
Vest May 12, 2026
02b93b6
Add requires directives for PCGen.base and PCGen.Formula modules
Vest May 15, 2026
93a926d
Update Saxon-HE to 12.9 and enable native access for javafx.graphics
Vest May 15, 2026
1512422
Update AGENTS.md to reflect current build.gradle state
Vest May 15, 2026
dd20d5f
Remove deprecated jdk.jsobject module requirement
Vest May 15, 2026
39d0283
Relocate split-package classes to resolve module boundary conflicts
Vest May 15, 2026
d821951
Fix jlink/jpackage by switching to proper module-path compilation
Vest May 15, 2026
f1d60dd
Fix IntelliJ module visibility and test source set scoping
Vest May 15, 2026
c0969dd
Open additional gui3 sub-packages for reflection access
Vest May 15, 2026
76931fa
Remove org.openjfx.javafxplugin — redundant with manual JavaFX setup
Vest May 15, 2026
3cf9b89
Add JavaFX SDK jars as dependencies for IntelliJ module resolution
Vest May 15, 2026
00c2134
Fix checkstyle violations: exclude module-info.java and correct code …
Vest May 15, 2026
5e295cc
Enable parallel forks for test and itest tasks
Vest May 17, 2026
2cb40d7
Refactor build.gradle: update converterJar task and improve parallel …
Vest May 17, 2026
cee7c42
Remove commented-out repository declarations
Vest May 17, 2026
c4a246c
Remove unused localOnly property and stale version comment
Vest May 17, 2026
2087f4a
Remove calls to undefined commitFile() in release tasks
Vest May 17, 2026
4d8fe33
Remove dead testZip task and unused jreImage copySpec
Vest May 17, 2026
e30544f
Remove dead NSIS installer scaffolding from release.gradle
Vest May 17, 2026
300b0aa
Remove dead programDistsImage launch4j copySpec
Vest May 17, 2026
6f246be
Scope TestFX/Monocle JVM args to the test task
Vest May 17, 2026
521ca49
Promote testcommon to a dedicated source set
Vest May 17, 2026
524c1b9
Use JUnit BOM and align platform/jupiter versions
Vest May 17, 2026
b64af1a
Loop-generate per-game inttest tasks
Vest May 17, 2026
2247237
Bump CodeQL action versions to v3 and checkout to v4
Vest May 17, 2026
8e13ed4
Align release workflow cache restore-keys with primary key
Vest May 17, 2026
f86b5ef
Rename tag-triggered release workflow to disambiguate from manual
Vest May 17, 2026
4787ed1
Drop redundant 'test' from PR test workflow
Vest May 17, 2026
6f6af3e
Drop default and harmful Gradle cache flags from PR workflow
Vest May 17, 2026
12a0970
Split release pipeline into stages and drop redundant tasks
Vest May 17, 2026
c6b7f84
Collapse triple-overlapping CI cache to setup-gradle only
Vest May 17, 2026
6fd5f0a
Attach release artifacts to GitHub Release
Vest May 17, 2026
b8212a8
Update README to clarify test suite commands and remove redundancy
Vest May 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,11 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
Expand All @@ -54,7 +54,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
uses: github/codeql-action/autobuild@v3

# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
Expand All @@ -68,4 +68,4 @@ jobs:
# make release

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
uses: github/codeql-action/analyze@v3
63 changes: 25 additions & 38 deletions .github/workflows/gradle-release-manual.yml
Original file line number Diff line number Diff line change
Expand Up @@ -150,16 +150,8 @@ jobs:
with:
java-version: '25'
distribution: 'temurin'
cache: gradle
cache-dependency-path: |
build.gradle
code/gradle/autobuild.gradle
code/gradle/distribution.gradle
code/gradle/release.gradle
code/gradle/reporting.gradle
code/gradle/plugins.gradle

# Configure Gradle for optimal use in GitHub Actions, including caching of downloaded dependencies.

# setup-gradle@v4 is the canonical Gradle cache for GitHub Actions.
# See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
Expand All @@ -168,36 +160,31 @@ jobs:
cache-read-only: false
cache-overwrite-existing: true

- uses: actions/cache@v4
with:
path: |
${{ github.workspace }}/build/jre
${{ github.workspace }}/build/libs
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ matrix.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
${{ matrix.os }}-gradle

- name: Build the image
if: success()
run: ./gradlew clean build copyToOutput test compileSlowtest datatest pfinttest allReports buildDist prepareRelease pcgenRelease

- name: Upload zip based release assets for all platforms
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.os }}-zip
path: ${{ github.workspace }}/build/release/image-*.zip
- name: Compile and run unit tests
run: ./gradlew clean build

- name: Run data and integration tests
run: ./gradlew compileSlowtest datatest pfinttest

- name: Run static analysis reports
run: ./gradlew allReports

- name: Upload DMG release asset for macos
- name: Build distribution zips
run: ./gradlew buildDist

- name: Build release artifacts
run: ./gradlew pcgenRelease

- name: Upload release artifacts as workflow artifacts
uses: actions/upload-artifact@v4
if: matrix.os == 'macos-latest'
with:
name: ${{ matrix.os }}-dmg
path: ${{ github.workspace }}/build/release/*.dmg
name: ${{ matrix.release_suffix }}-release
path: ${{ github.workspace }}/build/release/*
if-no-files-found: error

- name: Upload PKG release asset for macos
uses: actions/upload-artifact@v4
if: matrix.os == 'macos-latest'
- name: Attach release artifacts to GitHub Release
uses: softprops/action-gh-release@v2
with:
name: ${{ matrix.os }}-pkg
path: ${{ github.workspace }}/build/release/*.pkg
tag_name: ${{ inputs.tag_name }}
files: ${{ github.workspace }}/build/release/*
fail_on_unmatched_files: true
86 changes: 26 additions & 60 deletions .github/workflows/gradle-release.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Create Release with Manual Tag
name: Create Release on Tag Push

on:
push:
Expand Down Expand Up @@ -120,16 +120,8 @@ jobs:
with:
java-version: '25'
distribution: 'temurin'
cache: gradle
cache-dependency-path: |
build.gradle
code/gradle/autobuild.gradle
code/gradle/distribution.gradle
code/gradle/release.gradle
code/gradle/reporting.gradle
code/gradle/plugins.gradle

# Configure Gradle for optimal use in GitHub Actions, including caching of downloaded dependencies.

# setup-gradle@v4 is the canonical Gradle cache for GitHub Actions.
# See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
Expand All @@ -138,57 +130,31 @@ jobs:
cache-read-only: false
cache-overwrite-existing: true

- uses: actions/cache@v4
with:
path: |
${{ github.workspace }}/build/jre
${{ github.workspace }}/build/libs
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ matrix.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
${{ matrix.os }}-gradle

- name: Build the image
if: success()
run: ./gradlew clean build copyToOutput test compileSlowtest datatest pfinttest allReports buildDist prepareRelease pcgenRelease

- name: Upload zip based release assets for all platforms
uses: actions/upload-artifact@v4
if: matrix.os == 'macos-latest'
with:
name: ${{ matrix.os }}-zip
path: ${{ github.workspace }}/build/release/image-*.zip
- name: Compile and run unit tests
run: ./gradlew clean build

- name: Run data and integration tests
run: ./gradlew compileSlowtest datatest pfinttest

- name: Run static analysis reports
run: ./gradlew allReports

- name: Upload DMG release asset for macos
- name: Build distribution zips
run: ./gradlew buildDist

- name: Build release artifacts
run: ./gradlew pcgenRelease

- name: Upload release artifacts as workflow artifacts
uses: actions/upload-artifact@v4
if: matrix.os == 'macos-latest'
with:
name: ${{ matrix.os }}-dmg
path: ${{ github.workspace }}/build/release/*.dmg
name: ${{ matrix.release_suffix }}-release
path: ${{ github.workspace }}/build/release/*
if-no-files-found: error

- name: Upload PKG release asset for macos
uses: actions/upload-artifact@v4
if: matrix.os == 'macos-latest'
- name: Attach release artifacts to GitHub Release
uses: softprops/action-gh-release@v2
with:
name: ${{ matrix.os }}-pkg
path: ${{ github.workspace }}/build/release/*.pkg

# - name: Upload release assets for ubuntu
# uses: actions/upload-artifact@v4
# if: matrix.os == 'ubuntu-latest'
# with:
# name: ${{ matrix.os }}
# path: ${{ github.workspace }}/build/jpackage/*.deb
#
# - name: Upload release assets for windows
# uses: actions/upload-artifact@v4
# if: matrix.os == 'windows-latest'
# with:
# name: ${{ matrix.os }}
# path: ${{ github.workspace }}/build/jpackage/*.msi
#
# - name: Release - ${{ matrix.os }}
# uses: softprops/action-gh-release@v2
# with:
# tag_name: ${{ needs.create_release.outputs.tag-name }}
# files: ${{ github.workspace }}/build/release/pcgen-*.*
tag_name: ${{ inputs.tag_name || github.ref_name }}
files: ${{ github.workspace }}/build/release/*
fail_on_unmatched_files: true
28 changes: 3 additions & 25 deletions .github/workflows/gradle-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,39 +22,17 @@ jobs:
with:
java-version: '25'
distribution: 'temurin'
cache: gradle
cache-dependency-path: |
build.gradle
code/gradle/autobuild.gradle
code/gradle/distribution.gradle
code/gradle/release.gradle
code/gradle/reporting.gradle
code/gradle/plugins.gradle

# Configure Gradle for optimal use in GitHub Actions, including caching of downloaded dependencies.
# setup-gradle@v4 is the canonical Gradle cache for GitHub Actions.
# See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
cache-disabled: false
cache-read-only: false
cache-overwrite-existing: true

- uses: actions/cache@v4
with:
path: |
${{ github.workspace }}/build/jre
${{ github.workspace }}/build/libs
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
${{ runner.os }}-gradle

- name: Build with Gradle Wrapper
run: ./gradlew build

- name: Run tests
run: ./gradlew test itest datatest slowtest
- name: Run integration, data, and slow tests
run: ./gradlew itest datatest slowtest

- name: Publish Test Results
uses: EnricoMi/publish-unit-test-result-action@v2
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ pcgen.iws

# Misc
jre/
jdks/
mods/
code/manifest-tests
.DS_Store
22 changes: 12 additions & 10 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This document captures the concrete commands, structure, conventions, and gotcha
- Build tool: Gradle (via wrapper)
- Java toolchain: Java 25 (Temurin)
- UI: JavaFX; headless testing uses TestFX/Monocle
- Packaging: jlink/jpackage with custom runtimes and native installers
- Packaging: jlink (org.beryx.jlink 4.0.0) / jpackage with custom runtimes and native installers

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

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

Notes
- Some tasks trigger downloads of JDKs/JavaFX for all platforms (downloadJRE, downloadJavaFXModules) or host SDK (downloadJavaFXLocal/extractJavaFXLocal). CI caches build/jre and build/libs.
- 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.
- The `jre` task prepares all platform JDKs with JavaFX modules for runtime image creation.
- Runtime bundles expect assets in data/, system/, outputsheets/, preview/, vendordata/, homebrewdata/.

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

## Testing Approach

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

## Code Quality and Style

- 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).
- PMD: ruleset at code/standards/ruleset.xml (referenced from reporting.gradle).
- SpotBugs: plugin 6.4.7; toolVersion 4.9.8; exclude filter code/standards/spotbugs_ignore.xml; ignoreFailures true; extra findsecbugs plugin.
- 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).
- 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.
- SpotBugs: plugin 6.5.4; toolVersion 4.9.8; exclude filter code/standards/spotbugs_ignore.xml; ignoreFailures true; extra findsecbugs plugin.
- Aggregate quality task: ./gradlew allReports

Conventions/gotchas observed
Expand Down Expand Up @@ -177,10 +178,11 @@ Conventions/gotchas observed
- 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.
- The distribution relies on file layout in data/, outputsheets/, system/, preview/ — deletions or renames will break runtime validation in Main.validateEnvironment().
- GracefulExit should be used for controlled termination (tests hook the exit function).
- 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.

## Maintainer/Issue Tracking Context

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

This file documents only observed behavior and commands present in this repository as of the current state.
This file documents only observed behavior and commands present in this repository as of the current state.
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -193,9 +193,12 @@ substitute `./gradlew` for `gradle` on the command line.

### Run Full Test Suite
Do this primarily __before__ pull requests.
This is almost exactly the command Travis runs to verify, if it fails locally you will fail the build, and your PR will not be merged.
This mirrors what GitHub Actions runs to verify a PR; if it fails locally your CI build will also fail and your PR will not be merged.

./gradlew clean build copyToOutput test compileSlowtest datatest pfinttest allReports buildDist
./gradlew build
./gradlew itest datatest slowtest

`build` already runs the unit `test` task via the standard Java lifecycle, so it is not repeated. The second command runs the integration, data, and slow test suites.

### Clean All Build Files
./gradlew clean
Expand Down
Loading
Loading