Re: More issues with RC2

Andrew Maitland

Hi Mark,

The problem with an all-volunteer project, is the volunteers focus on what matters to them the most.

The main reason why Java was the language used is exactly the point of this conversation, it's meant to be a cross-platform language, without anyone focusing on the particular cultures or patterns in different operating systems.

Regarding #3 - In order for a volunteer to focus on an OS-centric issue requires the ability to replicate the problem, and the knowledge or understanding to address it. When you suggested that giving a solution to a problem was a far-fetched issue, it meant to me you thought I wanted you to find the proper solution in our own code base and submit a PR. Instead, I meant you seem to have a vast knowledge of this OS-Centric world and patterns, and would have a much easier time in pointing a developer to a website/wiki/knowledge base article/help ticket that speaks to this issue with a Java language bent. I wasn't asking you to fix the problem, but at least help out the person who will come along and try to work on it. We have Linux, Mac and Windows developers, they need a point of reference to handle issues pertaining to specific issues relating to OS.

I'm still in the dark about this abstract concept of the paper size. How does this setting even come into play? Are you using the direct print option, or does this happen when you create a PDF? I use a Standard US sized paper on a standard printer and with some crazy exceptions where the Header and body separated (page size limits exceeded in the body forcing a page break into the next page), have never had an issue with printing sheets using the PDF option (I like having a digital copy of all the characters on hand).

Next we have the perception - Yeah, the project could well be circling the drain, maybe not, the number of PRs, commits, and activity on the three main communication networks says the community is quite active and not in a death spiral. But hey perception is what people make of it.

Buggy software? Maybe the content is buggy, or there is a perception, but to be honest, most of the bugs reported are merely a typo, a feature that cannot be supported yet, or a misunderstanding of the rules themselves. I filter through roughly 50 issues in any given month. The volunteers normally resolve half of them through the online support, and the other half make it into an issue. Of those most are homebrew support, misunderstanding of the rules or in a few cases an actual issue we can address.

Now, in the grand scheme of the developer hours - Where should I ask my java developers to concentrate their efforts?

  • Focusing on a working preference setting and a version misprint? (Which I have to guess is from the Windows Installer) Quick news flash, the Windows Installer has some issues that are outside of our control. Albeit both of those are very trivial issues when looking at this from a bigger picture perspective.
  • Enabling the content team to implement the features from the books to make the characters rule-legal and accurate for display to the end-user? That evolutionary formula parser is a replacement project to replace two existing interwoven systems - the older system in use prior to JEP adoption, and then of course the grandfathered Licensed JEP library.

The Formula System is also being integrated in the talks to disconnect the UI from the code so it can be dynamic. Allowing for the code to remove the hardcoded tight coupling of d20-centric rules that have no use in systems like Starfinder, 5e, and non-d20 games.

Basically, the improvements take away a d20-focused tag system, to a game system neutral interface to allow for intuitive content creation, that focuses on single task input/output.

Now, consider this, if I were to actually lose program functionality on Windows OS, then that would be a higher priority for the team to focus on. That's a fundamental function - if you cannot use the product, then features are useless. When we lost the ability to create a MacOS build, we discovered they could still run the jar or sh file we included. When Linux users couldn't use the sh file, we scrambled to find a fix to the end of line issue and get that resolved.

It's not that we don't care about Windows, MacOS, Linux, etc., but where in the big picture does a paper printing issue, and a typo for a version number fit into the priority scale when there is no functionality loss. Who would know that the version is incorrect for your discovered method? Most users look at the top of the bar and see the version displayed there, the folder it's installed in has the correct version, so not to belittle or downplay the report here, but there seems to be a very small niche of users who would even discover the issue(s) brought up here. It's a credit to you for discovering them, but if I need a Windows-Centric professional developer to find these issues, are they really a major/critical concern in the grand picture for the development of PCGen?

Who are the active developers?

Kar & Bryan are mainly focused on PR reviews.

Tom is focused on leading the Formula System replacement. He is also working on getting the nightly builds back up and running and the web server resolved.

Eitan is focused on updating libraries, refactoring existing code and streamlining processes (He wiped out several dead libraries and a few unused files).

Javier is available to assist with the build releases and even the Windows Installer.

Andrew Wilson has been working on improving our prettyLST into TidyLST a program written in perl. And takes a look at the eccentric bugs I ask him to assist me with.

We have 5 new volunteers who are learning the code base, and focusing on either the UI or other areas of interest to themselves. I won't consider them officially active until they begin participating in the project - PR reviews, submit PRs, or collaborate on issues of interest to the team.

All of them have a task/project they are focused on.

That's the active developers on the programming side (Java or others).

For the content side, Regan and Gwen are my active book and bug fixing crew.� I have a non-team contributor by the handle of net-diver who submits a few PRs a month for fixes here and there. And I typically get one-off PRs from assorted community members with a patch of the day.

I don't believe the team is dismissive of issues, but where do the issues you report fall? What effort does it take to address them? Recall you sent me quite a list about content issues. Many of which are difficult to address correctly with the existing system, but could be managed easier with the replacement formula system. I have 20 pending content bugs waiting on the new system, and a handful of open Code requests that will drop off when the formula system takes over. One of your Pathfinder Society prestige deals required knowing whether a Skill was already granted as a class skill or not, something the new system addresses. Taken into context, the formula system replacement is a huge deal, handling a lot of outstanding issues left unresolved for well over a decade in some cases.

Your concerns are not falling on deaf ears, but either they cannot be addressed today, or they are not a high enough priority to be addressed today.

As to attracting/retaining volunteers, well, I presume when we streamline the code base into a less imposing monolith, (Drop JEP/Old System, and all the support tags tied to those 2 systems), then we will have more participation.

But you never know why people do what they do.

As to poor reporting, submit the issue in a separate post here or on Discord, and post the error. We can always request better error reporting from the code team. And meanwhile, tell you how to find and fix the error. That's why we have volunteers willing to answer questions.

Anyways, it's late and I need rest.



On 12/15/2018 11:05 PM, markjmeans wrote:

Hi Andrew,


  1. Open Office is a glaring example of why being unconcerned about OS guidelines is somehow a reason to not be concerned about a given OS�s guidelines. Open Office does honor the default page format in Windows; and it supports multiple cultures; and it supports multi-OS. I have felt for some time now that PCGen considers Windows as something that needs no particular attention to standard Windows patterns and practices and is mostly only supported because Java happens to support it. The responses to this and other issues I�ve brought up in the last several months do little to assuage that feeling. It may simply be that there are no Windows centric developers to take on the mantle to assure that Windows guidelines are honored with conditional compilation code segments where appropriately divergent from Unix-isms. I completely understand that this is a volunteer project. But everyone in the PCGen development team is surely aware that this project appears to be in a slow death (fewer and fewer volunteers) precisely because Windows users (the largest desktop segment) is going to Hero Lab and other software due to the perceived buggy nature or usability issues (deserved or not) of PCGen. I don�t want that to happen. I would like to see what is probably the projects largest user segment to be so happy with the core usability of PCGen that we attract many new volunteers. That extends to the code team as well. From what I�ve seen so far that the new formula parser is evolutionary. But to get new volunteer coders you must first get their attention. And that becomes more difficult as the audience declines.


  1. The issue with this is not that a homebrew is broken. It is that PCGen gives no useful error message to tell someone WHERE it is broken. In my case, this homebrew is little more than a huge multi-set and commenting out all the lines in the PCC file to find out which line is causing the issue is something that no other homebrew user *should* have to do. The error message for the load failure should be enough to find out what the issue was. In this case, after uninstalling PCGEN and reinstalling and making sure to select the _universal and the other _xxx entry the error did not recur.


  1. As for the source. Like I said I know very little about Java programming, and less about the specific coding in PCGen. For me to spend, probably hours, digging through PCGen to understand its internal structure enough to submit a PR for the code is ridiculous on its face. The chance that I could even attempt to identify a fix that would not have unintended consequences without such study is presumptuous at best.


As for the remainder of your comment� Try developing two different programs, pascal and C, at the same time. The languages are so close in syntax you quickly get mired in the peculiarities of the two and spend a lot of time bug-fixing and referring to API docs. This is not efficient coding. Efficient coding is 100+ lines of debugged functioning code per hour per developer, not 700+ lines of code per month per developer. As an example, in the summer of 2005 I started writing a Windows XP application that was ready for deployment in 9 months. It had over 100,000 lines of code (comprising modules written in VB, C++, and 8051 assembler), not counting auto generated code from UI creation tools I used. And not counting the code from the early parts of the project that were deleted or replaced as it was being developed. There was only myself and one other developer working on this project. I produced 95+% of the VB code (the bulk of the application), perhaps 10-15% of the C++ code (high level USB driver interfaces, the other guy did the low level part). You need a singleness of mind and concentration to produce debugged code at that rate. My primary focus now is C# programming on multiple projects with a huge combined code base, and I am the only developer. I cannot afford to get distracted by a similar syntaxed and structured language. Now if PCGen had been written in Cobol, RPG, Fortran, LISP or ASSEMBLER (all of which I have programmed in), then that would be something else entirely as they are all completely different coding syntax and style and could never be confused with C++, C# or Java.


As for JIRA, I wanted to post on the forums first (specifically the null error message issue and the font issue) to see if anyone else (not developers) encountered the same problem. Anyone with JAVA SDK development tools checking it might not encounter the same error if the problem was related to the JRE set installed in windows installer version of PCGen. But I suppose there are so few Windows users who subscribe to the forums or perhaps all other Windows users just all the data sets (by default). I don�t know. Either way, a confirmation of an error on a non-JDK installed machine could have identified the problem. In my case, while the null error went away when I uninstalled and reinstalled (as I identified above) this is not confirmation of the cause since I have not again uninstalled and reinstalled without selecting _universal to confirm that the problem returns since it is completely irrelevant if _universal should not be able to be deselected in the first place.







From: <> On Behalf Of Andrew Maitland via Groups.Io
Sent: Saturday, December 15, 2018 5:05 PM
Subject: Re: [pcgen] More issues with RC2


Hi Mark,

1) Not being a program meant to be specific to a particular OS, I'm not overly concerned about this. A "critical" or "blocker" bug is classified as - Did it break the program or did we lose major core functionality? I wouldn't release an RC3 for a mere glitch for Windows not being able to figure out the program is an RC2 vs. RC1. I am going to do an RC3 for several fixes/features that were discovered missing that I feel should make the 6.08.00 release, but not because Windows has issues. If you felt this is important enough to warrant concern why haven't you opened a bug for it?

2) I don't control HOMEBREW sources, anything I cannot control is irrelevant to our release schedule. We have a support team on Discord and here to assist you update your out-of-date set. FEAT is an illegal tag, and should have been converted to ABILITY back in 6.06.00 if not sooner. The team focuses on things we control and manage. If you want support for your homebrew, ask for the help, and we will gladly tell you what you need to update/change/convert to be compliant with the current version.

3) As #1 states, we are an OS Neutral Program. Coding in OS specific settings requires folks who have the knowledge. I have *NEVER* had an issue creating PDFs nor printing them, and I have been using PCGen for 17 years. Merely set your paper settings in the preferences and you'll be fine.

To tag onto Stefan's comment, if you won't do the code, at least point out a source that our team can reference to tackle the issue. I've always held to a principle of point out the problem and a potential solution if possible. I wasn't aware that cross-training in multiple languages was considered a detriment. And for actual bugs, we have a BUG tracker system located here --> where all the issues can be discussed or solutions presented.



On 12/14/2018 10:30 AM, markjmeans wrote:

  1. The Windows uninstall entry in Windows > Settings > Apps & Features lists PCGen as �6.08.00RC1� as the product name and shows nothing for program title or version number. What is expected is that the program name, version number and publisher name fields be defined correctly in the installer so that the uninstall process follows Windows guidelines and is intuitive to Windows users. In my opinion this is a critical bug that should delay release until resolved. However, it should be a very simple one to fix. It�s a 30 second task using Microsoft installer projects within MS Visual Studio and I will assume it�s nearly as simple using the nullsoft installer that PCGen uses (but I have no experience with nullsoft installer projects). Whomever wrote the installer project should examine the project properties and correct them. This fix alone should require an RC3 version before going ahead to full release.
  2. A homebrew set that loads in RC1 will not load in RC2. See attached homebrew files. The error log does not indicate specifically what is wrong, i.e. doesn�t say which campaign is unable to load.

10:46:09.847 INFO main Main:138 Starting PCGen v6.08.00 RC2

10:46:09.967 INFO main LanguageBundle:134 Initialising language bundle with locale en_US.

10:46:19.673 LSTWARN main CampaignFeatToken:56 FEAT has been deprecated, use ABILITY: and put CATEGORY: entries in the LST file

10:46:51.613 SEVERE Thread-2 SourceFileLoader:248 Failed to load sources

pcgen.persistence.PersistenceLayerException: You must select at least one campaign to load.

��������������� at pcgen.persistence.SourceFileLoader.loadCampaigns(

��������������� at pcgen.persistence.SourceFileLoader.execute(

��������������� at pcgen.gui2.util.StatusWorker.construct(

��������������� at pcgen.gui2.util.StatusWorker.construct(

��������������� at pcgen.gui2.util.SwingWorker$

��������������� at java.base/ Source)


And while not a problem with RC2 specifically, there is a long standing problem with PCGen and the paper format. PCGen should detect the OS culture settings and if it is US/English, should set the paper size to Letter instead of A4. I don�t know how many sheets of paper I�ve wasted because of this.





Join to automatically receive all group messages.