<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>Wheelhouse is a utility to help maintain a wheelhouse.  <br>
    </p>
    <p>The code for this project is rather basic, but it's the concept
      that counts. Putting the<br>
      concept of a wheelhouse into practice has made managing
      dependencies for our projects across dev,<br>
      testing and production environments much, much easier.<br>
    </p>
    <p>Checkout <a href="https://github.com/level12/keg" rel="nofollow">Keg</a>
      to see a project which is using a wheelhouse in conjunction with
      tox to manage
      dependencies.</p>
    <h2>What is a Wheelhouse?</h2>
    <p>A wheelhouse is a local cache of python packages in wheel format
      that gets committed with your code
      to your VCS. When installing packages during continuous
      integration and production, the wheels in
      the wheelhouse are used instead of depending on PyPI or some other
      network location.</p>
    <h3>Advantages:</h3>
    <ul>
      <li>Wheels are stored in your DVCS bringing further clarity to
        exactly what packages are
        needed/expected and how they have changed over time.</li>
      <li>CI builds are faster and more consistent. Due to the increased
        speed of installing wheels from
        a local cache instead of pulling them from a network location,
        we can have tox start with a new
        virtualenv before every run, thereby insuring all dependencies
        have been specified and installed
        into the wheelhouse correctly.</li>
      <li>Production deployments are similarly fast and consistent.
        Since the CI and production servers
        both pull from the same wheelhouse we have higher certainty that
        our production code is running
        against the exact same packages that have been tested.</li>
      <li>Since wheels are built on development or build machines, the
        need for development system packages
        to be installed on production servers is removed.</li>
      <li>Targeting forks, development versions, unpublished, and/or
        private software for production is
        much easier than setting up & maintaining a private PyPI
        server like <a href="http://doc.devpi.net/latest/">devpi</a>.</li>
      <li>Splits the package management process into two distinct steps:
        <ol>
          <li>Build packages (from various locations, with specified
            version) and put wheels in the
            wheelhouse.</li>
          <li>Install the latest version of a package from the
            wheelhouse.</li>
        </ol>
      </li>
    </ul>
    <h3>Links:</h3>
    <p><a class="moz-txt-link-freetext" href="https://pypi.python.org/pypi/Wheelhouse">https://pypi.python.org/pypi/Wheelhouse</a><br>
      <a class="moz-txt-link-freetext" href="https://github.com/level12/wheelhouse">https://github.com/level12/wheelhouse</a></p>
    <div class="moz-signature"><br>
      <b>Randy Syring</b><br>
      <small>Husband | Father | Redeemed Sinner</small><br>
      <br>
      <i><small>"For what does it profit a man to gain the whole world<br>
          and forfeit his soul?" (Mark 8:36 ESV)</small></i>
      <br>
      <br>
    </div>
  </body>
</html>