On Sat, 2005-10-22 at 20:41 -0700, Brett Porter wrote: > this relates to MNG-123, MNG-263 > > the objectives we have: > 1) build m2 with m2 (this is already possible, but I think now that 2.0 > is out this should be the primary technique) > > 2) build source distros (these won't include plugins, and will build as > above) > > 3) bootstrap without an m2 installation
Can't we do this now? > 4) bootstrap without dependencies (ie, build plexus etc from sources > before m2, for gump and gentoo, etc) How are we going to do this easily right now? Say, picking a tag for plexus and all the other dependencies. Or will this option come in a subsequent refactoring? > First step is to move the assembly configuration from maven-core to the > top level of components, and also configure the source distribution > mechanism. > > The standard assembly plugin will be used to install Maven from the top > level (assembly:assembly assembly:unpack). > > Here is the layout I was thinking of: > > /repos/asf/maven > /archetype > /trunk > /m-a-core > /m-a-plugin > /m-archetypes > /m-a-quickstart > /m-a-... > /components > /trunk > /maven-ant-tasks (formerly maven-artifact-ant) > /maven-archiver > /maven-artifact > /maven-artifact-manager > /maven-artifact-test > /maven-core > /maven-embedder > /maven-error-diagnostics > /maven-model > /maven-monitor > /maven-plugin-api > /maven-plugin-descriptor > /maven-plugin-parameter-documenter > /maven-plugin-registry > /maven-plugin-tools > /maven-profile > /maven-project > /maven-reporting > /maven-repository-metadata > /maven-script > /maven-settings > /examples > /integration-tests > /maven-core-it-plugin > /maven-core-it-support > /maven-core-it-verifier > /maven-core-it > /maven-embedder-it > /bootstrap > /phase1 > /phase2 > ... > m2-bootstrap-all.[sh|bat] > ci.sh > /plugins > /maven-assembly-plugin > /trunk > /maven-...-plugin > /trunk > /repository-manager > /trunk > /maven-meeper > /repoclean (rename to maven-repository-converter?) > /sandbox > /acm > /... > /site > /trunk +1 For the directory reorg. > The bootstrap would be much like at present, but be split into phases. > > phase 1: > - like mboot2, but pared down so that it can do an install for any > limited pom.xml using just the jdk But this would still require plexus and much of the other dependencies being built from source? > - no longer deals with transitive deps or snapshots, just downloads jars > if needed (this means that we can't use a snapshot of modello or plexus > in the bootstrap and must instead build with m2 if that is the case; but > also greatly simplifies the code to avoid inconsistencies and dual > maintenance) So we're downloading here and not building from source. I'm confused with the object above of building from source. > - no longer runs tests, a later phase will rebuild everything and do this +1 > Phase 2: > - builds maven-artifact-manager and its dependencies (by downloading > them) - the plexus utils and container, + modello core and modello + > wagon and the lightweight http provider > - builds a new jar depending on phase 1, utilising the artifact code > instead for transitive dependency calculation > > Phase 3: > - uses the artifact handling code for further dependency downloads > - build all libraries > - construct a minimal m2 installation in ./target/ > > Phase 4: > - reuse the installation to rebuild all libraries and install to the > final location using assembly as above > - plugins are downloaded, not built > > Phase 5: > - integration tests are built and run > - plugins are never rebuilt en masse > > If you are building everything from sources, phase 2 will build the > sources by checking them out (a simple svn exec, not using maven-scm) or > using a provided directory location. These will not be installed (as > they are untested), placed in /target/ and used to construct the > libraries, so a system like gump would not declare a dependency on them > for the bootstrap. > > When building from source, phase 4 will build the required plugins and > put them in the local repository, just as in phase 2 for modello, etc. > The required plugins are jar, plugin, clean, assembly, modello, > surefire, resources, install, compile. > > What do others think of this? +1 If you want to do the work then go for it. > - Brett > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- jvz. Jason van Zyl jason at maven.org http://maven.apache.org In short, man creates for himself a new religion of a rational and technical order to justify his work and to be justified in it. -- Jacques Ellul, The Technological Society --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
