On Wed, 07 May 2014 07:21:48 GMT, Sönke Ludwig wrote:

Exactly, tags are picked up regardless of the branch they are on. And as long as each branch uses a unique major (or minor) version, the natural version selector ~> will make sure that people will automatically stay on that branch.

Thanks for the help so far. Just to make sure I understand this... When you say ~> will keep people on a specific branch, you mean through restricting the dependency to the range of tags that only exist on that branch? I want to make sure I completely understand this.

Given branches v2.0.0, v2.0.1 and v2.0.2 (the current scheme), I now plan to add tags as follows:

v2.0.0 branch - v1.0.x tags.
v2.0.1 branch - v1.1.x tags.
v2.0.2 branch - v1.2.x tags.

1) With this setup, assuming someone wants to work exclusively with the 2.0.1 branch, what should the dependency look like? If I correctly grok what you say above, it should be ~>1.1.0, correct?

2) Later on, if I add a new branch v2.1.0 with tags v2.0.x, can I assume there will be no conflict between the 2.0.x tags and the 2.0.x branches?

Once I get these last two points cleared up, I'll be ready to implement this. Assuming, of course, that it doesn't require an unreleased version of dub (with deprecated branches).