PCGen / pcgen

Main code and data development for pcgen program release
http://pcgen.org
GNU Lesser General Public License v2.1
432 stars 339 forks source link

failure to load sources on MacOS #6290

Closed stevengj closed 4 years ago

stevengj commented 4 years ago

I git cloned pcgen (master) on MacOS 10.15, and ./gradlew run successfully builds and launches the program (using AdoptOpenJDK 11.0.7), but the "Select Sources" window that opens doesn't seem to show any source books:

image

The data subdirectory of the pcgen repo seems to have lots of datasets. How do I tell pcgen where to find these when I'm running from source?

(Opening "Settings" seems to show that the paths are set correctly, e.g. "PCGen Data Directory" is /Users/stevenj/Documents/Code/pcgen/data)

stevengj commented 4 years ago

I'm noticing a lot of error messages in the terminal that perhaps explain the problem?

> Task :run
2020-06-24T16:01:50.153136 INFO main Main:116 Starting PCGen v6.09.03-DEV
2020-06-24T16:01:50.219596 INFO main LanguageBundle:134 Initialising language bundle with locale en_US.
2020-06-24T16:01:54.375933 SEVERE main GameModeLoader:78 Illegal misc. game info Spycraft/file:/Users/stevenj/Documents/Code/pcgen/system/gameModes/Spycraft/miscinfo.lst:5 "LEVELMSG:Congratulations Agent, you can advance with that much experience!"
2020-06-24T16:01:54.376265 SEVERE main GameModeLoader:78 Illegal misc. game info Spycraft/file:/Users/stevenj/Documents/Code/pcgen/system/gameModes/Spycraft/miscinfo.lst:11 "ACNAME:Defense"
2020-06-24T16:01:54.376464 SEVERE main GameModeLoader:78 Illegal misc. game info Spycraft/file:/Users/stevenj/Documents/Code/pcgen/system/gameModes/Spycraft/miscinfo.lst:16 "CURRENCYUNITABBREV:BP"
2020-06-24T16:01:54.376678 SEVERE main GameModeLoader:78 Illegal misc. game info Spycraft/file:/Users/stevenj/Documents/Code/pcgen/system/gameModes/Spycraft/miscinfo.lst:22 "DEFAULTUNITSET:Imperial"
2020-06-24T16:01:54.376868 SEVERE main GameModeLoader:78 Illegal misc. game info Spycraft/file:/Users/stevenj/Documents/Code/pcgen/system/gameModes/Spycraft/miscinfo.lst:25 "BONUSSTACKS:Defense.Dodge.Circumstance.NotRanged.NotFlatFooted"
2020-06-24T16:01:54.377079 SEVERE main GameModeLoader:78 Illegal misc. game info Spycraft/file:/Users/stevenj/Documents/Code/pcgen/system/gameModes/Spycraft/miscinfo.lst:39 "TAB:CLASS                 NAME:in_class                   CONTEXT:tabpages\tabclasses.html"
...
[1000s more lines]
...

Any pointers on how to fix/debug this would be appreciated.

stevengj commented 4 years ago

I also tried the 6.09.02 tag, and the problem was the same — it launches, but shows no sources, with lots of LSTERROR main LstUtils:147 Illegal Token errors and similar.

thpr commented 4 years ago

So I don't have a Mac to test on, unfortunately. But it looks like the plugin JARs never got built? Was this installed on top of an older version? What is the plugin directory set to in the settings, and is it correct?

alanshutko commented 4 years ago

I just tried this. If you do a ./gradlew run before a ./gradlew assemble, it does not show sources. If you do assemble first, it does. There is probably a different task rather than assemble (which constructs a full dmg) you could use as well.

alanshutko commented 4 years ago

It seems if you add a dependency from run to jar-all-plugins it generates the plugins correctly. But I only just started looking at the project, so I'm not sure that's the right fix.

stevengj commented 4 years ago

I can confirm that running ./gradlew assemble before ./gradlew run fixes the problem for me, so it seems like there is a missing dependency for run.

LegacyKing commented 4 years ago

@TimMcGilly -- Can you see if assemble is being included as a check in the run?

TimMcGilly commented 4 years ago

Running gradlew run --dry-run doesn't list assemble as a dependency of run.

output :copyMasterSheets SKIPPED :downloadJRE SKIPPED :downloadJavaFXModules SKIPPED :compileJava SKIPPED :processResources SKIPPED :classes SKIPPED :configJavafxRun SKIPPED :run SKIPPED

I've added a dependency with tasks.run.dependsOn(assemble) which appears to fix the issue and correctly generate the plugins. I've added it as part of this pull request. https://github.com/PCGen/pcgen/pull/6243