Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Planning Council/March 24 2013"

(Members and Attendees)
Line 116: Line 116:
 
<small>Note: feel free to correct any errors/omissions in above attendance record.</small><br/><small>Y = Yes, attended</small><br/><small>N = No, did not</small><br/><small>R = regrets sent ahead of time</small><br/><small>D = delegated</small><br/><small>X = not expected</small>
 
<small>Note: feel free to correct any errors/omissions in above attendance record.</small><br/><small>Y = Yes, attended</small><br/><small>N = No, did not</small><br/><small>R = regrets sent ahead of time</small><br/><small>D = delegated</small><br/><small>X = not expected</small>
  
== Juno SR2 ==
+
== Policy on new releases joining SR ==
  
* Any post-release feedback?
+
* We agreed on David's proposed policy from previous call: "The new release must be in RC1 builds for the SR, must have released one month prior to that RC1, and must be willing/able to test and provide a quick maintenance release if last minute problems found."
  
* Our current policy statement on "new releases" joining a SR maintenance release is in our [[SimRel/Simultaneous_Release_FAQ#Policy_FAQs|Policy FAQs]]. Eventually that's the part we'll want to "tighten up". Must balance flexibility (agility) with stability. Perhaps something similar to "The new release must be in RC1 builds for the SR, must have released one month prior to that RC1, and must be willing/able to test and provide a quick maintenance release if last minute problems found."
 
  
: ''Notes from previous meeting:''
+
== Build reproducibility ==
  
:: ''Seemed reasonable to everyone that, if we keep our current policy, "minor updates must be in fully in by RC1" or else too late to join.''
+
We had a lengthy discussion about the issue of reproducibility of the aggregation build. Ideally aggregator should be idempotent: multiple runs of the aggregator on the same aggregation input files should produce the same result. In practice, this does not work. One problem is that people contribute a composite repository URL, and then just update the children any time they want without updating their contribution file. There are a number of drawbacks to this:
:: ''Should we even allow minor updates at all? What do adopters expect/want from SR releases? Pure maintenance, or new features too?''
+
* It is very difficult to do a careful respin of only one component to address a critical bug, such as the case with EGit in Juno SR2. You can't be certain that nothing else will creep in.
:: ''We don't say so, but "no major changes allowed" seems reasonable. That is, no API breaking changes. Sometime, "version ranges", even minor, in theory could be a "breaking change" (though, not exactly API).''
+
* You can't diff two states of the aggregator and see exactly what projects have changed.
:: ''Should whether or not in EPP packages be part of one of the factors? Seems that's where most stability is important/expected, since those users don't have a "choice" to move up to a particular version, they get it automatically.''
+
* After the release is over it can never be reproduced again
:: ''As an aside, even Mylyn no longer does minor updates in SRs ... they've stabilized enough not to need it, and recognize they are a core piece of several EPP packages, so more important to be stable.''
+
* Projects end up accidentally contributing the wrong thing to the aggregator
  
== Kepler ==
+
There was general agreement that we should strive to make the aggregator idempotent. One step in this direction is not allowing composite repositories to be used as input. There is a perception that b3 files are brittle and projects are afraid of breaking things, it is very hard to know if you made your changes correctly. If there was a simple way to update the repository for each aggregation build there would be less incentive to "cheat" with composite repositories.
  
=== M6/M7 ===
+
A common convention on p2 repository addresses could help. Some parts of the manual updating could be automated if all projects had a normalized repository path like <projectName>/milestones/kepler/m5 for example.
  
* Issues?
+
== Release train rules ==
:  
+
 
 +
There is a general perception that there are "too many rules" for joining the release train. Some projects are declining participation because they see it as unnecessary process overhead. In reality the non-negotiable rules are few, and there is a long list of "should do" items that make the overall rules document look daunting. The suggestion was made to split this into two distinct documents such as "release train rules", and "release train guidelines". We should also strive to make the rules less wordy. Keep the rules very short, with links as appropriate to other documents for more details. Someone should be able to sit down and read through all the rules without being overwhelmed.
 +
 
 +
== Release train rhythm ==
 +
 
 +
We had a very general discussion about the current "one plus two" rhythm of the release train. The original intent is that there was one annual release with new features, and two service releases with only bug fixes. This evolved over time and now some projects just treat it as three release windows into which they can put whatever new release they want. The problem is that having new features only once a year isn't fast enough for some communities. It is fine for stable projects but not for new projects or projects working in areas with rapid innovation.
 +
 
 +
The idea was floated of having more than three release windows, and it would be up to individual projects whether they take advantage of that or just continue with three per year. For example moving to quarterly releases would not be a big shift. The problem is that the current pattern is very engrained and our consumer community makes expectations of release periods far in advance. If we consider changing this we would need to give a lot of advance notice.
 +
 
 +
Another idea is that we already have a mechanism for doing releases every six weeks: the milestones. We could promote the milestones as the path for getting cutting edge new functionality on a faster rhythm. We could include the aggregate milestone repository URL starting with M1 so users can upgrade from milestone to milestone very easily.
 +
 
 +
 
 +
Build reproducibility. Many projects contribute a composite repository and their aggregator contribution never changes.
 +
This means builds are not reproducible. If you respin later you might pick up new content. This makes it very difficult
 +
to do emergency respins, there is no way to diff the inputs and see what has changed.  b3 aggregation files are brittle,
 +
if there was an easier way to update your contribution would projects do it more frequently. Do we require that
 +
projects contribute only concrete repositories? Another solution is having consistent repository structure across
 +
all projects. For example eclipse.org/projectName/milestones/m1  projectName/releases/kepler...
  
== EclipseCon face-to-face Long Term Planning ==
 
  
 
*Agenda topics (mentioned in previous meeting, feel free to add)
 
*Agenda topics (mentioned in previous meeting, feel free to add)

Revision as of 22:11, 25 March 2013

Logistics

Meeting Title: Planning Council Meeting
Date & Time: Sunday, March 24, 2013, at 1400 Eastern
Face-to-Face. No Dial-in. Room: South End, on the Plaza Level (top floor) of the World Trade Center.
Note: MeetGreen will be at the venue setting up registration in case you need anything.

Members and Attendees

PMC (and Strategic) Reps
Chris Aniszczyk Technology (PMC) No
John Arthorne Eclipse (PMC) Yes
Steffen Pingel Mylyn (ALM) PMC No (not attending EclipseCon and Mik is not available on Sunday)
Brian Payton Datatools (PMC)
Doug Schaefer Tools (PMC) Yes
Adrian Mos SOA (PMC) No (flight schedule)
Ed Merks Modeling (PMC) No
Ian Bull Rt (PMC) Yes
David Williams WTP (PMC) (appointed Chair) No.
Gary Xue Birt (PMC)
Wayne Beaton Eclipse Foundation (appointed) Yes
Strategic Reps
Cedric Brun OBEO (Strategic Developer) No
Neil Hauge Oracle (Strategic Developer) Yes
Kaloyan Raev SAP AG (Strategic Developer) No (not attending EclipseCon)
Markus Knauer Innoopract (Strategic Developer) Yes
Achim Loerke (Markus Tiede) BREDEX (Strategic Developer) Yes
Shawn Pearce Google (Strategic Developer) Yes
(PMC rep) Actuate (Strategic Developer) X
(PMC rep) IBM (Strategic Developer) X
Inactive
[no name] CA Inc. (Strategic Consumer) X

Note: "Inactive" refers to Strategic Members or PMCs we have not heard from for a while, and have been unable to convince to participate. Those members can become active again at any time. Contact David Williams if questions.

Note: feel free to correct any errors/omissions in above attendance record.
Y = Yes, attended
N = No, did not
R = regrets sent ahead of time
D = delegated
X = not expected

Policy on new releases joining SR

  • We agreed on David's proposed policy from previous call: "The new release must be in RC1 builds for the SR, must have released one month prior to that RC1, and must be willing/able to test and provide a quick maintenance release if last minute problems found."


Build reproducibility

We had a lengthy discussion about the issue of reproducibility of the aggregation build. Ideally aggregator should be idempotent: multiple runs of the aggregator on the same aggregation input files should produce the same result. In practice, this does not work. One problem is that people contribute a composite repository URL, and then just update the children any time they want without updating their contribution file. There are a number of drawbacks to this:

  • It is very difficult to do a careful respin of only one component to address a critical bug, such as the case with EGit in Juno SR2. You can't be certain that nothing else will creep in.
  • You can't diff two states of the aggregator and see exactly what projects have changed.
  • After the release is over it can never be reproduced again
  • Projects end up accidentally contributing the wrong thing to the aggregator

There was general agreement that we should strive to make the aggregator idempotent. One step in this direction is not allowing composite repositories to be used as input. There is a perception that b3 files are brittle and projects are afraid of breaking things, it is very hard to know if you made your changes correctly. If there was a simple way to update the repository for each aggregation build there would be less incentive to "cheat" with composite repositories.

A common convention on p2 repository addresses could help. Some parts of the manual updating could be automated if all projects had a normalized repository path like <projectName>/milestones/kepler/m5 for example.

Release train rules

There is a general perception that there are "too many rules" for joining the release train. Some projects are declining participation because they see it as unnecessary process overhead. In reality the non-negotiable rules are few, and there is a long list of "should do" items that make the overall rules document look daunting. The suggestion was made to split this into two distinct documents such as "release train rules", and "release train guidelines". We should also strive to make the rules less wordy. Keep the rules very short, with links as appropriate to other documents for more details. Someone should be able to sit down and read through all the rules without being overwhelmed.

Release train rhythm

We had a very general discussion about the current "one plus two" rhythm of the release train. The original intent is that there was one annual release with new features, and two service releases with only bug fixes. This evolved over time and now some projects just treat it as three release windows into which they can put whatever new release they want. The problem is that having new features only once a year isn't fast enough for some communities. It is fine for stable projects but not for new projects or projects working in areas with rapid innovation.

The idea was floated of having more than three release windows, and it would be up to individual projects whether they take advantage of that or just continue with three per year. For example moving to quarterly releases would not be a big shift. The problem is that the current pattern is very engrained and our consumer community makes expectations of release periods far in advance. If we consider changing this we would need to give a lot of advance notice.

Another idea is that we already have a mechanism for doing releases every six weeks: the milestones. We could promote the milestones as the path for getting cutting edge new functionality on a faster rhythm. We could include the aggregate milestone repository URL starting with M1 so users can upgrade from milestone to milestone very easily.


Build reproducibility. Many projects contribute a composite repository and their aggregator contribution never changes. This means builds are not reproducible. If you respin later you might pick up new content. This makes it very difficult to do emergency respins, there is no way to diff the inputs and see what has changed. b3 aggregation files are brittle, if there was an easier way to update your contribution would projects do it more frequently. Do we require that projects contribute only concrete repositories? Another solution is having consistent repository structure across all projects. For example eclipse.org/projectName/milestones/m1 projectName/releases/kepler...


  • Agenda topics (mentioned in previous meeting, feel free to add)
Decide SR Policy.
Should Rt have their own "repo"? Their own Sim Rel Rules? How can the value to them be increased?
What relationship is there (should there be) between OSGi/p2 common repo and Maven/Maven Repos?


Next Meeting

  • April 3, 2013, "First Wednesday" Meeting

Reference

Kepler Wiki page
Juno Wiki page
Planning Council/Indigo retrospective
Planning Council Members
Simultaneous Release Roles and Simultaneous Release Roles/EMO

Back to the top