Trash on PyPI
As an outcome of some planless Tuesday afternoon hacking, I created zopyx.trashfinder.
zopyx.trashfinder is a small script perform some sanity check on packages registered on PyPI.
Sanity means
- the package has description
- the package has a summary
- the package metadata contains either the name of the author or the maintainer
- the package metadata contains either the email of the author or the maintainer
- the package releases contain actually files - either directly on PyPI or at least through a valid download_url
I consider those requirements minimal and easy to fulfill for any package maintainer - I stay with my statement that PyPI is the public data toilet of the Python community.
Checks on zope.* packages
CRAP: zope.introspector==0.1.1 - description < 40 chars CRAP: zope.introspector==0.1.1 - no author and no maintainer email given CRAP: zope.introspector==0.1.1 - no author and no maintainer name given CRAP: zope.release==3.4.0 - no release files, no valid download_url
Checks on plone.* packages
CRAP: plone.controller==1.6 - description < 40 chars CRAP: plone.controller==1.6 - summary < 10 chars CRAP: plone.controller==1.6 - no author and no maintainer email given CRAP: plone.controller==1.6 - no author and no maintainer name given CRAP: plone.recipe.dzhandle==1.0-beta4 - description < 40 chars CRAP: plone.recipe.dzhandle==1.0-beta4 - summary < 10 chars CRAP: plone.recipe.dzhandle==1.0-beta4 - no author and no maintainer email given CRAP: plone.recipe.dzhandle==1.0-beta4 - no author and no maintainer name given
Checks on collective.* packages
CRAP: collective.baseid==1.0rc1 - description < 40 chars CRAP: collective.baseid==1.0rc1 - summary < 10 chars CRAP: collective.baseid==1.0rc1 - no author and no maintainer email given CRAP: collective.baseid==1.0rc1 - no author and no maintainer name given CRAP: collective.buildout.cluster==0.3 - description < 40 chars CRAP: collective.buildout.cluster==0.3 - summary < 10 chars CRAP: collective.buildout.cluster==0.3 - no author and no maintainer email given CRAP: collective.buildout.cluster==0.3 - no author and no maintainer name given CRAP: collective.contentrules.mailtolocalrole==0.7 - no author and no maintainer email given CRAP: collective.contentrules.mailtolocalrole==0.7 - no author and no maintainer name given CRAP: collective.dtwidget==0.1dev-r59928 - description < 40 chars CRAP: collective.dtwidget==0.1dev-r59928 - no author and no maintainer email given CRAP: collective.dtwidget==0.1dev-r59928 - no author and no maintainer name given CRAP: collective.gallery==0.1 - no release files, no valid download_url CRAP: collective.gsa==1.0.5dev-r3574 - no release files, no valid download_url CRAP: collective.js.s3slider==1.0 - no release files, no valid download_url CRAP: collective.kssinline==0.9.4 - description < 40 chars CRAP: collective.kssinline==0.9.4 - no author and no maintainer email given CRAP: collective.kssinline==0.9.4 - no author and no maintainer name given CRAP: collective.monkeypatcher==1.0b2 - no author and no maintainer email given CRAP: collective.monkeypatcher==1.0b2 - no author and no maintainer name given CRAP: collective.portlet.facet==0.1a1 - description < 40 chars CRAP: collective.portlet.facet==0.1a1 - summary < 10 chars CRAP: collective.portlet.facet==0.1a1 - no author and no maintainer email given CRAP: collective.portlet.facet==0.1a1 - no author and no maintainer name given CRAP: collective.recipe.mxzopeda==0.1 - no author and no maintainer email given CRAP: collective.recipe.mxzopeda==0.1 - no author and no maintainer name given CRAP: collective.recipe.patch==0.2.1 - no release files, no valid download_url CRAP: collective.steps==0.2dev-r80219 - no release files, no valid download_url CRAP: collective.uuid==1.0rc1 - description < 40 chars CRAP: collective.uuid==1.0rc1 - summary < 10 chars CRAP: collective.uuid==1.0rc1 - no author and no maintainer email given CRAP: collective.uuid==1.0rc1 - no author and no maintainer name given CRAP: collective.webrichtlijnen==0.2 - no release files, no valid download_url
I can think of other tests performing further quality checks..perhaps an interesting tool for increasing the software and release quality? Not sure - not having too much hope :-)
