Welcome Package ("Beseitigung von Stolpersteinen im Saros-Entwicklungsprozess")

worked on by: Holger Hans Peter Freyther

Outline

The development of Saros is currently mainly driven by both bachelor and master theses, this creates an extremely high turnover rate (think of something like 200%). One of the problems is that knowledge does not get passed fast enough from one generation to the other. The lack of knowledge leads to introducing changes that violates the spirit of the architecture, dead code remaining in the tree, not feeling very secure about making changes. This theses aims to improve the situation by making it more easy to get started, this will include improvements to the review process, architectural documentation, describing patterns and anti-patterns in the Saros code.

Thesis Requirements

  • Introduce usage of Git and Gerrit replacing svn and reviewboard, write Saros specific documentation about the new system.
  • Describe the Architecture both statically (class level) and dynamically (flow of packets). The later could be done using the JTourBus
  • Introduce the role of a "Gardener" to the project. The role is to enforce the Saros build remains clean. This should be done by tracking down the change that caused it and make the author fix it.
  • Repair architectural violations.

Big Tasks

  • Roles and Responsibilities
  • Move to Git, Documentation and Bribery
  • Introduce second PicoContainer and SessionManager work
  • Fix IActivityListener and Provider madness
  • STF TestCases should pass... zeroo findbugs warnings (no broken windows)
  • JTourBus (generate docbook) and interactive...
  • Figure out locking strategy... and enforce SWTSync/SWTAsync/Sync/Async
  • Describe Networking stack and paths (as JTourBus)

Milestones and Planning

A milestone is a scheduled event signifying the completion of a major deliverable or a set of related deliverables. A milestone has zero duration and no effort -- there is no work associated with a milestone. It is a flag in the workplan to signify some other work has completed. Usually a milestone is used as a project checkpoint to validate how the project is progressing and revalidate work. (Source: http://www.mariosalexandrou.com/definition/milestone.asp)

Milestone no. Past days CW Goals target accomplished wrench
1 DONE 1 CWXX Goals accomplished

...

Weekly Status

Week (CW 5)

  • Read Saros sourcecode, found a lot of unused functionality, tried to work with the existing review system. Identified topics for the thesis.

Week (CW 6)

  • Test setup of Gerrit to learn and explore the workflow. Waiting for proper access to the Saros infrastructure to do the setup there.
  • Evaluated mallard/docbook/eclipse documentation for the basis of the Getting Started manual. Selected docbook as it allows to generate HTML/XHTML/PDF/EPUB, with Eclipse one would need to install the documentation to understand how to install Saros (chicken/egg).
  • Started with the documentation, took screenshots of the various steps, looked into the SWTBot/JRuby console to automate it but the experimental JRuby/Script support bitrotted and didn't work (JRuby couldn't find a class that does exist)
  • Played with Inkscape to create a reasonable good looking workflow picture, scaling for the PDF makes the fonts look bad.

Week (CW 7)

  • Going to do: Documentation, Eclipse/Git on Windows, Strategy to introduce git...

Week (CW 8)

  • MIA

Week (CW 9)

  • Managed to get the key to the room.
  • First reviews through the Gerrit installation
  • Looked into what needs to be done to migrate Gerrit to the FU
  • Looked into test failures (Race conditions, random exceptions)

Weeek (CW 10)

  • Preparing documents to register the thesis
  • Wrote about lack of responsibilities and came up with a proposal
  • Write docs about Gerrit, try to catch up with EGit version 1.3

Activities

  • been there, done that
  • ...

Results

  • achieved XYZ

Next Steps

  • planning ...

Problems

  • ...

This topic: SE > WebHome > ThesesHome > ThesisWillkommensPaket
Topic revision: 17 Apr 2012, HolgerFreyther