GSoC 2010 is history, but more and more is going on.
Let me rephrase a bit what was my project over this summer, what does it provide and what will the future bring.
gpypi2 has become quite more than it's primary goal, installation of Python packages has never been easier:
- Create/echo Gentoo Linux ebuilds from Python Package Index or from Python source (with help of distutils)
- Install that ebuild with invoking emerge
- Create overlay from all working packages on Python Package Index
Install
Very easy.
$ layman -f -o http://gpo.zugaina.org/lst/gpo-repositories.xml
$ layman -a iElectric
### unmask gpypi2, easiest with autounmask
$ autounmask -a dev-python/gpypi2-9999
$ emerge -av gpypi2
gpypi2 -h for list of commands. Please report bugs to BitBucket issue tracker
Not over yet
My work at Gentoo. I will be back.
Special thanks to my mentor Jesus "neurogeek" Rivero, without him it would be impossible.
PS: In one week I am releasing gpypi2 0.1 release.
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 knows about metadata.xml, ChangeLog and Manifest!
Previous week (2nd - 9th August)
Task: metadata, echangelog and manifest generation
In the last week of implementing features I will add support for Gentoo developers workflow.
Done. Implementation is in gpypi2/workflow.py. One issue though: echangelog has no idea how to add files to SCM, will have to find another abstraction tool for that.
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.
I haven't touched this one, mostly because I don't have a good idea how to handle tracking of files.
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
Done. Exceptions are documented and properly catched in cli.py code.
Task: integration tests and documentation
Update documentation and write some integration tests.
Partly done. Tests still need some love, but that will not be part of the GSOC (I still have to properly implement SrcUriNamer.)
GSoC is over, I have met my deliverables. It was a lot of fun, can't wait for Gentoo community to start using my tool. Project is far far from finished, I will continue to work on it and polish it. At the end, Gentoo is my primary choice for platform (even on laptop).
I can't wait for next year to apply for the project and continue to work on OSS. Cheers guys!
Thanks to my mentor Jesus for supporting me and thanks to Gentoo community for IRC 0day help! :)
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.
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
Very successful 2 weeks. Two days of vacations and nice shiney configuration utility together with questionnaire.
Previous 2 weeks (5th - 19th July)
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.
Configuration dispatcher fully implemented! Also we have already working questionnaire functionality. Details can be found at http://docs.fubar.si/gpypi2/userguide.html#configuration
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.
Initial "sync" command is implemented. Still lacking proper error handling, metadata generation and manifest update support. Will be a lot easier to implement with current configuration management.
Additional, following mini-tasks were performed:
- fixed echo command to work properly
- correct handling of whitespace in rendered ebuilds
- replace 4 spaces with a tab in rendered ebuilds
Upcoming week (20th - 26th July)
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.
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.
Thanks to http://xercestech.com/app-engine-server-monitor.geek
Go to https://appengine.google.com/ and register application with {app-name}
wget http://googleappengine.googlecode.com/files/google_appengine_1.3.5.zip
unzip google_appengine_1.3.5.zip
cd google_appengine
git clone git://github.com/mrsteveman1/aeservmon.git {app-name}
vim {app-name}/app.yaml # set application
python appcfg.py update {app-name}