= The BOINC development process = = BOINC software development overview = BOINC is free software, distributed under the [http://www.gnu.org/copyleft/lesser.html 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. * [DevProcess The BOINC development process] * [DevProjects Help wanted - programming] * [DevQualityAssurance Quality Assurance Workflow] (under discussion) * [TranslateIntro Help wanted - translation] * [//email_lists.php boinc_dev], an email list for BOINC developers * [CodingStyle Coding style] * [DebugClientWin Debugging the client on Windows] 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. [[Image(//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 [//email_lists.php 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_lists.php email list]. * Decide when to make public releases, based on web-based reports and on contents of BOINC/Trac.