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 |
|
CW |
Goals |
accomplished |
1 |
|
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)
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
Results
Next Steps
Problems