This is final report for Project Grumpy regarding Google Summer of Code Now that the official 'Pencils Down' date has been reached, it is time to look back and sum up the things that were done and what was not. Initial plan ============ The initial plan listed following deliverables: * Database storage for ebuild metadata (done) * Tools for gathering and managing metadata (done) * Upstream information checks (mostly done) * User-interface tools (mostly done) Project evolution ================= Although I had a clear plan in the beginning of the project, there were several hurdles that forced me to make several big changes to the overall design of the Grumpy project and for few times brought the whole project to a complete halt. As my first approach was to use MongoDB's document-oriented storage engine, devs handling Gentoo's infrastructure tasks were not too happy to support one more database on their machines and also my mentor and other developers who were a bit more involved with the project pointed me to several failures with Mongo. So eventually I went with PostgreSQL using SQLAlchemy as high-level ORM acting as middle layer between database and application. Now getting the data model and database working was tricky and I still believe that there will be a lot of upcoming changes regarding the database schema. Unimplemented features ====================== The first unimplemented 'big' feature that I could not implement was the '30-day stabilization checker'. This is hard to implement. Period. Secondly, the JSON-API and commandline utils for developers. This was because I got more and more stuck with my deadline and my Grumpy backend really did not have required features for commandline tools until it was too late. But this will be one of the first features that will be implemented post-GSoC. I did not implement LDAP-authentication backend and simply went with JSON and @gentoo.org email check. I just went with simple enough and working solution. I also wanted to implement Tinderbox reports support, but due to two bugs I ran into on my desktop machine (e1000e NIC hang (kernel) and carrier detection issue (dhcpcd)), I had to drop this idea after wasting considerable amount of time. Implemented features ==================== Grumpy backend that handles syncing the portage contents with database and web interface on top of it. Three QA-plugins: developer and herd checker and upstream version bump check plugins for packages from GNOME and PyPi. Future plans ============ I really want to get Grumpy up and running using Gentoo's infra. So far I have not had much luck dealing with infra. And of course get bug #332623 solved. And near future todo list regarding Grumpy itself: * CLI tools using JSON-API * Improve Web UI usability * Implement tinderbox plugin which is a huge step towards better QA.