GPyPi2 — Google Summer of Code week #6
Greetings, following is the weekly update for gpypi2 project. It's main purpose is to generate ebuilds from Python Package Index. Quick links to project info:
- Repository, issue tracker
- Hudson CI instance
- Sphinx documentation generated by hudson on each commit
- wiki/user stories for scrum development
Last two weeks were crazy at university. Now I shall have time to work on gpypi2 full-time until the end of program.
Install gpypi2
$ sudo pip install http://bitbucket.org/iElectric/g-pypi2/get/tip.zip
or
$ sudo easy_install http://bitbucket.org/iElectric/g-pypi2/get/tip.zip
Create an ebuild
$ sudo gpypi2 create flask
* Generating ebuild: Flask 0.4
* Your ebuild is here: /usr/local/portage/dev-python/flask/flask-0.4.ebuild
* Dependency needed: Werkzeug
* Dependency needed: Jinja2
* Generating ebuild: Werkzeug 0.6.2
* Your ebuild is here: /usr/local/portage/dev-python/werkzeug/werkzeug-0.6.2.ebuild
* Generating ebuild: Jinja2 2.5
* Your ebuild is here: /usr/local/portage/dev-python/jinja2/jinja2-2.5.ebuild
* Dependency needed: Babel
* Generating ebuild: Babel 0.9.5
* Your ebuild is here: /usr/local/portage/dev-python/babel/babel-0.9.5.ebuild
NOTE: ebuilds will probably not function yet, features are yet to be completed/added. Report bugs to `issue tracker <http://bitbucket.org/iElectric/g-pypi2/issues?status=new&status=open>`_.
Previous week (21st June - 5th July)
Task: Use SrcUriNamer
gpypi2.enamer.SrcUriNamer is awaiting for quite 2 weeks now to be finally used. It's basically factory that generates SRC_URI and HOMEPAGE according to mirror provider. A lot of additional refactoring will be needed to Enamer to use this utility instead of current guessing/parsing.
Not done. With Jesus we decided to postpone this for one of the last tasks, since it's not that big benefit to gpypi2 and there are more important details to be implemented. It's also a big blocker for good unittest coverage, but that shall be sorted out.
Task: Fix bugs reported by users
Lot of bugs are going to pop up; fix bugs, write tests and add documentation.
None reported :(
Task: Increase test coverage
I'm still not satisfied with test coverage. I'll try to increase it a bit more. It's 10 days week of exams on my university, soon I will be able to put in more effort in implementing features.
Unittest coverage is about 75%. Won't get further than that until SrcUriNamer is properly implemented and tested. Few additional tests can be made at PortageUtils, but that's a minor issue. Here is a rundown of additional changes to code:
- slight improvements to documentation
- option to choose PyPi base URL
- changed behaviour to use XML-RPC and SETUPTOOLS/SIMPLEPAGE method for retrieving SRC_URI
- updated licences dictionary mapping
- fixed echo command to work properly (without cleanup atm)
Upcoming week (22nd June - 28th June)
Task: Write configuration skeleton
Currently, gpypi2 code only takes configuration from command line. I'd like to extend that to config file (.ini), get data directly from setup.py and interactive questionaire. In order for that to function properly, configuration needs to be done in right sequence. Following week I will write down the design and implement initial working prototype.
Task: sync command - populate overlay with successful ebuilds from pypi
When I will get bored or stuck with task #1, I'll start working on command that will generate ebuilds from all packages in pypi to an overlay.
Cheers, Domen