Merge lp:~cjwatson/txpkgupload/pip into lp:~lazr-developers/txpkgupload/trunk

Proposed by Colin Watson
Status: Merged
Merged at revision: 27
Proposed branch: lp:~cjwatson/txpkgupload/pip
Merge into: lp:~lazr-developers/txpkgupload/trunk
Diff against target: 700 lines (+103/-516)
10 files modified
.bzrignore (+1/-5)
MANIFEST.in (+2/-4)
Makefile (+52/-75)
_bootstrap/COPYRIGHT.txt (+0/-9)
_bootstrap/LICENSE.txt (+0/-54)
_bootstrap/bootstrap.py (+0/-277)
bootstrap-requirements.txt (+3/-0)
buildout.cfg (+0/-33)
requirements.txt (+45/-0)
versions.cfg (+0/-59)
To merge this branch: bzr merge lp:~cjwatson/txpkgupload/pip
Reviewer Review Type Date Requested Status
Kit Randel (community) Approve
Review via email: mp+277520@code.launchpad.net

Commit message

Convert from buildout to pip.

Description of the change

Convert from buildout to pip. This will make it easier to upgrade to newer testtools/Twisted releases.

Before deploying this, we'll need to make sure that virtualenv is installed on pepo and haetae, by way of meta-lp-deps changes.

To post a comment you must log in.
Revision history for this message
Kit Randel (blr) :
review: Approve
lp:~cjwatson/txpkgupload/pip updated
27. By Colin Watson

Merge trunk.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file '.bzrignore'
--- .bzrignore 2015-01-09 15:55:08 +0000
+++ .bzrignore 2015-11-17 13:24:41 +0000
@@ -1,13 +1,9 @@
1bin1bin
2develop-eggs
3download-cache2download-cache
4eggs3env
5.installed.cfg
6parts
7*.egg-info4*.egg-info
8tags5tags
9TAGS6TAGS
10build
11*.egg7*.egg
12dist8dist
13src/twisted/plugins/dropin.cache9src/twisted/plugins/dropin.cache
1410
=== modified file 'MANIFEST.in'
--- MANIFEST.in 2015-01-13 11:15:52 +0000
+++ MANIFEST.in 2015-11-17 13:24:41 +0000
@@ -2,7 +2,5 @@
2include src/txpkgupload/tests/txpkgupload-sftp2include src/txpkgupload/tests/txpkgupload-sftp
3include src/txpkgupload/tests/txpkgupload-sftp.pub3include src/txpkgupload/tests/txpkgupload-sftp.pub
4graft etc4graft etc
5exclude MANIFEST.in Makefile buildout.cfg bootstrap.py .bzrignore5exclude MANIFEST.in Makefile .bzrignore
6prune _bootstrap6prune env
7prune eggs
8prune parts
97
=== modified file 'Makefile'
--- Makefile 2015-01-13 17:19:01 +0000
+++ Makefile 2015-11-17 13:24:41 +0000
@@ -1,92 +1,69 @@
1# Copyright 2005-2015 Canonical Ltd. This software is licensed under the1# Copyright 2005-2015 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4PYTHON = python4ENV = $(CURDIR)/env
55
6BOOTSTRAP_BIN := bootstrap.py6PIP_ARGS := \
7BOOTSTRAP = PYTHONPATH= $(PYTHON) $(BOOTSTRAP_BIN)7 -q \
88 --no-index \
9BUILDOUT_BIN := bin/buildout9 --find-links=file://$(CURDIR)/download-cache/dist
10BUILDOUT_CFG := buildout.cfg10
11BUILDOUT = PYTHONPATH= $(BUILDOUT_BIN) -qc $(BUILDOUT_CFG)11PYTHON = $(ENV)/bin/python
12TWISTD = $(ENV)/bin/twistd
1213
1314
14default: check15default: check
1516
1617
17compile: bin/twistd18compile: $(ENV)
1819
1920
20# When a built tree is moved this updates absolute paths.21check: $(ENV)
21build-update-paths:22 $(PYTHON) -m unittest discover src
22 $(BUILDOUT)23
2324
2425dist:
25check: bin/test26 python setup.py sdist
26 bin/test27
2728
2829TAGS:
29dist: $(BUILDOUT_BIN)30 ctags -e -R src
30 $(BUILDOUT) setup setup.py egg_info -r sdist31
3132
3233tags:
33TAGS: bin/tags34 ctags -R src
34 bin/tags --ctags-emacs
35
36
37tags: bin/tags
38 bin/tags --ctags-vi
3935
4036
41download-cache:37download-cache:
42 mkdir -p download-cache38ifeq ($(PIP_SOURCE_DIR),)
4339 @echo "Set PIP_SOURCE_DIR to the path of a checkout of" >&2
4440 @echo "lp:lp-source-dependencies." >&2
45eggs:41 @exit 1
46 mkdir -p eggs42endif
4743 ln -nsf $(PIP_SOURCE_DIR) download-cache
4844
49$(BUILDOUT_BIN): download-cache eggs45
50 $(BOOTSTRAP) \46$(ENV): download-cache
51 --setup-source=download-cache/dist/ez_setup.py \47 mkdir -p $(ENV)
52 --download-base=download-cache/dist \48 (echo '[easy_install]'; \
53 --eggs=eggs --version=1.5.249 echo "allow_hosts = ''"; \
54 touch --no-create $@50 echo 'find_links = file://$(CURDIR)/download-cache/dist/') \
5551 >$(ENV)/.pydistutils.cfg
5652 VIRTUALENV_SETUPTOOLS=1 virtualenv $(ENV)
57bin/twistd: $(BUILDOUT_BIN) $(BUILDOUT_CFG) setup.py53 $(ENV)/bin/pip install $(PIP_ARGS) -r bootstrap-requirements.txt
58 $(BUILDOUT) install runtime54 $(ENV)/bin/pip install $(PIP_ARGS) -r requirements.txt -e .
5955 $(ENV)/bin/python -m compileall -q src
6056 ln -nsf $(ENV)/bin bin
61bin/test: $(BUILDOUT_BIN) $(BUILDOUT_CFG) setup.py57
62 $(BUILDOUT) install test58
6359clean_pip:
64
65bin/tags: $(BUILDOUT_BIN) $(BUILDOUT_CFG) setup.py
66 $(BUILDOUT) install tags
67
68
69clean_buildout:
70 $(RM) -r bin60 $(RM) -r bin
71 $(RM) -r parts61 $(RM) -r $(ENV)
72 $(RM) -r develop-eggs
73 $(RM) .installed.cfg
74 $(RM) -r build
75 $(RM) -r dist62 $(RM) -r dist
7663
7764
78clean_eggs:65clean: clean_pip
79 $(RM) -r download-cache
80 $(RM) -r *.egg-info
81 $(RM) -r eggs
82
83
84clean: clean_buildout
85 find src -name '*.py[co]' -print0 | xargs -r0 $(RM)66 find src -name '*.py[co]' -print0 | xargs -r0 $(RM)
8667
87clean_all: clean_buildout clean_eggs68
8869.PHONY: compile check clean clean_pip default dist
89
90.PHONY: \
91 compile build-update-paths check clean clean_all clean_buildout \
92 clean_eggs default dist
9370
=== removed directory '_bootstrap'
=== removed file '_bootstrap/COPYRIGHT.txt'
--- _bootstrap/COPYRIGHT.txt 2015-01-06 12:03:45 +0000
+++ _bootstrap/COPYRIGHT.txt 1970-01-01 00:00:00 +0000
@@ -1,9 +0,0 @@
1Copyright (c) 2004-2009 Zope Corporation and Contributors.
2All Rights Reserved.
3
4This software is subject to the provisions of the Zope Public License,
5Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
6THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
7WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
8WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
9FOR A PARTICULAR PURPOSE.
100
=== removed file '_bootstrap/LICENSE.txt'
--- _bootstrap/LICENSE.txt 2015-01-06 12:03:45 +0000
+++ _bootstrap/LICENSE.txt 1970-01-01 00:00:00 +0000
@@ -1,54 +0,0 @@
1Zope Public License (ZPL) Version 2.1
2-------------------------------------
3
4A copyright notice accompanies this license document that
5identifies the copyright holders.
6
7This license has been certified as open source. It has also
8been designated as GPL compatible by the Free Software
9Foundation (FSF).
10
11Redistribution and use in source and binary forms, with or
12without modification, are permitted provided that the
13following conditions are met:
14
151. Redistributions in source code must retain the
16 accompanying copyright notice, this list of conditions,
17 and the following disclaimer.
18
192. Redistributions in binary form must reproduce the accompanying
20 copyright notice, this list of conditions, and the
21 following disclaimer in the documentation and/or other
22 materials provided with the distribution.
23
243. Names of the copyright holders must not be used to
25 endorse or promote products derived from this software
26 without prior written permission from the copyright
27 holders.
28
294. The right to distribute this software or to use it for
30 any purpose does not give you the right to use
31 Servicemarks (sm) or Trademarks (tm) of the copyright
32 holders. Use of them is covered by separate agreement
33 with the copyright holders.
34
355. If any files are modified, you must cause the modified
36 files to carry prominent notices stating that you changed
37 the files and the date of any change.
38
39Disclaimer
40
41 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS''
42 AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
43 NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
44 AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
45 NO EVENT SHALL THE COPYRIGHT HOLDERS BE
46 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
47 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
48 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
49 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
50 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
51 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
52 OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
53 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
54 DAMAGE.
55\ No newline at end of file0\ No newline at end of file
561
=== removed file '_bootstrap/bootstrap.py'
--- _bootstrap/bootstrap.py 2015-01-06 12:03:45 +0000
+++ _bootstrap/bootstrap.py 1970-01-01 00:00:00 +0000
@@ -1,277 +0,0 @@
1##############################################################################
2#
3# Copyright (c) 2006 Zope Foundation and Contributors.
4# All Rights Reserved.
5#
6# This software is subject to the provisions of the Zope Public License,
7# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
8# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
9# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
10# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
11# FOR A PARTICULAR PURPOSE.
12#
13##############################################################################
14"""Bootstrap a buildout-based project
15
16Simply run this script in a directory containing a buildout.cfg.
17The script accepts buildout command-line options, so you can
18use the -c option to specify an alternate configuration file.
19"""
20
21import os, shutil, sys, tempfile, urllib, urllib2, subprocess
22from optparse import OptionParser
23
24if sys.platform == 'win32':
25 def quote(c):
26 if ' ' in c:
27 return '"%s"' % c # work around spawn lamosity on windows
28 else:
29 return c
30else:
31 quote = str
32
33# See zc.buildout.easy_install._has_broken_dash_S for motivation and comments.
34stdout, stderr = subprocess.Popen(
35 [sys.executable, '-Sc',
36 'try:\n'
37 ' import ConfigParser\n'
38 'except ImportError:\n'
39 ' print 1\n'
40 'else:\n'
41 ' print 0\n'],
42 stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
43has_broken_dash_S = bool(int(stdout.strip()))
44
45# In order to be more robust in the face of system Pythons, we want to
46# run without site-packages loaded. This is somewhat tricky, in
47# particular because Python 2.6's distutils imports site, so starting
48# with the -S flag is not sufficient. However, we'll start with that:
49if not has_broken_dash_S and 'site' in sys.modules:
50 # We will restart with python -S.
51 args = sys.argv[:]
52 args[0:0] = [sys.executable, '-S']
53 args = map(quote, args)
54 os.execv(sys.executable, args)
55# Now we are running with -S. We'll get the clean sys.path, import site
56# because distutils will do it later, and then reset the path and clean
57# out any namespace packages from site-packages that might have been
58# loaded by .pth files.
59clean_path = sys.path[:]
60import site # imported because of its side effects
61sys.path[:] = clean_path
62for k, v in sys.modules.items():
63 if k in ('setuptools', 'pkg_resources') or (
64 hasattr(v, '__path__') and
65 len(v.__path__) == 1 and
66 not os.path.exists(os.path.join(v.__path__[0], '__init__.py'))):
67 # This is a namespace package. Remove it.
68 sys.modules.pop(k)
69
70is_jython = sys.platform.startswith('java')
71
72setuptools_source = 'http://peak.telecommunity.com/dist/ez_setup.py'
73distribute_source = 'http://python-distribute.org/distribute_setup.py'
74distribute_source = 'https://bitbucket.org/pypa/setuptools/raw/f657df1f1ed46596d236376649c99a470662b4ba/distribute_setup.py'
75
76# parsing arguments
77def normalize_to_url(option, opt_str, value, parser):
78 if value:
79 if '://' not in value: # It doesn't smell like a URL.
80 value = 'file://%s' % (
81 urllib.pathname2url(
82 os.path.abspath(os.path.expanduser(value))),)
83 if opt_str == '--download-base' and not value.endswith('/'):
84 # Download base needs a trailing slash to make the world happy.
85 value += '/'
86 else:
87 value = None
88 name = opt_str[2:].replace('-', '_')
89 setattr(parser.values, name, value)
90
91usage = '''\
92[DESIRED PYTHON FOR BUILDOUT] bootstrap.py [options]
93
94Bootstraps a buildout-based project.
95
96Simply run this script in a directory containing a buildout.cfg, using the
97Python that you want bin/buildout to use.
98
99Note that by using --setup-source and --download-base to point to
100local resources, you can keep this script from going over the network.
101'''
102
103parser = OptionParser(usage=usage)
104parser.add_option("-v", "--version", dest="version",
105 help="use a specific zc.buildout version")
106parser.add_option("-d", "--distribute",
107 action="store_true", dest="use_distribute", default=False,
108 help="Use Distribute rather than Setuptools.")
109parser.add_option("--setup-source", action="callback", dest="setup_source",
110 callback=normalize_to_url, nargs=1, type="string",
111 help=("Specify a URL or file location for the setup file. "
112 "If you use Setuptools, this will default to " +
113 setuptools_source + "; if you use Distribute, this "
114 "will default to " + distribute_source + "."))
115parser.add_option("--download-base", action="callback", dest="download_base",
116 callback=normalize_to_url, nargs=1, type="string",
117 help=("Specify a URL or directory for downloading "
118 "zc.buildout and either Setuptools or Distribute. "
119 "Defaults to PyPI."))
120parser.add_option("--eggs",
121 help=("Specify a directory for storing eggs. Defaults to "
122 "a temporary directory that is deleted when the "
123 "bootstrap script completes."))
124parser.add_option("-t", "--accept-buildout-test-releases",
125 dest='accept_buildout_test_releases',
126 action="store_true", default=False,
127 help=("Normally, if you do not specify a --version, the "
128 "bootstrap script and buildout gets the newest "
129 "*final* versions of zc.buildout and its recipes and "
130 "extensions for you. If you use this flag, "
131 "bootstrap and buildout will get the newest releases "
132 "even if they are alphas or betas."))
133parser.add_option("-c", None, action="store", dest="config_file",
134 help=("Specify the path to the buildout configuration "
135 "file to be used."))
136
137options, args = parser.parse_args()
138
139if options.eggs:
140 eggs_dir = os.path.abspath(os.path.expanduser(options.eggs))
141else:
142 eggs_dir = tempfile.mkdtemp()
143
144if options.setup_source is None:
145 if options.use_distribute:
146 options.setup_source = distribute_source
147 else:
148 options.setup_source = setuptools_source
149
150if options.accept_buildout_test_releases:
151 args.insert(0, 'buildout:accept-buildout-test-releases=true')
152
153try:
154 import pkg_resources
155 import setuptools # A flag. Sometimes pkg_resources is installed alone.
156 if not hasattr(pkg_resources, '_distribute'):
157 raise ImportError
158except ImportError:
159 ez_code = urllib2.urlopen(
160 options.setup_source).read().replace('\r\n', '\n')
161 ez = {}
162 exec ez_code in ez
163 setup_args = dict(to_dir=eggs_dir, download_delay=0)
164 if options.download_base:
165 setup_args['download_base'] = options.download_base
166 if options.use_distribute:
167 setup_args['no_fake'] = True
168 if sys.version_info[:2] == (2, 4):
169 setup_args['version'] = '0.6.32'
170 ez['use_setuptools'](**setup_args)
171 if 'pkg_resources' in sys.modules:
172 reload(sys.modules['pkg_resources'])
173 import pkg_resources
174 # This does not (always?) update the default working set. We will
175 # do it.
176 for path in sys.path:
177 if path not in pkg_resources.working_set.entries:
178 pkg_resources.working_set.add_entry(path)
179
180cmd = [quote(sys.executable),
181 '-c',
182 quote('from setuptools.command.easy_install import main; main()'),
183 '-mqNxd',
184 quote(eggs_dir)]
185
186if not has_broken_dash_S:
187 cmd.insert(1, '-S')
188
189find_links = options.download_base
190if not find_links:
191 find_links = os.environ.get('bootstrap-testing-find-links')
192if not find_links and options.accept_buildout_test_releases:
193 find_links = 'http://downloads.buildout.org/'
194if find_links:
195 cmd.extend(['-f', quote(find_links)])
196
197if options.use_distribute:
198 setup_requirement = 'distribute'
199else:
200 setup_requirement = 'setuptools'
201ws = pkg_resources.working_set
202setup_requirement_path = ws.find(
203 pkg_resources.Requirement.parse(setup_requirement)).location
204env = dict(
205 os.environ,
206 PYTHONPATH=setup_requirement_path)
207
208requirement = 'zc.buildout'
209version = options.version
210if version is None and not options.accept_buildout_test_releases:
211 # Figure out the most recent final version of zc.buildout.
212 import setuptools.package_index
213 _final_parts = '*final-', '*final'
214
215 def _final_version(parsed_version):
216 for part in parsed_version:
217 if (part[:1] == '*') and (part not in _final_parts):
218 return False
219 return True
220 index = setuptools.package_index.PackageIndex(
221 search_path=[setup_requirement_path])
222 if find_links:
223 index.add_find_links((find_links,))
224 req = pkg_resources.Requirement.parse(requirement)
225 if index.obtain(req) is not None:
226 best = []
227 bestv = None
228 for dist in index[req.project_name]:
229 distv = dist.parsed_version
230 if distv >= pkg_resources.parse_version('2dev'):
231 continue
232 if _final_version(distv):
233 if bestv is None or distv > bestv:
234 best = [dist]
235 bestv = distv
236 elif distv == bestv:
237 best.append(dist)
238 if best:
239 best.sort()
240 version = best[-1].version
241
242if version:
243 requirement += '=='+version
244else:
245 requirement += '<2dev'
246
247cmd.append(requirement)
248
249if is_jython:
250 import subprocess
251 exitcode = subprocess.Popen(cmd, env=env).wait()
252else: # Windows prefers this, apparently; otherwise we would prefer subprocess
253 exitcode = os.spawnle(*([os.P_WAIT, sys.executable] + cmd + [env]))
254if exitcode != 0:
255 sys.stdout.flush()
256 sys.stderr.flush()
257 print ("An error occurred when trying to install zc.buildout. "
258 "Look above this message for any errors that "
259 "were output by easy_install.")
260 sys.exit(exitcode)
261
262ws.add_entry(eggs_dir)
263ws.require(requirement)
264import zc.buildout.buildout
265
266# If there isn't already a command in the args, add bootstrap
267if not [a for a in args if '=' not in a]:
268 args.append('bootstrap')
269
270
271# if -c was provided, we push it back into args for buildout's main function
272if options.config_file is not None:
273 args[0:0] = ['-c', options.config_file]
274
275zc.buildout.buildout.main(args)
276if not options.eggs: # clean up temporary egg directory
277 shutil.rmtree(eggs_dir)
2780
=== added file 'bootstrap-requirements.txt'
--- bootstrap-requirements.txt 1970-01-01 00:00:00 +0000
+++ bootstrap-requirements.txt 2015-11-17 13:24:41 +0000
@@ -0,0 +1,3 @@
1pip==7.1.2
2setuptools==18.4
3wheel==0.24.0
04
=== removed symlink 'bootstrap.py'
=== target was u'_bootstrap/bootstrap.py'
=== removed file 'buildout.cfg'
--- buildout.cfg 2015-01-06 12:03:45 +0000
+++ buildout.cfg 1970-01-01 00:00:00 +0000
@@ -1,33 +0,0 @@
1[buildout]
2extends = versions.cfg
3parts =
4 runtime
5 test
6 tags
7unzip = true
8include-site-packages = false
9allowed-eggs-from-site-packages = pyyaml
10exec-sitecustomize = true
11develop = .
12download-cache = download-cache
13eggs-directory = eggs
14# Relative paths are useful when deploying built trees.
15relative-paths = true
16# Disable this option temporarily if you want buildout to find
17# software dependencies *other* than those in our download-cache.
18# Once you have the desired software, re-enable this option.
19install-from-cache = true
20
21[runtime]
22recipe = z3c.recipe.scripts
23eggs = txpkgupload
24entry-points = twistd=twisted.scripts.twistd:run
25
26[test]
27recipe = zc.recipe.testrunner
28eggs = txpkgupload [test]
29defaults = '--tests-pattern ^tests --exit-with-status --suite-name additional_tests'.split()
30
31[tags]
32recipe = z3c.recipe.tag:tags
33eggs = txpkgupload
340
=== added file 'requirements.txt'
--- requirements.txt 1970-01-01 00:00:00 +0000
+++ requirements.txt 2015-11-17 13:24:41 +0000
@@ -0,0 +1,45 @@
1bson==0.3.3
2extras==0.0.3
3fixtures==0.3.12
4FormEncode==1.2.4
5httplib2==0.8
6iso8601==0.1.4
7keyring==0.6.2
8launchpadlib==1.10.2
9lazr.authentication==0.1.1
10lazr.restfulclient==0.13.2
11lazr.sshserver==0.1.1
12lazr.uri==1.0.2
13oauth==1.0
14oops==0.0.10
15oops-datedir-repo==0.0.14
16oops-twisted==0.0.6
17oops-wsgi==0.0.8
18paste==1.7.5.1
19pyasn1==0.1.6
20pycrypto==2.6
21python-mimeparse==0.1.4
22PyYAML==3.10
23pytz==2014.10
24simplejson==3.1.3
25testresources==0.2.7
26testtools==0.9.30
27Twisted==13.0.0
28wadllib==1.3.2
29wsgi-intercept==0.5.1
30zope.browser==1.3
31zope.component==3.10.0
32zope.configuration==3.7.4
33zope.contenttype==3.5.5
34zope.event==3.5.2
35zope.exceptions==3.6.2
36zope.i18n==3.7.4
37zope.i18nmessageid==3.5.3
38zope.interface==3.8.0
39zope.location==3.9.1
40zope.proxy==3.6.1
41zope.publisher==3.12.6
42zope.schema==3.7.1
43zope.security==3.8.3
44zope.server==3.8.6
45zope.testrunner==4.0.3
046
=== removed file 'versions.cfg'
--- versions.cfg 2015-01-21 13:38:43 +0000
+++ versions.cfg 1970-01-01 00:00:00 +0000
@@ -1,59 +0,0 @@
1[buildout]
2versions = versions
3allow-picked-versions = false
4use-dependency-links = false
5
6[versions]
7# Alphabetical, case-SENSITIVE, blank line after this comment
8
9bson = 0.3.3
10extras = 0.0.3
11fixtures = 0.3.12
12FormEncode = 1.2.4
13httplib2 = 0.8
14iso8601 = 0.1.4
15keyring = 0.6.2
16launchpadlib = 1.10.2
17lazr.authentication = 0.1.1
18lazr.restfulclient = 0.13.2
19lazr.sshserver = 0.1.1
20lazr.uri = 1.0.2
21oauth = 1.0
22oops = 0.0.10
23oops-datedir-repo = 0.0.14
24oops-twisted = 0.0.6
25oops-wsgi = 0.0.8
26paste = 1.7.5.1
27pyasn1 = 0.1.6
28pycrypto = 2.6
29python-mimeparse = 0.1.4
30PyYAML = 3.10
31pytz = 2014.10
32setuptools = 0.6c11
33simplejson = 3.1.3
34testresources = 0.2.7
35testtools = 0.9.30
36Twisted = 13.0.0
37wadllib = 1.3.2
38wsgi-intercept = 0.5.1
39z3c.recipe.scripts = 1.0.1
40z3c.recipe.tag = 0.6
41zc.buildout = 1.5.2
42zc.recipe.egg = 1.3.2
43zc.recipe.testrunner = 1.4.0
44zope.browser = 1.3
45zope.component = 3.10.0
46zope.configuration = 3.7.4
47zope.contenttype = 3.5.5
48zope.event = 3.5.2
49zope.exceptions = 3.6.2
50zope.i18n = 3.7.4
51zope.i18nmessageid = 3.5.3
52zope.interface = 3.8.0
53zope.location = 3.9.1
54zope.proxy = 3.6.1
55zope.publisher = 3.12.6
56zope.schema = 3.7.1
57zope.security = 3.8.3
58zope.server = 3.8.6
59zope.testrunner = 4.0.3

Subscribers

People subscribed via source and target branches

to all changes: