Unless, of course, the problem wasn't the code but that it was packaged incorrectly. In this case, I am only correcting the packaging, not the release.
-----Original Message----- From: Vitaliy Geraymovych [mailto:[EMAIL PROTECTED] Sent: Monday, October 03, 2005 11:28 To: Maven Users List Subject: Re: Release builds and continuous integration My understanding is that if you are making changes to official release you really should increment the version (and tag it in CVS/SVN). Vitaliy On 10/3/05, Allison, Bob <[EMAIL PROTECTED]> wrote: > I really dislike your suggestion for item 1, since that implies that if > I discover a problem with the release build and have to rebuild it, I > have to remember to manually remove the release build from the > repository first. > > -----Original Message----- > From: David Jackman [mailto:[EMAIL PROTECTED] > Sent: Monday, October 03, 2005 10:54 > To: Maven Users List > Subject: Release builds and continuous integration > > > I've just started to get my hands wet with Maven 2, and I must say I > like what I'm seeing. Just about every headache we currently have with > Maven 1 is addressed to some extent by Maven 2. > > One problem we were having around Maven 1 that I'm not too sure about > for the future is the issue of "official" release (non-snapshot) builds > and continuous build tools (like CruiseControl). When releasing a Maven > project, the goal is to have as much confidence as possible (a > guarantee, hopefully) that the release build in the Maven repository > exactly matches the code that was tagged in source control for that > project. The following is a list of potential risks we have in our > current Maven 1 process that I'm hoping Maven 2 can mitigate. Can > anyone respond to these? > > 1. In Maven 1, we use the scm:prepare-release goal to start the release > process. When it works (see the issues I've logged about it), this goal > changes the currentVersion to the release version, tags the code in > source control for the release, and adds a <version> element indicating > the release version and its corresponding SCM tag. Sometimes, the > developer doing the release will want to build & deploy the official > release build himself to be sure it matches the tagged code. When the > release build is complete, he will (should) change the currentVersion to > the next snapshot version. > However, since we use a continuous build tool, there is a risk that > between the time the developer deploys the release build and checks in > the project.xml with the next snapshot version, the automated build will > do its own build using the release version and deploy over the top of > the "official" release build. There are steps the developer can take to > mitigate this, but it would be better if Maven helped out more. For > this scenario, the easiest solution would be for Maven to fail the > deploy for a release (non-snapshot) version if there is already an > artifact in the destination repository of the same name. Is this > possible? > > 2. Ideally, we'd prefer that the build machine (running the continuous > build tool) do the official release builds because it's more of a > controlled build environment. However, there are two risks here. First > is that the build tool will do more than one build of the release > version (before the currentVersion is changed to the next snapshot > version). The solution in the previous paragraph would help here as > well. The second risk is that someone else will check in a code change > before the build tool does the official release build, so the release > artifact does not match the code tagged for that release in source > control. Any ideas on how to address this problem? > One approach would be to have some plugin on the continuous build > machine that checks the projects before starting the build (but after > the latest code is obtained from SCM) to see if any projects have a > release (non-snapshot) currentVersion value. If so, this plugin would > use the <version> element for this version to make sure that the code > that will be built matches the tag for this release. Then it lets the > build go on. Would this be hard in Maven 2? Even better would be to > have a plugin that, once the release build is finished and deployed, > would change the currentVersion to the next snapshot version. > > What do you think? Has anyone else had to deal with this risks? Is > there a better approach to solve these problems that I'm not seeing? > > Thanks, > ..David.. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]