From 65278fdf1ec80a784f9ada8d390ad063a459c97a Mon Sep 17 00:00:00 2001 From: Richard Ipsum Date: Fri, 5 Dec 2014 22:07:37 +0000 Subject: Add TODO.python --- TODO.python | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 TODO.python (limited to 'TODO.python') diff --git a/TODO.python b/TODO.python new file mode 100644 index 0000000..16b7889 --- /dev/null +++ b/TODO.python @@ -0,0 +1,92 @@ +TODOs +----- + +* if homepage_url (in the pypi metadata for a given pacakge) is a html page, +scrape the page for repo links, this should reduce the number of tarball +imports the tool does. + +* scheme x.y e.g. pip.find_deps should avoid using a '.' makes it more +difficult to import extensions as modules, consider the case where we want +to import pip.find_deps for use in a test suite. + +* prefix cmd to logs, so when we run pip, prefix log msg with 'pip', +same for egg_info etc + +* abstract popen/log, +there is a pattern of calling Popen with stderr=STDOUT and reading +from p.stdout till EOF, then waiting for the subprocess to terminate. +Since this is used in 3 places, it should be factored out really. + +* error messages for constraints is currently a parsed form of the version +number e.g. ('==', ('00000000', '00000000', '00000011', '*final')) +this will be confusing, we should emit nice version numbers. + +* Can we avoid the compilation that happens during import of some packages, +i.e. nixtla + +* add a test runner + +* Importing python packages that use pbr fails, see +https://bitbucket.org/pypa/setuptools/issue/73/typeerror-dist-must-be-a-distribution#comment-7267980 +The most sensible option would seem to be to make use of the sane environment +that pbr provides: just read the dependency information from the text files +that pbr projects provide, see, http://docs.openstack.org/developer/pbr/ + +Results from running the import tool on various python packages follow: + +* Imports tested so far (stratum is generated) + * SUCCEEDS + * nixtla: fine but requires compilation + * ryser + * Twisted + * Django + * textdata + * whale-agent + * virtualenv + * lxml + * nose + * six + * simplejson + * pika + * MarkupSafe + * zc.buildout + * Paste + * pycrypto + * Jinja2 + * Flask + * bcdoc + * pymongo + + * FAILS + * python-keystoneclient + * All openstack stuff requires pbr, pbr does not play nicely with + current setuptools see: [Issue 73](https://bitbucket.org/pypa/setuptoolsissue/73/typeerror-dist-must-be-a-distribution#comment-7267980) + we can either fix setuptools/pbr or make use of the sane environment + pbr provides. + * persistent-pineapple + * Git repo[1] has different layout to tarball[2] downloadeable from pypi, + git repo's layout isn't 'installable' by pip, so dependencies can + not be determined. + [1]: https://github.com/JasonAUnrein/Persistent-Pineapple + [2]: https://pypi.python.org/packages/source/p/persistent_pineapple/persistent_pineapple-1.0.0.tar.gz + * ftw.blog + * cannot satisfy dependencies + * boto + * cannot satisfy dependencies + * jmespath + * cannot satisfy dependencies + * rejester + * its setup.py subclasses distutils.core + * requests + * cannot satisfy dependencies + * MySQL-python + * egg_info blows up, + * python setup.py install doesn't even work + * maybe the user's expected to do some manual stuff first, who knows + * rejester (its setup.py subclasses distutils.core) + * redis-jobs (succeeded at first, no longer exists on pypi) + * coverage (stratum couldn't be generated because some tags are missing) + +* Imports completely tested, built, deployed and executed successfully: + + * Flask -- cgit v1.2.1