|
|
(45 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
− | = Purpose =
| + | #REDIRECT [[Category:Eclipse_Platform_Releng]] |
− | | + | |
− | This document is the plan, and working notes for moving to CBI-based builds. There is still lots to do, and many changes to make, so want to be sure as much is communicated as best as possible.
| + | |
− | | + | |
− | We want to be aggressive in adopting CBI based builds for Kepler, but at the same time, responsible. That is, to make sure it is correct -- or, correct enough -- that adopters (or, ourselves!) are not broken by any changes. And, that means "correct enough" from one I-build to the next, not "just by the time we release". This is a new area for most of us so will take a lot of focus.
| + | |
− | | + | |
− | The following are the major criteria to judge if/when we are ready to adopt as our primary build and/or release. Any others?
| + | |
− | | + | |
− | =Main Criteria for moving to CBI based build for Kepler=
| + | |
− | | + | |
− | | + | |
− | # Have same output deliverables as current build: zips, repository, etc. (For Equinox and Eclipse) | + | |
− | # (Be able to reproduce exact same build, given a tag (or tags) to start the build with.)
| + | |
− | # Same warnings (and compile errors, if any) as PDE based build.
| + | |
− | # Be able to run our JUnit tests, with same results, as PDE based build.
| + | |
− | # Produces the same Java Doc and Help documentation.
| + | |
− | # Run a binary comparator against the bundles to ensure that they are the same binary content as the regular bundles.
| + | |
− | ##[Not sure how to do this since "qualifier algorithm" is different].
| + | |
− | # Qualifiers not change (except for branding bundles) if the content has not changed.
| + | |
− | # All bundles signed.
| + | |
− | # Final I-build type repository have same content and metadata as PDE based build (nothing missing, nothing extra).
| + | |
− | # Be easy to fit in to current workflow of automated builds and tests of "nightlies", I-builds, milestones (i.e. committers have to know what to do to "release" something for a build, how to "freeze" changes at a certain point).
| + | |
− | # Don't create maintenance burden by duplicating information ({{bug|387802}})
| + | |
− | | + | |
− | =Bug queries and reference documents=
| + | |
− | | + | |
− | * Bug query for [https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&classification=Eclipse&classification=RT&list_id=4434591&product=Equinox&product=JDT&product=PDE&product=Platform&query_format=advanced&short_desc=cbi&short_desc_type=allwordssubstr&order=bug_severity%2Cchangeddate%20DESC%2Cassigned_to%20DESC%2Ctarget_milestone%2Cpriority%2Cpriority%2Cstatus_whiteboard%2Ctarget_milestone%2Ctarget_milestone%2Ccomponent%2Cvotes%20DESC%2Cbug_id&query_based_on=Platform open CBI bugs in Eclipse (Platform, JDT, PDE) and Equinox].
| + | |
− | | + | |
− | * Bug query for [https://bugs.eclipse.org/bugs/buglist.cgi?list_id=4412392&classification=Eclipse%20Foundation&query_format=advanced&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&product=CBI open Eclipse Foundation CBI bugs] (all in Eclipse Foundation, CBI)
| + | |
− | | + | |
− | * See [[Platform-releng/Platform_Build]] for steps to do local builds and tests.
| + | |
− | | + | |
− | * See [[Platform-releng/Automated_Platform_Build]] for specifics of automated builds.
| + | |
− | | + | |
− | * URL for CBI based builds (temporary, just until we "switch"):
| + | |
− | | + | |
− | http://download.eclipse.org/eclipse/downloads/cbibasedindex.html
| + | |
− | | + | |
− | =Significant builds and repositories=
| + | |
− | | + | |
− | == The last PDE based build ==
| + | |
− | | + | |
− | * '''I20130219-1600''' is the final "PDE Based build". It is recommended for those "building on" Eclipse to move up to that level now, so once they try a "CBI based build", they will have a good comparison if "all is ok" or if something surprising changed, or broke (if so, open a bug, if one doesn't exist; if one exists, add comments so we can better understand impact and priorities).
| + | |
− | | + | |
− | http://download.eclipse.org/eclipse/downloads/drops4/I20130219-1600/
| + | |
− | | + | |
− | * '''Repository'''. Since we are still evaluating version numbering (to make sure they always increase compared to previous I-builds) the repo site at <code>http://download.eclipse.org/eclipse/updates/4.3-I-builds/</code> may not always give the result from the most recent build (for we hope only a short time). Therefore, the repo that corresponds to that "last PDE build", in non-composite form, is documented here:
| + | |
− | | + | |
− | http://download.eclipse.org/eclipse/updates/4.3-I-builds/I20130219-1600/
| + | |
− | | + | |
− | | + | |
− | =Rollout and deadlines=
| + | |
− | | + | |
− | Weeks below are numbered in "milestone weeks", beginning with "towards M6" ... there are only 6 weeks for M6.
| + | |
− | | + | |
− | == Towards M6 ==
| + | |
− | | + | |
− | === Week 2: (2/11 - 15) ===
| + | |
− | | + | |
− | :Begin to produce daily automated CBI based builds and run unit tests in parallel with PDE-based builds.
| + | |
− | ::I'll schedule these to start at 8:11 PM, same time as PDE-based Nightlies and same time as weekly I-builds.
| + | |
− | ::Initially, all CBI based builds (even "nightlies") will be "I-builds" to better assess versioning, and more work is need to implement "nightly vs. integration" builds.
| + | |
− | :::I builds will build against master, controlled by [http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/tree/streams/repositories.txt repositories.txt]
| + | |
− | ::(Unit tests on Linux only, until those work as expected, to save Windows and Mac machine resources).
| + | |
− | | + | |
− | :During this week "announce" the CBI based builds available, get community/adopter help in testing adequacy.
| + | |
− | | + | |
− | :Committers should begin to use SDK's produced, and evaluate for correctness. In particular:
| + | |
− | ::Check that version numbers change (or don't change) as expected. (I recommend you make some change, even trivial, to make sure it "gets in to" a build, if not otherwise planning changes this week).
| + | |
− | ::Those with "binary bundles" check that they are correct ones.
| + | |
− | ::Help evaluate failing JUnit suites. Some may be "releng" issues, but some may be project pom issues?
| + | |
− |
| + | |
− | :Initial Limitations: (meaning of priorities: high, need before making primary; medium, need before release; low, probably need at some point)
| + | |
− | ::there will be no "autotagging" of aggregator or repositories, until we are more confident. (medium priority)
| + | |
− | ::there will be no "equinox drops". (low/medium priority)
| + | |
− | ::there will be no cbibased "I-build repo" (high priority)
| + | |
− | ::"zipped repos" are known not to be quite right yet (low prioriy)
| + | |
− | ::no ecj.jar produced (in hands of JDT Team? To tweak their "custom script"?) (low priority)
| + | |
− | ::no "auto update" of pom's, based on manifest ... such as committers have to update version number in both, make "build.properties" changes in both. (low priority)
| + | |
− | | + | |
− | === Week 3: (2/18 - 22) ===
| + | |
− | | + | |
− | : Cut over to CBI based builds as primary (unless someone raising a true, blocking objection).
| + | |
− | | + | |
− | : Some projects may need to "touch" their projects to get qualifiers "in order" (there is a difference in heuristics used for qualifiers so some in CBI build might be "lower than" those produced by PDE).
| + | |
− | | + | |
− | :Begin to tag aggregator upon successful build, (with "commits" of latest submodules added to aggregator).
| + | |
− | ::(This allows "local build" to duplicate our build following directions given at [[Platform-releng/Platform_Build| Platform Build wiki]])
| + | |
− | ::TODO: someone (Thanh?) should confirm it gives same "target" results?)
| + | |
− | | + | |
− | :Begin to produce "4.3-I-build" repositories at .../eclipse/updates.
| + | |
− | | + | |
− | === Week 4: (2/25 - 3/1) ===
| + | |
− | | + | |
− | :Possibly this week start to have true "CBI nightlies" vs. "Integration".
| + | |
− | | + | |
− | :Post SR2: could we (or should we?) produce 4.2.2+ maintenance builds for comparison to 4.2.2 -- or is that all in LTS hands now? These would not really be "for consumption", but some pom namespace changes need to be made for LTS in all module poms.
| + | |
− | | + | |
− | === Week 5: (3/4 - 8) ===
| + | |
− | | + | |
− | === Week 6: (3/11 - 15) <== 3/15 is M6+0 day. ===
| + | |
− | | + | |
− | : Milestone stabilization week
| + | |
− | | + | |
− | | + | |
− | [[Category:Eclipse_Platform_Releng| ]] | + | |