Stream: IG creation
Topic: how does one prevent the template from reloading
Eric Haas (Jan 15 2020 at 08:15):
I thought I had a bash script that allowed me to reuse the same template file instead of reloading for each build run, but is no longer working or never worked in the first place. Is there a switch in the command line to prevent reloading or some configuration in the ig.ini to prevent reloading of the template folder. I can't find the documentation on this.
Eric Haas (Jan 15 2020 at 08:25):
if I set template=template
in ig.ini it gets overwritten by the reload and the subfolders disappear. I think this was not an issue before but I am may be misremembering.
Grahame Grieve (Jan 15 2020 at 11:54):
Why would you not want to update the template?
Lloyd McKenzie (Jan 15 2020 at 14:25):
'template' is always a temporary directory. If you want to mess around with your template for testing purposes, copy it to a different folder and point to it there.
John Moehrke (Jan 15 2020 at 15:04):
I can imagine a need once a IG has gone normative to be able to freeze all the build tools so that it can always be regenerated exactly as it once was. Yes this doesn't take advantage of improvements in the build tools, but it is important for reporduceability. And as a choice, I can always choose to build with new tools.
Eric Haas (Jan 15 2020 at 15:47):
2 more reasons why:
- it slows down the build to have to load it each time when you are iterating through your ig development process rapidly. Which is made more painful since watch is a bit buggy.
- you are going offline
Jose Costa Teixeira (Jan 15 2020 at 16:27):
@Lloyd McKenzie in a derived template can we point to a specific version of the base template?
Jose Costa Teixeira (Jan 15 2020 at 16:27):
That would solve some issues I think
Jose Costa Teixeira (Jan 15 2020 at 16:29):
I think it's much better to point to s specific version than switching the update on and off
Jose Costa Teixeira (Jan 15 2020 at 16:30):
@Eric Haas I think the publisher already works offline
Lloyd McKenzie (Jan 15 2020 at 16:51):
If you are offline, it should be grabbing the templates from your cache, so shouldn't be an issue. Grabbing the templates doesn't take long - maybe 2 seconds in the overall build process if they're cached, so certainly not worth snapshotting them. Yes, you should be able to refer to a specific version - so long as HL7's NPM cache has a snapshot, you should get that snapshot.
Chris Moesel (Jan 15 2020 at 17:17):
I can imagine a need once a IG has gone normative to be able to freeze all the build tools so that it can always be regenerated exactly as it once was.
I imagine this is a much bigger ask than just persisting or versioning templates. My experience has been that the publisher is tightly coupled to the current build infrastructure as well. Trying to run a publisher from 6 months ago will almost certainly fail because of changes in the external services the publisher depends on. I agree, however, that there is a need for repeatable builds; I just expect there's a ton of work involved to get there.
Jose Costa Teixeira (Jan 15 2020 at 18:59):
So if we keep the Publisher jar, and if we stick to one version of the template, the publication should remain constant ... Perhaps we need to experiment and if there is any issue, we can bring it. I don't expect that big a challenge (even for cases like IHE or similar). I hope I'm not missing anything
Lloyd McKenzie (Jan 15 2020 at 22:48):
It's also tied to the vocabulary server, any patches made to templates or tgz files for past publications, etc. It may be possible to regenerate an IG exactly as it was, but it's far from guaranteed
Last updated: Apr 12 2022 at 19:14 UTC