Repository navigation
Description
ROBOT is moving to OWL API 5.5.1 and needs a matching release of this library. I migrated the code locally to OWL API 5. What's left is making the release pipeline work again, cutting 0.2.0, and bumping the dependency in ROBOT.
The ROBOT PR ontodev/robot#1295 has "update org.geneontology.reasoner.ExpressionMaterializingReasonerFactory from expression-materializing-reasoner" on its To-Do list. ROBOT currently pulls in 0.1.3, which is built against OWL API 4. With the local migration, pom.xml is now at 0.2.0-SNAPSHOT and depends only on owlapi-api and owlapi-impl 5.5.1 at compile scope, with <release>11</release>. owlapi-apibinding is test-only.
The code is done, but the publishing setup is not. pom.xml still deploys through OSSRH: nexus-staging-maven-plugin 1.6.3 pointing at https://oss.sonatype.org/, plus an ossrh snapshotRepository under distributionManagement. OSSRH was shut down in mid-2025, so mvn deploy with this pom cannot publish anything. It has to switch to org.sonatype.central:central-publishing-maven-plugin, configured the way ROBOT does it (0.9.0, publishingServerId central, autoPublish true). Whoever runs the release needs a Central Portal user token in ~/.m2/settings.xml under server id central, and the org.geneontology namespace has to be accessible to that account on the Portal.
CI is dead too. .travis.yml builds on oraclejdk8, which can no longer compile the project now that it targets Java 11. I'd replace it with a GitHub Actions workflow (.github/workflows/ci.yml) that runs mvn test on JDK 11, 17 and 21, and delete .travis.yml.
Once 0.2.0 is on Central, the ROBOT side is small. In robot-core/pom.xml, bump the version and drop the owlapi-distribution exclusion. The new artifact doesn't depend on owlapi-distribution anymore, so there is nothing left to exclude.
Examples
Replace the nexus-staging-maven-plugin block and the ossrh distributionManagement in pom.xml with:
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.9.0</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>true</autoPublish>
</configuration>
</plugin>Minimal CI workflow:
name: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
java: [11, 17, 21]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: ${{ matrix.java }}
cache: maven
- run: mvn -B testROBOT, robot-core/pom.xml:
<dependency>
<groupId>org.geneontology</groupId>
<artifactId>expression-materializing-reasoner</artifactId>
- <version>0.1.3</version>
- <exclusions>
- <exclusion>
- <groupId>net.sourceforge.owlapi</groupId>
- <artifactId>owlapi-distribution</artifactId>
- </exclusion>
- </exclusions>
+ <version>0.2.0</version>
</dependency>Related
- ROBOT OWL API 5.5.1 upgrade: Upgrade to OWL API 5 ontodev/robot#1295
- Sonatype OSSRH sunset: https://central.sonatype.org/news/20250326_ossrh_sunset/
- Central Portal Maven publishing: https://central.sonatype.org/publish/publish-portal-maven/
- java.util.Optional conflicts with com.google.common.base.Optional #4 (
java.util.Optionalvs GuavaOptional). This is likely moot after the OWL API 5 migration, so check it and close it with the release.
Activity