Hyrax Version Injection Fix
The Hyrax Version in the OLFS build now comes from a fresh Java script - compiled and injected into Docker - ensuring consistency with the live catalog. But here’s the disconnect: when viewed in the Hyrax catalog, users still see Not.A.Release. Not because the version is missing, but because the OLFS build overwrites the XSLT output with a hardcoded Not.A.Release during its filter step.
This mismatch reveals a hidden tension: versioning isn’t just technical - it’s psychological. Users expect real-time accuracy, shaped by years of trust in Hyrax’s transparency. But automated builds inject static placeholders, creating a subtle but real gap between expectation and experience.
Here is the deal: the Java code injects the version string correctly, but the OLFS pipeline overwrites it before XSLT rendering.
But there is a catch: the current build logic discards dynamic versioning during compilation, treating Not.A.Release as a safe default to avoid breaking downstream integrations.
Hyrax’s XSLT templates pull version data directly from the injected HyraxVersion.class, yet the catalog layer ignores this. The real fix lies not in code alone, but in aligning build logic with user perception.
OLFS must refactor to inject the version string at runtime into the XSLT template before execution - not replace it during build. This preserves cache safety while honoring the catalog’s need for freshness.
This isn’t just a patch - it’s a cultural shift. Versioning reliability isn’t just about code; it’s about trust. When users see Not.A.Release on the catalog, they question: is the catalog outdated, or is the system broken? Transparency starts with precision. When should version code live? Not in build artifacts - inside the runtime. This refinement closes the gap, restoring confidence one XSLT render at a time.