Installing add-on packages using buildout

Introduction

Plone uses Buildout for installing add-on packages. See installation instructions for how to create a Plone installation suitable for development.

Discovering Plone add-ons and other python packages

The plone.org Products is a directory of Plone add-on packages where a lot of add-on packages for Plone are listed.

A lot more packages can be found in the PyPI (the Python Package index), although most of the packages might not be Plone specific.

Installing add-ons using buildout

Add-on packages which are uploaded to PyPI or plone.org as egg can be installed by buildout.

Edit your buildout.cfg file and add the add-on package to the list of eggs:

[buildout]
...
eggs =
    ...
    Products.PloneFormGen
    solgema.fullcalendar

Note

The above example works for the buildout created by the unified installer. If you however have a custom buildout you might need to add the egg to the eggs list in the [instance] section rather than adding it in the [buildout] section.

For the changes to take effect you need to re-run buildout from your console:

bin/buildout

Restart your instance for the changes to take effect:

bin/instance restart

Installing development version of add-on packages

If you need to use the latest development version of an add-on package you can easily get the source in your development installation using the buildout extension mr.developer.

For managing the sources it is recommended to create a sources.cfg which you can include in your buildout.

[buildout]
extends = http://plonesource.org/sources.cfg
extensions = mr.developer

auto-checkout =
    Products.PloneFormGen
    solgema.fullcalendar

Adding add-on package names to the auto-checkout list will make buildout check out the source to the src directory upon next buildout run.

Note

It is not recommended to use auto-checkout = *, especially when you extend from a big list of sources, such as the plonesource.org list.

Note

The auto-checkout option only checks out the source. It is also required to add the package to the eggs list for getting it installed, see above.

After creating a sources.cfg you need to make sure that it gets loaded by the buildout.cfg. This is done by adding it to the extends list in your buildout.cfg:

[buildout]
extends =
    base.cfg
    versions.cfg
    sources.cfg

As always: after modifying the buildout configuration you need to rerun buildout and restart your instance:

bin/buildout -N
bin/instance restart