[Catalog-sig] Re: Meeting followup- CPAN for Python?

Richard Jones richardjones at optushome.com.au
Fri Dec 10 23:20:17 CET 2004


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Sat, 11 Dec 2004 05:51 am, Ian Bicking wrote:
> * Track package names into PyPI.  For now these will serve as 
> identifiers for installation and dependencies.  Conflicting package 
> names already cause a lot of problems anyway, so it would be nice if 
> they'd be unique.

This step is done. In PyPI, a name is owned by someone (or some people).


> * Add a field for package dependencies, based on those names.  Forget 
> about version requirements for now.  Though in theory, since distutil 
> setup.py files are just Python scripts, this should be extensible.

Also, handling versioning implies that people retain versioned source 
downloads - something we can't rely on.

Possibly what we need is for the package to be able to indicate which versions 
it's been *tested* with, so it can warn that the download might not work? 
IIRC a problem with CPAN was version incompatibilities breaking things (I 
know I've hosed my Perl install a couple of times)

Now, having dependencies list is all well and good - what do we do with them? 
If we have automated checking against those dependencies, then that implies 
that we remember what's installed. AMK has done some work on this:

Database of Installed Python Packages
  http://python.org/peps/pep-0262.html

Other relavent PEPs:

Package Index and Metadata for Distutils
  http://python.org/peps/pep-0301.html
  (*still* marked "under consideration"... sigh)
Metadata for Python Software Packages v1.1
  http://python.org/peps/pep-0314.html

Metadata version 1.1 has fields for "download-url", "requires", "provides", 
"obsoletes" and "conflicts". I guess we need to change "download-url" to 
"source-url". Mmm. Ambiguity. It also removes Platform, and specifies the 
formatting of the long description field. The only open issue in that PEP is 
the license field. I believe some people would like it to remain, but only be 
used when their license doesn't appear in the Classifiers list, and they need 
to include the full text of their license (or some other statement about it). 
See PyPI bug 693471.

Also of interest:

Module Repository Upload Mechanism
  http://python.org/peps/pep-0243.html


> * Add a field for source download; maybe make it a dictionary, so you 
> can give several links for different sources (e.g., source tarball/zip, 
> rpm, windows installer, debian package, etc).

I think just sticking with the source installer is fine. This is all invoked 
by setup.py, isn't it?


> * Create a script that can query PyPI, get the link(s), then download 
> it.  PyPI already has an XML-RPC interface, I believe.

PyPI's web interface is a complete shambles. I really want to reimplement it 
in something easier to maintain, and more extensible. As an aside: the pypi 
sqlite database really needs to move to postgresql.


> Because of SF,  
> the downloader has to be a little smart about the load balancing page in 
> that case, but that's relatively easy.

We'll be special-casing for them, but there will probably be other download 
sites like this :(


> Well, these are some of my ideas.  If people are interested in this in
> general, we could try to organize a little mini-sprint; a number of us
> would come together and try to bang it out.  We could try to schedule
> and coordinate this with Richard or other interested people over IRC.

Looks like I'll be attending PyCon, so a sprint there would be possible.


    Richard
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFBuiErrGisBEHG6TARAn51AJwOT9hEBVKsumDM9/PBj6BbBATf/QCggmLG
Q1RxvgXOjCr67pr5H08RYDs=
=9LZy
-----END PGP SIGNATURE-----


More information about the Catalog-sig mailing list