Created the media metadata editor page
[mediagoblin.git] / setup.py
index 312de2f8a0148cee011ce7bdd20d0585fc45205a..0716e45f47e0b075145b476c02730f03f85da6d7 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -32,8 +32,8 @@ def get_version():
         raise RuntimeError("Unable to find version string in %s." %
                            VERSIONFILE)
 
-
-setup(
+try:
+    setup(
     name="mediagoblin",
     version=get_version(),
     packages=find_packages(exclude=['ez_setup', 'examples', 'tests']),
@@ -42,27 +42,46 @@ setup(
     # scripts and dependencies
     install_requires=[
         'setuptools',
+        'python-dateutil',
         'PasteScript',
         'wtforms',
         'py-bcrypt',
-        'pytest',
+        'pytest>=2.3.1',
         'pytest-xdist',
         'werkzeug>=0.7',
-        'celery==2.5.3',
-        'kombu==2.1.7',
+        'celery>=3.0',
+        'kombu',
         'jinja2',
         'sphinx',
-        'Babel',
+        'Babel>=1.0',
         'argparse',
         'webtest<2',
         'ConfigObj',
         'Markdown',
-        'sqlalchemy>=0.7.0',
-        'sqlalchemy-migrate',
+        'sqlalchemy<0.9.0, >0.8.0',
+        # newer sqlalchemy-migrate requires pbr which BREAKS EVERYTHING AND IS
+        #  TERRIBLE AND IS THE END OF ALL THINGS
+        #  I'd love to remove this restriction.
+        'sqlalchemy-migrate<0.8',
         'mock',
         'itsdangerous',
         'pytz',
-        'six',
+        'six>=1.4.1',
+        'oauthlib==0.5.0',
+        'unidecode',
+        'jsonschema',
+        'requests',
+        'ExifRead',
+
+        # PLEASE change this when we can; a dependency is forcing us to set this
+        # specific number and it is breaking setup.py develop
+        'six==1.5.2'
+
+        ## Annoying.  Please remove once we can!  We only indirectly
+        ## use pbr, and currently it breaks things, presumably till
+        ## their next release.
+        # 'pbr==0.5.22',
+
         ## This is optional!
         # 'translitcodec',
         ## For now we're expecting that users will install this from
@@ -106,3 +125,17 @@ setup(
         "Topic :: Internet :: WWW/HTTP :: Dynamic Content"
         ],
     )
+except TypeError, e:
+    # Check if the problem is caused by the sqlalchemy/setuptools conflict
+    msg_as_str = str(e)
+    if not (msg_as_str == 'dist must be a Distribution instance'):
+        raise
+
+    # If so, tell the user it is OK to just run the script again.
+    print "\n\n---------- NOTE ----------"
+    print "The setup.py command you ran failed."
+    print ""
+    print ("It is a known possible failure. Just run it again. It works the "
+           "second time.")
+    import sys
+    sys.exit(1)