Hello community,
here is the log from the commit of package python-sqlalchemy-migrate for openSUSE:Factory checked in at 2015-09-30 05:50:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-sqlalchemy-migrate (Old)
and /work/SRC/openSUSE:Factory/.python-sqlalchemy-migrate.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-sqlalchemy-migrate"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-sqlalchemy-migrate/python-sqlalchemy-migrate.changes 2015-04-23 08:04:48.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-sqlalchemy-migrate.new/python-sqlalchemy-migrate.changes 2015-09-30 05:50:29.000000000 +0200
@@ -1,0 +2,17 @@
+Tue Sep 1 08:05:02 UTC 2015 - tbechtold@suse.com
+
+- update to 0.10.0:
+ * Update URLs in documentation
+ * Add VerNum.__index__() for Python 3 support
+ * Fixes usage function for Py3
+ * Unblock migrate (py26 and py3* testing issues)
+ * Revert "Revert "uncap pbr and sqla requirements""
+ * Update flake8 related dependencies
+ * Revert "uncap pbr and sqla requirements"
+ * uncap pbr and sqla requirements
+ * Update tests and reqs for SQLA 1.0
+ * Ignore stderr output when invoking migrate script in tests
+ * Add Python 3 classifiers
+- Adjust Requires according to requirements.txt
+
+-------------------------------------------------------------------
Old:
----
sqlalchemy-migrate-0.9.6.tar.gz
New:
----
sqlalchemy-migrate-0.10.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-sqlalchemy-migrate.spec ++++++
--- /var/tmp/diff_new_pack.OWD88R/_old 2015-09-30 05:50:29.000000000 +0200
+++ /var/tmp/diff_new_pack.OWD88R/_new 2015-09-30 05:50:29.000000000 +0200
@@ -18,7 +18,7 @@
Name: python-sqlalchemy-migrate
-Version: 0.9.6
+Version: 0.10.0
Release: 0
Summary: Database schema migration for SQLAlchemy
License: MIT
@@ -28,8 +28,8 @@
BuildRequires: fdupes
BuildRequires: python-pbr
# Documentation requirements:
-BuildRequires: python-SQLAlchemy >= 0.6
-BuildRequires: python-Sphinx >= 0.5
+BuildRequires: python-SQLAlchemy >= 0.7.8
+BuildRequires: python-Sphinx >= 1.1.2
# Test requirements:
#BuildRequires: python-ScriptTest >= 1.0
BuildRequires: python-Tempita >= 0.4
@@ -38,9 +38,8 @@
#BuildRequires: python-pytz
Requires: python-SQLAlchemy >= 0.7.8
Requires: python-Tempita >= 0.4
-Requires: python-Tempita >= 0.4
Requires: python-decorator
-Requires: python-six >= 1.4.1
+Requires: python-six >= 1.7.0
Requires: python-sqlparse
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if 0%{?suse_version} && 0%{?suse_version} <= 1110
++++++ sqlalchemy-migrate-0.9.6.tar.gz -> sqlalchemy-migrate-0.10.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/AUTHORS new/sqlalchemy-migrate-0.10.0/AUTHORS
--- old/sqlalchemy-migrate-0.9.6/AUTHORS 2015-03-31 22:08:30.000000000 +0200
+++ new/sqlalchemy-migrate-0.10.0/AUTHORS 2015-08-31 23:05:45.000000000 +0200
@@ -32,9 +32,12 @@
Sascha Peilicke
Sascha Peilicke
Sean Dague
+Sean Dague
Sheng Bo Hou
Thomas Goirand
+Thomas Goirand
Thuy Christenson
+Victor Stinner
Yuval Langer
al.yazdi@gmail.com <unknown>
asuffield@gmail.com <unknown>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/ChangeLog new/sqlalchemy-migrate-0.10.0/ChangeLog
--- old/sqlalchemy-migrate-0.9.6/ChangeLog 2015-03-31 22:08:30.000000000 +0200
+++ new/sqlalchemy-migrate-0.10.0/ChangeLog 2015-08-31 23:05:45.000000000 +0200
@@ -1,6 +1,25 @@
CHANGES
=======
+0.10.0
+------
+
+* Update URLs in documentation
+* Add VerNum.__index__() for Python 3 support
+* Fixes usage function for Py3
+* Unblock migrate (py26 and py3* testing issues)
+
+0.9.7
+-----
+
+* Revert "Revert "uncap pbr and sqla requirements""
+* Update flake8 related dependencies
+* Revert "uncap pbr and sqla requirements"
+* uncap pbr and sqla requirements
+* Update tests and reqs for SQLA 1.0
+* Ignore stderr output when invoking migrate script in tests
+* Add Python 3 classifiers
+
0.9.6
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/PKG-INFO new/sqlalchemy-migrate-0.10.0/PKG-INFO
--- old/sqlalchemy-migrate-0.9.6/PKG-INFO 2015-03-31 22:08:31.000000000 +0200
+++ new/sqlalchemy-migrate-0.10.0/PKG-INFO 2015-08-31 23:05:45.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: sqlalchemy-migrate
-Version: 0.9.6
+Version: 0.10.0
Summary: Database schema migration for SQLAlchemy
Home-page: http://www.openstack.org/
Author: OpenStack
@@ -22,15 +22,16 @@
Help
----
- Sphinx documentation is available at the project page `packages.python.org
- http://packages.python.org/sqlalchemy-migrate/`_.
+ Sphinx documentation is available at the project page `readthedocs.org
+ https://sqlalchemy-migrate.readthedocs.org/`_.
- Users and developers can be found at #sqlalchemy-migrate on Freenode IRC
+ Users and developers can be found at #openstack-dev on Freenode IRC
network and at the public users mailing list `migrate-users
http://groups.google.com/group/migrate-users`_.
New releases and major changes are announced at the public announce mailing
- list `migrate-announce http://groups.google.com/group/migrate-announce`_
+ list `openstack-dev
+ http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev`_
and at the Python package index `sqlalchemy-migrate
http://pypi.python.org/pypi/sqlalchemy-migrate`_.
@@ -45,16 +46,13 @@
To run automated tests:
- * Copy test_db.cfg.tmpl to test_db.cfg
- * Edit test_db.cfg with database connection strings suitable for running tests.
- (Use empty databases.)
- * $ pip install -r requirements.txt -r test-requirements.txt
- * $ python setup.py develop
- * $ testr run --parallel
+ * install tox: ``pip install -U tox``
+ * run tox: ``tox``
+ * to test only a specific Python version: ``tox -e py27`` (Python 2.7)
Please report any issues with sqlalchemy-migrate to the issue tracker at
- `code.google.com issues
- http://code.google.com/p/sqlalchemy-migrate/issues/list`_
+ `Launchpad issues
+ https://bugs.launchpad.net/sqlalchemy-migrate`_
Platform: UNKNOWN
@@ -67,3 +65,6 @@
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 2.6
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.3
+Classifier: Programming Language :: Python :: 3.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/README.rst new/sqlalchemy-migrate-0.10.0/README.rst
--- old/sqlalchemy-migrate-0.9.6/README.rst 2015-03-31 22:07:45.000000000 +0200
+++ new/sqlalchemy-migrate-0.10.0/README.rst 2015-08-31 23:04:29.000000000 +0200
@@ -14,15 +14,16 @@
Help
----
-Sphinx documentation is available at the project page `packages.python.org
-http://packages.python.org/sqlalchemy-migrate/`_.
+Sphinx documentation is available at the project page `readthedocs.org
+https://sqlalchemy-migrate.readthedocs.org/`_.
-Users and developers can be found at #sqlalchemy-migrate on Freenode IRC
+Users and developers can be found at #openstack-dev on Freenode IRC
network and at the public users mailing list `migrate-users
http://groups.google.com/group/migrate-users`_.
New releases and major changes are announced at the public announce mailing
-list `migrate-announce http://groups.google.com/group/migrate-announce`_
+list `openstack-dev
+http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev`_
and at the Python package index `sqlalchemy-migrate
http://pypi.python.org/pypi/sqlalchemy-migrate`_.
@@ -37,13 +38,10 @@
To run automated tests:
-* Copy test_db.cfg.tmpl to test_db.cfg
-* Edit test_db.cfg with database connection strings suitable for running tests.
- (Use empty databases.)
-* $ pip install -r requirements.txt -r test-requirements.txt
-* $ python setup.py develop
-* $ testr run --parallel
+* install tox: ``pip install -U tox``
+* run tox: ``tox``
+* to test only a specific Python version: ``tox -e py27`` (Python 2.7)
Please report any issues with sqlalchemy-migrate to the issue tracker at
-`code.google.com issues
-http://code.google.com/p/sqlalchemy-migrate/issues/list`_
+`Launchpad issues
+https://bugs.launchpad.net/sqlalchemy-migrate`_
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/doc/source/download.rst new/sqlalchemy-migrate-0.10.0/doc/source/download.rst
--- old/sqlalchemy-migrate-0.9.6/doc/source/download.rst 2015-03-31 22:07:45.000000000 +0200
+++ new/sqlalchemy-migrate-0.10.0/doc/source/download.rst 2015-08-31 23:04:29.000000000 +0200
@@ -21,51 +21,32 @@
$ migrate help COMMAND
If you'd like to be notified when new versions of SQLAlchemy Migrate
-are released, subscribe to `migrate-announce`_.
+are released, subscribe to `openstack-dev`_.
.. _pip: http://pip.openplans.org/
.. _easy_install: http://peak.telecommunity.com/DevCenter/EasyInstall#installing-easy-install
.. _sqlalchemy: http://www.sqlalchemy.org/download.html
-.. _`project's download page`: http://code.google.com/p/sqlalchemy-migrate/downloads/list
.. _`cheese shop`: http://pypi.python.org/pypi/sqlalchemy-migrate
-.. _`migrate-announce`: http://groups.google.com/group/migrate-announce
+.. _`openstack-dev`: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
.. _development:
Development
-----------
-Migrate's Mercurial_ repository is located at `Google Code`_.
+If you would like to contribute to the development of OpenStack,
+you must follow the steps in this page:
-To get the latest trunk::
+ http://docs.openstack.org/infra/manual/developers.html
- $ hg clone http://sqlalchemy-migrate.googlecode.com/hg/
+Once those steps have been completed, changes to OpenStack
+should be submitted for review via the Gerrit tool, following
+the workflow documented at:
-Patches should be submitted to the `issue tracker`_. You are free to create
-your own clone to provide your patches. We are open to pull requests in our
-`issue tracker`_.
+ http://docs.openstack.org/infra/manual/developers.html#development-workflow
-If you want to work on sqlalchemy-migrate you might want to use a `virtualenv`.
+Pull requests submitted through GitHub will be ignored.
-To run the included test suite you have to copy :file:`test_db.cfg.tmpl` to
-:file:`test_db.cfg` and put SQLAlchemy database URLs valid for your environment
-into that file. We use `nose`_ for our tests and include a test requirements
-file for pip. You might use the following commands to install the test
-requirements and run the tests::
+Bugs should be filed on Launchpad, not GitHub:
- $ pip install -r test-req.pip
- $ python setup.py develop
- $ python setup.py nosetests
-
-If you are curious about status changes of sqlalchemy-migrate's issues you
-might want to subscribe to `sqlalchemy-migrate-issues`_.
-
-We use a `Jenkins CI`_ continuous integration tool installation to
-help us run tests on most of the databases that migrate supports.
-
-.. _Mercurial: http://www.mercurial-scm.org/
-.. _Google Code: http://sqlalchemy-migrate.googlecode.com/hg/
-.. _issue tracker: http://code.google.com/p/sqlalchemy-migrate/issues/list
-.. _sqlalchemy-migrate-issues: http://groups.google.com/group/sqlalchemy-migrate-issues
-.. _Jenkins CI: http://jenkins.gnuviech-server.de/job/sqlalchemy-migrate-all/
-.. _nose: http://readthedocs.org/docs/nose/
+ https://bugs.launchpad.net/sqlalchemy-migrate
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/doc/source/index.rst new/sqlalchemy-migrate-0.10.0/doc/source/index.rst
--- old/sqlalchemy-migrate-0.9.6/doc/source/index.rst 2015-03-31 22:07:45.000000000 +0200
+++ new/sqlalchemy-migrate-0.10.0/doc/source/index.rst 2015-08-31 23:04:29.000000000 +0200
@@ -7,9 +7,9 @@
:Author: Evan Rosson
:Maintainer: Domen Kožar
:Maintainer: Jan Dittberner
-:Issues: http://code.google.com/p/sqlalchemy-migrate/issues/list
-:Source Code: http://code.google.com/p/sqlalchemy-migrate/
-:CI Tool: http://jenkins.gnuviech-server.de/job/sqlalchemy-migrate-all/
+:Source Code: https://github.com/stackforge/sqlalchemy-migrate
+:Documentation: https://sqlalchemy-migrate.readthedocs.org/
+:Issues: https://bugs.launchpad.net/sqlalchemy-migrate
:Generated: |today|
:License: MIT
:Version: |release|
@@ -24,7 +24,7 @@
mentored by Jonathan LaCour.
The project was taken over by a small group of volunteers when Evan had no
- free time for the project. It is now hosted as a `Google Code project`_.
+ free time for the project. It is now hosted as a `Github project`_.
During the hosting change the project was renamed to SQLAlchemy Migrate.
Currently, sqlalchemy-migrate supports Python versions from 2.6 to 2.7.
@@ -64,6 +64,7 @@
- :ref:`oracle <oracle-d>`
- :ref:`firebird <firebird-d>`
- mssql
+ - DB2
* - :ref:`ALTER TABLE RENAME TABLE <table-rename>`
- yes
- yes
@@ -160,7 +161,7 @@
glossary
.. _`google's summer of code`: http://code.google.com/soc
-.. _`Google Code project`: http://code.google.com/p/sqlalchemy-migrate
+.. _`Github project`: https://github.com/stackforge/sqlalchemy-migrate
.. _sqlalchemy: http://www.sqlalchemy.org
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/migrate/changeset/__init__.py new/sqlalchemy-migrate-0.10.0/migrate/changeset/__init__.py
--- old/sqlalchemy-migrate-0.9.6/migrate/changeset/__init__.py 2015-03-31 22:07:45.000000000 +0200
+++ new/sqlalchemy-migrate-0.10.0/migrate/changeset/__init__.py 2015-08-31 23:04:29.000000000 +0200
@@ -12,6 +12,8 @@
_sa_version = tuple(int(re.match("\d+", x).group(0)) for x in _sa_version.split("."))
SQLA_07 = _sa_version >= (0, 7)
SQLA_08 = _sa_version >= (0, 8)
+SQLA_09 = _sa_version >= (0, 9)
+SQLA_10 = _sa_version >= (1, 0)
del re
del _sa_version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/migrate/changeset/util.py new/sqlalchemy-migrate-0.10.0/migrate/changeset/util.py
--- old/sqlalchemy-migrate-0.9.6/migrate/changeset/util.py 2015-03-31 22:07:45.000000000 +0200
+++ new/sqlalchemy-migrate-0.10.0/migrate/changeset/util.py 2015-08-31 23:04:29.000000000 +0200
@@ -1,3 +1,5 @@
+from migrate.changeset import SQLA_10
+
"""
Safe quoting method
"""
@@ -8,3 +10,12 @@
return obj.name.quote
else:
return obj.quote
+
+
+def fk_column_names(constraint):
+ if SQLA_10:
+ return [
+ constraint.columns[key].name for key in constraint.column_keys]
+ else:
+ return [
+ element.parent.name for element in constraint.elements]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/migrate/tests/changeset/test_constraint.py new/sqlalchemy-migrate-0.10.0/migrate/tests/changeset/test_constraint.py
--- old/sqlalchemy-migrate-0.9.6/migrate/tests/changeset/test_constraint.py 2015-03-31 22:07:45.000000000 +0200
+++ new/sqlalchemy-migrate-0.10.0/migrate/tests/changeset/test_constraint.py 2015-08-31 23:04:29.000000000 +0200
@@ -5,6 +5,7 @@
from sqlalchemy.util import *
from sqlalchemy.exc import *
+from migrate.changeset.util import fk_column_names
from migrate.exceptions import *
from migrate.changeset import *
@@ -91,7 +92,7 @@
self.assertTrue(list(self.table.c.fkey.foreign_keys) is not [])
else:
self.assertTrue(self.table.c.fkey.foreign_keys._list is not [])
- for key in fk.columns:
+ for key in fk_column_names(fk):
self.assertEqual(key, self.table.c.fkey.name)
self.assertEqual([e.column for e in fk.elements], [self.table.c.id])
self.assertEqual(list(fk.referenced), [self.table.c.id])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/migrate/tests/versioning/test_database.py new/sqlalchemy-migrate-0.10.0/migrate/tests/versioning/test_database.py
--- old/sqlalchemy-migrate-0.9.6/migrate/tests/versioning/test_database.py 2015-03-31 22:07:45.000000000 +0200
+++ new/sqlalchemy-migrate-0.10.0/migrate/tests/versioning/test_database.py 2015-08-31 23:04:29.000000000 +0200
@@ -1,4 +1,4 @@
-from sqlalchemy import select
+from sqlalchemy import select, text
from migrate.tests import fixture
class TestConnect(fixture.DB):
@@ -8,4 +8,6 @@
def test_connect(self):
"""Connect to the database successfully"""
# Connection is done in fixture.DB setup; make sure we can do stuff
- select(['42'],bind=self.engine).execute()
+ self.engine.execute(
+ select([text('42')])
+ )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/migrate/tests/versioning/test_shell.py new/sqlalchemy-migrate-0.10.0/migrate/tests/versioning/test_shell.py
--- old/sqlalchemy-migrate-0.9.6/migrate/tests/versioning/test_shell.py 2015-03-31 22:07:45.000000000 +0200
+++ new/sqlalchemy-migrate-0.10.0/migrate/tests/versioning/test_shell.py 2015-08-31 23:04:29.000000000 +0200
@@ -465,42 +465,61 @@
self.meta.reflect()
self.meta.drop_all() # in case junk tables are lying around in the test database
- result = self.env.run('migrate create %s %s' % (repos_path, repos_name))
- result = self.env.run('migrate drop_version_control %s %s' % (self.url, repos_path), expect_error=True)
- result = self.env.run('migrate version_control %s %s' % (self.url, repos_path))
+ result = self.env.run(
+ 'migrate create %s %s' % (repos_path, repos_name),
+ expect_stderr=True)
+ result = self.env.run(
+ 'migrate drop_version_control %s %s' % (self.url, repos_path),
+ expect_stderr=True, expect_error=True)
+ result = self.env.run(
+ 'migrate version_control %s %s' % (self.url, repos_path),
+ expect_stderr=True)
self.assertEqual(self.run_version(repos_path), 0)
self.assertEqual(self.run_db_version(self.url, repos_path), 0)
# Setup helper script.
- result = self.env.run('migrate manage %s --repository=%s --url=%s --model=%s'\
- % (script_path, repos_path, self.url, model_module))
+ result = self.env.run(
+ 'migrate manage %s --repository=%s --url=%s --model=%s'\
+ % (script_path, repos_path, self.url, model_module),
+ expect_stderr=True)
self.assertTrue(os.path.exists(script_path))
# Model is defined but database is empty.
result = self.env.run('migrate compare_model_to_db %s %s --model=%s' \
- % (self.url, repos_path, model_module))
- self.assertTrue("tables missing from database: tmp_account_rundiffs" in result.stdout)
+ % (self.url, repos_path, model_module), expect_stderr=True)
+ self.assertTrue(
+ "tables missing from database: tmp_account_rundiffs"
+ in result.stdout)
# Test Deprecation
result = self.env.run('migrate compare_model_to_db %s %s --model=%s' \
- % (self.url, repos_path, model_module.replace(":", ".")), expect_error=True)
+ % (self.url, repos_path, model_module.replace(":", ".")),
+ expect_stderr=True, expect_error=True)
self.assertEqual(result.returncode, 0)
- self.assertTrue("tables missing from database: tmp_account_rundiffs" in result.stdout)
+ self.assertTrue(
+ "tables missing from database: tmp_account_rundiffs"
+ in result.stdout)
# Update db to latest model.
result = self.env.run('migrate update_db_from_model %s %s %s'\
- % (self.url, repos_path, model_module))
+ % (self.url, repos_path, model_module), expect_stderr=True)
self.assertEqual(self.run_version(repos_path), 0)
self.assertEqual(self.run_db_version(self.url, repos_path), 0) # version did not get bumped yet because new version not yet created
result = self.env.run('migrate compare_model_to_db %s %s %s'\
- % (self.url, repos_path, model_module))
+ % (self.url, repos_path, model_module), expect_stderr=True)
self.assertTrue("No schema diffs" in result.stdout)
- result = self.env.run('migrate drop_version_control %s %s' % (self.url, repos_path), expect_error=True)
- result = self.env.run('migrate version_control %s %s' % (self.url, repos_path))
-
- result = self.env.run('migrate create_model %s %s' % (self.url, repos_path))
+ result = self.env.run(
+ 'migrate drop_version_control %s %s' % (self.url, repos_path),
+ expect_stderr=True, expect_error=True)
+ result = self.env.run(
+ 'migrate version_control %s %s' % (self.url, repos_path),
+ expect_stderr=True)
+
+ result = self.env.run(
+ 'migrate create_model %s %s' % (self.url, repos_path),
+ expect_stderr=True)
temp_dict = dict()
six.exec_(result.stdout, temp_dict)
@@ -514,7 +533,7 @@
##Column('passwd', String(length=None, convert_unicode=False, assert_unicode=None))""" in result.stdout)
## We're happy with db changes, make first db upgrade script to go from version 0 -> 1.
- #result = self.env.run('migrate make_update_script_for_model', expect_error=True)
+ #result = self.env.run('migrate make_update_script_for_model', expect_error=True, expect_stderr=True)
#self.assertTrue('Not enough arguments' in result.stderr)
#result_script = self.env.run('migrate make_update_script_for_model %s %s %s %s'\
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/migrate/tests/versioning/test_version.py new/sqlalchemy-migrate-0.10.0/migrate/tests/versioning/test_version.py
--- old/sqlalchemy-migrate-0.9.6/migrate/tests/versioning/test_version.py 2015-03-31 22:07:45.000000000 +0200
+++ new/sqlalchemy-migrate-0.10.0/migrate/tests/versioning/test_version.py 2015-08-31 23:04:29.000000000 +0200
@@ -69,6 +69,13 @@
self.assertTrue(VerNum(2) >= 1)
self.assertFalse(VerNum(1) >= 2)
+ def test_int_cast(self):
+ ver = VerNum(3)
+ # test __int__
+ self.assertEqual(int(ver), 3)
+ # test __index__: range() doesn't call __int__
+ self.assertEqual(list(range(ver, ver)), [])
+
class TestVersion(fixture.Pathed):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/migrate/versioning/migrate_repository.py new/sqlalchemy-migrate-0.10.0/migrate/versioning/migrate_repository.py
--- old/sqlalchemy-migrate-0.9.6/migrate/versioning/migrate_repository.py 2015-03-31 22:07:45.000000000 +0200
+++ new/sqlalchemy-migrate-0.10.0/migrate/versioning/migrate_repository.py 2015-08-31 23:04:29.000000000 +0200
@@ -13,13 +13,9 @@
def usage():
"""Gives usage information."""
- print """Usage: %(prog)s repository-to-migrate
-
- Upgrade your repository to the new flat format.
-
- NOTE: You should probably make a backup before running this.
- """ % {'prog': sys.argv[0]}
-
+ print("Usage: %s repository-to-migrate" % sys.argv[0])
+ print("Upgrade your repository to the new flat format.")
+ print("NOTE: You should probably make a backup before running this.")
sys.exit(1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/migrate/versioning/repository.py new/sqlalchemy-migrate-0.10.0/migrate/versioning/repository.py
--- old/sqlalchemy-migrate-0.9.6/migrate/versioning/repository.py 2015-03-31 22:07:45.000000000 +0200
+++ new/sqlalchemy-migrate-0.10.0/migrate/versioning/repository.py 2015-08-31 23:04:29.000000000 +0200
@@ -62,7 +62,7 @@
def run(self, *p, **k):
"""Run the changeset scripts"""
- for version, script in self:
+ for ver, script in self:
script.run(*p, **k)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/migrate/versioning/util/__init__.py new/sqlalchemy-migrate-0.10.0/migrate/versioning/util/__init__.py
--- old/sqlalchemy-migrate-0.9.6/migrate/versioning/util/__init__.py 2015-03-31 22:07:45.000000000 +0200
+++ new/sqlalchemy-migrate-0.10.0/migrate/versioning/util/__init__.py 2015-08-31 23:04:29.000000000 +0200
@@ -164,7 +164,7 @@
engine.dispose()
-class Memoize:
+class Memoize(object):
"""Memoize(fn) - an instance which acts like fn but memoizes its arguments
Will only work on functions with non-mutable arguments
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/migrate/versioning/util/importpath.py new/sqlalchemy-migrate-0.10.0/migrate/versioning/util/importpath.py
--- old/sqlalchemy-migrate-0.9.6/migrate/versioning/util/importpath.py 2015-03-31 22:07:45.000000000 +0200
+++ new/sqlalchemy-migrate-0.10.0/migrate/versioning/util/importpath.py 2015-08-31 23:04:29.000000000 +0200
@@ -1,18 +1,30 @@
import os
import sys
-from six.moves import reload_module as reload
+PY33 = sys.version_info >= (3, 3)
+
+if PY33:
+ from importlib import machinery
+else:
+ from six.moves import reload_module as reload
+
def import_path(fullpath):
""" Import a file with full path specification. Allows one to
import from anywhere, something __import__ does not do.
"""
- # http://zephyrfalcon.org/weblog/arch_d7_2002_08_31.html
- path, filename = os.path.split(fullpath)
- filename, ext = os.path.splitext(filename)
- sys.path.append(path)
- module = __import__(filename)
- reload(module) # Might be out of date during tests
- del sys.path[-1]
- return module
-
+ if PY33:
+ name = os.path.splitext(os.path.basename(fullpath))[0]
+ return machinery.SourceFileLoader(
+ name, fullpath).load_module(name)
+ else:
+ # http://zephyrfalcon.org/weblog/arch_d7_2002_08_31.html
+ path, filename = os.path.split(fullpath)
+ filename, ext = os.path.splitext(filename)
+ sys.path.append(path)
+ try:
+ module = __import__(filename)
+ reload(module) # Might be out of date during tests
+ return module
+ finally:
+ del sys.path[-1]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/migrate/versioning/version.py new/sqlalchemy-migrate-0.10.0/migrate/versioning/version.py
--- old/sqlalchemy-migrate-0.9.6/migrate/versioning/version.py 2015-03-31 22:07:45.000000000 +0200
+++ new/sqlalchemy-migrate-0.10.0/migrate/versioning/version.py 2015-08-31 23:04:29.000000000 +0200
@@ -65,6 +65,9 @@
def __int__(self):
return int(self.value)
+ def __index__(self):
+ return int(self.value)
+
if six.PY3:
def __hash__(self):
return hash(self.value)
@@ -252,7 +255,7 @@
self.python = script.PythonScript(path)
-class Extensions:
+class Extensions(object):
"""A namespace for file extensions"""
py = 'py'
sql = 'sql'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/requirements.txt new/sqlalchemy-migrate-0.10.0/requirements.txt
--- old/sqlalchemy-migrate-0.9.6/requirements.txt 2015-03-31 22:07:45.000000000 +0200
+++ new/sqlalchemy-migrate-0.10.0/requirements.txt 2015-08-31 23:04:29.000000000 +0200
@@ -1,9 +1,12 @@
-pbr>=0.6,!=0.7,<1.0
+# The order of packages is significant, because pip processes them in the order
+# of appearance. Changing the order has an impact on the overall integration
+# process, which may cause wedges in the gate later.
+pbr>=1.3,<2.0
# never put a cap on this, *ever*, sqla versions are handled via
# tox, and if SQLA is capped it will only make it so we aren't testing
# against all the versions we are compatible with.
-SQLAlchemy>=0.7.8,!=0.9.5,<=0.9.99
+SQLAlchemy>=0.7.8,!=0.9.5
decorator
six>=1.7.0
sqlparse
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/setup.cfg new/sqlalchemy-migrate-0.10.0/setup.cfg
--- old/sqlalchemy-migrate-0.9.6/setup.cfg 2015-03-31 22:08:31.000000000 +0200
+++ new/sqlalchemy-migrate-0.10.0/setup.cfg 2015-08-31 23:05:45.000000000 +0200
@@ -16,6 +16,9 @@
Programming Language :: Python :: 2
Programming Language :: Python :: 2.7
Programming Language :: Python :: 2.6
+ Programming Language :: Python :: 3
+ Programming Language :: Python :: 3.3
+ Programming Language :: Python :: 3.4
[files]
packages =
@@ -32,7 +35,7 @@
source-dir = doc/source
[egg_info]
-tag_svn_revision = 0
tag_date = 0
+tag_svn_revision = 0
tag_build =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/setup.py new/sqlalchemy-migrate-0.10.0/setup.py
--- old/sqlalchemy-migrate-0.9.6/setup.py 2015-03-31 22:07:45.000000000 +0200
+++ new/sqlalchemy-migrate-0.10.0/setup.py 2015-08-31 23:04:29.000000000 +0200
@@ -16,6 +16,14 @@
import setuptools
+# In python < 2.7.4, a lazy loading of package `pbr` will break
+# setuptools if some other modules registered functions in `atexit`.
+# solution from: http://bugs.python.org/issue15881#msg170215
+try:
+ import multiprocessing # noqa
+except ImportError:
+ pass
+
setuptools.setup(
- setup_requires=['pbr'],
+ setup_requires=['pbr>=1.3'],
pbr=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/sqlalchemy_migrate.egg-info/PKG-INFO new/sqlalchemy-migrate-0.10.0/sqlalchemy_migrate.egg-info/PKG-INFO
--- old/sqlalchemy-migrate-0.9.6/sqlalchemy_migrate.egg-info/PKG-INFO 2015-03-31 22:08:30.000000000 +0200
+++ new/sqlalchemy-migrate-0.10.0/sqlalchemy_migrate.egg-info/PKG-INFO 2015-08-31 23:05:45.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: sqlalchemy-migrate
-Version: 0.9.6
+Version: 0.10.0
Summary: Database schema migration for SQLAlchemy
Home-page: http://www.openstack.org/
Author: OpenStack
@@ -22,15 +22,16 @@
Help
----
- Sphinx documentation is available at the project page `packages.python.org
- http://packages.python.org/sqlalchemy-migrate/`_.
+ Sphinx documentation is available at the project page `readthedocs.org
+ https://sqlalchemy-migrate.readthedocs.org/`_.
- Users and developers can be found at #sqlalchemy-migrate on Freenode IRC
+ Users and developers can be found at #openstack-dev on Freenode IRC
network and at the public users mailing list `migrate-users
http://groups.google.com/group/migrate-users`_.
New releases and major changes are announced at the public announce mailing
- list `migrate-announce http://groups.google.com/group/migrate-announce`_
+ list `openstack-dev
+ http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev`_
and at the Python package index `sqlalchemy-migrate
http://pypi.python.org/pypi/sqlalchemy-migrate`_.
@@ -45,16 +46,13 @@
To run automated tests:
- * Copy test_db.cfg.tmpl to test_db.cfg
- * Edit test_db.cfg with database connection strings suitable for running tests.
- (Use empty databases.)
- * $ pip install -r requirements.txt -r test-requirements.txt
- * $ python setup.py develop
- * $ testr run --parallel
+ * install tox: ``pip install -U tox``
+ * run tox: ``tox``
+ * to test only a specific Python version: ``tox -e py27`` (Python 2.7)
Please report any issues with sqlalchemy-migrate to the issue tracker at
- `code.google.com issues
- http://code.google.com/p/sqlalchemy-migrate/issues/list`_
+ `Launchpad issues
+ https://bugs.launchpad.net/sqlalchemy-migrate`_
Platform: UNKNOWN
@@ -67,3 +65,6 @@
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 2.6
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.3
+Classifier: Programming Language :: Python :: 3.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/sqlalchemy_migrate.egg-info/pbr.json new/sqlalchemy-migrate-0.10.0/sqlalchemy_migrate.egg-info/pbr.json
--- old/sqlalchemy-migrate-0.9.6/sqlalchemy_migrate.egg-info/pbr.json 2015-03-31 22:08:30.000000000 +0200
+++ new/sqlalchemy-migrate-0.10.0/sqlalchemy_migrate.egg-info/pbr.json 2015-08-31 23:05:45.000000000 +0200
@@ -1 +1 @@
-{"git_version": "e57ee4c", "is_release": true}
\ No newline at end of file
+{"git_version": "fe3e08a", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/sqlalchemy_migrate.egg-info/requires.txt new/sqlalchemy-migrate-0.10.0/sqlalchemy_migrate.egg-info/requires.txt
--- old/sqlalchemy-migrate-0.9.6/sqlalchemy_migrate.egg-info/requires.txt 2015-03-31 22:08:30.000000000 +0200
+++ new/sqlalchemy-migrate-0.10.0/sqlalchemy_migrate.egg-info/requires.txt 2015-08-31 23:05:45.000000000 +0200
@@ -1,5 +1,5 @@
-pbr>=0.6,!=0.7,<1.0
-SQLAlchemy>=0.7.8,!=0.9.5,<=0.9.99
+pbr>=1.3,<2.0
+SQLAlchemy>=0.7.8,!=0.9.5
decorator
six>=1.7.0
sqlparse
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/test-requirements.txt new/sqlalchemy-migrate-0.10.0/test-requirements.txt
--- old/sqlalchemy-migrate-0.9.6/test-requirements.txt 2015-03-31 22:07:45.000000000 +0200
+++ new/sqlalchemy-migrate-0.10.0/test-requirements.txt 2015-08-31 23:04:29.000000000 +0200
@@ -1,14 +1,14 @@
# Install bounded pep8/pyflakes first, then let flake8 install
-pep8==1.4.5
-pyflakes>=0.7.2,<0.7.4
-flake8==2.0
-hacking>=0.8.0,<0.9
+pep8==1.5.7
+pyflakes==0.8.1
+flake8>=2.2.4,<=2.4.1
+hacking>=0.10.0,<0.11
coverage>=3.6
discover
feedparser
fixtures>=0.3.14
-mock>=1.0
+mock>=1.2
mox>=0.5.3
psycopg2
python-subunit>=0.0.18
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sqlalchemy-migrate-0.9.6/tox.ini new/sqlalchemy-migrate-0.10.0/tox.ini
--- old/sqlalchemy-migrate-0.9.6/tox.ini 2015-03-31 22:07:45.000000000 +0200
+++ new/sqlalchemy-migrate-0.10.0/tox.ini 2015-08-31 23:04:29.000000000 +0200
@@ -80,6 +80,8 @@
python setup.py testr --slowest --testr-args='{posargs}'
[flake8]
+# E111 indentation is not a multiple of four
+# E113 unexpected indentation
# E121 continuation line indentation is not a multiple of four
# E122 continuation line missing indentation or outdented
# E123 closing bracket does not match indentation of opening bracket's line
@@ -88,12 +90,15 @@
# E126 continuation line over-indented for hanging indent
# E127 continuation line over-indented for visual indent
# E128 continuation line under-indented for visual indent
+# E129 visually indented line with same indent as next logical line
+# E131 continuation line unaligned for hanging indent
# E202 whitespace before ')'
# E203 whitespace before ','
# E225 missing whitespace around operator
# E226 missing whitespace around arithmetic operator
# E228 missing whitespace around modulo operator
# E231 missing whitespace after ','
+# E265 block comment should start with '# '
# H234 assertEquals is deprecated, use assertEqual
# E251 unexpected spaces around keyword / parameter equals
# E261 at least two spaces before inline comment
@@ -122,9 +127,10 @@
# H402 one line docstring needs punctuation.
# H403 multi line docstring end on new line
# H404 multi line docstring should start with a summary
+# H405 multi line docstring summary not separated with an empty line
# H501 Do not use locals() for string formatting
# W391 blank line at end of file
-ignore = E121,E122,E123,E124,E125,E126,E127,E128,E202,E203,E225,E226,E228,E231,E251,E261,E272,E301,E302,E303,E401,E501,E502,E702,E712,F401,F403,F811,F821,F841,H101,H201,H202,H233,H234,H301,H302,H306,H401,H402,H403,H404,H501,W391
+ignore = E111,E113,E121,E122,E123,E124,E125,E126,E127,E128,E129,E131,E202,E203,E225,E226,E228,E231,E251,E261,E265,E272,E301,E302,E303,E401,E501,E502,E702,E712,F401,F403,F811,F821,F841,H101,H201,H202,H233,H234,H301,H302,H306,H401,H402,H403,H404,H405,H501,W391
show-source = true
builtins = _
exclude=.venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,tools,build