Changes between Version 4 and Version 5 of CreateProjectCookbook


Ignore:
Timestamp:
May 9, 2007, 2:19:18 PM (17 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • CreateProjectCookbook

    v4 v5  
    11= Project creation cookbook =
    22
    3 == Make skeletal project ==
     3== Make a project ==
    44
    5     * Install and configure all [SoftwarePrereqsUnix prerequisite software] (follow the directions carefully). Make sure MySQL is configured and running.
    6     * [SourceCode Get the BOINC software], say into HOME/boinc.
    7     * [BuildSystem Compile the BOINC server software]
    8     * Run HOME/boinc/tools/[MakeProject make_project]
    9     * Append the contents of projects/PROJECT/PROJECT.httpd.conf to httpd.conf and restart Apache.
     5    * [ServerIntro Create a BOINC server] (preferably using the Server Virtual Machine).
     6    * Run [MakeProject make_project]:
     7{{{
     8cd boinc/tools/
     9make_project --test_app myproject
     10}}}
     11    * Append the contents of ~projects/myproject/myproject.httpd.conf to httpd.conf and restart Apache.
    1012    * Use 'crontab' to insert a cron job to run the project's periodic tasks, e.g.
    11       0,5,10,15,20,25,30,35,40,45,50,55 * * * * HOME/projects/PROJECT/bin/start --cron
    12       (if cron cannot run 'start', try using a helper script to set PATH and PYTHONPATH)
    13     * Copy project.xml from HOME/boinc/tools to HOME/projects/PROJECT, edit it to reflect your applications and platforms, and run [XaddTool bin/xadd].
     13      0,5,10,15,20,25,30,35,40,45,50,55 * * * * ~projects/myproject/bin/start --cron
    1414    * Edit html/project/project.inc, changing the master URL and copyright holder.
    15     * Protect the html/ops directory (e.g. by putting .htaccess and .htpasswd files there).
     15    * Protect the html/ops directory (e.g. use htpasswd to create .htaccess and .htpasswd files).
    1616
    17 Visible result: the project web site is up. The database 'platforms' table has several rows.
     17Visible result: the project web site is up.
    1818
    1919Troubleshooting: check the Apache access and error logs.
    2020
    21 == Create an application version ==
     21== Install and enable test application ==
    2222
    23     * Create a BOINC application executable (if you're in a hurry, use the test application).
     23    * Initialize database and add test application version
     24{{{
     25cd projects/myproject
     26bin/xadd
     27bin/update_versions
     28}}}
     29    * Start the project
     30{{{
     31bin/start
     32}}}
     33    * Create a client directory and copy the core client there, and run it.
     34{{{
     35mkdir boinc_test
     36cd boinc_test
     37cp ../boinc/client/boinc_client .
     38cp ../boinc/lib/boinc_cmd .
     39boinc_client
     40}}}
     41    * Using the web interface, create an account on the project. Get the authenticator via email.
     42    * Attach to the account:
     43{{{
     44cd boinc_test
     45boinc_cmd --project_attach HOSTNAME/myproject/ authenticator
     46}}}
     47Visible result: the client does a stream of work; the web site shows credit accumulating.
     48
     49Troubleshooting: check the log files of all daemon processes.
     50
     51== Add your own application version ==
     52
     53    * Edit config.xml and remove items related to the test application (uppercase).
     54    * Add your application to project.xml and run bin/xadd again.
     55    * Write a BOINC application and compile it for your platform of choice.
    2456    * Copy the executable to HOME/projects/PROJECTNAME/apps/APPNAME
    25     * cd to HOME/projects/PROJECTNAME
    26     * run bin//update_versions, type y or return.
    27     * run ./stop && ./start
    28 
    29 Visible result: the web site's Applications page has an entry.
     57    * Install the version and restart the project
     58{{{
     59cd projects/myproject
     60bin/update_versions
     61bin/stop
     62bin/start
     63}}}
    3064
    3165== Create a work unit ==
    3266
    33     * Using a text editor, create a work unit template file and a result template file.
    34     * Run create_work
    35     * Edit config.xml to add <daemon> records for make_work, feeder, transitioner, file_deleter, the trivial validator, and the trivial assimilator. For example
     67 * Using a text editor, create a work unit template file and a result template file.
     68 * Run create_work
     69 * Edit config.xml to add <daemon> records for make_work, the trivial validator, and the trivial assimilator. For example
    3670{{{
    3771<daemon>
     
    4175</daemon>
    4276}}}
    43 Visible result: after a project restart, 'status' shows the above daemon processes running.
     77 * Restart the project
     78
     79Visible result: the client downloads and runs your application.
    4480
    4581Troubleshooting: check the log files of all daemon processes.
    46 == Test the system ==
    4782
    48     * Create a client directory (on the same computer or different computer), say HOME/boinc_client. Copy the core client there.
    49     * Using the web interface, create an account on the project.
    50     * Run the core client; enter the project URL and the account key.
    51 
    52 Visible result: the client does a stream of work; the web site shows credit accumulating.
    53 
    54 Troubleshooting: check the log files of all daemon processes.
    5583== Develop back end components ==
    5684
    5785    * Write a [WorkGeneration work generator].
    58     * Write a [ValidationIntro validator].
     86    * Write a [ValidationIntro validator] if needed.
    5987    * Write an [AssimilateIntro assimilator].
    60     * Edit the [ProjectConfigFile configuration file] to use these programs instead of the place-holder programs.
    61     * Make sure everything works correctly.
     88    * Edit the [ProjectConfigFile configuration file] to add these daemons.
    6289
    63 == Extras ==
     90Visible result: client executes a stream of workunits; a stream of completed results is handled by the assimilator.
    6491
    65     * Add message board categories: see html/ops/create_forums.php
     92Troubleshooting: check daemon log files
     93
     94== Before public launch ==
     95
     96 * Create a new project; this time, immediately move the code-signing private key to an isolated code-signing machine.  Generate all signatures on that computer.
     97 * Add message board categories: see html/ops/create_forums.php
     98