[Distutils] Better version pinning in buildout (buildout-versions)

Marius Gedminas marius at pov.lt
Tue Jan 8 14:30:10 CET 2013

On Tue, Jan 08, 2013 at 08:02:56AM -0500, Jim Fulton wrote:
> On Tue, Jan 8, 2013 at 7:45 AM, Marius Gedminas <marius at pov.lt> wrote:
> ...
> > If backwards-compatibility weren't an consideration, I'd be tempted to
> > have buildout 2.0 hardcode the versions section name to [versions] and
> > have the append-new-versions code append a "\n\n[versions]\n" line if
> > necessary.
> >
> > That way you could say
> >
> >   [buildout]
> >   append-picked-versions = buildout.cfg
> >
> > and have it Just Work with no extra bootstrapping.
> It would work until someone added a new section at the end.

That's why I said "have the append-new-versions code append a [versions]
line if necessary"

> or
> If append-new-versions added a versions section
> if the last section wasn't a versions section, at which point
> you could end up with multiple versions sections spread
> over the file.

Yes.  Better than appending version pins to an unrelated section, where
they would be silently ignored as unknown option values.

> Having buildout modify a hand-edited file just seems like
> a Bad Idea to me.

I think of it as a tool that helps me update a hand-edited file.

I haven't decided whether it's a good idea or a Bad Idea to have a
buildout.cfg do that updating automatically.  Pros:

  - whenever you add a new dependency, you'll get a pin for it, so you
    never commit a version of a project with floating dependencies


  - if you decide that you want a certain dependency to float
    (pinning distribute caused weird failures on my buildbot, so I kept
    it floating), your buildbot keeps updating versions.cfg all the time
    and you need explicit svn revert steps to avoid merge conflicts on
    the next svn up.

Marius Gedminas
31337 is a prime number, go figure...
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: Digital signature
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20130108/d3fcdba1/attachment-0001.pgp>

More information about the Distutils-SIG mailing list