FS#41300 - [buildbot] Version of SQLAlchemy not supported by SQLAlchemy-Migrate

Attached to Project: Community Packages
Opened by Dan Liew (delcypher) - Tuesday, 22 July 2014, 20:13 GMT
Last edited by Bartłomiej Piotrowski (Barthalion) - Tuesday, 06 January 2015, 13:04 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Sergej Pupykin (sergej)
Bartłomiej Piotrowski (Barthalion)
Architecture All
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 7
Private No

Details

Description:
Running built bot commands fails.

Additional info:
buildbot 0.8.9-1
python-sqlalchemy 0.9.6-1
python2-migrate 0.7.2-6
python2-twisted 14.0.0-1
python2-jinja 2.7.3-1
python2-dateutil 2.2-2

Steps to reproduce:

```
$ buildbot create-master master
/usr/lib/python2.7/site-packages/twisted/internet/endpoints.py:30: DeprecationWarning: twisted.internet.interfaces.IStreamClientEndpointStringParser was deprecated in Twisted 14.0.0: This interface has been superseded by IStreamClientEndpointStringParserWithReactor.
from twisted.internet.interfaces import (
/usr/lib/python2.7/site-packages/twisted/spread/jelly.py:93: DeprecationWarning: the sets module is deprecated
import sets as _sets
mkdir /home/dan/test/buildbot/master
creating /home/dan/test/buildbot/master/master.cfg.sample
populating public_html/
populating templates/
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/twisted/internet/defer.py", line 1237, in unwindGenerator
return _inlineCallbacks(None, gen, Deferred())
File "/usr/lib/python2.7/site-packages/twisted/internet/defer.py", line 1099, in _inlineCallbacks
result = g.send(result)
File "/usr/lib/python2.7/site-packages/buildbot/scripts/create_master.py", line 152, in createMaster
yield createDB(config)
File "/usr/lib/python2.7/site-packages/twisted/internet/defer.py", line 1237, in unwindGenerator
return _inlineCallbacks(None, gen, Deferred())
--- <exception caught here> ---
File "/usr/lib/python2.7/site-packages/twisted/internet/defer.py", line 1099, in _inlineCallbacks
result = g.send(result)
File "/usr/lib/python2.7/site-packages/buildbot/scripts/create_master.py", line 138, in createDB
yield db.setup(check_version=False, verbose=not config['quiet'])
File "/usr/lib/python2.7/site-packages/buildbot/db/connector.py", line 101, in setup
basedir=self.basedir)
File "/usr/lib/python2.7/site-packages/buildbot/db/enginestrategy.py", line 230, in create_engine
return sa.create_engine(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/sqlalchemy/engine/__init__.py", line 344, in create_engine
return strategy.create(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/buildbot/db/enginestrategy.py", line 184, in create
self.check_sqlalchemy_version()
File "/usr/lib/python2.7/site-packages/buildbot/db/enginestrategy.py", line 179, in check_sqlalchemy_version
"SQLAlchemy-Migrate" % (version,))
exceptions.RuntimeError: SQLAlchemy version 0.9.6 is not supported by SQLAlchemy-Migrate
```
This task depends upon

Closed by  Bartłomiej Piotrowski (Barthalion)
Tuesday, 06 January 2015, 13:04 GMT
Reason for closing:  Fixed
Comment by drevilt (drevilt) - Wednesday, 06 August 2014, 14:42 GMT
I also can reproduce this
Comment by Thiago Perrotta (thiagowfx) - Saturday, 09 August 2014, 21:44 GMT
I can also reproduce this. The needed version for SQLAlchemy is 0.7.10, recommended by the official tutorial (reference [1]). Currently version in the official Arch repos is 0.9.7.
This package either need to use easy_install/pip to get the correct version, or there should be provided a package for the old version (probably not a good idea, as it would be against Arch's rolling release model). Any other suggestions about how to solve it?

[1]: http://docs.buildbot.net/current/tutorial/firstrun.html
Comment by Pierre Bourdon (delroth) - Wednesday, 13 August 2014, 03:36 GMT
Also broke our Buildbot deployment.
Comment by heinrich5991 (heinrich5991) - Thursday, 09 October 2014, 13:38 GMT
Upstream suggests to use an old version of SQLAlchemy.
Comment by Sergej Pupykin (sergej) - Monday, 13 October 2014, 10:01 GMT
Will it work with https://aur.archlinux.org/packages/python2-sqlalchemy-0.7.9/ ? If yes, I'll move it to community.
Comment by heinrich5991 (heinrich5991) - Monday, 13 October 2014, 12:21 GMT
```
$ buildbot create-master foobar
/usr/lib/python2.7/site-packages/twisted/internet/endpoints.py:30: DeprecationWarning: twisted.internet.interfaces.IStreamClientEndpointStringParser was deprecated in Twisted 14.0.0: This interface has been superseded by IStreamClientEndpointStringParserWithReactor.
from twisted.internet.interfaces import (
mkdir /home/[...]/foobar
creating /home/[...]/foobar/master.cfg.sample
populating public_html/
populating templates/
creating database (sqlite:///state.sqlite)
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/twisted/internet/defer.py", line 1237, in unwindGenerator
return _inlineCallbacks(None, gen, Deferred())
File "/usr/lib/python2.7/site-packages/twisted/internet/defer.py", line 1099, in _inlineCallbacks
result = g.send(result)
File "/usr/lib/python2.7/site-packages/buildbot/scripts/create_master.py", line 152, in createMaster
yield createDB(config)
File "/usr/lib/python2.7/site-packages/twisted/internet/defer.py", line 1237, in unwindGenerator
return _inlineCallbacks(None, gen, Deferred())
--- <exception caught here> ---
File "/usr/lib/python2.7/site-packages/twisted/internet/defer.py", line 1099, in _inlineCallbacks
result = g.send(result)
File "/usr/lib/python2.7/site-packages/buildbot/scripts/create_master.py", line 141, in createDB
yield db.model.upgrade()
File "/usr/lib/python2.7/site-packages/buildbot/db/model.py", line 547, in upgrade
check_sqlalchemy_migrate_version()
File "/usr/lib/python2.7/site-packages/buildbot/db/model.py", line 502, in check_sqlalchemy_migrate_version
version_tup = tuple(map(int, version.split('.')))
exceptions.ValueError: invalid literal for int() with base 10: '1-r0'
```
Comment by heinrich5991 (heinrich5991) - Monday, 13 October 2014, 12:22 GMT
That's the error with that AUR package.
Comment by heinrich5991 (heinrich5991) - Monday, 13 October 2014, 15:10 GMT
This patch to buildbot fixes the problem (only when using python2-sqlalchemy-0.7.9):

```
--- /usr/lib/python2.7/site-packages/buildbot/db/model.py 2014-10-13 17:08:34.455468497 +0200
+++ model.py 2014-10-13 17:08:24.625989989 +0200
@@ -499,7 +499,7 @@
version = "0.6"
except:
version = "0.0"
- version_tup = tuple(map(int, version.split('.')))
+ version_tup = tuple(map(int, version.split('-')[0].split('.')))
log.msg("using SQLAlchemy-Migrate version %s" % (version,))
if version_tup < (0, 6, 1):
raise RuntimeError("You are using SQLAlchemy-Migrate %s. "
```
Comment by heinrich5991 (heinrich5991) - Monday, 13 October 2014, 20:46 GMT Comment by heinrich5991 (heinrich5991) - Tuesday, 14 October 2014, 06:13 GMT
Upstream added patch.
Comment by Bartłomiej Piotrowski (Barthalion) - Sunday, 04 January 2015, 08:13 GMT
And released it in 0.8.10, but please confirm that it works for you now.
Comment by heinrich5991 (heinrich5991) - Sunday, 04 January 2015, 19:11 GMT
$ buildbot create-master
Traceback (most recent call last):
File "/usr/bin/buildbot", line 4, in <module>
runner.run()
File "/usr/lib/python2.7/site-packages/buildbot/scripts/runner.py", line 762, in run
subcommandFunction = reflect.namedObject(subconfig.subcommandFunction)
File "/usr/lib/python2.7/site-packages/twisted/python/reflect.py", line 168, in namedObject
module = namedModule('.'.join(classSplit[:-1]))
File "/usr/lib/python2.7/site-packages/twisted/python/reflect.py", line 154, in namedModule
topLevel = __import__(name)
File "/usr/lib/python2.7/site-packages/buildbot/scripts/create_master.py", line 23, in <module>
from buildbot.db import connector
File "/usr/lib/python2.7/site-packages/buildbot/db/connector.py", line 25, in <module>
from buildbot.db import model
File "/usr/lib/python2.7/site-packages/buildbot/db/model.py", line 17, in <module>
import migrate.versioning.repository
File "/usr/lib/python2.7/site-packages/migrate/versioning/repository.py", line 13, in <module>
from migrate.versioning import version, pathed, cfgparse
File "/usr/lib/python2.7/site-packages/migrate/versioning/version.py", line 10, in <module>
from migrate.versioning import pathed, script
File "/usr/lib/python2.7/site-packages/migrate/versioning/script/__init__.py", line 6, in <module>
from migrate.versioning.script.sql import SqlScript
File "/usr/lib/python2.7/site-packages/migrate/versioning/script/sql.py", line 6, in <module>
import sqlparse
ImportError: No module named sqlparse
Comment by Sergej Pupykin (sergej) - Monday, 05 January 2015, 21:29 GMT
should be fixed in python-sqlparse 0.1.14-2 and buildbot-0.8.10-2

Loading...