1 |
This is final report for Project Grumpy regarding Google Summer of Code |
2 |
|
3 |
|
4 |
Now that the official 'Pencils Down' date has been reached, it is time to look |
5 |
back and sum up the things that were done and what was not. |
6 |
|
7 |
Initial plan |
8 |
============ |
9 |
|
10 |
The initial plan listed following deliverables: |
11 |
* Database storage for ebuild metadata (done) |
12 |
* Tools for gathering and managing metadata (done) |
13 |
* Upstream information checks (mostly done) |
14 |
* User-interface tools (mostly done) |
15 |
|
16 |
Project evolution |
17 |
================= |
18 |
|
19 |
Although I had a clear plan in the beginning of the project, there were |
20 |
several hurdles that forced me to make several big changes to the overall |
21 |
design of the Grumpy project and for few times brought the whole project to a |
22 |
complete halt. |
23 |
|
24 |
As my first approach was to use MongoDB's document-oriented storage engine, |
25 |
devs handling Gentoo's infrastructure tasks were not too happy to support |
26 |
one more database on their machines and also my mentor and other developers |
27 |
who were a bit more involved with the project pointed me to several failures |
28 |
with Mongo. So eventually I went with PostgreSQL using SQLAlchemy as |
29 |
high-level ORM acting as middle layer between database and application. |
30 |
|
31 |
Now getting the data model and database working was tricky and I still believe |
32 |
that there will be a lot of upcoming changes regarding the database schema. |
33 |
|
34 |
Unimplemented features |
35 |
====================== |
36 |
|
37 |
The first unimplemented 'big' feature that I could not implement was the |
38 |
'30-day stabilization checker'. This is hard to implement. Period. |
39 |
|
40 |
Secondly, the JSON-API and commandline utils for developers. This was because |
41 |
I got more and more stuck with my deadline and my Grumpy backend really did |
42 |
not have required features for commandline tools until it was too late. But |
43 |
this will be one of the first features that will be implemented post-GSoC. |
44 |
|
45 |
I did not implement LDAP-authentication backend and simply went with JSON and |
46 |
@gentoo.org email check. I just went with simple enough and working solution. |
47 |
|
48 |
I also wanted to implement Tinderbox reports support, but due to two bugs I |
49 |
ran into on my desktop machine (e1000e NIC hang (kernel) and carrier detection |
50 |
issue (dhcpcd)), I had to drop this idea after wasting considerable amount of |
51 |
time. |
52 |
|
53 |
Implemented features |
54 |
==================== |
55 |
|
56 |
Grumpy backend that handles syncing the portage contents with database and |
57 |
web interface on top of it. Three QA-plugins: developer and herd checker and |
58 |
upstream version bump check plugins for packages from GNOME and PyPi. |
59 |
|
60 |
Future plans |
61 |
============ |
62 |
|
63 |
I really want to get Grumpy up and running using Gentoo's infra. So far I have |
64 |
not had much luck dealing with infra. And of course get bug #332623 solved. |
65 |
|
66 |
And near future todo list regarding Grumpy itself: |
67 |
* Implement tinderbox plugin which is a huge step towards better QA. |
68 |
* CLI tools using JSON-API |
69 |
* Improve Web UI usability |
70 |
|
71 |
|
72 |
|
73 |
Päikest, |
74 |
Priit :) |