Don't require webob as dependency
authorSebastian Spaeth <Sebastian@SSpaeth.de>
Fri, 16 Nov 2012 10:32:35 +0000 (11:32 +0100)
committerSebastian Spaeth <Sebastian@SSpaeth.de>
Fri, 21 Dec 2012 07:24:28 +0000 (08:24 +0100)
It is pushing up the daisies. Also relnote the change.

15 files changed:
docs/source/build/mediagoblin-licenses/PKG-INFO [new file with mode: 0644]
docs/source/build/mediagoblin-licenses/README [new file with mode: 0644]
docs/source/build/mediagoblin-licenses/build/lib.linux-x86_64-2.7/mediagoblin_licenses/README.rst [new file with mode: 0644]
docs/source/build/mediagoblin-licenses/build/lib.linux-x86_64-2.7/mediagoblin_licenses/__init__.py [new file with mode: 0644]
docs/source/build/mediagoblin-licenses/mediagoblin_licenses/README.rst [new file with mode: 0644]
docs/source/build/mediagoblin-licenses/mediagoblin_licenses/__init__.py [new file with mode: 0644]
docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/PKG-INFO [new file with mode: 0644]
docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/SOURCES.txt [new file with mode: 0644]
docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/dependency_links.txt [new file with mode: 0644]
docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/top_level.txt [new file with mode: 0644]
docs/source/build/mediagoblin-licenses/setup.py [new file with mode: 0644]
docs/source/build/pip-delete-this-directory.txt [new file with mode: 0644]
docs/source/plugindocs/trim_whitespace.rst [new file with mode: 0644]
docs/source/siteadmin/relnotes.rst
setup.py

diff --git a/docs/source/build/mediagoblin-licenses/PKG-INFO b/docs/source/build/mediagoblin-licenses/PKG-INFO
new file mode 100644 (file)
index 0000000..047efe8
--- /dev/null
@@ -0,0 +1,11 @@
+Metadata-Version: 1.1
+Name: mediagoblin-licenses
+Version: 0.1.2
+Summary: Customize the licenses for your mediagoblin installation
+Home-page: https://gitorious.org/mediagoblin-licenses/mediagoblin-licenses
+Author: Sebastian Spaeth
+Author-email: Sebastian@SSpaeth.de
+License: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
+Download-URL: https://gitorious.org/mediagoblin-licenses/mediagoblin-licenses/archive-tarball/mediagoblin-licenses-v0.1.2
+Description: UNKNOWN
+Platform: UNKNOWN
diff --git a/docs/source/build/mediagoblin-licenses/README b/docs/source/build/mediagoblin-licenses/README
new file mode 100644 (file)
index 0000000..ce52a8c
--- /dev/null
@@ -0,0 +1,15 @@
+================
+ Custom Licenses
+================
+
+Enable by configuring all custom licenses in the form of:
+license_x=Abbreviation, Full Name, URL to license
+
+Make sure to only insert one line per license without line breaks.
+
+E.g. do this into mediagoblin_local.ini:
+[[mediagoblin_licenses]]
+license_1=Chicken Dance, Chicken Dance License v1.0, https://raw.github.com/supertunaman/cdl/f0ae734f4abce311070ac0c401dbc0230cbc4344/COPYING
+license_2=WTFPL, Do What the Fuck Public License v2.0, http://sam.zoy.org/wtfpl/
+
+This plugin is licensed under the GNU APGL v3+.
\ No newline at end of file
diff --git a/docs/source/build/mediagoblin-licenses/build/lib.linux-x86_64-2.7/mediagoblin_licenses/README.rst b/docs/source/build/mediagoblin-licenses/build/lib.linux-x86_64-2.7/mediagoblin_licenses/README.rst
new file mode 100644 (file)
index 0000000..ce52a8c
--- /dev/null
@@ -0,0 +1,15 @@
+================
+ Custom Licenses
+================
+
+Enable by configuring all custom licenses in the form of:
+license_x=Abbreviation, Full Name, URL to license
+
+Make sure to only insert one line per license without line breaks.
+
+E.g. do this into mediagoblin_local.ini:
+[[mediagoblin_licenses]]
+license_1=Chicken Dance, Chicken Dance License v1.0, https://raw.github.com/supertunaman/cdl/f0ae734f4abce311070ac0c401dbc0230cbc4344/COPYING
+license_2=WTFPL, Do What the Fuck Public License v2.0, http://sam.zoy.org/wtfpl/
+
+This plugin is licensed under the GNU APGL v3+.
\ No newline at end of file
diff --git a/docs/source/build/mediagoblin-licenses/build/lib.linux-x86_64-2.7/mediagoblin_licenses/__init__.py b/docs/source/build/mediagoblin-licenses/build/lib.linux-x86_64-2.7/mediagoblin_licenses/__init__.py
new file mode 100644 (file)
index 0000000..37f5a39
--- /dev/null
@@ -0,0 +1,69 @@
+# GNU MediaGoblin -- federated, autonomous media hosting
+# Copyright (C) 2011, 2012 MediaGoblin contributors.  See AUTHORS.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+from __future__ import unicode_literals
+
+import logging
+from mediagoblin.tools.pluginapi import get_config
+from mediagoblin.tools import licenses
+
+__VERSION__ = '0.1.2' # releases get numbers, post release a "+" appended
+_log = logging.getLogger(__name__)
+
+SORTED_PLUGIN_LICENSES = []
+"""This is the equivalent of MG.tools.licenses.SORTED_LICENSES
+that we want to replace"""
+
+
+class CustomLicenses(object):
+    _setup_plugin_called = 0
+
+    @classmethod
+    def setup_plugin(cls):
+        if cls._setup_plugin_called:
+            return # Only set up once
+        cls._setup_plugin_called += 1
+        _log.info('Configurable license plugin setting up!')
+        # Get configured licenses
+        config = get_config(cls.__module__)
+        if not config:
+            _log.warn('There are no licenses configured at all.')
+            return # Nothing configured, nothing to do...
+
+        for k,v in config.iteritems():
+            if not k.lower().startswith('license_'):
+                continue
+            (abbrev, name, url) =  config.as_list(k)
+            _log.info("Adding license: {0}".format(abbrev))
+            SORTED_PLUGIN_LICENSES.append(licenses.License(abbrev, name, url))
+
+        # Set the regular license list to our custom ones:
+        licenses.SORTED_LICENSES = SORTED_PLUGIN_LICENSES
+        # create dict {url: License,...} to enable fast license lookup by url.
+
+        # The data structure in
+        # mediagoblin.tools.licenses.SUPPORTED_LICENSES and SORTED_LICENSES
+        # is really not optimal. What we want there is a "OrderedDict" that
+        # can give us order AND quick lookup by key at the same time. But as
+        # that is python >=2.7 and we have to deal with python 2.6, we'll
+        # live with the data duplication in 2 structures for now. It's not
+        # like we are going to have hundreds of licenses, fortunately.
+        licenses.SUPPORTED_LICENSES = dict(((l.uri, l) for l in \
+                                                SORTED_PLUGIN_LICENSES))
+
+
+hooks = {
+    'setup': CustomLicenses.setup_plugin
+    }
diff --git a/docs/source/build/mediagoblin-licenses/mediagoblin_licenses/README.rst b/docs/source/build/mediagoblin-licenses/mediagoblin_licenses/README.rst
new file mode 100644 (file)
index 0000000..ce52a8c
--- /dev/null
@@ -0,0 +1,15 @@
+================
+ Custom Licenses
+================
+
+Enable by configuring all custom licenses in the form of:
+license_x=Abbreviation, Full Name, URL to license
+
+Make sure to only insert one line per license without line breaks.
+
+E.g. do this into mediagoblin_local.ini:
+[[mediagoblin_licenses]]
+license_1=Chicken Dance, Chicken Dance License v1.0, https://raw.github.com/supertunaman/cdl/f0ae734f4abce311070ac0c401dbc0230cbc4344/COPYING
+license_2=WTFPL, Do What the Fuck Public License v2.0, http://sam.zoy.org/wtfpl/
+
+This plugin is licensed under the GNU APGL v3+.
\ No newline at end of file
diff --git a/docs/source/build/mediagoblin-licenses/mediagoblin_licenses/__init__.py b/docs/source/build/mediagoblin-licenses/mediagoblin_licenses/__init__.py
new file mode 100644 (file)
index 0000000..37f5a39
--- /dev/null
@@ -0,0 +1,69 @@
+# GNU MediaGoblin -- federated, autonomous media hosting
+# Copyright (C) 2011, 2012 MediaGoblin contributors.  See AUTHORS.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+from __future__ import unicode_literals
+
+import logging
+from mediagoblin.tools.pluginapi import get_config
+from mediagoblin.tools import licenses
+
+__VERSION__ = '0.1.2' # releases get numbers, post release a "+" appended
+_log = logging.getLogger(__name__)
+
+SORTED_PLUGIN_LICENSES = []
+"""This is the equivalent of MG.tools.licenses.SORTED_LICENSES
+that we want to replace"""
+
+
+class CustomLicenses(object):
+    _setup_plugin_called = 0
+
+    @classmethod
+    def setup_plugin(cls):
+        if cls._setup_plugin_called:
+            return # Only set up once
+        cls._setup_plugin_called += 1
+        _log.info('Configurable license plugin setting up!')
+        # Get configured licenses
+        config = get_config(cls.__module__)
+        if not config:
+            _log.warn('There are no licenses configured at all.')
+            return # Nothing configured, nothing to do...
+
+        for k,v in config.iteritems():
+            if not k.lower().startswith('license_'):
+                continue
+            (abbrev, name, url) =  config.as_list(k)
+            _log.info("Adding license: {0}".format(abbrev))
+            SORTED_PLUGIN_LICENSES.append(licenses.License(abbrev, name, url))
+
+        # Set the regular license list to our custom ones:
+        licenses.SORTED_LICENSES = SORTED_PLUGIN_LICENSES
+        # create dict {url: License,...} to enable fast license lookup by url.
+
+        # The data structure in
+        # mediagoblin.tools.licenses.SUPPORTED_LICENSES and SORTED_LICENSES
+        # is really not optimal. What we want there is a "OrderedDict" that
+        # can give us order AND quick lookup by key at the same time. But as
+        # that is python >=2.7 and we have to deal with python 2.6, we'll
+        # live with the data duplication in 2 structures for now. It's not
+        # like we are going to have hundreds of licenses, fortunately.
+        licenses.SUPPORTED_LICENSES = dict(((l.uri, l) for l in \
+                                                SORTED_PLUGIN_LICENSES))
+
+
+hooks = {
+    'setup': CustomLicenses.setup_plugin
+    }
diff --git a/docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/PKG-INFO b/docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/PKG-INFO
new file mode 100644 (file)
index 0000000..047efe8
--- /dev/null
@@ -0,0 +1,11 @@
+Metadata-Version: 1.1
+Name: mediagoblin-licenses
+Version: 0.1.2
+Summary: Customize the licenses for your mediagoblin installation
+Home-page: https://gitorious.org/mediagoblin-licenses/mediagoblin-licenses
+Author: Sebastian Spaeth
+Author-email: Sebastian@SSpaeth.de
+License: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
+Download-URL: https://gitorious.org/mediagoblin-licenses/mediagoblin-licenses/archive-tarball/mediagoblin-licenses-v0.1.2
+Description: UNKNOWN
+Platform: UNKNOWN
diff --git a/docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/SOURCES.txt b/docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/SOURCES.txt
new file mode 100644 (file)
index 0000000..0e504e9
--- /dev/null
@@ -0,0 +1,6 @@
+README
+mediagoblin_licenses/__init__.py
+pip-egg-info/mediagoblin_licenses.egg-info/PKG-INFO
+pip-egg-info/mediagoblin_licenses.egg-info/SOURCES.txt
+pip-egg-info/mediagoblin_licenses.egg-info/dependency_links.txt
+pip-egg-info/mediagoblin_licenses.egg-info/top_level.txt
\ No newline at end of file
diff --git a/docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/dependency_links.txt b/docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/dependency_links.txt
new file mode 100644 (file)
index 0000000..8b13789
--- /dev/null
@@ -0,0 +1 @@
+
diff --git a/docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/top_level.txt b/docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/top_level.txt
new file mode 100644 (file)
index 0000000..142877e
--- /dev/null
@@ -0,0 +1 @@
+mediagoblin_licenses
diff --git a/docs/source/build/mediagoblin-licenses/setup.py b/docs/source/build/mediagoblin-licenses/setup.py
new file mode 100644 (file)
index 0000000..952ba3c
--- /dev/null
@@ -0,0 +1,30 @@
+#!/usr/bin/env python
+from distutils.core import setup
+import re
+
+from sys import version
+assert version >= '2.6', 'This package requires python 2.6 at least. Sorry.'
+
+def get_version():
+    """Parse __init__.py for version info, we cannot import it"""
+    version_re = re.compile(r'\s*__VERSION__\s*=\s*("|\')([\w\.\+]+)(\1)')
+    with open('mediagoblin_licenses/__init__.py', 'rt') as file:
+        for line in file:
+            if version_re.match(line):
+                return version_re.match(line).group(2)
+__VERSION__ = get_version()
+
+
+setup(name='mediagoblin-licenses',
+      version=__VERSION__,
+      description='Customize the licenses for your mediagoblin installation',
+      author='Sebastian Spaeth',
+      author_email='Sebastian@SSpaeth.de',
+      url='https://gitorious.org/mediagoblin-licenses/mediagoblin-licenses',
+      download_url='https://gitorious.org/mediagoblin-licenses/mediagoblin-licenses/archive-tarball/mediagoblin-licenses-v' + __VERSION__,
+      # http://bugs.python.org/issue13943. Must not be unicode...
+      packages=['mediagoblin_licenses'],
+      package_data = {'mediagoblin_licenses': ['README.rst', 'COPYING']},
+      license=(b'License :: OSI Approved :: GNU Affero General Public License '
+               b'v3 or later (AGPLv3+)')
+     )
diff --git a/docs/source/build/pip-delete-this-directory.txt b/docs/source/build/pip-delete-this-directory.txt
new file mode 100644 (file)
index 0000000..c8883ea
--- /dev/null
@@ -0,0 +1,5 @@
+This file is placed here by pip to indicate the source was put
+here by pip.
+
+Once this package is successfully installed this source code will be
+deleted (unless you remove this file).
diff --git a/docs/source/plugindocs/trim_whitespace.rst b/docs/source/plugindocs/trim_whitespace.rst
new file mode 100644 (file)
index 0000000..eb38e0e
--- /dev/null
@@ -0,0 +1 @@
+.. include:: ../../../mediagoblin/plugins/trim_whitespace/README.rst
index 25d4d83ff67f184213dc2bb2979219d69307d0bd..9b45f642de501e9c366aea5c69f8ab45dd46fd76 100644 (file)
@@ -19,6 +19,15 @@ This chapter has important information for releases in it.
 If you're upgrading from a previous release, please read it
 carefully, or at least skim over it.
 
+WIP
+=====
+
+**New features**
+
+**Other changed**
+
+* Dependency list has been reduced not requireing the "webob" package anymore.
+
 0.3.2
 =====
 
index e3e56bf2a2eb2567aa5085010f273c029b954a12..dc4bd5e636af4d6e5959c707ce81d199af384457 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -44,7 +44,6 @@ setup(
         'setuptools',
         'PasteScript',
         'beaker',
-        'webob<=1.2a2,>=1.1',
         'wtforms',
         'py-bcrypt',
         'nose',