On Sun, Aug 29, 2010 at 12:02 PM, Phil Steitz <phil.ste...@gmail.com> wrote:
> Rahul Akolkar wrote:
>> On Wed, Aug 25, 2010 at 12:24 AM, Jacob Beard <jbea...@cs.mcgill.ca> wrote:
>>> Hi,
>>>
>>> I have a Maven question which seems appropriate for this list.
>>>
>>> I'm having some trouble understanding how precisely Maven is used in the
>>> release process. I think CreatingReleases doesn't really describe it, except
>>> in the bottom section "Procedure for creating a release using M2 (outdated
>>> by above)". The article it links to, Releasing A Maven Project
>>> <http://maven.apache.org/developers/release/releasing.html>, seems to talk
>>> about releases components /for/ Maven, as opposed to those that simply use
>>> Maven as the build system.
>>>
>> <snip/>
>>
>> Releasing at Commons is geared towards achieving two aspects:
>> (a) adding the necessary jar(s) to the maven central repository
>> (b) adding the source and binary distros to all the Apache mirrors
>
> Sorry to come into this late; but it is important to note that (b)
> *is* the release.  We do (a) as a convenience for users and it is
> not IMO a *required* release step;
<snip/>

Indeed, I mention things along those lines below, good to clarify upfront.


> nor is it strictly required that
> Commons components use Maven as their build tool.
<snap/>

Sure, but the chances of me fully supporting (i.e. +1'ing) a sandbox
promotion increase when "mvn install" (with a profile or two thrown
in) produces the distros and any Maven repo artifacts without much
other work. Similarly, any component-specific build or release process
reduces those chances.

-Rahul


> The only thing
> that is really required is a maven-generated site.
>
> Phil
>>
>> Maven helps in generating the above artifacts while taking care of
>> most details needed to make the artifacts release-worthy.
>>
>> Part of the Maven setup at Commons (the bits captured in the parent
>> pom) is towards making (a) a lot easier (it does things like building
>> additional source and javadoc jars, adding good jar manifests etc.) --
>> this will help with building the [scxml-js] jar. So of the two
>> [scxml-js] release artifacts, the jar can be mostly covered by Maven
>> setup in place for other components.
>>
>> For alpha/beta releases, sometimes (a) may be skipped. We may want to
>> do this (skip) for the first [scxml-js] release (if and when it is
>> promoted out of sandbox).
>>
>> We achieve (b) using Maven assemblies [1]. Maven will help with
>> creating checksums and signatures that are needed for the distros (and
>> would otherwise have to be done by hand). (b) is never optional.
>>
>>
>>> Basically, I think the first subtask involved in setting up a a Maven build
>>> for my project is to determine what are the precise tasks and goals that are
>>> called in the Maven build in the release lifecycle (I'm attempting to use
>>> Maven terminology here; if I'm getting this wrong, please correct me).
>>>
>> <snip/>
>>
>> If the standard directory layout is used for any Java code and jar
>> resources, generating the jar release artifact won't need any more
>> prodding (as indicated above, the commons-parent pom will do most of
>> the work).
>>
>>
>>> The next subtask would then be to delegate these Maven goals, where needed,
>>> to the ant build script. This may involve overriding Maven's default
>>> behaviour.
>>>
>> <snap/>
>>
>> The minimized JavaScript artifact will likely need ant scripting to
>> produce. Look at the maven antrun plugin [1] for details on this
>> (potentially tied to the package phase).
>>
>> If you haven't tried this yet, to see what Maven does in terms of
>> producing artifacts for potential release, run something like 'mvn
>> -Prc install' in Commons SCXML trunk as an example of what artifacts
>> gets generated (they will be added to the local ~/.m2 repo).
>>
>> -Rahul
>>
>> [1] http://maven.apache.org/plugins/maven-assembly-plugin/
>> [2] http://maven.apache.org/plugins/maven-antrun-plugin/
>>
>>
>>
>>
>>> The second subtask is one that I will ask about on the Maven mailing list,
>>> but the first subtask (what tasks and goals are called in a Commons release
>>> lifecycle) is better for this list.
>>>
>>> Let me know what you think about this. Thanks,
>>>
>>> Jake
>>>
>> <snip/>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>> For additional commands, e-mail: dev-h...@commons.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to