Skip to content

ODK 1.5 (March 2024)

Compare
Choose a tag to compare
@matentzn matentzn released this 02 Mar 19:59
· 147 commits to master since this release
98b9cce

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 variable ODK_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 parameter run_as_root to True 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 use IMP=false MIR=false instead!
  • 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, not URIBASE, 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 accept xsd:dateTime, see PR.
  • Update URL to show CI status badge correctly on repo README.md, see PR.

For more detailed overview of the changes see: