Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[ecf-dev] ECF versioning for next release

Hi Folks,

Markus K and I were on the conference call this am (Tues, June 30 1500 UTC), and we discussed ECF versioning for the next release cycle(s).

We came to some basic conclusions

1) It's possible (and our case desirable) to logically separate *project-level* versioning strategy, from *bundle-level*/API version numbering. That is, if we need to make backward compatibility-breaking changes in a given bundle/API (e.g. 1.0.0.qualifier to 2.0.0.qualifier), then this does *not* require that the project-level version must also be incremented (i.e. 3.0.0.qualifier to 4.0.0.qualifier). In effect, this gives us more flexibility for both handling project-level naming and dealing with different levels of maturity for our own APIs (i.e. remoteservices, discovery, shared object, core, call, datashare, presence, presence bot, various providers, rfc119, etc).

2) Given 1, for our *project-level* versioning, we are free to choose from a number of possibilities...including not having a version number at all, but rather a name for the version...e.g.
   a) ECF 3.1
   b) ECF 4.0
   c) ECF Helios
   d) ECF 6.2010
   e) others...

For background, see some of the discussion around this thread on the rt pmc mailing list: http://dev.eclipse.org/mhonarc/lists/rt-pmc/msg00716.html. We don't have to immediately decide upon our project-level naming for next release, but I've created this bug to use for discussion, idea-tracking over the next few months: https://bugs.eclipse.org/bugs/show_bug.cgi?id=282068

3) For *all* our non-provisional APIs, the default assumption should be that only minor version changes will be needed/planned...and only if there is appropriate justification will we consider making major API changes (i.e. actually invoking 1).

4) As per 3, if we *do* have to consider introducing a major API change (at bundle/API level), then this needs to be vetted by the community prior to introducing the release...e.g.
   a) Bringing up on mailing list and newsgroup
b) Making plans and justification known to all community members in other ways (e.g. blog postings?, home page news, wiki, etc)
   c) Discussing with other committers via conference call
   d) Providing written explanation for all community members to review
e) Possibly having a set of meetings/presentations among committers and community members (on case-by-case basis)
   f) Providing migration support (e.g. docs) when necessary/appropriate.
   g) Other things...
Basically, the idea here is that we need to communicate clearly and repeatedly with the community and all known consumers *prior* to introducing breaking API changes. We have flexibility as to how we do this, and what resources are involved, but we definitely need to do as much community outreach as we can manage *before* introducing any API-breaking changes.

5) For some of ECF's APIs (specifically the ECF core and filetransfer APIs), if any changes are desired they have to be cleared with the Eclipse p2 team and Eclipse PMC, since p2 depends upon these APIs. Just to be clear: at this point there are no plans to make changes to these APIs in the coming release cycle, but if that changes/becomes necessary, all such changes will have to be approved by p2 team/Eclipse PMC as well as by me as project lead and the rt pmc.

6) Development on our next release cycle will occur on HEAD. When we decide upon and then do releases over the next cycle, we will create branches for each release before the actual release (as we have been doing), so that we can have a branch for service releases. Committers, please keep in mind that bug fixes over the next few months need to be applied to both the Release_3_0 branch and HEAD.

So I think this email is long enough as it is...if there are questions at this point for any of the above please ask them, and we'll have more discussion.

Scott




Back to the top