Revision as of 12:57, 15 September 2008 by Kmoir.ca.ibm.com (→Built for speed, faster tests we need)
Platform Release Engineering Galileo Plan
This document is a work in progress describing the major changes that we would like to make during the Galileo release cycle.
Built for speed, faster tests we need
- Run build with 1.6 vm to take advantage of compiler changes on multi-core processors Bug 237354
- Run tests in parallel on several machines to reduce testing time Bug 247320
- Provide an releng product download that people can download and replicate our build environment. The source build doesn't represent how Eclipse is built. Investigate possibilities with JNLP.
- Invoke builds from web ui authenticated by eclipse committer rights with parameters - maintenance build vs i-builds, tests or not etc.
- Modularize our scripts - compiling, package, test (JUnit correctness, performance, Releng validation, API Tooling, version compare, code coverage). This will also allow shorter test build runs.
- Mentor a new release engineer
- Generic templates for complex build changes such as adding a new port and packaging.
- Implement prebuild validators Bug 64797
- Implement code coverage tools Bug 241254
- Evaluate common failures determine how they can be mitigated. Rewrite if necessary.
Further leverage p2 and enhancements to PDE build
- See PDE Build Galileo plan - for example, parallel compilation, fetch using p2, p2 as the packager etc.
Blue sky ideas
- incremental build from p2 repository
- compile and sign at foundation, package locally, depends on availability of the eight vms we use
- Evaluate if platforms, or zips can be removed from the build, with scripts to build with p2
- Allow developers to contribute machines for testing
- RSS feeds for performance tests, JUnit tests
- Incremental test results
- Expose all our infrastructure to open source
- Run build with 1.6 vm Bug 237354
- Further leverage p2 and enhancements to PDE build introduced in M3. See PDE Build Galileo plan - for example, parallel compilation and fetch using p2.