I believe we'll put ourselves into a corner with
"0.1-incubating-SNAPSHOT".
The format has to be: <major>.<minor>.<incremental>-<qualifier>, as per
[1], i.e., no two dashes. If it is not, Maven resolution will get things
wrong by comparing strings instead of numbers: 10 becomes less than 2,
etc.
Maven handles "-SNAPSHOT" qualifier specially; qualifier
"-incubating-SNAPSHOT"
will not get that benefit.
Here's a very specific example from [1]:
Take the version release numbers “1.2.3-alpha-2” and “1.2.3-alpha-10,”
where the “alpha-2” build corresponds to the 2nd alpha build, and the
“alpha-10” build corresponds to the 10th alpha build. Even though
“alpha-10” should be considered more recent than “alpha-2,” Maven is
going
to sort “alpha-10” before “alpha-2”.
There are several orthogonal decisions here:
1. How much version numbers do we need for now? I argue do don't need the
incremental part before the first stable release -- two numbers should be
sufficient. So, the format, before the first stable release, can be
<major>.<minor>-<qualifier>.
2. I don't think we need "incubating-SNAPSHOT" ever. For the most part,
both qualifiers communicate the same thing -- that this is not really
ready
for primetime yet. For example, we can use -SNAPSHOT for the nightly
build,
and "-incubating" for the actual releases while we are in the incubation
phase. Snapshots will not get released anywhere -- no reason for them to
carry "incubating" too; we'll just mess up resolution handling.
3. I found many projects in the Incubator that don't actually have
"incubating" in the version part. Some put it in the artifact id; others
put it in the name only; a few don't have it at all. I dislike the
artifact
approach, and I'm neutral between name & version. Name is easier,
however.
4. When we release the first stable version, I propose that it is marked
as
2.0.0. Before that, we'll likely push several pre-release versions. We
have
released 1.5.0 in Dataflow recently, and might release a few more. It
might
be smarter to leave a few numbers for any such versions of Dataflow. So,
we
could start with something like 1.9.0. I think 0.1 communicates more
clearly that this is a pre-release version.
To summarize, I think a good proposal is as follows:
Start with 0.1-SNAPSHOT. This goes into Beam's parent pom.xml. When we
release 0.1, we override it to 0.1-incubating. At that time, the pom goes
to 0.2-SNAPSHOT, and we release it as 0.2-incubating. Sometime before the
first stable release post incubation, we change it to 2.0.0-SNAPSHOT, and
release as 2.0.0.
[1]
https://books.sonatype.com/mvnref-book/reference/pom-relationships-sect-pom-syntax.html
On Sun, Mar 20, 2016 at 12:31 PM, Jean-Baptiste Onofré <j...@nanthrax.net>
wrote:
Hi beamers,
as the project is more and more visible, and we begin to see incoming
contributions, I think we really have to move forward on the code
cleanup
and polishing.
So, I'm updating PR #46 about renaming the packages and re-organizing
the
folders. I will update the PR by tomorrow.
In the mean time, I sent an e-mail about the version. Right now, I
proposed 1.5.0-incubating-SNAPSHOT. Some expressed to start with
0.1-incubating-SNAPSHOT.
I think 0.1-incubating-SNAPSHOT makes sense. Please, if you disagree,
let
me know, else I will update the version in PR #46.
Thanks
Regards
JB
--
Jean-Baptiste Onofré
jbono...@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com