Commit 3af72fe6 authored by Godefroid Chapelle's avatar Godefroid Chapelle

Add option to pin setuptools version

parent 1fb55060
...@@ -59,6 +59,7 @@ parser.add_option("-f", "--find-links", ...@@ -59,6 +59,7 @@ parser.add_option("-f", "--find-links",
parser.add_option("--allow-site-packages", parser.add_option("--allow-site-packages",
action="store_true", default=False, action="store_true", default=False,
help=("Let bootstrap.py use existing site packages")) help=("Let bootstrap.py use existing site packages"))
parser.add_option("--setuptools-version", help="use a specific setuptools version")
options, args = parser.parse_args() options, args = parser.parse_args()
...@@ -89,6 +90,10 @@ if not options.allow_site_packages: ...@@ -89,6 +90,10 @@ if not options.allow_site_packages:
sys.path[:] = [x for x in sys.path if sitepackage_path not in x] sys.path[:] = [x for x in sys.path if sitepackage_path not in x]
setup_args = dict(to_dir=tmpeggs, download_delay=0) setup_args = dict(to_dir=tmpeggs, download_delay=0)
if not options.setuptools_version is None:
setup_args['version'] = options.setuptools_version
ez['use_setuptools'](**setup_args) ez['use_setuptools'](**setup_args)
import setuptools import setuptools
import pkg_resources import pkg_resources
......
...@@ -89,3 +89,41 @@ Let's make sure the generated `buildout` script uses it:: ...@@ -89,3 +89,41 @@ Let's make sure the generated `buildout` script uses it::
'/sample/eggs/setuptools-...egg', '/sample/eggs/setuptools-...egg',
'/sample/eggs/zc.buildout-2.0.0...egg', '/sample/eggs/zc.buildout-2.0.0...egg',
]... ]...
Now trying the `--setuptools-version` option, that let you define a version for
`setuptools`.
Now let's try with `5.3`, which happens to exist::
>>> print_('X'); print_(system(
... zc.buildout.easy_install._safe_arg(sys.executable)+' '+
... 'bootstrap.py --setuptools-version 5.3')); print_('X')
... # doctest: +ELLIPSIS
X...Generated script '/sample/bin/buildout'...X
Let's make sure the generated `buildout` script uses it::
>>> print_(open(buildout_script).read()) # doctest: +ELLIPSIS
#...
sys.path[0:0] = [
'/sample/eggs/setuptools-5.3...egg',
'/sample/eggs/zc.buildout-...egg',
]...
Now let's try specifying both `zc.buildout` and `setuptools` to versions
which happens to exist::
>>> print_('X'); print_(system(
... zc.buildout.easy_install._safe_arg(sys.executable)+' '+
... 'bootstrap.py --setuptools-version 5.3 --version 2.0.0')); print_('X')
... # doctest: +ELLIPSIS
X...Generated script '/sample/bin/buildout'...X
Let's make sure the generated `buildout` script uses it::
>>> print_(open(buildout_script).read()) # doctest: +ELLIPSIS
#...
sys.path[0:0] = [
'/sample/eggs/setuptools-5.3...egg',
'/sample/eggs/zc.buildout-2.0.0...egg',
]...
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment