wiki:DevProcess

Version 5 (modified by davea, 10 years ago) (diff)

--

The BOINC development process

BOINC development is done by BOINC staff, by the staff of various BOINC-based projects, and by volunteer programmers. Development is divided into several areas. Each area is managed by an 'owner'.

Area Owner Key contributors
API David Anderson Bruce Allen, Bernd Machenschalk
BOINC Manager Rom Walton Frank Weiler, Mifistor, David Barnard
Core client David Anderson John McLeod, Carl Christensen
Mac OS X Charlie Fenton
Testing and release management Rom Walton Jens Seidler
Server David Anderson Kevin Reed, Bruce Allen, M.F. Somers
Translations of GUI and web text Jens Seidler
Unix build system Reinhard Prix Eric Korpela
Web features David Anderson Rytis Slatkevicius, Janus Kristensen
Windows installer and screensaver Rom Walton David Barnard

The BOINC development, testing and release process is shown below. Ovals represent people, rectangles represent information channels. A, B, C, D and E represent the different BOINC development areas. 'Owner A' represents the person who owns area A, as shown above.

http://boinc.berkeley.edu/dev_flow.png

Participants

  • Report bugs (or learn of workarounds) on the BOINC message boards.
  • Learn of new releases on the BOINC web site.
  • Note: we need ways of 'pushing' info to participants, e.g. via the Manager.

Area owners

  • Reads the relevant BOINC message board on a regular basis. Decides if new bugs are present. Adds entries to the BOINC/Trac bug database.
  • Monitors the relevant categories of the BOINC/Trac bug database. Manages entries (delete, merge, prioritize, assign).

Developers

  • Are assigned tasks via BOINC/Trac.

Alpha testers

  • The boinc_alpha email list is used to give instructions, and for discussion of tests and procedures.
  • If find bugs, log them in BOINC/Trac.
  • Use web-based interface for submitting test summaries.

Release manager

  • Decide when to create test releases; communicate with alpha testers via email list.
  • Decide when to make public releases, based on web-based reports and on contents of BOINC/Trac.