Op 11-01-13 17:30, Jim Fulton schreef:
I've just released zc.buildout-2.0.0a6.

The primary change in this release is that the configuration-file
syntax has changed:

- Relative indentation in option values is retained if the first
   line is blank. (IOW, if the non-blank text is on the continuation
   lines.) As in::

      [mysection]
      tree =
        /root
          /branch

   In such cases, internal blank lines are also retained.

- The configuration syntax is more tightly defined, allowing fewer
   syntax definitions.

   Buildout 1 configuration files were parsed with the Python
   ConfigParser module. The ConfigParser module's format is poorly
   documented and wildly flexible. For example:

   - Any characters other than left square brackets were allowed in
     section names.

   - Arbitrary text was allowed and ignored after the closing bracket on
     section header lines.

   - Any characters other than equal signs or colons were allowed in an
     option name.

   - Configuration options could be spelled as RFC 822 mail headers
     (using a colon, rather than an equal sign).

   - Comments could begin with "rem".

   - Semicolons could be used to start inline comments, but only if
     preceeded by a whitespace character.

See http://pypi.python.org/pypi/zc.buildout/2.0.0a6#configuration-file-syntax

This potentially the most controversial backward-incompatible
change in buildout 2, so try it out and let me know if the
changes present any serious problems.

It fails when the first non-comment line after a section (even an otherwise empty section) is blank. For example:

===============================
$ cat buildout.cfg
[buildout]

parts = hello
versions = versions

[versions]
# Add any version pins here.

[hello]

recipe = collective.recipe.cmd
on_install = true

on_update = true
cmds = echo Hello
===============================

For this file, three of the five empty lines give a problem:

===============================
$ bin/buildout
While:
  Initializing.

An internal error occured due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
File "/Users/mauritsvanrees/shared-eggs/zc.buildout-2.0.0a6-py2.7.egg/zc/buildout/buildout.py", line 1743, in main
    command, args)
File "/Users/mauritsvanrees/shared-eggs/zc.buildout-2.0.0a6-py2.7.egg/zc/buildout/buildout.py", line 202, in __init__
    data['buildout'].copy(), override, set()))
File "/Users/mauritsvanrees/shared-eggs/zc.buildout-2.0.0a6-py2.7.egg/zc/buildout/buildout.py", line 1384, in _open
    result = zc.buildout.configparser.parse(fp, filename)
File "/Users/mauritsvanrees/shared-eggs/zc.buildout-2.0.0a6-py2.7.egg/zc/buildout/configparser.py", line 153, in parse
    raise e
ParsingError: File contains parsing errors: /Users/mauritsvanrees/tmp/b22/buildout.cfg
        [line  2]: '\n'
        [line  8]: '\n'
        [line 10]: '\n'
===============================

These empty lines are not truly necessary, but they can make files more readable, so it would be good if buildout could be more forgiving here.


Other than that, my standard Plone buildout setup for clients, with several config files, finishes without error and seems to work fine. (Python 2.7, Mac OSX 10.8.2.)

Thanks!


--
Maurits van Rees: http://maurits.vanrees.org/
Zest Software: http://zestsoftware.nl

_______________________________________________
Distutils-SIG maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to