Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [tools-pmc] Approval of review documentation for GEF 3.10.1 (Mars SR1) release

Thanks David,

I appreciate your detailed answer and have added some detailed comments below.

Am 15.08.2015 um 15:25 schrieb David M Williams <david_williams@xxxxxxxxxx>:

+1

Thanks Alexander. I think you are "leading the way" in exposing issues with "frequent releases", API evolution, and the problems with "provisional APIs".

Well, I fear somebody has to :-).


I'll mark as "approved", but sounds like your 3.10.1 release is now "just service". As such, it does not really need a formal review process or approval.

Not sure if your Plan B is meant to include a formal release of "GEF4 0.2.0" as part of the "3.10.1" release? (And, just not put GEF4 0.2.0 in Sim. Release repo?)

The plan is indeed to include a formal release of GEF4 0.2.0 that is promoted to our project releases site only. As such, it is more than „just service“ and the formal review process seems to be required.


Now, for the next level of complication ... Things like features and products (and update sites?)  are supposed to have a version increment that follows the largest _increment_ of what it contains -- not just the "largest version"
of what it contains.  I am not sure you do have just one feature that represents "all of GEF" ... but, if you did, seems like it should be 3.11.0 (i.e. incremented in minor field) if it "contains" GEF4 0.2.0.  

I'd suggest if you don't have such a thing, you may want to start having one ... even if was "mere packaging" for an update site and/or the update site's version. That might help the community  (and us :) to keep things straight?

An umbrella feature for GEF and GEF4 IMHO does not make sense from an organizational as well as technical point of view. Both streams are developed completely independent of each other, each with its own git repository and each with its own update-site (there are also no dependencies between the code bases). The only thing they share is the release date. There already is an umbrella feature for Draw2d, GEF (MVC), and Zest (namely GEF-ALL, which is accordingly provided in version 3.10.1), but I already find that misleading, as it contains Zest 1.x and the Zest version is never directly visible. GEF4 actually does not provide an umbrella feature because of this, it was designed to consist of nine individual components that are only loosely coupled.

Because of that I would rather not tend to name the overall release GEF 3.11.0 (Mars.1) now, because that would IMHO be even more disturbing to our community. The release would not contain a single 3.11.0 feature, as the highest included feature would be GEF-ALL 3.10.1. And it would not get better after Mars.1 either, if we decide not to release GEF4 1.0.0 with Neon (but only 0.3.0), because the GEF 3.12.0 (Neon) would then contain Draw2d/GEF (MVC) 3.11.0, Zest 1.7.0, and GEF4 0.3.0, so no 3.12.0 feature would be included either). As we want to ultimately replace GEF 3.x with GEF4, I would rather tend to name the release logically after the respective „leading“ feature, i.e. use the GEF-ALL 3.x version until we release GEF4 1.0.0 as part of a GEF 4.0.0 overall release, and from then on use GEF4 as „leading“ (because GEF 3.x is in maintenance mode only, so there will be no further major version increment resulting from it). I would actually like to plan a 4.0.0 release already for Neon, but we will have to discuss that internally first, a decision about it is not made yet.


I think another complication you are exposing here is the idea that "a project has one release, for everything". I do think that's implied in some of the EDP documents, but does not make much sense, seeing what you are going through. I would seem quite natural for you to have a release (stream) of GEF 3.10.x and another for GEF4 0.x stream? If you think that's true, perhaps we should clarify or improve EDP? Though, I could also see other ways of handling it, if you had a 3.10.x stream and an 3.11.x stream. One of those "high level" streams would contain "unchanged" versions of the other "sub streams" ... and, presumably, they would "synch up" once per year? And, presumably then have a 3.11.x and 3.12.x stream to begin the next round of evolution? Sorry to be "jabbering" ... but, it is early on Saturday. :)

I agree that the „one project has one release, for everything“ idea is bringing trouble. Nevertheless, I see the problem somewhere else: it would IMHO be fine to have a single release date, where different features of a project are simultaneously released (the simrel approach is nothing else). The real problem for me is that a release seems to impose that a single umbrella feature has to be there. The need for a single release version already implies this. If I could label the release as „GEF 3.10.1 / Zest 1.6.1 / GEF4 0.2.0“ it would be quite clear for the community what to expect. And even if I simply called it "GEF Mars.1“ it would IMHO be more transparent, because one would have to look into the release plan to see what is included in detail and would not get mislead by a single release version. Why not allow symbolic release names for projects and instead enforce that the plan/review meta-data contains detailed information about the delivered features (I already tried to apply this to GEF, as our release names contain the logical simrel release name as a suffix, and as the deliverables are detailed out on the level of individual features/bundles/fragments within https://projects.eclipse.org/projects/tools.gef/releases/3.10.1-mars-sr1/plan)? 


Thanks for your care -- it is definitely needed and appreciated for a "core foundation" library such as GEF,

Let us know how we can help make things easier,

Thanks for your support. I hope I could make a few points clearer. Maybe my last argument about symbolic release names and more formal deliverables data within plan/review documentation is worth to be discussed further.

Kind Regards,
Alexander








From:        Alexander Nyßen <nyssen@xxxxxxxxx>
To:        David M Williams/Raleigh/IBM@IBMUS,
Cc:        Tools PMC mailing list <tools-pmc@xxxxxxxxxxx>
Date:        08/15/2015 06:02 AM
Subject:        Re: Approval of review documentation for GEF 3.10.1 (Mars SR1) release




Ok, we will go with „Plan B“ then (I adjusted the Mars.1 simrel aggregator to include GEF4 0.1.0 from the original GEF 3.10.0 (Mars) release). Actually all of the GEF4 API is yet provisional (and its properly marked as such, as all packages are exported with x-internal or x-friends). And while all breaking changes are also probably documented (consider the New and Noteworthy for a complete list), there is no need to risk somebody gets broken via the simrel update site. We will thus contribute GEF4 0.2.0 on our local releases site only (I will announce it on gef-dev after the review documentation has been approved, and have already updated our release plan to indicate it in the deliverables section).

PMC, please approve our 3.10.1 release review documentation based on that premises.

Kind Regards
Alexander


Am 14.08.2015 um 22:58 schrieb David M Williams <david_williams@xxxxxxxxxx>:

(Sorry, guess I should have "replied all"?)

----- Forwarded by David M Williams/Raleigh/IBM on 08/14/2015 04:57 PM -----


From:        
David M Williams/Raleigh/IBM
To:        
Alexander Nyßen <nyssen@xxxxxxxxx>,
Date:        
08/14/2015 04:32 PM
Subject:        
Re: Approval of review documentation for GEF 3.10.1 (Mars SR1) release



> If this concern is shared
...

Yes, I do share that concern. But, I think it also depends on your adopters, and the nature of your provisional APIs.  If you know (or, highly suspect) that some adopters, or other projects in the release train used those provisional APIs, then I think your "project site only" proposal is the best option (and, even then, you'd still have to be pretty clear about it; essentially publishing two things to your own repositories, and clearly documenting which went the Mars update release) -- and, actually, I'd even recommend simply publishing the new APIs as a Neon milestone, unless you know of someone who needs to use in a product or for the releases of a project. After all ... you've not had much time to get feedback on them, have you?


But, if your provisional APIs were new with Mars release, labeled as provisional or experimental and subject to change during update releases, then perhaps anyone who used them they would not mind adjusting? Plus, are you talking about 5 or 10 methods or classes? Or, a whole framework? Part of what you are wrestling with is not just related to provisional APIs, but also "non APIs". (I know some who say there is no such thing as a provisional API ... its either API, or its not, and I know plenty of us have used non-API from other projects.)  I know in the past, the platform has tried not to change behavior or signatures of even "internal, do-not-use methods", just to avoid the possibility that someone might be using them "illegally" and the desire not to break anyone. (In most cases that could be done ... to leave "old stuff" around, even though an API method was added for the long term, but, could not always be done, and I do not know if that is feasible for your code).


I'd say to go with your "Plan B" .... unless you can quickly get feed back from gef-dev list, and cross-project list that confirms no one is using them, or, do not mind changing their code to use the APIs.  And, again, probably wouldn't hurt to go through a few milestones with them?


Thanks, keep us posted.






From:        
Alexander Nyßen <nyssen@xxxxxxxxx>
To:        
Tools PMC mailing list <tools-pmc@xxxxxxxxxxx>,
Cc:        
David M Williams/Raleigh/IBM@IBMUS
Date:        
08/14/2015 03:52 PM
Subject:        
Approval of review documentation for GEF 3.10.1 (Mars SR1) release




Dear PMC,

please approve the release review documentation for the GEF 3.10.1 (MARS SR1) release, which is planned to coincide with Mars.1. The review documentation can be found at
http://projects.eclipse.org/projects/tools.gef/releases/3.10.1-mars-sr1/review, the approved IP log is attached.

I have to point out two things:

1) While the release has been named 3.10.1 (corresponding to the highest included feature version) to indicate that the production components Draw2d 3.10.1, GEF (MVC) 3.10.1, and Zest 1.6.1 have all been included in service revisions only, the release will include the GEF4 components in version 0.2.0 (compared to the 0.1.0 Mars version) and thus is designated as a minor release.

2) Even if the included 0.2.0 version of the GEF4 components implies compatibility towards the 0.1.0 Mars release version, as indicated in the review information and the new and noteworthy documentation (
https://wiki.eclipse.org/GEF/New_and_Noteworthy/3.10.1) some GEF4 components include incompatible changes in their provisional API. As all GEF4 0.1.0 components specified their dependencies to others as [0.1.0, 0.2.0), including the 0.2.0 version in the Mars.1 simultaneous release update site would be no problem from our own project scope (nothing would break there). However, if clients have specified less strict version constraints or no version constraints at all, they might get broken if updating against the Mars.1 simultaneous release update site if we include GEF4 0.2.0 there. If this concern is shared (David, please comment), I would opt to publish GEF4 0.2.0 only on our own project releases update site and leave the GEF 0.1.0 contribution to be part of the Mars.1 simultaneous release instead (while I would of course include the 3.10.1/1.6.1 versions of Draw2d, GEF (MVC), and Zest there).

Kind Regards,
Alexander

[attachment "tools.gef-iplog.html" deleted by David M Williams/Raleigh/IBM]

--
Dr. Alexander Nyßen
Dipl.-Inform.
Principal Engineer

Telefon: +49 (0) 231 / 98 60-202
Telefax: +49 (0) 231 / 98 60-211
Mobil: +49 (0) 151 /  17396743


http://www.itemis.de
alexander.nyssen@xxxxxxxxx

itemis AG
Am Brambusch 15-24
44536 Lünen

Rechtlicher Hinweis:

Amtsgericht Dortmund, HRB 20621

Vorstand: Jens Wagener (Vors.), Wolfgang Neuhaus, Dr. Georg Pietrek, Jens Trompeter, Sebastian Neus

Aufsichtsrat: Prof. Dr. Burkhard Igel (Vors.), Michael Neuhaus, Jennifer Fiorentino


[attachment "signature.asc" deleted by David M Williams/Raleigh/IBM]



--
Dr. Alexander Nyßen
Dipl.-Inform.
Principal Engineer

Telefon: +49 (0) 231 / 98 60-202
Telefax: +49 (0) 231 / 98 60-211
Mobil: +49 (0) 151 /  17396743

http://www.itemis.de
alexander.nyssen@xxxxxxxxx

itemis AG
Am Brambusch 15-24
44536 Lünen

Rechtlicher Hinweis:

Amtsgericht Dortmund, HRB 20621

Vorstand: Jens Wagener (Vors.), Wolfgang Neuhaus, Dr. Georg Pietrek, Jens Trompeter, Sebastian Neus

Aufsichtsrat: Prof. Dr. Burkhard Igel (Vors.), Michael Neuhaus, Jennifer Fiorentino


[attachment "signature.asc" deleted by David M Williams/Raleigh/IBM]


--
Dr. Alexander Nyßen
Dipl.-Inform.
Principal Engineer

Telefon: +49 (0) 231 / 98 60-202
Telefax: +49 (0) 231 / 98 60-211
Mobil: +49 (0) 151 /  17396743

http://www.itemis.de 
alexander.nyssen@xxxxxxxxx 

itemis AG
Am Brambusch 15-24
44536 Lünen

Rechtlicher Hinweis:

Amtsgericht Dortmund, HRB 20621

Vorstand: Jens Wagener (Vors.), Wolfgang Neuhaus, Dr. Georg Pietrek, Jens Trompeter, Sebastian Neus

Aufsichtsrat: Prof. Dr. Burkhard Igel (Vors.), Michael Neuhaus, Jennifer Fiorentino



Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail


Back to the top