[Systers-dev] GSoC Update and Final Items for Completion

Anna Granudd anna.granudd at gmail.com
Tue Aug 18 15:49:49 PDT 2009


Hi,
Jen asked us to post a summary of our GSoC experiences this summer and this
is my attempt at doing so. Not being sure what to write really, this might
have gotten a bit long and not really what she asked for, but still, here it
goes.

First, let me start by giving you a quick sum up of who I am. I'm a 24 year
old engineer student in my final year at school. Without much experience
with an open source project like GSoC, I figured it was worth giving it a
try since it sounded like fun and like something where you could learn a
lot. Enough said, I was one of the lucky ones to get one of the spots by
Systers. The plan was to read up on the code while still having classes in
order to be able to start coding soon after the last exam. This turned out
to be doomed. The later in the semester it got, the more group assignments,
essays and exams to study for build up. Especially group assignments turn
out to be a real time thief, I had one where we were to write code in Visual
Basic as a last assignment, realizing exactly how much I don't like this
language. I had used it before but not until now had it caused me that much
time loss and grieve - thank God for the beautiful Python used in Mailman!

Due to this lack of time during semester, I could only start to study the
code in the beginning of June. I think I might have underestimated the time
required to understand it enough to change things in it, the time I spend on
just reading the code and entering debug statements to understand what
happened seemed to last forever. I still don't understand everything, but
after some time I at least had an idea of how things worked. Sometime during
the read up, I also realized I needed to change my project plan. I was to be
begin with documentation but realizing I would be able to do a lot better
job after actively working with the code, this was put at the end of the
summer instead. However, before being able to continue (or actually to start
studying the code as well) I needed to set up my working environment and
install Mailman and the Systers changes done to it. This was a hammer. Half
way through and a lot of error messages later, I realized I needed to
install an older version of my OS and start over. So much for "it'll
probably work out fine with the newer version as well". It didn't. Don't
know if it was the "too new" version of Python or the version of Ubuntu that
made it, but googling my errors told me I wouldn't be able to easily fix
this. Not that big an issue, at least I got better and better at installing
Mailman. After setting up the required versions of OS etc. on another
computer, I gave it a new try. I got further this time, it might even have
worked if I remember it correctly. Ruining your installation is easy though,
after getting Mailman to work once I think I reinstalled my OS twice more
and Mailman four or five times more. Still, I learned how to do it better
and quicker, while being able to update the instructions on how to install
Mailman. Jen had done most of the job with the instructions already, I
simply updated a few things as I discovered how to do them and make them
work.

So, time to start fixing my very first bug I thought. Again, reading up on
the certain part of the code affecting the bug took me literally days. I
think that today, still being slow, I could have done it all - reading up on
it, fixing this bug and testing it, in less than a day (or possibly even a
few hours). However, this was my first attempt so I allowed it to take the
time necessary. Boy was I proud when the fix I had worked on turn out to
work. Imagine the feeling you get after working hard on something and it
finally pays off, then imagine it happening for the first time you try this
(I had never really done bug fixes on somebody else' existing code, only
written stuff myself or letting everybody test their own piece of code for a
project, possibly helping them out writing things from scratch). It's a
great feeling. The first one's always the hardest. From then on, I got more
confident I might actually be able to do this. One small piece of success
(for a really simple bug, I admit that) was all it took - I was stuck. Who
needs to sleep when there is a bug not yet resolved?! I realized starting to
work on a fix made it hard to stop until it was successful. Just reading up
on the code for each fix wasn't a problem, I would still be able to go to
sleep (at least most of the time - unless I had gotten an idea). It was
starting to work on a fix that was more dangerous. I wanted to solve it and
I wasn't easy to convince to go to bed. Funny thing though, often the things
bugging me late at night seemed so simple in the light of day the next
morning. I could realize - oh, it's that simple, try it out and it often
worked, at least conceptually. Sleep is a wonderful thing after all. It
might only be a bit hard to realize when you're in the middle of something.

Time went fast, soon midterm evaluations came up and I had the feeling I had
hardly just begun. I don't think any of us students was really sure what was
to happen in this time or what to do. Simply wait and see can be tough. We
could all breath out realizing it wasn't that big a deal really. More or
less a pat on the back from Systers saying "well done!" so far, and a short
evaluation for Google. Nothing to sweat over. Our code was to be tested
during this time, at least what we had done so far, but things went slow and
we got delayed. I was getting a bit insecure about how to continue and what
would happen, should my mentors not be content with what I had written, but
they were really cool about it and were able to calm me down with some
positive feedback. I kept working on my bugs and starting to think of what
to document until the day had come where it was finally to start real
testing. The code was pulled over, instructions were given and after some
minor misunderstandings it all rolled on rather smoothly. Testing was
interesting but time consuming. A lot of time went to waiting for the
results of the tests, making me happy I wasn't alone to run them.
Co-operation is always good and make things run faster. Everything went
thorough more or less OK and I could keep working on fixes while making
breaks to help with other test runs. Fixes were what I enjoyed the most, the
feeling when it works is still great, even though I now had it a few times.

Finally I was to document things in the code and in the wiki. Starting by
organizing the information already there and copying stuff over from the old
wiki, I was able to figure out some of the things missing in my opinion.
Writing that while trying to understand some of the parts I still didn't
quite grip filled my days. Finishing a few pages, I tried to get more input
on what to add to the wiki. I managed to get some tips, and also got some
feedback from my mentors. Still, there is work to be done there (isn't there
always?) so I might continue adding/changing stuff when I get the time over
the coming months. Now the end of summer was approaching and as the tests
continued we noted some issues with what I had written. I had managed to
make some new "things" possible for newly created lists but these changes
made the old lists no longer work properly. Bummer. What to do, what to
do... A script setting the missing stuff added for new lists while
restructuring things a bit was the solution to my problems. This needed to
be done fast, time was running out on us and after two days of mainly coding
and some sleep, a few new fixes had been done and a pretty little script had
been written. To get it to work properly, I needed to test it directly on
the test servers, making for a lot of new pulls for Jennifer as soon as I
discovered a new error in my code. It must have been a bit tiresome with
this girl who constantly ask you to merge again, yet she was patient and
didn't even say anything about it. The patience of an angel, I wish I had
that. Well, maybe it comes with time - I will keep practicing.

So, we've now gotten to the end of it all. It does feel a bit sad, I really
did have a great time coding this summer and hopefully I can do it again. I
don't think I've ever learned this much in a summer job and everybody
working with me have been really fantastic. I do want to say a special
thanks to my mentors Jen and Robin, you've both been the best mentors I
could ever have wished for (I'm sure the rest of you mentors did a great job
too, I just know about mine) and I'm really happy I got this opportunity.
Now to the rest of you, thanks for reading and I wish you all a pleasant
rest of the summer. For me it's getting time to go to bed, again I seemed to
have gotten stuck in front of the computer. Now how did that happen -
again?!

Thanks,
Anna


On Mon, Aug 17, 2009 at 9:15 PM, Jennifer Redman <jenred at gmail.com> wrote:

> We are pretty much at the end of the our Summer of Code projects.  The
> evaluation period starts today.  We have some additional testing that needs
> to be finished up and code to push to production.  Here is an update on
> where we are now and what needs to be completed this week.
>  - Anna's wishlist branch is ready to be pushed to production.  Today I'll
> merge her branch with the stable branch and queue it up to be pushed onto
> Artemis (production).
>
> There are lots of bug fixes and some redesign of things like the required
> essay questions and how they are handled -- which are a significant
> enhancement.  Unfortunately, we are having some issues with system logging
> on Artemis and this needs to be fixed before the code is rolled out.
>  Hopefully, those issues will be resolved in the next few days.
>
> - Malveeka's membership branch is on deck for testing.
>
> The membership adaptor is really our most experimental -- pushing the
> boundaries of Mailman 2x - features.  We probably won't be able to push
> this
> to production during the next few weeks, because it is a bit of radical
> change.  Malveeka's code looks very good and it is our our hope is that it
> we can get this into production over the next few months.  This is a good
> branch for anyone who'd like to do some work with python and authentication
> to take a look at for possible contribution.
>
> - Kanika Vats ORM branch is ready for a second round of testing
>
> Kanika Vats' ORM branch passed the first round of testing with one
> exception
> -- removal of some hard-coded passwords.  She has fixed that item and
> actually worked on a second revision to make her code more
> object-orientated.  She is now testing a merge with Anna's wishlist branch
> (which is the new "stable").  It is my expectation that we will be able to
> push this to production fairly quickly once a second round of testing is
> complete.
>
> - Merges into development and stable branches
>
> I've been doing a little bit of shall we call it "advanced" release
> management in the interest of testing/moving to production quickly.  When
> everything is completed we will have a new stable branch and a new
> development branch.  My expectation is that stable will contain the
> wishlist
> and ORM branches, while development with have all three.  Annie Lee has
> volunteered to help out with release management and she has been pitching
> in
> when she can to help with testing.  Once things settle, I'll spend some
> additional time working with her on how to manage the branches and the
> releases.  If anyone else would like to be part of  the release management
> team let me know.
>
> Release management is pretty complicated especially when dealing with a
> distributed development process -- but it's something that is worth
> learning
> if you have any interest in community-developed software release cycles.
>  Every project, of course, does things a little differently.
>
> Overall, it has been a great summer, and I'd like to thank all our students
> for their patience as we went through a major learning experience as I'm
> sure they did as well.
>
> Hopefully, all of our students are willing to post summaries of their
> experience this summer to both Systers and systers-dev and continue as
> contributors -- after we've finished up the final testing.
>
> We'd like to roll everything into a Mailman - Systers' Special Edition  for
> more public use in the very near future.
>
> As always we can use some testing help so stay-tuned for updated
> instructions.
>
>
> Jen
>
>
> To unsubscribe from this conversation, send email to <
> systers-dev+endofgsoc+unsubscribe at systers.org<systers-dev%2Bendofgsoc%2Bunsubscribe at systers.org>>
> or visit <
> http://systers.org/mailman/options/systers-dev?override=31&preference=0>
> To contribute to this conversation, use your mailer's reply-all or
> reply-group command or send your message to
> systers-dev+endofgsoc at systers.org <systers-dev%2Bendofgsoc at systers.org>
> To start a new conversation, send email to <systers-dev+new at systers.org<systers-dev%2Bnew at systers.org>
> >
> To unsubscribe entirely from systers-dev, send email to <
> systers-dev-request at systers.org> with subject unsubscribe.
>


More information about the Systers-dev mailing list