Simon,
Thanks for taking time to explain. Yes, I agree it's a bad practice to
use -SNAPSHOT for binaries released to testing team.
What is a good use case for SNAPSHOT? I am still not convinced why
x.y.z-ea-SNAPSHOT is bad, may be it's not clear in my mind yet. I was
thinking the following is a fitting use case for using such a scheme:
Project version being developed: x.y.z
Next deliverable: "early access"
So, team decides to cut a branch called x.y.z-ea so that a small pool of
developers work off that branch to produce a stable ea build while the
majority of the developers continue off the x.y.z branch.
Let's say the team promotes binaries every week. Those builds are called
x.y.z-ea-bN (N being a number). Between week N and N+1, the builds are
likely to be called x.y.z-ea-bN-SNAPSHOT. Who needs these SNAPSHOTs?
Typically developers of the project.
Do you agree, or would you call them something like
x.y.z-bN-<Timestamp>? If latter is the case, when would one use SNAPSHOT?
Thanks,
Sahoo
[EMAIL PROTECTED] wrote:
I think I have failed to make my point :-).
I would call them 1.2.3-ea1. Or 1.2.3-ea-yyyymmdd.
Or use Wayne's approach of having normal version numbers that increment
each time any artifact is released outside the dev team, with some other
way of marking things as "stable" (eg odd vs even minor numbers, or -GA
for "general access" or similar).
In maven terminology, a SNAPSHOT artifact is something that can be
modified at any time, and that cannot (easily) be reproduced. This will
drive the test team crazy; they don't want the code changing while they
test it, and don't want to report bugs to a dev team which cannot
recreate the same binary to verify/debug against.
Forget about what the word "snapshot" means to you, or how it has been
used in the past in your company's vocabulary. Maven has a specific
meaning for that word that does not match the way you have used that
word in the past. Possibly maven's use is wrong ("-CURRENT" might have
been a better choice) but that's not configurable.
Regards,
Simon
Sahoo schrieb:
I think I have failed to make my point. If a project decides to cut an
"ea" branch for its next release 1.2.3 and post nightly binaries out
of that branch to testing teams, what would you call those binaries
as? I would call them 1.2.3-ea-SNAPSHOT.
Thanks,
Sahoo
[EMAIL PROTECTED] wrote:
I think there is some misunderstanding about the meaning of SNAPSHOT.
A snapshot is by definition an artifact that might be overwritten with a
new one. Therefore when you compile against a snapshot, you never know
whether you will get the same version you compiled against earlier or
not.
A "beta", "rc" or "ea" release is not a SNAPSHOT, because people
compiling against an rc or ea do NOT want to suddenly get a new version
when they compile. Instead they want to get a new version only when they
explicitly ask for one, and want the old file to remain unchanged.
So a "beta", "rc", "ea" etc. release is just a normal release with a
funny-looking version number. They should not have a -SNAPSHOT suffix on
the version.
Regards,
Simon
David Delbecq schrieb:
I think, as a manager of a project, when i see in the dependencies of
a projet :
<version>1.4.1.25</version>,
i just consider project depends on release 1.4.1.25. On the other
hand, if i see
<version>1.4.2-rc4</version>
my instinct tells me to check for 1.4.2 instead (for stability
purposes)
Now, a good question is, what's the point of having both ea and
SNAPSHOT tags in a version from the library user point of view :D
If user sees SNAPSHOT, he clearly know he is playing with instable yet
to change version ;)
En l'instant précis du 16/03/08 19:40, Wayne Fay s'exprimait en ces
termes:
You missed my point. I am asking you, what is the purpose of "early
access"? Can you not simply say "version 1.4.1.25 is the early access
build"?
I simply do not believe in using "early access" or "release candidate"
as components of the version tag itself. To me, these identifiers are
orthogonal to the versioning itself. I retain the right to be proven
otherwise.
Wayne
On 3/16/08, Sahoo <[EMAIL PROTECTED]> wrote:
How else would one qualify a build as "early access?" Let's think of
this hypothetical case:
if some project team decides to make the "early access" build as a
stable build, then how can they specify it? At some point of time,
they
would like to cut a branch in source code repository that's used to
development of "early access" build where as the main line is used
for
development of the final release. During such active development of
"early access" build, what version number can they use?
Thanks,
Sahoo
Wayne Fay wrote:
What's the difference between 1.4.1-ea-SNAPSHOT and 1.4.1-SNAPSHOT?
That is, what is the actual utility of the "early access" tag?
Personally, I've always been dubious of these kinds of tags.
Wayne
On 3/16/08, Sahoo <[EMAIL PROTECTED]> wrote:
A/c to http://docs.codehaus.org/display/MAVEN/Versioning,
1.4.1-ea-SNAPSHOT results in a qualifier=ea-SNAPSHOT. Is this still
considered a SNAPSHOT? What I mean by that is, if a new binary is
posted
in repository, will maven still download it just like it does for a
SNAPSHOT version? If not, what's the best way to indicate "early
access
build" in a version string. I am using maven 2.0.7.
---------------------------------------------------------------------
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]