Skip to content
Christoph Redl edited this page Apr 12, 2016 · 10 revisions

Versioning System

  • For the transition from dlvhex 1.X to 2.X we renamed all libraries
A rationale for that is given here: http://www106.pair.com/rhp/parallel.html
  • For ABI versions we use the Apache APR approach to versioning
https://apr.apache.org/versioning.html
  • DLVHEX and plugins define their ABI compatibility using
 DLVHEX_DEFINE_VERSION([DLVHEX_ABI],[X.Y.Z])

in configure.ac

Versions

 ||dlvhex Release||ABI  ||libdlvhexbase||libaspsolver||libdlvhex2-base||libdlvhex2-aspsolver||libdlvhex2-mlpsolver||libdlvhex2-internalplugins||
 ||2.5.0         ||7.5.0||-            ||-           ||12.0.0         ||5.0.0               ||2.0.1               ||5.0.0                     ||
 ||2.4.0         ||7.4.0||-            ||-           ||11.0.0         ||5.0.0               ||2.0.1               ||4.0.2                     ||
 ||2.3.0         ||7.3.0||-            ||-           ||10.0.0         ||5.0.0               ||2.0.1               ||4.0.1                     ||
 ||2.2.0         ||7.2.0||-            ||-           ||9.0.0          ||5.0.0               ||2.0.1               ||3.0.0                     ||
 ||2.1.0         ||7.1.0||-            ||-           ||8.0.1          ||4.0.1               ||2.0.1               ||2.0.1                     ||
 ||2.0.0         ||7.0.0||-            ||-           ||7.0.0          ||3.0.0               ||1.0.0               ||1.0.0                     ||
 ||1.7.4         ||-    ||6.2.0        ||2.1.0       ||-              ||-                   ||-                   ||-                         ||
 ||1.7.3         ||-    ||6.1.0        ||2.1.0       ||-              ||-                   ||-                   ||-                         ||
 ||1.7.2         ||-    ||6.0.0        ||2.0.0       ||-              ||-                   ||-                   ||-                         ||
 ||1.7.1         ||-    ||6.0.0        ||2.0.0       ||-              ||-                   ||-                   ||-                         ||
 ||1.7.0         ||-    ||5.1.0        ||1.0.0       ||-              ||-                   ||-                   ||-                         ||
 ||1.6           ||-    ||5.0.0        ||0.0.0       ||-              ||-                   ||-                   ||-                         ||

Releasing

  • ABI version X.Y.Z library version A.B.C
    • there are three classes of releases:
      • non-interface-changing (e.g., bugfixes in implementation, comment changes):
        • increment Z and B
      • backwards-compatible interface changes (e.g., class additions, method and data member additions at the end of a class):
        • increment Y and A and C
        • set Z and B to 0 (increment C if backwards compatible for that particular library)
      • all other changes:
        • increment X and A
        • set Y, Z, B, and C to 0
Clone this wiki locally