Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Welcome to owlapi version 10 #624

Open
sesuncedu opened this issue Feb 14, 2017 · 10 comments
Open

Welcome to owlapi version 10 #624

sesuncedu opened this issue Feb 14, 2017 · 10 comments

Comments

@sesuncedu
Copy link
Contributor

Starting from owlapi-5.0.0, then incrementing version numbers in accordance with semantic versioning principles have the following sequence of changes in package version numbers. I am leaving out bumps in the micro version.

5.0.1

The Bundle-Version should be 6.0.0, as there is a major version change.

LEVEL Package Version
MINOR org.semanticweb.owlapi.io {version=5.1.0}
MAJOR org.semanticweb.owlapi.model.parameters {version=6.0.0}
MINOR org.semanticweb.owlapi.rdf.rdfxml.renderer {version=5.1.0}

5.0.2

The Bundle-Version should be 7.0.0, as there is a major version change.

LEVEL Package Version
MAJOR org.coode.owlapi.manchesterowlsyntax 6.0.0
MINOR org.semanticweb.owlapi.io 5.2.0
MAJOR org.semanticweb.owlapi.krss2.renderer 6.0.0
MAJOR org.semanticweb.owlapi.manchestersyntax.parser 6.0.0
MINOR org.semanticweb.owlapi.model 5.1.0
MINOR org.semanticweb.owlapi.model.axiomproviders 5.1.0
MINOR org.semanticweb.owlapi.model.parameters 6.1.0
MINOR org.semanticweb.owlapi.model.providers 5.1.0
MAJOR org.semanticweb.owlapi.rdf 6.0.0
MINOR org.semanticweb.owlapi.rdf.rdfxml.renderer 5.2.0
MINOR org.semanticweb.owlapi.rdf.turtle.renderer 5.1.0
MINOR org.semanticweb.owlapi.reasoner 5.1.0
MINOR org.semanticweb.owlapi.rio 5.1.0
MINOR org.semanticweb.owlapi.util 5.1.0
MAJOR org.semanticweb.owlapitools.builders 6.0.0
MAJOR uk.ac.manchester.cs.owl.owlapi 6.0.0

5.0.3

The Bundle-Version should be 8.0.0, as there is a major version change.

LEVEL Package Version
MAJOR org.coode.owlapi.manchesterowlsyntax 7.0.0
MINOR org.semanticweb.owlapi.dlsyntax.renderer 5.1.0
MAJOR org.semanticweb.owlapi.manchestersyntax.parser 7.0.0
MINOR org.semanticweb.owlapi.model 5.2.0
MINOR org.semanticweb.owlapi.rio.utils 5.1.0
MAJOR org.semanticweb.owlapi.util 6.0.0

5.0.4

The Bundle-Version should be 8.1.0, as there is a minor version change.

LEVEL Package Version
MINOR org.semanticweb.owlapitools.decomposition 5.1.0

5.0.5

The Bundle-Version should be 9.0.0, as there is a major version change.

LEVEL Package Version
MINOR com.clarkparsia.owlapi.explanation.io 5.1.0
MAJOR org.obolibrary.obo2owl 6.0.0
MINOR org.obolibrary.oboformat.diff 5.1.0
MAJOR org.obolibrary.oboformat.model 6.0.0
MINOR org.obolibrary.oboformat.parser 5.1.0
MINOR org.semanticweb.owlapi.change 5.1.0
MINOR org.semanticweb.owlapi.model 5.3.0
MINOR org.semanticweb.owlapi.model.parameters 6.2.0
MINOR org.semanticweb.owlapi.profiles.violations 5.1.0
MAJOR org.semanticweb.owlapi.rdf 7.0.0
MAJOR org.semanticweb.owlapi.rdf.model 6.0.0
MAJOR org.semanticweb.owlapi.rdf.rdfxml.parser 6.0.0
MAJOR org.semanticweb.owlapi.rdf.rdfxml.renderer 6.0.0
MINOR org.semanticweb.owlapi.rdf.turtle.parser 5.1.0
MAJOR org.semanticweb.owlapi.rdf.turtle.renderer 6.0.0
MAJOR org.semanticweb.owlapi.rio 6.0.0
MINOR org.semanticweb.owlapi.rio.utils 5.2.0
MAJOR org.semanticweb.owlapi.util 7.0.0
MAJOR org.semanticweb.owlapi.vocab 6.0.0
MINOR uk.ac.manchester.cs.owl.explanation.ordering 5.1.0
MAJOR uk.ac.manchester.cs.owl.owlapi 7.0.0

5.0.6-SNAPSHOT (as of even date)

The Bundle-Version should be 10.0.0, as there is a major version change.

LEVEL Package Version
MAJOR org.coode.owlapi.obo12.parser 6.0.0
MINOR org.semanticweb.owlapi.apibinding 5.1.0
MINOR org.semanticweb.owlapi.dlsyntax.parser 5.1.0
MAJOR org.semanticweb.owlapi.formats 6.0.0
MAJOR org.semanticweb.owlapi.functional.parser 6.0.0
MINOR org.semanticweb.owlapi.krss1.parser 5.1.0
MINOR org.semanticweb.owlapi.krss2.parser 5.1.0
MINOR org.semanticweb.owlapi.model 5.4.0
MINOR org.semanticweb.owlapi.rdf.turtle.parser 5.2.0
MAJOR org.semanticweb.owlapi.rio 7.0.0
MAJOR org.semanticweb.owlapi.rio.utils 6.0.0
MAJOR uk.ac.manchester.cs.owl.owlapi 8.0.0
MAJOR uk.ac.manchester.cs.owl.owlapi.concurrent 6.0.0

Packages which are still at 5.0.X

Note: The micro part of the version number has been bumped when either the bnd baseline tool detects a micro change, or the sha1 digest of the class file changes. These numbers are as of 5.0.6-SNAPSHOT.

package version
com.clarkparsia.owlapi.explanation {version=5.0.1}
com.clarkparsia.owlapi.explanation.util {version=5.0.1, imported-as=[5.0,6)}
com.clarkparsia.owlapi.modularity.locality {version=5.0.1, imported-as=[5.0,6)}
de.uulm.ecs.ai.owlapi.krssparser {version=5.0.0}
org.coode.owl.krssparser {version=5.0.0}
org.coode.owlapi.latex {version=5.0.0}
org.coode.owlapi.obo.parser {version=5.0.0}
org.coode.owlapi.turtle {version=5.0.1}
org.obolibrary.macro {version=5.0.1}
org.obolibrary.oboformat.writer {version=5.0.1, imported-as=[5.0,6)}
org.obolibrary.owl {version=5.0.1}
org.semanticweb.owlapi {version=5.0.2, imported-as=[5.0,6)}
org.semanticweb.owlapi.annotations {version=5.0.0, imported-as=[5.0,6)}
org.semanticweb.owlapi.atomicdecomposition {version=5.0.0, imported-as=[5.0,6)}
org.semanticweb.owlapi.debugging {version=5.0.1}
org.semanticweb.owlapi.expression {version=5.0.1, imported-as=[5.0,6)}
org.semanticweb.owlapi.functional.renderer {version=5.0.3, imported-as=[5.0,6)}
org.semanticweb.owlapi.latex.renderer {version=5.0.3}
org.semanticweb.owlapi.manchestersyntax.renderer {version=5.0.3, imported-as=[5.0,6)}
org.semanticweb.owlapi.metrics {version=5.0.1}
org.semanticweb.owlapi.modularity {version=5.0.0, imported-as=[5.0,6)}
org.semanticweb.owlapi.normalform {version=5.0.1}
org.semanticweb.owlapi.oboformat {version=5.0.1}
org.semanticweb.owlapi.owlxml.parser {version=5.0.4}
org.semanticweb.owlapi.owlxml.renderer {version=5.0.2}
org.semanticweb.owlapi.profiles {version=5.0.3, imported-as=[5.0,6)}
org.semanticweb.owlapi.reasoner.impl {version=5.0.3, imported-as=[5.0,6)}
org.semanticweb.owlapi.reasoner.knowledgeexploration {version=5.0.0}
org.semanticweb.owlapi.reasoner.structural {version=5.0.3}
org.semanticweb.owlapi.search {version=5.0.4, imported-as=[5.0,6)}
org.semanticweb.owlapi.test {version=5.0.2}
org.semanticweb.owlapi.util.mansyntax {version=5.0.0, imported-as=[5.0,6)}
uk.ac.manchester.cs.atomicdecomposition {version=5.0.1}
uk.ac.manchester.cs.chainsaw {version=5.0.0}
uk.ac.manchester.cs.factplusplusad {version=5.0.1}
uk.ac.manchester.cs.owl.owlapi.mansyntaxrenderer {version=5.0.1}
uk.ac.manchester.cs.owlapi.dlsyntax {version=5.0.0}
uk.ac.manchester.cs.owlapi.modularity {version=5.0.1, imported-as=[5.0,6)}

Additional packages still matching 5.X.X

package version
com.clarkparsia.owlapi.explanation.io {version=5.1.0}
org.obolibrary.oboformat.diff {version=5.1.0}
org.obolibrary.oboformat.parser {version=5.1.0, imported-as=[5.1,6)}
org.semanticweb.owlapi.apibinding {version=5.1.0}
org.semanticweb.owlapi.change {version=5.1.0, imported-as=[5.1,6)}
org.semanticweb.owlapi.dlsyntax.parser {version=5.1.0}
org.semanticweb.owlapi.dlsyntax.renderer {version=5.1.1}
org.semanticweb.owlapi.io {version=5.2.2, imported-as=[5.2,6)}
org.semanticweb.owlapi.krss1.parser {version=5.1.0, imported-as=[5.1,6)}
org.semanticweb.owlapi.krss2.parser {version=5.1.0}
org.semanticweb.owlapi.model {version=5.4.0, imported-as=[5.4,6)}
org.semanticweb.owlapi.model.axiomproviders {version=5.1.0, imported-as=[5.1,6)}
org.semanticweb.owlapi.model.providers {version=5.1.0, imported-as=[5.1,6)}
org.semanticweb.owlapi.profiles.violations {version=5.1.0, imported-as=[5.1,6)}
org.semanticweb.owlapi.rdf.turtle.parser {version=5.2.0}
org.semanticweb.owlapi.reasoner {version=5.1.1, imported-as=[5.1,6)}
org.semanticweb.owlapitools.decomposition {version=5.1.1, imported-as=[5.1,6)}
uk.ac.manchester.cs.owl.explanation.ordering {version=5.1.0}

Packages that are no longer backwards compatible with 5

package version
org.coode.owlapi.manchesterowlsyntax {version=7.0.1}
org.coode.owlapi.obo12.parser {version=6.0.0}
org.obolibrary.obo2owl {version=6.0.1, imported-as=[6.0,7)}
org.obolibrary.oboformat.model {version=6.0.1, imported-as=[6.0,7)}
org.semanticweb.owlapi.formats {version=6.0.0, imported-as=[6.0,7)}
org.semanticweb.owlapi.functional.parser {version=6.0.0, imported-as=[6.0,7)}
org.semanticweb.owlapi.krss2.renderer {version=6.0.2}
org.semanticweb.owlapi.manchestersyntax.parser {version=7.0.2, imported-as=[7.0,8)}
org.semanticweb.owlapi.model.parameters {version=6.2.1, imported-as=[6.2,7)}
org.semanticweb.owlapi.rdf {version=7.0.1, imported-as=[7.0,8)}
org.semanticweb.owlapi.rdf.model {version=6.0.1, imported-as=[6.0,7)}
org.semanticweb.owlapi.rdf.rdfxml.parser {version=6.0.1, imported-as=[6.0,7)}
org.semanticweb.owlapi.rdf.rdfxml.renderer {version=6.0.1, imported-as=[6.0,7)}
org.semanticweb.owlapi.rdf.turtle.renderer {version=6.0.1}
org.semanticweb.owlapi.rio {version=7.0.0}
org.semanticweb.owlapi.rio.utils {version=6.0.0, imported-as=[6.0,7)}
org.semanticweb.owlapi.util {version=7.0.1, imported-as=[7.0,8)}
org.semanticweb.owlapi.vocab {version=6.0.1, imported-as=[6.0,7)}
org.semanticweb.owlapitools.builders {version=6.0.2, imported-as=[6.0,7)}
uk.ac.manchester.cs.owl.owlapi {version=8.0.0, imported-as=[8.0,9)}
uk.ac.manchester.cs.owl.owlapi.concurrent {version=6.0.0, imported-as=[6.0,7)}
@ignazio1977
Copy link
Contributor

?

@sesuncedu
Copy link
Contributor Author

THE VERSION NUMBER IS A LIE!

@ignazio1977
Copy link
Contributor

I'm not clear on the definition of truth.

@sesuncedu
Copy link
Contributor Author

Since the actual release history has used package version numbers that are the same as the maven version number, an alternative re-numbering scheme would be:

  1. if the package version number matches 5.0.*, keep it, as it is less than or equal to an existing equivalent release.
  2. If the package version number matches 5.[1-9].*, set the package number to 5.1.0, since the minor version increases weren't done in actual releases.
  3. If the package version number is >=6.0.0 , set the package version number to 6.0.0 , since the major version increases weren't done in actual releases.

@sesuncedu
Copy link
Contributor Author

sesuncedu commented Feb 14, 2017

The package version numbers in the initial message are the version numbers that should have been used in the current version of the api if numbers had been bumped appropriately according to the principals of semantic versioning for each release in the 5.0.* series.

See e.g.
Semantic Versioning 2.0.0 - http://semver.org/

Given a version number MAJOR.MINOR.PATCH, increment the:

  • MAJOR version when you make incompatible API changes,
  • MINOR version when you add functionality in a backwards-compatible manner, and
  • PATCH version when you make backwards-compatible bug fixes.

OSGI Semantic Versioning Whitepaper

@ignazio1977
Copy link
Contributor

OK, so we've made less minor releases than strictly required.

I question whether strict adherence to this scheme solves the problem presented, i.e., dependency hell. I have the feeling more versions make it worse, not better.

@sesuncedu
Copy link
Contributor Author

The numbering makes it much easier to have backwards compatibility (and not have 5 different versions of owlapi loaded in the same runtime).
They're different from human consumable release numbers :)

Ideally, packages that are not supposed to be for general use would be made private. Also, packages and bundles could be made smaller, with a smaller API surface.

@ansell
Copy link
Member

ansell commented Feb 24, 2017

Should we look into making the next OWLAPI major release consistent with the OSGi package numbers?

@ansell
Copy link
Member

ansell commented Feb 24, 2017

Overall though I think the BND automated detection of "new functionality" is too vigourous, and even strict SemVer advocates wouldn't advocate for requiring a new minor release for every new field or method just for the sake of it if the patch could otherwise fit into a smaller and sooner to be released patch version.

Once we fully support SemVer, we could still support multiple major versions of OWLAPI on the classpath by changing package names to include the major version number.

In terms of stable API's, it may be more useful to release multiple beta versions of major version releases and work through any small niggles before actually releasing X.0.0 so we are less likely to need to release an incompatible X.0.1 release to patch a major bug that can't be patched while keeping the API backwards compatible.

@sesuncedu
Copy link
Contributor Author

sesuncedu commented Feb 24, 2017 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants