Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [m2e-dev] semantic versioning / Re: Starting a 2.0 with breaking changes soon?



On Thu, Feb 17, 2022 at 7:07 AM Christoph Läubrich <laeubi@xxxxxxxxxxxxxx> wrote:
What I'm wondering (now we are ready for breaking things)  is if we are
should switch from release/bump versions to semantic versioning

m2e already uses semantic versioning at artifact level.
 
1) currently the concept of "compatible connectors" is broken and
effectively does not work. with semver there would be a natural
definition of "compatible" but we might require connectors to update
from time to time their version ranges.

I believe connectors compatibility can already be defined with the Import-Package/Require-Bundle version range restriction.
 
2) we never need to think about if API breaks are good, or need a 3.0
for m2e as a whole, and will get a better feeling if and how we break
consumers.

We're already free to break API and change the bundle versions accordingly. The m2e release version that appears on tag and PMI has no technical meaning, it more a "marketing" version.

m2e.api -> contains all API / SPI interfaces with versioned packages
m2e.core -> contains our implementations of the above and so on, should
never be referenced by clients or only in rare circumstances
m2e.ui -> all the UI stuff.

We kind of already have this with exported non-internal packages.

Beside that I planned to add semver support to tycho as well, so even if
we for a short time have to handle this manually we hopefully will get
good automatic support for this soon through tycho, adding such support
would be best if there is at least one consumer (m2e in this case).

What do you call semver actually? The reference for Eclipse world is https://wiki.eclipse.org/Version_Numbering and that's what is currently applied and what Tycho+PDE API Tools are capable of dealing with as it's done on Eclipse Platform.

Back to the top