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 >