[Distutils] Location of generated buildout script

Lele Gaifax lele at metapensiero.it
Fri Jan 4 15:44:30 CET 2013

Jim Fulton <jim at zope.com> writes:

> Please try it and let me know if you have any problems. If I don't
> hear anything, I'll release 1.7.0 final in a week or so.

I tried upgrading one of my projects to 1.7.0b2 (from 1.6.0), and
something has changed wrt the location where the buildout script is

I usually keep all buildout related stuff, including its configuration
files, in a ``buildout`` subdirectory of the project's top level, such

    ├── bin/
    ├── buildout/
    │   ├── buildout.cfg
    │   ├── versions.cfg
    │   └── ...
    ├── src/
    │   └── ...

The top level ``Makefile`` takes care of bootstrapping and executing the
buildout, with something like the following targets:

    export TOPDIR := $(CURDIR)
    BINDIR := $(TOPDIR)/bin

    .PHONY: all
    all: buildout

    BUILDOUT := $(BINDIR)/buildout
    BODIR := $(TOPDIR)/buildout
    BOCFGS := $(wildcard $(BODIR)/*.cfg)
    BOTSTAMP := $(BODIR)/timestamp
    BOMAIN := $(BODIR)/buildout.cfg
    BOCACHE := $(HOME)/.buildout/dlcache
    BOPARTS := $(BODIR)/parts
    BOSTATUS := $(BODIR)/status
    BOFLAGS := -c $(BOMAIN) \
               buildout:directory=$(TOPDIR) \
               buildout:parts-directory=$(BOPARTS) \
               buildout:download-cache=$(BOCACHE) \

    .PHONY: buildout
    buildout: $(BUILDOUT) $(BOTSTAMP)

    $(BUILDOUT): bootstrap.py
            mkdir -p $(BOCACHE)
            python bootstrap.py -t $(BOFLAGS)

            $(BUILDOUT) $(BOFLAGS)
            @touch $(BOTSTAMP)

            rm -f $(BOTSTAMP)

    realclean: clean
            rm -f $(BOSTATUS)

    distclean: realclean
            rm -rf $(BOPARTS) $(BINDIR) develop-eggs

Up to buildout version 1.6.0 this used to create a ``bin/buildout``
script under the top level directory (the ``buildout:directory`` option
is pointing to that directory).

This is not the case anymore: I tried with both 1.7.0b2 and with
2.0.0a5, and the ``buildout`` script is created inconditionally *below*
the ``buildout`` directory, that is ``buildout/bin/buildout``.

It seems a regression to me, but maybe I missing some other option that
controls the location...

thanks in advance for any hint,
ciao, lele.
nickname: Lele Gaifax | Quando vivrò di quello che ho pensato ieri
real: Emanuele Gaifas | comincerò ad aver paura di chi mi copia.
lele at metapensiero.it  |                 -- Fortunato Depero, 1929.

More information about the Distutils-SIG mailing list