[
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