Build Workshop 3: Build Hard With A Purpose/Inputs and Outputs
Discussion regarding new form of the CBI as morphed from the Modeling Common Build.
Intent is simplest input, standard output, with options to produce more/different outputs FROM that output.
- current specification (Modeling Common Build)
- .releng project
- defines feature(s) to build -- generally all-in-one/SDK feature + tests feature
- contains map files(s) to define where to get sources
- additional instructions (packaging / runtime 3rd party libs / ... )
- website meta / crontab details
- branch/version/JDKpath/basebuildertag/testsRunTrueFalse/dependencies (zips or orbit map)
- desired specification: one master properties file
- defines input zips (dependencies)
- defines 3rd party libs (incl. Orbit)
- hook to additional build.xml scripts for post-build repackaging (Master -> SDK -> Runtime, Examples, ...)
- .releng/buildAll.xml defines build, test, and packaging for Master, SDK, Runtimes, Examples, Tests zips, including tweaking input/output for 3rd party libs (GPL stuff needed to build but which can't be distributed)
- follow up process (promoteToEclipse.sh) creates archived update site from Master, including p2 metadata, then pushes zips, update site, RSS feed to eclipse.org; Update site is a merged site including up to 3 integration builds, 2 milestones, 1 release (per branch/release) which grows/shrinks over time
- one zip out (p2 repo format - signed/packed master zip)
features/*.jar features/*.jar.pack.gz plugins/*.jar plugins/*.jar.pack.gz binaries/ (other artifacts, eg., from Platform or CDT) artifacts.jar content.jar
- hooks for producing other zips & unpacked p2-enabled update site/repo
Potential PDE changes
- specifying more than one input zip (?)
Can be made common
getBaseComponents ==> make it multiple.
topLevelElement mapsRepo / mapsRoot mapsCheckoutTag repos or zips build types