Eclipse Release Engineering build schedule
Last change of static content: 2016-12-05.
I-builds use branches specified in repositories.txt file, from
master branch of aggregator (eclipse.platform.releng.aggregator). The projects built are submodules of aggregator so normally
there is one line in repositories.txt file for each submodule of the aggregator.
(daily 20:00 Eastern Time, EST/EDT, -0400/-0500)
M-builds use a branch of the aggregator (and therefore a branch of the repositories.txt file)
and, like I-builds, pull whatever branch is specified in the repositories.txt file.
(usually Wednesdays, 04:00 a.m., Eastern Time)
ICAL Calendar URL
- Mondays' integration builds - rebuild if compile errors, missing plug-ins, the build is unusable, or if the drops do not get posted.
- Other integration builds - rebuild on request for serious or urgent issues.
- Maintenance builds - rebuild until success.
Build Retention Policy
In an effort to reduce our disk utilization on the eclipse.org infrastructure and reduce the amount of data sent to the mirrors, we have adopted the following build retention policy.
- Release builds are kept indefinitely and moved to the archive.eclipse.org server as appropriate.
- The last four integration builds are retained.
- Mondays' integration builds are retained until the next milestone is available.
- Maintenance builds are kept until a release of the maintenance stream is available.
- Stable builds are retained until a release is available.
For the 4.<n> Mondays' integration builds:
- Build time is 20:00 (Eastern time).
- In the event of an integration build failure due to compile errors, missing plug-ins, or if the drops are not posted,
there will be a same day rebuild upon
submission of a fix.
- In the event of multiple integration build failures due to problems in the submission (i.e. not infrastructure problems),
all other work will stop until guaranteed-to-be-successful build contributions are prepared for a rebuild.
For the 4.<n-1>.x maintenance builds:
- Build time is 4:00 am Wednesday (Eastern time).
- Due to the nature of the fixes in this stream, these builds should not fail. However, if a
rebuild is requested by one of the teams, it will take place as soon as the build contribution is available.
In the above descriptions, a build is considered to be a failure if there are "Red X"s that the developers
agree represent valid reasons for them to not begin using the integration build.
An example of a Red X which would *not* require a re-build would be a test which
failed because the test was bogus.
IMPORTANT: Committers are expected to run tests before pushing changes to master or a maintenance branch.
In addition, teams should track test failures to detect
integration problems early on. What we want to achieve is for the Monday
4.<n> I-build to typically be successful, with an infrequent requirement for a rebuild.
Failing builds until Wednesday should be treated as a catastrophic
failure. In other words, more than two or three of these per year is an unacceptable
Here's the usual schedule for milestone weeks:
- Monday: Last day of development (and even then, no "big changes"). After Monday 20:00 ET, no feature work or unrelated fixes are allowed -- only regression fixes.
- Tuesday: All-day test pass. Nobody should develop or fix anything. Literally spend the entire day testing.
- Wednesday: Fix day with a focus on fixing regressions found during the test day (Tuesday). No unrelated fixes. Review and thoroughly test all commits.
- The last Wednesday build is the release candidate every team signs off on Thursday.
- The "New and Noteworthy" entries are due on Wednesday evening:
Live website: https://www.eclipse.org/eclipse/news/4.7/M*/ (* insert actual milestone version)
- Thursday: Sign-off after re-testing, or at least confirming no changes have been made to your component's code since the last time the component was tested well.
- Friday: Build is officially declared and made available.
- The master branch stays closed until the milestone is officially released. (That is, it is not enough that your component has signed off.)