[Soc-coordination] Fwd: Declarative Diversions - Report 5 (Final)

Sam Dunne sam.dunne101 at gmail.com
Tue Aug 23 14:01:26 UTC 2011


DECLARATIVE DIVERSIONS
======================

REPORT 5 - 21st August 2011
-------------------------
This is the fifth and last report for declarative diversions for Debian as part
of Google Summer of Code.


SUMMARY
-------------------------
The goal of this project was to enable declarative diversions within dpkg

This was intended to be fully implemented by the end of the project. However,
it has not been completed fully. There is still a todo list which I
will be staying around
to complete


WHAT HAS HAPPENED SINCE LAST TIME
---------------------------------
The last two weeks have been a rush. The amount of work has piled up
quite a bit. This happened for a number of reasons.

1) There was a lot of refactoring that was done in "lib/dpkg/parse.c"
that was needed for the project to be successful. guillem did all of
this for us which was a massive help
2) I was sick last week and had a hard time concentrating on code so
progress was slow

However the last three days has been extremely productive. Myself and
vorlon have been working well to fix issues with the code. We have
replicated a lot of code contained within parse.c
to keep the code as closely related to the existing codebase as possible.

Our general program flowchart (as of now) goes like this:
divert_parse_ci()               Called once for each file
 |
V
parse_stanza()          Called once for each stanza. parse_EOF() tells us
there are no more
 |
V
diversion_parse_field()         Called once for each field in the stanza

We had to remove the ability to place comments within the diversions
file. Because as of right now it will break the parser.
This evening (21st August 2011) the code builds successfully. The
parser works and creates a linked list successfully

Unfortunatley the code still has a bit of doing and will not be
completed in time. I plan on staying around either way and the project
will
be finished off. There is a todo list ;)


PLANS FOR THE COMING FUTURE
---------------------------
Finish off everything on the todo list:
* If a field occurs more than once in a stance throw an error
* Fix diversion_ctor to not use static arrays for our strings
* Handle the case of a declarative diversion with no "To:" specified,
by filling in the default value based on the from field
* Check if there is a difference in old and new diversions "To" field
when calculating diversions
* Function to free the lists we allocate
* Integrate with processarc.c
* Drop testing main() function
* Makefile.am: add divert.c and divert.h into the list of dpkg sources

Stay on with Debian with the aim to become a Debian developer


WHAT I FOUND HARD
-----------------
Throughout the project the whole concept of data structures has been
challenging as it was completely new to me. However vorlon has
explained a lot of what I need to know extremely well and I am
confident that I know far far more than I did 3 months ago on the
topic


WHAT HAS GONE WELL
------------------
In short, the Debian family :)


CONTACT ME
----------
Anyone who wishes to discuss the project with me can either mail me through
the mailing list, catch me on IRC (SCD[Eire]) or email me at
sam.dunne101 at gmail.com

My blog:    http://blog.sam-dunne.com
My Github:  https://github.com/samdunne/dpkg-diversions

My code is located in '/lib/dpkg' in the 'testing' branch of my code. The files
are 'divert.c' and 'divert.h'

*Note* - You will have to also checkout '/lib/dpkg/div_test/' folder for my code
to work


A final thanks as a GSoC Student :),
~Sam



--
Sam Dunne
BSc Computer Science, UCD Dublin.



-- 
Sam Dunne
BSc Computer Science, UCD Dublin.



More information about the Soc-coordination mailing list