From Fedora Project Wiki

< SIGs‎ | bigdata‎ | packaging
Revision as of 15:51, 5 September 2013 by Tstclair (talk | contribs) (Notes on packaging mesos)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This is an summary as a part of the Big Data SIG of the issues uncovered during Mesos packaging.

Resolved Issues

  • Removal of hard 3rdparty dependencies and replaced with autoconf checks where possible.
  • Updated #define CHECKS on library interface dependencies
    • http_parser
    • Zookeeper
  • Updates to follow standard conventions around include dir (e.g. process->libprocess)
  • Updates to follow standard #ifndef __LIB_HEADER__ checks (some were missing, or not prefixed _LIB_).
  • System integration files. (inside package)

Review Tickets

  • stout
  • libprocess
  • mesos


Open Issues

I've tried to list the open issues in priority order. All recommendations listed here should be construed as developer opinion, and the reader should choose whatever path makes the most sense.

Canonical source for dependencies

Both libprocess and stout are considered separable libraries with their own repos on github but are not setup as submodules within the main repository thus confusing "What is the definitive source?" and whether those libraries should be broken out separately or not? Currently I've tried to sync with the mesos repository and update the packages in fedora while supplying a proper autoconf check in mesos for the dependency.

JNI reaching into zookeeper utility classes

The reliance on internal utility classes inside of zookeeper can be quite problematic. Applications developers will usually supply a contract around the interface but the inner-workings are usually subject to churn. During the packaging it became apparent of the drift.

Recommendations:

  • Remove the dependencies and try to stick with the interface where possible.
  • Use a pImpl idiom || some factory mechanism and hide the JNI goo below such that autoconf can enable impl1 impl2.

Failing Tests

Given the stack changes there are approximately 2 dozen tests that have been temporarily disabled, many of them are Zookeeper integration issues.

Boost / TR1 / C++11

There appears to be jumbled dep-graph here, and reliance on C++11 is preferred going forwards. Adding checks where possible and leverage semantics there (e.g. locking).