[Distutils] [Python Language Summit] Distutils / Packaging survey
ben+python at benfinney.id.au
Sun Feb 1 23:26:52 CET 2009
Ian Bicking <ianb at colorstudy.com> writes:
> I'm just about ready to run screaming from this discussion... so no,
> I want no part of determining what the "right" place for these files
As I understand it, you are speaking from the perspective of a
“developer”; that is, someone who intends to share the software work
you've written, but leave the packaging of that work for particular
OSen to other people.
In that case, you're *not* being asked to determine what the “right”
installation location of files is; that's exactly the shift in control
that's being requested here, by divorcing the decision about what the
*purpose* of a file is from what its installed *location* will be.
Instead, you're being asked only to determine which category a file
belongs to; and those categories are (modulo some historical quirks,
due to David's obvious strong preference for the C-language-focussed
‘autoconf’) mostly about the *purpose* of a file — precisely to allow
that determination to be made without the same person needing to know
about install locations.
> I imagine some file like package-data.conf, containing:
> data mypackage/templates/
> docs docs/_build/
> At least in this example the first word is some tag, and the second
> is the directory, or files, or maybe a wildcard or something
> determining what files that tag applies to. Everything not declared
> but present in a package (or as a module) would default to "lib",
> and everything outside of that (like the setup.py file) would be
This is (with implementation differences) entirely compatible with
what David's proposing, AFAICT.
The message you responded to, though, was discussing the complementary
part: the install location of (in your example) ‘docs’, ‘data’, ‘lib’,
etc. If you want no part of that, you're welcome to avoid it; and
that's exactly the kind of partition that is being striven for here.
> On installation, you'd write something like
> mypackage.egg-info/file-locations.txt, that might look like:
> mypackage/templates/ -> /usr/share/mypackage/templates/
> docs/_build/ -> /usr/share/doc/mypackage
> (I'm not sure what the syntax would look like, but whatever.)
Here, though, you lose the very useful categorisation you set up
above. AIUI, David is proposing that install location be a mapping not
from file path to file path, but from file *purpose* (as categorised
above) to install file path.
\ “For every complex problem, there is a solution that is simple, |
`\ neat, and wrong.” —Henry L. Mencken |
More information about the Distutils-SIG