= Getting source code = == SVN modules == The BOINC source code consists of two directories: * '''boinc''' contains the source code for all parts of BOINC itself (client, server, web, database). * '''boinc_samples''' contains several [ExampleApps example applications] together with Windows and Mac project files and a Linux makefile for building the applications. It also includes Windows versions of some libraries (GLUT, jpeglib, etc.) that many applications will need, but which are not part of BOINC. Check out this module in the same parent directory as '''boinc'''. The modules are accessible as follows: {{{ svn co http://boinc.berkeley.edu/svn/trunk/boinc svn co http://boinc.berkeley.edu/svn/trunk/boinc_samples }}} On Windows, get a SVN client like [http://tortoisesvn.net/ TortoiseSVN]. Right-click on the parent directory, select 'SVN checkout', and fill in the dialog with the above URL. You can also download [http://subversion.tigris.org/project_packages.html#windows svn command-line program for Windows]. == Browsing source code via the web == You can browse the boinc or boinc_samples code via [/trac/browser a web-based interface]. This is useful for getting individual files, or seeing the revision history. == Source code road map == The BOINC source tree includes the following directories: '''api''':: The BOINC API (for applications) '''apps''':: Some test applications. '''client''':: The BOINC core client. '''clientgui''':: The BOINC Manager. '''db''':: The database schema and C++ interface layer. '''doc''':: BOINC documentation (PHP web pages). '''html/ops''':: PHP files for the operational web interface. '''html/user''':: PHP files for the participant web interface. '''html/inc''':: PHP include files. '''html/languages''':: Translation files. '''lib''':: Code that is shared by more than one component (core client, scheduling server, etc.). '''py''':: Python modules used by tools. '''sched''':: The scheduling server, feeder, and file upload handler. '''test''':: Test scripts. '''tools''':: Operational utility programs. '''zip''':: Compression functions; not used by BOINC, but may be useful for applications. == SVN tags == ''' We maintain tags for the client software (core client and manager) in the {{{boinc}}} module. For other parts of the software (e.g., server and API), use the current version. ''' {{{ #!comment stable:: The latest publicly-released version of the client software, generally well-tested. '''DO NOT USE THE STABLE TAG FOR THE __SERVER__ AND __API__ SOFTWARE. IF YOU DO, IT MAY BE FAR OUT OF DATE. USE THE CURRENT (HEAD) VERSION INSTEAD.''' staging:: The version currently being alpha-tested (so at least it compiles). }}} boinc_core_release_x_y_z:: The source code for version x.y.z. '''DO NOT USE A TAG FOR THE __SERVER__ AND __API__ SOFTWARE. IF YOU DO, IT MAY BE FAR OUT OF DATE. USE THE CURRENT (HEAD) VERSION INSTEAD.''' To check out a branch (for example, {{{boinc_core_release_5_10}}}) use the following: {{{ svn co http://boinc.berkeley.edu/svn/branches/boinc_core_release_5_10 }}}