Hello community,
here is the log from the commit of package python-sqlalchemy-migrate for
openSUSE:Leap:15.2 checked in at 2020-03-02 13:23:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2/python-sqlalchemy-migrate (Old)
and /work/SRC/openSUSE:Leap:15.2/.python-sqlalchemy-migrate.new.26092
(New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-sqlalchemy-migrate"
Mon Mar 2 13:23:27 2020 rev:15 rq:777180 version:0.13.0
Changes:
--------
---
/work/SRC/openSUSE:Leap:15.2/python-sqlalchemy-migrate/python-sqlalchemy-migrate.changes
2020-01-15 15:53:31.467600693 +0100
+++
/work/SRC/openSUSE:Leap:15.2/.python-sqlalchemy-migrate.new.26092/python-sqlalchemy-migrate.changes
2020-03-02 13:23:27.190409792 +0100
@@ -1,0 +2,28 @@
+Fri Dec 20 18:38:29 UTC 2019 - Dirk Mueller <[email protected]>
+
+- update to 0.13.0:
+ * remove inspect.getargspec deprecation warning
+ * Use engine.connect(); don't use private \_run\_visitor method
+ * Claim support for python 3.6
+ * Claim support for python 3.5
+
+-------------------------------------------------------------------
+Tue Apr 23 12:20:58 UTC 2019 - Thomas Bechtold <[email protected]>
+
+- update to 0.12.0:
+ * Change title in README.rst
+ * Don't use deprecated / non-functional "force" parameter
+ * Use legacy\_alter\_table ON in sqlite recreate\_table
+ * Remove py26 support
+ * Add .eggs in .gitignore
+ * Import MutableMapping from the correct Python module
+ * Update mailinglist from dev to discuss
+ * Get rid of psycopg2 warnings by disabling wheels
+ * Enforce that pbr used is >= 1.8
+
+-------------------------------------------------------------------
+Tue Dec 4 12:54:52 UTC 2018 - Matej Cepl <[email protected]>
+
+- Remove superfluous devel dependency for noarch package
+
+-------------------------------------------------------------------
Old:
----
sqlalchemy-migrate-0.11.0.tar.gz
New:
----
sqlalchemy-migrate-0.13.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-sqlalchemy-migrate.spec ++++++
--- /var/tmp/diff_new_pack.gsLWg7/_old 2020-03-02 13:23:27.514410436 +0100
+++ /var/tmp/diff_new_pack.gsLWg7/_new 2020-03-02 13:23:27.518410444 +0100
@@ -1,8 +1,7 @@
#
# spec file for package python-sqlalchemy-migrate
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
-# Copyright 2011 LISA GmbH, Bingen, Germany.
+# Copyright (c) 2019 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -13,31 +12,30 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-sqlalchemy-migrate
-Version: 0.11.0
+Version: 0.13.0
Release: 0
Summary: Database schema migration for SQLAlchemy
License: MIT
Group: Development/Libraries/Python
-Url: http://pypi.python.org/pypi/sqlalchemy-migrate
-Source:
https://pypi.io/packages/source/s/sqlalchemy-migrate/sqlalchemy-migrate-%{version}.tar.gz
-BuildRequires: %{python_module devel}
+URL: http://pypi.python.org/pypi/sqlalchemy-migrate
+Source:
https://files.pythonhosted.org/packages/source/s/sqlalchemy-migrate/sqlalchemy-migrate-%{version}.tar.gz
+# Test requirements:
+#BuildRequires: python-ScriptTest >= 1.0
+BuildRequires: %{python_module Tempita >= 0.4}
+BuildRequires: %{python_module decorator}
BuildRequires: %{python_module pbr}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
# Documentation requirements:
-BuildRequires: python3-SQLAlchemy >= 0.7.8
+BuildRequires: python3-SQLAlchemy >= 0.9.6
BuildRequires: python3-Sphinx >= 1.1.2
-# Test requirements:
-#BuildRequires: python-ScriptTest >= 1.0
-BuildRequires: %{python_module Tempita >= 0.4}
-BuildRequires: %{python_module decorator}
Requires: python-SQLAlchemy >= 0.7.8
Requires: python-Tempita >= 0.4
Requires: python-decorator
@@ -46,7 +44,6 @@
Requires(post): update-alternatives
Requires(preun): update-alternatives
BuildArch: noarch
-
%python_subpackages
%description
@@ -79,7 +76,7 @@
%build
%python_build
-%__python3 setup.py build_sphinx && rm doc/build/html/.buildinfo # Build HTML
documentation
+python3 setup.py build_sphinx && rm doc/build/html/.buildinfo # Build HTML
documentation
%install
%python_install
@@ -100,14 +97,15 @@
%python_uninstall_alternative migrate-repository
%files %{python_files}
-%defattr(-,root,root)
-%doc COPYING README.rst
+%license COPYING
+%doc README.rst
%python_alternative %{_bindir}/migrate
%python_alternative %{_bindir}/migrate-repository
%{python_sitelib}/migrate
%{python_sitelib}/sqlalchemy_migrate-*
%files -n python-sqlalchemy-migrate-doc
-%doc COPYING doc/build/html
+%license COPYING
+%doc doc/build/html
%changelog
++++++ sqlalchemy-migrate-0.11.0.tar.gz -> sqlalchemy-migrate-0.13.0.tar.gz
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/sqlalchemy-migrate-0.11.0/.zuul.yaml
new/sqlalchemy-migrate-0.13.0/.zuul.yaml
--- old/sqlalchemy-migrate-0.11.0/.zuul.yaml 1970-01-01 01:00:00.000000000
+0100
+++ new/sqlalchemy-migrate-0.13.0/.zuul.yaml 2019-10-22 23:14:37.000000000
+0200
@@ -0,0 +1,37 @@
+- project:
+ templates:
+ - docs-on-readthedocs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ vars:
+ rtd_webhook_id: '61274'
+ check:
+ jobs:
+ - sqlalchemy-migrate-tox-py27sa07
+ - sqlalchemy-migrate-devstack:
+ voting: false
+ gate:
+ jobs:
+ - sqlalchemy-migrate-tox-py27sa07
+
+- job:
+ name: sqlalchemy-migrate-tox-py27sa07
+ parent: tox
+ description: |
+ Run tests for sqlalchemy-migrate project.
+
+ Uses tox with the ``py27sa07`` environment.
+ vars:
+ tox_envlist: py27sa07
+
+- job:
+ name: sqlalchemy-migrate-devstack
+ parent: legacy-dsvm-base
+ run: playbooks/sqlalchemy-migrate-devstack-dsvm/run.yaml
+ post-run: playbooks/sqlalchemy-migrate-devstack-dsvm/post.yaml
+ timeout: 10800
+ required-projects:
+ - openstack/devstack
+ - openstack/devstack-gate
+ - x/sqlalchemy-migrate
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/sqlalchemy-migrate-0.11.0/AUTHORS
new/sqlalchemy-migrate-0.13.0/AUTHORS
--- old/sqlalchemy-migrate-0.11.0/AUTHORS 2017-03-01 15:02:52.000000000
+0100
+++ new/sqlalchemy-migrate-0.13.0/AUTHORS 2019-10-22 23:15:46.000000000
+0200
@@ -1,8 +1,11 @@
Alex Favaro <[email protected]>
Andreas Jaeger <[email protected]>
+Anusree <[email protected]>
Bob Farrell <[email protected]>
Brant Knudson <[email protected]>
+Chih-Hsuan Yen <[email protected]>
Chris Withers <[email protected]>
+Corey Bryant <[email protected]>
Cyril Roelandt <[email protected]>
Dan Prince <[email protected]>
David Ripton <[email protected]>
@@ -10,17 +13,21 @@
Dustin J. Mitchell <[email protected]>
Eric Harney <[email protected]>
Gabriel <[email protected]>
+Haikel Guemar <[email protected]>
Ihar Hrachyshka <[email protected]>
Jan Dittberner <[email protected]>
Jan Dittberner <[email protected]>
Jan Dittberner <[email protected]>
Jason Michalski <[email protected]>
Jeremy Stanley <[email protected]>
+Jonathan Herlin <[email protected]>
Josip Delic <[email protected]>
Longgeek <[email protected]>
+Matt Riedemann <[email protected]>
Matt Riedemann <[email protected]>
Mike Bayer <[email protected]>
Monty Taylor <[email protected]>
+Nicola Soranzo <[email protected]>
Pete Keen <[email protected]>
Peter Conerly <[email protected]>
Pádraig Brady <[email protected]>
@@ -34,6 +41,7 @@
Sascha Peilicke <[email protected]>
Sean Dague <[email protected]>
Sean Dague <[email protected]>
+Sean Mooney <[email protected]>
Sheng Bo Hou <[email protected]>
Thomas Goirand <[email protected]>
Thomas Goirand <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/sqlalchemy-migrate-0.11.0/ChangeLog
new/sqlalchemy-migrate-0.13.0/ChangeLog
--- old/sqlalchemy-migrate-0.11.0/ChangeLog 2017-03-01 15:02:52.000000000
+0100
+++ new/sqlalchemy-migrate-0.13.0/ChangeLog 2019-10-22 23:15:46.000000000
+0200
@@ -1,11 +1,40 @@
CHANGES
=======
+0.13.0
+------
+
+* remove inspect.getargspec deprecation warning
+* Use engine.connect(); don't use private \_run\_visitor method
+* Claim support for python 3.6
+* Claim support for python 3.5
+* Remove test-requirements-py\*.txt files
+* Add bindep support
+* Remove py26 tox targets
+* Import zuul jobs
+* Fix docs build
+* OpenDev Migration Patch
+
+0.12.0
+------
+
+* Change title in README.rst
+* Don't use deprecated / non-functional "force" parameter
+* Use mysqlclient
+* Use legacy\_alter\_table ON in sqlite recreate\_table
+* Remove py26 support
+* Add .eggs in .gitignore
+* Import MutableMapping from the correct Python module
+* Update mailinglist from dev to discuss
+* Get rid of psycopg2 warnings by disabling wheels
+* Enforce that pbr used is >= 1.8
+
0.11.0
------
* Use a modern PBR package
* Prepare for using standard python tests
+* Fix spelling mistake
* Set autoincrement to False when modifying to non-Integer datatype
* Raise VersionNotFoundError instead of KeyError
* Fix DeprecationWarning on setuptools >= 11.3
@@ -15,9 +44,9 @@
------
* Update URLs in documentation
-* Add VerNum.__index__() for Python 3 support
+* Add VerNum.\_\_index\_\_() for Python 3 support
* Fixes usage function for Py3
-* Unblock migrate (py26 and py3* testing issues)
+* Unblock migrate (py26 and py3\* testing issues)
0.9.7
-----
@@ -38,11 +67,11 @@
0.9.5
-----
-* Don't run the test if _setup() fails
+* Don't run the test if \_setup() fails
* Correcting minor typo
* Fix .gitignore for .tox and .testrepository
* allow dropping fkeys with sqlite
-* Add pretty_tox setup
+* Add pretty\_tox setup
* script: strip comments in SQL statements
0.9.4
@@ -75,7 +104,7 @@
* Move patch from oslo to drop unique constraints with sqlite
* Port to Python3
-* tests: Replace "self.assert_" by "self.assertTrue"
+* tests: Replace "self.assert\_" by "self.assertTrue"
0.9
---
@@ -85,7 +114,7 @@
* fix scripttest compat
* Use native quote attribute introduced in sqla 0.9
* Fix genmodel for SQLA 0.9
-* Conditionally import ibmdb2/ibm_db_sa
+* Conditionally import ibmdb2/ibm\_db\_sa
* migrate needs subunit >= 0.0.18
* UniqueConstraint named and escaped twice
* Fix 3 files with Windows line endings to Unix line endings
@@ -107,14 +136,14 @@
0.8.2
-----
-* Un-break the version in migrate/__init__.py
+* Un-break the version in migrate/\_\_init\_\_.py
* Fix the version number to match the last release
0.8.1
-----
-* Remove the tag_build line from setup.cfg
-* Drop setuptools_git test requirement
+* Remove the tag\_build line from setup.cfg
+* Drop setuptools\_git test requirement
0.8
---
@@ -158,15 +187,15 @@
* rewrap README
* update sqlalchemy documentation links use explicit code-block markup
* update intersphinx configuration, add sphinxcontrib.issuetracker
configuration
-* ignore vim swap files and docs/_static
+* ignore vim swap files and docs/\_static
* document adding/droping columns (fixes issue 104)
* PEP-8 compliant script templates
* add regression test (fixes issue 105)
* fix issues with ConfigParser and existing repositories (fixes issue 115)
* give credits to Benoît Allard
-* remove obsolete manage.py_tmpl (related to issue 121)
+* remove obsolete manage.py\_tmpl (related to issue 121)
* update changelog (add issue 121 bugfix)
-* generate if __name__ == "__main__" in manage.py (fixes issue 121)
+* generate if \_\_name\_\_ == "\_\_main\_\_" in manage.py (fixes issue 121)
* update changelog (include #125 fix)
* merge e5bd2821eea8 from https://code.google.com/r/alyazdi-patches/ (fixes
issue 125)
* update changelog
@@ -181,12 +210,12 @@
* fixed issue 129
* fixed issue 83
* remove unused import
-* Fix issue 124: ignore sqlite_sequence in comparing db to model
+* Fix issue 124: ignore sqlite\_sequence in comparing db to model
* Use two models in generated migrations. Test column addition and removal
* Put constraints (positional) before args (keywords)
* Output has changed even without the SQLa patch, update #122 tests
* Fix and test issue 118. Clarify genmodel transformations
-* Fix column creation in make_update_script_for_model
+* Fix column creation in make\_update\_script\_for\_model
* More concise declarative output
* More pep8 compliant declarative output
* Fix some tests that broke when adding descriptions for sql scripts
@@ -200,7 +229,7 @@
-----
* Added signature for changeset 35038c66152b
-* set migrate.__version__ to 0.7.1
+* set migrate.\_\_version\_\_ to 0.7.1
* finalize changelog for 0.7.1
* fix issue tracking and source code URLs
* fix column.create() properly
@@ -211,7 +240,7 @@
---
* update version number in docs/conf.py
-* add migrate.__version__ (Fixes issue 111)
+* add migrate.\_\_version\_\_ (Fixes issue 111)
* update changelog and version information
* bump version number to 0.7 to indicate SQLA 0.7 compatibility
* no special treatment for SQLA 0.7 required in migrate.changeset.ansisql
@@ -219,10 +248,10 @@
* fix unit test for adding new columns with foreign keys
* use DatabaseError instead of ProgrammingError because behaviour seems to be
database dependent (addresses issue 122)
* table.drop() raises ProgrammingError in SQLAlchemy 0.7 instead of SQLError
(addresses #112)
-* SQLAlchemy 0.7's column.foreign_keys is a set and has no _list (addresses
#112)
+* SQLAlchemy 0.7's column.foreign\_keys is a set and has no \_list (addresses
#112)
* use proper encoding instead of True (addresses #112)
* fix one more test (addresses #112)
-* use Table._columns to remove columns (addresses #112)
+* use Table.\_columns to remove columns (addresses #112)
* psycopg2 downloads from initrd.org work without workaround
* add Developing with migrations tutorial link
* merge
@@ -235,9 +264,9 @@
-----
* finalize changelog for 0.6.1
-* Bring back alter_metadata on ColumnDelta: it seems intertwined with a lot of
the tests. So, it's a private API now..
+* Bring back alter\_metadata on ColumnDelta: it seems intertwined with a lot
of the tests. So, it's a private API now..
* try to get firebird stuff working with 0.6.6
-* remove the alter_metadata feature
+* remove the alter\_metadata feature
* work around firebird's insistence that indexes and constraints are dropped
before columns that are references by them
* fix sqlite column dropper now that the table is only modified after the
visitor is run
* firebird can only drop named foreign keys
@@ -252,7 +281,7 @@
* merge
* adding faq section to docs
* make migrate.changeset.constraint.ForeignKeyConstraint.autoname work with
SQLAlchemy 0.5 and 0.6
-* use _index_identifier instead of _validate_identifier if
_validate_identifier does not exist in migrate/changeset/ansisql.py
+* use \_index\_identifier instead of \_validate\_identifier if
\_validate\_identifier does not exist in migrate/changeset/ansisql.py
* use absolute imports of exception classes (fixes tests)
* fix generation of foreign key constraint name in
migrate.changeset.constraint.ForeignKeyConstraint.autoname
* merge
@@ -268,14 +297,14 @@
* clear out the test db for each test, making tests more isolated
* for when logging is just annoying ;-)
* silence logger that SA adds
-* give better feedback when errors occur in _setup or _teardown
+* give better feedback when errors occur in \_setup or \_teardown
* quit screwing with the testing frameworks..
* update feature matrix
* correct change log structure
* Fix issue 94 - it was impossible to add a column with a non-unique index
* implement column adding with foreign keys on sqlite
-* Fix bug with column dropping involving foreign keys. Bonus:
remove_from_table now understands foreign keys
-* fix for issue 96: deleting a column in sqlite shouldn't delete all indexes
bonus: remove_from_table now removes indexes
+* Fix bug with column dropping involving foreign keys. Bonus:
remove\_from\_table now understands foreign keys
+* fix for issue 96: deleting a column in sqlite shouldn't delete all indexes
bonus: remove\_from\_table now removes indexes
* another py2.4 fixture
* dammit!
* attempt at improving the api docs a little
@@ -288,7 +317,7 @@
* disable psycopg install while initd.org is offline
* silence console output
* hopefully make py2.4 compatible
-* - capture deprecation warnings and assert they re as they should be -
re-word alter_column deprecation warning to make more sense
+* - capture deprecation warnings and assert they re as they should be -
re-word alter\_column deprecation warning to make more sense
* remove default of dropping on pdb on test error or failure
* fix last exception import
* move all exception classes to migrate.exceptions
@@ -316,7 +345,7 @@
* merge
* better document summary of changeset actions
* adding connection keyword to ORM methods
-* use migrate.tests.* instead of tests.* in find_packages argument
+* use migrate.tests.\* instead of tests.\* in find\_packages argument
* use stdout for logging.INFO and lower; for the rest use stderr
* fix deprecation warning when using old script synta
* update README and fix last bugs
@@ -340,7 +369,7 @@
* make tests use a virtualenv for 'migrate' shell command
* change print statements to log.info
* add more recent version of kinterbadb due to soureforge not being maintained
anymore. Thanks btami\!
-* add firebird to test_db.cfg.tmpl; fix bug when dropping a column in
firebird: also drop related constraint or index
+* add firebird to test\_db.cfg.tmpl; fix bug when dropping a column in
firebird: also drop related constraint or index
* revert 2688cdb980
* update setup.py
* run shell diff tests with correct environment
@@ -362,11 +391,11 @@
* removing mx.DateTime from test deps because pip crashes
* add mx.DateTime to test dep
* add mysql driver test deps
-* change test_db database name to more verbose name
+* change test\_db database name to more verbose name
* partly fix SA0.6 tests on postgres
* fix docs
* fix documentation meta.bind(engine) -> meta.bind = engine; thanks mvt
-* add .coverage and test_db.cfg to .hgignore
+* add .coverage and test\_db.cfg to .hgignore
* more import fixes
* fixing models import
* rename test package to tests (problems with pytest dist)
@@ -378,10 +407,10 @@
* updating MANIFEST.in, fixing virtualenv tests usage, 2 failed tests
* apply Emil Kroymann's patch for Issue 75
* apply patch by Jason Newton
-* remove bad reference to migrate_engine
+* remove bad reference to migrate\_engine
* Add table declarations for tables with diff
-* Add support for ALTER TABLE add/drop columns in make_update_script_for_model
-* adding sql_script template customizations, removing unneeded imports,
updating docs
+* Add support for ALTER TABLE add/drop columns in
make\_update\_script\_for\_model
+* adding sql\_script template customizations, removing unneeded imports,
updating docs
* merge
* remove versioning.base in favor of versioning.config
* removing deprecated logger module
@@ -389,11 +418,11 @@
* we are using Tempita for templates; adding most basic pylons template
* add option to customize templates and use multiple themes
* applying patch for issue #61 by Michael Bayer
-* add disable_logging option
+* add disable\_logging option
* use logging module for output, fixes #26
* add tests for plain API, fixed some small bugs
-* separating test_shell and test_api, replacing shell hacks with ScriptTest
-* add populate_default kwarg to column.create, fixes issue #50
+* separating test\_shell and test\_api, replacing shell hacks with ScriptTest
+* add populate\_default kwarg to column.create, fixes issue #50
* adding .hgignore
* convert svn to hg
* applying patch for issue #60 from entequak
@@ -401,10 +430,10 @@
* removing old changelog
* change dev location
* update changelog internal links
-* updated changeset documentation, added alter_metadata to all schema classes
+* updated changeset documentation, added alter\_metadata to all schema classes
* add not supported exceptions for sqlite constraints
* always return delta when using alter constructs
-* - completely refactored ColumnDelta to extract differences between
columns/parameters (also fixes issue #23) - fixed some bugs (passing
server_default) on column.alter - updated tests, specially ColumnDelta and
column.alter - introduced alter_metadata which can preserve altering existing
objects if False (defaults to True) - updated documentation
+* - completely refactored ColumnDelta to extract differences between
columns/parameters (also fixes issue #23) - fixed some bugs (passing
server\_default) on column.alter - updated tests, specially ColumnDelta and
column.alter - introduced alter\_metadata which can preserve altering existing
objects if False (defaults to True) - updated documentation
* adding basic support for firebird, fixes #55
* finally, tests pass for all supported dialects
* add ability to download development version from pypi
@@ -412,17 +441,17 @@
* some more PEP8 love
* fix bug when initializing CheckConstraint
* updated changeset tests. whole package is finally PEP8. fixed mysql
tests&bugs. updated docs where apropriate. changeset test coverage almost at
100%
-* - refactor migrate.changeset; - visitors are refactored to be more unified -
constraint module is refactored, CheckConstraint is added - documentation is
partialy updated, dialect support table is added (unfinished) - test_constraint
was updated NOTE: oracle and mysql were not tested, *may be broken*
+* - refactor migrate.changeset; - visitors are refactored to be more unified -
constraint module is refactored, CheckConstraint is added - documentation is
partialy updated, dialect support table is added (unfinished) -
test\_constraint was updated NOTE: oracle and mysql were not tested, \*may be
broken\*
* update docs, delete obsolete code in constraints
* update documentation
-* removed magical behavior with importing migrate_engine, now engine is passed
to upgrade/downgrade functions
+* removed magical behavior with importing migrate\_engine, now engine is
passed to upgrade/downgrade functions
* use sqlalchemy preparer to do SQL quote formatting. this is a raw change,
tests are yet to be written
* lipstick changes
* update tests for schema, refactor a bit
* update README, add docs to repository.py and schema.py
* fix setup.py
* updated migrate.versioning.repository tests and docs, update README
-* update tests and docs for migrate.versioning.script.*
+* update tests and docs for migrate.versioning.script.\*
* change isinstance(obj, (str, unicode)) to isinstance(obj, basestring) as
suggested by Piotr Ożarowski
* start work on 0.5.5
* add changelog, update util.py docs
@@ -431,26 +460,26 @@
* added tests for versioning.version.py, refactored the module
* add tests for low level util.py
* make @usedb work correctly
-* Issue 34; preview_sql now correctly displays SQL on python and SQL scripts.
(tests added, docs still missing)
+* Issue 34; preview\_sql now correctly displays SQL on python and SQL scripts.
(tests added, docs still missing)
* use unittest.TestCase for tests
* use entrypoints terminology to parse dotted model class names
* remove the duplicate
-* extras_require is a bit tricky, use tests_require instead
+* extras\_require is a bit tricky, use tests\_require instead
* fix typechecking
* update CHANGELOG
-* Issue 38; add ability to pass arguments/dict for create_engine func
+* Issue 38; add ability to pass arguments/dict for create\_engine func
* refactor api.py a bit, lots of PEP8 love
* add asbool function to make api parsing easier
* some more PEP8 love all over the files
* apply some PEP8 love to template.py
-* apply PEP8 to version.py, fixed notification of missing test_db.cfg
+* apply PEP8 to version.py, fixed notification of missing test\_db.cfg
* apply option parsing patch for Issue 54 by iElectric
* start work on 0.5.4
-* fix Issue 52 by removing unneeded parameters from object.__new__ calls
+* fix Issue 52 by removing unneeded parameters from object.\_\_new\_\_ calls
* update CHANGELOG, set version to 0.5.3
* apply patch for Issue 29 by Jonathan Ellis
* add support for ondelete and oncascade to ANSI-SQL foreign key creation
-* unignore _build, recreate _build and ignore everything below it (fixes Issue
49)
+* unignore \_build, recreate \_build and ignore everything below it (fixes
Issue 49)
* update CHANGELOG, set version to 0.5.2
* mark ALTER TABLE ADD FOREIGN KEY as unsupported by SQLite update
corresponding test case
* integrate unit test fix by Adam Lowry
@@ -458,7 +487,7 @@
* whoops, needed to update setup.cfg too for Sphinx build location
* add Sphinx Makefile, and use underscore prefixes for some Sphinx stuff to be
more Windows-friendly
* integrate patch for Issue 36, update CHANGELOG
-* fix Issue 47 by moving sphinx and nose dependencies to extras_require
+* fix Issue 47 by moving sphinx and nose dependencies to extras\_require
* fix upload
* prepare release 0.5.1.1
* removed misleading docs/Makefile
@@ -512,43 +541,43 @@
* missed a postgres identifier quoting on renaming
* added hook functions which allow the dialects to specify how to indicate
identifiers, as this is different in postgres
* integrate patch for Issue 33
-* add --declarative option to create_model to generate new declarative style
-* get test_changeset working in oracle - just more server_default issues
+* add --declarative option to create\_model to generate new declarative style
+* get test\_changeset working in oracle - just more server\_default issues
* add support for SA 0.5
-* - integrate patch by Toshio Kuratomi sent to migrate-users 2008/07/30
06:08 (GMT+01:00) - pylint clean migrate/versioning/migrate_repository.py
-* * create bugfix branch for 0.4.4 * prepare trunk for new development
-* * add 0.4.5 changes to CHANGELOG
+* - integrate patch by Toshio Kuratomi sent to migrate-users 2008/07/30
06:08 (GMT+01:00) - pylint clean migrate/versioning/migrate\_repository.py
+* \* create bugfix branch for 0.4.4 \* prepare trunk for new development
+* \* add 0.4.5 changes to CHANGELOG
* applied patch for shell test by Toshio Kuramoti
* support default for sql scripts
* add unit test to make sure we can handle more than 999 revisions
* finish implementing repository migration script
* make repository format flatter and get rid of commit command
-* * applied a slightly modified version of the patch for issue #20 by
Christophe de Vienne which uses a logger for 'migrate.versioning' instead of
the root logger
+* \* applied a slightly modified version of the patch for issue #20 by
Christophe de Vienne which uses a logger for 'migrate.versioning' instead of
the root logger
* almost done issue 12: generate downgrade method for schema migration
* fix issue 18 by applying given patch
-* enhance command update_db_from_model to bump db_version to latest in
repository
+* enhance command update\_db\_from\_model to bump db\_version to latest in
repository
* improve diff unit tests to make sure they don't drop data when column type
changes; make the code pass the tests
* make diff unit tests more robust
-* Change make_update_script_for_model shell command to compare two versions of
Python model (issue #12); add shell test for new diff'ing apis
+* Change make\_update\_script\_for\_model shell command to compare two
versions of Python model (issue #12); add shell test for new diff'ing apis
* - merged CHANGELOG from bugfix branch
* - release 0.4.4
* r1081@denkpolster: jan | 2008-04-04 18:48:20 +0200 - fix for SQLAlchemy
deprecation warning when creating version table
* r1035@denkpolster: jan | 2008-04-02 14:39:05 +0200 - fix unit tests with
py-0.9.1, fixes #17
* code reorg: create new utility method loadModel for db diffing
* - patch by pwannygoodness for Issue #15 integrated
-* - merge CHANGELOG from branch bugfix-0_4_2 to trunk - increase trunk and
branch bugfix-0_4_2 version numbers - rename branch bugfix-0_4_2 to bugfix-0_4_3
+* - merge CHANGELOG from branch bugfix-0\_4\_2 to trunk - increase trunk and
branch bugfix-0\_4\_2 version numbers - rename branch bugfix-0\_4\_2 to
bugfix-0\_4\_3
* Execute sqlite-specific code to alter a table inside one transaction so that
we can't leave the database in a nasty state
-* When running schemadiff tests exclude table migrate_version because it's
left around after a previous round of tests
-* rename model/db sync commands and add new command update_db_from_model
+* When running schemadiff tests exclude table migrate\_version because it's
left around after a previous round of tests
+* rename model/db sync commands and add new command update\_db\_from\_model
* add experimental support for comparing metadata against database (issue #12)
-* - make test_shell not assume Python code is compiled - update results in
test_shell so that it works in Postgresql - make Oracle changesets generate
valid sql syntax when a modified column's default value changes to NULL
-* * integrate patch for Issue #14 by Kevin Dangoor * merge CHANGELOG from
bugfix_0_4_2 branch
-* * fixed package name
-* * prepare work on 0.4.3
+* - make test\_shell not assume Python code is compiled - update results in
test\_shell so that it works in Postgresql - make Oracle changesets generate
valid sql syntax when a modified column's default value changes to NULL
+* \* integrate patch for Issue #14 by Kevin Dangoor \* merge CHANGELOG from
bugfix\_0\_4\_2 branch
+* \* fixed package name
+* \* prepare work on 0.4.3
* make import of sqlalchemy's SchemaGenerator work regardless of previous
imports
* - 0.4.1 changes added to CHANGELOG
-* - integrate setuptools patch by Kevin Dangoor - bump version to 0.4.2dev
(0.4.1 will be released from branch bugfix-0_4_0)
+* - integrate setuptools patch by Kevin Dangoor - bump version to 0.4.2dev
(0.4.1 will be released from branch bugfix-0\_4\_0)
* - prepare for new development
* - prepare for release 0.4.0
-* integrated patch by Christian Simms posted at
http://groups.google.com/group/migrate-users/browse_thread/thread/952a2185baf70c4d
fix all test cases for sqlalchemy>=0.4 and still works with sqlalchemy>=0.3.10
fixes #9
+* integrated patch by Christian Simms posted at
http://groups.google.com/group/migrate-users/browse\_thread/thread/952a2185baf70c4d
fix all test cases for sqlalchemy>=0.4 and still works with sqlalchemy>=0.3.10
fixes #9
* moved trunk, branches and tags to project root fixes Issue #5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/sqlalchemy-migrate-0.11.0/PKG-INFO
new/sqlalchemy-migrate-0.13.0/PKG-INFO
--- old/sqlalchemy-migrate-0.11.0/PKG-INFO 2017-03-01 15:02:53.000000000
+0100
+++ new/sqlalchemy-migrate-0.13.0/PKG-INFO 2019-10-22 23:15:46.000000000
+0200
@@ -1,12 +1,12 @@
Metadata-Version: 1.1
Name: sqlalchemy-migrate
-Version: 0.11.0
+Version: 0.13.0
Summary: Database schema migration for SQLAlchemy
Home-page: http://www.openstack.org/
Author: OpenStack
-Author-email: [email protected]
+Author-email: [email protected]
License: UNKNOWN
-Description: sqlalchemy-migrate
+Description: SQLAlchemy Migrate
==================
Fork from http://code.google.com/p/sqlalchemy-migrate/ to get it
working with
@@ -64,7 +64,8 @@
Classifier: Programming Language :: Python
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
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/sqlalchemy-migrate-0.11.0/README.rst
new/sqlalchemy-migrate-0.13.0/README.rst
--- old/sqlalchemy-migrate-0.11.0/README.rst 2017-03-01 15:01:25.000000000
+0100
+++ new/sqlalchemy-migrate-0.13.0/README.rst 2019-10-22 23:14:37.000000000
+0200
@@ -1,4 +1,4 @@
-sqlalchemy-migrate
+SQLAlchemy Migrate
==================
Fork from http://code.google.com/p/sqlalchemy-migrate/ to get it working with
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/sqlalchemy-migrate-0.11.0/bindep.txt
new/sqlalchemy-migrate-0.13.0/bindep.txt
--- old/sqlalchemy-migrate-0.11.0/bindep.txt 1970-01-01 01:00:00.000000000
+0100
+++ new/sqlalchemy-migrate-0.13.0/bindep.txt 2019-10-22 23:14:37.000000000
+0200
@@ -0,0 +1,16 @@
+# This is a cross-platform list tracking distribution packages needed for
install and tests;
+# see https://docs.openstack.org/infra/bindep/ for additional information.
+
+# NOTE(mriedem): This list is woefully incomplete but is just listing mysql
+# and postgresql binary dependencies to make tools/test-setup.sh work.
+
+libmysqlclient-dev [platform:dpkg]
+libpq-dev [platform:dpkg test]
+mysql [platform:rpm]
+mysql-client [platform:dpkg]
+mysql-devel [platform:rpm test]
+mysql-server
+postgresql
+postgresql-client [platform:dpkg]
+postgresql-devel [platform:rpm test]
+postgresql-server [platform:rpm]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/sqlalchemy-migrate-0.11.0/doc/requirements.txt
new/sqlalchemy-migrate-0.13.0/doc/requirements.txt
--- old/sqlalchemy-migrate-0.11.0/doc/requirements.txt 1970-01-01
01:00:00.000000000 +0100
+++ new/sqlalchemy-migrate-0.13.0/doc/requirements.txt 2019-10-22
23:14:37.000000000 +0200
@@ -0,0 +1 @@
+sphinx>=1.6.2,!=1.6.6 # BSD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/sqlalchemy-migrate-0.11.0/doc/source/conf.py
new/sqlalchemy-migrate-0.13.0/doc/source/conf.py
--- old/sqlalchemy-migrate-0.11.0/doc/source/conf.py 2017-03-01
15:01:25.000000000 +0100
+++ new/sqlalchemy-migrate-0.13.0/doc/source/conf.py 2019-10-22
23:14:37.000000000 +0200
@@ -28,7 +28,8 @@
# Add any Sphinx extension module names here, as strings. They can be
extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ['sphinx.ext.autodoc', 'sphinx.ext.intersphinx',
'sphinxcontrib.issuetracker']
+extensions = ['sphinx.ext.autodoc',
+ 'sphinx.ext.intersphinx']
# link to sqlalchemy docs
intersphinx_mapping = {
@@ -128,7 +129,7 @@
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
+# html_static_path = ['_static']
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/sqlalchemy-migrate-0.11.0/doc/source/download.rst
new/sqlalchemy-migrate-0.13.0/doc/source/download.rst
--- old/sqlalchemy-migrate-0.11.0/doc/source/download.rst 2017-03-01
15:01:25.000000000 +0100
+++ new/sqlalchemy-migrate-0.13.0/doc/source/download.rst 2019-10-22
23:14:37.000000000 +0200
@@ -2,7 +2,7 @@
--------
You can get the latest version of SQLAlchemy Migrate from the
-`project's download page`_, the `cheese shop`_, pip_ or via easy_install_::
+the `cheese shop`_, pip_ or via easy_install_::
$ easy_install sqlalchemy-migrate
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/sqlalchemy-migrate-0.11.0/doc/source/index.rst
new/sqlalchemy-migrate-0.13.0/doc/source/index.rst
--- old/sqlalchemy-migrate-0.11.0/doc/source/index.rst 2017-03-01
15:01:25.000000000 +0100
+++ new/sqlalchemy-migrate-0.13.0/doc/source/index.rst 2019-10-22
23:14:37.000000000 +0200
@@ -55,7 +55,7 @@
.. list-table::
:header-rows: 1
- :widths: 25 10 10 10 10 10 11
+ :widths: 25 10 10 10 10 10 11 10
* - Operation / Dialect
- :ref:`sqlite <sqlite-d>`
@@ -72,6 +72,7 @@
- yes
- no
- not supported
+ - unknown
* - :ref:`ALTER TABLE RENAME COLUMN <column-alter>`
- yes (workaround) [#1]_
- yes
@@ -79,6 +80,7 @@
- yes
- yes
- not supported
+ - unknown
* - :ref:`ALTER TABLE ADD COLUMN <column-create>`
- yes (workaround) [#2]_
- yes
@@ -86,6 +88,7 @@
- yes
- yes
- not supported
+ - unknown
* - :ref:`ALTER TABLE DROP COLUMN <column-drop>`
- yes (workaround) [#1]_
- yes
@@ -93,6 +96,7 @@
- yes
- yes
- not supported
+ - unknown
* - :ref:`ALTER TABLE ALTER COLUMN <column-alter>`
- yes (workaround) [#1]_
- yes
@@ -100,6 +104,7 @@
- yes (with limitations) [#3]_
- yes [#4]_
- not supported
+ - unknown
* - :ref:`ALTER TABLE ADD CONSTRAINT <constraint-tutorial>`
- partial (workaround) [#1]_
- yes
@@ -107,6 +112,7 @@
- yes
- yes
- not supported
+ - unknown
* - :ref:`ALTER TABLE DROP CONSTRAINT <constraint-tutorial>`
- partial (workaround) [#1]_
- yes
@@ -114,6 +120,7 @@
- yes
- yes
- not supported
+ - unknown
* - :ref:`RENAME INDEX <index-rename>`
- no
- yes
@@ -121,6 +128,7 @@
- yes
- yes
- not supported
+ - unknown
.. [#1] Table is renamed to temporary table, new table is created followed by
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/sqlalchemy-migrate-0.11.0/migrate/changeset/ansisql.py
new/sqlalchemy-migrate-0.13.0/migrate/changeset/ansisql.py
--- old/sqlalchemy-migrate-0.11.0/migrate/changeset/ansisql.py 2017-03-01
15:01:25.000000000 +0100
+++ new/sqlalchemy-migrate-0.13.0/migrate/changeset/ansisql.py 2019-10-22
23:14:37.000000000 +0200
@@ -159,8 +159,7 @@
def visit_table(self, table):
"""Rename a table. Other ops aren't supported."""
self.start_alter_table(table)
- q = util.safe_quote(table)
- self.append("RENAME TO %s" % self.preparer.quote(table.new_name, q))
+ self.append("RENAME TO %s" % self.preparer.quote(table.new_name))
self.execute()
def visit_index(self, index):
@@ -170,19 +169,19 @@
self.append("ALTER INDEX %s RENAME TO %s" % (
self.preparer.quote(
self._validate_identifier(
- index.name, True), index.quote),
+ index.name, True)),
self.preparer.quote(
self._validate_identifier(
- index.new_name, True), index.quote)))
+ index.new_name, True))))
elif hasattr(self, '_index_identifier'):
# SA >= 0.6.5, < 0.8
self.append("ALTER INDEX %s RENAME TO %s" % (
self.preparer.quote(
self._index_identifier(
- index.name), index.quote),
+ index.name)),
self.preparer.quote(
self._index_identifier(
- index.new_name), index.quote)))
+ index.new_name))))
else:
# SA >= 0.8
class NewName(object):
@@ -229,8 +228,7 @@
def start_alter_column(self, table, col_name):
"""Starts ALTER COLUMN"""
self.start_alter_table(table)
- q = util.safe_quote(table)
- self.append("ALTER COLUMN %s " % self.preparer.quote(col_name, q))
+ self.append("ALTER COLUMN %s " % self.preparer.quote(col_name))
def _visit_column_nullable(self, table, column, delta):
nullable = delta['nullable']
@@ -253,8 +251,7 @@
def _visit_column_name(self, table, column, delta):
self.start_alter_table(table)
- q = util.safe_quote(table)
- col_name = self.preparer.quote(delta.current_name, q)
+ col_name = self.preparer.quote(delta.current_name)
new_name = self.preparer.format_column(delta.result_column)
self.append('RENAME COLUMN %s TO %s' % (col_name, new_name))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/sqlalchemy-migrate-0.11.0/migrate/changeset/databases/firebird.py
new/sqlalchemy-migrate-0.13.0/migrate/changeset/databases/firebird.py
--- old/sqlalchemy-migrate-0.11.0/migrate/changeset/databases/firebird.py
2017-03-01 15:01:25.000000000 +0100
+++ new/sqlalchemy-migrate-0.13.0/migrate/changeset/databases/firebird.py
2019-10-22 23:14:37.000000000 +0200
@@ -61,7 +61,7 @@
def _visit_column_name(self, table, column, delta):
self.start_alter_table(table)
- col_name = self.preparer.quote(delta.current_name, table.quote)
+ col_name = self.preparer.quote(delta.current_name)
new_name = self.preparer.format_column(delta.result_column)
self.append('ALTER COLUMN %s TO %s' % (col_name, new_name))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/sqlalchemy-migrate-0.11.0/migrate/changeset/databases/ibmdb2.py
new/sqlalchemy-migrate-0.13.0/migrate/changeset/databases/ibmdb2.py
--- old/sqlalchemy-migrate-0.11.0/migrate/changeset/databases/ibmdb2.py
2017-03-01 15:01:25.000000000 +0100
+++ new/sqlalchemy-migrate-0.13.0/migrate/changeset/databases/ibmdb2.py
2019-10-22 23:14:37.000000000 +0200
@@ -108,8 +108,7 @@
"""Rename a table; #38. Other ops aren't supported."""
self._rename_table(table)
- q = util.safe_quote(table)
- self.append("TO %s" % self.preparer.quote(table.new_name, q))
+ self.append("TO %s" % self.preparer.quote(table.new_name))
self.execute()
self.append("COMMIT")
self.execute()
@@ -121,9 +120,9 @@
if hasattr(self, '_index_identifier'):
# SA >= 0.6.5, < 0.8
old_name = self.preparer.quote(
- self._index_identifier(index.name), index.quote)
+ self._index_identifier(index.name))
new_name = self.preparer.quote(
- self._index_identifier(index.new_name), index.quote)
+ self._index_identifier(index.new_name))
else:
# SA >= 0.8
class NewName(object):
@@ -148,11 +147,10 @@
def _run_subvisit(self, delta, func, start_alter=True):
"""Runs visit method based on what needs to be changed on column"""
table = delta.table
- q = util.safe_quote(table)
if start_alter:
self.start_alter_table(table)
ret = func(table,
- self.preparer.quote(delta.current_name, q),
+ self.preparer.quote(delta.current_name),
delta)
self.execute()
self._reorg_table(self.preparer.format_table(delta.table))
@@ -314,8 +312,7 @@
if hasattr(self, '_index_identifier'):
# SA >= 0.6.5, < 0.8
index_name = self.preparer.quote(
- self._index_identifier(constraint.name),
- constraint.quote)
+ self._index_identifier(constraint.name))
else:
# SA >= 0.8
index_name = self._prepared_index_name(constraint)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/sqlalchemy-migrate-0.11.0/migrate/changeset/databases/mysql.py
new/sqlalchemy-migrate-0.13.0/migrate/changeset/databases/mysql.py
--- old/sqlalchemy-migrate-0.11.0/migrate/changeset/databases/mysql.py
2017-03-01 15:01:25.000000000 +0100
+++ new/sqlalchemy-migrate-0.13.0/migrate/changeset/databases/mysql.py
2019-10-22 23:14:37.000000000 +0200
@@ -37,8 +37,7 @@
first = primary_keys.pop(0)
if first.name == delta.current_name:
colspec += " AUTO_INCREMENT"
- q = util.safe_quote(table)
- old_col_name = self.preparer.quote(delta.current_name, q)
+ old_col_name = self.preparer.quote(delta.current_name)
self.start_alter_table(table)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/sqlalchemy-migrate-0.11.0/migrate/changeset/databases/sqlite.py
new/sqlalchemy-migrate-0.13.0/migrate/changeset/databases/sqlite.py
--- old/sqlalchemy-migrate-0.11.0/migrate/changeset/databases/sqlite.py
2017-03-01 15:01:25.000000000 +0100
+++ new/sqlalchemy-migrate-0.13.0/migrate/changeset/databases/sqlite.py
2019-10-22 23:14:37.000000000 +0200
@@ -4,7 +4,7 @@
.. _`SQLite`: http://www.sqlite.org/
"""
try: # Python 3
- from collections import MutableMapping as DictMixin
+ from collections.abc import MutableMapping as DictMixin
except ImportError: # Python 2
from UserDict import DictMixin
from copy import copy
@@ -96,8 +96,17 @@
if omit_constraints is None or cons.name not in omit_constraints
])
+ # Use "PRAGMA legacy_alter_table = ON" with sqlite >= 3.26 when
+ # using "ALTER TABLE RENAME TO migration_tmp" to maintain legacy
+ # behavior. See: https://www.sqlite.org/src/info/ae9638e9c0ad0c36
+ if self.connection.engine.dialect.server_version_info >= (3, 26):
+ self.append('PRAGMA legacy_alter_table = ON')
+ self.execute()
self.append('ALTER TABLE %s RENAME TO migration_tmp' % table_name)
self.execute()
+ if self.connection.engine.dialect.server_version_info >= (3, 26):
+ self.append('PRAGMA legacy_alter_table = OFF')
+ self.execute()
insertion_string = self._modify_table(table, column, delta)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/sqlalchemy-migrate-0.11.0/migrate/changeset/databases/visitor.py
new/sqlalchemy-migrate-0.13.0/migrate/changeset/databases/visitor.py
--- old/sqlalchemy-migrate-0.11.0/migrate/changeset/databases/visitor.py
2017-03-01 15:01:25.000000000 +0100
+++ new/sqlalchemy-migrate-0.13.0/migrate/changeset/databases/visitor.py
2019-10-22 23:14:37.000000000 +0200
@@ -73,7 +73,7 @@
with support for migrate visitors.
"""
if connection is None:
- conn = engine.contextual_connect(close_with_result=False)
+ conn = engine.connect()
else:
conn = connection
visitor = visitorcallable(engine.dialect, conn)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/sqlalchemy-migrate-0.11.0/migrate/changeset/schema.py
new/sqlalchemy-migrate-0.13.0/migrate/changeset/schema.py
--- old/sqlalchemy-migrate-0.11.0/migrate/changeset/schema.py 2017-03-01
15:01:25.000000000 +0100
+++ new/sqlalchemy-migrate-0.13.0/migrate/changeset/schema.py 2019-10-22
23:14:37.000000000 +0200
@@ -3,7 +3,7 @@
"""
import abc
try: # Python 3
- from collections import MutableMapping as DictMixin
+ from collections.abc import MutableMapping as DictMixin
except ImportError: # Python 2
from UserDict import DictMixin
import warnings
@@ -138,7 +138,7 @@
delta = ColumnDelta(*p, **k)
visitorcallable = get_engine_visitor(engine, 'schemachanger')
- engine._run_visitor(visitorcallable, delta)
+ _run_visitor(engine, visitorcallable, delta)
return delta
@@ -167,6 +167,20 @@
return ret
+def _run_visitor(
+ connectable, visitorcallable, element, connection=None, **kwargs
+):
+ if connection is not None:
+ visitorcallable(
+ connection.dialect, connection, **kwargs).traverse_single(element)
+ else:
+ conn = connectable.connect()
+ try:
+ visitorcallable(
+ conn.dialect, conn, **kwargs).traverse_single(element)
+ finally:
+ conn.close()
+
# Python3: if we just use:
#
@@ -574,7 +588,7 @@
self.add_to_table(table)
engine = self.table.bind
visitorcallable = get_engine_visitor(engine, 'columngenerator')
- engine._run_visitor(visitorcallable, self, connection, **kwargs)
+ _run_visitor(engine, visitorcallable, self, connection, **kwargs)
# TODO: reuse existing connection
if self.populate_default and self.default is not None:
@@ -595,7 +609,7 @@
self.table = table
engine = self.table.bind
visitorcallable = get_engine_visitor(engine, 'columndropper')
- engine._run_visitor(visitorcallable, self, connection, **kwargs)
+ _run_visitor(engine, visitorcallable, self, connection, **kwargs)
self.remove_from_table(self.table, unset_table=False)
self.table = None
return self
@@ -650,12 +664,10 @@
# TODO: this is fixed in 0.6
def copy_fixed(self, **kw):
"""Create a copy of this ``Column``, with all attributes."""
- q = util.safe_quote(self)
return sqlalchemy.Column(self.name, self.type, self.default,
key=self.key,
primary_key=self.primary_key,
nullable=self.nullable,
- quote=q,
index=self.index,
unique=self.unique,
onupdate=self.onupdate,
@@ -691,7 +703,7 @@
engine = self.table.bind
self.new_name = name
visitorcallable = get_engine_visitor(engine, 'schemachanger')
- engine._run_visitor(visitorcallable, self, connection, **kwargs)
+ _run_visitor(engine, visitorcallable, self, connection, **kwargs)
self.name = name
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/sqlalchemy-migrate-0.11.0/migrate/changeset/util.py
new/sqlalchemy-migrate-0.13.0/migrate/changeset/util.py
--- old/sqlalchemy-migrate-0.11.0/migrate/changeset/util.py 2017-03-01
15:01:25.000000000 +0100
+++ new/sqlalchemy-migrate-0.13.0/migrate/changeset/util.py 2019-10-22
23:14:37.000000000 +0200
@@ -1,16 +1,5 @@
from migrate.changeset import SQLA_10
-"""
-Safe quoting method
-"""
-
-def safe_quote(obj):
- # this is the SQLA 0.9 approach
- if hasattr(obj, 'name') and hasattr(obj.name, 'quote'):
- return obj.name.quote
- else:
- return obj.quote
-
def fk_column_names(constraint):
if SQLA_10:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/sqlalchemy-migrate-0.11.0/migrate/tests/changeset/test_changeset.py
new/sqlalchemy-migrate-0.13.0/migrate/tests/changeset/test_changeset.py
--- old/sqlalchemy-migrate-0.11.0/migrate/tests/changeset/test_changeset.py
2017-03-01 15:01:25.000000000 +0100
+++ new/sqlalchemy-migrate-0.13.0/migrate/tests/changeset/test_changeset.py
2019-10-22 23:14:37.000000000 +0200
@@ -761,7 +761,7 @@
@fixture.usedb()
def test_alter_deprecated(self):
try:
- # py 2.4 compatability :-/
+ # py 2.4 compatibility :-/
cw = catch_warnings(record=True)
w = cw.__enter__()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/sqlalchemy-migrate-0.11.0/migrate/tests/versioning/test_util.py
new/sqlalchemy-migrate-0.13.0/migrate/tests/versioning/test_util.py
--- old/sqlalchemy-migrate-0.11.0/migrate/tests/versioning/test_util.py
2017-03-01 15:01:25.000000000 +0100
+++ new/sqlalchemy-migrate-0.13.0/migrate/tests/versioning/test_util.py
2019-10-22 23:14:37.000000000 +0200
@@ -42,7 +42,7 @@
# deprecated echo=True parameter
try:
- # py 2.4 compatability :-/
+ # py 2.4 compatibility :-/
cw = catch_warnings(record=True)
w = cw.__enter__()
@@ -100,7 +100,7 @@
f.close()
try:
- # py 2.4 compatability :-/
+ # py 2.4 compatibility :-/
cw = catch_warnings(record=True)
w = cw.__enter__()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/sqlalchemy-migrate-0.11.0/migrate/versioning/script/py.py
new/sqlalchemy-migrate-0.13.0/migrate/versioning/script/py.py
--- old/sqlalchemy-migrate-0.11.0/migrate/versioning/script/py.py
2017-03-01 15:01:25.000000000 +0100
+++ new/sqlalchemy-migrate-0.13.0/migrate/versioning/script/py.py
2019-10-22 23:14:37.000000000 +0200
@@ -141,8 +141,14 @@
script_func = self._func(funcname)
# check for old way of using engine
- if not inspect.getargspec(script_func)[0]:
- raise TypeError("upgrade/downgrade functions must accept engine"
+ arg_spec = None
+ if six.PY2:
+ arg_spec = inspect.getargspec(script_func)
+ else:
+ arg_spec = inspect.getfullargspec(script_func)
+ if not arg_spec[0]:
+ raise TypeError(
+ "upgrade/downgrade functions must accept engine"
" parameter (since version 0.5.4)")
script_func(engine)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/sqlalchemy-migrate-0.11.0/playbooks/sqlalchemy-migrate-devstack-dsvm/post.yaml
new/sqlalchemy-migrate-0.13.0/playbooks/sqlalchemy-migrate-devstack-dsvm/post.yaml
---
old/sqlalchemy-migrate-0.11.0/playbooks/sqlalchemy-migrate-devstack-dsvm/post.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/sqlalchemy-migrate-0.13.0/playbooks/sqlalchemy-migrate-devstack-dsvm/post.yaml
2019-10-22 23:14:37.000000000 +0200
@@ -0,0 +1,15 @@
+- hosts: primary
+ tasks:
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=/logs/**
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/sqlalchemy-migrate-0.11.0/playbooks/sqlalchemy-migrate-devstack-dsvm/run.yaml
new/sqlalchemy-migrate-0.13.0/playbooks/sqlalchemy-migrate-devstack-dsvm/run.yaml
---
old/sqlalchemy-migrate-0.11.0/playbooks/sqlalchemy-migrate-devstack-dsvm/run.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/sqlalchemy-migrate-0.13.0/playbooks/sqlalchemy-migrate-devstack-dsvm/run.yaml
2019-10-22 23:14:37.000000000 +0200
@@ -0,0 +1,49 @@
+- hosts: all
+ name: Autoconverted job legacy-sqlalchemy-migrate-devstack-dsvm from old job
gate-sqlalchemy-migrate-devstack-dsvm-nv
+ tasks:
+
+ - name: Ensure legacy workspace directory
+ file:
+ path: '{{ ansible_user_dir }}/workspace'
+ state: directory
+
+ - shell:
+ cmd: |
+ set -e
+ set -x
+ cat > clonemap.yaml << EOF
+ clonemap:
+ - name: openstack/devstack-gate
+ dest: devstack-gate
+ EOF
+ /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
+ https://opendev.org \
+ openstack/devstack-gate
+ executable: /bin/bash
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
+
+ - shell:
+ cmd: |
+ set -e
+ set -x
+ export PYTHONUNBUFFERED=true
+ export PROJECTS="x/sqlalchemy-migrate $PROJECTS"
+ export DEVSTACK_GATE_TEMPEST=1
+ export DEVSTACK_GATE_TEMPEST_FULL=1
+ export BRANCH_OVERRIDE=default
+ if [ "$BRANCH_OVERRIDE" != "default" ] ; then
+ export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
+ fi
+
+ function pre_test_hook {
+ cd /opt/stack/new/sqlalchemy-migrate
+ sudo -H pip install .
+ }
+ export -f pre_test_hook
+
+ cp devstack-gate/devstack-vm-gate-wrap.sh
./safe-devstack-vm-gate-wrap.sh
+ ./safe-devstack-vm-gate-wrap.sh
+ executable: /bin/bash
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/sqlalchemy-migrate-0.11.0/requirements.txt
new/sqlalchemy-migrate-0.13.0/requirements.txt
--- old/sqlalchemy-migrate-0.11.0/requirements.txt 2017-03-01
15:01:25.000000000 +0100
+++ new/sqlalchemy-migrate-0.13.0/requirements.txt 2019-10-22
23:14:37.000000000 +0200
@@ -6,7 +6,7 @@
# 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
+SQLAlchemy>=0.9.6
decorator
six>=1.7.0
sqlparse
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/sqlalchemy-migrate-0.11.0/setup.cfg
new/sqlalchemy-migrate-0.13.0/setup.cfg
--- old/sqlalchemy-migrate-0.11.0/setup.cfg 2017-03-01 15:02:53.000000000
+0100
+++ new/sqlalchemy-migrate-0.13.0/setup.cfg 2019-10-22 23:15:46.000000000
+0200
@@ -4,7 +4,7 @@
description-file =
README.rst
author = OpenStack
-author-email = [email protected]
+author-email = [email protected]
home-page = http://www.openstack.org/
classifier =
Environment :: OpenStack
@@ -15,10 +15,11 @@
Programming Language :: Python
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
+ Programming Language :: Python :: 3.5
+ Programming Language :: Python :: 3.6
[files]
packages =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/sqlalchemy-migrate-0.11.0/setup.py
new/sqlalchemy-migrate-0.13.0/setup.py
--- old/sqlalchemy-migrate-0.11.0/setup.py 2017-03-01 15:01:25.000000000
+0100
+++ new/sqlalchemy-migrate-0.13.0/setup.py 2019-10-22 23:14:37.000000000
+0200
@@ -25,5 +25,5 @@
pass
setuptools.setup(
- setup_requires=['pbr>=1.3'],
+ setup_requires=['pbr>=1.8'],
pbr=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/sqlalchemy-migrate-0.11.0/sqlalchemy_migrate.egg-info/PKG-INFO
new/sqlalchemy-migrate-0.13.0/sqlalchemy_migrate.egg-info/PKG-INFO
--- old/sqlalchemy-migrate-0.11.0/sqlalchemy_migrate.egg-info/PKG-INFO
2017-03-01 15:02:52.000000000 +0100
+++ new/sqlalchemy-migrate-0.13.0/sqlalchemy_migrate.egg-info/PKG-INFO
2019-10-22 23:15:46.000000000 +0200
@@ -1,12 +1,12 @@
Metadata-Version: 1.1
Name: sqlalchemy-migrate
-Version: 0.11.0
+Version: 0.13.0
Summary: Database schema migration for SQLAlchemy
Home-page: http://www.openstack.org/
Author: OpenStack
-Author-email: [email protected]
+Author-email: [email protected]
License: UNKNOWN
-Description: sqlalchemy-migrate
+Description: SQLAlchemy Migrate
==================
Fork from http://code.google.com/p/sqlalchemy-migrate/ to get it
working with
@@ -64,7 +64,8 @@
Classifier: Programming Language :: Python
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
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/sqlalchemy-migrate-0.11.0/sqlalchemy_migrate.egg-info/SOURCES.txt
new/sqlalchemy-migrate-0.13.0/sqlalchemy_migrate.egg-info/SOURCES.txt
--- old/sqlalchemy-migrate-0.11.0/sqlalchemy_migrate.egg-info/SOURCES.txt
2017-03-01 15:02:53.000000000 +0100
+++ new/sqlalchemy-migrate-0.13.0/sqlalchemy_migrate.egg-info/SOURCES.txt
2019-10-22 23:15:46.000000000 +0200
@@ -1,20 +1,21 @@
.testr.conf
+.zuul.yaml
AUTHORS
COPYING
ChangeLog
MANIFEST.in
README.rst
TODO
+bindep.txt
doc-requirements.txt
requirements.txt
setup.cfg
setup.py
-test-requirements-py2.txt
-test-requirements-py3.txt
test-requirements.txt
test_db.cfg
test_db_py3.cfg
tox.ini
+doc/requirements.txt
doc/source/Makefile
doc/source/api.rst
doc/source/changelog.rst
@@ -121,6 +122,8 @@
migrate/versioning/util/__init__.py
migrate/versioning/util/importpath.py
migrate/versioning/util/keyedinstance.py
+playbooks/sqlalchemy-migrate-devstack-dsvm/post.yaml
+playbooks/sqlalchemy-migrate-devstack-dsvm/run.yaml
sqlalchemy_migrate.egg-info/PKG-INFO
sqlalchemy_migrate.egg-info/SOURCES.txt
sqlalchemy_migrate.egg-info/dependency_links.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/sqlalchemy-migrate-0.11.0/sqlalchemy_migrate.egg-info/pbr.json
new/sqlalchemy-migrate-0.13.0/sqlalchemy_migrate.egg-info/pbr.json
--- old/sqlalchemy-migrate-0.11.0/sqlalchemy_migrate.egg-info/pbr.json
2017-03-01 15:02:52.000000000 +0100
+++ new/sqlalchemy-migrate-0.13.0/sqlalchemy_migrate.egg-info/pbr.json
2019-10-22 23:15:46.000000000 +0200
@@ -1 +1 @@
-{"git_version": "ca6f3a9", "is_release": true}
\ No newline at end of file
+{"git_version": "5d1f322", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/sqlalchemy-migrate-0.11.0/sqlalchemy_migrate.egg-info/requires.txt
new/sqlalchemy-migrate-0.13.0/sqlalchemy_migrate.egg-info/requires.txt
--- old/sqlalchemy-migrate-0.11.0/sqlalchemy_migrate.egg-info/requires.txt
2017-03-01 15:02:52.000000000 +0100
+++ new/sqlalchemy-migrate-0.13.0/sqlalchemy_migrate.egg-info/requires.txt
2019-10-22 23:15:46.000000000 +0200
@@ -1,5 +1,5 @@
pbr>=1.8
-SQLAlchemy>=0.7.8,!=0.9.5
+SQLAlchemy>=0.9.6
decorator
six>=1.7.0
sqlparse
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/sqlalchemy-migrate-0.11.0/test-requirements-py2.txt
new/sqlalchemy-migrate-0.13.0/test-requirements-py2.txt
--- old/sqlalchemy-migrate-0.11.0/test-requirements-py2.txt 2017-03-01
15:01:25.000000000 +0100
+++ new/sqlalchemy-migrate-0.13.0/test-requirements-py2.txt 1970-01-01
01:00:00.000000000 +0100
@@ -1,2 +0,0 @@
-ibm_db_sa>=0.3.0
-MySQL-python
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/sqlalchemy-migrate-0.11.0/test-requirements-py3.txt
new/sqlalchemy-migrate-0.13.0/test-requirements-py3.txt
--- old/sqlalchemy-migrate-0.11.0/test-requirements-py3.txt 2017-03-01
15:01:25.000000000 +0100
+++ new/sqlalchemy-migrate-0.13.0/test-requirements-py3.txt 1970-01-01
01:00:00.000000000 +0100
@@ -1 +0,0 @@
-ibm-db-sa-py3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/sqlalchemy-migrate-0.11.0/test-requirements.txt
new/sqlalchemy-migrate-0.13.0/test-requirements.txt
--- old/sqlalchemy-migrate-0.11.0/test-requirements.txt 2017-03-01
15:01:25.000000000 +0100
+++ new/sqlalchemy-migrate-0.13.0/test-requirements.txt 2019-10-22
23:14:37.000000000 +0200
@@ -10,6 +10,7 @@
fixtures>=0.3.14
mock>=1.2
mox>=0.5.3
+mysqlclient
psycopg2
python-subunit>=0.0.18
sphinx>=1.1.2,<1.2
@@ -18,6 +19,10 @@
testtools>=0.9.34,<0.9.36
tempest-lib>=0.1.0
+# db2 support
+ibm_db_sa>=0.3.0;python_version<'3.0'
+ibm-db-sa-py3;python_version>='3.0'
+
scripttest
# NOTE(rpodolyaka): This version identifier is currently necessary as
# pytz otherwise does not install on pip 1.4 or higher
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/sqlalchemy-migrate-0.11.0/tox.ini
new/sqlalchemy-migrate-0.13.0/tox.ini
--- old/sqlalchemy-migrate-0.11.0/tox.ini 2017-03-01 15:01:25.000000000
+0100
+++ new/sqlalchemy-migrate-0.13.0/tox.ini 2019-10-22 23:14:37.000000000
+0200
@@ -1,76 +1,61 @@
[tox]
minversion = 1.6
skipsdist = True
-envlist =
py26,py27,py26sa07,py27sa07,py26sa08,py27sa08,py26sa09,py27sa09,py33,py34,pep8
+envlist = py27,py27sa07,py27sa08,py27sa09,py33,py34,py35,py36,pep8
[testenv]
usedevelop = True
whitelist_externals = bash
-install_command = pip install {opts} {packages}
+# Avoid psycopg2 wheel package rename warnings by not using the binary.
+install_command = pip install --no-binary psycopg2 {opts} {packages}
setenv = VIRTUAL_ENV={envdir}
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = bash tools/pretty_tox.sh '{posargs}'
-[testenv:py26]
-deps = sqlalchemy>=0.9
- -r{toxinidir}/test-requirements.txt
- -r{toxinidir}/test-requirements-py2.txt
-
[testenv:py27]
deps = sqlalchemy>=0.9
-r{toxinidir}/test-requirements.txt
- -r{toxinidir}/test-requirements-py2.txt
-
-[testenv:py26sa07]
-basepython = python2.6
-deps = sqlalchemy>=0.7,<=0.7.99
- -r{toxinidir}/test-requirements.txt
- -r{toxinidir}/test-requirements-py2.txt
-
-[testenv:py26sa08]
-basepython = python2.6
-deps = sqlalchemy>=0.8,<=0.8.99
- -r{toxinidir}/test-requirements.txt
- -r{toxinidir}/test-requirements-py2.txt
-
-[testenv:py26sa09]
-basepython = python2.6
-deps = sqlalchemy>=0.9,<=0.9.99
- -r{toxinidir}/test-requirements.txt
- -r{toxinidir}/test-requirements-py2.txt
[testenv:py27sa07]
basepython = python2.7
deps = sqlalchemy>=0.7,<=0.7.99
-r{toxinidir}/test-requirements.txt
- -r{toxinidir}/test-requirements-py2.txt
[testenv:py27sa08]
basepython = python2.7
deps = sqlalchemy>=0.8,<=0.8.99
-r{toxinidir}/test-requirements.txt
- -r{toxinidir}/test-requirements-py2.txt
[testenv:py27sa09]
basepython = python2.7
deps = sqlalchemy>=0.9,<=0.9.99
-r{toxinidir}/test-requirements.txt
- -r{toxinidir}/test-requirements-py2.txt
[testenv:py33]
deps = sqlalchemy>=0.9
-r{toxinidir}/test-requirements.txt
- -r{toxinidir}/test-requirements-py3.txt
[testenv:py34]
deps = sqlalchemy>=0.9
-r{toxinidir}/test-requirements.txt
- -r{toxinidir}/test-requirements-py3.txt
+
+[testenv:py35]
+deps = sqlalchemy>=0.9
+ -r{toxinidir}/test-requirements.txt
+
+[testenv:py36]
+deps = sqlalchemy>=0.9
+ -r{toxinidir}/test-requirements.txt
[testenv:pep8]
commands = flake8
+[testenv:docs]
+basepython = python3
+deps = -r{toxinidir}/doc/requirements.txt
+commands = sphinx-build doc/source doc/build/html
+
[testenv:venv]
commands = {posargs}
@@ -134,3 +119,15 @@
show-source = true
builtins = _
exclude=.venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,tools,build
+
+[testenv:bindep]
+# Do not install any requirements. We want this to be fast and work even if
+# system dependencies are missing, since it's used to tell you what system
+# dependencies are missing! This also means that bindep must be installed
+# separately, outside of the requirements files, and develop mode disabled
+# explicitly to avoid unnecessarily installing the checked-out repo too (this
+# further relies on "tox.skipsdist = True" above).
+usedevelop = False
+deps = bindep
+commands =
+ bindep test