wiki:DevProcess

Version 15 (modified by davea, 9 years ago) (diff)

--

The BOINC development process

BOINC software development overview

BOINC is free software, distributed under the Lesser General Public License (LGPL), version 3 or later. The University of California holds the copyright on all BOINC source code. By submitting contributions to the BOINC code, you irrevocably assign all right, title, and interest, including copyright and all copyright rights, in such contributions to The Regents of the University of California, who may then use the code for any purpose that it desires.

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 Charlie Fenton
Client David Anderson John McLeod, Carl Christensen
Mac OS X Charlie Fenton
Testing and release management Rom Walton
Server David Anderson Kevin Reed
Translations of GUI and web text Rom Walton
Unix build system Reinhard Prix Eric Korpela
Web features David Anderson Rytis Slatkevicius, Janus Kristensen
Windows installer and screensaver Rom Walton

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.

/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 bugs are found, 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.