Re: Conceptual Confusion about build and release process using maven.

2008-02-06 Thread VUB Stefan Seidel

amit kumar wrote:

Hi,

1) During the development process within an iteration, how to make
sure that all the module owners dependent on "a.jar" keeps up to date
with the changing versions of a.jar as the development goes on until
Integration Testing.

Use version ranges. Developers can update versions in their modules and 
other developers can pick up the latest version automatically by 
declaring [1,). As others have recommended, "Better 
builds with Maven" is an excellent book about this and other topics.



2) If a module owner dependent on a.jar fails to update the version of
the a.jar in the pom.xml and/or miss to commit the updated pom.xml
with a contemporary version of a.jar. Continuous Integration at
Continuum would suffer( assuming that even with not up to date version
of a.jar the module still gets through build),
Again, version ranges help. You developers may update the lower boundary 
for the version range from time to time just to make sure that the 
features they need in their modules are present in the modules they 
depend on.


You should also use the release feature of continuum or the maven 
release plugin to make sure that the module versions are updated and the 
jars are being properly deployed to the repository.


--
best regards,

Stefan Seidel
software developer

VUB Printmedia GmbH
Chopinstraße 4
D-04103 Leipzig
Germany
tel.+49 (341) 9 60 50 07
fax.+49 (341) 9 60 50 92
mail.   [EMAIL PROTECTED]
web.www.vub.de

HRB Köln 24015
UStID DE 122 649 251
GF Dr. Achim Preuss Neudorf,
Dr. Christian Preuss Neudorf

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



Re: Conceptual Confusion about build and release process using maven.

2008-02-06 Thread Nicole Lacoste
Hi,

I recommend reading chapter 7, Team Collaboration with Maven, from Better
Builds with Maven.

Nicole

On 07/02/2008, simon <[EMAIL PROTECTED]> wrote:
>
>
> On Wed, 2008-02-06 at 09:47 -0500, Edelson, Justin wrote:
> > > 1) During the development process within an iteration, how to make
> > > sure that all the module owners dependent on "a.jar" keeps up to date
> > > with the changing versions of a.jar as the development goes on until
> > > Integration Testing.
> > It sounds to me like you want to use a SNAPSHOT version within each
> iteration. That way dependent module owners don't need to constantly update
> their poms. Once  you hit your testing phase, do an "alpha" or "beta"
> release of all the modules and test against that.
>
> Yes, this is probably what you are looking for.
>
> (1) deploying
>
> When a module with a version of form 1.2.3-SNAPSHOT is deployed, then
> there are two choices: with or without datestamp.
>
> Without datestamp, the 1.2.3-SNAPSHOT file will just overwrite the
> previous one in the repository.
>
> With datestamp, a new 1.2.3-SNAPSHOT-mmddn file file be created.
>
> Whether deploy applies datestamps or not is configured in the repository
> block. Using datestamps clutters the repository, but does mean that
> other projects can decide to depend on the snapshot for a particular
> date if they want.
>
> (2)
> When a project has a dependency on a 1.2.3-SNAPSHOT module, then it
> checks the repository for a 1.2.3-SNAPSHOT-mmddn or 1.2.3-SNAPSHOT
> file, and downloads it if it is newer.
>
> Exactly when the check is done is configurable: every time maven is run,
> once per day, once per week (I think those are the options). I cannot
> remember offhand where that is configured.
>
> Regards,
> Simon
>
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


RE: Conceptual Confusion about build and release process using maven.

2008-02-06 Thread simon

On Wed, 2008-02-06 at 09:47 -0500, Edelson, Justin wrote:
> > 1) During the development process within an iteration, how to make
> > sure that all the module owners dependent on "a.jar" keeps up to date
> > with the changing versions of a.jar as the development goes on until
> > Integration Testing.
> It sounds to me like you want to use a SNAPSHOT version within each 
> iteration. That way dependent module owners don't need to constantly update 
> their poms. Once  you hit your testing phase, do an "alpha" or "beta" release 
> of all the modules and test against that.

Yes, this is probably what you are looking for.

(1) deploying

When a module with a version of form 1.2.3-SNAPSHOT is deployed, then
there are two choices: with or without datestamp.

Without datestamp, the 1.2.3-SNAPSHOT file will just overwrite the
previous one in the repository.

With datestamp, a new 1.2.3-SNAPSHOT-mmddn file file be created.

Whether deploy applies datestamps or not is configured in the repository
block. Using datestamps clutters the repository, but does mean that
other projects can decide to depend on the snapshot for a particular
date if they want.

(2)
When a project has a dependency on a 1.2.3-SNAPSHOT module, then it
checks the repository for a 1.2.3-SNAPSHOT-mmddn or 1.2.3-SNAPSHOT
file, and downloads it if it is newer.

Exactly when the check is done is configurable: every time maven is run,
once per day, once per week (I think those are the options). I cannot
remember offhand where that is configured.

Regards,
Simon


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



Re: Conceptual Confusion about build and release process using maven.

2008-02-06 Thread Rahul Thakur

Now my confusion over my own understanding and assumption is:

1) During the development process within an iteration, how to make
sure that all the module owners dependent on "a.jar" keeps up to date
with the changing versions of a.jar as the development goes on until
Integration Testing.
  
In my opinion there is also some bit of discipline involved here. Your 
CI server does scheduled builds for all project modules. Developers 
should ensure they update their projects regularly. For me the first 
thing in the morning when I get to work are:

> svn up
> mvn clean eclipse:clean eclipse:eclipse -DdownloadSources=true
(assuming there were not build failure notifications from CI server ;-) 
). Also keep in the mind to use SNAPSHOTS (as suggested in the other 
email).



2) If a module owner dependent on a.jar fails to update the version of
the a.jar in the pom.xml and/or miss to commit the updated pom.xml
with a contemporary version of a.jar. Continuous Integration at
Continuum would suffer( assuming that even with not up to date version
of a.jar the module still gets through build),
  
Continuous integration would show red flags if there were incompatible 
changes checked in. To a good extent this also depends on the tests that 
the developers have in place for each module.

Pardon me for any wrong assumptions, I do not have much exposure to the process.

Regards,
Amit

  

HTH,
Rahul

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



RE: Conceptual Confusion about build and release process using maven.

2008-02-06 Thread Edelson, Justin
> 1) During the development process within an iteration, how to make
> sure that all the module owners dependent on "a.jar" keeps up to date
> with the changing versions of a.jar as the development goes on until
> Integration Testing.
It sounds to me like you want to use a SNAPSHOT version within each iteration. 
That way dependent module owners don't need to constantly update their poms. 
Once  you hit your testing phase, do an "alpha" or "beta" release of all the 
modules and test against that.
 
Just my 2 cents.
 
Justin



From: amit kumar [mailto:[EMAIL PROTECTED]
Sent: Wed 2/6/2008 9:25 AM
To: users@maven.apache.org
Subject: Conceptual Confusion about build and release process using maven.



Hi,
Please pardon me for such a long mail but couldn't cut it any shorter.

After 2 months of being assigned the task of mavenizing the whole
product at my workplace and build and release automation process with
Continuous Integration, I have been able to mavenize the product and
put continuum and mavenized CVS structure in sync.
But while pondering over how to go about with the build an release
strategy I got myself in deep confusion.

The product (as usual) has several submodules with separate developers
and with many intermodule dependencies. My understanding of the whole
process till now has been like below

Development environment, after intranet maven repository in place
would be something like this: owner of module A would deploy the A.jar
on maven repository from where the other module owners which depend on
a.jar would fetch it from. And as the development goes on for module
A, the owner of module will keep on changing the versions (with in an
iteration as well) and deploying it on to the maven repository and
dependent modules will keep on changing the version in their pom.xml
for "a.jar".(unsure about whether this is how it happens)

All these developments in various modules keep on getting committed
into the CVS from where the Continuum keeps on checking out and
building ( Continuous Integration).

Now my confusion over my own understanding and assumption is:

1) During the development process within an iteration, how to make
sure that all the module owners dependent on "a.jar" keeps up to date
with the changing versions of a.jar as the development goes on until
Integration Testing.

2) If a module owner dependent on a.jar fails to update the version of
the a.jar in the pom.xml and/or miss to commit the updated pom.xml
with a contemporary version of a.jar. Continuous Integration at
Continuum would suffer( assuming that even with not up to date version
of a.jar the module still gets through build),

Pardon me for any wrong assumptions, I do not have much exposure to the process.

Regards,
Amit

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