ODK 1.5 (March 2024)
We thank the community for all your support and feedback! Without your issues and contributions we would not be able to do our work!
Update instructions
https://oboacademy.github.io/obook/howto/odk-update/
Highlights and possibly breaking changes (Read this!)
- All processes within the ODK container now runs under the identity of an (unprivileged) user by default. This fixes the issue of generated files being owned by the superuser, when the Docker daemon itself runs as the superuser (as is the case by default on most GNU/Linux systems). See PR1, PR2, PR3.
- Consequences: Some workflows that require superuser rights may not work anymore as expected.
- Mitigation: If you have a workflow that requires being run as a superuser (for example, if you need to install extra Debian/Ubuntu packages via
apt-get
), set the environment variableODK_USER_ID
to 0 when running that workflow or, to always run all workflows as a superuser (as was the case in previous ODK versions), set the configuration parameterrun_as_root
toTrue
before updating your repository.
- Change the definition of "base release". See PR.
- Consequence: The base file now does not only contain the editors axioms in their raw form, but the axioms "as intended by the ontology developer", for example, including inferences. For the base-specification see here.
- Mitigation: If you want a release that corresponds exactly to the old base file, use
baselite
instead.
- Allow refreshing the mirrors (externally downloaded ontologies) under
IMP=false
. See PR.- Consequence: you now cannot rely on
IMP=false
anymore if you want to avoid refreshing mirrors as well - you need to useIMP=false MIR=false
instead!
- Consequence: you now cannot rely on
- Make qc.yml ODK managed by default, so it is actually being updated along with the rest of the files. See PR.
- Consequence: If you have overwritten that workflow with custom content, you have to follow the mitigation strategies.
- Mitigation: (1) migrate the custom content to a differently named workflow or (2) deactivate syncning of that workflow manually by adding a
workflows
section to your ODK config.
- Generate
custom_reports
during release process PR.- Consequence: This means that all reports configured in ODK are automatically updated at release time, so you have more files need to review during a release.
- Mitigation: Add your reports to
.gitignore
or remove them from your ODK config.
- We added the "International Edition" as a release product, including an entire workflow system for managing translations using the Babelon format. This feature is still under development, but works - feel free to reach out if you like to test it.
New and updated tooling
- New ROBOT Version 1.9.5 was added in a previous minor release.
- A lot of updated python tools, including OAK (0.5.25), SSSOM tools (0.4.4), LinkML (1.7.5), kgx (2.2.5) and curies (0.7.7). A full list of all available python tools and their versions is available here.
- The Babelon Toolkit (0.2.7) for managing multilingual ontologies has been added as well.
- Added table-reader plugin for mkdocs to directly integrate CSV files into your ontology documentation, see PR.
- Added Perl module Business::ISBN, see PR.
- Updated Apache Jena (4.9.0), Soufflé, Fastobo-validator, Ammonite REPL & Script-Runner (2.5.9), DOSDP-Tools (0.19.3), Relation-Graph (2.3.2).
- Added SSSOM-Java (0.7.5) (PR) and KGCL-Java (0.3.2) (PR) to
odkfull
.
New configuration options
- Add option to include defined-by annotation in imports, see PR.
- Add option
release_annotate_inferred_axioms
, see PR, to enable the annotation of inferred axioms during release.
Makefile workflows
- Make it possible to collect per-command resource usage data, see PR. This allows us to see which goals consume how much memory, and how long they take, to identify performance bottlenecks.
- Enable support for custom ROBOT plugins in ODK, see PR
- Add a
test_fast
goal to allow running tests without refreshing dependencies PR. - Re-integrate LightRDF RDF/XML validation, see PR1, PR2
- Add SPARQL Check to find uses of deprecated DC PR
- Add release diff action, see PR. This allows posting diffs automatically as a comment to a Pull Request.
- Add convenience check if customised ROBOT report config is out of date PR. This allows checking if you are missing out on some new ROBOT report checks!
- Add a nicer, more comprehensive way to understand the versions of the tools used in ODK, see PR.
Runner and Infrastructure
- Allow passing configuration options to the OWL API, see PR.
- Automatically check whether the repository needs to be updated, see PR.
- Forward the host SSH agent socket into the container, see PR.
Bugfixes
- Fix import to use
OBOBASE
in base-iri, notURIBASE
, see PR. - Do not create individual import modules when
use_base_merging
is enabled, see PR. - Make docs workflow configurable, see PR.
- Update
illegal-date-violation.sparql
to acceptxsd:dateTime
, see PR. - Update URL to show CI status badge correctly on repo README.md, see PR.