Changes between Initial Version and Version 1 of SourceCodeGit


Ignore:
Timestamp:
Jul 17, 2012, 10:11:58 AM (12 years ago)
Author:
romw
Comment:

Initial Draft

Legend:

Unmodified
Added
Removed
Modified
  • SourceCodeGit

    v1 v1  
     1= Getting source code =
     2
     3The BOINC source code is stored in a Git repository.
     4Various versions of the code are available at any given point:
     5
     6'''Development'''
     7
     8The SVN trunk contains the latest source code for all components of BOINC.
     9It is always under development, and has not necessarily been thoroughly tested.
     10Use it if you need a recently-added feature.
     11
     12'''Client software'''
     13
     14The client software (client and manager) is maintained as follows:
     15
     16 * The code for each release is 'tagged'.
     17  For example, the code for version 6.3.14 is tagged with '''boinc_core_release_6_3_14'''.
     18 * A 'branch' is created for each released minor version.
     19  For example, the branch '''boinc_core_release_6_2''' is the code for the latest release of version 6.2.
     20
     21'''Server software'''
     22
     23For all software other than the client (i.e., server, web, and API)
     24a "stable" version is kept in a branch, '''server_stable'''.
     25Don't use the server software in a client tag or branch; it probably isn't stable.
     26
     27Notes:
     28 * There is no formal testing process for server software.
     29   Every so often, when no bugs have been reported recently,
     30   we copy trunk to server_stable.
     31 * Because of limited resources, bug fixes to server software are normally
     32   NOT back-ported from trunk to server_stable.
     33
     34For these reasons: '''trunk is typically a better choice
     35than server_stable for server software'''.
     36
     37== Using Git ==
     38
     39On Unix, use the the following commands to clone the repository:
     40{{{
     41git clone git://isaac.ssl.berkeley.edu/boinc.git
     42}}}
     43
     44On Windows, get a Git client like [SourceCodeGit/Windows Git on Windows].
     45Right-click on the parent directory, select 'Git Clone...',
     46and fill in the dialog with one of the above URLs. There is no need to add 'git clone' in front of it.
     47
     48All the additional dependency files are now stored in [source:build-depends-vs2005 build-depends-vs2005], get them using {{{git clone git://isaac.ssl.berkeley.edu/build-depends-vs2005.git}}}.
     49The dependencies should be stored in the same parent directory as the BOINC source code, for example:
     50{{{
     51+-+ source
     52    |
     53    + boinc
     54    | |
     55    | + api
     56    | + client
     57    | + clientgui
     58    | + etc...
     59    |
     60    + build_depends_vs2005
     61    | |
     62    | + curl
     63    | + openssl
     64    | + wxwidgets
     65    | + zlib
     66}}}
     67
     68When you have older source code, I found that deleting all previous source code and downloading it fresh, will fix the breaks in building BOINC. Make sure to backup your own code prior to deleting the source code.
     69
     70== Browsing source code via the web ==
     71
     72You can browse the boinc code via [/browser a web-based interface].
     73This is useful for getting individual files, or seeing the revision history.
     74
     75== Source code road map ==
     76
     77The BOINC source tree includes the following directories:
     78
     79 '''api'''::
     80        The BOINC API (for applications).
     81 '''apps'''::
     82        Some test applications.
     83 '''client'''::
     84        The BOINC core client.
     85 '''clientgui'''::
     86        The BOINC Manager.
     87 '''clientscr'''::
     88        The BOINC screensaver for Windows.
     89 '''clienttray'''::
     90        The BOINC Tray component (checks for user activity on Windows).
     91 '''db'''::
     92        The database schema and C++ interface layer.
     93 '''html/ops'''::
     94        PHP files for the operational web interface.
     95 '''html/user'''::
     96        PHP files for the participant web interface.
     97 '''html/inc'''::
     98        PHP include files.
     99 '''html/languages'''::
     100        Translation files for project websites.
     101 '''lib'''::
     102        Code that is shared by more than one component (core client, scheduling server, etc.).
     103 '''locale'''::
     104        Translation files for BOINC Manager.
     105 '''py'''::
     106        Python modules used by tools.
     107 '''sched'''::
     108        The scheduling server, feeder, and file upload handler.
     109 '''samples'''::
     110        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.
     111 '''test'''::
     112        Test scripts.
     113 '''tools'''::
     114        Operational utility programs.
     115 '''win_build'''::
     116        Project files for compiling the client under Windows, and the Windows installer.
     117 '''zip'''::
     118        Compression functions; not used by BOINC, but may be useful for applications.