Skip to main content

A zc.buildout extension to ease the development of large projects with lots of packages.

Project description

Introduction

http://www.netsight.co.uk/junk/xkcd-buildout.png

Let Mr. Developer help you win the everlasting buildout battle!

(Remixed by Matt Hamilton, original from http://xkcd.com/303)

mr.developer is a zc.buildout extension which makes it easier to work with buildouts containing lots of packages of which you only want to develop some. The basic idea for this comes from Wichert Akkerman’s plonenext effort.

Usage

You add mr.developer to the extensions option of your [buildout] section. Then you can add the following options to your [buildout] section:

sources-dir

This specifies the default directory where your development packages will be placed. Defaults to src.

sources

This specifies a section which lists the repository information of your packages. The format is “<kind> <url> [path]”. Where <kind> is either svn, hg or git, <url> is the location of the repository and the optional [path] is the base directory where the package will be checked out (the name of the package will be appended), if it’s missing, then sources-dir will be used.

auto-checkout

This specifies the names of packages which should be checked out during buildout, packages already checked out are skipped.

The following is an example of how your buildout.cfg may look like:

[buildout]
...
extensions = mr.developer
sources = sources
auto-checkout = my.package

[sources]
my.package = svn http://example.com/svn/my.package/trunk
some.other.package = git git://example.com/git/some.other.package.git

When you run buildout, you will get a script at bin/develop in your buildout directory. With that script you can perform various actions on the packages, like checking out the source code, without the need to know where the repository is located.

For help on what the script can do, run bin/develop help.

If you checked out the source code of a package, you need run buildout again. The package will automatically be marked as an develop egg and, if it’s listed in the section specified by the versions option in the [buildout] section, the version will be cleared, so the develop egg will actually be used.

Changelog

0.12 - 2009-04-14

  • Added support for Mercurial (hg). [mj]

  • Refactored working copy logic, so it’s easier to add support for other version control systems. [fschulze]

  • Added verbose flag to checkout and update commands. [fschulze]

0.11 - 2009-04-06

  • Removed the nice os.path.relpath usage, because it’s only been introduced with Python 2.6. [fschulze]

0.10 - 2009-04-06

  • Added verbose flag to status command. [fschulze]

  • Deprecated sources-svn and sources-git in favour of just sources which allows more flexibility. [fschulze]

  • Changed status command to only check known paths and not the whole sources-dir path. [fschulze]

  • Add possibility to filter packages in update and status commands. [fschulze]

  • Tell the user at the end of the buildout run whether there have been any errors during automatic checkout. [fschulze]

  • Install the develop script as the first part instead of the last, so it can be used to fix problems. [fschulze]

0.9 - 2009-03-30

  • When installed as just an egg, then the resulting develop script can be called from anywhere and will try to find the correct develop script from the current working directory and execute it. [fschulze]

  • Fixed help text formatting. [fschulze]

0.8 - 2009-03-25

  • Added authentication support to subversion commands. [fschulze]

  • Added -a option to checkout command to limit matching to the packages declared by the auto-checkout option. If no further argument is given, then all the packages from auto-checkout are processed. [fschulze]

0.7 - 2009-03-24

  • Added update command to checkout script. [fschulze]

  • Added status command to checkout script. [fschulze]

  • Added status flag to list command to indicate packages with wrong URL. [fschulze]

  • If the working copy is clean, then checkout automatically switches svn packages. [fschulze]

  • Skip on checkout errors during buildout, so the develop script is generated and you get a chance to inspect and fix the problems. [fschulze]

  • Check remote url and stop checkout if it differs. [fschulze]

  • Added various options to the list command. [fschulze]

  • Instead of the checkout script, there is now a develop script with various commands. [fschulze]

0.6 - 2009-03-24

  • Added custom logging formatter for nicer output in the checkout script. [fschulze]

  • Removed the ‘-e’ option, regular expression matching is the default now. [fschulze]

  • Made it possible to specify more than one regular expression without the need to use a pipe symbol and quotes. [fschulze]

  • Added help text for the checkout script to pypi page. [fschulze]

  • Add a warning to rerun buildout after checkout. [fschulze]

0.5 - 2009-03-23

  • Make sure that the updated versions are actually used. [fschulze]

0.4 - 2009-03-22

  • Fixed logging, which fixes the info message output. [fschulze]

  • Skip checkout of existing packages. [fschulze]

0.3 - 2009-03-22

  • Fixed source distribution by adding a MANIFEST.in. [fschulze]

  • Added -e and -l options to checkout script. [fschulze]

0.2 - 2009-03-22

  • Added auto-checkout option (only works with subversion at the moment). [fschulze]

  • Added support for git. [fschulze]

  • Throw error when trying to checkout unknown package. [fschulze]

  • Fixed target directory for checkouts. [fschulze]

0.1 - 2009-03-19

  • Initial release

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mr.developer-0.12.zip (21.2 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page