[PEAK] Packaging peak apps
Phillip J. Eby
pje at telecommunity.com
Fri Oct 8 17:46:40 EDT 2004
At 04:58 PM 10/8/04 -0400, Bob Ippolito wrote:
>On Oct 8, 2004, at 3:40 PM, Phillip J. Eby wrote:
>
>>At 03:23 PM 10/8/04 -0400, Bob Ippolito wrote:
>>
>>>There is currently no standard way to determine what files a package
>>>actually *needs*, versus what files happen to be in there (such as
>>>documentation, version control junk, etc.)... so correctly packaging up
>>>stuff that requires data files is going to require developing some
>>>manifest file or something that says "i need these files".
>>>Preferably this file would be parseable without eval'ing arbitrary
>>>python code.
>>>
>>>If you come up with something that makes sense, I'll support usage of it
>>>in py2app and try and get it supported by at least Twisted and pygame.
>>
>>Well, for the application being generated, the setup.py will specify what
>>"package data" files are valid, so in the case of py2app you can just use
>>the distribution object's data to get at that. The build_py command
>>handles generating the actual list.
>
>Well py2app wouldn't have access to PEAK's setup.py at the point where it
>wants to determine the dependencies for the peak package.
My point was more that the needed info could be generated from that into a
file, such as in PEP 262 or your proposal below.
>>For already-installed packages, PEP 262 defines an installation manifest
>>that would record the data, and in principle should eventually be
>>implemented for package data files.
>>
>>So, my suggestion would be to implement PEP 262 as an add-on to
>>'setuptools', and then we're good to go. ;)
>
>The problem with PEP 262's installation database is that it's not
>flexible. The metadata in this case belongs inside the packages, not in a
>separate database. If there is a separate database, it should have its
>own sys.path and import hooks..
>
>How about we just make a file named PKG-INFO inside every installed
>package that contains the typical PKG-INFO information and FILES section?
Hm. There's an interesting thought. Except... what about nested packages?
Also, there's no easy way to find *all* the files installed by a
"distribution", or to remove them, unless there's also a PACKAGES section
or something. It also won't really let you verify that you're not missing
things.
>>Of course, to do that, we'll probably need to hash some things out on the
>>Distutils SIG. I think I'd want to propose dropping the REQUIRES and
>>PROVIDES sections, and of course all my "open issues" listed in the PEP.
>>
>>What do you think?
>
>I think REQUIRES and PROVIDES are a good thing, at some point, especially
>for package management and application packaging uses.. but in this case I
>don't think the ideas as implemented in Python 2.4 are mature enough to
>bother with for this use.
The ones in 2.4 are going to be removed before 2.4 final; perhaps you've
seen my post on Python-Dev about that?
More information about the PEAK
mailing list