|
From: Vest <no...@gi...> - 2026-06-03 03:14:58
|
Branch: refs/heads/master Home: https://github.com/PCGen/pcgen Commit: bd5f4e569dc8e579d0645e3db9da13d7e63f7944 https://github.com/PCGen/pcgen/commit/bd5f4e569dc8e579d0645e3db9da13d7e63f7944 Author: Vest <Ve...@us...> Date: 2026-06-03 (Wed, 03 Jun 2026) Changed paths: M code/gradle/plugins.gradle Log Message: ----------- Drop Built-Date, Built-JDK, Created-By from plugin manifests (#7578) `new Date()` was evaluated at configuration time on every Gradle invocation, so each plugin jar's manifest embedded the build wall-clock. That made the jars non-deterministic byte-for-byte across builds and broke Gradle's configuration cache for plugin tasks. The companion `Built-JDK` and `Created-By` attributes were dropped at the same time because: 1. Nothing in the codebase reads any of these three attributes (`grep -rn 'Built-Date|Built-JDK|Created-By'` returns only the writer line). They were inert metadata. 2. The main `pcgen.jar` manifest does not carry equivalents, so the plugin jars were the odd ones out. 3. Real reproducibility would also require pinning archive timestamps (`preserveFileTimestamps = false`), file ordering (`reproducibleFileOrder = true`), and the JDK/Gradle versions across environments — for *all* archive tasks in the project, not just the plugin jars. Keeping `Built-JDK`/`Created-By` on plugin jars only would be inconsistent: it would leak environment info from a subset of artifacts without buying real reproducibility. If a future PR pursues full reproducible builds, it can apply those settings project-wide and re-introduce diagnostic attributes uniformly. Verified: two clean builds of `:jarExportPlugins` now produce byte-identical jars; configuration cache stores successfully for `:jarAllPlugins`. To unsubscribe from these emails, change your notification settings at https://github.com/PCGen/pcgen/settings/notifications |