An open API service indexing awesome lists of open source software.

https://github.com/zillow/buildout-platform-versions

A dependency version management forklift for buildout.
https://github.com/zillow/buildout-platform-versions

Last synced: about 1 year ago
JSON representation

A dependency version management forklift for buildout.

Awesome Lists containing this project

README

          

Buildout Platform Versions (BPV)
================================

BPV lets you switch between sets of pinned dependencies more easily.

It's useful for testing a build with several dependency chains. For
example, you might be using one freeze of Turbogears in production, but
you might also want to test a new freeze in development.

Simple Example
--------------

Suppose that we're using flup 1.0.2 in production. We want the
production build to continue to use the old flup. But, we want to flip
between the production flup and a new flup on the dev box.

Developers can build and test with [production], [dev], or
[newest\_flup] by setting an environment variable

::

export PLATFORM\_ENVIRONMENT\_VARIABLE=dev

Or writing a custom develop.cfg. Here's how BPV gets the job done:

buildout.cfg
~~~~~~~~~~~~

::

[buildout]

extensions = buildout_platform_versions

# optionally
# platform-versions-config = WHATEVER_SECTION

[platform-versions-config]
default-platform = production
sources =
some_config_enhance_file.cfg
another_config_enhance_file.cfg
platform-env = PLATFORM_ENVIRONMENT_VARIABLE

some\_config\_enhance\_file.cfg
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

::

[base]
simplejson = 2.2.1
flup = 1.0.2
WebOb = 1.1.1
Jinja2 = 2.6
pymongo = 2.1

another\_config\_enhance\_file.cfg
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

::

[production]
# the production environment uses the base config
<<=