`oeo-closure.owl` no longer built on every push
Summary of the discussion
The OEO CI workflow is run on every push and regularly requires around 11 minutes to build and test the ontology. To do this it builds the oeo-full.omn, oeo-full.owl and oeo-closure.owl files. However, only the first two are required for the subsequent test step.
This Pr changes the workflow to no longer build the oeo-closure.owl file as it does not need to be built after every push. As can be seen at the required completion time on the workflow of this pr, the time was reduced to 3m 39s.
This breaks backwards compatibility as this workflow also attaches the built files as artifacts of the workflow run for anyone to download. So any script, tool or tutorial (e.g. the wiki entry How-to-release-a-new-ontology-version) will no longer be feasible since the artifacts no longer contain the previously expected files. The problem with the release workflow as described in the tutorial is fixed with https://github.com/OpenEnergyPlatform/ontology/pull/1956.
Type of change (CHANGELOG.md)
---
Workflow checklist
Automation
Closes #1934
PR-Assignee
- [x] 🐙 Follow the Pull Request Workflow
- [ ] 📝 Update the CHANGELOG.md
- [ ] 📙 Add #'s to
term tracker annotation
Reviewer
- [ ] 🐙 Follow the Reviewer Guide
- [ ] 🐙 Provided feedback and show sufficient appreciation for the work done
Since a few people were added to review the PR, here is a little explanation of why changing this one line (hopefully) works as expected:
- The
makecommand builds the ontology using the Makefile, which defines all the steps to build the ontology. - In those Makefiles you can also define so-called targets.
- This is the
basetarget, which we could run specifically by executingmake base. - Here is the
alltarget. It is defined that if it is run by executingmake all, it will call thebase,merge, and thenclosuretargets. - You can execute a given or multiple targets by defining them after the
makecommand. If no target is given, themakecommand will execute the first target in the file.
- This is the
- In the previous implementation, only
makewas called, so it would execute the first target in the Makefile, which isall. This target then callsbase,mergeandclosure. - I am yet not really sure, how to describe what the
basetarget exactly does. But themergetarget also builds theoeo-full.owlfile, while theclosuretarget builds theoeo-closure.owl. - So I changed that line to no longer implicitly call the
base merge closuretargets, but explicitly only thebase mergetargets. This way it no longer builds theoeo-closure.owl.
I hope this helps. :)
As addition to @ColinHDev explanation: the oeo-closure will be removed from the usual push workflows. With #1956 its creation will be only performed in the post-release procedures.