Oups,
I forgotten to say that archetypes is the first foot a developper starts for
using maven.
This is why i'm concerned about archetypes.
I also see archetypes a examples of using maven (for example the axistools)

Raphaël


2007/3/12, Raphaël Piéroni <[EMAIL PROTECTED]>:

My current task is now to document what i have done so far.

Answers and questions inlined.

Raphaël

2007/3/12, Brett Porter <[EMAIL PROTECTED] >:
>
> My basic feedback would be similar to Jason's.
>
> Key requirements:
> - backwards compatibility with existing archetypes is a definite
> requirement


Is backward compatibility for archetype only the recognition of the old
descriptor and pathes resolution ?
The selection step of the proposition can not enforce compatibility as it
is based on repository-metadata (like maven-plugins).

- existing goal names need to continue to work, even if they are
> deprecated


I have some trouble with this as:
old goals are: create and create-from-project
and the new mapping proposed is generate instead of create and create
instead of create-from-project.
I would also note that in the jira the components are : creator for
create-from-project and generator for create.

- if it's being designed from the ground up, it should have new
> standards of testing and documentation


I must admit not understaning well what has to be done here.

My main query is whether this needed a rewrite or whether it could be
> done as incremental advancements on the current code base? It's
> obviously a lot easier to consume that way as long as someone is
> committed to reviewing and applying patches in short order.


I would say that i can't see a path of patches. Please read the
proposition code to be sure.


Some more questions:
>
> On 08/03/2007, at 10:54 AM, Raphaël Piéroni wrote:
>
> > - package mojo: to jar the created archetype
>
> How is this different to a normal JAR that it needs it's own
> packaging? Isn't it just additional resources in the lifecycle?


What i see here is  just a jar around the created archetype's directory.
I would also create a new packaging to provide the following
functionnalities:
- At install and deployment phases, an archetype needs the repository
metadata to be updated (the same way as maven-plugin)

> - sample properties mojo: to provide a sample configuration file
> > for an
> > archetype (which could be filled and used in batch mode)
>
> What are the current needs of a configuration file? I figured that
> even with the one we currently had, most of that could have been
> autodiscovered from the archetype resources.


What i see here is a mojo which write a sample property file to be used in
the generation of the project.
That sample file would contains the archetype definition, and the values
of the required properties of the archetype.
with those properties valuated using the archetype's default values. The
properties without a default values will only be set to empty (or to
"please_configure_this_property")

> - descriptor with attributes: refactor the current archetype
> > descriptor to
> > use attributes instead of xml elements
>
> Less is more :)


By current i mean the current in the proposition.

I don't understand the subtlety of  "less is more".

> - generate multi project: to generate a project and its internal
> > modules
> > from one archetype.
>
> Cool. I assume you are retaining the functionality I added where you
> can incrementally add to a multiproject as well?


The main problem here is an archetype of a multiproject. like the ear
(ejb) archetype.
And also to create suche an archetype from an existing project.

The current proposition can generate a project in partial mode, and also
generate a subproject in an existing project (and insert a parent element in
the generated pom - and a module in the parent project).


> - CRUD group mojo: mojos to change the archetype groups defined in the
> > ~/.m2/archetypes.xml
>
> Don't really understand this, nor what archetypes.xml is for.


Archetype.xml is a file which holds the list of archetype groups (just
like the pluginGroups in tsettings.xml )
That mojo will only be used to change the xml file. this mojo is only for
convenience and will not be really important.

> - Documentation:  Document the workfow of user interaction, explain
> > the
> > internal plexus components
>
> +1 :)


It is what i'm doning for now. i will sent a link to the generated html
file as soon as i have completed it (at  least wednesday and at most in 2
weeks)

> - integration tests and sibling: handle directories other than src/
> > main,
> > src/test, src/site. a first case would be integration tests
>
> +1 :)
>
> > - pom.xml sibling: handle templates in the main directory. some use
> > case
> > would be readme files
> > - translator: create a tool to translate current archetypes into
> > this new
> > way
>
> Wouldn't worry too much about this as loong as it remains backwards
> compatible. It should be very straight forward to do by hand if the
> implementation is simple enough to do it from scratch.


The translator will provide the may to enhance the metadata for the
selection.

> - archetype group metadata: create a new group metadata for
> > archetypes (same
> > way as plugins metadata) therefore we could have a archetype
> > packaging.
>
> +1
>
> > - velocity tools in templates: provide the official velocity tools
> > to be
> > used by archetype creators
>
> Sounds good too.
>
> Thanks for taking the initiative, and responding to my concerns here.


Hoping my answers are sufficently explaining.

Regards,

Raphaël

Cheers,
> Brett
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to