Distinguishing artifacts created on branches

2011-01-17 Thread Lóránt Pintér
Hi,

I want to deploy alternate artifacts from my branches so that other
developers can depend on them. Say, I have a product called

groupIdcom.mycompany.tool/groupId
artifactIdtool/artifactId
version5.2-SNAPSHOT/version

Now, I'd like to create a branch of this one where I add a new feature. And
this early adopter developer here wants to already build on my new feature,
even before I merge it back to trunk, so I deploy my artifacts to Nexus.
Now, I obviously can't deploy them under the same GAV coordinates, otherwise
they'd overwrite the ones generated from trunk. I can think of two different
options:

1) Changing the version number

groupIdcom.mycompany.tool/groupId
artifactIdtool/artifactId
version5.2-MYBRANCH-SNAPSHOT/version

The good thing about this is that I can use the Versions plugin to set
change the version number even in a multi-module project. The bad thing is
that whenever a release happens on trunk, or when I merge the branch back to
trunk, I get conflicts in all my POMs about the version number.

2) Changing the group ID

groupIdcom.mycompany.tool.mybranch/groupId
artifactIdtool/artifactId
version5.2-SNAPSHOT/version

This looks a bit better, but I can't use the versions plugin, and updating
the groupId in many places in a big multi-module project is quite
troublesome. Also, it doesn't seem correct semantically.

Do you have any advice on this?

Thanks,
Lorant


Re: Distinguishing artifacts created on branches

2011-01-17 Thread Wendy Smoak
2011/1/17 Lóránt Pintér lorant.pin...@gmail.com:
 Now, I'd like to create a branch of this one where I add a new feature. And
 this early adopter developer here wants to already build on my new feature,
 even before I merge it back to trunk, so I deploy my artifacts to Nexus.
 Now, I obviously can't deploy them under the same GAV coordinates, otherwise
 they'd overwrite the ones generated from trunk. I can think of two different
 options:

Option 1, change the version number.

When you merge, specify a range of revision numbers.  That way you
merge only the changes, not the state of the branch which includes
the different version number.  (Is this Subversion or something else?)

Don't change the groupId, to Maven that makes it a totally different artifact.

-- 
Wendy

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



Re: Distinguishing artifacts created on branches

2011-01-17 Thread Ryan Connolly
Using a classifier MAY be appropriate for this use case.
On Jan 17, 2011 8:57 AM, Lóránt Pintér lorant.pin...@gmail.com wrote:
 Hi,

 I want to deploy alternate artifacts from my branches so that other
 developers can depend on them. Say, I have a product called

 groupIdcom.mycompany.tool/groupId
 artifactIdtool/artifactId
 version5.2-SNAPSHOT/version

 Now, I'd like to create a branch of this one where I add a new feature.
And
 this early adopter developer here wants to already build on my new
feature,
 even before I merge it back to trunk, so I deploy my artifacts to Nexus.
 Now, I obviously can't deploy them under the same GAV coordinates,
otherwise
 they'd overwrite the ones generated from trunk. I can think of two
different
 options:

 1) Changing the version number

 groupIdcom.mycompany.tool/groupId
 artifactIdtool/artifactId
 version5.2-MYBRANCH-SNAPSHOT/version

 The good thing about this is that I can use the Versions plugin to set
 change the version number even in a multi-module project. The bad thing is
 that whenever a release happens on trunk, or when I merge the branch back
to
 trunk, I get conflicts in all my POMs about the version number.

 2) Changing the group ID

 groupIdcom.mycompany.tool.mybranch/groupId
 artifactIdtool/artifactId
 version5.2-SNAPSHOT/version

 This looks a bit better, but I can't use the versions plugin, and updating
 the groupId in many places in a big multi-module project is quite
 troublesome. Also, it doesn't seem correct semantically.

 Do you have any advice on this?

 Thanks,
 Lorant


Re: Distinguishing artifacts created on branches

2011-01-17 Thread Ron Wheeler
Using the branch id in the version number will make it easier to 
understand the relation between the source and the binary that it makes.
If you every want to know how developer X actually got the test to work 
last month, it will be nice to be able to use the dependencies from his 
project to find a POM and the rest of the sources that match up by GAV 
and SCM branch id.


Ron

On 17/01/2011 9:02 AM, Ryan Connolly wrote:

Using a classifier MAY be appropriate for this use case.
On Jan 17, 2011 8:57 AM, Lóránt Pintérlorant.pin...@gmail.com  wrote:

Hi,

I want to deploy alternate artifacts from my branches so that other
developers can depend on them. Say, I have a product called

groupIdcom.mycompany.tool/groupId
artifactIdtool/artifactId
version5.2-SNAPSHOT/version

Now, I'd like to create a branch of this one where I add a new feature.

And

this early adopter developer here wants to already build on my new

feature,

even before I merge it back to trunk, so I deploy my artifacts to Nexus.
Now, I obviously can't deploy them under the same GAV coordinates,

otherwise

they'd overwrite the ones generated from trunk. I can think of two

different

options:

1) Changing the version number

groupIdcom.mycompany.tool/groupId
artifactIdtool/artifactId
version5.2-MYBRANCH-SNAPSHOT/version

The good thing about this is that I can use the Versions plugin to set
change the version number even in a multi-module project. The bad thing is
that whenever a release happens on trunk, or when I merge the branch back

to

trunk, I get conflicts in all my POMs about the version number.

2) Changing the group ID

groupIdcom.mycompany.tool.mybranch/groupId
artifactIdtool/artifactId
version5.2-SNAPSHOT/version

This looks a bit better, but I can't use the versions plugin, and updating
the groupId in many places in a big multi-module project is quite
troublesome. Also, it doesn't seem correct semantically.

Do you have any advice on this?

Thanks,
Lorant



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



RE: Distinguishing artifacts created on branches

2011-01-17 Thread Lindsay Smith
We make extensive use of branches and including the branch in the version 
number is definitely the way to go.Merging between branches does involve 
resolving the version number, the person in charge of merging should know what 
to do.

I found that the versions plugin isn't much help when you start adding the 
branch name in - things like 'most recent snapshot' don't take into account the 
current branch as maven has no knowledge of it.   

Also I have written scripts that can check that the version number matches the 
current (git) branch - having a plugin would be nice for this kind of thing.

Overall I think that maven kind of ignores the problem of branches of projects 
and doesn't really help at all in making the workflow easy.  I would love to 
see some kind of acknowledgement of branches in maven but I'm probably being 
overly optimistic.

Lindsay


 -Original Message-
 From: Ron Wheeler [mailto:rwhee...@artifact-software.com]
 Sent: Tuesday, 18 January 2011 3:38 a.m.
 To: users@maven.apache.org
 Subject: Re: Distinguishing artifacts created on branches
 
 Using the branch id in the version number will make it easier to
 understand the relation between the source and the binary that it
 makes.
 If you every want to know how developer X actually got the test to work
 last month, it will be nice to be able to use the dependencies from his
 project to find a POM and the rest of the sources that match up by GAV
 and SCM branch id.
 
 Ron
 
 On 17/01/2011 9:02 AM, Ryan Connolly wrote:
  Using a classifier MAY be appropriate for this use case.
  On Jan 17, 2011 8:57 AM, Lóránt Pintérlorant.pin...@gmail.com
 wrote:
  Hi,
 
  I want to deploy alternate artifacts from my branches so that other
  developers can depend on them. Say, I have a product called
 
  groupIdcom.mycompany.tool/groupId
  artifactIdtool/artifactId
  version5.2-SNAPSHOT/version
 
  Now, I'd like to create a branch of this one where I add a new
 feature.
  And
  this early adopter developer here wants to already build on my new
  feature,
  even before I merge it back to trunk, so I deploy my artifacts to
 Nexus.
  Now, I obviously can't deploy them under the same GAV coordinates,
  otherwise
  they'd overwrite the ones generated from trunk. I can think of two
  different
  options:
 
  1) Changing the version number
 
  groupIdcom.mycompany.tool/groupId
  artifactIdtool/artifactId
  version5.2-MYBRANCH-SNAPSHOT/version
 
  The good thing about this is that I can use the Versions plugin to
 set
  change the version number even in a multi-module project. The bad
 thing is
  that whenever a release happens on trunk, or when I merge the branch
 back
  to
  trunk, I get conflicts in all my POMs about the version number.
 
  2) Changing the group ID
 
  groupIdcom.mycompany.tool.mybranch/groupId
  artifactIdtool/artifactId
  version5.2-SNAPSHOT/version
 
  This looks a bit better, but I can't use the versions plugin, and
 updating
  the groupId in many places in a big multi-module project is quite
  troublesome. Also, it doesn't seem correct semantically.
 
  Do you have any advice on this?
 
  Thanks,
  Lorant
 


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