Hi All,

The following buildout.cfg demonstrates something that feels buggy to me:

[buildout]
parts = sqlalchemy migrate
versions = versions

[versions]
SQLAlchemy = 0.6.0
sqlalchemy = 0.6.2

[sqlalchemy]
recipe = zc.recipe.egg
eggs = SQLAlchemy
entry-points = foo=bar:baz

[migrate]
recipe = zc.recipe.egg
eggs = sqlalchemy-migrate

When run, you'll get two scripts:

bin/migrate:
...
sys.path[0:0] = [
  '/opt/buildout-eggs/sqlalchemy_migrate-0.6-py2.6.egg',
  '/opt/buildout-eggs/Tempita-0.4-py2.6.egg',
  '/opt/buildout-eggs/decorator-3.2.0-py2.6.egg',
  '/opt/buildout-eggs/SQLAlchemy-0.6.2-py2.6.egg',
...

bin/foo:
...
sys.path[0:0] = [
  '/opt/buildout-eggs/SQLAlchemy-0.6.0-py2.6.egg',
  ]
...

The problem is that sqlalchemy-migrate declares an install_requires dependency on "sqlalchemy", which the package is actually called SQLAlchemy.

It could be argued that sqlalchemy-migrate is "wrong" but it remains that all python's packaging tools appear case insensitive to package names.

As such, I'd expect buildout's version pinning to be case agnostic as well. What do other people feel about this?

Chris

_______________________________________________
Distutils-SIG maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to