Fork me on GitHub

GPyPi2 — Google Summer of Code week #9 and #10

under Gentoo, Python, Gpypi2, English, Gsoc, Portage

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:

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.