The version number only changes when we intentionally change the API so that it would cause failures with an older implementation. For example, I believe the last time it changed was when we introduced ServiceLoader to locate the implementation.
In 3.x the constant is set to 3.0.0 as the Log4j API won’t work with an implementation that only supports 2.6.0. Ralph > On Nov 13, 2023, at 3:02 PM, Piotr P. Karwasz <piotr.karw...@gmail.com> wrote: > > Hi Ralph, > > On Mon, 13 Nov 2023 at 22:18, Ralph Goers <ralph.go...@dslextreme.com> wrote: >> >> How does this relate, if at all, to the COMPATIBLE_API_VERSIONS constant >> defined in ProviderUtil.java? We use that to ensure the API only binds with >> a compatible implementation of the API. > > It is certainly related, although in practice I don't know how. > In theory every minor version bump of `org.apache.logging.log4j` or > `o.a.l.l.spi` can cause an incompatibility between API and > implementation. > In practice the implementations also rely on the API for > `o.a.l.l.util` classes, so they will not work with a version that is > too old. > > I would certainly bring some order here, if you have any ideas how... > > Piotr