collective.recipe.buildoutcache

Recipe for generate buildout-cache.tar.gz2


Keywords
Plone, Buildout, Recipe, Buildout-Cache, Python
License
GPL-2.0+
Install
pip install collective.recipe.buildoutcache==1.0.3

Documentation

Introduction

This recipe is used to generate buildout-cache.tar.gz2 file.

The recipe was inspired by update-packages script from Plone Installers-UnifiedInstaller (https://github.com/plone/Installers-UnifiedInstaller/blob/master/update_packages.py) The recipe will start a buildout with forced eggs-directory and download-cache. After it will deleted eggs with binary components, make some cleanup, and finally generate compressed file contains buildout-cache.

Supported options

The recipe supports the following optionnal options:

target

Name of target compressed file. Default value is buildout-cache.tar.bz2.

buildout_file

Name of buildout file which be used for constuction of buildout cache. Default value is buildout.cfg.

work_dir

Directory where eggs are downloaded for creation of tar.gz2 file. This directroy is deleted before and after the script. Default value is tmp.

timeout

Timeout using for buildout in second. If no timeout define but a socket-timeout into buildout section, socket-timeout value is used. Default value is 10.

preremove_old_work_dir

Sometime we want to keep word_dir if a build failed. Default value is True, so work_dir will be deleted by default.

Example usage

We'll start by creating a buildout.cfg file that uses the recipe:

[buildout]
parts = makebuildoutcache

[makebuildoutcache]
recipe = collective.recipe.buildoutcache
target = buildout-cache.tar.bz2
buildout_file = buildout.cfg
work_dir = my-temp-buildout-work-dir

For recipe installation you can make this command line:

./bin/buildout install makebuildoutcache

And start recipe script:

./bin/makebuildoutcache

Then all these packages will download temporally into the directory my-temp-buildout-work-dir defined and later it will create a buildout-cache.tar.bz2 file in the Buildout directory.

buildout-cache.tar.bz2 archive

The buildout-cache.tar.bz2 archive contains one single buildout-cache folder. In this folder, there are 2 folders:

  • eggs: contains all eggs use by your buildout except eggs which have to be compiled.
  • downloads: contains zip eggs which must be compiled (as AccessControl, lxml, Pillow, ZODB, ...).

Before starting a buildout, we download and extract buildout-cache and use it on our buildout directory. We add eggs-directory and download-cache parameters on buildout section like this:

[buildout]

eggs-directory = buildout-cache/eggs
download-cache = buildout-cache/downloads