GPyPi2 — Google Summer of Code week #9 and #10
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
GPyPi now supports building ebuilds directly from Python packages. It's tied into distutils:
python setup.py sdist_ebuild
Configuration is not as verbose as through pypi, but that is a subject to change.
Previous 2 weeks (19th July - 4th August)
Task: fix TODOs in the code
Code currently has about `60 TODOs <http://hudson.fubar.si/job/g-pypi2/portage=portage2.1,python=2.6/58/tasksResult/?>`_ that need to be address for a better codebase.
Most important ones are cleaned. Some of highlights:
- echo command does not use overlay anymore for storing temporary ebuild but /tmp/
- conditional use flags are used properly now
- remember configuration values given by interactive questionnaire
Task: Implement "python setup.py bdist_ebuild" command
I'll peek into distutils heart and implement most basic bdist command to output an ebuild. I will basically the same stuff we currently do, except it will parse data from setup.py itself and not through pypi.
Done. When gpypi2 is called the first time it installs support for distutils command.
Upcoming week (4th - 11th August)
Task: metadata, echangelog and manifest generation
In the last week of implementing features I will add support for Gentoo developers workflow.
Task: Atomic actions
Currently if anything fails in the process, data will lay around the filesytem. I'll implement most basic cleanup (rollback) on failures.
Task: Exceptions
Code currently uses a bit of exceptions and a bit of log.error. I'll make that a bit structured and also document what exceptions are raised in functions
Task: integration tests and documentation
Update documentation and write some integration tests.