Feature #6572
openDon't modify sef when xsl doesn't change
0%
Description
In order to integrate the xsl -> sef conversion in a reliable build pipeline, we routinely recompile the xsl, for example to run tests that exercise the sef.
Currently, recompiling the xsl creates a modified version of the sef, because the buildDateTime
attribute is updated. This change causes unnecessary commits to version control, because in reality nothing has changed in the xsl.
Would it be possible to add a flag for the compilation that ensures idempotency? For example by disabling buildDatetime
.
Updated by Norm Tovey-Walsh about 2 months ago
The date is actually used; for example, it is how SEF files compiled with evaluation licenses expire.
I'm inclined to think of SEF files as build artifacts, not something that I'd expect to have checked into a repository. If you are checking them in, is it not possible to avoid rebuilding them if the XSL files haven't changed?
Updated by Karim Ratib about 2 months ago
I am not aware of a rule that says that build artifacts are not checked into the repo. For example, the entire JS bundling ecosystem works by checking in the JS bundles that are built.
Speaking of JS bundles, these are also an example of build artifacts exhibiting the feature I'm requesting here: They won't change if the source doesn't change, even when rebuilt.
Updated by Martynas Jusevicius about 2 months ago
In my case the SEF compilation is triggered by the Maven build: https://github.com/AtomGraph/LinkedDataHub/blob/master/pom.xml#L343 Not sure how to configure it to avoid SEF building when XSLT files haven't changed.
My other quibble is that the compilation takes a lot of time for large stylesheets -- up to 3 minutes for LinkedDataHub.
Please register to edit this issue
Also available in: Atom PDF Tracking page