Re-opening a discussion from earlier this year (and logged as 
https://issues.apache.org/jira/browse/CALCITE-2112 
<https://issues.apache.org/jira/browse/CALCITE-2112>).

I have changed my mind on this issue. I encountered a user today for whom 
getting a valid version of maven was a significant obstacle. I am now +1 — I 
think it would be beneficial to include mvnw and mvnw.bat in the source 
distribution, and use them in our default build instructions.

I do not think it increases complexity. Advanced users can use “mvn” if they 
choose, but the default instructions would mention only “./mvnw”.

We do not need to include maven-wrapper.jar or MavenWrapperDownloader.jar. mvnw 
and mvnw.bat work fine without them. As they make release votes more 
complicated, I think we should exclude these.

There were a mixture or -1, -0 and +1 in the original thread. Has anyone else 
changed position?

Julian


> On Jan 2, 2018, at 5:01 PM, Julian Hyde <jh...@apache.org> wrote:
> 
> We already have a tool that provides a container for the whole build process. 
> That tool is maven. I do not recall a time where someone had problems because 
> they had the wrong version of maven installed; so this is a non-problem.
> 
> I’ve written C/C++ projects before (using autoconf, libtool, mingw etc.), and 
> thank heavens we don’t have their problems.
> 
> If we were to use a wrapper, we’d either have to get the wrapper from an 
> external repo, or we’d have to distribute the wrapper. For the first, we’ve 
> just shifted the version-management problem; for the second, we’d be 
> distributing our own tool-chain, including binaries (non-source files), which 
> is problematic for an open source project. 
> 
> Julian
> 
> 
>> On Jan 2, 2018, at 3:31 PM, Josh Elser <els...@apache.org> wrote:
>> 
>> +1 to the simplicity.
>> 
>> But, to Vladimir's issues (thx btw), maybe we can solve some of those 
>> pain-points another way? I've seen some projects (notably, those with 
>> compilation of C/C++ code) provide a Dockerfile that can create an 
>> environment capable of building that native code.
>> 
>> It seems like a lot of the things Vladimir cites could be solved by a 
>> similar approach which would keep us on a single build tool (instead, 
>> providing a ready-made environment to build without polluting anything else).
>> 
>> I'd be OK with that approach if someone wanted to make that work.
>> 
>> On 1/2/18 5:03 PM, Julian Hyde wrote:
>>> Yes.
>>> But I claim that adding mvnw to the picture makes things more complicated 
>>> for the typical user, because there are now more options to understand.
>>> Julian
>>>> On Jan 2, 2018, at 2:00 PM, Michael Mior <mm...@uwaterloo.ca> wrote:
>>>> 
>>>> Even if we do include mvnw, isn't it still possible to use a compatible mvn
>>>> directly?
>>>> 
>>>> --
>>>> Michael Mior
>>>> mm...@apache.org
>>>> 
>>>> 2018-01-02 15:35 GMT-05:00 Julian Hyde <jh...@apache.org>:
>>>> 
>>>>> True, but for 2 and 3 it’s not much of a hardship to type
>>>>> 
>>>>> $ /usr/local/maven-x.y.z/bin/mvn -s my-settings.xml target
>>>>> 
>>>>> rather than
>>>>> 
>>>>> $ mvn target
>>>>> 
>>>>> And for 1, I claim that typing “mvn” is less surprising to most people
>>>>> than typing “mvnw”. Because most people who build java code these days are
>>>>> familiar with mvn.
>>>>> 
>>>>> Julian
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>>> On Jan 2, 2018, at 12:17 PM, Vladimir Sitnikov <
>>>>> sitnikov.vladi...@gmail.com> wrote:
>>>>>> 
>>>>>>> Multiple versions of Maven can be installed side-by-side (and we don't
>>>>>> have esoteric requirements). As such, I don't see the need for such a
>>>>>> change
>>>>>> 
>>>>>> The reasons could include:
>>>>>> 1) Simplified Apache Maven installation for those who have no experience
>>>>>> with it
>>>>>> 2) Having multiple settings.xml files (e.g. if corporate rules requires
>>>>>> certain settings.xml that is incompatible with Apache Calcite
>>>>> settings.xml)
>>>>>> 3) Simplified management of multiple Apache Maven versions. In the same
>>>>>> way, corporate rules might require specific mvn version (outdated due to
>>>>>> plugins, etc), so that version would likely be the default.
>>>>>> 
>>>>>> Vladimir
>>>>> 
>>>>> 
> 

Reply via email to