= Getting source code = The source code is accessible as follows: {{{ svn co http://boinc.berkeley.edu/svn/trunk/boinc }}} 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]. Note: some HTTP proxies may cause problems with the SVN protocol. If you have trouble checking out the code, try using https instead of http. == SVN tags and branches == We maintain tags and branches for the client software (core client and manager) in the {{{boinc}}} module. Tags contain the source code for a certain version of the client, just as it was used for an official release. Branches contain the latest source code (maybe being developed) for a major version (like "5.8" or "6.1"). For building the client, you should probably use the tag for the latest version. If you use trunk, you will get code that hasn't been tested enough (or is known ''not'' to work). For other parts of the software (e.g., server and API), use the current version (trunk). If you use a tag for the server, you wouldn't get "server version X", since there aren't versioned releases for the server. Instead, you would get "whatever server code was on the repository when client X was released", which could be a very old version. 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 }}} Checking out tags is quite similar: {{{ svn co http://boinc.berkeley.edu/svn/tags/boinc_core_release_5_10_39 }}} == Browsing source code via the web == You can browse the boinc 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. '''clientscr''':: The BOINC screensaver for Windows. '''clienttray''':: The BOINC Tray component (checks for user activity on Windows). '''db''':: The database schema and C++ interface layer. '''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 for project websites. '''lib''':: Code that is shared by more than one component (core client, scheduling server, etc.). '''locale''':: Translation files for BOINC Manager. '''py''':: Python modules used by tools. '''sched''':: The scheduling server, feeder, and file upload handler. '''samples''':: 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. '''test''':: Test scripts. '''tools''':: Operational utility programs. '''win_build''':: Project files for compiling the client under Windows, and the Windows installer. '''zip''':: Compression functions; not used by BOINC, but may be useful for applications.