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