[Checkins] SVN: z3c.checkversions/trunk/ import from the hg repo
Christophe Combelles
ccomb at free.fr
Sun May 16 10:48:51 EDT 2010
Log message for revision 112348:
import from the hg repo
Changed:
A z3c.checkversions/trunk/.hg_archival.txt
A z3c.checkversions/trunk/.hgignore
A z3c.checkversions/trunk/HISTORY.txt
A z3c.checkversions/trunk/README.txt
A z3c.checkversions/trunk/setup.py
A z3c.checkversions/trunk/z3c/
A z3c.checkversions/trunk/z3c/__init__.py
A z3c.checkversions/trunk/z3c/checkversions/
A z3c.checkversions/trunk/z3c/checkversions/README.txt
A z3c.checkversions/trunk/z3c/checkversions/__init__.py
A z3c.checkversions/trunk/z3c/checkversions/base.py
A z3c.checkversions/trunk/z3c/checkversions/buildout.py
A z3c.checkversions/trunk/z3c/checkversions/buildout.txt
A z3c.checkversions/trunk/z3c/checkversions/installed.py
A z3c.checkversions/trunk/z3c/checkversions/installed.txt
A z3c.checkversions/trunk/z3c/checkversions/main.py
A z3c.checkversions/trunk/z3c/checkversions/test.py
A z3c.checkversions/trunk/z3c/checkversions/testindex/
A z3c.checkversions/trunk/z3c/checkversions/testindex/zope.component/
A z3c.checkversions/trunk/z3c/checkversions/testindex/zope.component/index.html
A z3c.checkversions/trunk/z3c/checkversions/testindex/zope.interface/
A z3c.checkversions/trunk/z3c/checkversions/testindex/zope.interface/index.html
A z3c.checkversions/trunk/z3c/checkversions/testindex2/
A z3c.checkversions/trunk/z3c/checkversions/testindex2/zope.component/
A z3c.checkversions/trunk/z3c/checkversions/testindex2/zope.component/index.html
A z3c.checkversions/trunk/z3c/checkversions/testindex2/zope.interface/
A z3c.checkversions/trunk/z3c/checkversions/testindex2/zope.interface/index.html
-=-
Added: z3c.checkversions/trunk/.hg_archival.txt
===================================================================
--- z3c.checkversions/trunk/.hg_archival.txt (rev 0)
+++ z3c.checkversions/trunk/.hg_archival.txt 2010-05-16 14:48:51 UTC (rev 112348)
@@ -0,0 +1,5 @@
+repo: a8fea0e1f7782ac1a850ead2105ad0c260a694f5
+node: eadabb3f6acf70028a447de580138387038c3693
+branch: default
+latesttag: null
+latesttagdistance: 12
Added: z3c.checkversions/trunk/.hgignore
===================================================================
--- z3c.checkversions/trunk/.hgignore (rev 0)
+++ z3c.checkversions/trunk/.hgignore 2010-05-16 14:48:51 UTC (rev 112348)
@@ -0,0 +1,4 @@
+.*egg-info/
+.*pyc$
+.*swp$
+sandbox/
Added: z3c.checkversions/trunk/HISTORY.txt
===================================================================
--- z3c.checkversions/trunk/HISTORY.txt (rev 0)
+++ z3c.checkversions/trunk/HISTORY.txt 2010-05-16 14:48:51 UTC (rev 112348)
@@ -0,0 +1,7 @@
+Changelog
+=========
+
+0.1dev (unreleased)
+-------------------
+
+- Initial release
Added: z3c.checkversions/trunk/README.txt
===================================================================
--- z3c.checkversions/trunk/README.txt (rev 0)
+++ z3c.checkversions/trunk/README.txt 2010-05-16 14:48:51 UTC (rev 112348)
@@ -0,0 +1,81 @@
+Introduction
+============
+
+Find newer versions of your installed Python packages, or newer versions of
+packages in a buildout file.
+
+This package provides a console script named ``checkversions``.
+
+Install
+=======
+
+you can install this package either in a virtualenv::
+
+ $ virtualenv sandbox
+ $ sandbox/bin/pip install z3c.checkversions
+ $ sandbox/bin/checkversions --help
+
+or in your system::
+
+ $ sudo pip install z3c.checkversions
+ $ checkversions --help
+
+or in a buildout::
+
+ [buildout]
+ parts = checkversions
+
+ [checkversions]
+ recipe=zc.recipe.egg
+ eggs=z3c.checkversions
+
+Usage
+=====
+
+For installed packages
+----------------------
+
+Imagine `foobar` 1.0.1 is installed in your system
+
+Check the highest versions available::
+
+ $ checkversions
+ foobar=2.3.5
+
+Check the highest intermediate upgrades available::
+
+ $ checkversions -l 1
+ foobar=1.4.2
+
+Check the highest minor upgrades available::
+
+ $ checkversions -l 2
+ foobar=1.0.5
+
+For a buildout
+--------------
+
+The usage is the same, you just have to specify the buildout file to scan.
+The buildout does not need to be built.
+
+Imagine you have a buildout.cfg with::
+
+ [versions]
+ foobar=1.0.0
+
+Check the highest versions available::
+
+ $ checkversions buildout.cfg
+ foobar=2.3.5
+
+Check the highest intermediate upgrades available
+
+ $ checkversions -l 1 buildout.cfg
+ foobar=1.4.2
+
+Check the highest minor upgrades available
+
+ $ checkversions -l 2 buildout.cfg
+ foobar=1.0.5
+
+
Added: z3c.checkversions/trunk/setup.py
===================================================================
--- z3c.checkversions/trunk/setup.py (rev 0)
+++ z3c.checkversions/trunk/setup.py 2010-05-16 14:48:51 UTC (rev 112348)
@@ -0,0 +1,47 @@
+from setuptools import setup, find_packages
+import os
+
+version = '0.1dev'
+
+setup(name='z3c.checkversions',
+ version=version,
+ description="Checks package versions",
+ long_description=open("README.txt").read() + "\n" +
+ open("HISTORY.txt").read(),
+ # Get more strings from http://pypi.python.org/pypi?%3Aaction=list_classifiers
+ classifiers=[
+ "Programming Language :: Python",
+ 'Development Status :: 3 - Alpha',
+ 'Environment :: Console',
+ 'Intended Audience :: Developers',
+ 'License :: OSI Approved :: Zope Public License',
+ 'Programming Language :: Python',
+ 'Natural Language :: English',
+ 'Operating System :: OS Independent',
+ 'Topic :: Software Development :: Quality Assurance',
+ 'Framework :: Zope2',
+ 'Framework :: Zope3',
+ 'Framework :: Buildout',
+ ],
+ keywords='version, buildout, packages, upgrade, zope, ztk',
+ author='Christophe Combelles and the Zope Community',
+ author_email='zope-dev at zope.org',
+ url='http://pypi.python.org/pypi/z3c.checkversions',
+ license='ZPL 2.1',
+ packages=find_packages(exclude=['ez_setup']),
+ namespace_packages=['z3c'],
+ include_package_data=True,
+ zip_safe=False,
+ install_requires=[
+ 'setuptools',
+ # -*- Extra requirements: -*-
+ ],
+ extras_require={'buildout': ['zc.buildout']},
+ tests_require=['zc.buildout', 'virtualenv'],
+ test_suite='z3c.checkversions.test.test',
+ entry_points="""
+ # -*- Entry points: -*-
+ [console_scripts]
+ checkversions = z3c.checkversions.main:main
+ """,
+ )
Added: z3c.checkversions/trunk/z3c/__init__.py
===================================================================
--- z3c.checkversions/trunk/z3c/__init__.py (rev 0)
+++ z3c.checkversions/trunk/z3c/__init__.py 2010-05-16 14:48:51 UTC (rev 112348)
@@ -0,0 +1,6 @@
+# See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
+try:
+ __import__('pkg_resources').declare_namespace(__name__)
+except ImportError:
+ from pkgutil import extend_path
+ __path__ = extend_path(__path__, __name__)
Added: z3c.checkversions/trunk/z3c/checkversions/README.txt
===================================================================
--- z3c.checkversions/trunk/z3c/checkversions/README.txt (rev 0)
+++ z3c.checkversions/trunk/z3c/checkversions/README.txt 2010-05-16 14:48:51 UTC (rev 112348)
@@ -0,0 +1,8 @@
+z3c.checkversions
+=================
+
+Find newer versions of your installed Python packages, or newer versions of
+packages specified in a buildout.
+
+This package provides a console script named ``checkversions``.
+
Added: z3c.checkversions/trunk/z3c/checkversions/base.py
===================================================================
--- z3c.checkversions/trunk/z3c/checkversions/base.py (rev 0)
+++ z3c.checkversions/trunk/z3c/checkversions/base.py 2010-05-16 14:48:51 UTC (rev 112348)
@@ -0,0 +1,56 @@
+from pkg_resources import parse_version, Requirement
+from setuptools import package_index
+
+class Checker(object):
+ """Base class for version checkers
+ """
+ __custom_url = False
+ def __init__(self, filename=None, index_url=None):
+ self.filename = filename
+ self.pi = package_index.PackageIndex()
+ self._set_index_url(index_url)
+ if index_url is not None:
+ self.__custom_url = True
+
+ def _set_index_url(self, url):
+ """set the index URL
+ """
+ if url is not None:
+ self.pi.index_url = url
+ if not self.pi.index_url.endswith('/'):
+ self.pi.index_url += '/'
+
+ def check(self, level=0):
+ """Search new versions in a version list
+ versions must be a dict {'name': 'version'}
+
+ The new version is limited to the given level:
+ Example with version x.y.z
+ level = 0: checks new version x
+ level = 1: checks new version y
+ level = 2: checks new version z
+
+ By default, the highest version is found.
+ """
+ versions = self.get_versions()
+
+ for name, version in versions.items():
+ parsed_version = parse_version(version)
+ req = Requirement.parse(name)
+ self.pi.find_packages(req)
+ new_dist = None
+ # loop all versions until we find the first newer version
+ # that keeps the major versions (below level)
+ for dist in self.pi[req.key]:
+ if dist.parsed_version[:level] > parsed_version[:level]:
+ continue
+ new_dist = dist
+ break
+
+
+ if new_dist and new_dist.parsed_version > parsed_version:
+ print("%s=%s" % (name, new_dist.version))
+
+
+ def get_versions(self):
+ raise NotImplementedError
Added: z3c.checkversions/trunk/z3c/checkversions/buildout.py
===================================================================
--- z3c.checkversions/trunk/z3c/checkversions/buildout.py (rev 0)
+++ z3c.checkversions/trunk/z3c/checkversions/buildout.py 2010-05-16 14:48:51 UTC (rev 112348)
@@ -0,0 +1,19 @@
+from zc.buildout.buildout import Buildout
+from z3c.checkversions import base
+
+
+class Checker(base.Checker):
+ """checker class for a buildout
+ """
+ def get_versions(self):
+ buildout = Buildout(self.filename, '')
+
+ # set the index URL from the buildout if not already provided
+ buildout_index = buildout['buildout'].get('index')
+ if not self.__custom_url:
+ self._set_index_url(buildout_index)
+
+ print(u"Checking buildout file %s" % self.filename)
+ return buildout['versions']
+
+
Added: z3c.checkversions/trunk/z3c/checkversions/buildout.txt
===================================================================
--- z3c.checkversions/trunk/z3c/checkversions/buildout.txt (rev 0)
+++ z3c.checkversions/trunk/z3c/checkversions/buildout.txt 2010-05-16 14:48:51 UTC (rev 112348)
@@ -0,0 +1,78 @@
+Checking versions of a buildout
+-------------------------------
+
+For the tests, we use two fake local indices
+
+>>> import z3c.checkversions
+>>> from os.path import dirname, sep
+>>> testindex = 'file://' + dirname(z3c.checkversions.__file__).replace(sep, '/') + '/testindex'
+>>> testindex2 = 'file://' + dirname(z3c.checkversions.__file__).replace(sep, '/') + '/testindex2'
+>>> print testindex
+file:///.../testindex
+
+We create a buildout with a versions section and a custom index:
+
+>>> import os
+>>> from tempfile import mkstemp
+>>> buildout_fd, buildout_path = mkstemp()
+>>> buildout_file = os.fdopen(buildout_fd, 'w')
+>>> buildout_file.write("""
+... [buildout]
+... index = %s
+... versions = versions
+... [versions]
+... zope.interface = 3.4.0
+... zope.component = 3.4.0
+... """ % testindex)
+>>> buildout_file.close()
+
+We can now check the new highest versions:
+
+>>> from z3c.checkversions import buildout
+>>> checker = buildout.Checker(filename=buildout_path)
+>>> checker.get_versions()
+Checking buildout file ...
+{'zope.interface': '3.4.0', 'zope.component': '3.4.0'}
+>>> checker.check()
+Checking buildout file ...
+Reading file:///.../zope.interface/
+zope.interface=3.6.1
+Reading file:///.../zope.component/
+zope.component=3.9.4
+
+We can check only the minor versions:
+
+>>> checker.check(level=2)
+Checking buildout file ...
+zope.interface=3.4.1
+
+We can provide a different index url:
+
+>>> checker = buildout.Checker(filename=buildout_path, index_url=testindex2)
+>>> checker.check()
+Checking buildout file ...
+Reading file:///.../zope.interface/
+zope.interface=3.6.2
+Reading file:///.../zope.component/
+zope.component=3.9.3
+
+console script
+--------------
+
+the 'main' module is exposed through a console_script entry point.
+We are using it directly here:
+
+>>> import sys
+>>> from z3c.checkversions import main
+>>> from subprocess import Popen, PIPE
+>>> p = Popen([sys.executable, main.__file__, '-h'],
+... stdout=PIPE, stdin=PIPE, stderr=PIPE)
+>>> print p.stdout.read()
+Usage: ... [options]
+...
+
+
+Clean the tmp file:
+
+>>> os.remove(buildout_path)
+
Added: z3c.checkversions/trunk/z3c/checkversions/installed.py
===================================================================
--- z3c.checkversions/trunk/z3c/checkversions/installed.py (rev 0)
+++ z3c.checkversions/trunk/z3c/checkversions/installed.py 2010-05-16 14:48:51 UTC (rev 112348)
@@ -0,0 +1,13 @@
+import pkg_resources
+from z3c.checkversions import base
+
+class Checker(base.Checker):
+ """Checker class for installed packages
+ """
+ def get_versions(self, level=0):
+ working_set = pkg_resources.working_set
+ versions = dict([(d.key, d.version) for d in working_set])
+ print "Checking your installed distributions"
+ return versions
+
+
Added: z3c.checkversions/trunk/z3c/checkversions/installed.txt
===================================================================
--- z3c.checkversions/trunk/z3c/checkversions/installed.txt (rev 0)
+++ z3c.checkversions/trunk/z3c/checkversions/installed.txt 2010-05-16 14:48:51 UTC (rev 112348)
@@ -0,0 +1,16 @@
+Checking installed versions
+---------------------------
+
+>>> from z3c.checkversions import installed
+>>> checker = installed.Checker()
+
+We just check we can get the versions:
+
+>>> from pprint import pprint
+>>> versions = checker.get_versions()
+Checking your installed distributions
+>>> 'z3c.checkversions' in versions
+True
+
+Checking for upgrades availability is already done in buildout.txt
+
Added: z3c.checkversions/trunk/z3c/checkversions/main.py
===================================================================
--- z3c.checkversions/trunk/z3c/checkversions/main.py (rev 0)
+++ z3c.checkversions/trunk/z3c/checkversions/main.py 2010-05-16 14:48:51 UTC (rev 112348)
@@ -0,0 +1,52 @@
+"""This script will check new package versions of either
+your current installed distributions or a buildout file if provided.
+It can detect major or minor versions availability:
+level 0 gets the highest version (X.y.z),
+level 1 gets the highest intermediate version (x.Y.z),
+level 2 gets the highest minor version (x.y.Z).
+
+Using level 2, you can automatically retrieve all bugfix versions of a buildout.
+"""
+
+from optparse import OptionParser
+
+def main():
+
+ parser = OptionParser(description=__doc__)
+
+ parser.add_option('-l', '--level',
+ type='int',
+ dest='level',
+ default=0,
+ help=u"Version level to check")
+
+ parser.add_option('-i', '--index',
+ dest='index',
+ help=u"Alternative package index URL")
+
+ options, args = parser.parse_args()
+
+ if len(args) > 1:
+ parser.error("You must specify only one argument")
+
+ buildoutcfg = False
+ if len(args) == 1:
+ buildoutcfg = args[0]
+
+ kw = {}
+ if options.index is not None:
+ kw['index_url'] = options.index
+
+ if buildoutcfg:
+ import buildout
+ checker = buildout.Checker(filename=buildoutcfg, **kw)
+ else:
+ import installed
+ checker = installed.Checker()
+
+ checker.check(level=options.level)
+
+
+if __name__ == '__main__':
+ main()
+
Added: z3c.checkversions/trunk/z3c/checkversions/test.py
===================================================================
--- z3c.checkversions/trunk/z3c/checkversions/test.py (rev 0)
+++ z3c.checkversions/trunk/z3c/checkversions/test.py 2010-05-16 14:48:51 UTC (rev 112348)
@@ -0,0 +1,11 @@
+from doctest import DocFileSuite, ELLIPSIS, NORMALIZE_WHITESPACE
+import unittest
+
+def test():
+ optionflags = ELLIPSIS|NORMALIZE_WHITESPACE
+ suite = unittest.TestSuite()
+ suite.addTest(DocFileSuite('README.txt', optionflags=optionflags))
+ suite.addTest(DocFileSuite('buildout.txt', optionflags=optionflags))
+ suite.addTest(DocFileSuite('installed.txt', optionflags=optionflags))
+
+ return suite
Added: z3c.checkversions/trunk/z3c/checkversions/testindex/zope.component/index.html
===================================================================
--- z3c.checkversions/trunk/z3c/checkversions/testindex/zope.component/index.html (rev 0)
+++ z3c.checkversions/trunk/z3c/checkversions/testindex/zope.component/index.html 2010-05-16 14:48:51 UTC (rev 112348)
@@ -0,0 +1,17 @@
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.9.4.zip#md5=6277c4db8f318072416d49521d5b21c0)">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.9.3.tar.gz#md5=f166a219dbc26b9e71490c7697f73d7e">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.9.2.tar.gz#md5=7ae556f0f6228d36f1fff066e616dc69">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.9.1.tar.gz#md5=1d59685c258b7a5db5151a9a485dd7b6">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.9.0.tar.gz#md5=8ec099604e2cec12a9cd1ec2e8666c75">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.8.0.tar.gz#md5=c4756e4321e373fa8823b67fe38f3702">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.7.1.tar.gz#md5=40e71d0cf60db6080b88f17297d778a0">zope.component</a>
+<a href="http://pypi.python.org/packages/2.6/z/zope.component/zope.component-3.7.0-py2.6.egg#md5=d49b7afa6f45523316ac1ed877240e6a">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.7.0.tar.gz#md5=b8843319eb010ff073025adbfba19be0">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.6.0.tar.gz#md5=6c3ddbfb990e0251b025b19266adae8f">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.5.1.tar.gz#md5=006c43ad77ed4982e49c07f6e65b68a2">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.5.0.tar.gz#md5=9f78c8c3594c27be9d6d84114b237ab3">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.4.0.tar.gz#md5=94afb57dfe605d7235ff562d1eaa3bed">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.4dev-r72749.tar.gz#md5=23625ac9ec78f1098a3bbc7f6bf86ca4">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.4dev-r72748.tar.gz#md5=fe51ceddb7db4ff7630a91dee4525235">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.4dev-r72747.tar.gz#md5=f352802dfbc1d1728a30784617976137">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.4dev-r72605.tar.gz#md5=6c7f82343c4008a6cf547fb23227448c">zope.component</a>
Added: z3c.checkversions/trunk/z3c/checkversions/testindex/zope.interface/index.html
===================================================================
--- z3c.checkversions/trunk/z3c/checkversions/testindex/zope.interface/index.html (rev 0)
+++ z3c.checkversions/trunk/z3c/checkversions/testindex/zope.interface/index.html 2010-05-16 14:48:51 UTC (rev 112348)
@@ -0,0 +1,13 @@
+<a href="http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.6.1.tar.gz#md5=7a895181b8d10be4a7e9a3afa13cd3be">zope.interface</a>
+<a href="http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.6.0.tar.gz#md5=65c89a83b287fa0f5388e9507276d78e">zope.interface</a>
+<a href="http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.5.3.tar.gz#md5=1fdb9a77f92d3ada3e795a8c9b58d0c6">zope.interface</a>
+<a href="http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.5.2.tar.gz#md5=7f650e26385a452a6e1148797aa11dfd">zope.interface</a>
+<a href="http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.5.1.tar.gz#md5=685fc532550abb07cca6190c9cd2b901">zope.interface</a>
+<a href="http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.5.0.zip#md5=478d05add7cd7faf25a2fd880a739ddb">zope.interface</a>
+<a href="http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.4.1.tar.gz#md5=b085f4a774adab688e037ad32fbbf08e">zope.interface</a>
+<a href="http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.4.0.tar.gz#md5=0be9fd80b7bb6bee520e56eba7d29c90">zope.interface</a>
+<a href="http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.4.0b1.tar.gz#md5=ed711b4da1579ae0c71e2804df2bdc99">zope.interface</a>
+<a href="http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.3.0.1.tar.gz#md5=9f2388c0f67757e3b2530216a4f29b86">zope.interface</a>
+<a href="http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.3.0.tar.gz#md5=93668855e37b4691c5c956665c33392c">zope.interface</a>
+<a href="http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.3.0b2.tar.gz#md5=f04b8c2403e3b4a44ac0b083b659a92c">zope.interface</a>
+<a href="http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.3.0b1.tar.gz#md5=c49930c7382ebf5143421d2c92d65138">zope.interface</a>
Added: z3c.checkversions/trunk/z3c/checkversions/testindex2/zope.component/index.html
===================================================================
--- z3c.checkversions/trunk/z3c/checkversions/testindex2/zope.component/index.html (rev 0)
+++ z3c.checkversions/trunk/z3c/checkversions/testindex2/zope.component/index.html 2010-05-16 14:48:51 UTC (rev 112348)
@@ -0,0 +1,16 @@
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.9.3.tar.gz#md5=f166a219dbc26b9e71490c7697f73d7e">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.9.2.tar.gz#md5=7ae556f0f6228d36f1fff066e616dc69">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.9.1.tar.gz#md5=1d59685c258b7a5db5151a9a485dd7b6">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.9.0.tar.gz#md5=8ec099604e2cec12a9cd1ec2e8666c75">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.8.0.tar.gz#md5=c4756e4321e373fa8823b67fe38f3702">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.7.1.tar.gz#md5=40e71d0cf60db6080b88f17297d778a0">zope.component</a>
+<a href="http://pypi.python.org/packages/2.6/z/zope.component/zope.component-3.7.0-py2.6.egg#md5=d49b7afa6f45523316ac1ed877240e6a">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.7.0.tar.gz#md5=b8843319eb010ff073025adbfba19be0">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.6.0.tar.gz#md5=6c3ddbfb990e0251b025b19266adae8f">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.5.1.tar.gz#md5=006c43ad77ed4982e49c07f6e65b68a2">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.5.0.tar.gz#md5=9f78c8c3594c27be9d6d84114b237ab3">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.4.0.tar.gz#md5=94afb57dfe605d7235ff562d1eaa3bed">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.4dev-r72749.tar.gz#md5=23625ac9ec78f1098a3bbc7f6bf86ca4">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.4dev-r72748.tar.gz#md5=fe51ceddb7db4ff7630a91dee4525235">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.4dev-r72747.tar.gz#md5=f352802dfbc1d1728a30784617976137">zope.component</a>
+<a href="http://pypi.python.org/packages/source/z/zope.component/zope.component-3.4dev-r72605.tar.gz#md5=6c7f82343c4008a6cf547fb23227448c">zope.component</a>
Added: z3c.checkversions/trunk/z3c/checkversions/testindex2/zope.interface/index.html
===================================================================
--- z3c.checkversions/trunk/z3c/checkversions/testindex2/zope.interface/index.html (rev 0)
+++ z3c.checkversions/trunk/z3c/checkversions/testindex2/zope.interface/index.html 2010-05-16 14:48:51 UTC (rev 112348)
@@ -0,0 +1,14 @@
+<a href="http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.6.2.tar.gz">zope.interface</a>
+<a href="http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.6.1.tar.gz#md5=7a895181b8d10be4a7e9a3afa13cd3be">zope.interface</a>
+<a href="http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.6.0.tar.gz#md5=65c89a83b287fa0f5388e9507276d78e">zope.interface</a>
+<a href="http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.5.3.tar.gz#md5=1fdb9a77f92d3ada3e795a8c9b58d0c6">zope.interface</a>
+<a href="http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.5.2.tar.gz#md5=7f650e26385a452a6e1148797aa11dfd">zope.interface</a>
+<a href="http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.5.1.tar.gz#md5=685fc532550abb07cca6190c9cd2b901">zope.interface</a>
+<a href="http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.5.0.zip#md5=478d05add7cd7faf25a2fd880a739ddb">zope.interface</a>
+<a href="http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.4.1.tar.gz#md5=b085f4a774adab688e037ad32fbbf08e">zope.interface</a>
+<a href="http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.4.0.tar.gz#md5=0be9fd80b7bb6bee520e56eba7d29c90">zope.interface</a>
+<a href="http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.4.0b1.tar.gz#md5=ed711b4da1579ae0c71e2804df2bdc99">zope.interface</a>
+<a href="http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.3.0.1.tar.gz#md5=9f2388c0f67757e3b2530216a4f29b86">zope.interface</a>
+<a href="http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.3.0.tar.gz#md5=93668855e37b4691c5c956665c33392c">zope.interface</a>
+<a href="http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.3.0b2.tar.gz#md5=f04b8c2403e3b4a44ac0b083b659a92c">zope.interface</a>
+<a href="http://pypi.python.org/packages/source/z/zope.interface/zope.interface-3.3.0b1.tar.gz#md5=c49930c7382ebf5143421d2c92d65138">zope.interface</a>
More information about the checkins
mailing list