Re: Conceptual Confusion about build and release process using maven.
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.
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.
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.
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.
> 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]