Hi all,

As you probably noticed, all our packages (at least the exported ones)
are annotated with the OSGi annotation `@Version`.
This might result in failures from the `bnd-baseline-maven-plugin` if
you make changes in the public API without incrementing the version
annotation.

Since BND only indicates the minimal version increment, we can adopt
many different conventions on package versioning.
For example OSGi itself increments the packages by the minimal amount
(so OSGi 8.0 contains version 1.10 of OSGi Framework API).

Personally I would find such a convention confusing since OSGi is not
our main market.
If we have a package versioned 2.3.4 and BND asks as to upgrade the
version I would propose:

 * if BND classifies the change as `MICRO` to use 2.3.5,
 * if BND classifies the change as `MINOR` to use the next Log4j minor
release number (e.g. 2.22.0); such a change can not be included in a
patch release,
 * if BND classifies the change as `MAJOR`, either we publish the
change only in the `main` branch or we fix it so that it is not a
breaking change.

Remark that some changes that can not possibly break any existing
code, might be classified by BND as `MAJOR`: e.g. removing `protected`
methods from `final` classes is such a limitation. In such cases we
can override BND's decision using the `diffpackages` configuration of
the plugin:

https://github.com/bndtools/bnd/tree/master/maven-plugins/bnd-baseline-maven-plugin#diffpackages

Piotr

Reply via email to