|[open-measured-data-wg] Unexpected changes to OpenMDM API|
We’re trying to build a version of the web client by grabbing the latest sources. There’s a break in binary compatibility brought by http://git.eclipse.org/c/gerrit/mdmbl/org.eclipse.mdm.api.base.git/commit/?id=14f7a9c9ee7c3e06963e5a8b581e5651c127bff8
The getID/setID methods were migrated from Long to String.
Why is this a problem? Because the project version did not change. Have a look at the project repository at http://git.eclipse.org/c/gerrit/mdmbl/org.eclipse.mdm.api.base.git/log/
The change was introduced by
2017-07-19 518738: Type of Entity-IDs (changed in api.base, api.default, api.ods)
It’s quite recent. Three commits later the repository was tagged with 0.7. 14 commits later it was tagged with 0.8 (on September 7th). Yet the project’s version is still set to 1.0.0.
So which is it? Is it 0.8? is it 1.0.0? Aren’t we supposed to be using semantic versioning for labeling project versions? If we are then the current state of the project is horribly broken. This “small change” should have prompted the project version to jump to 2.0.0-SNAPSHOT at the very least if semver is to be followed to the letter. If we’re not following semver, then what is it?
I ask then, what versioning scheme is in place and where do we get hold of the document that states it?
The OpenMDM Jira instance doesn’t even reach that number https://openmdm.atlassian.net/projects/OMDM/issues/
Also, this commit http://git.eclipse.org/c/gerrit/mdmbl/org.eclipse.mdm.api.base.git/commit/?id=dc2fa148c68d95ccd73f177f19b854d45c66df74 added a version range to a test dependency: mockito-core.
You never ever, let me repeat that, NEVER EVER use version ranges at any time, for whatever reason!
Their usage lead to unreproducible builds and other potential incompatibility issues. Granted, Mockito is a project that evolves very, very fast, they push releases at least once a month, and as great as they try to keep things tidy they broke binary compatibility by moving around private APIs between 2.6.x and 2.7.0. This could happen again. Matthias, you’re exposing the project and every developer that wants to build the project to potential problems just because you couldn’t be bothered to pick a fix version for a dependency. If you didn’t pick the version range at least you signed of the commit. Please do not do this. This problem should have been spotted in a code review.
Back to the top