You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by Brett Porter <br...@apache.org> on 2005/10/23 05:41:57 UTC
proposed SVN reorg and new bootstrap
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
4) bootstrap without dependencies (ie, build plexus etc from sources
before m2, for gump and gentoo, etc)
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
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
- 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)
- no longer runs tests, a later phase will rebuild everything and do this
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?
- Brett
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: proposed SVN reorg and new bootstrap
Posted by Jason van Zyl <ja...@maven.org>.
On Mon, 2005-10-24 at 11:41 -0700, Brett Porter wrote:
> Jason van Zyl wrote:
> Actually, I figured Trygve will do it for us so he can do his Debian
> packging :)
Nice :-)
> I may not get right into this but I'd least like to do the restructure
> and documentation and leave the path open for someone to do it, as we
> have had abunch of questions about this over the last 6 months.
Sure, I'm definitely for the source tree reorg.
> - Brett
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
>
--
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: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: proposed SVN reorg and new bootstrap
Posted by Trygve Laugstøl <tr...@codehaus.org>.
On Mon, 2005-10-24 at 11:41 -0700, Brett Porter wrote:
> Jason van Zyl wrote:
[snip]
> > If you want to do the work then go for it.
>
> Actually, I figured Trygve will do it for us so he can do his Debian
> packging :)
>
> I may not get right into this but I'd least like to do the restructure
> and documentation and leave the path open for someone to do it, as we
> have had abunch of questions about this over the last 6 months.
I'd like to work on this indeed, so if you don't mind I'll start with
something in the sandbox, based on the existing mboot2 code.
Not sure where to start, I'll see if I can get some time to look at it
this weekend and get back to you with a strategy.
To all others: if you are interested in packaging Maven 2 for your
favorite distribution, please speak up now so we can try to coordinate
our efforts.
--
Trygve
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: proposed SVN reorg and new bootstrap
Posted by Brett Porter <br...@apache.org>.
Jason van Zyl wrote:
>>
>>3) bootstrap without an m2 installation
>
>
> Can't we do this now?
Yes, but its a goal to still be able to do this after attaining 1 & 2 :)
>
>
>>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?
Yes, that is part of the purpose of changing the bootstrap.
>
>>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, like mboot now, this doesn't require plexus. It would just the like
mboot1 where it could build any m2 project within some constraints (so
we can use it to build plexus, etc for the next phase).
>
> So we're downloading here and not building from source. I'm confused
> with the object above of building from source.
The default mode would be to download releases. The from-source building
option is for stubborn projects like gump and gentoo which don't believe
in binaries :)
Of course, this is by necessity in gump and so it will use plexus HEAD,
where Gentoo will probably use the tag we give them that corresponds to
the version it is later going to install.
> If you want to do the work then go for it.
Actually, I figured Trygve will do it for us so he can do his Debian
packging :)
I may not get right into this but I'd least like to do the restructure
and documentation and leave the path open for someone to do it, as we
have had abunch of questions about this over the last 6 months.
- Brett
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: proposed SVN reorg and new bootstrap
Posted by Jason van Zyl <ja...@maven.org>.
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: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
>
--
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: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: proposed SVN reorg and new bootstrap
Posted by Brett Porter <br...@apache.org>.
Vincent Siveton wrote:
> Hi Brett,
>
> Sounds very good to me. Thanks.
>
> Just to be sure, in your mind, should the 'site' project be the m2 site
> project, I mean a project that contains only m2 doc and no m1, continuum,
> jxr... docs.
It is the top level site and whatever that contains (I think the current
maven-site is a good example of that, and it can link into reference doc
for 2.0, 2.1, continuum, etc).
>
> Do you think that we could also name (<name/> in pom.xml) some sub-projects
> (for instance, org.apache.maven:maven-artifact-ant or
> org.apache.maven.reporting:maven-reporting-impl)
Yes, I've thought this many times and never got around to it.
- Brett
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
RE: proposed SVN reorg and new bootstrap
Posted by Vincent Siveton <vi...@gmail.com>.
Hi Brett,
Sounds very good to me. Thanks.
Just to be sure, in your mind, should the 'site' project be the m2 site
project, I mean a project that contains only m2 doc and no m1, continuum,
jxr... docs.
Do you think that we could also name (<name/> in pom.xml) some sub-projects
(for instance, org.apache.maven:maven-artifact-ant or
org.apache.maven.reporting:maven-reporting-impl)
Cheers,
Vincent
> -----Original Message-----
> From: Brett Porter [mailto:brett@apache.org]
> Sent: Saturday, October 22, 2005 11:42 PM
> To: Maven Developers List
> Subject: proposed SVN reorg and new bootstrap
>
> 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
>
> 4) bootstrap without dependencies (ie, build plexus etc from sources
> before m2, for gump and gentoo, etc)
>
> 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
>
> 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
> - 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)
> - no longer runs tests, a later phase will rebuild everything and do this
>
> 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?
>
> - Brett
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org