{{{ #!comment Rom, please don't overwrite my formatting changes when you add new content! --Nicolas }}} = Client Build Procedure = Note: All instructions on this page assume you're building on a Windows machine with TortoiseSVN installed. Macintosh build instructions can be found [http://boinc.berkeley.edu/trac/wiki/MacBuild here]. == Fork Tree == If this is a major or minor version change to an even numbered minor revision you'll need to fork the tree. {{{ #!comment Should add instructions on how to make a branch with the command-line svn. }}} 1. Right-click on the 'boinc' directory from trunk, and then select 'TortoiseSVN | Branch/Tag' 2. Change the "To URL:" to `http://boinc.berkeley.edu/svn/branches/boinc_core_release__`, where `` is the major version number and `` is the minor version number. 3. Adjust version numbers in both the new branch and truck so that the new branch and trunk reflect the current development efforts. The branch should represent the new stable major and even minor version numbers. Trunk should represent the next major and odd minor version number. The files that need to be modified are `configure.ac` and `version.h`. Example: Branch 5.10.x and Trunk 5.11.0. Commit all changes to SVN. == Tag Tree == Increment the revision number in the files dealing with version numbers. The files that need to be modified are `configure.ac` and `version.h`. Commit all changes to SVN. 1. Right-click on the branch directory, and then select 'TortoiseSVN\Branch/Tag' 2. Change the "To URL:" to `http://boinc.berkeley.edu/svn/branches/boinc_core_release___` Where `` is the major version number, `` is the minor version number, and `` is the revision number. == Build Client == Launch the `boinc.sln` project file and build both the 'Win32' and 'x64' targets of the '!ReleaseSigned' built type. == Sanity Test New Binaries == Run the BOINC manager and attach to the BOINC alpha test project, let run for 15 minutes. Traverse all the tabs, verify the status fields as a result traverses the crunching process. == Code Sign Binaries == Rum the [attachment:SignCode.cmd SignCode.cmd] file from the `win_build` directory. This batch file should be run from within a Visual Studio command shell. !SignCode should contain a series of the following line: {{{ signtool sign /f "boinc.pfx" /p "" /d "BOINC Client Software" /du "http://boinc.berkeley.edu" /t "http://timestamp.verisign.com/scripts/timstamp.dll" /sha1 "2F0BDC8DD84A56417C68B53B29DD12155760652D" .\Build\Win32\ReleaseSigned\boinc.dll }}} A call to signtool should be executed for each binary shipped in the setup package. Use [http://msdn2.microsoft.com/en-us/library/aa906332.aspx pvk2pfx] to convert the spc/pvk certificate pair into a pfx file. Replace '' with the correct private key password used to create the private/public key pair. == Build Setup Packages == Launch `BOINC.ism` and `BOINCx64.ism` from the `win_build/installerv2` directory. With each file you'll need to change the following items before building the new setup package: {{{ 1. Switch the the 'Installation Designer' tab. 2. Expand the 'Installation Information' node. 3. Click on the 'General Information' tree item. 4. Click on the 'Product Properties' from the 'General Information' secondary tree. 5. Update version number in the 'Version' field. 6. Update the product code GUID by highlighting it all and then clicking on the 'Generate GUID' button below. 7. Expand the 'Media' tree item. 8. Click on the 'Releases' tree item. 9. Click on the tree item below the 'Releases' secondary tree. 10. Update the file name with the correct version number. NOTE: If this is the first time you have built from the build tree you'll need to update the path variables in the 'Media' tree. Click on the 'Path Variables' tree item and update the `PATH_TO_BOINC_FILES`, `PATH_TO_LOCALE_FILES`, and `PATH_TO_RELEASE_FILES` environment variables. 11. Build Setup packages by selecting 'Build/Batch Build' from the menu. }}} {{{ #!comment I'm leaving this list on a source block because I couldn't figure out how to do the NOTE, and keep the last item as '11'. }}} == Test Setup Package == Copy the setup package from 'win_build/Installerv2/BOINC/Web32/Web/DiskImages/Disk1' to a temporary location and execute the installer. Verify single user installation. == Deploy Setup Packages == Use scp to upload the completed setup packages to `boincadm@isaac.ssl.berkeley.edu:boinc/doc/dl/`. == Deploy Symbol Files == Copy the Win32 PDB files to `c:\Src\symbols` and execute the following command: {{{ symstore.exe add /l /f c:\src\symbols\*.pdb /s c:\src\symstore /compress /t "BOINC x86" /v "5.10.17" /o /c "Application Release" }}} Copy the x64 PDB files to `c:\Src\symbols` and execute the following command: {{{ symstore.exe add /l /f c:\src\symbols\*.pdb /s c:\src\symstore /compress /t "BOINC x64" /v "5.10.17" /o /c "Application Release" }}} Upload the new symbol files to isaac. {{{ pscp.exe -r -C c:\src\symstore boincadm@isaac.ssl.berkeley.edu:boinc/doc/ }}} == Update Versions.inc in doc directory == Update the `versions.inc` file in the doc directory to point to the new version. == Update Tests.inc in boinc_alpha directory == SSH into isaac and cd into 'boinc_alpha'. Update the `tests.inc` file to include the new version for testing. == Announce new version on mailing list == Send out the announcement email to [mlist:boinc_alpha boinc_alpha@ssl.berkeley.edu].