Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I'd see it as two separate problems.</p> <ol> <li><p>You want a repeatable install/build system for your developers. </p></li> <li><p>You want an installer builder. </p></li> </ol> <p>Buildout (or pip, perhaps in combination with an extra script) can take care of the first problem. Basically: "how to get the project ready for development on a fresh laptop". Ideally you'd just say <code>python bootstrap.py;bin/buildout</code> and be ready (same with pip/virtualenv).</p> <p>Now that you have a repeatable build, you can use that as the basis for an installer. Handiest is a clean virtual machine that you use just for this purpose. Virtualbox/vagrant, for instance. Make scripts that set up the virtualbox and that install the proper dependencies in there.</p> <p>The installer builder script can then make a fresh checkout of your project inside the virtualbox and do the repeatable build thingy in the location where you want to have it in the installer (<code>/opt/yourproject</code>, for instance).</p> <p>Then use <a href="https://github.com/jordansissel/fpm" rel="nofollow">FPM</a> to make the actual package (.deb, .rpm, whatever). Pass in FPM options that tells it about the necessary dependencies, this way you can always be sure those dependencies are installed. (Note: these are OS-level dependencies like memcached or postgres; the python dependencies should be handled by pip or buildout).</p> <p>If you split up your big problem in these two smaller problems, both can be attacked separately.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload