[Checkins] SVN: zc.buildout/branches/gary-betafix/ merge lp:~gary/zc.buildout/betafix8. merges trunk and simplifies the pattern for using newer versions of buildout, per review.
Gary Poster
gary.poster at canonical.com
Thu Aug 19 17:43:28 EDT 2010
Log message for revision 115815:
merge lp:~gary/zc.buildout/betafix8. merges trunk and simplifies the pattern for using newer versions of buildout, per review.
Changed:
U zc.buildout/branches/gary-betafix/CHANGES.txt
U zc.buildout/branches/gary-betafix/bootstrap/bootstrap.py
U zc.buildout/branches/gary-betafix/buildout.cfg
U zc.buildout/branches/gary-betafix/src/zc/buildout/bootstrap.txt
U zc.buildout/branches/gary-betafix/src/zc/buildout/buildout.py
U zc.buildout/branches/gary-betafix/src/zc/buildout/buildout.txt
U zc.buildout/branches/gary-betafix/src/zc/buildout/debugging.txt
U zc.buildout/branches/gary-betafix/src/zc/buildout/easy_install.py
U zc.buildout/branches/gary-betafix/src/zc/buildout/extends-cache.txt
U zc.buildout/branches/gary-betafix/src/zc/buildout/testing_bugfix.txt
U zc.buildout/branches/gary-betafix/src/zc/buildout/tests.py
U zc.buildout/branches/gary-betafix/src/zc/buildout/testselectingpython.py
U zc.buildout/branches/gary-betafix/src/zc/buildout/update.txt
U zc.buildout/branches/gary-betafix/z3c.recipe.scripts_/src/z3c/recipe/scripts/tests.py
U zc.buildout/branches/gary-betafix/zc.recipe.egg_/src/zc/recipe/egg/tests.py
-=-
Modified: zc.buildout/branches/gary-betafix/CHANGES.txt
===================================================================
--- zc.buildout/branches/gary-betafix/CHANGES.txt 2010-08-19 20:40:19 UTC (rev 115814)
+++ zc.buildout/branches/gary-betafix/CHANGES.txt 2010-08-19 21:43:27 UTC (rev 115815)
@@ -9,17 +9,23 @@
- zc.buildout supports Python 2.7.
- By default, Buildout and the bootstrap script now prefer final versions of
- Buildout, recipes, and extensions. This can be changed by setting
- ``prefer-final-build-system = false`` in your configuration's
- [buildout] section, and by using the --accept-early-release flag when
- calling bootstrap. This will hopefully allow beta releases to be more
- easily and safely made in the future. Note that dependencies of your
- software do not have this behavior: use the pre-existing switch
- ``prefer-final = true`` to get this behavior.
+ Buildout, recipes, and extensions. This can be changed by using the
+ --accept-buildout-test-releases flag (or -t for short) when calling
+ bootstrap. This will hopefully allow beta releases of these items to
+ be more easily and safely made in the future.
+ NOTE: dependencies of your own software are not affected by this new
+ behavior. Buildout continues to choose the newest available versions
+ of your dependencies regardless of whether they are final releases. To
+ prevent this, use the pre-existing switch ``prefer-final = true`` in
+ the [buildout] section of your configuration file (see
+ http://pypi.python.org/pypi/zc.buildout#preferring-final-releases) or
+ pin your versions using a versions section (see
+ http://pypi.python.org/pypi/zc.buildout#repeatable-buildouts-controlling-eggs-used).
+
Bugs fixed:
-- You can now again use virtualenv with zc.buildout. The new features to let
+- You can now again use virtualenv with Buildout. The new features to let
buildout be used with a system Python are disabled in this configuration,
and the previous script generation behavior (1.4.3) is used, even if
the new function ``zc.buildout.easy_install.sitepackage_safe_scripts``
@@ -77,6 +83,10 @@
* The buildout script generated by bootstrap honors more of the settings
in the designated configuration file (e.g., buildout.cfg).
+ * Correctly handle systems where pkg_resources is present but the rest of
+ setuptools is missing (like Ubuntu installs).
+ https://bugs.launchpad.net/zc.buildout/+bug/410528
+
- You can develop zc.buildout using Distribute instead of Setuptools. Use
the --distribute option on the dev.py script. (Releases should be tested
with both Distribute and Setuptools.) The tests for zc.buildout pass
@@ -532,7 +542,7 @@
- 92891: bootstrap crashes with recipe option in buildout section.
- 113085: Buildout exited with a zero exist status when internal errors
- occured.
+ occurred.
1.0.0b23 (2007-03-19)
Modified: zc.buildout/branches/gary-betafix/bootstrap/bootstrap.py
===================================================================
--- zc.buildout/branches/gary-betafix/bootstrap/bootstrap.py 2010-08-19 20:40:19 UTC (rev 115814)
+++ zc.buildout/branches/gary-betafix/bootstrap/bootstrap.py 2010-08-19 21:43:27 UTC (rev 115815)
@@ -16,8 +16,6 @@
Simply run this script in a directory containing a buildout.cfg.
The script accepts buildout command-line options, so you can
use the -c option to specify an alternate configuration file.
-
-$Id$
"""
import os, shutil, sys, tempfile, textwrap, urllib, urllib2, subprocess
@@ -121,17 +119,15 @@
help=("Specify a directory for storing eggs. Defaults to "
"a temporary directory that is deleted when the "
"bootstrap script completes."))
-parser.add_option("--accept-early-release", dest='accept_early_release',
+parser.add_option("-t", "--accept-buildout-test-releases",
+ dest='accept_buildout_test_releases',
action="store_true", default=False,
help=("Normally, if you do not specify a --version, the "
- "bootstrap script gets the newest *final* versions "
- "of zc.buildout for you. If you use this flag, "
- "bootstrap will get the newest releases even if they "
- "are alphas or betas. Note that, if you do want to "
- "use early buildout releases, you probably want "
- "to also set ``prefer-final-build-system= false`` "
- "in the [buildout] section of your configuration "
- "file."))
+ "bootstrap script and buildout gets the newest "
+ "*final* versions of zc.buildout and its recipes and "
+ "extensions for you. If you use this flag, "
+ "bootstrap and buildout will get the newest releases "
+ "even if they are alphas or betas."))
parser.add_option("-c", None, action="store", dest="config_file",
help=("Specify the path to the buildout configuration "
"file to be used."))
@@ -153,16 +149,15 @@
else:
options.setup_source = setuptools_source
-args = args + ['bootstrap']
+if options.accept_buildout_test_releases:
+ args.append('buildout:accept-buildout-test-releases=true')
+args.append('bootstrap')
-
try:
- to_reload = False
import pkg_resources
- to_reload = True
+ import setuptools # A flag. Sometimes pkg_resources is installed alone.
if not hasattr(pkg_resources, '_distribute'):
raise ImportError
- import setuptools # A flag. Sometimes pkg_resources is installed alone.
except ImportError:
ez_code = urllib2.urlopen(
options.setup_source).read().replace('\r\n', '\n')
@@ -174,10 +169,8 @@
if options.use_distribute:
setup_args['no_fake'] = True
ez['use_setuptools'](**setup_args)
- if to_reload:
- reload(pkg_resources)
- else:
- import pkg_resources
+ reload(sys.modules['pkg_resources'])
+ import pkg_resources
# This does not (always?) update the default working set. We will
# do it.
for path in sys.path:
@@ -212,7 +205,7 @@
requirement = 'zc.buildout'
version = options.version
-if version is None and not options.accept_early_release:
+if version is None and not options.accept_buildout_test_releases:
# Figure out the most recent final version of zc.buildout.
import setuptools.package_index
_final_parts = '*final-', '*final'
@@ -252,7 +245,7 @@
if exitcode != 0:
sys.stdout.flush()
sys.stderr.flush()
- print ("An error occured when trying to install zc.buildout. "
+ print ("An error occurred when trying to install zc.buildout. "
"Look above this message for any errors that "
"were output by easy_install.")
sys.exit(exitcode)
Modified: zc.buildout/branches/gary-betafix/src/zc/buildout/bootstrap.txt
===================================================================
--- zc.buildout/branches/gary-betafix/src/zc/buildout/bootstrap.txt 2010-08-19 20:40:19 UTC (rev 115814)
+++ zc.buildout/branches/gary-betafix/src/zc/buildout/bootstrap.txt 2010-08-19 21:43:27 UTC (rev 115815)
@@ -93,23 +93,14 @@
specify an explicit version (using --version here and specifying the
version in the buildout configuration file using the
``buildout-version`` option or the ``versions`` option) or specify that you
-accept early releases.
+accept early releases by using ``--accept-buildout-test-releases`` on the
+bootstrap script.
-You accept early releases by using ``--accept-early-release`` on the
-bootstrap script and specifying ``prefer-final-build-system = false`` in the
-buildout configuration file. You must do both.
-
Here's an example.
- >>> write('buildout.cfg',
- ... '''
- ... [buildout]
- ... parts =
- ... prefer-final-build-system = false
- ... ''')
>>> ignored = system(
... zc.buildout.easy_install._safe_arg(sys.executable)+' '+
- ... 'bootstrap.py --accept-early-release')
+ ... 'bootstrap.py --accept-buildout-test-releases')
>>> print open(buildout_site_py).read() # doctest: +ELLIPSIS
"...
buildout_paths = [
@@ -120,14 +111,42 @@
Notice we are now using zc.buildout 100.0b1, a non-final release.
-Now we'll go back to the default of preferring final versions.
+The buildout script remembers the decision to accept early releases, and
+alerts the user.
- >>> write('buildout.cfg',
- ... '''
- ... [buildout]
- ... parts =
- ... ''')
+ >>> print system(join('bin', 'buildout')),
+ ... # doctest: +NORMALIZE_WHITESPACE
+ NOTE: Accepting early releases of build system packages. Rerun bootstrap
+ without --accept-buildout-test-releases (-t) to return to default
+ behavior.
+This is accomplished within the script itself.
+
+ >>> print open(buildout_script).read() # doctest: +ELLIPSIS
+ #...
+ sys.argv.insert(1, 'buildout:accept-buildout-test-releases=true')
+ print ('NOTE: Accepting early releases of build system packages. Rerun '
+ 'bootstrap without --accept-buildout-test-releases (-t) to return to '
+ 'default behavior.')
+ ...
+
+As the note says, to undo, you just need to re-run bootstrap without
+--accept-buildout-test-releases.
+
+ >>> ignored = system(
+ ... zc.buildout.easy_install._safe_arg(sys.executable)+' '+
+ ... 'bootstrap.py')
+ >>> print open(buildout_site_py).read() # doctest: +ELLIPSIS
+ "...
+ buildout_paths = [
+ '/sample/eggs/setuptools-...egg',
+ '/sample/eggs/zc.buildout-99.99-pyN.N.egg'
+ ]
+ ...
+ >>> ('buildout:accept-buildout-test-releases=true' in
+ ... open(buildout_script).read())
+ False
+
Now we will try the `--version` option, which lets you define a version for
`zc.buildout`. If not provided, bootstrap will look for the latest one.
@@ -329,14 +348,12 @@
--eggs=EGGS Specify a directory for storing eggs. Defaults to a
temporary directory that is deleted when the bootstrap
script completes.
- --accept-early-release
+ -t, --accept-buildout-test-releases
Normally, if you do not specify a --version, the
- bootstrap script gets the newest *final* versions of
- zc.buildout for you. If you use this flag, bootstrap
+ bootstrap script and buildout gets the newest *final*
+ versions of zc.buildout and its recipes and extensions
+ for you. If you use this flag, bootstrap and buildout
will get the newest releases even if they are alphas
- or betas. Note that, if you do want to use early
- buildout releases, you probably want to also set
- ``prefer-final-build-system= false`` in the [buildout]
- section of your configuration file.
+ or betas.
-c CONFIG_FILE Specify the path to the buildout configuration file to
be used.
Modified: zc.buildout/branches/gary-betafix/src/zc/buildout/buildout.py
===================================================================
--- zc.buildout/branches/gary-betafix/src/zc/buildout/buildout.py 2010-08-19 20:40:19 UTC (rev 115814)
+++ zc.buildout/branches/gary-betafix/src/zc/buildout/buildout.py 2010-08-19 21:43:27 UTC (rev 115815)
@@ -116,6 +116,7 @@
return data
_buildout_default_options = _annotate_section({
+ 'accept-buildout-test-releases': 'false',
'allow-hosts': '*',
'allow-picked-versions': 'true',
'bin-directory': 'bin',
@@ -131,7 +132,6 @@
'offline': 'false',
'parts-directory': 'parts',
'prefer-final': 'false',
- 'prefer-final-build-system': 'true',
'python': 'buildout',
'relative-paths': 'false',
'socket-timeout': '',
@@ -235,8 +235,8 @@
self._logger = logging.getLogger('zc.buildout')
self.offline = (buildout_section['offline'] == 'true')
self.newest = (buildout_section['newest'] == 'true')
- self.prefer_final_build_system = (
- buildout_section['prefer-final-build-system'] == 'true')
+ self.accept_buildout_test_releases = (
+ buildout_section['accept-buildout-test-releases'] == 'true')
##################################################################
## WARNING!!!
@@ -281,8 +281,8 @@
self.newest = options.get_bool('newest')
zc.buildout.easy_install.prefer_final(
options.get_bool('prefer-final'))
- self.prefer_final_build_system = options.get_bool(
- 'prefer-final-build-system')
+ self.accept_buildout_test_releases = options.get_bool(
+ 'accept-buildout-test-releases')
zc.buildout.easy_install.use_dependency_links(
options.get_bool('use-dependency-links'))
zc.buildout.easy_install.allow_picked_versions(
@@ -338,7 +338,7 @@
[options['develop-eggs-directory'],
options['eggs-directory']],
include_site_packages=_sys_executable_has_broken_dash_S,
- prefer_final = self.prefer_final_build_system,
+ prefer_final=not self.accept_buildout_test_releases,
)
else:
ws = zc.buildout.easy_install.install(
@@ -350,7 +350,7 @@
newest=self.newest,
allow_hosts=self._allow_hosts,
include_site_packages=_sys_executable_has_broken_dash_S,
- prefer_final = self.prefer_final_build_system,
+ prefer_final=not self.accept_buildout_test_releases,
)
# Now copy buildout and setuptools eggs, and record destination eggs:
@@ -373,7 +373,9 @@
else:
shutil.copy2(dist.location, dest)
- # Create buildout script
+ # Create buildout script.
+ # Ideally the (possibly) new version of buildout would get a
+ # chance to write the script. Not sure how to do that.
ws = pkg_resources.WorkingSet(entries)
ws.require('zc.buildout')
partsdir = os.path.join(options['parts-directory'], 'buildout')
@@ -386,12 +388,19 @@
else:
assert relative_paths == 'false'
relative_paths = ''
- # Ideally the (possibly) new version of buildout would get a
- # chance to write the script. Not sure how to do that.
+ if (self.accept_buildout_test_releases and
+ self._annotated['buildout']['accept-buildout-test-releases'][1] ==
+ 'COMMAND_LINE_VALUE'):
+ # Bootstrap was called with '--accept-buildout-test-releases'.
+ # Continue to honor that setting.
+ script_initialization = _early_release_initialization_code
+ else:
+ script_initialization = ''
zc.buildout.easy_install.sitepackage_safe_scripts(
options['bin-directory'], ws, options['executable'], partsdir,
reqs=['zc.buildout'], relative_paths=relative_paths,
- include_site_packages=_sys_executable_has_broken_dash_S)
+ include_site_packages=_sys_executable_has_broken_dash_S,
+ script_initialization=script_initialization,)
init = bootstrap
@@ -838,7 +847,7 @@
path = [options['develop-eggs-directory']],
allow_hosts = self._allow_hosts,
include_site_packages=_sys_executable_has_broken_dash_S,
- prefer_final=self.prefer_final_build_system,
+ prefer_final=not self.accept_buildout_test_releases,
)
upgraded = []
@@ -886,18 +895,27 @@
# the new dist is different, so we've upgraded.
# Update the scripts and return True
+ # Ideally the new version of buildout would get a chance to write the
+ # script. Not sure how to do that.
partsdir = os.path.join(options['parts-directory'], 'buildout')
if os.path.exists(partsdir):
# This is primarily for unit tests, in which .py files change too
# fast for Python to know to regenerate the .pyc/.pyo files.
shutil.rmtree(partsdir)
os.mkdir(partsdir)
- # Ideally the new version of buildout would get a chance to write the
- # script. Not sure how to do that.
+ if (self.accept_buildout_test_releases and
+ self._annotated['buildout']['accept-buildout-test-releases'][1] ==
+ 'COMMAND_LINE_VALUE'):
+ # Bootstrap was called with '--accept-buildout-test-releases'.
+ # Continue to honor that setting.
+ script_initialization = _early_release_initialization_code
+ else:
+ script_initialization = ''
zc.buildout.easy_install.sitepackage_safe_scripts(
options['bin-directory'], ws, sys.executable, partsdir,
reqs=['zc.buildout'],
- include_site_packages=_sys_executable_has_broken_dash_S)
+ include_site_packages=_sys_executable_has_broken_dash_S,
+ script_initialization=script_initialization)
# Restart
args = map(zc.buildout.easy_install._safe_arg, sys.argv)
@@ -939,7 +957,7 @@
index = self['buildout'].get('index'),
newest=self.newest, allow_hosts=self._allow_hosts,
include_site_packages=_sys_executable_has_broken_dash_S,
- prefer_final=self.prefer_final_build_system)
+ prefer_final=not self.accept_buildout_test_releases)
# Clear cache because extensions might now let us read pages we
# couldn't read before.
@@ -1055,7 +1073,7 @@
newest=buildout.newest,
allow_hosts=buildout._allow_hosts,
include_site_packages=_sys_executable_has_broken_dash_S,
- prefer_final=buildout.prefer_final_build_system)
+ prefer_final=not buildout.accept_buildout_test_releases)
__doing__ = 'Loading %s recipe entry %s:%s.', group, spec, entry
return pkg_resources.load_entry_point(
@@ -1514,7 +1532,7 @@
sys.exit(1)
_internal_error_template = """
-An internal error occured due to a bug in either zc.buildout or in a
+An internal error occurred due to a bug in either zc.buildout or in a
recipe being used:
"""
@@ -1526,6 +1544,13 @@
% (section, ' '.join(map(repr, unused)))
)
+_early_release_initialization_code = """\
+sys.argv.insert(1, 'buildout:accept-buildout-test-releases=true')
+print ('NOTE: Accepting early releases of build system packages. Rerun '
+ 'bootstrap without --accept-buildout-test-releases (-t) to return to '
+ 'default behavior.')
+"""
+
_usage = """\
Usage: buildout [options] [assignments] [command [command arguments]]
Modified: zc.buildout/branches/gary-betafix/src/zc/buildout/buildout.txt
===================================================================
--- zc.buildout/branches/gary-betafix/src/zc/buildout/buildout.txt 2010-08-19 20:40:19 UTC (rev 115814)
+++ zc.buildout/branches/gary-betafix/src/zc/buildout/buildout.txt 2010-08-19 21:43:27 UTC (rev 115815)
@@ -463,7 +463,7 @@
While:
Installing data-dir.
<BLANKLINE>
- An internal error occured due to a bug in either zc.buildout or in a
+ An internal error occurred due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
...
@@ -495,7 +495,7 @@
While:
Installing data-dir.
<BLANKLINE>
- An internal error occured due to a bug in either zc.buildout or in a
+ An internal error occurred due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
...
@@ -572,7 +572,7 @@
While:
Installing data-dir.
<BLANKLINE>
- An internal error occured due to a bug in either zc.buildout or in a
+ An internal error occurred due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
...
@@ -653,7 +653,7 @@
While:
Installing data-dir.
<BLANKLINE>
- An internal error occured due to a bug in either zc.buildout or in a
+ An internal error occurred due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
...
@@ -729,6 +729,8 @@
==================
<BLANKLINE>
[buildout]
+ accept-buildout-test-releases= false
+ DEFAULT_VALUE
allow-hosts= *
DEFAULT_VALUE
allow-picked-versions= true
@@ -765,8 +767,6 @@
DEFAULT_VALUE
prefer-final= false
DEFAULT_VALUE
- prefer-final-build-system= true
- DEFAULT_VALUE
python= buildout
DEFAULT_VALUE
relative-paths= false
@@ -1014,7 +1014,7 @@
---------------------------
A section (other than the buildout section) can extend one or more
-other sections using the ``<`` option. Options from the referenced
+other sections using the ``<=`` option. Options from the referenced
sections are copied to the refering section *before* variable
substitution. This, together with the ability to refer to variables
of the current section allows sections to be used as macros.
@@ -2229,6 +2229,7 @@
<BLANKLINE>
Configuration data:
[buildout]
+ accept-buildout-test-releases = false
allow-hosts = *
allow-picked-versions = true
bin-directory = /sample-buildout/bin
@@ -2246,7 +2247,6 @@
parts =
parts-directory = /sample-buildout/parts
prefer-final = false
- prefer-final-build-system = true
python = buildout
relative-paths = false
socket-timeout =
@@ -2502,20 +2502,19 @@
releases that satisfy distribution requirements, then those releases
are used even if newer non-final releases are available.
-A separate option controls the behavior of the build system itself.
-When buildout looks for recipes, extensions, and for updates to itself,
-it does prefer final releases by default, as of the 1.5.0 release. The
-``prefer-final-build-system`` option will let you override this behavior.
-
- [buildout]
- ...
- prefer-final-build-system = false
-
In buildout version 2, all final releases will be preferred by
default--that is ``prefer-final`` will also default to 'true'. You will
then need to use a 'false' value for ``prefer-final`` to get the newest
-releases, like with ``prefer-final-build-system``.
+releases.
+A separate option controls the behavior of the build system itself.
+When buildout looks for recipes, extensions, and for updates to itself,
+it does prefer final releases by default, as of the 1.5.0 release. The
+``accept-buildout-test-releases`` option will let you override this behavior.
+However, it is typically changed by the --accept-buildout-test-releases
+option to the bootstrap script, since bootstrapping is the first step to
+selecting a buildout.
+
Finding distributions
---------------------
Modified: zc.buildout/branches/gary-betafix/src/zc/buildout/debugging.txt
===================================================================
--- zc.buildout/branches/gary-betafix/src/zc/buildout/debugging.txt 2010-08-19 20:40:19 UTC (rev 115814)
+++ zc.buildout/branches/gary-betafix/src/zc/buildout/debugging.txt 2010-08-19 21:43:27 UTC (rev 115815)
@@ -5,12 +5,12 @@
always obvious why. Errors can occur due to problems in user input or
due to bugs in zc.buildout or recipes. When an error occurs, Python's
post-mortem debugger can be used to inspect the state of the buildout
-or recipe code were there error occured. To enable this, use the -D
+or recipe code where the error occurred. To enable this, use the -D
option to the buildout. Let's create a recipe that has a bug:
>>> mkdir(sample_buildout, 'recipes')
- >>> write(sample_buildout, 'recipes', 'mkdir.py',
+ >>> write(sample_buildout, 'recipes', 'mkdir.py',
... """
... import os, zc.buildout
...
@@ -35,7 +35,7 @@
>>> write(sample_buildout, 'recipes', 'setup.py',
... """
... from setuptools import setup
- ...
+ ...
... setup(name = "recipes",
... entry_points = {'zc.buildout': ['mkdir = mkdir:Mkdir']},
... )
Modified: zc.buildout/branches/gary-betafix/src/zc/buildout/easy_install.py
===================================================================
--- zc.buildout/branches/gary-betafix/src/zc/buildout/easy_install.py 2010-08-19 20:40:19 UTC (rev 115814)
+++ zc.buildout/branches/gary-betafix/src/zc/buildout/easy_install.py 2010-08-19 21:43:27 UTC (rev 115815)
@@ -577,7 +577,7 @@
if exit_code:
logger.error(
- "An error occured when trying to install %s. "
+ "An error occurred when trying to install %s. "
"Look above this message for any errors that "
"were output by easy_install.",
dist)
Modified: zc.buildout/branches/gary-betafix/src/zc/buildout/extends-cache.txt
===================================================================
--- zc.buildout/branches/gary-betafix/src/zc/buildout/extends-cache.txt 2010-08-19 20:40:19 UTC (rev 115814)
+++ zc.buildout/branches/gary-betafix/src/zc/buildout/extends-cache.txt 2010-08-19 21:43:27 UTC (rev 115815)
@@ -383,7 +383,7 @@
While:
Installing.
Checking for upgrades.
-An internal error occured ...
+An internal error occurred ...
ValueError: install_from_cache set to true with no download cache
Modified: zc.buildout/branches/gary-betafix/src/zc/buildout/tests.py
===================================================================
--- zc.buildout/branches/gary-betafix/src/zc/buildout/tests.py 2010-08-19 20:40:19 UTC (rev 115814)
+++ zc.buildout/branches/gary-betafix/src/zc/buildout/tests.py 2010-08-19 21:43:27 UTC (rev 115815)
@@ -1442,7 +1442,7 @@
Getting section data-dir.
Initializing part data-dir.
<BLANKLINE>
- An internal error occured due to a bug in either zc.buildout or in a
+ An internal error occurred due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
...
@@ -2615,7 +2615,7 @@
Initializing section x.
Loading zc.buildout recipe entry zc.buildout.testexit:default.
<BLANKLINE>
- An internal error occured due to a bug in either zc.buildout or in a
+ An internal error occurred due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
...
@@ -3128,9 +3128,11 @@
def buildout_prefer_final_build_system_option():
"""
-The prefer-final-build-system buildout option can be used for overriding
+The accept-buildout-test-releases buildout option can be used for overriding
the default preference for final distributions for recipes, buildout
-extensions, and buildout itself.
+extensions, and buildout itself. It is usually controlled via the bootstrap
+script rather than in the configuration file, but we will test the machinery
+using the file.
Set up. This creates sdists for demorecipe 1.0 and 1.1b1, and for
demoextension 1.0 and 1.1b1.
@@ -3138,7 +3140,7 @@
>>> create_sample_recipe_sdists(sample_eggs)
>>> create_sample_extension_sdists(sample_eggs)
-The default is prefer-final-build-system = true:
+The default is accept-buildout-test-releases = false:
>>> write('buildout.cfg',
... '''
@@ -3161,7 +3163,7 @@
Here we see that the final versions of demorecipe and demoextension were used.
We get the same behavior if we explicitly state that
-prefer-final-build-system = true.
+accept-buildout-test-releases = false.
>>> write('buildout.cfg',
... '''
@@ -3169,7 +3171,7 @@
... parts = demo
... find-links = %(link_server)s
... extensions = demoextension
- ... prefer-final-build-system = true
+ ... accept-buildout-test-releases = false
...
... [demo]
... recipe = demorecipe
@@ -3182,7 +3184,7 @@
Picked: demorecipe = 1.0
...
-If we specify prefer-final-build-system = false, we'll get the newest
+If we specify accept-buildout-test-releases = true, we'll get the newest
distributions in the build system:
>>> write('buildout.cfg',
@@ -3191,7 +3193,7 @@
... parts = demo
... find-links = %(link_server)s
... extensions = demoextension
- ... prefer-final-build-system = false
+ ... accept-buildout-test-releases = true
...
... [demo]
... recipe = demorecipe
@@ -3212,7 +3214,7 @@
... parts = demo
... find-links = %(link_server)s
... extensions = demoextension
- ... prefer-final-build-system = no
+ ... accept-buildout-test-releases = no
...
... [demo]
... recipe = demorecipe
@@ -3221,7 +3223,7 @@
>>> print system(buildout+' -v'), # doctest: +ELLIPSIS
While:
Initializing.
- Error: Invalid value for prefer-final-build-system option: no
+ Error: Invalid value for accept-buildout-test-releases option: no
"""
Modified: zc.buildout/branches/gary-betafix/src/zc/buildout/update.txt
===================================================================
--- zc.buildout/branches/gary-betafix/src/zc/buildout/update.txt 2010-08-19 20:40:19 UTC (rev 115814)
+++ zc.buildout/branches/gary-betafix/src/zc/buildout/update.txt 2010-08-19 21:43:27 UTC (rev 115815)
@@ -81,8 +81,10 @@
Notice that, even though we have a newer beta version of zc.buildout
available, the final "99.99" was selected. If you want to get non-final
-versions, specify a specific version in your buildout's versions section,
-or use the ``prefer-final-build-system = false`` discussed below.
+versions, specify a specific version in your buildout's versions
+section, you typically want to use the --accept-buildout-test-releases
+option to the bootstrap script, which internally uses the
+``accept-buildout-test-releases = true`` discussed below.
Our buildout script's site.py has been updated to use the new eggs:
@@ -194,10 +196,15 @@
>>> ls('bin')
-Notice that, as mentioned above, the ``prefer-final-build-system =
-false`` means that newer non-final versions of these dependencies are
-preferred.
+As mentioned above, the ``accept-buildout-test-releases = true`` means that
+newer non-final versions of these dependencies are preferred. Typically
+users are not expected to actually manipulate this value. Instead, the
+bootstrap script creates a buildout buildout script that passes in the
+value as a command line override. This then results in the buildout
+script being rewritten to remember the decision.
+We'll mimic this by passing the argument actually in the command line.
+
>>> cd(sample_buildout)
>>> write(sample_buildout, 'buildout.cfg',
... """
@@ -206,20 +213,39 @@
... index = %(new_releases)s
... parts = show-versions
... develop = showversions
- ... prefer-final-build-system = false
...
... [show-versions]
... recipe = showversions
... """ % dict(new_releases=new_releases))
- >>> print system(buildout),
+ >>> print system(buildout +
+ ... ' buildout:accept-buildout-test-releases=true'),
+ ... # doctest: +NORMALIZE_WHITESPACE
Getting distribution for 'zc.buildout'.
Got zc.buildout 100.0b1.
Upgraded:
zc.buildout version 100.0b1,
setuptools version 99.99;
restarting.
+ Generated script '/sample-buildout/bin/buildout'.
+ NOTE: Accepting early releases of build system packages. Rerun bootstrap
+ without --accept-buildout-test-releases (-t) to return to default
+ behavior.
Develop: '/sample-buildout/showversions'
Updating show-versions.
zc.buildout 100.0b1
setuptools 99.99
+
+The buildout script shows the change.
+
+ >>> buildout_script = join(sample_buildout, 'bin', 'buildout')
+ >>> import sys
+ >>> if sys.platform.startswith('win'):
+ ... buildout_script += '-script.py'
+ >>> print open(buildout_script).read() # doctest: +ELLIPSIS
+ #...
+ sys.argv.insert(1, 'buildout:accept-buildout-test-releases=true')
+ print ('NOTE: Accepting early releases of build system packages. Rerun '
+ 'bootstrap without --accept-buildout-test-releases (-t) to return to '
+ 'default behavior.')
+ ...
More information about the checkins
mailing list