|
From: Vest <no...@gi...> - 2026-06-03 03:13:13
|
Branch: refs/heads/master Home: https://github.com/PCGen/pcgen Commit: ba97fbebdc3caf6f8712f5d9d7c0b4fa0cbb1822 https://github.com/PCGen/pcgen/commit/ba97fbebdc3caf6f8712f5d9d7c0b4fa0cbb1822 Author: Vest <Ve...@us...> Date: 2026-06-03 (Wed, 03 Jun 2026) Changed paths: M build.gradle M code/gradle/release.gradle R code/src/java/pcgen/core/namegen/DataSubValue.java M code/src/java/pcgen/core/namegen/DataValue.java M code/src/java/pcgen/core/namegen/NameGenDataLoader.java M code/src/java/pcgen/core/namegen/NameGenLazyData.java M code/src/java/pcgen/core/namegen/NameGenerator.java M code/src/java/pcgen/core/namegen/NameList.java M code/src/java/pcgen/core/namegen/RuleSet.java Log Message: ----------- jlink 4.0.2 + native installers + namegen cleanup (#7568) * namegen: faster weighted picks and simpler DataValue sub-values - NameList/RuleSet: precompute a cumulative-weight array at construction so pick() is O(log n) via binarySearch instead of two linear passes. Zero-weight entries are filtered into a parallel positives array, which keeps binarySearch correct when duplicates would otherwise let it land on a zero-weight index. Both records become final classes since cached state can't live on a record. - DataValue: drop the hand-rolled DataSubValue linked list in favour of a lazily-allocated LinkedHashMap. putIfAbsent preserves the first-write-wins semantics the old recursive get() relied on. - NameGenLazyData.gendersForRuleset: read directly from the ruleset's RuleSetMeta.categoryTitles() instead of scanning every Sex: bucket. - NameGenerator.assemble: defer meaning/pronunciation StringBuilder allocation until a part actually overrides one, seeding from the name built so far. Avoids two builders' worth of churn on the common path where no part has sub-values. * jlink: drop explicit requires that jlink already auto-derives The jlink plugin's `additive = true` mode emits both the auto-derived and the user-listed `requires` blocks without dedup. asm 9.10 (pulled in by jlink 4.0.1) parses Java 25 class files that 9.9.1 silently skipped, growing the auto-derived set enough to collide with our explicit list and breaking `createMergedModule` with duplicate-requires errors. Bump to 4.0.2 and keep only the modules the scanner can't infer on its own. * namegen: javadoc the childElements helpers Brief description of each overload's contract (direct Element children, optional tag-name filter) so future readers don't have to re-derive it from the stream pipeline. * release: run fullJpackage on Windows too Drop the Os.FAMILY_MAC || Os.FAMILY_UNIX predicate that excluded Windows from fullJpackage. The carve-out dates from when Windows shipped via NSIS (`buildNsis`); that path was retired in be48763530 but the release-side hookup to invoke jpackage on Windows was never added, leaving Windows release artifacts as the runtime zip only. * release: produce native installers, not just runtime images fullJpackage was wired to assembleJpackageImage (Mac: patchMacJpackage), not the jpackage installer task — so each release shipped only the jlinkZip runtime image, never a .dmg/.deb/.exe. Make jpackage depend on the data-bundling step so it packages an image that already contains data/plugins/preview/outputsheets, then point fullJpackage at jpackage. Pin one installerType per OS (dmg / deb / exe) — without it jpackage emits both formats per platform, doubling build time and (on Linux) requiring rpmbuild that isn't installed on the Ubuntu runner. Add --win-shortcut / --win-menu so the .exe creates Start-menu and desktop entries; the existing --linux-shortcut and Mac-specific opts were already in place. WiX 3.14 needed for the .exe is preinstalled on the windows-latest runner. * release: add portable zip alongside the native installer Same self-contained app the installer ships, but as an unzip-and-run archive — useful for users who don't want to run an installer (USB sticks, locked-down environments, etc.). Per-platform: pcgen-<version>-<os>-<arch>-portable.zip. The zip captures whatever fullJpackage left in build/jpackage/PcGen[.app], so it includes data/plugins/preview/outputsheets and (on Mac) the patched Info.plist + MacDirLauncher. * release: include .deb in artifact upload glob jpackage names Debian packages pcgen_<version>_<arch>.deb (underscore), which the existing pcgen-*.* glob (hyphen) misses. Linux release runs were uploading everything except the .deb. Add a second include for the underscore form. .rpm uses pcgen-<version>.<arch>.rpm so it was already covered. * release: stop publishing image-*.zip and SHA-256 digest files The image-*.zip artifacts (output of jlinkZip) are a JVM runtime image, not a runnable PcGen — no launcher, no /data, /plugins, /preview, or /outputsheets. Users who tried to run them got the "missing required folders" dialog. Now that fullJpackage produces real installers and a portable zip with the same .app the installer ships, image-*.zip is just a confusing leftover. Drop it from the release upload (autobuild keeps it via buildDist). The SHA256-digests-*.txt files are also redundant: GitHub computes a SHA-256 for every release asset automatically and exposes it via the API. Anyone verifying integrity can shasum the file locally. To unsubscribe from these emails, change your notification settings at https://github.com/PCGen/pcgen/settings/notifications |