Upon further discussion, I'd like to propose that we adopt JB's proposal and use "-incubating-SNAPSHOT" style while we are an incubating project.
There are pros and cons on both sides. Based on the information so far, a category of stakeholders who'll need to upgrade their Maven installation is small. Even then, an upgrade is only needed for correct version resolution when using ranges. Finally, all this becomes a non-issue once we graduate from the Incubator. I think JB's proposal offers reasonable trade-offs and I think we can rally behind it. On Mon, Mar 21, 2016 at 1:00 PM, Jean-Baptiste Onofré <[email protected]> wrote: > Hi Ben, > > it works fine with Maven >= 3.2.x (current version is 3.3.9). > > Most of incubator projects use x.x.x-incubating-SNAPSHOT: > > > https://git1-us-west.apache.org/repos/asf?p=incubator-batchee.git;a=blob_plain;f=pom.xml;hb=HEAD > > > https://git1-us-west.apache.org/repos/asf?p=incubator-apex-core.git;a=blob_plain;f=pom.xml;hb=HEAD > > > https://git1-us-west.apache.org/repos/asf?p=incubator-atlas.git;a=blob_plain;f=pom.xml;hb=HEAD > > > https://git1-us-west.apache.org/repos/asf?p=incubator-falcon.git;a=blob_plain;f=pom.xml;hb=HEAD > > etc > > And we don't have any problem with Maven, even in OSGi related projects > which are a bit "complex" in versioning (as '-' is not allowed). > > finalName is not a solution, as it's not part of the Maven coordonates. > > I don't see any valid argument to use a different versioning in Beam, and > we will be compliant with release management recommendation ( > http://incubator.apache.org/guides/releasemanagement.html). > > IMHO, we should use 0.1.0-incubating-SNAPSHOT (the Maven Parser uses the > final -SNAPSHOT, and take 0.1.0-incubating as base version). > > Regards > JB > > > On 03/21/2016 07:22 PM, Ben Chambers wrote: > >> I don't think Maven will recognize 0.1.0-incubating-SNAPSHOT as a >> snapshot. >> It will recognize it as 0.1.0 with the "incubating-SNAPSHOT" qualifier. >> >> For instance, looking at the code for parsing qualifiers, it only handles >> the string "SNAPSHOT" specially, not "incubating-SNAPSHOT". >> >> http://maven.apache.org/ref/3.0.4/maven-artifact/xref/org/apache/maven/artifact/versioning/ComparableVersion.html#52 >> >> Looking at this Stack Overflow answer ( >> http://stackoverflow.com/a/31482463/4539304) it looks like support was >> improved in Maven 3.2.4 to allow multiple qualifiers (its still unclear >> whether incubating would be considered by the code as a qualifier). >> >> Either way, we shouldn't expect users to upgrade to Maven 3.2.4 or newer >> just to get reasonable version number treatment. It seems like sticking >> with the standard "-SNAPSHOT" and "" for releases is preferable. >> >> If the goal is to get incubating into the file names, I think we can >> configure the Maven build process to do so. For instance, finalName >> defaults to >> "<finalName>${project.artifactId}-${project.version}</finalName>". If we >> changed that to >> >> "<finalName>${project.artifactId}-incubating-${project.version}</finalName>" >> it seems like we'd "incubating" in the file names without needing to >> complicate the release numbering. >> >> On Mon, Mar 21, 2016 at 10:24 AM Jean-Baptiste Onofré <[email protected]> >> wrote: >> >> Hi Ben, >>> >>> 1. True for Python, but it can go in a folder in sdk (sdk/python) >>> anyway. I think the DSLs (Java based) and other languages that we might >>> introduce (Scala, ...) can be the same. >>> >>> 2. The incubating has to be in the released filenames. So it can be in >>> the version or name. Anyway, my proposal was 0.1.0-incubating-SNAPSHOT >>> for a SNAPSHOT and 0.1.0-incubating for a release (it's what I did in >>> the PR). Like this, the Maven standards are still valid. >>> >>> Regards >>> JB >>> >>> On 03/21/2016 06:20 PM, Ben Chambers wrote: >>> >>>> 1. Regarding "java" as a module -- are we sure that other languages will >>>> >>> be >>> >>>> packaged using Maven as well? For instance, Python has its own ecosystem >>>> which likely doesn't play well with Python. >>>> >>>> 2. Using the literal "SNAPSHOT" as the qualifier has special meaning >>>> >>> Maven >>> >>>> -- it is newer than all other qualified releases, but older than any >>>> unqualified release. It feels like we should take advantage of this, >>>> >>> which >>> >>>> makes our versioning more consistent with Maven standards. Specifically, >>>> snapshots should be 0.1.0-SNAPSHOT and releases should be 0.1.0. >>>> 0.1.0-SNAPSHOT because that uses the standard definition of >>>> SNAPSHOT >>>> 0.1.0 because if we had any qualifier than the 0.1.0-SNAPSHOT >>>> would >>>> >>> be >>> >>>> considered newer >>>> >>>> Davor's suggestion of putting the "incubating" in the name or >>>> description >>>> of the artifacts seems like a preferable option. >>>> >>>> On Mon, Mar 21, 2016 at 7:33 AM Jean-Baptiste Onofré <[email protected]> >>>> wrote: >>>> >>>> Hi beamers, >>>>> >>>>> I updated the PR according to your comments. >>>>> >>>>> I have couple of points I want to discuss: >>>>> >>>>> 1. All modules use the same groupId (org.apache.beam). In order to have >>>>> a cleaner structure on the Maven repo, I wonder if it's not better to >>>>> have different groupId depending of the artifacts. For instance, >>>>> org.apache.beam.sdk, containing a module with java as artifactId (it >>>>> will contain new artifacts with id python, scala, ...), >>>>> org.apache.beam.runners containing modules with flink and spark as >>>>> artifactId, etc. Thoughts ? >>>>> 2. The version has been set to 0.1.0-incubating-SNAPSHOT for all >>>>> artifacts, including the runners. It doesn't mean that the runners will >>>>> have to use the same version as parent (they can have their own release >>>>> cycle). However, as we "bootstrap" the project, I used the same version >>>>> in all modules. >>>>> >>>>> Now, I'm starting two new commits: >>>>> - renaming of the packages >>>>> - folders re-organization >>>>> >>>>> Thanks ! >>>>> Regards >>>>> JB >>>>> >>>>> On 03/21/2016 01:56 PM, Jean-Baptiste Onofré wrote: >>>>> >>>>>> Hi Davor, >>>>>> >>>>>> thank you so much for your comments. I'm updating the PR according to >>>>>> your PR (and will provide explanation to some changes). >>>>>> >>>>>> Thanks dude ! >>>>>> >>>>>> Regards >>>>>> JB >>>>>> >>>>>> On 03/21/2016 06:29 AM, Davor Bonaci wrote: >>>>>> >>>>>>> I left a few comments on PR #46. >>>>>>> >>>>>>> Thanks JB for doing this; a clear improvement. >>>>>>> >>>>>>> On Mon, Mar 14, 2016 at 6:04 PM, Jean-Baptiste Onofré < >>>>>>> >>>>>> [email protected]> >>> >>>> wrote: >>>>>>> >>>>>>> Hi all, >>>>>>>> >>>>>>>> I started the renaming process from Dataflow to Beam. >>>>>>>> >>>>>>>> I submitted a first PR about the Maven coordinates: >>>>>>>> >>>>>>>> https://github.com/apache/incubator-beam/pull/46 >>>>>>>> >>>>>>>> I will start the packages renaming (updating the same PR). For the >>>>>>>> directories structure, I would like to talk with Frances, Dan, >>>>>>>> Tyler, >>>>>>>> and >>>>>>>> Davor first. >>>>>>>> >>>>>>>> Regards >>>>>>>> JB >>>>>>>> -- >>>>>>>> Jean-Baptiste Onofré >>>>>>>> [email protected] >>>>>>>> http://blog.nanthrax.net >>>>>>>> Talend - http://www.talend.com >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> -- >>>>> Jean-Baptiste Onofré >>>>> [email protected] >>>>> http://blog.nanthrax.net >>>>> Talend - http://www.talend.com >>>>> >>>>> >>>> >>> -- >>> Jean-Baptiste Onofré >>> [email protected] >>> http://blog.nanthrax.net >>> Talend - http://www.talend.com >>> >>> >> > -- > Jean-Baptiste Onofré > [email protected] > http://blog.nanthrax.net > Talend - http://www.talend.com >
