Sorry I forgot to get around to replying to this.

I don't think you'll find disagreement with me in terms of which tool
is easier to use. There are mostly two concerns for me:

1. Users will need to install CMake. Not a big deal.

2. Myself and others now have an understanding of autotools, we will
have learn the CMake system. This is also not a big deal, should CMake
provide a much better build system.

3. This one is the most concerning to me; there are *a lot* of
semantics captured in our current build setup. Take a look at our
./configure.ac and src/Makefile.am. It will be a big undertaking to
capture all those semantics using CMake as well, and if you've done
C++ development in the past, your efforts might be better spent on
some of the more pressing things we need done.

Ben

On Tue, Mar 12, 2013 at 5:36 PM, Brenden Matthews
<[email protected]> wrote:
> Hey Ben,
>
> Build systems are very important for any project, and they're something
> people tend to be opinionated about.
>
> I've done quite a bit of C and C++ development in the past, and dealt with
> a lot of deployment issues.  For a discussion of CMake vs. autotools, you
> can get most of the information you need from your favourite search engine.
>
> Modern operating systems will handle the third party libraries for you.
>  This might be an issue for people who are still running older
> distributions, and there is little that can be done about this.  As far as
> I can tell, Mesos isn't using anything particularly special with regards to
> third party libraries.  The OS libraries (at least with Debian or Fedora &
> derivatives) should be adequate in most cases.  For those who want to run
> the bleeding edge, they may need to update the libraries themselves.
>
> For developers, a switch from autotools to Mesos won't change much in terms
> of workflow.  Installing CMake isn't brain surgery, and CMake is (in my
> opinion) much easier to use than autotools.  Regardless of whether you use
> CMake or another build tool, developers are required to install the build
> dependencies.
>
> CMake has built in tools for generating packages (like RPMs and Debian
> packages).  It's as simple as 'make package' once you have it configured
> correctly.
>
> I think the best way for me to convince you (and others) would be to finish
> the conversion, you let you try it out for yourself.  If it's not working,
> we should discuss how to make it work.
>
> Let me know if that seems reasonable.
>
> Best,
>
> Brenden
>
>
> On Tue, Mar 12, 2013 at 1:03 PM, Benjamin Hindman 
> <[email protected]>wrote:
>
>> Hi Brenden,
>>
>> For a little history, this would be the second replacement. ;) We started
>> with organic makefiles before moving to autotools.
>>
>> I don't think any of us would be opposed to a new build system (but I only
>> speak for myself), but I'd love to hear *concretely* how the new build
>> system will ease development and simplify deployment. For example, we
>> include third party libraries in the source tree precisely to make
>> development and deployment easier/simpler! This is a common strategy in JVM
>> based projects (packages which include lots of third party JARs), and until
>> C/C++ gets the equivalent of a maven, I don't know of an easier/simpler way
>> to do it.
>>
>> Moving to a new build system is a pretty substantial undertaking: it both
>> requires developers to learn the new semantics as well as requires users to
>> make sure they have the proper prerequisites (i.e., cmake would need to get
>> installed to build Mesos). So I think it makes sense to have a careful
>> discussion first.
>>
>> Clearly some low hanging fruit that would make deployment significantly
>> easier would be to create/maintain Debian packages and RPMs. It's not clear
>> to me that we'd need a new build system for this, but I'd be happy to learn
>> otherwise.
>>
>> Ben.
>>
>>
>> On Tue, Mar 12, 2013 at 10:46 AM, Brenden Matthews <
>> [email protected]> wrote:
>>
>> > Hey folks,
>> >
>> > I've started in replacing the current Mesos build system, with a few
>> goals
>> > in mind:
>> >
>> > a) easing development
>> >
>> > b) simplifying deployment
>> >
>> > c) removing third party libraries from the source tree (where possible)
>> >
>> >
>> > To facilitate this I've started replacing autotools with CMake, which I
>> > believe is a much better build system.
>> >
>> > Please let me know your thoughts so I can continue the replacement.
>> >
>> > Best,
>> >
>> > Brenden
>> >
>>

Reply via email to