← Back to team overview

divmod-dev team mailing list archive

[Merge] lp:~lvh/divmod.org/modernize-epsilon-packaging into lp:divmod.org

 

Laurens Van Houtven has proposed merging lp:~lvh/divmod.org/modernize-epsilon-packaging into lp:divmod.org.

Requested reviews:
  Divmod-dev (divmod-dev)

For more details, see:
https://code.launchpad.net/~lvh/divmod.org/modernize-epsilon-packaging/+merge/201305

This modernizes Epsilon's packaging standards.

1. setup.py egg_info no longer requires Twisted. This is the big ticket.
2. setup.py uses setuptools, and specifies dependencies there.
3. The version parsing stuff previously in Axiom has been moved here. Tests have been added. Axiom now imports the one from Epsilon.

I think we should deprecate epsilon.release. It doesn't really work anyway; e.g. it relies on svn commits being a thing.

-- 
https://code.launchpad.net/~lvh/divmod.org/modernize-epsilon-packaging/+merge/201305
Your team Divmod-dev is requested to review the proposed merge of lp:~lvh/divmod.org/modernize-epsilon-packaging into lp:divmod.org.
=== modified file 'Axiom/axiom/__init__.py'
--- Axiom/axiom/__init__.py	2013-08-15 15:21:10 +0000
+++ Axiom/axiom/__init__.py	2014-01-12 11:06:09 +0000
@@ -1,8 +1,5 @@
 # -*- test-case-name: axiom.test -*-
-from twisted.python import versions
 from axiom._version import __version__
-
-def _asTwistedVersion(packageName, versionString):
-    return versions.Version(packageName, *map(int, versionString.split(".")))
-
-version = _asTwistedVersion("axiom", __version__)
+from epsilon import asTwistedVersion
+
+version = asTwistedVersion("axiom", __version__)

=== modified file 'Axiom/setup.py'
--- Axiom/setup.py	2014-01-11 14:23:37 +0000
+++ Axiom/setup.py	2014-01-12 11:06:09 +0000
@@ -36,11 +36,8 @@
 
     install_requires=[
         "Twisted>=13.2.0",
-        "Epsilon>=0.6.0",
-        "PyOpenSSL>=0.13"
+        "Epsilon>=0.6.0"
     ],
-    # XXX: Remove PyOpenSSL install_requires as soon as epsilon
-    # specifies this dependency
     packages=find_packages() + ['twisted.plugins'],
     scripts=['bin/axiomatic'],
     cmdclass={

=== removed file 'Epsilon/DEPS.txt'
--- Epsilon/DEPS.txt	2006-06-14 11:54:41 +0000
+++ Epsilon/DEPS.txt	1970-01-01 00:00:00 +0000
@@ -1,2 +0,0 @@
-Python 2.4
-Twisted 2.4.0

=== modified file 'Epsilon/epsilon/__init__.py'
--- Epsilon/epsilon/__init__.py	2006-06-14 11:54:41 +0000
+++ Epsilon/epsilon/__init__.py	2014-01-12 11:06:09 +0000
@@ -1,3 +1,8 @@
 # -*- test-case-name: epsilon.test -*-
-
-from epsilon._version import version
+from epsilon._version import __version__
+from twisted.python import versions
+
+def asTwistedVersion(packageName, versionString):
+    return versions.Version(packageName, *map(int, versionString.split(".")))
+
+version = asTwistedVersion("epsilon", __version__)

=== modified file 'Epsilon/epsilon/_version.py'
--- Epsilon/epsilon/_version.py	2009-11-30 01:08:55 +0000
+++ Epsilon/epsilon/_version.py	2014-01-12 11:06:09 +0000
@@ -1,3 +1,1 @@
-# This is an auto-generated file. Use Epsilon/bin/release-divmod to update.
-from twisted.python import versions
-version = versions.Version(__name__[:__name__.rfind('.')], 0, 6, 0)
+__version__ = "0.6.0"

=== added file 'Epsilon/epsilon/test/test_version.py'
--- Epsilon/epsilon/test/test_version.py	1970-01-01 00:00:00 +0000
+++ Epsilon/epsilon/test/test_version.py	2014-01-12 11:06:09 +0000
@@ -0,0 +1,19 @@
+"""
+Tests for turning simple version strings into twisted.python.versions.Version
+objects.
+
+"""
+from epsilon import asTwistedVersion
+from twisted.trial.unittest import SynchronousTestCase
+
+
+class AsTwistedVersionTests(SynchronousTestCase):
+    def test_simple(self):
+        """
+        A simple version string can be turned into a Version object.
+        """
+        version = asTwistedVersion("package", "1.2.3")
+        self.assertEqual(version.package, "package")
+        self.assertEqual(version.major, 1)
+        self.assertEqual(version.minor, 2)
+        self.assertEqual(version.micro, 3)

=== modified file 'Epsilon/setup.py'
--- Epsilon/setup.py	2011-03-29 18:06:40 +0000
+++ Epsilon/setup.py	2014-01-12 11:06:09 +0000
@@ -1,15 +1,29 @@
-
-from epsilon import version, setuphelper
-
-setuphelper.autosetup(
+from setuptools import setup, find_packages
+import re
+
+versionPattern = re.compile(r"""^__version__ = ['"](.*?)['"]$""", re.M)
+with open("epsilon/_version.py", "rt") as f:
+    version = versionPattern.search(f.read()).group(1)
+
+setup(
     name="Epsilon",
-    version=version.short(),
+    version=version,
+    description="A set of utility modules used by Divmod projects",
+
     maintainer="divmod-dev",
     maintainer_email="divmod-dev@xxxxxxxxxxxxxxxxxxx",
     url="https://launchpad.net/divmod.org";,
+
+    install_requires=[
+        "Twisted>=13.2.0",
+        "PyOpenSSL>=0.13"
+    ],
+    packages=find_packages(),
+    scripts=['bin/benchmark'],
+
     license="MIT",
     platforms=["any"],
-    description="A set of utility modules used by Divmod projects",
+
     classifiers=[
         "Development Status :: 5 - Production/Stable",
         "Framework :: Twisted",
@@ -18,5 +32,4 @@
         "Programming Language :: Python",
         "Topic :: Internet",
         "Topic :: Security",
-        "Topic :: Utilities"],
-    scripts=['bin/benchmark'])
+        "Topic :: Utilities"])


Follow ups