+10

________________________________

From: B Smith-Mannschott [mailto:bsmith.o...@gmail.com]
Sent: Wed 3/25/2009 5:49 PM
To: Maven Users List
Subject: Re: Possible problem when multiple developers depend on SNAPSHOT 
versions



With all due respect to others' responses, the scenario described
below is not due to misuse or lack of version control. Indeed, the
scenario below clearly describes version control *working as
designed*.

Bob finds himself unwittingly building snapshots of 2.2, while his
project continues to depend on snapshots of 2.1, so he doesn't see his
own changes. The problem, however, is neither source control nor
maven: it's lack of communication.

Something like cutting a release needs to be coordinated among the
developers working on a component. Alice and Bob need to talk to each
other about library Foo, particularly with respect to cutting a
release. There's no way around this.

// ben

On Wed, Mar 25, 2009 at 20:10, Trevor Harmon <tre...@vocaro.com> wrote:
> Consider this scenario:
>
> Alice and Bob are working independently on two different applications, AppA
> and AppB. Both applications depend on an in-house shared library, Foo, that
> Alice and Bob are working on together. They have both checked out Foo's
> trunk and are regularly committing changes to it.
>
> Because Foo is undergoing heavy development, AppA and AppB depend on Foo
> 2.1-SNAPSHOT, but now Foo is looking pretty stable, and Alice's AppA needs
> some of the features scheduled for Foo 2.2, so she decides to perform a
> release of Foo 2.1 and does the usual release procedure:
>
> 1) Changes Foo's version from 2.1-SNAPSHOT to 2.1 and checks it into the
> trunk
> 2) Deploys Foo 2.1 to the company's internal repository
> 3) Tags the Foo trunk as the 2.1 release branch
> 4) Changes Foo's version from 2.1 to 2.2-SNAPSHOT and checks it into the
> trunk
> 5) Changes AppA's dependency to point to Foo 2.2-SNAPSHOT
>
> But what about Bob? He's still working with Foo 2.1-SNAPSHOT for his AppB.
> If he updates his working copy of Foo's source code, any changes he makes to
> Foo will be built as a 2.2-SNAPSHOT release, since Foo's trunk is now
> 2.2-SNAPSHOT. This is a major problem because his AppB has a dependency on
> 2.1-SNAPSHOT, so the next time he tests AppB, it will pick up the old Foo
> 2.1-SNAPSHOT, ignoring any changes Bob makes in Foo. He will probably waste
> a lot of time debugging, at least until he happens to notice that Foo's
> version has changed.
>
> What can be done to prevent Bob's problem?
>
> Trevor
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> For additional commands, e-mail: users-h...@maven.apache.org
>
>

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



Reply via email to