Setting version to v0.8.2.dev
[mediagoblin.git] / setup.py
index 4e4244aec4bc70b12ca399b0859a3466eadbbdd3..05fe8fcc4cbcd52a6aca7fe2dfd5b2bf50c2c772 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -17,6 +17,7 @@
 from __future__ import print_function
 
 from setuptools import setup, find_packages
+from io import open
 import os
 import re
 
@@ -39,19 +40,30 @@ def get_version():
         raise RuntimeError("Unable to find version string in %s." %
                            VERSIONFILE)
 
-py2_only_install_requires = []
+pyversion_install_requires = []
 if PY2:
-    py2_only_install_requires.append('argparse')  # only for < 2.7
-    py2_only_install_requires.append('PasteScript')
+    pyversion_install_requires.append('argparse')  # only for < 2.7
+    pyversion_install_requires.append('PasteScript')
     # 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.
-    py2_only_install_requires.append('sqlalchemy-migrate<0.8')
-    py2_only_install_requires.append('mock')  # mock is in the stdlib for 3.3+
+    pyversion_install_requires.append('sqlalchemy-migrate<0.8')
+    # # Annoying.  Please remove once we can!  We only indirectly
+    # # use pbr, and currently it breaks things, presumably till
+    # # their next release.
+    # pyversion_install_requires.append('pbr==0.5.22')
+    pyversion_install_requires.append('mock==1.0.1')  # mock is in the stdlib for 3.3+
+    # PyPI version (1.4.2) does not have proper Python 3 support
+    pyversion_install_requires.append('ExifRead')
+    pyversion_install_requires.append('PasteScript')
+    # Paste 2.0 is breaking wsgi, see:
+    #  https://bitbucket.org/ianb/paste/issue/4/wsgi-environ-totally-borked
+    pyversion_install_requires.append('Paste<=1.9.9')
+else:
+    pyversion_install_requires.append('gunicorn')
 
 install_requires = [
-    'gunicorn==19',
-    'setuptools',  # TODO: is this necessary
+    'alembic==0.6.6',
     'python-dateutil',
     'wtforms',
     'py-bcrypt',
@@ -61,34 +73,36 @@ install_requires = [
     'celery>=3.0',
     'kombu',
     'jinja2',
-    'sphinx',  # TODO: is this a docs requirement?
-    'Babel<1.0',  # TODO: why <1.0 or 0.9.6?
-    'webtest<2',
+    'Babel>=1.3',
+    'WebTest>=2.0.18',
     'ConfigObj',
     'Markdown',
     'sqlalchemy<0.9.0, >0.8.0',
     'itsdangerous',
     'pytz',
-    # 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',
-    'oauthlib==0.5.0',
+    'sphinx',
+    'six',
+    'oauthlib',
     'unidecode',
-    'ExifRead',
-    # 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',
+    'jsonschema',
     'PasteDeploy',
+    'requests>=2.6.0',
+    'pyld',
     # This is optional:
     # 'translitcodec',
     # For now we're expecting that users will install this from
     # their package managers.
     # 'lxml',
-    # 'PIL',  # TODO: switch to Pillow?
-] + py2_only_install_requires
+    # 'Pillow',
+] + pyversion_install_requires
 
-with open(READMEFILE) as fobj:
+dependency_links = []
+if not PY2:
+    # PyPI version (1.4.2) does not have proper Python 3 support
+    dependency_links.append('https://github.com/ianare/exif-py/zipball/develop#egg=ExifRead-2.0.0')
+    install_requires.append('ExifRead>=2.0.0')
+
+with open(READMEFILE, encoding="utf-8") as fobj:
     long_description = fobj.read()
 
 try:
@@ -100,15 +114,18 @@ try:
     include_package_data = True,
     # scripts and dependencies
     install_requires=install_requires,
-    test_suite='nose.collector',  # TODO: We are using py.test now?
+    dependency_links=dependency_links,
+    test_suite='nose.collector',
     entry_points="""\
         [console_scripts]
         gmg = mediagoblin.gmg_commands:main_cli
-        pybabel = mediagoblin.babel.messages.frontend:main
 
         [paste.app_factory]
         app = mediagoblin.app:paste_app_factory
 
+        [paste.server_runner]
+        paste_server_selector = mediagoblin.app:paste_server_selector
+
         [paste.filter_app_factory]
         errors = mediagoblin.errormiddleware:mgoblin_error_middleware
 
@@ -122,8 +139,8 @@ try:
     author='Free Software Foundation and contributors',
     author_email='cwebber@gnu.org',
     url="http://mediagoblin.org/",
-    download_url="http://mediagoblin.org/download/",
     long_description=long_description,
+    description='MediaGoblin is a web application for publishing all kinds of media',
     classifiers=[
         "Development Status :: 3 - Alpha",
         "Environment :: Web Environment",