Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 457851

Summary: Bump version numbers for Sirius 3.0
Product: [Modeling] Sirius Reporter: Pierre-Charles David <pierre-charles.david>
Component: RelengAssignee: Cedric Brun <cedric.brun>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: belqassim.djafer, laurent.redor
Version: 2.0.0Keywords: triaged
Target Milestone: 3.0.0M5   
Hardware: All   
OS: All   
See Also: https://git.eclipse.org/r/42304
https://git.eclipse.org/r/42411
https://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=ee87457ff8908b57718b4584c981466a23da2402
Whiteboard:

Description Pierre-Charles David CLA 2015-01-19 10:56:53 EST
Currently on master our plug-ins and package are still using "2.0.0" as their version numbers. However we have published 2.0.1, 2.0.2 (and soon 2.0.3) maintenance versions, and already broken APIs compared to 2.0.

We had defered this "bump version" operation because we wanted to take the time to do it correctly and avoid a global bump even for packages and plug-ins which have not actually changed. However with 3.0M5 approaching, I don't think we can wait much longer to bump the versions to something that p2 would consider higher that the 2.0.x maintenance versions (otherwise someone who is using 2.0.x can not upgrade to the latest milestone easily to help us detect and fix problems).
Comment 1 Pierre-Charles David CLA 2015-01-28 10:01:26 EST
See https://git.eclipse.org/r/40540
Comment 2 Cedric Brun CLA 2015-01-28 10:32:58 EST
Here is the result of applying semantic versioning through the 'baseliner' prototype:

https://git.eclipse.org/r/#/c/40540/1

As the end-result we expects from applying the semantic versioning is the capacity for the specifier to express its dependencies at the package level so that the tooling notify him with no 'false positives' I did try with EcoreTools.
I changed all the require-bundles into import-packages with version=[2.0,3.0), "simulating" my will to support both Sirius 2.0 and Sirius 3.0 with the same codebase.

Here are the problematic packages which I'm using which 'upgraded to 3.0'

org.eclipse.sirius.business.api.session;version="[2.0.0,3.0.0)",
org.eclipse.sirius.ecore.extender.business.api.accessor;version="[2.0.0,3.0.0)",
org.eclipse.sirius.ecore.extender.business.api.accessor.exception;version="[2.0.0,3.0.0)",
org.eclipse.sirius.ui.business.api.dialect;version="[2.0.0,3.0.0)",
org.eclipse.sirius.viewpoint;version="[2.0.0,3.0.0)",
org.eclipse.sirius.viewpoint.provider;version="[2.0.0,3.0.0)"

Total number of imported packages is 37.

All of these incompatibilities are matching actual changes into those APIs which have been introduced quite recently (which one can check quite easily looking at the api_change file generated by the baseliner)
Comment 3 Cedric Brun CLA 2015-01-28 11:04:38 EST
as a further comment : changing the version into "[2.0.0,3.0.0]" for the upgraded packages makes the compiler happy. EcoreTools (master) builds just fine with the same code with 2.x and 3.x (source compatibility)
Comment 4 Cedric Brun CLA 2015-01-28 11:22:02 EST
Here is how I see it during the 3.0 release cycle :

* features should be bumped at 3.0.0
* bundle version could be
a°) either semanticaly managed
b°) bumped to 3.0 anyway

I would pick b°) for this release, the tooling to maintain the semvers has not been adopted in the team yet (its just not ready for prime time at a "team scale") and doing it "after the change" has little sense, we'll end up with 3.0 bundles fairly quickly anyway.

On the other hand by numbering the exported packages with the semantic version we can start experimenting from a consummer point of view, and from a developper point of view and raising awareness, within the team, of what changes caused this bump. We could also take this chance to, maybe, move some classes out of some package we consider "the core API you can rely on" so that further changes on those don't break the compatibility.

What do you think ?
Comment 5 Pierre-Charles David CLA 2015-01-29 07:34:04 EST
(In reply to Cedric Brun from comment #4)
> Here is how I see it during the 3.0 release cycle :
> 
> * features should be bumped at 3.0.0
> * bundle version could be
> a°) either semanticaly managed
> b°) bumped to 3.0 anyway
> 
> I would pick b°) for this release, the tooling to maintain the semvers has
> not been adopted in the team yet (its just not ready for prime time at a
> "team scale") and doing it "after the change" has little sense, we'll end up
> with 3.0 bundles fairly quickly anyway.

Agreed.

> On the other hand by numbering the exported packages with the semantic
> version we can start experimenting from a consummer point of view, and from
> a developper point of view and raising awareness, within the team, of what
> changes caused this bump. We could also take this chance to, maybe, move
> some classes out of some package we consider "the core API you can rely on"
> so that further changes on those don't break the compatibility.
> 
> What do you think ?

It sounds fine to me. Identifying more clearly what is "the core API you can rely on" also intersects with bug #422449 "Document the Sirius compatibility and migration policy". See in particular https://bugs.eclipse.org/bugs/show_bug.cgi?id=422449#c4
Comment 6 Pierre-Charles David CLA 2015-02-03 07:55:47 EST
I just merged Cédric's patches, with the baseliner configuration files and the semantic bump for the exported pacakges. For the bundles and features themselves, I simply bumped everything to 3.0.0.
Comment 7 Pierre-Charles David CLA 2015-02-03 09:11:54 EST
Done.
Comment 8 Eclipse Genie CLA 2015-02-20 09:49:57 EST
New Gerrit change created: https://git.eclipse.org/r/42304

WARNING: this patchset contains 2741 new lines of code and may require a Contribution Questionnaire (CQ) if the author is not a committer on the project. Please see:https://wiki.eclipse.org/Project_Management_Infrastructure/Creating_A_Contribution_Questionnaire
Comment 9 Eclipse Genie CLA 2015-02-23 08:48:18 EST
New Gerrit change created: https://git.eclipse.org/r/42411

WARNING: this patchset contains 7684 new lines of code and may require a Contribution Questionnaire (CQ) if the author is not a committer on the project. Please see:https://wiki.eclipse.org/Project_Management_Infrastructure/Creating_A_Contribution_Questionnaire
Comment 11 Belqassim Djafer CLA 2015-04-10 05:51:40 EDT
Verified as technical issue
Comment 12 Pierre-Charles David CLA 2015-06-24 11:13:31 EDT
Available in Sirius 3.0.0. See https://wiki.eclipse.org/Sirius/3.0.0.