Skip to content

Commit fa42c54

Browse files
authored
Merge pull request #388 from INCATools/odk-1.2.26
ODK 1.2.26
2 parents fbfe296 + 817f675 commit fa42c54

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+1324
-490
lines changed

Changes.md

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,31 @@
1-
# unreleased
2-
- bumped fastobo validator to new version ([pull](https://github.com/INCATools/ontology-development-kit/pull/379)
1+
2+
# v1.2.26 (2 February 2021)
3+
- New versions:
4+
- fastobo validator to new version ([pull](https://github.com/INCATools/ontology-development-kit/pull/379)
5+
- ROBOT 1.8.1 (lots of new changes, see: [Changelog](https://github.com/ontodev/robot/blob/master/CHANGELOG.md))
6+
- DOSDPTOOLS 0.16 (lots of speed-up for bulk pattern generation)
7+
- New features:
8+
- new python dependencies ([cogs](https://github.com/ontodev/cogs), a tool to directly manage tsv files in your repo on Google sheets)
9+
- stable serialisation order for JSON files using jq's walk function. -> this decreases the size of the diff for git!
10+
- Some improvements to logging when seeding a new repo, to make it easier to find errors
11+
- A new method to validate the id-ranges file can be invoked using `sh run.sh make validate_idranges` (after update to latest ODK repo)
12+
- modules are now annotated with a dc:source annotation to their original ontology (version)
13+
- New configuration options:
14+
- module_type ([example slme](tests/test-module-star.yaml), [example minimal](tests/test-module-minimal.yaml), [example mireot](tests/test-module-star.yaml)). Direct support for MIREOT and a new module type, minimal.
15+
- To encourage stable versions and releases, ODK, by default, merges imports into the release files. Previously, we continued to release the imports as well - which we do not recommend anymore. If you still wish to release your imports as usual, you can set a flag `release_imports` in the `import_group` section of your makefile (see [example](tests/test-release.yaml)).
16+
- the same as the above applies for reports (see [example](tests/test-robot-report.yaml))
17+
- The custom sparql checks, and the custom sparql exports, are now directly configurable
18+
- `custom_sparql_checks` : Chose which additional sparql checks you want to run. The related sparql query must be named CHECKNAME-violation.sparql, and be placed in the src/sparql directory (see [example](tests/test-robot-report.yaml))
19+
- `custom_sparql_exports` : Chose which additional sparql checks you want to run. The related sparql query must be named CHECKNAME-violation.sparql, and be placed in the src/sparql directory (see [example](tests/test-robot-report.yaml))
20+
- `custom_sparql_exports` : Chose which custom reports to generate. The related sparql query must be named CHECKNAME.sparql, and be placed in the src/sparql directory (see [example](tests/test-robot-report.yaml))
21+
- `git_main_branch` : The `main` branch for your repo, default `main`, or (now discouraged, previously) `master`.
22+
- `ci`: continuous integration defaults; currently available: `travis`, `github_actions`
23+
- `create_obo_metadata`: This is mainly for new OBO ontologies. If true, OBO Markdown and PURL configs are created.
24+
- `export_project_yaml`: Default `False`. If set to `True`, project.yaml is created in the top level of the repo.
25+
- Removed a few files from the standard config. This is all part of an effort to slimming down the ODK to the least number of necessary files checked into version control: `src/ontology/Dockerfile`,`src/ontology/patterns.sh`, `src/ontology/release.sh`, `src/ontology/test.sh`, and some temporary files. The `patterns` directory and all its contents only appear now when `use_dosdps`=TRUE.
26+
- Technical:
27+
- Refactored ODK Dockerfile (merged some layers)
28+
- added jq 1.6 which is not available via apt-get (yet).
329

430
# v1.2.25 (18 November 2020)
531
- Updated ROBOT to new version 1.7.2, which includes some hotfixes for ROBOT report and update to whelk 1.0.4

Dockerfile

Lines changed: 67 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,51 @@ FROM ubuntu:18.04
44
LABEL maintainer="obo-tools@googlegroups.com"
55

66
### 2. Get Java, Python and all required system libraries (version control etc)
7-
ENV JAVA_HOME="/usr/lib/jvm/java-1.8-openjdk"
8-
#ENV JAVA_HOME /usr/lib/jvm/java-8-oracle
9-
10-
RUN apt-get update && apt-get install -y software-properties-common && add-apt-repository ppa:swi-prolog/stable && apt-get upgrade -y \
11-
&& apt-get install -y software-properties-common \
12-
build-essential git \
13-
openjdk-8-jre openjdk-8-jdk swi-prolog
14-
15-
16-
### 3. Python and all required system libraries (version control etc)
7+
ENV JAVA_HOME="/usr"
8+
WORKDIR /tools
9+
ENV PATH "/tools/:$PATH"
10+
COPY requirements.txt /tools/
11+
COPY scripts/obodash /tools/
12+
COPY odk/make-release-assets.py /tools/
1713

18-
RUN apt-get update \
19-
&& apt-get install -y python3-pip python3-dev subversion make automake gcc g++ unzip rsync curl wget jq openssl git xlsx2csv \
20-
&& cd /usr/local/bin \
21-
&& ln -s /usr/bin/python3 python \
22-
&& pip3 install --upgrade pip setuptools \
23-
&& if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi \
24-
&& if [[ ! -e /usr/bin/python ]]; then ln -sf /usr/bin/python3 /usr/bin/python; fi \
25-
&& rm -r /root/.cache
14+
#ENV JAVA_HOME /usr/lib/jvm/java-8-oracle
15+
# LAYERSIZE ~1000MB
16+
RUN apt-get update &&\
17+
apt-get install -y software-properties-common &&\
18+
add-apt-repository ppa:swi-prolog/stable &&\
19+
apt-get upgrade -y &&\
20+
apt-get install -y build-essential \
21+
git \
22+
openjdk-8-jre \
23+
openjdk-8-jdk \
24+
swi-prolog \
25+
maven \
26+
python3-pip \
27+
python3-dev \
28+
subversion \
29+
make \
30+
automake \
31+
gcc \
32+
g++ \
33+
unzip \
34+
rsync \
35+
curl \
36+
wget \
37+
jq \
38+
openssl \
39+
xlsx2csv &&\
40+
cd /usr/local/bin \
41+
&& ln -s /usr/bin/python3 python \
42+
&& pip3 install --upgrade pip setuptools \
43+
&& pip3 install -r /tools/requirements.txt \
44+
&& if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi \
45+
&& if [[ ! -e /usr/bin/python ]]; then ln -sf /usr/bin/python3 /usr/bin/python; fi \
46+
&& rm -r /root/.cache
2647

2748
### 4. Install custom tools
49+
# scripts/droid
50+
2851

29-
###### Python libraries ######
30-
WORKDIR /tools
31-
ENV PATH "/tools/:$PATH"
32-
COPY requirements.txt /tools/
33-
RUN pip3 install -r requirements.txt
3452

3553
###### owltools & OORT ######
3654
# For now we get these from jenkins builds, but these should be obtained
@@ -44,20 +62,21 @@ RUN wget https://github.com/owlcollab/owltools/releases/download/$OWLTOOLS/owlto
4462
chmod +x /tools/owltools-oort-all.jar
4563

4664
###### Konclude, the DL reasoner ######
65+
# LAYERSIZE ~28MB
4766
RUN wget https://github.com/konclude/Konclude/releases/download/v0.6.2-845/Konclude-v0.6.2-845-LinuxAlpine-x64-GCC8.3.0-Static-Qt-5.13.zip -O /tools/konclude.zip && \
4867
unzip /tools/konclude.zip && \
49-
mv /tools/Konclude-v0.6.2-845-LinuxAlpine-x64-GCC8.3.0-Static-Qt-5.13 /tools/konclude_reasoner && \
68+
mv /tools/Konclude-v0.6.2-845-LinuxAlpine-x64-GCC8.3.0-Static-Qt-5.13 /tools/konclude_reasoner && \
5069
rm /tools/konclude.zip && \
5170
chmod +x /tools/konclude_reasoner/Binaries && \
5271
echo "#!/bin/bash" > /tools/Konclude && \
5372
echo '/tools/konclude_reasoner/Binaries/Konclude $*' >> /tools/Konclude && \
5473
chmod +x /tools/Konclude
5574

5675
###### ROBOT ######
57-
ENV ROBOT v1.7.2
76+
ENV ROBOT v1.8.1
5877
ARG ROBOT_JAR=https://github.com/ontodev/robot/releases/download/$ROBOT/robot.jar
5978
ENV ROBOT_JAR ${ROBOT_JAR}
60-
RUN pwd
79+
# LAYERSIZE ~66MB
6180
RUN wget $ROBOT_JAR -O /tools/robot.jar && \
6281
wget https://raw.githubusercontent.com/ontodev/robot/$ROBOT/bin/robot -O /tools/robot && \
6382
chmod +x /tools/robot && \
@@ -73,15 +92,18 @@ RUN wget https://dl.bintray.com/fastobo/fastobo-validator/$FASTOBO_VALIDATOR/fas
7392
&& chmod +x /tools/fastobo-validator
7493

7594
##### Ammonite #####
95+
# LAYERSIZE ~31MB
7696
RUN (echo "#!/usr/bin/env sh" \
7797
&& curl -L https://github.com/lihaoyi/Ammonite/releases/download/2.0.3/2.13-2.0.3) >/tools/amm \
7898
&& chmod +x /tools/amm
7999
# Force precompile of ammonite files
100+
# LAYERSIZE ~67MB
80101
RUN amm /dev/null
81102

82103
###### DOSDPTOOLS ######
83-
ENV DOSDPVERSION=0.14
104+
ENV DOSDPVERSION=0.16
84105
ENV PATH "/tools/dosdp-tools/bin:$PATH"
106+
# LAYERSIZE ~200MB
85107
RUN wget -nv https://github.com/INCATools/dosdp-tools/releases/download/v$DOSDPVERSION/dosdp-tools-$DOSDPVERSION.tgz \
86108
&& tar -zxvf dosdp-tools-$DOSDPVERSION.tgz \
87109
&& mv dosdp-tools-$DOSDPVERSION /tools/dosdp-tools \
@@ -97,20 +119,34 @@ RUN swipl -g "pack_install(sparqlprog, [interactive(false)])" -g halt
97119
ENV PATH "/root/.local/share/swi-prolog/pack/sparqlprog/bin:$PATH"
98120
RUN ln -sf /root/.local/share/swi-prolog/pack/sparqlprog /tools/
99121

100-
COPY scripts/obo-dash.sh /tools/obodash
101-
RUN cd /tools/ && chmod +x /tools/obodash && git clone https://github.com/OBOFoundry/OBO-Dashboard.git && \
102-
cd OBO-Dashboard && git checkout docker-dash && echo "DOCKER DASH BRANCH CHECKED OUT" &&\
122+
RUN cd /tools/ && chmod +x /tools/obodash && git clone --depth 1 --branch docker-dash https://github.com/OBOFoundry/OBO-Dashboard.git && \
123+
cd OBO-Dashboard && git checkout docker-dash && echo "Dashboard: using branch" &&\
103124
python3 -m pip install -r requirements.txt && echo " " >> Makefile &&\
104125
echo "build/robot.jar:" >> Makefile &&\
105126
echo " echo 'skipped ROBOT jar download' && touch \$@" >> Makefile && echo "" >> Makefile
106127

128+
########## DROID #########
129+
# LAYERSIZE ~18MB
130+
#RUN apt-get install -y leiningen
131+
#ENV DROID_JAR "droid-0.1.0-SNAPSHOT-standalone.jar"
132+
# LAYERSIZE: ~80MB
133+
#RUN cd /tools/ && mkdir droid_github && cd /tools/droid_github && git clone https://github.com/ontodev/droid &&\
134+
# cd /tools/droid_github/droid && lein uberjar &&\
135+
# mv /tools/droid_github/droid/target/uberjar/$DROID_JAR /tools/droid.jar && rm -rf /tools/droid_github &&\
136+
# ls -l /tools/
137+
#RUN chmod +x /tools/droid
138+
107139
### 5. Install ODK
108140
ARG ODK_VERSION=0.0.0
109141
ENV ODK_VERSION=${ODK_VERSION}
110142

143+
### TODO REVIEW THIS. As we speak, jq is official still stalled at 1.5, but for the walk function, we
144+
### Need 1.6 - once 1.6 is offcial, the following RUN can be removed.
145+
# LAYERSIZE: ~4MB
146+
RUN wget https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64 -O /tools/jq && chmod +x /tools/jq
111147

148+
COPY odk/odk.py /tools/
112149
COPY template/ /tools/templates/
113-
COPY odk/ /tools/
114150
RUN chmod +x /tools/*.py
115151
ENV LC_ALL=C.UTF-8
116152
ENV LANG=C.UTF-8

Makefile

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,18 @@ test_go_mini:
2727

2828
TESTS = $(notdir $(wildcard tests/*.yaml))
2929
TEST_FILES = $(foreach n,$(TESTS), tests/$(n))
30-
test: custom_tests $(TEST_FILES)
30+
#TEST_FILES = tests/test-release.yaml
31+
test: $(TEST_FILES) custom_tests
3132
echo "All tests passed successfully!"
32-
33+
3334
tests/*.yaml: .FORCE
3435
$(CMD) -c -C $@
3536

3637
schema/project-schema.json:
3738
./odk/odk.py dump-schema > $@
3839

3940
# Building docker image
40-
VERSION = "v1.2.25"
41+
VERSION = "v1.2.26"
4142
IM=obolibrary/odkfull
4243
DEV=obolibrary/odkdev
4344
ROBOT_JAR="https://build.obolibrary.io/job/ontodev/job/robot/job/cmd-metrics/6/artifact/bin/robot.jar"

configs/omia-odk.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
id: omia
2+
title: "Online Inheritance of Animals Ontology"
3+
github_org: monarch
4+
repo: omia-ontology
5+
report_fail_on: none
6+
use_dosdps: TRUE
7+
dosdp_tools_options: "--obo-prefixes=true"
8+
export_formats:
9+
- owl
10+
- obo
11+
- json
12+
import_group:
13+
products:
14+
- id: ro
15+
robot_java_args: '-Xmx8G'
16+
allow_equivalents: asserted-only

0 commit comments

Comments
 (0)