Red Hat Bugzilla – Bug 452388
Review Request: python-migrate - Schema migration tools for SQLAlchemy
Last modified: 2008-07-23 22:13:05 EDT
Spec URL: http://toshio.fedorapeople.org/packages/python-migrate.spec
SRPM URL: http://toshio.fedorapeople.org/packages/python-migrate-0.4.4-1.src.rpm
Schema migration tools for SQLAlchemy designed to support an agile approach
to database design and make it easier to keep development and production
databases in sync as schema changes are required. It allows you to manage.
database change sets and database repository versioning.
Ricky and I are working on this together. Reviewers, it's fine with me if he
works on modifying the package to finish the review as I'm going on vacation for
a bit more than a week.
Hmm, 404 on that URL. I used
Unfortunately it doesn't build in mock on rawhide:
+ /usr/bin/python setup.py build
Traceback (most recent call last):
File "setup.py", line 2, in <module>
from setuptools import setup,find_packages
ImportError: No module named setuptools
I added a python-setuptools dependency and it builds OK. With that added it
builds OK. Full review forthcoming....
Aside from the build error, which I'll just assume is fixed in order to progress
with this review, I note that /usr/bin/migrate is just begging for conflicts.
While no package in Fedora provides it, a quick search shows that it's used in
at least one clustering environment, an HSM system, something Zope related, and
some user migration tools. Is there any other reasonable choice of name that
could be used?
I note that there's a test suite in the tarball; it looks like it should be
possible to run this with sqlite, but I have no idea how or if it's at all
possible to do that at runtime.
A minor nit, I guess, but you might as well remove the unneeded comments left
over from the specfile template.
* source files match upstream:
* package meets naming and versioning guidelines.
* specfile is properly named, is cleanly written and uses macros consistently.
* summary is OK.
* description is OK.
* dist tag is present.
* build root is OK.
* license field matches the actual license.
* license is open source-compatible.
* license text not included upstream.
* latest version is being packaged.
X BuildRequires missing python-setuptools (at least in rawhide)
* %clean is present.
* package builds in mock (after adding python-setuptools dependency).
* package installs properly.
* rpmlint is silent.
* final provides and requires are sane:
python-migrate = 0.4.4-1.fc10
python(abi) = 2.5
? %check is not present, but there's a test suite,
* owns the directories it creates.
* doesn't own any directories it shouldn't.
* no duplicates in %files.
* file permissions are appropriate.
* code, not content.
* documentation is small, so no -doc subpackage is necessary.
* %docs are not necessary for the proper functioning of the package.
I wasn't sure how to handle the possible /usr/bin/migrate conflict, but here's
an updated spec with some updated Requires and BuildRequires:
Spec URL: http://ricky.fedorapeople.org/pkgs/python-migrate/python-migrate.spec
I did look into the %check thing a bit, and it looks like the tests require the
py library (http://codespeak.net/py/dist/) which isn't in Fedora yet. Once py
should work (python setup.py test gave errors - it looks like py.test doesn't
have any classes to work with setuptools). Overall, py wasn't that much fun to
work with, and I'm not sure if it was worth the hackyness in the specfile with
the BuildRequires on python-sqlite2 and everything.
I queried upstream about the name. They aren't too worried about potential
conflicts (their reasoning is Debian has imported it with /usr/bin/migrate). I
asked and they did say that sqlalchemy-migrate seemed like a good name if we
wanted to do that locally.
So I'm in favour of renaming migrate => sqlalchemy-migrate.
I looked at py.test as well but it wasn't trivial to package. I could probably
get it working with some more work but I'm still swamped with post-vacation work
so I concur with holding off on that until py.test is included.
Okay, new package ready for review.
* Binary renamed to /usr/bin/sqlalchemy-migrate
* Check section present but commented out. If we get py.test in we can look at
* BuildRequires picked up from ricky's update
* Extraneous comments removed
tibbs: I know you're going on vacation. I think lmacken might have time to look
at this so you can enjoy yourself :-)
With regard to the naming issue, I'm also in favor of s/migrate/sqlalchemy-migrate/.
? rpmlint complaint: python-migrate.noarch: E: non-executable-script
* Package name is OK, and I'd be fine with the s/migrate/sqlalchemy-migrate/
rename as well.
* Package meets the packaging guidelines
* License is valid and meets guidelines
* Specfile is clean
* Source file matches upstream
* Package successfully builds in mock
* Requires and BuildRequires are correct
* Package owns everything it creates
* Does not contain duplicate files
* Permissions are set properly
* %clean section exists
* consistent use of macros
* code, not content
* small amounts of documentation, no subpackage
* %docs do not effect runtime
* buildroot is wiped before installation
* filenames are all valid utf-8
I don't see the rpmlint "error" as an issue, since it is a template that turns
into a script once installed.
So, the rename is up to you guys -- whether we want python-migrate or
python-sqlalchemy-migrate (I tend to lean towards the latter). Other than that...
Cool. The package naming is a bit of a pain:
If we think of this as primarily a python module with a program attached to it
then it should be: python-migrate to follow the naming guidelines for python
modules (import migrate => python-migrate)
If we think of it as a program with most functionality implemented in a module,
then it could be named migrate or sqlalchemy-migrate.
debian has python-migrate. Gentoo doesn't seem to have it packaged yet. So I
think I'll leave it at python-migrate for now.
New Package CVS Request
Package Name: python-migrate
Short Description: Schema migration tools for SQLAlchemy
Owners: toshio lmacken ricky
Branches: F-8 F-9 devel EL-5
Cvsextras Commits: yes
python-migrate-0.4.4-4.fc8 has been submitted as an update for Fedora 8
python-migrate-0.4.4-4.fc9 has been submitted as an update for Fedora 9
Built in devel. Will be pushed to F8 and F9.
python-migrate-0.4.4-4.fc9 has been pushed to the Fedora 9 stable repository. If problems still persist, please make note of it in this bug report.
python-migrate-0.4.4-4.fc8 has been pushed to the Fedora 8 stable repository. If problems still persist, please make note of it in this bug report.