On Tue, Dec 22, 2009 at 2:07 AM, David Cournapeau <courn...@gmail.com> wrote: [..] > >> The "metadata", as defined in PEP 314, >> are not thrown away by Distutils, but properly uploaded at PyPI. > > But there is much more than what PEP 314 defines.
Then that's not the metadata as defined in python packaging, but some other information you are talking about. >Think about > everything which is in an egg, for example. How are files locations > are described, how are files outside site-packages described, etc... > As a concrete example, there is not enough metadata in every installer > so that you can convert from one to the other, even though this would > be very useful and definitely possible. > So it is not just metadata at the "input" stage (although there is > certainly a lot of things lost there too), but how they are > represented internally, and how they are represented in the various > installers. This matters a lot for people who extend distutils. I think you are talking about internal representation of elements in an archive built by distutils here, which is different from the metadata that describes the project/release and pushed at PyPI. There's no need to publish and share those extra information unless you want to create some kind of converter. What's important is to clearly define the metadata of a project, as published at PyPI and installed on your system. Not the internal cooking of each installer. PEP 376 as a matter of fact, provides API to read/write the metadata of installed distributions. Now, for extending distutils, that's another problem: we already said that distutils was hard to extend, and we have proposed some changes for this (for example to have a configure/build/install scheme), but this has nothing to do with the published metadata. As a matter of fact, I am working on a configure command for distutils, looking at 4suite's work I've started a prototype here : http://bitbucket.org/tarek/distutils-configure (early stage) you are welcome to join :) > >> >>> - Linked to the above, metadata are not enforced in pypi. This just >>> cannot work. Most other systems in existence enforce strict rules. >> >> I am not sure what you mean by enforcing strict rules. You need to be >> more precise. > > For example, you can upload a distribution which does not even have a > name, or a version, easy_install tries to find tarballs by scrapping > webpages, etc... Two things: 1/ you get warnings if you try to build a distribution with missing metadata and there's now a command in 2.7 called "check" so you can set a strict control on client side 2/ easy_install doesn't "scrap" webpages but uses a protocol implemented by PyPI - see http://peak.telecommunity.com/DevCenter/EasyInstall#package-index-api > >> >> What do you want to do ? reject any package that doesn't meet some QA tests ? >> Is PyPI is a community repository, or an entreprise repository ? > > That's common sense to reject packages which do not define a basic set > of metadata, and this has nothing to do with enterprise vs community. > Debian, for example, enforces metadata in its package, and it does not > qualify as enterprise software to me if the term is meant as the > opposite of community. I am even opposing PyPI to debian packages because PyPI allows anyone to upload some python code to share, even if it doesn't have all the required metadata or QA. Installers are not the only PyPI end users right now. IOW, you don't have to be a professional packager to publish and share code at PyPI. That's how I understand its philosophy and I think it goes pretty well with Python's own philosophy. > >> I would have understood this frustration a year ago, but now, that's >> just a free rant/flame :) > > I have tried to explain several times about describing how files are > installed where, and everytime I was shut down (not by you). In > particular, I think I have explained already why I believe PEP 376 > does not solve the issue of interoperation with other installers > because it loses source/target directory information. Are you referring to the install schemes ? these schemes are described in the stdlib itself, but are not as detailed as what you could find in Debian for sure. And these scheme only concerns Python locations, because other locations were a bit out of distutils scope. But some people are working on extending that in PEP 376 so we can point stuff like man pages etc. But distutils will never ever compete with debian's dpkg or fedora's rpm if you need a full blown packaging system for a given platform. Rather, the best thing we can do is to make sure those packagers can easily extract info out of distutils distributions; if you think this can be improved, if you have examples of info loss, as you said that's the perfect thing to throw in the PEP discussions. And if you already did some months ago, I am sorry, I think you will have to do it again because that just means imho that the "distutils community" was not ready to hear it back then. But it grew up a little bit since then so I think it worth a try. Tarek -- Tarek Ziadé | http://ziade.org _______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org http://mail.python.org/mailman/listinfo/distutils-sig