Jump to: navigation, search

Photon/Simultaneous Release Plan

This document is primarily for developers of the June 2018 Photon Simultaneous Release.


Requirements For Participation

Projects that are part of Photon agree to abide by the requirements of the Eclipse yearly Simultaneous Release.

Milestones and Release Candidates

The Release is always on the fourth Wednesday of June. The milestone dates are at roughly 6-week intervals. Any end-of-cycle release candidate (RC) dates are typically one week apart. Each project has their deliveries due at times offset from the end-date so that the project dependencies can come together in a reasonable order. These delivery times are based on the dependencies between projects. They are labeled +0, +1, +2, and +3, with +0 coming first (the Platform) and "+4" coming last (only EPP packages). Projects themselves decide if they are +0, +1, +2, or +3. The actual time-offset represented by these intervals change over the course of the year of development, being several days at first, but then only one day near the end of the release. The following calendar is the official schedule of the overall Photon Release. Projects are free to have their own schedules as long as they meet the Photon deliverables.

Note that projects choose their own +n category based on major or primary dependencies. There are many cases where a project might have to deliver pieces of their code a little earlier, if some project depends on it, or a little later if they have a stray dependency. These sorts of deviations are left to the projects to work out, pair-wise, among themselves. Feel free to bring up complicated cases for discussion.

Given all these constraints, the exact dates for any particular year are pretty predictable. The following table summarizes the most significant Photon dates but see the subsequent calendar for the important details. That is, your stuff is due earlier than these table dates! Projects need to deliver a week or two before these "end dates", depending on their chosen, committed offset category (+0, +1, etc). Also, to emphasize, the dates represent the last possible date to contribute ... projects are encourage to provide "warm-up" builds a week or two earlier, when possible, as this often helps expose issues that other teams need discussion or that other teams need to react to, before their final delivery.

After RC4 is quiet week. There will be no further builds. That time is reserved for final, in depth testing, and preparation for release. Emergency rebuilds might be considered, by following the usual Planning Council Exception Process, but only for serious, blocking regressions that have a "cross-project" impact.

Note: A rebuild during the quiet, final week before a release implies an automatic slip of one week for the official, simultaneous release date. This applies to all projects that are part of the simultaneous release, since, to name one reason, there is always a chance we'd have to re-spin again, and slip the date a second time. All projects consuming a "re-built" bundle, might also have to rebuild or re-package their deliverables.

Schedule

Release Date Span Notes
Photon M1 Friday, August 11, 2017 08/04 to 08/11 6 weeks from Oxygen GA
Photon M2 Friday, September 22, 2017 09/15 to 09/22 6 weeks from M1
Oxygen.1 Wednesday, September 27, 2017
Oxygen.1a Wednesday, October 11, 2017
Photon M3 Friday, November 03, 2017 10/27 to 11/03 6 weeks from M2
Photon M4 Friday, December 15, 2017 12/08 to 12/15 6 weeks from M3
Oxygen.2 Wednesday, December 20, 2017
Photon M5 Friday, February 02, 2018 01/26 to 02/02 7 weeks from M4, extra weeks for end of year holidays
Photon M6 Friday, March 16, 2018 03/09 to 03/16 6 weeks from M5
Oxygen.3 Wednesday, March 21, 2018
Devoxx US 2018 ??
Photon M7 Friday, May 18, 2018 05/11 to 05/18 8 weeks from M5
Photon RC1 Friday, May 25, 2018 05/18 to 05/25 1 week from M7
Photon RC2 Friday, June 01, 2018 05/25 to 06/01 1 week from RC1
Photon RC3 Friday, June 08, 2018 06/01 to 06/08 1 week from RC2
Photon RC4 Friday, June 15, 2018 06/08 to 06/15 1 week from RC3
Quiet week 06/18 to 06/26 No builds during "quiet week". It is assumed all code is done by the end of RC4.
Photon GA Wednesday, June 27, 2018 2 weeks from RC4




The calendar is available in the following formats: ICal,HTML

Communication Channels

Cross-Project Milestone & RC Status Reporting

Only negative status needs to be reported. It is essential for many aspect of the simultaneous release that communication be prompt and clear, on many topics. One of the most important ones, is if someone is not meeting some date or delivery. Put another way, we assume everyone is on target and has delivered their stuff unless a note is sent to cross-project list that you are delayed. Its better to be up front about it, so everyone knows what to expect, rather than to hope things turn out OK at the very last minute, since if you "miss" without saying anything you are more likely to impact other people, and miss your chance to be part of the release.

Mailing Lists and Newsgroups

Eclipse projects have three communication channels: a mailing list for developers, a newsgroup for users, and Bugzilla. While Photon is not a "project" per se, it will use the same structure:

Developer mailing list
  • cross-projects-issues-dev - mailing list for developers and releng (see archives). This is the list to use to discuss build issues, announce changes in plans, slippage in deliverables, etc.
Bugzilla

If there is any doubt about where a bug belongs, it can always start in the "Cross-Project" component. (Under Eclipse Foundation > Community). If it turns out to be a single project's responsibility, it can be moved to that project. If it is a true cross-project bug, where several projects need to act, then it can stay in the cross-project component.

The Planning Council Mailing List

Because there has been confusion in the past, we'll be explicit here that the planning council mailing list (eclipse.org-planning-council) is for Planning Council business, not the Photon Release activities per se. While they sometimes overlap, there is no need to cross post. While anyone can request a subscription to the planning council list (for openness and transparency) the expectation is that only Planning Council members post to it.

Conference Calls

The Planning Council has regularly scheduled calls for Planning Council business. See conference calls.

But there are no planned calls for the release, per se, or for larger audiences, but they can be arranged if required or desired (for example, if needed for build coordination).

Builds and P2 repository

Builds (Aggregation)

This section, about assembling the repositories, is subject to change, as improvements in the process are made.

A number of utilities have been written to automate the assembly of the different simultaneous releases. These are available in their own SCM repository. If interested in this history, you can find more information about the history and organization by looking at some of the old, previous information on the Contributing to Helios Build, Galileo Build, Ganymede Build and Europa Build pages).

With Photon we are using the CBI Aggregator (effective 11/2016 we switched from "b3" aggregator to "CBI aggregator").

The Contributing to Simultaneous Build page is where you go to learn how to add your project to the Photon build (aggregation).

p2 Repository

To obtain the latest published bits from Photon, use this URL:

http://download.eclipse.org/releases/photon (not yet available!)

It contains the latest milestone, release candidate, eventually the release itself, and then eventually the update releases.

To obtain the latest working version, as we build up to a milestone or release, you can test the site at

http://download.eclipse.org/staging/photon (not yet available!)

Update Releases

There will be 3 update releases for Photon, similar to Oxygen's Update Releases. These will be roughly equally spaced so there is one per quarter. These update releases will be done in parallel with every other milestone of the Photon+1 release; so milestones 2, 4 and 6.

Interlock of Milestones and Update releases

The following table illustrates the pattern the milestones and update releases will release at the same time.

Stream/Week 0 1 2 3 4 5 6 release day 0 1 2 3 4 5 6 release day
master dev dev dev dev dev stabilize/+0 +1 to release Odd Milestone (1,3,5,7) dev dev dev dev dev stabilize/+0 +1 to release Even Milestone (2,4,6)
updates dev dev dev dev dev dev dev dev dev dev RC1 RC2 RC3 RC4 Quiet Week Update.n (1,2,3)

The weeks are numbered in the table above 0 to 6 because ideally there are 6 weeks per milestone, but sometimes there are 7, and occasionally 8 and I think once 5!. It was thought best to have the table end with "6" to represent the ideal.


Staging repositories

We will have named staging repositories for each stream as we work on Update Releases:

http://download.eclipse.org/staging/photon

Schedules

More specific dates will be provided later but the milestone dates for Photon+1 will follow the same pattern as previous releases, which means Photon's update releases will occur approximately during the following months:

  • Photon.1: September 2018
  • Photon.2: December 2018
  • Photon.3: March 2019

Other considerations and rules

Individual projects may have their own update releases at any time if they need to, but all participants in the Simultaneous Release, are expected to participate fully in the Simultaneous Updates. What new features are added or what bugs are fixed is up to each project to decide, but each project must, at least, continue to "fit in"; build, install and avoid conflicts. To be explicit, new projects may join Update Releases, and participating projects may add new features or APIs (i.e. contribute Minor Releases) if they would like to. It is expected that many projects will primarily provide service-only updates, but it is up to each project to decide. The main rule is that no one can add breaking changes. This means no API breakages, and features can not be removed (for technical reasons) or refactored in a way that breaks others that "include" the feature;. If the contents of feature's change, due to refactoring, for example, it is best to do in a way that does not break existing adapters or projects that build against, or "include" that feature. Note: even breaking changes can be made, but those are the exception, rather than the rule, and must go through the Planning Council's formal Exception Process. Another important rule is that new projects and even new features must be essentially complete, including release review records, by RC1. Anything later than that must also go through the Planning Council's formal Exception Process.