[Python-Dev] PEP 376 - Open questions

Paul Moore p.f.moore at gmail.com
Mon Jul 6 20:38:24 CEST 2009


As promised, here are some open questions on PEP 376.

- Will the public API names be changed from *egginfo* to *metadata*?

- What precisely are the use cases for absolute path names? Concrete
examples are needed. With the current spec, some things can go wrong
(e.g., see below), so we need real use cases to know how to address
this.

- How will bdist_wininst/bdist_msi/bdist_rpm be updated?

- How will the RECORD file be managed? (Particularly for the case of
bdist_xxx) [1]

- Can distutils be made to install files in places the current RECORD
file spec can't handle? (I think the answer is "yes"). What happens
then?

- Should distribution names be case insensitive on case insensitive
filesystems? For comparison, module/package names are always case
sensitive even on case insensitive systems.

- What will happen with the md5 hash? Are more types of hash going to
be supported? What's the default? (Actually, the PEP doesn't need to
care about the default, as the PEP says nothing about how RECORD files
are written).

[1] Note - the idea of using $EXEC_PREFIX / $PREFIX implies that the
RECORD file is intended to be relocatable. Which is worrying, and also
implies that an individual Distribution class must be able to handle
filesystem files as well as whatever else it handles (consider
mylib.zip on sys.path, containing a distribution which installed some
files in $PREFIX). If this isn't possible, it should be clearly stated
that it isn't possible. If it is, the ramifications are complex...

I'm still unsure how the local vs relative, slash-separated filename
formats should be handled. I don't actually think there's any real
benefit in having 2 formats. I propose:

- get_installed_files(), uses(), get_file_users() - always use local
format absolute pathnames (for zipfiles and the like, these may not be
"real" filenames, but they will be in "real filename" format, so other
code will be able to manipulate them as filenames).

- get_egginfo_files, get_egginfo_file - always use slash-separated
forms, relative to the egginfo directory (so the name of the RECORD
file is just 'RECORD')

But there could be uses I haven't thought about, so this still counts
as an open question at the moment (i.e., I'm reluctant to implement
things this way until I've had some feedback).

Paul.


More information about the Python-Dev mailing list