https://public.kitware.com/Wiki/api.php?action=feedcontributions&user=Zack&feedformat=atomKitwarePublic - User contributions [en]2024-03-28T21:50:32ZUser contributionsMediaWiki 1.38.6https://public.kitware.com/Wiki/index.php?title=CDash:Administration&diff=65227CDash:Administration2023-11-27T14:07:12Z<p>Zack: /* Creating a project */</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
[[Image:CDashAdmin.jpg|thumb|CDash administrator page]]<br />
[[Image:CDashAdminMain.jpg|thumb|CDash administration from the main dashboard]]<br />
<br />
= Creating a project =<br />
Go to the administrative section of MyCDash (login as administrator) and select [Create new project].<br />
Here’s a description of the fields.<br />
<br />
* '''Name:''' Name of the project. CDash allows spaces for the name of the project but it is not recommended. If the project’s name contains space make sure you replace the space by the corresponding HTML entity, i.e. %20.<br />
* '''Description:''' description of the project.<br />
* '''Home URL:''' Home url of the project (with or without http://) . This URL is referred in the top menu of the dashboard for this project.<br />
* '''CVS/SVN Viewer URL:''' URL of the CVS/SVN viewer<br />
** ViewCVS: public.kitware.com/cgi-bin/viewcvs.cgi/?cvsroot=CMake<br />
** WebSVN: https://www.kitware.com/websvn/listing.php?repname=MyRepository '''(listing.php is important)'''<br />
* '''CVS/SVN View Type:''' Current CDash supports ViewCVS, Trac, Fisheye, ViewVC, WebSVN and CVSTrac as CVS/SVN viewers. Select the appropriate viewer depending on your current configuration.<br />
* '''CVS/SVN repository:''' In order to get the daily updates, CDash should be able to access the current repository. It is recommended to use the anonymous access, for instance :pserver:anoncvs@myproject.org:/cvsroot/MyProject. If the project needs ssh access, make sure that the user running the webserver running CDash as the proper ssh keys. CDash doesn’t store any passwords.<br />
* '''Bug tracker URL:''' URL of the bug tracker for this project<br />
* '''Bug tracker File URL:''' URL to the file where to look for a bug given its id. By default CDash appends the bug number to this url. The Bug number should be part of the SVN/CVS commit:<br />
BUG: 123456 This is a bug<br />
* '''Documentation URL:''' URL of the documentation for this project<br />
* '''Logo:''' small logo for this project. It is recommended to upload a transparent gif to blend with CDash’s banner. The height of the image shouldn’t be more than 100 pixels an optimized look. Project logos are stored in the database directly.<br />
* '''Public dashboard:''' if the box is checked that means that the dashboard is public and anybody can access the dashboard, claim sites and look at the current status. By default dashboards are private.<br />
* '''Coverage threshold:''' CDash marks the coverage has passed (green) if the global coverage for a build or specific files is above this threshold. It is recommended to set the coverage threshold to a high value and decrease it when the coverage is getting higher.<br />
* '''Nightly start time:''' CDash displays the current dashboard using a 24hours window. The nightly start time defines the beginning of this window. Note that the start time is expressed in the form HH:MM:SS TZ, i.e. 21:00:00 America/New_York.<br />
* '''Google Analytics Tracker:''' CDash supports visitor tracking through Google analytics. See “Adding Google Analytics” for more information.<br />
* '''Enable test timing:''' Enable/Disable test timing for this project<br />
For more information about test timing see the [[CDash:Administration#Test_Timing | Test Timing]] section.<br />
* '''Test time standard deviation:''' Set a multiplier for the standard deviation for a test time. If the time for a test is higher than mean+multiplier*standarddeviation, the test time status is marked as failed. Default is 4 if not specified. Note that changing this value doesn’t affect previous builds but only builds submitted after the modification.<br />
For more information about test timing see the [[CDash:Administration#Test_Timing | Test Timing]] section.<br />
* '''Test time standard deviation threshold:''' Set a minimum standard deviation for a test time. If the current standard deviation for a test is lower than this threshold then the threshold is used instead. This is particularly important, for tests that have a very low standard deviation but still some variability. Default threshold is set to 2 if not specified. Note that changing this value doesn’t affect previous builds but only builds submitted after the modification.<br />
For more information about test timing see the [[CDash:Administration#Test_Timing | Test Timing]] section.<br />
* '''Email submission failures:''' Enable/Disable sending email when a build fails (configure, error, warnings, update, test failings) for this project. This is a general feature.<br />
* '''Email redundant failures:''' By default CDash does not send email for the same failures. For instance if a build continues to fails overtime, only one email will be sent. If the Email redundant failures is checked then CDash will send an email every time a build has a failure.<br />
* '''Email administrator:''' Enable/Disable sending email when submission to CDash is invalid. This can help tracking down misconfigured clients. This is particularly useful when CTest is not used to submit to CDash..<br />
* '''Email low coverage:''' Enable/Disable sending email when the coverage for files is lower than the default threshold value specified above.<br />
* '''Email test timing change:''' Enable/Disable sending email when a test timing has changed. This feature is currently not implemented.<br />
* '''Download CTest config:''' Automatically generated CTest configuration file. downloading this file and putting it at the root of your project, allows to quickly get started with CTest/CDash and submitting to the dashboard.<br />
* '''Show site IP addresses:''' Enable/Disable the display of IP addresses of the sites submitting to this project.<br />
* '''Display Labels:''' As of CDash 1.4 and using a recent version of CTest, labels can attached to build files and displayed and retrieved on CDash.<br />
* '''AutoRemove Timeframe (days):''' Set the number of days to keep for this project. If the timeframe is less than 2 days, CDash will not remove any builds.<br />
* '''AutoRemove Max Builds:''' Set the maximum number of builds to remove when performing the auto removal of builds.<br />
<br />
= Editing a project =<br />
To edit the current configuration for a project. <br />
#Log in as project administrator<br />
#Select [edit project] in the administration section. <br />
#If you have more than one project hosted on CDash, select the project you want to modify.<br />
<br />
== Updating project’s logo ==<br />
In order to update the current project’s logo.<br />
#Log in as project administrator<br />
#Select a new image file by clicking on the "Browse" button<br />
#Click “Update Project”.<br />
<br />
See the section [[CDash:Administration#Creating_a_project | Creating a project]] for more information.<br />
<br />
= Test Timing =<br />
See [[CDash:Design#Test_Timing | Test timing]] for more information.<br />
<br />
== Recompute test timing ==<br />
If you just upgraded CDash, you might notice that the current submissions are showing a high number of failing test due to time defects. This is due to the fact that CDash doesn’t have enough sample points to compute the mean and standard deviation for each test, and particularly the standard deviation might be very small (actually zero for the first samples). <br />
<br />
It is recommended to turn the “enable test timing” to off (see [[CDash:Administration#Edit_a_project | edit project section]]) for about a week (or until you get enough build submissions and CDash has an approximated mean and standard deviation for each test time.<br />
<br />
The other option is to force CDash to compute the mean and standard deviation for the test for the past X days. Be warned that this process might take a long time depending on the number of test and projects involved. In order to recomputed the test timing, go to the [backward compatibility tools] in the administration section and specify the number of days (default is 4) and click on “Compute test timing”. When the process is done the new mean, standard deviation and status should be updated for the tests submitted during this period.<br />
<br />
= Adding Google Analytics =<br />
In order to get a Google analytics account:<br />
# First go to http://www.google.com/analytics/indexu.html<br />
# If you don't have an account, set one up.<br />
# Then, add a website profile.<br />
# On CDash, login and edit your project<br />
# Add the code you get from google into the Google Analytics Tracker (i.e. UA-43XXXX-X) for your project.<br />
<br />
= Project Roles =<br />
CDash support three levels of roles for users: '''Normal user''', '''Site maintainer''' and '''Project administrator'''. <br />
* Normal users are regular users with read and/or write access to the project’s code repository. <br />
* Site maintainers are responsible for periodic submissions to CDash. <br />
* Project administrators have reserved privileges to administer the project in CDash. <br />
<br />
The first two levels can be defined by the users themselves. Project administrators access has to be granted by another administrator of the project or CDash’s administrator.<br />
<br />
[[Image:CDashRoles.jpg|thumb|CDash role management page]]<br />
<br />
In order to change a current role for a user:<br />
# Select [Manage project roles] in the administration section. <br />
# Then, if you have more than one project, select the appropriate project.<br />
# In the “current users” section change the role for a user<br />
# Click “update” to update the current role<br />
# In order to remove completely a user from a project, click “remove”<br />
<br />
If the cvs login is not correct it can also be changed from this page. Note that users can also change their CVS login manually from their profile.<br />
<br />
In order to add a current role for a user:<br />
# Select [Manage project roles] in the administration section. <br />
# Then, if you have more than one project, select the appropriate project.<br />
# In the “Add new user” section type the first letters of the first name, last name or email address of the user you want to add. Or type ‘%’ in order to show all the users registered in CDash.<br />
# Select the appropriate user’s role<br />
# Optionally put the user’s cvs login<br />
# Click on “add user”<br />
<br />
== Importing from CVS users file ==<br />
In some cases, it is useful to batch import a list of current users for a project. In order to import:<br />
<br />
* Click on [manage project role] in the administration section<br />
* Select the appropriate project (if more than one)<br />
* Click “Browse” to select a CVS users file. <br />
The current file should be formatted as follow: <br />
cvsuser:email:FirstName LastName<br />
* Click “import”<br />
* Make sure the reported names and email address are correct and deselect the ones that shouldn’t imported and click on “Register and send email”. This will automatically register the users, set a random password and send a registration request to the appropriate email addresses.<br />
<br />
= Build Groups =<br />
(also called tracks in Dart2)<br />
<br />
Builds can be organized by groups. <br />
In CDash, three groups are defined automatically and cannot be removed: Nightly, Continuous and Experimental. These groups are the same imposed by CTest.<br />
<br />
Each group has a description associated with it that is displayed when clicking on the name of the group on the main dashboard. In order to change the description see the section [[CDash:Administration#Update_group_description | update group description]] below.<br />
<br />
[[Image:CDashGroups.jpg|thumb|CDash group management page]]<br />
<br />
== Adding a new group ==<br />
<br />
# Click on [manage project groups] in the administration section<br />
# Select the appropriate project (if more than one)<br />
# Under the “create new group” section enter the name of the new group<br />
# Click on “create group”<br />
<br />
Newly create group appears at the bottom of the current dashboard. In order to reorder the groups, see the next section.<br />
<br />
== Turning on Summary email (CDash 1.2) ==<br />
<br />
In CDash 1.2, the ability to send summary email for specific groups has been added. One email is sent when the first build of a group fails, and a link to the current dashboard is sent.<br />
<br />
== Ordering groups ==<br />
<br />
# Click on [manage project groups] in the administration section<br />
# Select the appropriate project (if more than one)<br />
# Under the “Current Groups” section, click on the [up] or [down] links. <br />
<br />
Note: the order displayed in this page is exactly the same at the order on the dashboard.<br />
<br />
== Update group description ==<br />
<br />
# Click on [manage project groups] in the administration section<br />
# Select the appropriate project (if more than one)<br />
# Under the “Current Groups” section, update or add a description in the field next to the [up][down] links.<br />
# Click “Update Description” in order to commit your changes.<br />
<br />
== Move builds to another group ==<br />
<br />
By default builds are going to the group associated with the build type defined by CTest, i.e. a nightly build will go in the nightly section. <br />
There are two ways to move a group into the proper group and define a rule, such that if a same build is submitted it goes to the appropriate group: Global Move and Single Move.<br />
<br />
CDash matches the builds by Name, Site, and Build Type. For instance if the build named “Linux-gcc-4.3” from the site “midworld.kitware” is a nightly build it will be move to the nightly section unless a rule on “Linux-gcc-4.3”-“midworld.kitware”-Nightly is defined.<br />
<br />
=== Global Move ===<br />
<br />
Global move allows to move builds as a batch.<br />
<br />
# Click on [manage project groups] in the administration section<br />
# Select the appropriate project (if more than one)<br />
# Under “Global Move” you will see a list of all the builds submitted in the past 7 days. (without duplicates). Note that expected builds are also shown, even if they have not been submitting in the past 7 days.<br />
# You can narrow your search by selecting a specific group (default is All).<br />
# Select the builds to move. Hold “shift” in order to select multiple builds.<br />
# Select the target group. This is mandatory.<br />
# Optionally check the “expected” box if you expect the builds to be submitted on a daily basis. For more information on expected builds see the “Expected builds” section below.<br />
# Click “Selected Builds to Group” to move the groups.<br />
<br />
=== Single Move ===<br />
<br />
From the main dashboard page, if logged as administrator of the project, a small folder icon will be present next to each build. Clicking on the icon will show some option for this build. In particular users are able to mark a build as expected (see section below) and move a build to a particular group or delete a bogus build.<br />
<br />
== Expected builds ==<br />
<br />
Project administrators can mark certain builds as expected. That means builds are expected to submit daily.<br />
This allows to quickly check if a build has not been submitting on today’s dashboard or even by clicking on the info icon on the main dashboard to quickly assess for how long the build as been missing.<br />
<br />
[[Image:CDashExpectedAjax.jpg]]<br />
<br />
''Note: CDash is going to send email when a build is missing in the near future. This feature is not currently implemented (in 1.0)''<br />
<br />
= Logging management =<br />
<br />
CDash supports internal logging mechanism using the error_log() function from PHP. Most of the critical SQL queries (almost all the queries) are logged if an error occurs. By default CDash log file is located in the $CDASH_BACKUP_DIRECTORY as cdash.log. Note that CDash doesn’t perform any log rotation. The location of the log file can be modified by changing the $CDASH_LOG_FILE variable in the config.php configuration file.<br />
<br />
The log file can be access directly from CDash if the log file is in the standard location.<br />
<br />
# Log into CDash as administrator<br />
# Click on [CDash logs] in the administration section<br />
# Click on cdash.log to see the log file.<br />
<br />
For developers, these two functions should be used to add logging mechanism into CDash.<br />
<br />
function add_log($text,$function)<br />
function add_last_sql_error($functionname)<br />
<br />
= Backup mechanism =<br />
<br />
CDash backups all the XML submissions for a certain period of time. The default timeframe is 48hours. The timeframe can be changed in the config.php file using the <br />
$CDASH_BACKUP_TIMEFRAME variable.<br />
<br />
''Note 1: If projects are private it is recommended to set the backup directory outside of the apache root directory to make sure that nobody can access the XML files.''<br />
<br />
''Note 2: The backup directory is emptied only when a new submission arrives.''<br />
<br />
== Importing from backups ==<br />
<br />
If necessary, CDash can automatically import builds from the Backup directory.<br />
<br />
# Log into CDash as administrator<br />
# Click on [Import from backups] in the administration section<br />
# Click on “Import backups”.<br />
<br />
= Import Dart1 files =<br />
<br />
CDash supports importing from Dart1. CDash doesn’t support from Dart2 because Dart2 doesn’t have any ways to export the database as XML (as far as we know).<br />
<br />
# Log into CDash as administrator<br />
# Click on [Import Dart1 Files] in the administration section<br />
# Select the project to import to<br />
# Select the path to the Dart1 "Sites" directory for the project on the server. Note that the filesystem should be accessible from the webserver user.<br />
# Select the appropriate date range<br />
# Click on import<br />
<br />
''Note that the import mechanism might take a long time.''<br />
<br />
= Maintenance Tools =<br />
<br />
Several tools are provided for backward compatibility and administrative purposes.<br />
<br />
== Assign builds to default group ==<br />
If some builds are not assign to any groups for some unknown reasons (this should be really rare), you can assign the builds to their group based on their build type (Nightly, Experimental or Continuous).<br />
<br />
== Fix build groups based on build rules ==<br />
If some group rules are defined but the builds are not going to the proper group (this should be really rare), you can fix this by running this script.<br />
<br />
== Delete builds with wrong dates ==<br />
Some builds might be coming into CDash with the wrong date, because either the date in the XML file is not correct or the timezone is not recognized by CDash (mainly by PHP). '''These builds will not show up in any dashboard''' because the starting time is bogus. It is recommended to delete these builds.<br />
<br />
First check if you have any bogus build by selecting the [check builds], then delete the builds by selecting [Delete builds].<br />
<br />
== Compute test timing ==<br />
See the [[CDash:Administration#Recompute_test_timing | recomputed test timing]] section for more information.<br />
<br />
= Upgrade CDash =<br />
See the [[CDash:Upgrade | upgrade CDash]] section for more information.<br />
<br />
= Automatic removal of builds =<br />
As of version 1.4, CDash allows the automatic removal of builds in order to keep the database to a reasonable size. There are two ways to setup the automatic removal:<br />
<br />
* '''Without cronjob'''. Just edit the config.local.php (or config.php) and set the <br />
<br />
$CDASH_AUTOREMOVE_BUILDS='1';<br />
<br />
This will automatically remove builds on the first build of the day (which might not be optimal if you have a lot of builds coming in at the same time since the removal of builds might take some time).<br />
<br />
* '''With cronjob'''. For instance, removing the builds from all the projects at 6am every Sunday.<br />
<br />
0 6 * * 0 php5 /var/www/CDash/autoRemoveBuilds.php all<br />
<br />
Not that the 'all' parameter can be changed to a specific project name if necessary.</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Tagging&diff=64715CDash:Tagging2022-03-31T18:02:09Z<p>Zack: </p>
<hr />
<div>* get list of authors to acknowledge<br />
git log --format="%an" <previous release>..HEAD | sort -u<br />
* get list of PRs merged since last release and use that to craft release notes<br />
* merge release branch into master (and don't delete it afterwards)<br />
* create an annonated tag and push it to origin<br />
git tag -a vx.y.0 -m "CDash vx.y.0"<br />
git push origin vx.y.0<br />
* go to GitHub, find the tag, make it a release and publish it (with notes / acknowledgements from above)<br />
* manually build/push docker image<br />
docker build -t kitware/cdash:vx.y.0 .<br />
docker push kitware/cdash:vx.y.0<br />
<br />
* email CDash mailing list to announce the new release<br />
<br />
* update CDash sites we maintain to run the new release</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Tagging&diff=64714CDash:Tagging2022-03-31T18:01:53Z<p>Zack: </p>
<hr />
<div>* get list of authors to acknowledge<br />
git log --format="%an" <previous release>..HEAD | sort -u<br />
* get list of PRs merged since last release and use that to craft release notes<br />
* merge release branch into master (and don't delete it afterwards)<br />
* create an annonated tag and push it to origin<br />
git tag -a v3.1.0 -m "CDash vx.y.0"<br />
git push origin v3.1.0<br />
* go to GitHub, find the tag, make it a release and publish it (with notes / acknowledgements from above)<br />
* manually build/push docker image<br />
docker build -t kitware/cdash:vx.y.0 .<br />
docker push kitware/cdash:vx.y.0<br />
<br />
* email CDash mailing list to announce the new release<br />
<br />
* update CDash sites we maintain to run the new release</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Installation&diff=64555CDash:Installation2020-09-25T14:40:21Z<p>Zack: Replaced content with " < CDash Main Page CDash is a [http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29 LAMP] application, running on [http://www.apache.org/ Apache] using [htt..."</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
CDash is a [http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29 LAMP] application, running on [http://www.apache.org/ Apache] using [http://www.php.net/ PHP] to access a [http://www.mysql.com/ MySQL] or [http://www.postgresql.org PostgreSQL] database.<br />
<br />
Please visit [https://github.com/Kitware/CDash our GitHub repository] for download links and installation instructions.</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Installation&diff=62971CDash:Installation2018-11-20T15:36:18Z<p>Zack: /* Stable Release */</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
CDash is a [http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29 LAMP] application, running on [http://www.apache.org/ Apache] using [http://www.php.net/ PHP] to access a [http://www.mysql.com/ MySQL] or [http://www.postgresql.org PostgreSQL] database.<br />
<br />
== System Requirements ==<br />
<br />
CDash requires:<br />
* A web server (Apache, NGINX, IIS) with PHP (5.5.9+) and SSL enabled.<br />
* Access to a MySQL (5.x+) or PostgreSQL (8.3+) database server.<br />
<br />
PHP needs to have the following modules enabled:<br />
* bcmath<br />
* cURL (for site statistics)<br />
* GD (for regression tests)<br />
* mbstring<br />
* pdo-mysql or pdo-postgresql<br />
* XSL<br />
<br />
== Downloading CDash ==<br />
<br />
=== Stable Release ===<br />
The '''current stable release of CDash is 2.6.0''' you can either download it as a zip archive<br />
* [https://github.com/Kitware/CDash/archive/v2.6.0.zip CDash-2.6.0.zip]<br />
* or as a tag from the [https://github.com/Kitware/CDash.git git repository]:<br />
git clone https://github.com/Kitware/CDash.git<br />
git checkout v2.6.0-prebuilt<br />
<br />
==== Previous versions of CDash ====<br />
* '''2.4''': [http://public.kitware.com/Wiki/File:CDash-2-4-0.zip CDash-2.4.0.zip] or git checkout v2.4.0<br />
* '''2.2''': [http://www.cdash.org/download/CDash-2.2.2.zip CDash-2.0.2.zip] or git checkout Release-2-2-2<br />
* '''2.0''': [http://www.cdash.org/download/CDash-2.0.2.zip CDash-2.0.2.zip] or git checkout Release-2-0-2<br />
* '''1.8''': [http://www.cdash.org/download/CDash-1.8.2.zip CDash-1.8.2.zip] or git checkout Release-1-8-2<br />
* '''1.6''': [http://www.cdash.org/download/CDash-1.6.4.zip CDash-1.6.4.zip] or git checkout Release-1-6-4<br />
* '''1.4''': [http://www.cdash.org/download/CDash-1.4.1.zip CDash-1.4.2.zip] or git checkout Release-1-4-2<br />
* '''1.2''': [http://www.cdash.org/download/CDash-1.2.1.zip CDash-1.2.1.zip] or git checkout Release-1-2-1<br />
* '''1.0''': [http://www.cdash.org/download/CDash-1.0.zip CDash-1.0.zip] or git checkout Release-1-0-2<br />
* '''0.8''': [http://www.cdash.org/download/CDash-0.8.zip CDash-0.8.zip] or git checkout Release-0-8<br />
<br />
=== GIT Development version ===<br />
<br />
CDash uses [https://getcomposer.org/ composer] and [https://www.npmjs.com/ npm] to manage its 3rd party dependencies.<br />
<br />
We provide two developments branches, <code>master</code> and <code>prebuilt</code>. If you're working with the <code>master</code> branch, then you have to run composer & npm yourself. The <code>prebuilt</code> branch has these dependencies already downloaded for you.<br />
<br />
==== master ====<br />
<br />
Use the <code>master</code> branch if you'd like to modify CDash or contribute to its development.<br />
git clone https://github.com/Kitware/CDash.git CDash<br />
git checkout master<br />
curl -sS https://getcomposer.org/installer | php <br />
php composer.phar install<br />
npm install<br />
node_modules/.bin/gulp<br />
<br />
==== prebuilt ====<br />
<br />
The <code>prebuilt</code> branch is a good choice if you'd like to use new features in CDash on a production server.<br />
git clone https://github.com/Kitware/CDash.git CDash<br />
git checkout prebuilt<br />
<br />
== Configuring CDash ==<br />
<br />
Create <code>CDash/config/config.local.php</code> and specify the following database settings.<br />
<br />
// Hostname of the database server or name of unix socket<br />
$CDASH_DB_HOST = 'localhost';<br />
// Login for database access<br />
$CDASH_DB_LOGIN = 'root';<br />
// Port for the database (leave empty to use default)<br />
$CDASH_DB_PORT = '';<br />
// Password for database access<br />
$CDASH_DB_PASS = '';<br />
// Name of the database<br />
$CDASH_DB_NAME = 'cdash';<br />
// Database type<br />
$CDASH_DB_TYPE = 'mysql';<br />
// Must be one of host, unix_socket<br />
$CDASH_DB_CONNECTION_TYPE = 'host';<br />
<br />
This allows CDash to connect to your database server.<br />
<br />
CDash can create a new database for you if you are using MySQL. For Postgres, you have to create the new database yourself.<br />
<br />
See [[CDash:Configuration]] for information about more configuration options.<br />
<br />
== Installing CDash ==<br />
<br />
Only CDash's <code>public</code> subdirectory should be exposed to the web. There are two main ways to accomplish this:<br />
<br />
# Create a symbolic link from <code>DocumentRoot</code> to <code>CDash/public</code>.<br />
# Configure <code>DocumentRoot</code> to point directly to <code>CDash/public</code>.<br />
<br />
See [[CDash:Upgrade#Repository_Reorganization_Aftermath|Repository Reorganization Aftermath]] for more details and information.<br />
<br />
=== Permissions ===<br />
<br />
The web server user needs to have write access to the following directories:<br />
* CDash/backup<br />
* CDash/log<br />
* CDash/public/rss<br />
* CDash/public/upload</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Upgrade&diff=62970CDash:Upgrade2018-11-20T15:33:39Z<p>Zack: /* Change logs */</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
This page explains how to upgrade CDash. CDash upgrade mechanism allows users to upgrade CDash at any point in time, even if they are using the current git development of CDash.<br />
<br />
= Upgrading CDash =<br />
<br />
# It is recommended that you [[CDash:Upgrade#Backing_up_CDash | backup the CDash database]].<br />
# Backup your configuration file: config.php or config.local.php<br />
# Replace your current CDash directory with the latest version. If your instance of CDash was cloned from git, a <code>git pull</code> should suffice.<br />
#* [[CDash:Upgrade#Repository_Reorganization_Aftermath | Follow these instructions]] if you just ran <code>git pull</code> and lots of files were moved to a new directory named "public".<br />
# Make sure your web server still has permission to read CDash's files. On Linux you might need to use <code>chown</code> or <code>chmod</code> if the permissions changed when you updated CDash.<br />
# [https://getcomposer.org/download/ Download composer] (if you haven't already) and run <code>php composer.phar install --no-dev --optimize-autoloader</code>.<br />
# Run <code>npm install</code><br />
# Run <code>node_modules/.bin/gulp</code><br />
# Restore the configuration parameters: the config.php file may change from one revision to the other, make sure you are not replacing the config.php file but are actually replacing the parameters inside the file. For this reason, we recommend that you maintain a config.local.php file that contains ONLY your modified settings.<br />
# Navigate your browser to your CDash page. (eg. http://localhost/CDash) <br />
## Note the version number on the main page. It should correctly match the new version that you are upgrading to.<br />
## The following message may appear: "The current database shema doesn't match the version of CDash you are running, upgrade your database structure in the Administration panel of CDash." This is a helpful reminder to perform the following steps:<br />
#Login to CDash as administrator. <br />
#In the ‘Administration’ section, click on ‘[CDash Maintenance]’<br />
#Click on ‘Upgrade CDash’: This process might take some time depending on the size of your database, '''do not close your browser'''.<br />
##Progress messages may appear while CDash performs the upgrade.<br />
##If the upgrade process takes too long you can check in the backup/cdash.log file to see where the process is taking a long time and/or failing. For long running upgrades, you could also [[CDash:Upgrade#Checking_Database_Activity | check your database activity]] to make sure that the upgrade process hasn't stalled out.<br />
##It has been reporting that on some systems the spinning icon never turns into a checkmark. Please check the cdash.log for the "Upgrade done." string if you feel that the upgrade takes too long.<br />
##'''CDash 1.6''': new indexes and fields for the database have been added. The indexes and fields touch the test table and might take a long time to upgrade, just be patient and check the backup/cdash.log file to see the current progress of the update. On a 80GB database the upgrade took about 4 hours.<br />
# '''Note:''' Some web browsers are having issue when upgrading (some javascript variables not passed correctly), in that case you can perform individual updates:<br />
<br />
http://yourURLtoCDash/backwardCompatibilityTools.php?upgrade-2-2=1<br />
<br />
= Backing up CDash =<br />
<br />
CDash stores all the information (except logs) in the database, so it's important to backup your database before any CDash upgrade.<br />
<br />
== MySQL ==<br />
There are a couple a ways to backup a MySQL database. The easiest way is to use the [http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html mysqldump] command.<br />
<br />
Example to backup the '''cdash''' database:<br />
mysqldump -r cdashbackup.sql cdash<br />
<br />
If you are using exclusively MyISAM tables you can copy the CDash directory in your MySQL data directory. Note that you need to shutdown the MySQL before doing the copy since, no file can be touched during the copy.<br />
<br />
== PostGreSQL ==<br />
Similarly to MySQL, PostGreSQL has a [http://www.postgresql.org/docs/8.0/interactive/backup.html pg_dump] utility.<br />
<br />
Example to backup the '''cdash''' database:<br />
pg_dump -U postgreSQLuser cdash > cdashbackup.sql<br />
<br />
= Checking Database Activity =<br />
== MySQL ==<br />
From a mysql prompt:<br />
SHOW PROCESSLIST;<br />
== PostGreSQL ==<br />
From a psql prompt: <br />
SELECT * FROM pg_stat_activity;<br />
<br />
= Repository Reorganization Aftermath =<br />
In November, 2015 we reorganized the CDash repository. All of the files meant to be accessed by a web browser were moved under the <code>public</code> directory. This improves the security of CDash by making sure that we aren't inadvertently exposing something private to the outside world.<br />
<br />
Here are some steps you should take if your CDash upgrade just took your across this threshold.<br />
* Change what directory is exposed to the web. The easiest way to do this is to create a symbolic link in your DocumentRoot (typically <code>/var/www</code> or similar) that points to <code>/path/to/CDash/public</code>.<br />
* Move your <code>config.local.php</code> file (if you're using one) from <code>cdash/</code> to <code>config/</code><br />
* Check your config file for outdated values. We recommend that you maintain a <code>config.local.php</code> file that contains ONLY your changes. If you follow this approach then you will automatically be updated when we change the default value in <code>config.php</code>. Here are some changed values that might trip you up if you aren't doing this:<br />
** <code>$CDASH_CSS_FILE</code> should now be <code>css/cdash.css</code> (or similar)<br />
** Make sure <code>$CDASH_BACKUP_DIRECTORY</code> is defined relative to <code>$CDASH_ROOT_DIR</code>.<br />
** Make sure that any paths to your DocumentRoot (typically <code>/var/www</code>) in this file are also updated (if necessary).<br />
<br />
<br />
<br />
= Change logs =<br />
<br />
== CDash 2.6 ==<br />
<br />
See https://github.com/Kitware/CDash/releases/tag/v2.6.0 for release notes.<br />
<br />
== CDash 2.4 ==<br />
<br />
=== Administrative notes ===<br />
* CDash no longer exposes all of its files to the web. If upgrading from 2.2 to 2.4, you will need to change how your DocumentRoot is configured. See [[CDash:Upgrade#Repository_Reorganization_Aftermath|CDash Repository Reorganization]] for more information.<br />
* CDash no longer maintains a copy of prerequisite software in its repository. Instead we use composer and npm to manage these dependencies. See [[CDash:Upgrade#Upgrading_CDash|Upgrading CDash]] for details on how to use these tools.<br />
<br />
=== New features ===<br />
* We've begun converting the frontend from XSLT to AngularJS. As a benefit of this, you can now [[CDash:API#JSON_data_representation|access the underlying data in JSON format]].<br />
* New page overview.php to show the health of your project over the past two weeks.<br />
* testOverview.php was remodeled to make it easier for you to find problematic tests over a given time period.<br />
* Support for [https://blog.kitware.com/dynamic-buildgroups-in-cdash/ Dynamic BuildGroups]. These show you the latest build results, no matter when they occurred.<br />
* [https://blog.kitware.com/additional-coverage-features-in-cdash/ Various improvements to code coverage analysis] including support for branch coverage and aggregating coverage metrics from multiple builds.<br />
* SubProjects can now be organized into groups with separate coverage thresholds.<br />
<br />
== CDash 2.2 ==<br />
<br />
=== New features ===<br />
*0013753: JUnit support <br />
*0013752: Support for nunit tests <br />
*0014896: Adding log level <br />
*0010084: Site Temporarily Out of Order <br />
*0014517: Add support for P4Web (Perforce Web Client)<br />
*Overall better PostGreSQL compatbility (thanks to Igor Murzov)<br />
*Added feed<br />
<br />
=== Bugs fixed (80) ===<br />
*0014906: Fix schedule to build association when handling submissions synchronously <br />
*0014717: Fix SQL query quoting issue introduced in r3432 <br />
*0014683: Use correct variable to get db type <br />
*0014682: Fix PHP undefined constant usage warning<br />
*0014679: Properly check if specified project exists <br />
*0014678: Drop weird copy'n'pasted comments from api/* files <br />
*0014681: Fix typo in "feed" table definition<br />
*0013400: Deleting all SubProjects does not remove the SubProjects section <br />
*0013937: CDash does not filter warnings when requesting difference to previous build <br />
*0014160: Deleting a group causes all builds in that group to disappear <br />
*0014638: Fix a typo in the coverage viewer <br />
*0014665: Generate xhtml to make the markdown standard compliant <br />
*0014664: Add menu to viewNotes page <br />
*0012989: Uninformative log message occurs a couple times a night on the CMake dashboard <br />
*0013654: Failed to update from "expected" to "non-expected" when there are no build <br />
*0014639: Fix undefined variable usage in test viewer<br />
*0014560: Overhaul configure warning extraction algorithm <br />
*0014589: Fix a PostgreSQL incompatibility<br />
*0014588: Fix undefined variable usage in changes viewer <br />
*0014556: ENH: Check that git directory is writable <br />
*0014551: CDash gives out of memory errors when attempting to XSLT transform large XML files <br />
*0014537: Fix a minor PostgreSQL incompatibility in test failure graph viewer <br />
*0014531: Don't hardcode coverage threshold, use the one from the project settings <br />
*0014530: Display correct configure warnings number on build summary page<br />
*0014525: Daily Updates for Perforce reports Revision and Prior Revision as 0 <br />
*0014524: The path to the P4 utility is not quoted (reported by Igor Murzov) <br />
*0014523: Drop remnants of backup page that was removed in r2599 <br />
*0014518: Add Perforce support to Daily Updates <br />
*0014346: Fix a couple of typos in file viewer <br />
*0014344: Cosmetics: Simplify some if conditions <br />
*0014343: Drop incorrect & pointless query on client libraries info update <br />
*0014513: Fix some html markdown issues <br />
*0014480: Fix seeming logout in file viewer <br />
*0014496: DOxygen menu should be renamed <br />
*0014478: Don't display errors when project gets unselected on Edit Project page <br />
*0014477: Drop unnecessary MySql-style quotes from SQL queries<br />
*0014469: Fix broken markdown on registration page <br />
*0014451: clientjobschedule.php doesn't encode project name before adding to submit URL <br />
*0014423: Drop left-over code <br />
*0014413: Fix grammar in coverage manager <br />
*0014412: Handle '0 builds' and '0 failed tests' cases properly<br />
*0014351: Fix lines of code calculation in the coverage viewer <br />
*0014350: Set Append property to false in upload xml handler as files are not appendable <br />
*0014189: dynamic analysis results not decoded <br />
*0012368: CDash's build results html should use monospace font for 'standard error' output <br />
*0014364: Add missing dot which prevented job id to be set in client script <br />
*0014374: Properly fetch result of SQL query on coverage info removal <br />
*0014375: Fix incorrect string quoting in SQL query in coveragefile2user model <br />
*0014341: Fix "user" table/function confusion <br />
*0014340: Fix undefined variable usage in sendemail <br />
*0010455: Show graph for <NamedMeasurement> <br />
*0013782: inconsistent last submission time for project and subprojects in the project dashboard <br />
*0013781: typo in manageBuildGroup.php <br />
*0013751: Error page <br />
*0013577: User Enumeration Vulnerability <br />
*0013491: CDash banner does not escape strings, potential SQL injection <br />
*0013256: cdash viewCoverage.php errors with new ajax interface <br />
*0013041: CDash 2 is still reporting wrong summary info for clock speed and RAM <br />
*0014621: Broken Filter Hyperlinks when enabling and then disabling Auto-refresh <br />
*0013943: Backup.php missing <br />
*0013428: Unknown column 'buildid' when running "Cleanup database" <br />
*0014514: svn log not updating with https:// and self signed certificate <br />
*0013079: Test attachment links broken when a test fails <br />
*0012994: Sorting by "Build Name" column doesn't work right when builds have OS icons <br />
*0012993: Times with milliseconds in them appear to be reported incorrectly <br />
*0012990: Strange formatting, and missing total test timing in "Build Time" tooltip <br />
*0012988: Column sort does not work for some columns in Coverage and Dynamic Analysis groups <br />
*0012985: "Show Build History" link does not show any builds <br />
*0012980: Last activity cannot be sorted on first page <br />
*0012978: Make FreeBSD a first class OS <br />
*0012950: login-based SQL injection <br />
*0012937: [CMake] Broken 'headerlogo' link if 'Home URL' is not set <br />
*0012949: CDash remove builds automatically even if $CDASH_AUTOREMOVE_BUILDS is not set <br />
*0012938: Unable to persitently change "Enable" flag in CDash Schedule Build <br />
*0013432: Registration Key URL in e-mail has one char to much at the end <br />
*0012984: CDash generated RSS produces date with 2 digit years; 4 digits preferred <br />
*0012948: Update data count misreported <br />
<br />
== CDash 2.0 ==<br />
<br />
=== New features ===<br />
<br />
* New and Simplified layout<br />
* Better management of asynchronous submission<br />
* Support for PostGreSQL 9<br />
* Improved security<br />
* Support for log rotation<br />
* Better support for new repository browsers<br />
* Improved users administration<br />
* $CDASH_WARN_ABOUT_UNREGISTERED_COMMITTERS option is now OFF by default to avoid flooding the log files. This option can still be overridden in the config.local.php<br />
<br />
=== Bugs fixed ===<br />
* [http://public.kitware.com/Bug/view.php?id=12555 0012555] Asynchronous processing of submission fails with drop site of the form: slicer4.cdash.org <br />
* [http://public.kitware.com/Bug/view.php?id=11809 0011809] "My Build Schedules" might benefit from an extra Comments or Description column <br />
* [http://public.kitware.com/Bug/view.php?id=12557 0012557] Option to hide source code in the coverage webpage <br />
* [http://public.kitware.com/Bug/view.php?id=11804 0011804] "My Build Schedules" list limited to 5 jobs; rest is inaccessible <br />
* [http://public.kitware.com/Bug/view.php?id=11521 0011521] PHP warning about MYSQL_BOTH <br />
* [http://public.kitware.com/Bug/view.php?id=12913 0012913] CDash fails to open update.xml file if CTEST_SITE variable contains a slash character <br />
* [http://public.kitware.com/Bug/view.php?id=10817 0010817] DynamicAnalysis is "green" and "0" even though all tests failed when run under memcheck <br />
* [http://public.kitware.com/Bug/view.php?id=12884 0012884] Adding "Subscribe" to the dashboard page <br />
* [http://public.kitware.com/Bug/view.php?id=12907 0012907] Delete user incomplete / blocks creation of new user with equal name <br />
* [http://public.kitware.com/Bug/view.php?id=12899 0012899] cdash 1.8.2 emails do not include header that indicates text encoding of content <br />
* [http://public.kitware.com/Bug/view.php?id=12885 0012885] When subscribing, "Project" combobox doesn't show current project <br />
* [http://public.kitware.com/Bug/view.php?id=10648 0010648] By default how to allow registered user to create new projects <br />
* [http://public.kitware.com/Bug/view.php?id=10742 0010742] CDash does not check for valid email <br />
* [http://public.kitware.com/Bug/view.php?id=10408 0010408] Time based reload for project dashboard page <br />
* [http://public.kitware.com/Bug/view.php?id=11939 0011939] CDASH cannot display Attached Files <br />
* [http://public.kitware.com/Bug/view.php?id=12314 0012314] description of 'test standard deviation' and 'test standard deviation threshold' is wrong <br />
* [http://public.kitware.com/Bug/view.php?id=10748 0010748] Log rotation <br />
* [http://public.kitware.com/Bug/view.php?id=12310 0012310] 'test time standard deviation' should be renamed <br />
* [http://public.kitware.com/Bug/view.php?id=10974 0010974] Build failures not highlighted <br />
* [http://public.kitware.com/Bug/view.php?id=10822 0010822] compute_update_statistics is undefined <br />
* [http://public.kitware.com/Bug/view.php?id=11799 0011799] "My Build Schedules" lists the same project name for all jobs <br />
* [http://public.kitware.com/Bug/view.php?id=11711 0011711] cdash/createRSS.php creates invalid RSS output <br />
* [http://public.kitware.com/Bug/view.php?id=10051 0010051] Wording of "Email preference" unclear <br />
* [http://public.kitware.com/Bug/view.php?id=11800 0011800] MySQL schema for client_jobschedule does not allow repeattime above 9.99 in newer MySQL versions <br />
* [http://public.kitware.com/Bug/view.php?id=12218 0012218] Update command fails to parse if it contains XML escaped quotes <br />
* [http://public.kitware.com/Bug/view.php?id=11201 0011201] Move the coverage legend on the left <br />
* [http://public.kitware.com/Bug/view.php?id=12368 0012368] CDash's build results html should use monospace font for 'standard error' output <br />
* [http://public.kitware.com/Bug/view.php?id=12164 0012164] CDash 1.6.4 cannot accept the special character <br />
* [http://public.kitware.com/Bug/view.php?id=12395 0012395] cdash login page 'remember me' checkbox does not work when using LDAP authentication <br />
* [http://public.kitware.com/Bug/view.php?id=12416 0012416] Error logs are never cleared <br />
* [http://public.kitware.com/Bug/view.php?id=09663 0009663] [CTest] CTest/CDash OS version & compiler information is lacking on Mac OS X <br />
* [http://public.kitware.com/Bug/view.php?id=07726 0007726] admin should be able to see/set other users settings <br />
* [http://public.kitware.com/Bug/view.php?id=10289 0010289] Patch for the support of hgweb navigation (mercurial) <br />
* [http://public.kitware.com/Bug/view.php?id=11409 0011409] viewErrorLog.php page does not show anything if buildid= *and* date= are given <br />
* [http://public.kitware.com/Bug/view.php?id=12341 0012341] Test names not escaped <br />
* [http://public.kitware.com/Bug/view.php?id=12360 0012360] [CTest] CDash colors for build graphs have poor contrast <br />
* [http://public.kitware.com/Bug/view.php?id=12384 0012384] [PATCH] Add support for the Redmine repository browser <br />
* [http://public.kitware.com/Bug/view.php?id=11737 0011737] CDash submission fails due to wrong parsing of geolocation info <br />
* [http://public.kitware.com/Bug/view.php?id=12585 0012585] Use "(empty)" instead of "" when site and build names come in empty from ctest <br />
* [http://public.kitware.com/Bug/view.php?id=10684 0010684] [CTest] ctest not reporting submission failures <br />
* [http://public.kitware.com/Bug/view.php?id=12396 0012396] [CTest] CDash should indicate the git hash of builds <br />
* [http://public.kitware.com/Bug/view.php?id=11608 0011608] Support new style of gitweb url <br />
* [http://public.kitware.com/Bug/view.php?id=11920 0011920] [CMake] Current svn -> cannot create project + header errors<br />
* [http://public.kitware.com/Bug/view.php?id=12638 0012638] Display Example URL of Reposiroty Viewer <br />
* [http://public.kitware.com/Bug/view.php?id=12631 0012631] Admin can't change user settings -- especially can't edit repository credentials <br />
* [http://public.kitware.com/Bug/view.php?id=10819 0010819] Make one more category for coverage files : "complete" or "perfect" <br />
* [http://public.kitware.com/Bug/view.php?id=12560 0012560] Support for PgSQL 9.x <br />
* [http://public.kitware.com/Bug/view.php?id=12559 0012559] Add database port in configuration file <br />
* [http://public.kitware.com/Bug/view.php?id=12403 0012403] CDash should report the time since reported builds <br />
* [http://public.kitware.com/Bug/view.php?id=12454 0012454] Missing CDASH_SERVER_PORT default in config.php <br />
* [http://public.kitware.com/Bug/view.php?id=12409 0012409] Autorefresh support <br />
* [http://public.kitware.com/Bug/view.php?id=11787 0011787] PHP errors when accessing with empty project name <br />
* [http://public.kitware.com/Bug/view.php?id=12404 0012404] Build management from main dashboard doesn't work on Safari <br />
* [http://public.kitware.com/Bug/view.php?id=12331 0012331] Additional search filters for LDAP based logins<br />
* [http://public.kitware.com/Bug/view.php?id=12308 0012308] WebApi - Method:project - Task:files - Sort files by uploaded date<br />
* [http://public.kitware.com/Bug/view.php?id=11639 0011639] Support committer name and email from git<br />
* [http://public.kitware.com/Bug/view.php?id=10659 0010659] Upgrade Jquery<br />
* [http://public.kitware.com/Bug/view.php?id=10930 0010930] 1.6.5: ctest/cdash report truncated names <br />
* [http://public.kitware.com/Bug/view.php?id=09790 0009790] URL into Trac svn browser wrong <br />
* [http://public.kitware.com/Bug/view.php?id=11432 0011432] Undefined variables <br />
* [http://public.kitware.com/Bug/view.php?id=11894 0011894] PHP warnings about split() <br />
* [http://public.kitware.com/Bug/view.php?id=11828 0011828] PHP warning about preg_match() <br />
* [http://public.kitware.com/Bug/view.php?id=10964 0010964] [CTest] CDash 1.6.4 - test output "crashes" the log page<br />
* [http://public.kitware.com/Bug/view.php?id=11663 0011663] Version 1.8.2 testDetails.php not loading stylesheet.<br />
<br />
== CDash 1.8 ==<br />
<br />
=== New features ===<br />
* Asynchronous submission<br />
* CDash@home beta version<br />
* Increasing number of tests and coverage<br />
* Build group specific auto-remove settings<br />
<br />
=== Bugs fixed ===<br />
* [http://public.kitware.com/Bug/view.php?id=10834 0010834] CDash should log php errors during submission<br />
* [http://public.kitware.com/Bug/view.php?id=10720 0010720] Upgrading PostgreSQL database from 1.7 to 1.8 gives "An error occured"<br />
* [http://public.kitware.com/Bug/view.php?id=10660 0010660] regex for BUG: bug_number<br />
* [http://public.kitware.com/Bug/view.php?id=10947 0010947] Sorting by test timing does not work on index.php<br />
* [http://public.kitware.com/Bug/view.php?id=10929 0010929] Spelling mistakes on code coverage pages<br />
* [http://public.kitware.com/Bug/view.php?id=10657 0010657] MyCDash - project creation blocked<br />
* [http://public.kitware.com/Bug/view.php?id=10649 0010649] Editing project in Chrome makes the repository field empty<br />
* [http://public.kitware.com/Bug/view.php?id=10647 0010647] HTTP Header should specify charset<br />
* [http://public.kitware.com/Bug/view.php?id=10269 0010269] Submission without 'ctest -D ...Build' reports entries in the dashboard 'build' column<br />
* [http://public.kitware.com/Bug/view.php?id=10260 0010260] Logo image doesnt appear on all pages of a Dashboard that uses Subprojects.<br />
* [http://public.kitware.com/Bug/view.php?id=10975 0010975] Negative numbers (for test counts, others?) appearing in subproject dashboard results<br />
* [http://public.kitware.com/Bug/view.php?id=11284 0011284] Buildname with spaces breaks javascript<br />
* [http://public.kitware.com/Bug/view.php?id=11167 0011167] Coverage threshold check should be greater than or equal to<br />
* [http://public.kitware.com/Bug/view.php?id=11125 0011125] Test.Exists() uses incomplete key, resulting in bogus test associations in DB<br />
* [http://public.kitware.com/Bug/view.php?id=11108 0011108] Build shows up more than once if it has more than one note added to it<br />
* [http://public.kitware.com/Bug/view.php?id=10976 0010976] Adding a user to a project sets 'no email' by default<br />
* [http://public.kitware.com/Bug/view.php?id=10767 0010767] Clicking on administration/Users in an arbitrary project leads to an error.<br />
* [http://public.kitware.com/Bug/view.php?id=10760 0010760] The <link> in build update feed should point to the build<br />
* [http://public.kitware.com/Bug/view.php?id=10721 0010721] Showing build errors (the yellow triangle) does not work<br />
* [http://public.kitware.com/Bug/view.php?id=10921 0010921] Sorting of time test does not work <br />
* [http://public.kitware.com/Bug/view.php?id=9941 0009941] Add buildmanagement functionality to CDash<br />
<br />
== CDash 1.6 ==<br />
<br />
=== New features ===<br />
* Support for persistent login<br />
* Better database compression<br />
* New graphs and reports<br />
* Improved coverage visualization<br />
* Better CTest communication<br />
* Expected submission time based on historic average<br />
* Faster load of the main dashboard page<br />
* Improved navigation links<br />
* Remote build management (beta) <br />
<br />
=== Bugs fixed ===<br />
* 0010290 CDash sends failed-test emails, even when this is disabled<br />
* 0010426 ClientJobSchedule::Save fails because of missing client_jobschedule table columns<br />
* 0010463 Shared project repositories not updated correctly<br />
* 0010332 cdash does not properly handle large xml files<br />
* 0010439 Command Lines in Build Error/Warning Display<br />
* 0010460 Subscription can be altered even if not admin<br />
* 0010313 Site description repeatedly escapes special characters<br />
* 0009174 tracing regressions<br />
* 0009276 Postgres does not like the build warnings with '\\' in them<br />
* 0010106 Marking "new" test failures on dashboard "view-failed-only" page.<br />
* 0008735 add ability to get email for missing builds on sites you do not own<br />
* 0008126 Improve Morale<br />
* 0009991 show which failures are new<br />
* 0010027 Feature Request: Compression of test output in the database<br />
* 0008341 itkrobot doesn't trigger message<br />
* 0010071 Empty iphone project page<br />
* 0009790 URL into Trac svn browser wrong<br />
* 0008854 Sort columns in "Manage Coverage Page"<br />
* 0009279 Allow --username for subversion<br />
* 0008171 Display longer history for a single build<br />
* 0008036 Filter out submissions based on IP address<br />
* 0007670 Delta on tests is nice but can mask actual status change.<br />
* 0008965 identify builds that my commit first appear in<br />
* 0007731 Graph of warnings and errors over time<br />
* 0009933 Configurable Tracker URL<br />
* 0007398 groups have "issues"<br />
* 0009928 Updated file count is always 0 for new submissions<br />
* 0008585 Maintainer page<br />
* 0008271 Activity graph<br />
* 0009848 "Edit subscription" should have a project-selection combo box<br />
* 0009820 Links/navigation are partly confusing<br />
* 0008367 Warnings and Errors are set to zero by default<br />
* 0009138 Project names with chars that must be escaped generate incorrect URLs<br />
* 0009295 "Time spent per project" only tracks last build<br />
* 0008948 Update.xml parsing should classify updated/modified/conflicting based on xpath<br />
* 0008736 better looking coverage<br />
* 0009856 "Dashboard" doesn't take me to dashboard for the project<br />
* 0009823 Build summary page should link to pieces<br />
* 0009855 Unsubscribing as project admin<br />
* 0009857 list of "Show public projects" not sorted<br />
* 0009034 Please add a "Show Coverage Percentage Graph" link to the buildSummary page for coverage builds<br />
* 0009669 Coverage page sorting is slow<br />
* 0008425 Flot doesn't work with IE 8 beta<br />
* 0008204 submission should not process files<br />
* 0009891 Build::GetIdFromName() doesn't check projectid for subproject<br />
* 0009890 Deleting project doesn't delete subprojects and labels<br />
* 0009818 Description is escaped for project<br />
* 0009815 projects not sorted on "My CDash" page<br />
* 0009794 CDash "forgets" me very fast...<br />
* 0009788 Dynamic Anyalsis truncated<br />
* 0009063 Display expected submission time based on historical average for expected builds that have not submitted yet<br />
* 0009706 Non-anonymous LDAP authentication (e.g. for Active Directory) - feature request and example implementation<br />
* 0009677 MySQL with STRICT_TRANS_TABLES fails<br />
* 0009668 Cannot move builds from index page on Chrome<br />
* 0009644 Only test timings after last database upgrade are shown<br />
* 0009338 Showing updates files does not work with PostgreSQL<br />
* 0009630 r1964 broke CDash when using PostgreSQL<br />
* 0009322 Show changes in test results<br />
* 0009154 build errors not issuing emails<br />
* 0009522 Persistent login<br />
* 0009359 Unable to invite users<br />
* 0009277 Database update is always needed<br />
* 0009340 Production mode shouldn't display install.php<br />
* 0009120 CDash generates wrong diff URLs for ViewVC (at least on NITRC.org)<br />
* 0009296 Passed test should not have "error" table background<br />
* 0009294 Processor information of build host is not parsed correctly<br />
* 0009266 Cannot remove Site<br />
* 0008957 Remember me login<br />
* 0008931 Need a way to "unclaim" a site that no longer submits<br />
* 0008881 Improve support for white spaces to NamedMeasurement with type text/string and/or text/plain types<br />
<br />
== CDash 1.4 ==<br />
<br />
=== New features ===<br />
*New XML parsing using SAX parsing instead of DOM (memory efficient)<br />
*Introduction of models (MVC framework)<br />
*Nightly testing of CDash itself<br />
** http://www.cdash.org/CDash/index.php?project=CDash<br />
*Support for subprojects (CMake/CTest CVS is required)<br />
** http://trilinos-dev.sandia.gov/cdash/index.php?project=Trilinos<br />
*Support for filters<br />
** allows showing just error builds, or builds from multiple days, or both<br />
** create hyperlink to filter results and bookmark it<br />
** example showing error builds from 3 days ago until now:<br />
** http://trilinos-dev.sandia.gov/cdash/index.php?project=Trilinos&display=project&filtercount=2&showfilters=1&filtercombine=and&field1=builderrors/number&compare1=42&value1=0&field2=buildstarttime/date&compare2=83&value2=3%20days%20ago<br />
*Support for labels on builds, tests, coverage files<br />
** use CVS CMake/CTest and set target, test or source file property LABELS<br />
*Improved navigation<br />
*Improved database indexing<br />
*Improved email reporting<br />
*Added email for coverage<br />
*Improved column sorting<br />
<br />
=== Bug Fixes ===<br />
*0008670 Failed tests shown in orange instead of red <br />
*0008643 New Email summary lines<br />
*0008117 disallow public registration <br />
*0008663 Sorting 'Dynamic Analysis' field 'Labels'<br />
*0008708 Add config.local.php<br />
*0008662 'Coverage' fields 'passed', 'failed', and 'Labels' are not sorting<br />
*0008638 'Dynamic Analsysis' columns can not be sorted<br />
<br />
*0006631 Logos that are too big (tall)<br />
*0007736 Root directory in websvn URL must have trailing slash for websvn paths to be generated correctly<br />
*0007771 Nightly changes should store previous revision<br />
*0008103 Timing test did not fail<br />
*0008127 Prevent spamming<br />
*0007920 ViewChanges crashes ViewCVS on newly created files<br />
*0007570 Test submission silently fails when test output is quite large. <br />
*0008616 Sending subproject email address regression lists in XML and updating CDash email lists <br />
*0008615 Sorting the 'Min' columns is not a numeric sort.<br />
*0008191 pdo_query() does not work if it is not MySQL<br />
*0008469 Coverage broken in SVN<br />
*0008462 Only 412 test results shown<br />
*0008740 NotRun/Fail/Pass tests reports don't report what they should report<br />
*0007713 Upgrading Database should now use previous version<br />
*0007884 Ask CDash not to fill IP addresses<br />
*0008679 XML Parsing problem should send email<br />
*0008783 Email Preference not greyed out on subscription page when ""Email Broken Submission"" is unchecked<br />
*0007724 Configure warnings and errors should trigger email<br />
*0008810 When Editing a project, createProject.php get an error calling fopen."<br />
*0008119 use admin email address as sender address in password emails<br />
*0008610 content of coverage differs to Coverage.xml<br />
*0007855 CDash sends duplicate emails for the same build<br />
*0008760 build failures not being sent out for all dashboard reported build errors<br />
*0008730 Not sending out email notifications for failed configure?<br />
*0008592 Main project/subproject page should be able to filter only Nightly tests<br />
*0008645 Coverage testing link times out<br />
*0008318 viewUpdate.php with PosgreSQL fails<br />
*0008368 XAMPP flaws<br />
*0007908 Make possible to sort Code Coverage rows by submission time <br />
*0008468 Help not closable on small screen <br />
*0008484 Configure log field is too small <br />
*0006468 go to a bug reference from a commit log <br />
*0007778 User can register with the same email address <br />
*0008460 Upgrade to jquery 1.3 <br />
*0007861 Upgrade from 1.0.2 to 1.2.1 breaks Groups<br />
*0007907 Time units missing in detailed test report<br />
*0008125 multiple users can share the same email address<br />
*0008451 Coverage should be sorted by status by default<br />
*0008448 cannot set CVS/SVN ViewerURL - CDash SVN trunk<br />
*0008287 Project name should be trimmed<br />
*0008254 User subscription public project<br />
*0008160 Performance issue when submiting test<br />
*0007916 Check that backup and rss directories are writable<br />
*0008202 Project logo not displayed with PostgreSQL<br />
*0008118 password recovery email seems to be bad html<br />
*0008113 Wrong SQL query leads to not storing results<br />
*0008084 Database name cannot contain minus (-)<br />
*0007848 CDash admin privileges lacking some key actions<br />
*0007847 Admin/users account can become permanently inaccessible<br />
*0007853 Builds sent from differnt sites can clobber each other<br />
*0007582 Charset encoding issues<br />
*0007806 MySQL error creating build groups<br />
*0007871 Installation check for php5-gd<br />
*0007805 The same image can't have multiple roles for a given test<br />
<br />
== CDash 1.2 ==<br />
<br />
=== New features ===<br />
*0006801 Test Failure History Graph<br />
*0007556 ViewSite page should list the users who claimed a site<br />
*0007499 Summarize busytime by site<br />
*0007204 Error summary page<br />
*0007537 Feature request: loggerhead support<br />
*0007116 Add functionality to send email to all site claimers<br />
*0007124 Add warning and minutes column to the cfg-column<br />
*0006943 Feature Request: Use Time, Pass/Fail graphs for navigation<br />
*0007209 add a user or group of users from the admin file without a file upload<br />
*0007266 seeking ViewVC support in CDash<br />
*0007420 Support for WebSVN<br />
*0006606 Support for other databases<br />
*0007068 Support for multiple repositories update<br />
*0007212 Password recovery<br />
*0007063 Support <Measurement> tags containing HTML<br />
*0006646 Compressing notes<br />
*0007019 Email notification of nigthly builds<br />
*0006466 Email when an expected nightly does not show up.<br />
*0007636 +- reporting on the coverage<br />
<br />
=== Bugs fixed ===<br />
*0007573 Only builds from default groups show when All is selected in Global Move.<br />
*0007535 Tests are not sorted by build time<br />
*0007497 email should be sent when an expected nightly does not show up<br />
*0007532 Claim sites list is slow to generate and unsorted<br />
*0007504 <DartMeasurement> output is not SQL-escaped<br />
*0006492 There are no options to define "broken"<br />
*0007458 add_coverage produce SQL error<br />
*0007019 email notification of nigthly builds<br />
*0006842 make browser back button and the date forward/backward buttons smarter<br />
*0007210 time error hides number summary of test time<br />
*0007368 Detail in build warning/error emails<br />
*0007246 test summary page shows previous days builds<br />
*0007422 Configuration option to request full email in manage project roles<br />
*0007051 Timing tests have too many false positives<br />
*0006996 Cannot view graphs<br />
*0007252 OS Name and Version not displayed in viewSite<br />
*0007405 Number of files covered unsatisfactorily is wrong<br />
*0007293 CDash doesn't show all modified and conflicted files<br />
*0006841 show number of new errors rather than total number of errors<br />
*0007299 cdash install issues<br />
*0007262 Email always sent for experimental builds<br />
*0007247 URL encoding in CTestConfig<br />
*0007188 CDash: buildSummary.php reports update time when no update has been made<br />
*0007211 Better visualization of the code coverage (more prominent indication of uncovered line)<br />
*0007135 Timing test statistics should not sample timing value for a failing test<br />
*0007112 Login information not saved<br />
*0007113 Cannot directly link to pages in protected projects<br />
*0007064 CDash: CDash content of coverage differs to Coverage.xml<br />
*0007066 Documentation link<br />
*0007053 CDash loses my identity and getting it back requires manually going back to CDash start page.<br />
*0007052 Redirect user to login page when private project is not accessible<br />
*0007017 Help screen cannot be dismissed if browser window is small<br />
*0007021 Parse cvs/svn/git commit comments and make URL expressions clickable hyperlinks<br />
*0007018 Output from test is truncated<br />
*0007654 Coverage file are truncated<br />
*0007573 Only builds from default groups show when All is selected in Global Move.<br />
*0006492 There are no options to define "broken"<br />
*0007535 Tests are not sorted by build time<br />
*0007667 Submitting using a custom track/group name partially fails when contains a dash<br />
*0007668 Broken image link on database upgrade<br />
*0007648 Commit ordering issue in Nightly Changes page of VTK Cdash (1.0.3)<br />
*0007639 Build group description required by MySQL but not set by PHP build group commands<br />
<br />
== CDash 1.0.2 ==<br />
=== Bugs fixed ===<br />
* 0007016 Create Group does not work under Opera and IE<br />
* Email submission not working for individual users<br />
* Several cosmetic fixes<br />
<br />
== CDash 1.0 ==<br />
=== Bugs fixed ===<br />
* 0006384 Detecting timing defects<br />
* 0006371 Having the number of nightly changes on the main page<br />
* 0006497 Method to mark compile warnings, compile errors, and test failures with "fix in progress" or "fixed"<br />
* 0006508 Test Results information is incomplete for itk<br />
* 0006894 Wrong number of dynamic analysis defects<br />
* 0006878 Support for timestamp CTest 2.6<br />
* 0006612 Bad BuildTimeGraph on buildSummary page for continuous build<br />
* 0006843 Support of different cvs/svn/web viewers<br />
* 0006582 CVS Link to a version 1.1 file is invalid<br />
* 0006664 Incorrect timing and detail report on viewTest page<br />
* 0006832 Previous Build Incorrect<br />
* 0006807 RSS feed with private project<br />
* 0006797 Previous build on build summary page<br />
* 0006805 Warning when backup and rss directory are not writable<br />
* 0006798 Warning message when browsing coverage<br />
* 0006772 Warnings when searching for emails on manageProjectRoles page<br />
* 0006472 Add ability to remove bogus builds<br />
* 0006601 Project administrator cannot remove an expected build if it is not submitting<br />
* 0006471 Add a quick way to upload a cvs/svn user to password file for email notification<br />
* 0006715 PROJECT pulldown under DASHBOARD pulldown<br />
* 0006602 Sort by any column on the viewTest and testSummary pages<br />
* 0006681 Fisheye URL support<br />
* 0006653 Mouse-over build groups<br />
* 0006655 Project logo hyperlink<br />
* 0006942: Show Test Time Graph does not toggle in Internet Explorer<br />
* 0006939: Separate lists of failing tests from list of passing tests<br />
<br />
=== Database modification ===<br />
* Added ‘description’ to table buildgroup<br />
* Added cvsviewertype to table project<br />
* Added index siteid in table site2user<br />
* Added index starttime in table build<br />
* Added index name in table test (this might take some time to run)<br />
* Added crc32 with index in table coveragefile <br />
* Compressing coverage (this might take some time to run)<br />
* Add support for timestatus in build2test table</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Build_Management&diff=62217CDash:Build Management2018-03-13T17:05:19Z<p>Zack: </p>
<hr />
<div>CDash 1.6 implements a '''beta version''' of remote build management from CDash. This page describes how to enable build management in CDash and will be updated as we improve the concept.<br />
<br />
= Introduction =<br />
The main idea of the CDash/CTest build management is to have clients announce their availability to the CDash server. The server then schedules and allocates the proper clients based on build requirements.<br />
<br />
= Server Configuration =<br />
In your config.local.php put the following line:<br />
<br />
$CDASH_MANAGE_CLIENTS = '1';<br />
<br />
As administrator of a project. Go to the administration page for the project and click on the '''Clients''' tab. A default template is created by default but you can edit as needed for the project. This is the CTest script that will be appended and sent to the client.<br />
<br />
== CDash CTest variables ==<br />
CDash defines the following variables:<br />
<br />
*'''JOB_BUILDTYPE:''' Track of the submission: experimental, nightly, continuous<br />
*'''PROJECT_NAME:''' Name of the project<br />
*'''JOB_REPOSITORY:''' Repository where to get the source code<br />
*'''JOB_MODULE:''' Repository module defined by the scheduler<br />
*'''JOB_TAG:''' Repository tag defined by the scheduler<br />
*'''JOB_BUILDNAME_SUFFIX:''' Suffix for the buildname defined by the scheduler<br />
*'''JOB_CMAKE_GENERATOR:''' Generator corresponding to the compiler selected<br />
*'''JOB_BUILD_CONFIGURATION:''' Build type<br />
*'''CLIENT_BASE_DIRECTORY:''' Base directory on the client machine<br />
*'''CLIENT_CMAKE_PATH:''' Path to CMake on the client<br />
*'''CLIENT_SITE:''' Name of the client site<br />
*'''JOB_OS_NAME:''' Name of the OS on the client<br />
*'''JOB_OS_VERSION:''' Version of the OS on the client<br />
*'''JOB_OS_BITS:''' Number of bits for the OS on the client<br />
*'''JOB_COMPILER_NAME:''' Name of the compiler on the client<br />
*'''JOB_COMPILER_VERSION:''' Version of the compiler on the client<br />
*'''CTEST_DROP_METHOD:''' HTTP or HTTPS<br />
*'''CTEST_DROP_SITE_CDASH:''' Set to 1<br />
*'''CTEST_DROP_SITE:''' Sites by default is the current CDash<br />
*'''CTEST_DROP_LOCATION:''' Location by default is the current CDash<br />
<br />
== Job-Specific Scripts ==<br />
You can also use custom CTest scripts for a specific job instead of using the same script across a project.<br />
<br />
On the '''Schedule Builds''' page, simply fill in the text area marked '''Job-specific client script''' with the desired script. All the same variables mentioned above will be defined for this custom script. If you don't define a job-specific script, the project-level client script will be used.<br />
<br />
== CDash CTest macros ==<br />
<br />
*'''JOB_FAILED Macro:''' Use this macro to mark the client has failed to CDash so the submission can be rescheduled automatically (not implemented yet)<br />
<br />
== Program variables ==<br />
Foreach <program> tag in the client.cdash.xml file, CDash creates a variable corresponding to the name and version of the program and the path. CDash also creates a variable with just the name with the newest version of the program.<br />
<br />
<program><br />
<name>git</name><br />
<version>1.7</version><br />
<path>C:/git-bin.git</path><br />
</program><br />
<br />
will result in <br />
<br />
SET(CLIENT_EXECUTABLE_GIT "C:/git-bin.git");<br />
SET(CLIENT_EXECUTABLE_GIT_1_7 "C:/git-bin.git");<br />
<br />
= Client Configuration =<br />
<br />
Then create a machine description XML file (mymachine.cdash.xml) on each client machine. Note that you can have multiple <compiler>, <cmake>, <library> and <program> tags within the file, if you have multiple compilers for instance.<br />
<br />
The platform tag can be one of these:<br />
<br />
Windows<br />
Linux<br />
Mac<br />
<br />
The OS version can be one of these<br />
<br />
Vista<br />
7<br />
Ubuntu<br />
Debian<br />
Fedora<br />
CentOS<br />
Tiger<br />
Leopard<br />
SnowLeopard<br />
<br />
The XML file looks like this:<br />
<br />
<?xml version="1.0" encoding="UTF-8"?><br />
<cdash><br />
<system><br />
<platform>windows</platform><br />
<version>7</version><br />
<bits>32</bits><br />
<basedirectory>C:/CDashClient</basedirectory> <br />
</system><br />
<compiler><br />
<name>MSVC</name><br />
<version>2009</version> <br />
<generator>Visual Studio 9 2008</generator> <br />
</compiler><br />
<cmake><br />
<version>2.8</version> <br />
<path>C:/Program Files/CMake 2.8/bin</path> <br />
</cmake><br />
<library><br />
<name>OpenGL</name><br />
<version>1.3</version><br />
<include>C:/OpenGL</include><br />
<path>C:/OpenGL-bin</path><br />
</library><br />
<program><br />
<name>git</name><br />
<version>1.7</version><br />
<path>C:/git-bin.git</path><br />
</program><br />
<allowedproject>ProjectX</allowedproject><br />
<allowedproject>ProjectY</allowedproject><br />
<allowedproject>ProjectZ</allowedproject><br />
</cdash><br />
<br />
'''NOTE:''' The <allowedproject> tags are optional. If you don't specify a list of projects that are allowed to build jobs on the machine, then any project will be allowed to send jobs to the machine.<br />
<br />
Then create the following CTest script: mymachine.ctest. This script uses the mymachine.cdash.xml to send the site description to CDash, then loop and ask CDash for build to perform:<br />
<br />
# These variables define the system<br />
set(CDASH_SITENAME "yellowstone.kitware")<br />
set(CDASH_SYSTEMNAME "Ubuntu-32bits")<br />
set(CDASH_SITE_CONFIG_FILE "/workspace/Dashboard/yellowstone.cdash.xml")<br />
set(CDASH_TEMP_DIRECTORY "/workspace/Dashboard/tmp")<br />
set(CTEST_EXECUTABLE "/Workspace/CMake-bin/bin/ctest")<br />
set(CTEST_DROP_SITE "dash1old")<br />
set(CTEST_DROP_URL "/CDash/submit.php")<br />
<br />
# Now include the common setup for cdash<br />
include(cdash_client_common.ctest)<br />
<br />
Other configurable options you may want to add in mymachine.ctest:<br />
*'''CLIENT_TIME_LIMIT''': set to the number of seconds the script will run in total (default is 36000)<br />
*'''ALLOWED_PROJECTS''': set to a list of project names that are allowed to submit jobs to this machine (default is to allow all projects)<br />
<br />
Download the driver script cdash_client_common.ctest and place it in the same directory as mymachine.ctest:<br />
<br />
[[https://github.com/Kitware/CDash/blob/master/scripts/cdash_client_common.ctest]]<br />
<br />
Start the script:<br />
<br />
ctest -S mymachine.ctest -V (verbose to see what's happening)</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Installation&diff=61958CDash:Installation2017-08-30T14:16:47Z<p>Zack: /* System Requirements */</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
CDash is a [http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29 LAMP] application, running on [http://www.apache.org/ Apache] using [http://www.php.net/ PHP] to access a [http://www.mysql.com/ MySQL] or [http://www.postgresql.org PostgreSQL] database.<br />
<br />
== System Requirements ==<br />
<br />
CDash requires:<br />
* A web server (Apache, NGINX, IIS) with PHP (5.5.9+) and SSL enabled.<br />
* Access to a MySQL (5.x+) or PostgreSQL (8.3+) database server.<br />
<br />
PHP needs to have the following modules enabled:<br />
* bcmath<br />
* cURL (for site statistics)<br />
* GD (for regression tests)<br />
* mbstring<br />
* pdo-mysql or pdo-postgresql<br />
* XSL<br />
<br />
== Downloading CDash ==<br />
<br />
=== Stable Release ===<br />
The '''current stable release of CDash is 2.4.0''' you can either download it as a zip archive<br />
* [http://public.kitware.com/Wiki/File:CDash-2-4-0.zip CDash-2.4.0.zip]<br />
* or as a tag from the [https://github.com/Kitware/CDash.git GIT] repository:<br />
git clone https://github.com/Kitware/CDash.git<br />
git checkout v2.4.0-prebuilt<br />
<br />
==== Previous versions of CDash ====<br />
* '''2.2''': [http://www.cdash.org/download/CDash-2.2.2.zip CDash-2.0.2.zip] or git checkout Release-2-2-2<br />
* '''2.0''': [http://www.cdash.org/download/CDash-2.0.2.zip CDash-2.0.2.zip] or git checkout Release-2-0-2<br />
* '''1.8''': [http://www.cdash.org/download/CDash-1.8.2.zip CDash-1.8.2.zip] or git checkout Release-1-8-2<br />
* '''1.6''': [http://www.cdash.org/download/CDash-1.6.4.zip CDash-1.6.4.zip] or git checkout Release-1-6-4<br />
* '''1.4''': [http://www.cdash.org/download/CDash-1.4.1.zip CDash-1.4.2.zip] or git checkout Release-1-4-2<br />
* '''1.2''': [http://www.cdash.org/download/CDash-1.2.1.zip CDash-1.2.1.zip] or git checkout Release-1-2-1<br />
* '''1.0''': [http://www.cdash.org/download/CDash-1.0.zip CDash-1.0.zip] or git checkout Release-1-0-2<br />
* '''0.8''': [http://www.cdash.org/download/CDash-0.8.zip CDash-0.8.zip] or git checkout Release-0-8<br />
<br />
=== GIT Development version ===<br />
<br />
CDash uses [https://getcomposer.org/ composer] and [https://www.npmjs.com/ npm] to manage its 3rd party dependencies.<br />
<br />
We provide two developments branches, <code>master</code> and <code>prebuilt</code>. If you're working with the <code>master</code> branch, then you have to run composer & npm yourself. The <code>prebuilt</code> branch has these dependencies already downloaded for you.<br />
<br />
==== master ====<br />
<br />
Use the <code>master</code> branch if you'd like to modify CDash or contribute to its development.<br />
git clone https://github.com/Kitware/CDash.git CDash<br />
git checkout master<br />
curl -sS https://getcomposer.org/installer | php <br />
php composer.phar install<br />
npm install<br />
node_modules/.bin/gulp<br />
<br />
==== prebuilt ====<br />
<br />
The <code>prebuilt</code> branch is a good choice if you'd like to use new features in CDash on a production server.<br />
git clone https://github.com/Kitware/CDash.git CDash<br />
git checkout prebuilt<br />
<br />
== Configuring CDash ==<br />
<br />
Create <code>CDash/config/config.local.php</code> and specify the following database settings.<br />
<br />
// Hostname of the database server or name of unix socket<br />
$CDASH_DB_HOST = 'localhost';<br />
// Login for database access<br />
$CDASH_DB_LOGIN = 'root';<br />
// Port for the database (leave empty to use default)<br />
$CDASH_DB_PORT = '';<br />
// Password for database access<br />
$CDASH_DB_PASS = '';<br />
// Name of the database<br />
$CDASH_DB_NAME = 'cdash';<br />
// Database type<br />
$CDASH_DB_TYPE = 'mysql';<br />
// Must be one of host, unix_socket<br />
$CDASH_DB_CONNECTION_TYPE = 'host';<br />
<br />
This allows CDash to connect to your database server.<br />
<br />
CDash can create a new database for you if you are using MySQL. For Postgres, you have to create the new database yourself.<br />
<br />
See [[CDash:Configuration]] for information about more configuration options.<br />
<br />
== Installing CDash ==<br />
<br />
Only CDash's <code>public</code> subdirectory should be exposed to the web. There are two main ways to accomplish this:<br />
<br />
# Create a symbolic link from <code>DocumentRoot</code> to <code>CDash/public</code>.<br />
# Configure <code>DocumentRoot</code> to point directly to <code>CDash/public</code>.<br />
<br />
See [[CDash:Upgrade#Repository_Reorganization_Aftermath|Repository Reorganization Aftermath]] for more details and information.<br />
<br />
=== Permissions ===<br />
<br />
The web server user needs to have write access to the following directories:<br />
* CDash/backup<br />
* CDash/log<br />
* CDash/public/rss<br />
* CDash/public/upload</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Installation&diff=61957CDash:Installation2017-08-30T14:07:55Z<p>Zack: /* Downloading CDash */</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
CDash is a [http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29 LAMP] application, running on [http://www.apache.org/ Apache] using [http://www.php.net/ PHP] to access a [http://www.mysql.com/ MySQL] or [http://www.postgresql.org PostgreSQL] database.<br />
<br />
== System Requirements ==<br />
<br />
CDash requires:<br />
* A web server (Apache, NGINX, IIS) with PHP (5.5.9+) and SSL enabled.<br />
* Access to a MySQL (5.x+) or PostgreSQL (8.3+) database server.<br />
<br />
PHP needs to have the following modules enabled:<br />
* cURL (for site statistics)<br />
* GD (for regression tests)<br />
* mbstring<br />
* pdo-mysql or pdo-postgresql<br />
* XSL<br />
<br />
== Downloading CDash ==<br />
<br />
=== Stable Release ===<br />
The '''current stable release of CDash is 2.4.0''' you can either download it as a zip archive<br />
* [http://public.kitware.com/Wiki/File:CDash-2-4-0.zip CDash-2.4.0.zip]<br />
* or as a tag from the [https://github.com/Kitware/CDash.git GIT] repository:<br />
git clone https://github.com/Kitware/CDash.git<br />
git checkout v2.4.0-prebuilt<br />
<br />
==== Previous versions of CDash ====<br />
* '''2.2''': [http://www.cdash.org/download/CDash-2.2.2.zip CDash-2.0.2.zip] or git checkout Release-2-2-2<br />
* '''2.0''': [http://www.cdash.org/download/CDash-2.0.2.zip CDash-2.0.2.zip] or git checkout Release-2-0-2<br />
* '''1.8''': [http://www.cdash.org/download/CDash-1.8.2.zip CDash-1.8.2.zip] or git checkout Release-1-8-2<br />
* '''1.6''': [http://www.cdash.org/download/CDash-1.6.4.zip CDash-1.6.4.zip] or git checkout Release-1-6-4<br />
* '''1.4''': [http://www.cdash.org/download/CDash-1.4.1.zip CDash-1.4.2.zip] or git checkout Release-1-4-2<br />
* '''1.2''': [http://www.cdash.org/download/CDash-1.2.1.zip CDash-1.2.1.zip] or git checkout Release-1-2-1<br />
* '''1.0''': [http://www.cdash.org/download/CDash-1.0.zip CDash-1.0.zip] or git checkout Release-1-0-2<br />
* '''0.8''': [http://www.cdash.org/download/CDash-0.8.zip CDash-0.8.zip] or git checkout Release-0-8<br />
<br />
=== GIT Development version ===<br />
<br />
CDash uses [https://getcomposer.org/ composer] and [https://www.npmjs.com/ npm] to manage its 3rd party dependencies.<br />
<br />
We provide two developments branches, <code>master</code> and <code>prebuilt</code>. If you're working with the <code>master</code> branch, then you have to run composer & npm yourself. The <code>prebuilt</code> branch has these dependencies already downloaded for you.<br />
<br />
==== master ====<br />
<br />
Use the <code>master</code> branch if you'd like to modify CDash or contribute to its development.<br />
git clone https://github.com/Kitware/CDash.git CDash<br />
git checkout master<br />
curl -sS https://getcomposer.org/installer | php <br />
php composer.phar install<br />
npm install<br />
node_modules/.bin/gulp<br />
<br />
==== prebuilt ====<br />
<br />
The <code>prebuilt</code> branch is a good choice if you'd like to use new features in CDash on a production server.<br />
git clone https://github.com/Kitware/CDash.git CDash<br />
git checkout prebuilt<br />
<br />
== Configuring CDash ==<br />
<br />
Create <code>CDash/config/config.local.php</code> and specify the following database settings.<br />
<br />
// Hostname of the database server or name of unix socket<br />
$CDASH_DB_HOST = 'localhost';<br />
// Login for database access<br />
$CDASH_DB_LOGIN = 'root';<br />
// Port for the database (leave empty to use default)<br />
$CDASH_DB_PORT = '';<br />
// Password for database access<br />
$CDASH_DB_PASS = '';<br />
// Name of the database<br />
$CDASH_DB_NAME = 'cdash';<br />
// Database type<br />
$CDASH_DB_TYPE = 'mysql';<br />
// Must be one of host, unix_socket<br />
$CDASH_DB_CONNECTION_TYPE = 'host';<br />
<br />
This allows CDash to connect to your database server.<br />
<br />
CDash can create a new database for you if you are using MySQL. For Postgres, you have to create the new database yourself.<br />
<br />
See [[CDash:Configuration]] for information about more configuration options.<br />
<br />
== Installing CDash ==<br />
<br />
Only CDash's <code>public</code> subdirectory should be exposed to the web. There are two main ways to accomplish this:<br />
<br />
# Create a symbolic link from <code>DocumentRoot</code> to <code>CDash/public</code>.<br />
# Configure <code>DocumentRoot</code> to point directly to <code>CDash/public</code>.<br />
<br />
See [[CDash:Upgrade#Repository_Reorganization_Aftermath|Repository Reorganization Aftermath]] for more details and information.<br />
<br />
=== Permissions ===<br />
<br />
The web server user needs to have write access to the following directories:<br />
* CDash/backup<br />
* CDash/log<br />
* CDash/public/rss<br />
* CDash/public/upload</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash&diff=61956CDash2017-08-30T14:07:10Z<p>Zack: </p>
<hr />
<div>=Documentation=<br />
== Users Documentation ==<br />
* [[CDash:Installation|CDash Installation]]<br />
* [[CDash:Configuration|CDash Configuration]]<br />
* [[CDash:Upgrade|Upgrading CDash]]<br />
* [[CDash:Documentation|User's guide]]<br />
* [[CDash:Administration|Administrator's guide]]<br />
* [[CDash:iPhone|iPhone guide]]<br />
* [[CDash:API|Web API]]<br />
* [[CTest:Using_CTEST_and_CDASH_without_CMAKE | Using CTest/CDash without CMake]]<br />
* [[CDash:Build_Management | Build management]]<br />
* [[CDash:EmailSettingsOverview | Overview of Email Settings]]<br />
<br />
== Developers Documentation ==<br />
* [[CDash:CodingRules|Coding rules]]<br />
* [[CDash:XML|XML Schema]]<br />
* [[CDash:Design|Design guide]]<br />
* [[CDash:Database|Database]]<br />
* [[CDash:Testing|Testing CDash]]<br />
* [[CDash:Tagging|Releasing a new CDash]]<br />
* [[CDash:Prebuilt|Updating the prebuilt branch]]<br />
<br />
= FAQ =<br />
* [[CDash:FAQ|CDash FAQ]]<br />
* [[CDash:BuildEmailNotification|Build Email Notification]]<br />
<br />
=Miscellaneous=<br />
* [[CDash:ExternalImport|Syncing two CDash instances]]<br />
* [[CDash:Dart2AndCDashSubmission|Simultaneous Dart2 and CDash Submission]]</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Configuration&diff=61955CDash:Configuration2017-08-30T14:05:53Z<p>Zack: </p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
The system configuration is stored in <tt>.../CDash/config/config.php</tt>, however it's recommended to create a '''config.local.php''' in the same directory that contains '''''only''''' the variables you wish to change. Doing so will prevent any changes you make from being overwritten when CDash is upgraded and config.php is re-created.<br />
<br />
Please note that CDash will read the config.php file first, and then config.local.php. Any variables that are changed in config.local.php will take precedence.<br />
<br />
'''WARNING: If creating the config.local.php from config.php make sure you DELETE any text after the 'DO NOT EDIT AFTER THIS LINE' otherwise your configuration file will be referencing each other. Ideally config.local.php should contain ONLY the variables you have modified.'''<br />
<br />
= SQL Database =<br />
If you are running the MySQL database on the same server as the Apache web server the defaults should work with no changes:<br />
<br />
// Hostname of the MySQL database <br />
$CDASH_DB_HOST = 'localhost';<br />
<br />
// Login for MySQL database access<br />
$CDASH_DB_LOGIN = 'root';<br />
<br />
// Password for MySQL database access<br />
$CDASH_DB_PASS = '';<br />
<br />
// Name of the MySQL database<br />
$CDASH_DB_NAME = 'cdash';<br />
If your MySQL (>= v5) server is set to ''strict'' mode, CDash will not work! The reason is that in strict mode, integer columns will not accept the empty string "" as 0 (zero). "" is what the CDash forms currently return for unchecked checkboxes. You'll have to remove the setting <code>STRICT_TRANS_TABLES</code> from the global sql mode parameter. You can query the current setting like this: <code>SELECT @@global.sql_mode;</code><br />
<br />
For more information and more specific settings see the [http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html MySQL sql mode documentation].<br />
<br />
If you have just installed MySQL don't forget to start it:<br />
<br />
rcmysql start<br />
<br />
= PostgreSQL Database =<br />
If you are running the PostgreSQL database read the previous MySQL section about configuring the database access.<br />
You will also need to tell CDash to use PostgreSQL driver:<br />
<br />
// Database type (empty means mysql)<br />
$CDASH_DB_TYPE = 'pgsql';<br />
<br />
Here is list of packages necessary on ubuntu<br />
<br />
sudo apt-get install php-pear<br />
sudo pecl install pdo <br />
sudo apt-get install php5-dev<br />
sudo pecl install pdo<br />
sudo pecl install pdo_pgsql<br />
<br />
= Email =<br />
You should probably edit the default email addresses:<br />
<br />
// Default from email<br />
$CDASH_EMAILADMIN = 'admin@cdash.org';<br />
$CDASH_EMAIL_FROM = 'admin@cdash.org';<br />
$CDASH_EMAIL_REPLY = 'noreply@cdash.org';<br />
<br />
= LDAP =<br />
As of CDash 1.4, authentication to an LDAP database can be performed.<br />
This requires the ldap module for php. The variables to define:<br />
<br />
$CDASH_USE_LDAP='1'; // turn this to 1 for LDAP authentication<br />
$CDASH_LDAP_HOSTNAME='localhost'; // hostname of the LDAP server<br />
$CDASH_LDAP_BASEDN='ou=people,dc=organization,dc=com'; // Base DN<br />
$CDASH_LDAP_PROTOCOL_VERSION='3'; // LDAP protocol version<br />
<br />
Note that the administrator (first user to install CDash) is always stored in the database.<br />
<br />
= Backup directory =<br />
The backup/log directory by default is placed in <tt>.../CDash/backup</tt>, this must be made writable by the account that you run Apache under (typically wwwrun or www-data), you can move the directory via:<br />
<br />
// Backup directory<br />
$CDASH_BACKUP_DIRECTORY = 'backup';<br />
<br />
= Removing registration =<br />
<br />
The registration can be disabled globally from CDash.<br />
<br />
// Doesn't provide registration links<br />
$CDASH_NO_REGISTRATION = '1';<br />
<br />
= Cookie expiration time =<br />
As of CDash 1.2 the login cookie time can be set in the config.php. The default is set to 1 hour.<br />
<br />
// Duration of the cookie session (in seconds)<br />
$CDASH_COOKIE_EXPIRATION_TIME = '3600'<br />
<br />
This allows the browser to remember the login/password of the user.<br />
'''On a public computer it is recommended to always log out'''<br />
<br />
= Google Maps =<br />
'''As of February of 2014, these links no longer work and I couldn't figure out where to point them. A workaround is just to insert the empty string instead of a key.'''<br />
<br />
CDash can use [http://code.google.com/apis/maps/ Google maps] to display the location of submission sites. CDash comes with Kitware's key code which won't work for your site's URL. Every site that uses Google maps requires its own [http://code.google.com/apis/maps/signup.html Google maps key] which you should obtain from Google (it's free), use this style URL when applying for a key:<br />
<br />
http://mysite.org/CDash<br />
<br />
Paste your newly obtained key in place of Kitware's:<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['localhost'] = 'paste key here';<br />
<br />
You may also add multiple keys (wighout the http://) and they will get matched by ''$_SERVER['HTTP_HOST']''<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['www.vtk.org'] = 'paste key here';<br />
$CDASH_GOOGLE_MAP_API_KEY['www.cdash.org'] = 'paste another key here';<br />
<br />
If your submission machines use private IP addresses you can add default location information, e.g. for all machines in the 192.x.x.x network (use http://maps.google.com to obtain your location):<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "192.*","latitude" => "42.6612","longitude" => "-73.7689");<br />
<br />
Sometimes site location are misreported (e.g. the ISP's location is used), you can override these:<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "76.65.240.*","latitude" => "43.667","longitude" => "-79.417");<br />
<br />
You'll probably want to replace the defaults that are present.<br />
<br />
Note: If you use the 192.x.x.x address range ensure you update the location information before submitting from any machines in this subnet, as the location is stored in the database on first submission from a site (but can be subsequently edited from the admin web pages).<br />
<br />
= Google Analytics =<br />
CDash can use [http://www.google.com/analytics/ Google analytics] to monitor site usage. CDash's main <tt>index.php</tt> contains a reference to a default Kitware Google analytics code:<br />
<br />
$CDASH_DEFAULT_GOOGLE_ANALYTICS='UA-701656-6';<br />
<br />
When you configure each project you will have the opportunity to set a per-project Google analytics code.<br />
See [[CDash:Administration#Adding_Google_Analytics | Adding GoogleAnalytics]] for more information.<br />
<br />
= RSS directory =<br />
Ensure that the <tt>.../CDash/rss</tt> (and <tt>.../CDash/backup</tt>) directory is writable by the user account that Apache runs under (typically wwwrun).<br />
<br />
= Production Mode =<br />
In order to disable the installation script, especially when the database is not accessible. You should turn on the option:<br />
<br />
$CDASH_PRODUCTION_MODE = true;<br />
<br />
in your config.local.php</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Configuration&diff=61954CDash:Configuration2017-08-30T14:05:26Z<p>Zack: Created page with "The system configuration is stored in <tt>.../CDash/config/config.php</tt>, however it's recommended to create a '''config.local.php''' in the same directory that contains '''..."</p>
<hr />
<div>The system configuration is stored in <tt>.../CDash/config/config.php</tt>, however it's recommended to create a '''config.local.php''' in the same directory that contains '''''only''''' the variables you wish to change. Doing so will prevent any changes you make from being overwritten when CDash is upgraded and config.php is re-created.<br />
<br />
Please note that CDash will read the config.php file first, and then config.local.php. Any variables that are changed in config.local.php will take precedence.<br />
<br />
'''WARNING: If creating the config.local.php from config.php make sure you DELETE any text after the 'DO NOT EDIT AFTER THIS LINE' otherwise your configuration file will be referencing each other. Ideally config.local.php should contain ONLY the variables you have modified.'''<br />
<br />
= SQL Database =<br />
If you are running the MySQL database on the same server as the Apache web server the defaults should work with no changes:<br />
<br />
// Hostname of the MySQL database <br />
$CDASH_DB_HOST = 'localhost';<br />
<br />
// Login for MySQL database access<br />
$CDASH_DB_LOGIN = 'root';<br />
<br />
// Password for MySQL database access<br />
$CDASH_DB_PASS = '';<br />
<br />
// Name of the MySQL database<br />
$CDASH_DB_NAME = 'cdash';<br />
If your MySQL (>= v5) server is set to ''strict'' mode, CDash will not work! The reason is that in strict mode, integer columns will not accept the empty string "" as 0 (zero). "" is what the CDash forms currently return for unchecked checkboxes. You'll have to remove the setting <code>STRICT_TRANS_TABLES</code> from the global sql mode parameter. You can query the current setting like this: <code>SELECT @@global.sql_mode;</code><br />
<br />
For more information and more specific settings see the [http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html MySQL sql mode documentation].<br />
<br />
If you have just installed MySQL don't forget to start it:<br />
<br />
rcmysql start<br />
<br />
= PostgreSQL Database =<br />
If you are running the PostgreSQL database read the previous MySQL section about configuring the database access.<br />
You will also need to tell CDash to use PostgreSQL driver:<br />
<br />
// Database type (empty means mysql)<br />
$CDASH_DB_TYPE = 'pgsql';<br />
<br />
Here is list of packages necessary on ubuntu<br />
<br />
sudo apt-get install php-pear<br />
sudo pecl install pdo <br />
sudo apt-get install php5-dev<br />
sudo pecl install pdo<br />
sudo pecl install pdo_pgsql<br />
<br />
= Email =<br />
You should probably edit the default email addresses:<br />
<br />
// Default from email<br />
$CDASH_EMAILADMIN = 'admin@cdash.org';<br />
$CDASH_EMAIL_FROM = 'admin@cdash.org';<br />
$CDASH_EMAIL_REPLY = 'noreply@cdash.org';<br />
<br />
= LDAP =<br />
As of CDash 1.4, authentication to an LDAP database can be performed.<br />
This requires the ldap module for php. The variables to define:<br />
<br />
$CDASH_USE_LDAP='1'; // turn this to 1 for LDAP authentication<br />
$CDASH_LDAP_HOSTNAME='localhost'; // hostname of the LDAP server<br />
$CDASH_LDAP_BASEDN='ou=people,dc=organization,dc=com'; // Base DN<br />
$CDASH_LDAP_PROTOCOL_VERSION='3'; // LDAP protocol version<br />
<br />
Note that the administrator (first user to install CDash) is always stored in the database.<br />
<br />
= Backup directory =<br />
The backup/log directory by default is placed in <tt>.../CDash/backup</tt>, this must be made writable by the account that you run Apache under (typically wwwrun or www-data), you can move the directory via:<br />
<br />
// Backup directory<br />
$CDASH_BACKUP_DIRECTORY = 'backup';<br />
<br />
= Removing registration =<br />
<br />
The registration can be disabled globally from CDash.<br />
<br />
// Doesn't provide registration links<br />
$CDASH_NO_REGISTRATION = '1';<br />
<br />
= Cookie expiration time =<br />
As of CDash 1.2 the login cookie time can be set in the config.php. The default is set to 1 hour.<br />
<br />
// Duration of the cookie session (in seconds)<br />
$CDASH_COOKIE_EXPIRATION_TIME = '3600'<br />
<br />
This allows the browser to remember the login/password of the user.<br />
'''On a public computer it is recommended to always log out'''<br />
<br />
= Google Maps =<br />
'''As of February of 2014, these links no longer work and I couldn't figure out where to point them. A workaround is just to insert the empty string instead of a key.'''<br />
<br />
CDash can use [http://code.google.com/apis/maps/ Google maps] to display the location of submission sites. CDash comes with Kitware's key code which won't work for your site's URL. Every site that uses Google maps requires its own [http://code.google.com/apis/maps/signup.html Google maps key] which you should obtain from Google (it's free), use this style URL when applying for a key:<br />
<br />
http://mysite.org/CDash<br />
<br />
Paste your newly obtained key in place of Kitware's:<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['localhost'] = 'paste key here';<br />
<br />
You may also add multiple keys (wighout the http://) and they will get matched by ''$_SERVER['HTTP_HOST']''<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['www.vtk.org'] = 'paste key here';<br />
$CDASH_GOOGLE_MAP_API_KEY['www.cdash.org'] = 'paste another key here';<br />
<br />
If your submission machines use private IP addresses you can add default location information, e.g. for all machines in the 192.x.x.x network (use http://maps.google.com to obtain your location):<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "192.*","latitude" => "42.6612","longitude" => "-73.7689");<br />
<br />
Sometimes site location are misreported (e.g. the ISP's location is used), you can override these:<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "76.65.240.*","latitude" => "43.667","longitude" => "-79.417");<br />
<br />
You'll probably want to replace the defaults that are present.<br />
<br />
Note: If you use the 192.x.x.x address range ensure you update the location information before submitting from any machines in this subnet, as the location is stored in the database on first submission from a site (but can be subsequently edited from the admin web pages).<br />
<br />
= Google Analytics =<br />
CDash can use [http://www.google.com/analytics/ Google analytics] to monitor site usage. CDash's main <tt>index.php</tt> contains a reference to a default Kitware Google analytics code:<br />
<br />
$CDASH_DEFAULT_GOOGLE_ANALYTICS='UA-701656-6';<br />
<br />
When you configure each project you will have the opportunity to set a per-project Google analytics code.<br />
See [[CDash:Administration#Adding_Google_Analytics | Adding GoogleAnalytics]] for more information.<br />
<br />
= RSS directory =<br />
Ensure that the <tt>.../CDash/rss</tt> (and <tt>.../CDash/backup</tt>) directory is writable by the user account that Apache runs under (typically wwwrun).<br />
<br />
= Production Mode =<br />
In order to disable the installation script, especially when the database is not accessible. You should turn on the option:<br />
<br />
$CDASH_PRODUCTION_MODE = true;<br />
<br />
in your config.local.php</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Installation&diff=61953CDash:Installation2017-08-30T14:01:01Z<p>Zack: </p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
CDash is a [http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29 LAMP] application, running on [http://www.apache.org/ Apache] using [http://www.php.net/ PHP] to access a [http://www.mysql.com/ MySQL] or [http://www.postgresql.org PostgreSQL] database.<br />
<br />
== System Requirements ==<br />
<br />
CDash requires:<br />
* A web server (Apache, NGINX, IIS) with PHP (5.5.9+) and SSL enabled.<br />
* Access to a MySQL (5.x+) or PostgreSQL (8.3+) database server.<br />
<br />
PHP needs to have the following modules enabled:<br />
* cURL (for site statistics)<br />
* GD (for regression tests)<br />
* mbstring<br />
* pdo-mysql or pdo-postgresql<br />
* XSL<br />
<br />
== Downloading CDash ==<br />
<br />
=== Stable Release ===<br />
The '''current stable release of CDash is 2.4.0''' you can either download it as a zip archive<br />
* [http://public.kitware.com/Wiki/File:CDash-2-4-0.zip CDash-2.4.0.zip]<br />
* or from the [https://github.com/Kitware/CDash.git GIT] repository 'prebuilt' branch:<br />
git clone https://github.com/Kitware/CDash.git<br />
git checkout v2.4.0-prebuilt<br />
<br />
==== Previous versions of CDash ====<br />
* '''2.2''': [http://www.cdash.org/download/CDash-2.2.2.zip CDash-2.0.2.zip] or git checkout Release-2-2-2<br />
* '''2.0''': [http://www.cdash.org/download/CDash-2.0.2.zip CDash-2.0.2.zip] or git checkout Release-2-0-2<br />
* '''1.8''': [http://www.cdash.org/download/CDash-1.8.2.zip CDash-1.8.2.zip] or git checkout Release-1-8-2<br />
* '''1.6''': [http://www.cdash.org/download/CDash-1.6.4.zip CDash-1.6.4.zip] or git checkout Release-1-6-4<br />
* '''1.4''': [http://www.cdash.org/download/CDash-1.4.1.zip CDash-1.4.2.zip] or git checkout Release-1-4-2<br />
* '''1.2''': [http://www.cdash.org/download/CDash-1.2.1.zip CDash-1.2.1.zip] or git checkout Release-1-2-1<br />
* '''1.0''': [http://www.cdash.org/download/CDash-1.0.zip CDash-1.0.zip] or git checkout Release-1-0-2<br />
* '''0.8''': [http://www.cdash.org/download/CDash-0.8.zip CDash-0.8.zip] or git checkout Release-0-8<br />
<br />
=== GIT Development version ===<br />
<br />
CDash uses [https://getcomposer.org/ composer] and [https://www.npmjs.com/ npm] to manage its 3rd party dependencies.<br />
<br />
We provide two developments branches, <code>master</code> and <code>prebuilt</code>. If you're working with the <code>master</code> branch, then you have to run composer & npm yourself. The <code>prebuilt</code> branch has these dependencies already downloaded for you.<br />
<br />
==== master ====<br />
<br />
Use the <code>master</code> branch if you'd like to modify CDash or contribute to its development.<br />
git clone https://github.com/Kitware/CDash.git CDash<br />
git checkout master<br />
curl -sS https://getcomposer.org/installer | php <br />
php composer.phar install<br />
npm install<br />
node_modules/.bin/gulp<br />
<br />
==== prebuilt ====<br />
<br />
The <code>prebuilt</code> branch is a good choice if you'd like to use new features in CDash on a production server.<br />
git clone https://github.com/Kitware/CDash.git CDash<br />
git checkout prebuilt<br />
<br />
== Configuring CDash ==<br />
<br />
Create <code>CDash/config/config.local.php</code> and specify the following database settings.<br />
<br />
// Hostname of the database server or name of unix socket<br />
$CDASH_DB_HOST = 'localhost';<br />
// Login for database access<br />
$CDASH_DB_LOGIN = 'root';<br />
// Port for the database (leave empty to use default)<br />
$CDASH_DB_PORT = '';<br />
// Password for database access<br />
$CDASH_DB_PASS = '';<br />
// Name of the database<br />
$CDASH_DB_NAME = 'cdash';<br />
// Database type<br />
$CDASH_DB_TYPE = 'mysql';<br />
// Must be one of host, unix_socket<br />
$CDASH_DB_CONNECTION_TYPE = 'host';<br />
<br />
This allows CDash to connect to your database server.<br />
<br />
CDash can create a new database for you if you are using MySQL. For Postgres, you have to create the new database yourself.<br />
<br />
See [[CDash:Configuration]] for information about more configuration options.<br />
<br />
== Installing CDash ==<br />
<br />
Only CDash's <code>public</code> subdirectory should be exposed to the web. There are two main ways to accomplish this:<br />
<br />
# Create a symbolic link from <code>DocumentRoot</code> to <code>CDash/public</code>.<br />
# Configure <code>DocumentRoot</code> to point directly to <code>CDash/public</code>.<br />
<br />
See [[CDash:Upgrade#Repository_Reorganization_Aftermath|Repository Reorganization Aftermath]] for more details and information.<br />
<br />
=== Permissions ===<br />
<br />
The web server user needs to have write access to the following directories:<br />
* CDash/backup<br />
* CDash/log<br />
* CDash/public/rss<br />
* CDash/public/upload</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Installation&diff=61952CDash:Installation2017-08-30T13:51:57Z<p>Zack: /* Installing CDash */</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
CDash is a [http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29 LAMP] application, running on [http://www.apache.org/ Apache] using [http://www.php.net/ PHP] to access a [http://www.mysql.com/ MySQL] or [http://www.postgresql.org PostgreSQL] database.<br />
<br />
== System Requirements ==<br />
<br />
CDash requires:<br />
* A web server (Apache, NGINX, IIS) with PHP (5.5.9+) and SSL enabled.<br />
* Access to a MySQL (5.x+) or PostgreSQL (8.3+) database server.<br />
<br />
PHP needs to have the following modules enabled:<br />
* cURL (for site statistics)<br />
* GD (for regression tests)<br />
* mbstring<br />
* pdo-mysql or pdo-postgresql<br />
* XSL<br />
<br />
== Downloading CDash ==<br />
<br />
=== Stable Release ===<br />
The '''current stable release of CDash is 2.4.0''' you can either download it as a zip archive<br />
* [http://public.kitware.com/Wiki/File:CDash-2-4-0.zip CDash-2.4.0.zip]<br />
* or from the [https://github.com/Kitware/CDash.git GIT] repository 'prebuilt' branch:<br />
git clone https://github.com/Kitware/CDash.git<br />
git checkout v2.4.0-prebuilt<br />
<br />
==== Previous versions of CDash ====<br />
* '''2.2''': [http://www.cdash.org/download/CDash-2.2.2.zip CDash-2.0.2.zip] or git checkout Release-2-2-2<br />
* '''2.0''': [http://www.cdash.org/download/CDash-2.0.2.zip CDash-2.0.2.zip] or git checkout Release-2-0-2<br />
* '''1.8''': [http://www.cdash.org/download/CDash-1.8.2.zip CDash-1.8.2.zip] or git checkout Release-1-8-2<br />
* '''1.6''': [http://www.cdash.org/download/CDash-1.6.4.zip CDash-1.6.4.zip] or git checkout Release-1-6-4<br />
* '''1.4''': [http://www.cdash.org/download/CDash-1.4.1.zip CDash-1.4.2.zip] or git checkout Release-1-4-2<br />
* '''1.2''': [http://www.cdash.org/download/CDash-1.2.1.zip CDash-1.2.1.zip] or git checkout Release-1-2-1<br />
* '''1.0''': [http://www.cdash.org/download/CDash-1.0.zip CDash-1.0.zip] or git checkout Release-1-0-2<br />
* '''0.8''': [http://www.cdash.org/download/CDash-0.8.zip CDash-0.8.zip] or git checkout Release-0-8<br />
<br />
=== GIT Development version ===<br />
<br />
CDash uses [https://getcomposer.org/ composer] and [https://www.npmjs.com/ npm] to manage its 3rd party dependencies.<br />
<br />
We provide two developments branches, <code>master</code> and <code>prebuilt</code>. If you're working with the <code>master</code> branch, then you have to run composer & npm yourself. The <code>prebuilt</code> branch has these dependencies already downloaded for you.<br />
<br />
==== master ====<br />
<br />
Use the <code>master</code> branch if you'd like to modify CDash or contribute to its development.<br />
git clone https://github.com/Kitware/CDash.git CDash<br />
git checkout master<br />
curl -sS https://getcomposer.org/installer | php <br />
php composer.phar install<br />
npm install<br />
node_modules/.bin/gulp<br />
<br />
==== prebuilt ====<br />
<br />
The <code>prebuilt</code> branch is a good choice if you'd like to use new features in CDash on a production server.<br />
git clone https://github.com/Kitware/CDash.git CDash<br />
git checkout prebuilt<br />
<br />
== Installing CDash ==<br />
<br />
Only CDash's <code>public</code> subdirectory should be exposed to the web. There are two main ways to accomplish this:<br />
<br />
# Create a symbolic link from <code>DocumentRoot</code> to <code>CDash/public</code>.<br />
# Configure <code>DocumentRoot</code> to point directly to <code>CDash/public</code>.<br />
<br />
See [[CDash:Upgrade#Repository_Reorganization_Aftermath|Repository Reorganization Aftermath]] for more details and information.<br />
<br />
=== permissions ===<br />
<br />
The web server user needs to have write access to the following directories:<br />
* CDash/backup<br />
* CDash/log<br />
* CDash/public/rss<br />
* CDash/public/upload<br />
<br />
== Configuration ==<br />
The system configuration is stored in <tt>.../CDash/config/config.php</tt>, however it's recommended to create a '''config.local.php''' in the same directory that contains only the variables you wish to change. Doing so will prevent any changes you make from being overwritten when CDash is upgraded and config.php is re-created.<br />
<br />
Please note that CDash will read the config.php file first, and then config.local.php. Any variables that are changed in config.local.php will take precedence.<br />
<br />
'''WARNING: If creating the config.local.php from config.php make sure you DELETE any text after the 'DO NOT EDIT AFTER THIS LINE' otherwise your configuration file will be referencing each other. Ideally config.local.php should contain ONLY the variables you have modified.'''<br />
<br />
=== SQL Database ===<br />
If you are running the MySQL database on the same server as the Apache web server the defaults should work with no changes:<br />
<br />
// Hostname of the MySQL database <br />
$CDASH_DB_HOST = 'localhost';<br />
<br />
// Login for MySQL database access<br />
$CDASH_DB_LOGIN = 'root';<br />
<br />
// Password for MySQL database access<br />
$CDASH_DB_PASS = '';<br />
<br />
// Name of the MySQL database<br />
$CDASH_DB_NAME = 'cdash';<br />
<br />
If your MySQL (>= v5) server is set to ''strict'' mode, CDash will not work! The reason is that in strict mode, integer columns will not accept the empty string "" as 0 (zero). "" is what the CDash forms currently return for unchecked checkboxes. You'll have to remove the setting <code>STRICT_TRANS_TABLES</code> from the global sql mode parameter. You can query the current setting like this: <code>SELECT @@global.sql_mode;</code><br />
<br />
For more information and more specific settings see the [http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html MySQL sql mode documentation].<br />
<br />
If you have just installed MySQL don't forget to start it:<br />
<br />
rcmysql start<br />
<br />
=== Ubuntu Dependencies ===<br />
<br />
Here is a list of packages required on Ubuntu 12.04:<br />
sudo apt-get install apache2 mysql-server php5 php5-mysql php5-xsl php5-curl php5-gd<br />
<br />
Make sure your apache2 configuration pulls in libapache2-mod-php5 and NOT libapache2-mod-php5filter as this will cause PUT requests to fail and you will not be able to submit anything to your dashboard.<br />
<br />
=== PostgreSQL Database ===<br />
If you are running the PostgreSQL database read the previous MySQL section about configuring the database access.<br />
You will also need to tell CDash to use PostgreSQL driver:<br />
<br />
// Database type (empty means mysql)<br />
$CDASH_DB_TYPE = 'pgsql';<br />
<br />
Here is list of packages necessary on ubuntu<br />
<br />
sudo apt-get install php-pear<br />
sudo pecl install pdo <br />
sudo apt-get install php5-dev<br />
sudo pecl install pdo<br />
sudo pecl install pdo_pgsql<br />
<br />
=== Email ===<br />
You should probably edit the default email addresses:<br />
<br />
// Default from email<br />
$CDASH_EMAILADMIN = 'admin@cdash.org';<br />
$CDASH_EMAIL_FROM = 'admin@cdash.org';<br />
$CDASH_EMAIL_REPLY = 'noreply@cdash.org';<br />
<br />
=== LDAP ===<br />
As of CDash 1.4, authentication to an LDAP database can be performed.<br />
This requires the ldap module for php. The variables to define:<br />
<br />
$CDASH_USE_LDAP='1'; // turn this to 1 for LDAP authentication<br />
$CDASH_LDAP_HOSTNAME='localhost'; // hostname of the LDAP server<br />
$CDASH_LDAP_BASEDN='ou=people,dc=organization,dc=com'; // Base DN<br />
$CDASH_LDAP_PROTOCOL_VERSION='3'; // LDAP protocol version<br />
<br />
Note that the administrator (first user to install CDash) is always stored in the database.<br />
<br />
=== Backup directory ===<br />
The backup/log directory by default is placed in <tt>.../CDash/backup</tt>, this must be made writable by the account that you run Apache under (typically wwwrun or www-data), you can move the directory via:<br />
<br />
// Backup directory<br />
$CDASH_BACKUP_DIRECTORY = 'backup';<br />
<br />
=== Removing registration ===<br />
<br />
The registration can be disabled globally from CDash.<br />
<br />
// Doesn't provide registration links<br />
$CDASH_NO_REGISTRATION = '1';<br />
<br />
=== Cookie expiration time ===<br />
As of CDash 1.2 the login cookie time can be set in the config.php. The default is set to 1 hour.<br />
<br />
// Duration of the cookie session (in seconds)<br />
$CDASH_COOKIE_EXPIRATION_TIME = '3600'<br />
<br />
This allows the browser to remember the login/password of the user.<br />
'''On a public computer it is recommended to always log out'''<br />
<br />
=== Google Maps ===<br />
'''As of February of 2014, these links no longer work and I couldn't figure out where to point them. A workaround is just to insert the empty string instead of a key.'''<br />
<br />
CDash can use [http://code.google.com/apis/maps/ Google maps] to display the location of submission sites. CDash comes with Kitware's key code which won't work for your site's URL. Every site that uses Google maps requires its own [http://code.google.com/apis/maps/signup.html Google maps key] which you should obtain from Google (it's free), use this style URL when applying for a key:<br />
<br />
http://mysite.org/CDash<br />
<br />
Paste your newly obtained key in place of Kitware's:<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['localhost'] = 'paste key here';<br />
<br />
You may also add multiple keys (wighout the http://) and they will get matched by ''$_SERVER['HTTP_HOST']''<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['www.vtk.org'] = 'paste key here';<br />
$CDASH_GOOGLE_MAP_API_KEY['www.cdash.org'] = 'paste another key here';<br />
<br />
If your submission machines use private IP addresses you can add default location information, e.g. for all machines in the 192.x.x.x network (use http://maps.google.com to obtain your location):<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "192.*","latitude" => "42.6612","longitude" => "-73.7689");<br />
<br />
Sometimes site location are misreported (e.g. the ISP's location is used), you can override these:<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "76.65.240.*","latitude" => "43.667","longitude" => "-79.417");<br />
<br />
You'll probably want to replace the defaults that are present.<br />
<br />
Note: If you use the 192.x.x.x address range ensure you update the location information before submitting from any machines in this subnet, as the location is stored in the database on first submission from a site (but can be subsequently edited from the admin web pages).<br />
<br />
=== Google Analytics ===<br />
CDash can use [http://www.google.com/analytics/ Google analytics] to monitor site usage. CDash's main <tt>index.php</tt> contains a reference to a default Kitware Google analytics code:<br />
<br />
$CDASH_DEFAULT_GOOGLE_ANALYTICS='UA-701656-6';<br />
<br />
When you configure each project you will have the opportunity to set a per-project Google analytics code.<br />
See [[CDash:Administration#Adding_Google_Analytics | Adding GoogleAnalytics]] for more information.<br />
<br />
== RSS directory ==<br />
Ensure that the <tt>.../CDash/rss</tt> (and <tt>.../CDash/backup</tt>) directory is writable by the user account that Apache runs under (typically wwwrun).<br />
<br />
== Apache ==<br />
Ensure that the <tt>/srv/www/htdocs/CDash</tt> tree is accessible, you may have to add the following to your <tt>/etc/apache2/conf.d</tt> directory:<br />
<br />
<tt>cdash.conf</tt>:<br />
<br />
<Directory /srv/www/htdocs/CDash><br />
Order allow,deny<br />
Allow from all<br />
</Directory><br />
<br />
You may need to restart Apache:<br />
<br />
rcapache2 restart<br />
<br />
or<br />
<br />
service apache2 restart<br />
<br />
== Creating database ==<br />
Access your website to start the install process:<br />
<br />
http://mywebsite.com/CDash<br />
<br />
The first step will confirm the host login and password for the database, the default admin account and password are also displayed, make a note of these as you'll need them later, as its easy to skip past this step missing them (you can always find them in <tt>.../CDash/sql/cdashdata.sql</tt>).<br />
<br />
== Production Mode ==<br />
In order to disable the installation script, especially when the database is not accessible. You should turn on the option:<br />
<br />
$CDASH_PRODUCTION_MODE = true;<br />
<br />
in your config.local.php<br />
<br />
== GIT support ==<br />
CDash 1.7 and higher are supporting GIT for daily update and also support the main GIT viewer (github, gittorious, etc...). In order to fetch the daily update, a bare (--bare) repository should be created for each project on the CDash server. Every night, CDash will fetch or clone the repository and parse the result of the 'git whatchanged' command. In order to allow git support.<br />
<br />
* Create a 'git' directory and give the web server full write access to it<br />
* Edit your config.local.php and add these values corresponding to your system configuration<br />
<br />
// Define the git command<br />
$CDASH_GIT_COMMAND = 'git';<br />
// The default git directory where the bare repositories should be created<br />
$CDASH_DEFAULT_GIT_DIRECTORY = 'git';<br />
<br />
<br />
== See Also ==<br />
[http://www.cdash.org/cdash/resources/software.html The CDash web site's brief install instructions]</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Installation&diff=61951CDash:Installation2017-08-30T13:48:33Z<p>Zack: </p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
CDash is a [http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29 LAMP] application, running on [http://www.apache.org/ Apache] using [http://www.php.net/ PHP] to access a [http://www.mysql.com/ MySQL] or [http://www.postgresql.org PostgreSQL] database.<br />
<br />
== System Requirements ==<br />
<br />
CDash requires:<br />
* A web server (Apache, NGINX, IIS) with PHP (5.5.9+) and SSL enabled.<br />
* Access to a MySQL (5.x+) or PostgreSQL (8.3+) database server.<br />
<br />
PHP needs to have the following modules enabled:<br />
* cURL (for site statistics)<br />
* GD (for regression tests)<br />
* mbstring<br />
* pdo-mysql or pdo-postgresql<br />
* XSL<br />
<br />
== Downloading CDash ==<br />
<br />
=== Stable Release ===<br />
The '''current stable release of CDash is 2.4.0''' you can either download it as a zip archive<br />
* [http://public.kitware.com/Wiki/File:CDash-2-4-0.zip CDash-2.4.0.zip]<br />
* or from the [https://github.com/Kitware/CDash.git GIT] repository 'prebuilt' branch:<br />
git clone https://github.com/Kitware/CDash.git<br />
git checkout v2.4.0-prebuilt<br />
<br />
==== Previous versions of CDash ====<br />
* '''2.2''': [http://www.cdash.org/download/CDash-2.2.2.zip CDash-2.0.2.zip] or git checkout Release-2-2-2<br />
* '''2.0''': [http://www.cdash.org/download/CDash-2.0.2.zip CDash-2.0.2.zip] or git checkout Release-2-0-2<br />
* '''1.8''': [http://www.cdash.org/download/CDash-1.8.2.zip CDash-1.8.2.zip] or git checkout Release-1-8-2<br />
* '''1.6''': [http://www.cdash.org/download/CDash-1.6.4.zip CDash-1.6.4.zip] or git checkout Release-1-6-4<br />
* '''1.4''': [http://www.cdash.org/download/CDash-1.4.1.zip CDash-1.4.2.zip] or git checkout Release-1-4-2<br />
* '''1.2''': [http://www.cdash.org/download/CDash-1.2.1.zip CDash-1.2.1.zip] or git checkout Release-1-2-1<br />
* '''1.0''': [http://www.cdash.org/download/CDash-1.0.zip CDash-1.0.zip] or git checkout Release-1-0-2<br />
* '''0.8''': [http://www.cdash.org/download/CDash-0.8.zip CDash-0.8.zip] or git checkout Release-0-8<br />
<br />
=== GIT Development version ===<br />
<br />
CDash uses [https://getcomposer.org/ composer] and [https://www.npmjs.com/ npm] to manage its 3rd party dependencies.<br />
<br />
We provide two developments branches, <code>master</code> and <code>prebuilt</code>. If you're working with the <code>master</code> branch, then you have to run composer & npm yourself. The <code>prebuilt</code> branch has these dependencies already downloaded for you.<br />
<br />
==== master ====<br />
<br />
Use the <code>master</code> branch if you'd like to modify CDash or contribute to its development.<br />
git clone https://github.com/Kitware/CDash.git CDash<br />
git checkout master<br />
curl -sS https://getcomposer.org/installer | php <br />
php composer.phar install<br />
npm install<br />
node_modules/.bin/gulp<br />
<br />
==== prebuilt ====<br />
<br />
The <code>prebuilt</code> branch is a good choice if you'd like to use new features in CDash on a production server.<br />
git clone https://github.com/Kitware/CDash.git CDash<br />
git checkout prebuilt<br />
<br />
== Installing CDash ==<br />
<br />
Only CDash's <code>public</code> subdirectory should be exposed to the web. There are two main ways to accomplish this:<br />
<br />
# Create a symbolic link from <code>DocumentRoot</code> to <code>CDash/public</code>.<br />
# Configure <code>DocumentRoot</code> to point directly to <code>CDash/public</code>.<br />
<br />
See [[CDash:Upgrade#Repository_Reorganization_Aftermath|Repository Reorganization Aftermath]] for more details and information.<br />
<br />
== Configuration ==<br />
The system configuration is stored in <tt>.../CDash/config/config.php</tt>, however it's recommended to create a '''config.local.php''' in the same directory that contains only the variables you wish to change. Doing so will prevent any changes you make from being overwritten when CDash is upgraded and config.php is re-created.<br />
<br />
Please note that CDash will read the config.php file first, and then config.local.php. Any variables that are changed in config.local.php will take precedence.<br />
<br />
'''WARNING: If creating the config.local.php from config.php make sure you DELETE any text after the 'DO NOT EDIT AFTER THIS LINE' otherwise your configuration file will be referencing each other. Ideally config.local.php should contain ONLY the variables you have modified.'''<br />
<br />
=== SQL Database ===<br />
If you are running the MySQL database on the same server as the Apache web server the defaults should work with no changes:<br />
<br />
// Hostname of the MySQL database <br />
$CDASH_DB_HOST = 'localhost';<br />
<br />
// Login for MySQL database access<br />
$CDASH_DB_LOGIN = 'root';<br />
<br />
// Password for MySQL database access<br />
$CDASH_DB_PASS = '';<br />
<br />
// Name of the MySQL database<br />
$CDASH_DB_NAME = 'cdash';<br />
<br />
If your MySQL (>= v5) server is set to ''strict'' mode, CDash will not work! The reason is that in strict mode, integer columns will not accept the empty string "" as 0 (zero). "" is what the CDash forms currently return for unchecked checkboxes. You'll have to remove the setting <code>STRICT_TRANS_TABLES</code> from the global sql mode parameter. You can query the current setting like this: <code>SELECT @@global.sql_mode;</code><br />
<br />
For more information and more specific settings see the [http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html MySQL sql mode documentation].<br />
<br />
If you have just installed MySQL don't forget to start it:<br />
<br />
rcmysql start<br />
<br />
=== Ubuntu Dependencies ===<br />
<br />
Here is a list of packages required on Ubuntu 12.04:<br />
sudo apt-get install apache2 mysql-server php5 php5-mysql php5-xsl php5-curl php5-gd<br />
<br />
Make sure your apache2 configuration pulls in libapache2-mod-php5 and NOT libapache2-mod-php5filter as this will cause PUT requests to fail and you will not be able to submit anything to your dashboard.<br />
<br />
=== PostgreSQL Database ===<br />
If you are running the PostgreSQL database read the previous MySQL section about configuring the database access.<br />
You will also need to tell CDash to use PostgreSQL driver:<br />
<br />
// Database type (empty means mysql)<br />
$CDASH_DB_TYPE = 'pgsql';<br />
<br />
Here is list of packages necessary on ubuntu<br />
<br />
sudo apt-get install php-pear<br />
sudo pecl install pdo <br />
sudo apt-get install php5-dev<br />
sudo pecl install pdo<br />
sudo pecl install pdo_pgsql<br />
<br />
=== Email ===<br />
You should probably edit the default email addresses:<br />
<br />
// Default from email<br />
$CDASH_EMAILADMIN = 'admin@cdash.org';<br />
$CDASH_EMAIL_FROM = 'admin@cdash.org';<br />
$CDASH_EMAIL_REPLY = 'noreply@cdash.org';<br />
<br />
=== LDAP ===<br />
As of CDash 1.4, authentication to an LDAP database can be performed.<br />
This requires the ldap module for php. The variables to define:<br />
<br />
$CDASH_USE_LDAP='1'; // turn this to 1 for LDAP authentication<br />
$CDASH_LDAP_HOSTNAME='localhost'; // hostname of the LDAP server<br />
$CDASH_LDAP_BASEDN='ou=people,dc=organization,dc=com'; // Base DN<br />
$CDASH_LDAP_PROTOCOL_VERSION='3'; // LDAP protocol version<br />
<br />
Note that the administrator (first user to install CDash) is always stored in the database.<br />
<br />
=== Backup directory ===<br />
The backup/log directory by default is placed in <tt>.../CDash/backup</tt>, this must be made writable by the account that you run Apache under (typically wwwrun or www-data), you can move the directory via:<br />
<br />
// Backup directory<br />
$CDASH_BACKUP_DIRECTORY = 'backup';<br />
<br />
=== Removing registration ===<br />
<br />
The registration can be disabled globally from CDash.<br />
<br />
// Doesn't provide registration links<br />
$CDASH_NO_REGISTRATION = '1';<br />
<br />
=== Cookie expiration time ===<br />
As of CDash 1.2 the login cookie time can be set in the config.php. The default is set to 1 hour.<br />
<br />
// Duration of the cookie session (in seconds)<br />
$CDASH_COOKIE_EXPIRATION_TIME = '3600'<br />
<br />
This allows the browser to remember the login/password of the user.<br />
'''On a public computer it is recommended to always log out'''<br />
<br />
=== Google Maps ===<br />
'''As of February of 2014, these links no longer work and I couldn't figure out where to point them. A workaround is just to insert the empty string instead of a key.'''<br />
<br />
CDash can use [http://code.google.com/apis/maps/ Google maps] to display the location of submission sites. CDash comes with Kitware's key code which won't work for your site's URL. Every site that uses Google maps requires its own [http://code.google.com/apis/maps/signup.html Google maps key] which you should obtain from Google (it's free), use this style URL when applying for a key:<br />
<br />
http://mysite.org/CDash<br />
<br />
Paste your newly obtained key in place of Kitware's:<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['localhost'] = 'paste key here';<br />
<br />
You may also add multiple keys (wighout the http://) and they will get matched by ''$_SERVER['HTTP_HOST']''<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['www.vtk.org'] = 'paste key here';<br />
$CDASH_GOOGLE_MAP_API_KEY['www.cdash.org'] = 'paste another key here';<br />
<br />
If your submission machines use private IP addresses you can add default location information, e.g. for all machines in the 192.x.x.x network (use http://maps.google.com to obtain your location):<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "192.*","latitude" => "42.6612","longitude" => "-73.7689");<br />
<br />
Sometimes site location are misreported (e.g. the ISP's location is used), you can override these:<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "76.65.240.*","latitude" => "43.667","longitude" => "-79.417");<br />
<br />
You'll probably want to replace the defaults that are present.<br />
<br />
Note: If you use the 192.x.x.x address range ensure you update the location information before submitting from any machines in this subnet, as the location is stored in the database on first submission from a site (but can be subsequently edited from the admin web pages).<br />
<br />
=== Google Analytics ===<br />
CDash can use [http://www.google.com/analytics/ Google analytics] to monitor site usage. CDash's main <tt>index.php</tt> contains a reference to a default Kitware Google analytics code:<br />
<br />
$CDASH_DEFAULT_GOOGLE_ANALYTICS='UA-701656-6';<br />
<br />
When you configure each project you will have the opportunity to set a per-project Google analytics code.<br />
See [[CDash:Administration#Adding_Google_Analytics | Adding GoogleAnalytics]] for more information.<br />
<br />
== RSS directory ==<br />
Ensure that the <tt>.../CDash/rss</tt> (and <tt>.../CDash/backup</tt>) directory is writable by the user account that Apache runs under (typically wwwrun).<br />
<br />
== Apache ==<br />
Ensure that the <tt>/srv/www/htdocs/CDash</tt> tree is accessible, you may have to add the following to your <tt>/etc/apache2/conf.d</tt> directory:<br />
<br />
<tt>cdash.conf</tt>:<br />
<br />
<Directory /srv/www/htdocs/CDash><br />
Order allow,deny<br />
Allow from all<br />
</Directory><br />
<br />
You may need to restart Apache:<br />
<br />
rcapache2 restart<br />
<br />
or<br />
<br />
service apache2 restart<br />
<br />
== Creating database ==<br />
Access your website to start the install process:<br />
<br />
http://mywebsite.com/CDash<br />
<br />
The first step will confirm the host login and password for the database, the default admin account and password are also displayed, make a note of these as you'll need them later, as its easy to skip past this step missing them (you can always find them in <tt>.../CDash/sql/cdashdata.sql</tt>).<br />
<br />
== Production Mode ==<br />
In order to disable the installation script, especially when the database is not accessible. You should turn on the option:<br />
<br />
$CDASH_PRODUCTION_MODE = true;<br />
<br />
in your config.local.php<br />
<br />
== GIT support ==<br />
CDash 1.7 and higher are supporting GIT for daily update and also support the main GIT viewer (github, gittorious, etc...). In order to fetch the daily update, a bare (--bare) repository should be created for each project on the CDash server. Every night, CDash will fetch or clone the repository and parse the result of the 'git whatchanged' command. In order to allow git support.<br />
<br />
* Create a 'git' directory and give the web server full write access to it<br />
* Edit your config.local.php and add these values corresponding to your system configuration<br />
<br />
// Define the git command<br />
$CDASH_GIT_COMMAND = 'git';<br />
// The default git directory where the bare repositories should be created<br />
$CDASH_DEFAULT_GIT_DIRECTORY = 'git';<br />
<br />
<br />
== See Also ==<br />
[http://www.cdash.org/cdash/resources/software.html The CDash web site's brief install instructions]</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Installation&diff=61950CDash:Installation2017-08-30T13:42:06Z<p>Zack: /* System Requirements */</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
CDash is a [http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29 LAMP] application, running on [http://www.apache.org/ Apache] using [http://www.php.net/ PHP] to access a [http://www.mysql.com/ MySQL] or [http://www.postgresql.org PostgreSQL] database.<br />
<br />
== System Requirements ==<br />
<br />
CDash requires:<br />
* A web server (Apache, NGINX, IIS) with PHP (5.5.9+) and SSL enabled.<br />
* Access to a MySQL (5.x+) or PostgreSQL (8.3+) database server.<br />
<br />
PHP needs to have the following modules enabled:<br />
* cURL (for site statistics)<br />
* GD (for regression tests)<br />
* mbstring<br />
* pdo-mysql or pdo-postgresql<br />
* XSL<br />
<br />
== Downloading CDash ==<br />
<br />
=== Stable Release ===<br />
The '''current stable release of CDash is 2.4.0''' you can either download it as a zip archive<br />
* [http://public.kitware.com/Wiki/File:CDash-2-4-0.zip CDash-2.4.0.zip]<br />
* or from the [https://github.com/Kitware/CDash.git GIT] repository 'prebuilt' branch:<br />
git clone https://github.com/Kitware/CDash.git<br />
git checkout v2.4.0-prebuilt<br />
<br />
==== Previous versions of CDash ====<br />
* '''2.2''': [http://www.cdash.org/download/CDash-2.2.2.zip CDash-2.0.2.zip] or git checkout Release-2-2-2<br />
* '''2.0''': [http://www.cdash.org/download/CDash-2.0.2.zip CDash-2.0.2.zip] or git checkout Release-2-0-2<br />
* '''1.8''': [http://www.cdash.org/download/CDash-1.8.2.zip CDash-1.8.2.zip] or git checkout Release-1-8-2<br />
* '''1.6''': [http://www.cdash.org/download/CDash-1.6.4.zip CDash-1.6.4.zip] or git checkout Release-1-6-4<br />
* '''1.4''': [http://www.cdash.org/download/CDash-1.4.1.zip CDash-1.4.2.zip] or git checkout Release-1-4-2<br />
* '''1.2''': [http://www.cdash.org/download/CDash-1.2.1.zip CDash-1.2.1.zip] or git checkout Release-1-2-1<br />
* '''1.0''': [http://www.cdash.org/download/CDash-1.0.zip CDash-1.0.zip] or git checkout Release-1-0-2<br />
* '''0.8''': [http://www.cdash.org/download/CDash-0.8.zip CDash-0.8.zip] or git checkout Release-0-8<br />
<br />
=== GIT Development version ===<br />
<br />
CDash uses [https://getcomposer.org/ composer] and [https://www.npmjs.com/ npm] to manage its 3rd party dependencies.<br />
<br />
We provide two developments branches, <code>master</code> and <code>prebuilt</code>. If you're working with the <code>master</code> branch, then you have to run composer & npm yourself. The <code>prebuilt</code> branch has these dependencies already downloaded for you.<br />
<br />
==== master ====<br />
<br />
Use the <code>master</code> branch if you'd like to modify CDash or contribute to its development.<br />
git clone https://github.com/Kitware/CDash.git CDash<br />
git checkout master<br />
curl -sS https://getcomposer.org/installer | php <br />
php composer.phar install<br />
npm install<br />
node_modules/.bin/gulp<br />
<br />
==== prebuilt ====<br />
<br />
The <code>prebuilt</code> branch is a good choice if you'd like to use new features in CDash on a production server.<br />
git clone https://github.com/Kitware/CDash.git CDash<br />
git checkout prebuilt<br />
<br />
== Configuration ==<br />
The system configuration is stored in <tt>.../CDash/config/config.php</tt>, however it's recommended to create a '''config.local.php''' in the same directory that contains only the variables you wish to change. Doing so will prevent any changes you make from being overwritten when CDash is upgraded and config.php is re-created.<br />
<br />
Please note that CDash will read the config.php file first, and then config.local.php. Any variables that are changed in config.local.php will take precedence.<br />
<br />
'''WARNING: If creating the config.local.php from config.php make sure you DELETE any text after the 'DO NOT EDIT AFTER THIS LINE' otherwise your configuration file will be referencing each other. Ideally config.local.php should contain ONLY the variables you have modified.'''<br />
<br />
=== SQL Database ===<br />
If you are running the MySQL database on the same server as the Apache web server the defaults should work with no changes:<br />
<br />
// Hostname of the MySQL database <br />
$CDASH_DB_HOST = 'localhost';<br />
<br />
// Login for MySQL database access<br />
$CDASH_DB_LOGIN = 'root';<br />
<br />
// Password for MySQL database access<br />
$CDASH_DB_PASS = '';<br />
<br />
// Name of the MySQL database<br />
$CDASH_DB_NAME = 'cdash';<br />
<br />
If your MySQL (>= v5) server is set to ''strict'' mode, CDash will not work! The reason is that in strict mode, integer columns will not accept the empty string "" as 0 (zero). "" is what the CDash forms currently return for unchecked checkboxes. You'll have to remove the setting <code>STRICT_TRANS_TABLES</code> from the global sql mode parameter. You can query the current setting like this: <code>SELECT @@global.sql_mode;</code><br />
<br />
For more information and more specific settings see the [http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html MySQL sql mode documentation].<br />
<br />
If you have just installed MySQL don't forget to start it:<br />
<br />
rcmysql start<br />
<br />
=== Ubuntu Dependencies ===<br />
<br />
Here is a list of packages required on Ubuntu 12.04:<br />
sudo apt-get install apache2 mysql-server php5 php5-mysql php5-xsl php5-curl php5-gd<br />
<br />
Make sure your apache2 configuration pulls in libapache2-mod-php5 and NOT libapache2-mod-php5filter as this will cause PUT requests to fail and you will not be able to submit anything to your dashboard.<br />
<br />
=== PostgreSQL Database ===<br />
If you are running the PostgreSQL database read the previous MySQL section about configuring the database access.<br />
You will also need to tell CDash to use PostgreSQL driver:<br />
<br />
// Database type (empty means mysql)<br />
$CDASH_DB_TYPE = 'pgsql';<br />
<br />
Here is list of packages necessary on ubuntu<br />
<br />
sudo apt-get install php-pear<br />
sudo pecl install pdo <br />
sudo apt-get install php5-dev<br />
sudo pecl install pdo<br />
sudo pecl install pdo_pgsql<br />
<br />
=== Email ===<br />
You should probably edit the default email addresses:<br />
<br />
// Default from email<br />
$CDASH_EMAILADMIN = 'admin@cdash.org';<br />
$CDASH_EMAIL_FROM = 'admin@cdash.org';<br />
$CDASH_EMAIL_REPLY = 'noreply@cdash.org';<br />
<br />
=== LDAP ===<br />
As of CDash 1.4, authentication to an LDAP database can be performed.<br />
This requires the ldap module for php. The variables to define:<br />
<br />
$CDASH_USE_LDAP='1'; // turn this to 1 for LDAP authentication<br />
$CDASH_LDAP_HOSTNAME='localhost'; // hostname of the LDAP server<br />
$CDASH_LDAP_BASEDN='ou=people,dc=organization,dc=com'; // Base DN<br />
$CDASH_LDAP_PROTOCOL_VERSION='3'; // LDAP protocol version<br />
<br />
Note that the administrator (first user to install CDash) is always stored in the database.<br />
<br />
=== Backup directory ===<br />
The backup/log directory by default is placed in <tt>.../CDash/backup</tt>, this must be made writable by the account that you run Apache under (typically wwwrun or www-data), you can move the directory via:<br />
<br />
// Backup directory<br />
$CDASH_BACKUP_DIRECTORY = 'backup';<br />
<br />
=== Removing registration ===<br />
<br />
The registration can be disabled globally from CDash.<br />
<br />
// Doesn't provide registration links<br />
$CDASH_NO_REGISTRATION = '1';<br />
<br />
=== Cookie expiration time ===<br />
As of CDash 1.2 the login cookie time can be set in the config.php. The default is set to 1 hour.<br />
<br />
// Duration of the cookie session (in seconds)<br />
$CDASH_COOKIE_EXPIRATION_TIME = '3600'<br />
<br />
This allows the browser to remember the login/password of the user.<br />
'''On a public computer it is recommended to always log out'''<br />
<br />
=== Google Maps ===<br />
'''As of February of 2014, these links no longer work and I couldn't figure out where to point them. A workaround is just to insert the empty string instead of a key.'''<br />
<br />
CDash can use [http://code.google.com/apis/maps/ Google maps] to display the location of submission sites. CDash comes with Kitware's key code which won't work for your site's URL. Every site that uses Google maps requires its own [http://code.google.com/apis/maps/signup.html Google maps key] which you should obtain from Google (it's free), use this style URL when applying for a key:<br />
<br />
http://mysite.org/CDash<br />
<br />
Paste your newly obtained key in place of Kitware's:<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['localhost'] = 'paste key here';<br />
<br />
You may also add multiple keys (wighout the http://) and they will get matched by ''$_SERVER['HTTP_HOST']''<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['www.vtk.org'] = 'paste key here';<br />
$CDASH_GOOGLE_MAP_API_KEY['www.cdash.org'] = 'paste another key here';<br />
<br />
If your submission machines use private IP addresses you can add default location information, e.g. for all machines in the 192.x.x.x network (use http://maps.google.com to obtain your location):<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "192.*","latitude" => "42.6612","longitude" => "-73.7689");<br />
<br />
Sometimes site location are misreported (e.g. the ISP's location is used), you can override these:<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "76.65.240.*","latitude" => "43.667","longitude" => "-79.417");<br />
<br />
You'll probably want to replace the defaults that are present.<br />
<br />
Note: If you use the 192.x.x.x address range ensure you update the location information before submitting from any machines in this subnet, as the location is stored in the database on first submission from a site (but can be subsequently edited from the admin web pages).<br />
<br />
=== Google Analytics ===<br />
CDash can use [http://www.google.com/analytics/ Google analytics] to monitor site usage. CDash's main <tt>index.php</tt> contains a reference to a default Kitware Google analytics code:<br />
<br />
$CDASH_DEFAULT_GOOGLE_ANALYTICS='UA-701656-6';<br />
<br />
When you configure each project you will have the opportunity to set a per-project Google analytics code.<br />
See [[CDash:Administration#Adding_Google_Analytics | Adding GoogleAnalytics]] for more information.<br />
<br />
== RSS directory ==<br />
Ensure that the <tt>.../CDash/rss</tt> (and <tt>.../CDash/backup</tt>) directory is writable by the user account that Apache runs under (typically wwwrun).<br />
<br />
== Apache ==<br />
Ensure that the <tt>/srv/www/htdocs/CDash</tt> tree is accessible, you may have to add the following to your <tt>/etc/apache2/conf.d</tt> directory:<br />
<br />
<tt>cdash.conf</tt>:<br />
<br />
<Directory /srv/www/htdocs/CDash><br />
Order allow,deny<br />
Allow from all<br />
</Directory><br />
<br />
You may need to restart Apache:<br />
<br />
rcapache2 restart<br />
<br />
or<br />
<br />
service apache2 restart<br />
<br />
== Creating database ==<br />
Access your website to start the install process:<br />
<br />
http://mywebsite.com/CDash<br />
<br />
The first step will confirm the host login and password for the database, the default admin account and password are also displayed, make a note of these as you'll need them later, as its easy to skip past this step missing them (you can always find them in <tt>.../CDash/sql/cdashdata.sql</tt>).<br />
<br />
== Production Mode ==<br />
In order to disable the installation script, especially when the database is not accessible. You should turn on the option:<br />
<br />
$CDASH_PRODUCTION_MODE = true;<br />
<br />
in your config.local.php<br />
<br />
== GIT support ==<br />
CDash 1.7 and higher are supporting GIT for daily update and also support the main GIT viewer (github, gittorious, etc...). In order to fetch the daily update, a bare (--bare) repository should be created for each project on the CDash server. Every night, CDash will fetch or clone the repository and parse the result of the 'git whatchanged' command. In order to allow git support.<br />
<br />
* Create a 'git' directory and give the web server full write access to it<br />
* Edit your config.local.php and add these values corresponding to your system configuration<br />
<br />
// Define the git command<br />
$CDASH_GIT_COMMAND = 'git';<br />
// The default git directory where the bare repositories should be created<br />
$CDASH_DEFAULT_GIT_DIRECTORY = 'git';<br />
<br />
<br />
== See Also ==<br />
[http://www.cdash.org/cdash/resources/software.html The CDash web site's brief install instructions]</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Installation&diff=61949CDash:Installation2017-08-30T13:39:48Z<p>Zack: /* Downloading CDash */</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
CDash is a [http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29 LAMP] application, running on [http://www.apache.org/ Apache] using [http://www.php.net/ PHP] to access a [http://www.mysql.com/ MySQL] or [http://www.postgresql.org PostgreSQL] database.<br />
<br />
== System Requirements ==<br />
* Apache<br />
* SQL database<br />
** MySQL database (5.x and higher)<br />
** PostgreSQL database (8.3 and higher)<br />
* PHP (5.5.9 and higher)<br />
* The following PHP modules:<br />
** cURL (for site statistics)<br />
** GD (for regression tests)<br />
** mbstring<br />
** pdo-mysql or pdo-postgresql<br />
** XSL<br />
<br />
== Downloading CDash ==<br />
<br />
=== Stable Release ===<br />
The '''current stable release of CDash is 2.4.0''' you can either download it as a zip archive<br />
* [http://public.kitware.com/Wiki/File:CDash-2-4-0.zip CDash-2.4.0.zip]<br />
* or from the [https://github.com/Kitware/CDash.git GIT] repository 'prebuilt' branch:<br />
git clone https://github.com/Kitware/CDash.git<br />
git checkout v2.4.0-prebuilt<br />
<br />
==== Previous versions of CDash ====<br />
* '''2.2''': [http://www.cdash.org/download/CDash-2.2.2.zip CDash-2.0.2.zip] or git checkout Release-2-2-2<br />
* '''2.0''': [http://www.cdash.org/download/CDash-2.0.2.zip CDash-2.0.2.zip] or git checkout Release-2-0-2<br />
* '''1.8''': [http://www.cdash.org/download/CDash-1.8.2.zip CDash-1.8.2.zip] or git checkout Release-1-8-2<br />
* '''1.6''': [http://www.cdash.org/download/CDash-1.6.4.zip CDash-1.6.4.zip] or git checkout Release-1-6-4<br />
* '''1.4''': [http://www.cdash.org/download/CDash-1.4.1.zip CDash-1.4.2.zip] or git checkout Release-1-4-2<br />
* '''1.2''': [http://www.cdash.org/download/CDash-1.2.1.zip CDash-1.2.1.zip] or git checkout Release-1-2-1<br />
* '''1.0''': [http://www.cdash.org/download/CDash-1.0.zip CDash-1.0.zip] or git checkout Release-1-0-2<br />
* '''0.8''': [http://www.cdash.org/download/CDash-0.8.zip CDash-0.8.zip] or git checkout Release-0-8<br />
<br />
=== GIT Development version ===<br />
<br />
CDash uses [https://getcomposer.org/ composer] and [https://www.npmjs.com/ npm] to manage its 3rd party dependencies.<br />
<br />
We provide two developments branches, <code>master</code> and <code>prebuilt</code>. If you're working with the <code>master</code> branch, then you have to run composer & npm yourself. The <code>prebuilt</code> branch has these dependencies already downloaded for you.<br />
<br />
==== master ====<br />
<br />
Use the <code>master</code> branch if you'd like to modify CDash or contribute to its development.<br />
git clone https://github.com/Kitware/CDash.git CDash<br />
git checkout master<br />
curl -sS https://getcomposer.org/installer | php <br />
php composer.phar install<br />
npm install<br />
node_modules/.bin/gulp<br />
<br />
==== prebuilt ====<br />
<br />
The <code>prebuilt</code> branch is a good choice if you'd like to use new features in CDash on a production server.<br />
git clone https://github.com/Kitware/CDash.git CDash<br />
git checkout prebuilt<br />
<br />
== Configuration ==<br />
The system configuration is stored in <tt>.../CDash/config/config.php</tt>, however it's recommended to create a '''config.local.php''' in the same directory that contains only the variables you wish to change. Doing so will prevent any changes you make from being overwritten when CDash is upgraded and config.php is re-created.<br />
<br />
Please note that CDash will read the config.php file first, and then config.local.php. Any variables that are changed in config.local.php will take precedence.<br />
<br />
'''WARNING: If creating the config.local.php from config.php make sure you DELETE any text after the 'DO NOT EDIT AFTER THIS LINE' otherwise your configuration file will be referencing each other. Ideally config.local.php should contain ONLY the variables you have modified.'''<br />
<br />
=== SQL Database ===<br />
If you are running the MySQL database on the same server as the Apache web server the defaults should work with no changes:<br />
<br />
// Hostname of the MySQL database <br />
$CDASH_DB_HOST = 'localhost';<br />
<br />
// Login for MySQL database access<br />
$CDASH_DB_LOGIN = 'root';<br />
<br />
// Password for MySQL database access<br />
$CDASH_DB_PASS = '';<br />
<br />
// Name of the MySQL database<br />
$CDASH_DB_NAME = 'cdash';<br />
<br />
If your MySQL (>= v5) server is set to ''strict'' mode, CDash will not work! The reason is that in strict mode, integer columns will not accept the empty string "" as 0 (zero). "" is what the CDash forms currently return for unchecked checkboxes. You'll have to remove the setting <code>STRICT_TRANS_TABLES</code> from the global sql mode parameter. You can query the current setting like this: <code>SELECT @@global.sql_mode;</code><br />
<br />
For more information and more specific settings see the [http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html MySQL sql mode documentation].<br />
<br />
If you have just installed MySQL don't forget to start it:<br />
<br />
rcmysql start<br />
<br />
=== Ubuntu Dependencies ===<br />
<br />
Here is a list of packages required on Ubuntu 12.04:<br />
sudo apt-get install apache2 mysql-server php5 php5-mysql php5-xsl php5-curl php5-gd<br />
<br />
Make sure your apache2 configuration pulls in libapache2-mod-php5 and NOT libapache2-mod-php5filter as this will cause PUT requests to fail and you will not be able to submit anything to your dashboard.<br />
<br />
=== PostgreSQL Database ===<br />
If you are running the PostgreSQL database read the previous MySQL section about configuring the database access.<br />
You will also need to tell CDash to use PostgreSQL driver:<br />
<br />
// Database type (empty means mysql)<br />
$CDASH_DB_TYPE = 'pgsql';<br />
<br />
Here is list of packages necessary on ubuntu<br />
<br />
sudo apt-get install php-pear<br />
sudo pecl install pdo <br />
sudo apt-get install php5-dev<br />
sudo pecl install pdo<br />
sudo pecl install pdo_pgsql<br />
<br />
=== Email ===<br />
You should probably edit the default email addresses:<br />
<br />
// Default from email<br />
$CDASH_EMAILADMIN = 'admin@cdash.org';<br />
$CDASH_EMAIL_FROM = 'admin@cdash.org';<br />
$CDASH_EMAIL_REPLY = 'noreply@cdash.org';<br />
<br />
=== LDAP ===<br />
As of CDash 1.4, authentication to an LDAP database can be performed.<br />
This requires the ldap module for php. The variables to define:<br />
<br />
$CDASH_USE_LDAP='1'; // turn this to 1 for LDAP authentication<br />
$CDASH_LDAP_HOSTNAME='localhost'; // hostname of the LDAP server<br />
$CDASH_LDAP_BASEDN='ou=people,dc=organization,dc=com'; // Base DN<br />
$CDASH_LDAP_PROTOCOL_VERSION='3'; // LDAP protocol version<br />
<br />
Note that the administrator (first user to install CDash) is always stored in the database.<br />
<br />
=== Backup directory ===<br />
The backup/log directory by default is placed in <tt>.../CDash/backup</tt>, this must be made writable by the account that you run Apache under (typically wwwrun or www-data), you can move the directory via:<br />
<br />
// Backup directory<br />
$CDASH_BACKUP_DIRECTORY = 'backup';<br />
<br />
=== Removing registration ===<br />
<br />
The registration can be disabled globally from CDash.<br />
<br />
// Doesn't provide registration links<br />
$CDASH_NO_REGISTRATION = '1';<br />
<br />
=== Cookie expiration time ===<br />
As of CDash 1.2 the login cookie time can be set in the config.php. The default is set to 1 hour.<br />
<br />
// Duration of the cookie session (in seconds)<br />
$CDASH_COOKIE_EXPIRATION_TIME = '3600'<br />
<br />
This allows the browser to remember the login/password of the user.<br />
'''On a public computer it is recommended to always log out'''<br />
<br />
=== Google Maps ===<br />
'''As of February of 2014, these links no longer work and I couldn't figure out where to point them. A workaround is just to insert the empty string instead of a key.'''<br />
<br />
CDash can use [http://code.google.com/apis/maps/ Google maps] to display the location of submission sites. CDash comes with Kitware's key code which won't work for your site's URL. Every site that uses Google maps requires its own [http://code.google.com/apis/maps/signup.html Google maps key] which you should obtain from Google (it's free), use this style URL when applying for a key:<br />
<br />
http://mysite.org/CDash<br />
<br />
Paste your newly obtained key in place of Kitware's:<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['localhost'] = 'paste key here';<br />
<br />
You may also add multiple keys (wighout the http://) and they will get matched by ''$_SERVER['HTTP_HOST']''<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['www.vtk.org'] = 'paste key here';<br />
$CDASH_GOOGLE_MAP_API_KEY['www.cdash.org'] = 'paste another key here';<br />
<br />
If your submission machines use private IP addresses you can add default location information, e.g. for all machines in the 192.x.x.x network (use http://maps.google.com to obtain your location):<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "192.*","latitude" => "42.6612","longitude" => "-73.7689");<br />
<br />
Sometimes site location are misreported (e.g. the ISP's location is used), you can override these:<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "76.65.240.*","latitude" => "43.667","longitude" => "-79.417");<br />
<br />
You'll probably want to replace the defaults that are present.<br />
<br />
Note: If you use the 192.x.x.x address range ensure you update the location information before submitting from any machines in this subnet, as the location is stored in the database on first submission from a site (but can be subsequently edited from the admin web pages).<br />
<br />
=== Google Analytics ===<br />
CDash can use [http://www.google.com/analytics/ Google analytics] to monitor site usage. CDash's main <tt>index.php</tt> contains a reference to a default Kitware Google analytics code:<br />
<br />
$CDASH_DEFAULT_GOOGLE_ANALYTICS='UA-701656-6';<br />
<br />
When you configure each project you will have the opportunity to set a per-project Google analytics code.<br />
See [[CDash:Administration#Adding_Google_Analytics | Adding GoogleAnalytics]] for more information.<br />
<br />
== RSS directory ==<br />
Ensure that the <tt>.../CDash/rss</tt> (and <tt>.../CDash/backup</tt>) directory is writable by the user account that Apache runs under (typically wwwrun).<br />
<br />
== Apache ==<br />
Ensure that the <tt>/srv/www/htdocs/CDash</tt> tree is accessible, you may have to add the following to your <tt>/etc/apache2/conf.d</tt> directory:<br />
<br />
<tt>cdash.conf</tt>:<br />
<br />
<Directory /srv/www/htdocs/CDash><br />
Order allow,deny<br />
Allow from all<br />
</Directory><br />
<br />
You may need to restart Apache:<br />
<br />
rcapache2 restart<br />
<br />
or<br />
<br />
service apache2 restart<br />
<br />
== Creating database ==<br />
Access your website to start the install process:<br />
<br />
http://mywebsite.com/CDash<br />
<br />
The first step will confirm the host login and password for the database, the default admin account and password are also displayed, make a note of these as you'll need them later, as its easy to skip past this step missing them (you can always find them in <tt>.../CDash/sql/cdashdata.sql</tt>).<br />
<br />
== Production Mode ==<br />
In order to disable the installation script, especially when the database is not accessible. You should turn on the option:<br />
<br />
$CDASH_PRODUCTION_MODE = true;<br />
<br />
in your config.local.php<br />
<br />
== GIT support ==<br />
CDash 1.7 and higher are supporting GIT for daily update and also support the main GIT viewer (github, gittorious, etc...). In order to fetch the daily update, a bare (--bare) repository should be created for each project on the CDash server. Every night, CDash will fetch or clone the repository and parse the result of the 'git whatchanged' command. In order to allow git support.<br />
<br />
* Create a 'git' directory and give the web server full write access to it<br />
* Edit your config.local.php and add these values corresponding to your system configuration<br />
<br />
// Define the git command<br />
$CDASH_GIT_COMMAND = 'git';<br />
// The default git directory where the bare repositories should be created<br />
$CDASH_DEFAULT_GIT_DIRECTORY = 'git';<br />
<br />
<br />
== See Also ==<br />
[http://www.cdash.org/cdash/resources/software.html The CDash web site's brief install instructions]</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Installation&diff=61948CDash:Installation2017-08-30T13:24:56Z<p>Zack: /* Downloading CDash */</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
CDash is a [http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29 LAMP] application, running on [http://www.apache.org/ Apache] using [http://www.php.net/ PHP] to access a [http://www.mysql.com/ MySQL] or [http://www.postgresql.org PostgreSQL] database.<br />
<br />
== System Requirements ==<br />
* Apache<br />
* SQL database<br />
** MySQL database (5.x and higher)<br />
** PostgreSQL database (8.3 and higher)<br />
* PHP (5.5.9 and higher)<br />
* The following PHP modules:<br />
** cURL (for site statistics)<br />
** GD (for regression tests)<br />
** mbstring<br />
** pdo-mysql or pdo-postgresql<br />
** XSL<br />
<br />
== Downloading CDash ==<br />
<br />
The '''current stable release of CDash is 2.4.0''' you can either download it as a zip archive<br />
* [http://public.kitware.com/Wiki/File:CDash-2-4-0.zip CDash-2.4.0.zip]<br />
* or from the [https://github.com/Kitware/CDash.git GIT] repository 'prebuilt' branch:<br />
git clone https://github.com/Kitware/CDash.git<br />
git checkout v2.4.0-prebuilt<br />
<br />
=== GIT Development version ===<br />
<br />
CDash is available from the development [https://github.com/Kitware/CDash.git GIT] repository. Either extract the code into your web server tree, or another directory which will later be copied to the web server:<br />
<br />
cd /srv/www/htdocs<br />
git clone https://github.com/Kitware/CDash.git CDash<br />
git checkout prebuilt<br />
<br />
=== Previous versions of CDash ===<br />
* '''2.2''': [http://www.cdash.org/download/CDash-2.2.2.zip CDash-2.0.2.zip] or git checkout Release-2-2-2<br />
* '''2.0''': [http://www.cdash.org/download/CDash-2.0.2.zip CDash-2.0.2.zip] or git checkout Release-2-0-2<br />
* '''1.8''': [http://www.cdash.org/download/CDash-1.8.2.zip CDash-1.8.2.zip] or git checkout Release-1-8-2<br />
* '''1.6''': [http://www.cdash.org/download/CDash-1.6.4.zip CDash-1.6.4.zip] or git checkout Release-1-6-4<br />
* '''1.4''': [http://www.cdash.org/download/CDash-1.4.1.zip CDash-1.4.2.zip] or git checkout Release-1-4-2<br />
* '''1.2''': [http://www.cdash.org/download/CDash-1.2.1.zip CDash-1.2.1.zip] or git checkout Release-1-2-1<br />
* '''1.0''': [http://www.cdash.org/download/CDash-1.0.zip CDash-1.0.zip] or git checkout Release-1-0-2<br />
* '''0.8''': [http://www.cdash.org/download/CDash-0.8.zip CDash-0.8.zip] or git checkout Release-0-8<br />
<br />
== Configuration ==<br />
The system configuration is stored in <tt>.../CDash/config/config.php</tt>, however it's recommended to create a '''config.local.php''' in the same directory that contains only the variables you wish to change. Doing so will prevent any changes you make from being overwritten when CDash is upgraded and config.php is re-created.<br />
<br />
Please note that CDash will read the config.php file first, and then config.local.php. Any variables that are changed in config.local.php will take precedence.<br />
<br />
'''WARNING: If creating the config.local.php from config.php make sure you DELETE any text after the 'DO NOT EDIT AFTER THIS LINE' otherwise your configuration file will be referencing each other. Ideally config.local.php should contain ONLY the variables you have modified.'''<br />
<br />
=== SQL Database ===<br />
If you are running the MySQL database on the same server as the Apache web server the defaults should work with no changes:<br />
<br />
// Hostname of the MySQL database <br />
$CDASH_DB_HOST = 'localhost';<br />
<br />
// Login for MySQL database access<br />
$CDASH_DB_LOGIN = 'root';<br />
<br />
// Password for MySQL database access<br />
$CDASH_DB_PASS = '';<br />
<br />
// Name of the MySQL database<br />
$CDASH_DB_NAME = 'cdash';<br />
<br />
If your MySQL (>= v5) server is set to ''strict'' mode, CDash will not work! The reason is that in strict mode, integer columns will not accept the empty string "" as 0 (zero). "" is what the CDash forms currently return for unchecked checkboxes. You'll have to remove the setting <code>STRICT_TRANS_TABLES</code> from the global sql mode parameter. You can query the current setting like this: <code>SELECT @@global.sql_mode;</code><br />
<br />
For more information and more specific settings see the [http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html MySQL sql mode documentation].<br />
<br />
If you have just installed MySQL don't forget to start it:<br />
<br />
rcmysql start<br />
<br />
=== Ubuntu Dependencies ===<br />
<br />
Here is a list of packages required on Ubuntu 12.04:<br />
sudo apt-get install apache2 mysql-server php5 php5-mysql php5-xsl php5-curl php5-gd<br />
<br />
Make sure your apache2 configuration pulls in libapache2-mod-php5 and NOT libapache2-mod-php5filter as this will cause PUT requests to fail and you will not be able to submit anything to your dashboard.<br />
<br />
=== PostgreSQL Database ===<br />
If you are running the PostgreSQL database read the previous MySQL section about configuring the database access.<br />
You will also need to tell CDash to use PostgreSQL driver:<br />
<br />
// Database type (empty means mysql)<br />
$CDASH_DB_TYPE = 'pgsql';<br />
<br />
Here is list of packages necessary on ubuntu<br />
<br />
sudo apt-get install php-pear<br />
sudo pecl install pdo <br />
sudo apt-get install php5-dev<br />
sudo pecl install pdo<br />
sudo pecl install pdo_pgsql<br />
<br />
=== Email ===<br />
You should probably edit the default email addresses:<br />
<br />
// Default from email<br />
$CDASH_EMAILADMIN = 'admin@cdash.org';<br />
$CDASH_EMAIL_FROM = 'admin@cdash.org';<br />
$CDASH_EMAIL_REPLY = 'noreply@cdash.org';<br />
<br />
=== LDAP ===<br />
As of CDash 1.4, authentication to an LDAP database can be performed.<br />
This requires the ldap module for php. The variables to define:<br />
<br />
$CDASH_USE_LDAP='1'; // turn this to 1 for LDAP authentication<br />
$CDASH_LDAP_HOSTNAME='localhost'; // hostname of the LDAP server<br />
$CDASH_LDAP_BASEDN='ou=people,dc=organization,dc=com'; // Base DN<br />
$CDASH_LDAP_PROTOCOL_VERSION='3'; // LDAP protocol version<br />
<br />
Note that the administrator (first user to install CDash) is always stored in the database.<br />
<br />
=== Backup directory ===<br />
The backup/log directory by default is placed in <tt>.../CDash/backup</tt>, this must be made writable by the account that you run Apache under (typically wwwrun or www-data), you can move the directory via:<br />
<br />
// Backup directory<br />
$CDASH_BACKUP_DIRECTORY = 'backup';<br />
<br />
=== Removing registration ===<br />
<br />
The registration can be disabled globally from CDash.<br />
<br />
// Doesn't provide registration links<br />
$CDASH_NO_REGISTRATION = '1';<br />
<br />
=== Cookie expiration time ===<br />
As of CDash 1.2 the login cookie time can be set in the config.php. The default is set to 1 hour.<br />
<br />
// Duration of the cookie session (in seconds)<br />
$CDASH_COOKIE_EXPIRATION_TIME = '3600'<br />
<br />
This allows the browser to remember the login/password of the user.<br />
'''On a public computer it is recommended to always log out'''<br />
<br />
=== Google Maps ===<br />
'''As of February of 2014, these links no longer work and I couldn't figure out where to point them. A workaround is just to insert the empty string instead of a key.'''<br />
<br />
CDash can use [http://code.google.com/apis/maps/ Google maps] to display the location of submission sites. CDash comes with Kitware's key code which won't work for your site's URL. Every site that uses Google maps requires its own [http://code.google.com/apis/maps/signup.html Google maps key] which you should obtain from Google (it's free), use this style URL when applying for a key:<br />
<br />
http://mysite.org/CDash<br />
<br />
Paste your newly obtained key in place of Kitware's:<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['localhost'] = 'paste key here';<br />
<br />
You may also add multiple keys (wighout the http://) and they will get matched by ''$_SERVER['HTTP_HOST']''<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['www.vtk.org'] = 'paste key here';<br />
$CDASH_GOOGLE_MAP_API_KEY['www.cdash.org'] = 'paste another key here';<br />
<br />
If your submission machines use private IP addresses you can add default location information, e.g. for all machines in the 192.x.x.x network (use http://maps.google.com to obtain your location):<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "192.*","latitude" => "42.6612","longitude" => "-73.7689");<br />
<br />
Sometimes site location are misreported (e.g. the ISP's location is used), you can override these:<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "76.65.240.*","latitude" => "43.667","longitude" => "-79.417");<br />
<br />
You'll probably want to replace the defaults that are present.<br />
<br />
Note: If you use the 192.x.x.x address range ensure you update the location information before submitting from any machines in this subnet, as the location is stored in the database on first submission from a site (but can be subsequently edited from the admin web pages).<br />
<br />
=== Google Analytics ===<br />
CDash can use [http://www.google.com/analytics/ Google analytics] to monitor site usage. CDash's main <tt>index.php</tt> contains a reference to a default Kitware Google analytics code:<br />
<br />
$CDASH_DEFAULT_GOOGLE_ANALYTICS='UA-701656-6';<br />
<br />
When you configure each project you will have the opportunity to set a per-project Google analytics code.<br />
See [[CDash:Administration#Adding_Google_Analytics | Adding GoogleAnalytics]] for more information.<br />
<br />
== RSS directory ==<br />
Ensure that the <tt>.../CDash/rss</tt> (and <tt>.../CDash/backup</tt>) directory is writable by the user account that Apache runs under (typically wwwrun).<br />
<br />
== Apache ==<br />
Ensure that the <tt>/srv/www/htdocs/CDash</tt> tree is accessible, you may have to add the following to your <tt>/etc/apache2/conf.d</tt> directory:<br />
<br />
<tt>cdash.conf</tt>:<br />
<br />
<Directory /srv/www/htdocs/CDash><br />
Order allow,deny<br />
Allow from all<br />
</Directory><br />
<br />
You may need to restart Apache:<br />
<br />
rcapache2 restart<br />
<br />
or<br />
<br />
service apache2 restart<br />
<br />
== Creating database ==<br />
Access your website to start the install process:<br />
<br />
http://mywebsite.com/CDash<br />
<br />
The first step will confirm the host login and password for the database, the default admin account and password are also displayed, make a note of these as you'll need them later, as its easy to skip past this step missing them (you can always find them in <tt>.../CDash/sql/cdashdata.sql</tt>).<br />
<br />
== Production Mode ==<br />
In order to disable the installation script, especially when the database is not accessible. You should turn on the option:<br />
<br />
$CDASH_PRODUCTION_MODE = true;<br />
<br />
in your config.local.php<br />
<br />
== GIT support ==<br />
CDash 1.7 and higher are supporting GIT for daily update and also support the main GIT viewer (github, gittorious, etc...). In order to fetch the daily update, a bare (--bare) repository should be created for each project on the CDash server. Every night, CDash will fetch or clone the repository and parse the result of the 'git whatchanged' command. In order to allow git support.<br />
<br />
* Create a 'git' directory and give the web server full write access to it<br />
* Edit your config.local.php and add these values corresponding to your system configuration<br />
<br />
// Define the git command<br />
$CDASH_GIT_COMMAND = 'git';<br />
// The default git directory where the bare repositories should be created<br />
$CDASH_DEFAULT_GIT_DIRECTORY = 'git';<br />
<br />
<br />
== See Also ==<br />
[http://www.cdash.org/cdash/resources/software.html The CDash web site's brief install instructions]</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Installation&diff=61947CDash:Installation2017-08-30T13:19:16Z<p>Zack: /* System Requirements */</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
CDash is a [http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29 LAMP] application, running on [http://www.apache.org/ Apache] using [http://www.php.net/ PHP] to access a [http://www.mysql.com/ MySQL] or [http://www.postgresql.org PostgreSQL] database.<br />
<br />
== System Requirements ==<br />
* Apache<br />
* SQL database<br />
** MySQL database (5.x and higher)<br />
** PostgreSQL database (8.3 and higher)<br />
* PHP (5.5.9 and higher)<br />
* The following PHP modules:<br />
** cURL (for site statistics)<br />
** GD (for regression tests)<br />
** mbstring<br />
** pdo-mysql or pdo-postgresql<br />
** XSL<br />
<br />
== Downloading CDash ==<br />
<br />
The '''current stable release of CDash is 2.4.0''' you can either download it as a zip archive<br />
* [http://public.kitware.com/Wiki/File:CDash-2-4-0.zip CDash-2.4.0.zip]<br />
* or from the [https://github.com/Kitware/CDash.git GIT] repository 'prebuilt' branch:<br />
git clone https://github.com/Kitware/CDash.git<br />
<br />
=== GIT Development version ===<br />
<br />
CDash is available from the development [https://github.com/Kitware/CDash.git GIT] repository. Either extract the code into your web server tree, or another directory which will later be copied to the web server:<br />
<br />
cd /srv/www/htdocs<br />
git clone https://github.com/Kitware/CDash.git CDash<br />
git checkout prebuilt<br />
<br />
=== Previous versions of CDash ===<br />
* '''2.0''': [http://www.cdash.org/download/CDash-2.0.2.zip CDash-2.0.2.zip] or svn co https://www.kitware.com/svn/CDash/Release-2-0 CDash<br />
* '''1.8''': [http://www.cdash.org/download/CDash-1.8.2.zip CDash-1.8.2.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-8 CDash<br />
* '''1.6''': [http://www.cdash.org/download/CDash-1.6.4.zip CDash-1.6.4.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-6 CDash<br />
* '''1.4''': [http://www.cdash.org/download/CDash-1.4.1.zip CDash-1.4.1.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-4 CDash<br />
* '''1.2''': [http://www.cdash.org/download/CDash-1.2.1.zip CDash-1.2.1.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-2 CDash<br />
* '''1.0''': [http://www.cdash.org/download/CDash-1.0.zip CDash-1.0.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-0 CDash<br />
* '''0.8''': [http://www.cdash.org/download/CDash-0.8.zip CDash-0.8.zip] or svn co https://www.kitware.com/svn/CDash/Release-0-8 CDash<br />
<br />
== Configuration ==<br />
The system configuration is stored in <tt>.../CDash/config/config.php</tt>, however it's recommended to create a '''config.local.php''' in the same directory that contains only the variables you wish to change. Doing so will prevent any changes you make from being overwritten when CDash is upgraded and config.php is re-created.<br />
<br />
Please note that CDash will read the config.php file first, and then config.local.php. Any variables that are changed in config.local.php will take precedence.<br />
<br />
'''WARNING: If creating the config.local.php from config.php make sure you DELETE any text after the 'DO NOT EDIT AFTER THIS LINE' otherwise your configuration file will be referencing each other. Ideally config.local.php should contain ONLY the variables you have modified.'''<br />
<br />
=== SQL Database ===<br />
If you are running the MySQL database on the same server as the Apache web server the defaults should work with no changes:<br />
<br />
// Hostname of the MySQL database <br />
$CDASH_DB_HOST = 'localhost';<br />
<br />
// Login for MySQL database access<br />
$CDASH_DB_LOGIN = 'root';<br />
<br />
// Password for MySQL database access<br />
$CDASH_DB_PASS = '';<br />
<br />
// Name of the MySQL database<br />
$CDASH_DB_NAME = 'cdash';<br />
<br />
If your MySQL (>= v5) server is set to ''strict'' mode, CDash will not work! The reason is that in strict mode, integer columns will not accept the empty string "" as 0 (zero). "" is what the CDash forms currently return for unchecked checkboxes. You'll have to remove the setting <code>STRICT_TRANS_TABLES</code> from the global sql mode parameter. You can query the current setting like this: <code>SELECT @@global.sql_mode;</code><br />
<br />
For more information and more specific settings see the [http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html MySQL sql mode documentation].<br />
<br />
If you have just installed MySQL don't forget to start it:<br />
<br />
rcmysql start<br />
<br />
=== Ubuntu Dependencies ===<br />
<br />
Here is a list of packages required on Ubuntu 12.04:<br />
sudo apt-get install apache2 mysql-server php5 php5-mysql php5-xsl php5-curl php5-gd<br />
<br />
Make sure your apache2 configuration pulls in libapache2-mod-php5 and NOT libapache2-mod-php5filter as this will cause PUT requests to fail and you will not be able to submit anything to your dashboard.<br />
<br />
=== PostgreSQL Database ===<br />
If you are running the PostgreSQL database read the previous MySQL section about configuring the database access.<br />
You will also need to tell CDash to use PostgreSQL driver:<br />
<br />
// Database type (empty means mysql)<br />
$CDASH_DB_TYPE = 'pgsql';<br />
<br />
Here is list of packages necessary on ubuntu<br />
<br />
sudo apt-get install php-pear<br />
sudo pecl install pdo <br />
sudo apt-get install php5-dev<br />
sudo pecl install pdo<br />
sudo pecl install pdo_pgsql<br />
<br />
=== Email ===<br />
You should probably edit the default email addresses:<br />
<br />
// Default from email<br />
$CDASH_EMAILADMIN = 'admin@cdash.org';<br />
$CDASH_EMAIL_FROM = 'admin@cdash.org';<br />
$CDASH_EMAIL_REPLY = 'noreply@cdash.org';<br />
<br />
=== LDAP ===<br />
As of CDash 1.4, authentication to an LDAP database can be performed.<br />
This requires the ldap module for php. The variables to define:<br />
<br />
$CDASH_USE_LDAP='1'; // turn this to 1 for LDAP authentication<br />
$CDASH_LDAP_HOSTNAME='localhost'; // hostname of the LDAP server<br />
$CDASH_LDAP_BASEDN='ou=people,dc=organization,dc=com'; // Base DN<br />
$CDASH_LDAP_PROTOCOL_VERSION='3'; // LDAP protocol version<br />
<br />
Note that the administrator (first user to install CDash) is always stored in the database.<br />
<br />
=== Backup directory ===<br />
The backup/log directory by default is placed in <tt>.../CDash/backup</tt>, this must be made writable by the account that you run Apache under (typically wwwrun or www-data), you can move the directory via:<br />
<br />
// Backup directory<br />
$CDASH_BACKUP_DIRECTORY = 'backup';<br />
<br />
=== Removing registration ===<br />
<br />
The registration can be disabled globally from CDash.<br />
<br />
// Doesn't provide registration links<br />
$CDASH_NO_REGISTRATION = '1';<br />
<br />
=== Cookie expiration time ===<br />
As of CDash 1.2 the login cookie time can be set in the config.php. The default is set to 1 hour.<br />
<br />
// Duration of the cookie session (in seconds)<br />
$CDASH_COOKIE_EXPIRATION_TIME = '3600'<br />
<br />
This allows the browser to remember the login/password of the user.<br />
'''On a public computer it is recommended to always log out'''<br />
<br />
=== Google Maps ===<br />
'''As of February of 2014, these links no longer work and I couldn't figure out where to point them. A workaround is just to insert the empty string instead of a key.'''<br />
<br />
CDash can use [http://code.google.com/apis/maps/ Google maps] to display the location of submission sites. CDash comes with Kitware's key code which won't work for your site's URL. Every site that uses Google maps requires its own [http://code.google.com/apis/maps/signup.html Google maps key] which you should obtain from Google (it's free), use this style URL when applying for a key:<br />
<br />
http://mysite.org/CDash<br />
<br />
Paste your newly obtained key in place of Kitware's:<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['localhost'] = 'paste key here';<br />
<br />
You may also add multiple keys (wighout the http://) and they will get matched by ''$_SERVER['HTTP_HOST']''<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['www.vtk.org'] = 'paste key here';<br />
$CDASH_GOOGLE_MAP_API_KEY['www.cdash.org'] = 'paste another key here';<br />
<br />
If your submission machines use private IP addresses you can add default location information, e.g. for all machines in the 192.x.x.x network (use http://maps.google.com to obtain your location):<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "192.*","latitude" => "42.6612","longitude" => "-73.7689");<br />
<br />
Sometimes site location are misreported (e.g. the ISP's location is used), you can override these:<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "76.65.240.*","latitude" => "43.667","longitude" => "-79.417");<br />
<br />
You'll probably want to replace the defaults that are present.<br />
<br />
Note: If you use the 192.x.x.x address range ensure you update the location information before submitting from any machines in this subnet, as the location is stored in the database on first submission from a site (but can be subsequently edited from the admin web pages).<br />
<br />
=== Google Analytics ===<br />
CDash can use [http://www.google.com/analytics/ Google analytics] to monitor site usage. CDash's main <tt>index.php</tt> contains a reference to a default Kitware Google analytics code:<br />
<br />
$CDASH_DEFAULT_GOOGLE_ANALYTICS='UA-701656-6';<br />
<br />
When you configure each project you will have the opportunity to set a per-project Google analytics code.<br />
See [[CDash:Administration#Adding_Google_Analytics | Adding GoogleAnalytics]] for more information.<br />
<br />
== RSS directory ==<br />
Ensure that the <tt>.../CDash/rss</tt> (and <tt>.../CDash/backup</tt>) directory is writable by the user account that Apache runs under (typically wwwrun).<br />
<br />
== Apache ==<br />
Ensure that the <tt>/srv/www/htdocs/CDash</tt> tree is accessible, you may have to add the following to your <tt>/etc/apache2/conf.d</tt> directory:<br />
<br />
<tt>cdash.conf</tt>:<br />
<br />
<Directory /srv/www/htdocs/CDash><br />
Order allow,deny<br />
Allow from all<br />
</Directory><br />
<br />
You may need to restart Apache:<br />
<br />
rcapache2 restart<br />
<br />
or<br />
<br />
service apache2 restart<br />
<br />
== Creating database ==<br />
Access your website to start the install process:<br />
<br />
http://mywebsite.com/CDash<br />
<br />
The first step will confirm the host login and password for the database, the default admin account and password are also displayed, make a note of these as you'll need them later, as its easy to skip past this step missing them (you can always find them in <tt>.../CDash/sql/cdashdata.sql</tt>).<br />
<br />
== Production Mode ==<br />
In order to disable the installation script, especially when the database is not accessible. You should turn on the option:<br />
<br />
$CDASH_PRODUCTION_MODE = true;<br />
<br />
in your config.local.php<br />
<br />
== GIT support ==<br />
CDash 1.7 and higher are supporting GIT for daily update and also support the main GIT viewer (github, gittorious, etc...). In order to fetch the daily update, a bare (--bare) repository should be created for each project on the CDash server. Every night, CDash will fetch or clone the repository and parse the result of the 'git whatchanged' command. In order to allow git support.<br />
<br />
* Create a 'git' directory and give the web server full write access to it<br />
* Edit your config.local.php and add these values corresponding to your system configuration<br />
<br />
// Define the git command<br />
$CDASH_GIT_COMMAND = 'git';<br />
// The default git directory where the bare repositories should be created<br />
$CDASH_DEFAULT_GIT_DIRECTORY = 'git';<br />
<br />
<br />
== See Also ==<br />
[http://www.cdash.org/cdash/resources/software.html The CDash web site's brief install instructions]</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Installation&diff=61560CDash:Installation2017-03-27T13:40:41Z<p>Zack: /* System Requirements */</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
CDash is a [http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29 LAMP] application, running on [http://www.apache.org/ Apache] using [http://www.php.net/ PHP] to access a [http://www.mysql.com/ MySQL] or [http://www.postgresql.org PostgreSQL] database.<br />
<br />
== System Requirements ==<br />
* Apache<br />
* SQL database<br />
** MySQL database (5.x and higher)<br />
** PostgreSQL database (8.3 and higher)<br />
* PHP (5.5.9 and higher)<br />
* XSL module for PHP<br />
* cURL module for PHP (for site statistics)<br />
* GD module for PHP (for regression tests)<br />
* MySQL or PostgreSQL PDO module for PHP<br />
<br />
== Downloading CDash ==<br />
<br />
The '''current stable release of CDash is 2.4.0''' you can either download it as a zip archive<br />
* [http://public.kitware.com/Wiki/File:CDash-2-4-0.zip CDash-2.4.0.zip]<br />
* or from the [https://github.com/Kitware/CDash.git GIT] repository 'prebuilt' branch:<br />
git clone https://github.com/Kitware/CDash.git<br />
<br />
=== GIT Development version ===<br />
<br />
CDash is available from the development [https://github.com/Kitware/CDash.git GIT] repository. Either extract the code into your web server tree, or another directory which will later be copied to the web server:<br />
<br />
cd /srv/www/htdocs<br />
git clone https://github.com/Kitware/CDash.git CDash<br />
git checkout prebuilt<br />
<br />
=== Previous versions of CDash ===<br />
* '''2.0''': [http://www.cdash.org/download/CDash-2.0.2.zip CDash-2.0.2.zip] or svn co https://www.kitware.com/svn/CDash/Release-2-0 CDash<br />
* '''1.8''': [http://www.cdash.org/download/CDash-1.8.2.zip CDash-1.8.2.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-8 CDash<br />
* '''1.6''': [http://www.cdash.org/download/CDash-1.6.4.zip CDash-1.6.4.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-6 CDash<br />
* '''1.4''': [http://www.cdash.org/download/CDash-1.4.1.zip CDash-1.4.1.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-4 CDash<br />
* '''1.2''': [http://www.cdash.org/download/CDash-1.2.1.zip CDash-1.2.1.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-2 CDash<br />
* '''1.0''': [http://www.cdash.org/download/CDash-1.0.zip CDash-1.0.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-0 CDash<br />
* '''0.8''': [http://www.cdash.org/download/CDash-0.8.zip CDash-0.8.zip] or svn co https://www.kitware.com/svn/CDash/Release-0-8 CDash<br />
<br />
== Configuration ==<br />
The system configuration is stored in <tt>.../CDash/config/config.php</tt>, however it's recommended to create a '''config.local.php''' in the same directory that contains only the variables you wish to change. Doing so will prevent any changes you make from being overwritten when CDash is upgraded and config.php is re-created.<br />
<br />
Please note that CDash will read the config.php file first, and then config.local.php. Any variables that are changed in config.local.php will take precedence.<br />
<br />
'''WARNING: If creating the config.local.php from config.php make sure you DELETE any text after the 'DO NOT EDIT AFTER THIS LINE' otherwise your configuration file will be referencing each other. Ideally config.local.php should contain ONLY the variables you have modified.'''<br />
<br />
=== SQL Database ===<br />
If you are running the MySQL database on the same server as the Apache web server the defaults should work with no changes:<br />
<br />
// Hostname of the MySQL database <br />
$CDASH_DB_HOST = 'localhost';<br />
<br />
// Login for MySQL database access<br />
$CDASH_DB_LOGIN = 'root';<br />
<br />
// Password for MySQL database access<br />
$CDASH_DB_PASS = '';<br />
<br />
// Name of the MySQL database<br />
$CDASH_DB_NAME = 'cdash';<br />
<br />
If your MySQL (>= v5) server is set to ''strict'' mode, CDash will not work! The reason is that in strict mode, integer columns will not accept the empty string "" as 0 (zero). "" is what the CDash forms currently return for unchecked checkboxes. You'll have to remove the setting <code>STRICT_TRANS_TABLES</code> from the global sql mode parameter. You can query the current setting like this: <code>SELECT @@global.sql_mode;</code><br />
<br />
For more information and more specific settings see the [http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html MySQL sql mode documentation].<br />
<br />
If you have just installed MySQL don't forget to start it:<br />
<br />
rcmysql start<br />
<br />
=== Ubuntu Dependencies ===<br />
<br />
Here is a list of packages required on Ubuntu 12.04:<br />
sudo apt-get install apache2 mysql-server php5 php5-mysql php5-xsl php5-curl php5-gd<br />
<br />
Make sure your apache2 configuration pulls in libapache2-mod-php5 and NOT libapache2-mod-php5filter as this will cause PUT requests to fail and you will not be able to submit anything to your dashboard.<br />
<br />
=== PostgreSQL Database ===<br />
If you are running the PostgreSQL database read the previous MySQL section about configuring the database access.<br />
You will also need to tell CDash to use PostgreSQL driver:<br />
<br />
// Database type (empty means mysql)<br />
$CDASH_DB_TYPE = 'pgsql';<br />
<br />
Here is list of packages necessary on ubuntu<br />
<br />
sudo apt-get install php-pear<br />
sudo pecl install pdo <br />
sudo apt-get install php5-dev<br />
sudo pecl install pdo<br />
sudo pecl install pdo_pgsql<br />
<br />
=== Email ===<br />
You should probably edit the default email addresses:<br />
<br />
// Default from email<br />
$CDASH_EMAILADMIN = 'admin@cdash.org';<br />
$CDASH_EMAIL_FROM = 'admin@cdash.org';<br />
$CDASH_EMAIL_REPLY = 'noreply@cdash.org';<br />
<br />
=== LDAP ===<br />
As of CDash 1.4, authentication to an LDAP database can be performed.<br />
This requires the ldap module for php. The variables to define:<br />
<br />
$CDASH_USE_LDAP='1'; // turn this to 1 for LDAP authentication<br />
$CDASH_LDAP_HOSTNAME='localhost'; // hostname of the LDAP server<br />
$CDASH_LDAP_BASEDN='ou=people,dc=organization,dc=com'; // Base DN<br />
$CDASH_LDAP_PROTOCOL_VERSION='3'; // LDAP protocol version<br />
<br />
Note that the administrator (first user to install CDash) is always stored in the database.<br />
<br />
=== Backup directory ===<br />
The backup/log directory by default is placed in <tt>.../CDash/backup</tt>, this must be made writable by the account that you run Apache under (typically wwwrun or www-data), you can move the directory via:<br />
<br />
// Backup directory<br />
$CDASH_BACKUP_DIRECTORY = 'backup';<br />
<br />
=== Removing registration ===<br />
<br />
The registration can be disabled globally from CDash.<br />
<br />
// Doesn't provide registration links<br />
$CDASH_NO_REGISTRATION = '1';<br />
<br />
=== Cookie expiration time ===<br />
As of CDash 1.2 the login cookie time can be set in the config.php. The default is set to 1 hour.<br />
<br />
// Duration of the cookie session (in seconds)<br />
$CDASH_COOKIE_EXPIRATION_TIME = '3600'<br />
<br />
This allows the browser to remember the login/password of the user.<br />
'''On a public computer it is recommended to always log out'''<br />
<br />
=== Google Maps ===<br />
'''As of February of 2014, these links no longer work and I couldn't figure out where to point them. A workaround is just to insert the empty string instead of a key.'''<br />
<br />
CDash can use [http://code.google.com/apis/maps/ Google maps] to display the location of submission sites. CDash comes with Kitware's key code which won't work for your site's URL. Every site that uses Google maps requires its own [http://code.google.com/apis/maps/signup.html Google maps key] which you should obtain from Google (it's free), use this style URL when applying for a key:<br />
<br />
http://mysite.org/CDash<br />
<br />
Paste your newly obtained key in place of Kitware's:<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['localhost'] = 'paste key here';<br />
<br />
You may also add multiple keys (wighout the http://) and they will get matched by ''$_SERVER['HTTP_HOST']''<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['www.vtk.org'] = 'paste key here';<br />
$CDASH_GOOGLE_MAP_API_KEY['www.cdash.org'] = 'paste another key here';<br />
<br />
If your submission machines use private IP addresses you can add default location information, e.g. for all machines in the 192.x.x.x network (use http://maps.google.com to obtain your location):<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "192.*","latitude" => "42.6612","longitude" => "-73.7689");<br />
<br />
Sometimes site location are misreported (e.g. the ISP's location is used), you can override these:<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "76.65.240.*","latitude" => "43.667","longitude" => "-79.417");<br />
<br />
You'll probably want to replace the defaults that are present.<br />
<br />
Note: If you use the 192.x.x.x address range ensure you update the location information before submitting from any machines in this subnet, as the location is stored in the database on first submission from a site (but can be subsequently edited from the admin web pages).<br />
<br />
=== Google Analytics ===<br />
CDash can use [http://www.google.com/analytics/ Google analytics] to monitor site usage. CDash's main <tt>index.php</tt> contains a reference to a default Kitware Google analytics code:<br />
<br />
$CDASH_DEFAULT_GOOGLE_ANALYTICS='UA-701656-6';<br />
<br />
When you configure each project you will have the opportunity to set a per-project Google analytics code.<br />
See [[CDash:Administration#Adding_Google_Analytics | Adding GoogleAnalytics]] for more information.<br />
<br />
== RSS directory ==<br />
Ensure that the <tt>.../CDash/rss</tt> (and <tt>.../CDash/backup</tt>) directory is writable by the user account that Apache runs under (typically wwwrun).<br />
<br />
== Apache ==<br />
Ensure that the <tt>/srv/www/htdocs/CDash</tt> tree is accessible, you may have to add the following to your <tt>/etc/apache2/conf.d</tt> directory:<br />
<br />
<tt>cdash.conf</tt>:<br />
<br />
<Directory /srv/www/htdocs/CDash><br />
Order allow,deny<br />
Allow from all<br />
</Directory><br />
<br />
You may need to restart Apache:<br />
<br />
rcapache2 restart<br />
<br />
or<br />
<br />
service apache2 restart<br />
<br />
== Creating database ==<br />
Access your website to start the install process:<br />
<br />
http://mywebsite.com/CDash<br />
<br />
The first step will confirm the host login and password for the database, the default admin account and password are also displayed, make a note of these as you'll need them later, as its easy to skip past this step missing them (you can always find them in <tt>.../CDash/sql/cdashdata.sql</tt>).<br />
<br />
== Production Mode ==<br />
In order to disable the installation script, especially when the database is not accessible. You should turn on the option:<br />
<br />
$CDASH_PRODUCTION_MODE = true;<br />
<br />
in your config.local.php<br />
<br />
== GIT support ==<br />
CDash 1.7 and higher are supporting GIT for daily update and also support the main GIT viewer (github, gittorious, etc...). In order to fetch the daily update, a bare (--bare) repository should be created for each project on the CDash server. Every night, CDash will fetch or clone the repository and parse the result of the 'git whatchanged' command. In order to allow git support.<br />
<br />
* Create a 'git' directory and give the web server full write access to it<br />
* Edit your config.local.php and add these values corresponding to your system configuration<br />
<br />
// Define the git command<br />
$CDASH_GIT_COMMAND = 'git';<br />
// The default git directory where the bare repositories should be created<br />
$CDASH_DEFAULT_GIT_DIRECTORY = 'git';<br />
<br />
<br />
== See Also ==<br />
[http://www.cdash.org/cdash/resources/software.html The CDash web site's brief install instructions]</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Testing&diff=61503CDash:Testing2017-02-27T20:38:25Z<p>Zack: /* Create a build directory */</p>
<hr />
<div>CDash integrates a self-testing framework based on [http://www.simpletest.org Simple Test]. The self testing code is located in the ''CDash/testing'' directory.<br />
<br />
CDash testing requires the use of CMake and CTest. You can download the CMake suite of tools from [http://www.cmake.org/cmake/resources/software.html www.cmake.org]. CDash testing works much the same as any other CMake based project.<br />
<br />
= Checkout the CDash source code =<br />
<br />
See [[CDash:Installation#Downloading_CDash|Downloading CDash]] for instructions on obtaining a copy of the CDash source code from GitHub. During this step you should decide whether you want to test the latest release of CDash or the current development version.<br />
<br />
No matter which version of CDash you choose to test, make sure to check out the source code into your web server's htdocs folder.<br />
<br />
= Setup CDash for testing =<br />
<br />
== Create a build directory ==<br />
<br />
cd /path/to/CDash<br />
mkdir build<br />
<br />
==Run CMake from the build directory ==<br />
<br />
cd build<br />
ccmake ..<br />
<br />
== Define CMake variables ==<br />
<br />
CDASH_DB_HOST<br />
CDASH_DB_LOGIN<br />
CDASH_DB_PASS<br />
CDASH_DB_TYPE<br />
*These four parameters tell CDash how to connect to your local database server.<br />
<br />
CDASH_SERVER<br />
*CDASH_SERVER should indicate how to connect to your local system via a web browser. This is typically the system's host name, or simply localhost.<br />
<br />
CDASH_USE_APACHE2<br />
*Setting this to ON will enable tests specific to the Apache web server.<br />
<br />
CDASH_USE_SELENIUM<br />
PHPUNIT_EXE<br />
*Setting these options will enable testing of javascript based functionality of CDash. Requires [http://seleniumhq.org/ selenium] and [http://www.phpunit.de/ PHPUnit]. More on this below.<br />
<br />
CMake_SOURCE_DIR<br />
*Point this to a local checkout of CMake source code if you'd like to import some tests from CMake into CDash. This will cause CDash to perform a more thorough end-to-end test of the CMake/CTest/CDash suite of tools.<br />
<br />
PHP_EXE<br />
*CDash testing requires a command-line version of PHP to be installed on the system.<br />
<br />
= Test CDash =<br />
<br />
This is as simple as entering your CDash build directory and running CTest<br />
cd /path/to/CDashTesting/build<br />
ctest -VV<br />
<br />
Note this will create '''CDashTesting/cdash/config.local.php''' and '''CDashTesting/testing/config.test.local.php''' files in your source tree, so svn will show them as ? files.<br />
<br />
'''For PostGreSQL, make sure you create an empty database named 'host' so that CDash can create the cdash4simpletest database'''<br />
<br />
= Writing Additional CDash Tests =<br />
<br />
If you add any new tests, please follow the structure of one of the existing ones.<br />
<br />
For example, at the top of each test_*.php file in the tests directory, you'll see something like this (example from test_banner.php):<br />
<source lang="php"><br />
<?php<br />
//<br />
// After including cdash_test_case.php, subsequent require_once calls are<br />
// relative to the top of the CDash source tree<br />
//<br />
require_once(dirname(__FILE__).'/cdash_test_case.php');<br />
<br />
require_once('cdash/common.php');<br />
require_once('cdash/pdo.php');<br />
require_once('models/banner.php');<br />
<br />
class BannerTestCase extends KWWebTestCase<br />
{<br />
function __construct()<br />
{<br />
parent::__construct();<br />
}<br />
<br />
function testBanner()<br />
{<br />
...<br />
}<br />
}<br />
?><br />
</source><br />
<br />
Please note the following:<br />
* do not use "include" -- use "require_once"<br />
* the first require_once uses dirname(__FILE__) meaning "same dir as this php file"<br />
* the first require_once includes the cdash_test_case.php file<br />
* subsequent require_once calls refer to files from the root of the CDash source tree (include path set properly by the cdash_test_case.php file)<br />
* the constructor of the test case is '''empty''' -- it just calls the parent -- all the common stuff that used to be in the individual test cases has now been refactored to the base class -- see kwtest/kw_web_tester.php if you need to add to that code<br />
<br />
<br />
* similarly for the selenium tests... except with cdash_selenium_test_case.php<br />
* setUp for the individual selenium test cases should simply call $this->browserSetUp (defined once in the parent class)<br />
<br />
= Advanced Topics =<br />
<br />
[[CDash:Testing/Coverage|Code coverage]]<br />
<br />
[[CDash:Testing/Selenium|Testing javascript functionality with Selenium]]<br />
<br />
[[CDash:Testing/Client Management|Client management]]<br />
<br />
[[CDash:Testing/Nightly|Setting up nightly Builds]]</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Upgrade&diff=61107CDash:Upgrade2016-12-29T16:02:40Z<p>Zack: /* CDash 2.4 */</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
This page explains how to upgrade CDash. CDash upgrade mechanism allows users to upgrade CDash at any point in time, even if they are using the current git development of CDash.<br />
<br />
= Upgrading CDash =<br />
<br />
# It is recommended that you [[CDash:Upgrade#Backing_up_CDash | backup the CDash database]].<br />
# Backup your configuration file: config.php or config.local.php<br />
# Replace your current CDash directory with the latest version. If your instance of CDash was cloned from git, a <code>git pull</code> should suffice.<br />
#* [[CDash:Upgrade#Repository_Reorganization_Aftermath | Follow these instructions]] if you just ran <code>git pull</code> and lots of files were moved to a new directory named "public".<br />
# Make sure your web server still has permission to read CDash's files. On Linux you might need to use <code>chown</code> or <code>chmod</code> if the permissions changed when you updated CDash.<br />
# [https://getcomposer.org/download/ Download composer] (if you haven't already) and run <code>php composer.phar install --no-dev --optimize-autoloader</code>.<br />
# Run <code>npm install</code><br />
# Run <code>node_modules/.bin/gulp</code><br />
# Restore the configuration parameters: the config.php file may change from one revision to the other, make sure you are not replacing the config.php file but are actually replacing the parameters inside the file. For this reason, we recommend that you maintain a config.local.php file that contains ONLY your modified settings.<br />
# Navigate your browser to your CDash page. (eg. http://localhost/CDash) <br />
## Note the version number on the main page. It should correctly match the new version that you are upgrading to.<br />
## The following message may appear: "The current database shema doesn't match the version of CDash you are running, upgrade your database structure in the Administration panel of CDash." This is a helpful reminder to perform the following steps:<br />
#Login to CDash as administrator. <br />
#In the ‘Administration’ section, click on ‘[CDash Maintenance]’<br />
#Click on ‘Upgrade CDash’: This process might take some time depending on the size of your database, '''do not close your browser'''.<br />
##Progress messages may appear while CDash performs the upgrade.<br />
##If the upgrade process takes too long you can check in the backup/cdash.log file to see where the process is taking a long time and/or failing. For long running upgrades, you could also [[CDash:Upgrade#Checking_Database_Activity | check your database activity]] to make sure that the upgrade process hasn't stalled out.<br />
##It has been reporting that on some systems the spinning icon never turns into a checkmark. Please check the cdash.log for the "Upgrade done." string if you feel that the upgrade takes too long.<br />
##'''CDash 1.6''': new indexes and fields for the database have been added. The indexes and fields touch the test table and might take a long time to upgrade, just be patient and check the backup/cdash.log file to see the current progress of the update. On a 80GB database the upgrade took about 4 hours.<br />
# '''Note:''' Some web browsers are having issue when upgrading (some javascript variables not passed correctly), in that case you can perform individual updates:<br />
<br />
http://yourURLtoCDash/backwardCompatibilityTools.php?upgrade-2-2=1<br />
<br />
= Backing up CDash =<br />
<br />
CDash stores all the information (except logs) in the database, so it's important to backup your database before any CDash upgrade.<br />
<br />
== MySQL ==<br />
There are a couple a ways to backup a MySQL database. The easiest way is to use the [http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html mysqldump] command.<br />
<br />
Example to backup the '''cdash''' database:<br />
mysqldump -r cdashbackup.sql cdash<br />
<br />
If you are using exclusively MyISAM tables you can copy the CDash directory in your MySQL data directory. Note that you need to shutdown the MySQL before doing the copy since, no file can be touched during the copy.<br />
<br />
== PostGreSQL ==<br />
Similarly to MySQL, PostGreSQL has a [http://www.postgresql.org/docs/8.0/interactive/backup.html pg_dump] utility.<br />
<br />
Example to backup the '''cdash''' database:<br />
pg_dump -U postgreSQLuser cdash > cdashbackup.sql<br />
<br />
= Checking Database Activity =<br />
== MySQL ==<br />
From a mysql prompt:<br />
SHOW PROCESSLIST;<br />
== PostGreSQL ==<br />
From a psql prompt: <br />
SELECT * FROM pg_stat_activity;<br />
<br />
= Repository Reorganization Aftermath =<br />
In November, 2015 we reorganized the CDash repository. All of the files meant to be accessed by a web browser were moved under the <code>public</code> directory. This improves the security of CDash by making sure that we aren't inadvertently exposing something private to the outside world.<br />
<br />
Here are some steps you should take if your CDash upgrade just took your across this threshold.<br />
* Change what directory is exposed to the web. The easiest way to do this is to create a symbolic link in your DocumentRoot (typically <code>/var/www</code> or similar) that points to <code>/path/to/CDash/public</code>.<br />
* Move your <code>config.local.php</code> file (if you're using one) from <code>cdash/</code> to <code>config/</code><br />
* Check your config file for outdated values. We recommend that you maintain a <code>config.local.php</code> file that contains ONLY your changes. If you follow this approach then you will automatically be updated when we change the default value in <code>config.php</code>. Here are some changed values that might trip you up if you aren't doing this:<br />
** <code>$CDASH_CSS_FILE</code> should now be <code>css/cdash.css</code> (or similar)<br />
** Make sure <code>$CDASH_BACKUP_DIRECTORY</code> is defined relative to <code>$CDASH_ROOT_DIR</code>.<br />
** Make sure that any paths to your DocumentRoot (typically <code>/var/www</code>) in this file are also updated (if necessary).<br />
<br />
<br />
<br />
= Change logs =<br />
<br />
== CDash 2.4 ==<br />
<br />
=== Administrative notes ===<br />
* CDash no longer exposes all of its files to the web. If upgrading from 2.2 to 2.4, you will need to change how your DocumentRoot is configured. See [[CDash:Upgrade#Repository_Reorganization_Aftermath|CDash Repository Reorganization]] for more information.<br />
* CDash no longer maintains a copy of prerequisite software in its repository. Instead we use composer and npm to manage these dependencies. See [[CDash:Upgrade#Upgrading_CDash|Upgrading CDash]] for details on how to use these tools.<br />
<br />
=== New features ===<br />
* We've begun converting the frontend from XSLT to AngularJS. As a benefit of this, you can now [[CDash:API#JSON_data_representation|access the underlying data in JSON format]].<br />
* New page overview.php to show the health of your project over the past two weeks.<br />
* testOverview.php was remodeled to make it easier for you to find problematic tests over a given time period.<br />
* Support for [https://blog.kitware.com/dynamic-buildgroups-in-cdash/ Dynamic BuildGroups]. These show you the latest build results, no matter when they occurred.<br />
* [https://blog.kitware.com/additional-coverage-features-in-cdash/ Various improvements to code coverage analysis] including support for branch coverage and aggregating coverage metrics from multiple builds.<br />
* SubProjects can now be organized into groups with separate coverage thresholds.<br />
<br />
== CDash 2.2 ==<br />
<br />
=== New features ===<br />
*0013753: JUnit support <br />
*0013752: Support for nunit tests <br />
*0014896: Adding log level <br />
*0010084: Site Temporarily Out of Order <br />
*0014517: Add support for P4Web (Perforce Web Client)<br />
*Overall better PostGreSQL compatbility (thanks to Igor Murzov)<br />
*Added feed<br />
<br />
=== Bugs fixed (80) ===<br />
*0014906: Fix schedule to build association when handling submissions synchronously <br />
*0014717: Fix SQL query quoting issue introduced in r3432 <br />
*0014683: Use correct variable to get db type <br />
*0014682: Fix PHP undefined constant usage warning<br />
*0014679: Properly check if specified project exists <br />
*0014678: Drop weird copy'n'pasted comments from api/* files <br />
*0014681: Fix typo in "feed" table definition<br />
*0013400: Deleting all SubProjects does not remove the SubProjects section <br />
*0013937: CDash does not filter warnings when requesting difference to previous build <br />
*0014160: Deleting a group causes all builds in that group to disappear <br />
*0014638: Fix a typo in the coverage viewer <br />
*0014665: Generate xhtml to make the markdown standard compliant <br />
*0014664: Add menu to viewNotes page <br />
*0012989: Uninformative log message occurs a couple times a night on the CMake dashboard <br />
*0013654: Failed to update from "expected" to "non-expected" when there are no build <br />
*0014639: Fix undefined variable usage in test viewer<br />
*0014560: Overhaul configure warning extraction algorithm <br />
*0014589: Fix a PostgreSQL incompatibility<br />
*0014588: Fix undefined variable usage in changes viewer <br />
*0014556: ENH: Check that git directory is writable <br />
*0014551: CDash gives out of memory errors when attempting to XSLT transform large XML files <br />
*0014537: Fix a minor PostgreSQL incompatibility in test failure graph viewer <br />
*0014531: Don't hardcode coverage threshold, use the one from the project settings <br />
*0014530: Display correct configure warnings number on build summary page<br />
*0014525: Daily Updates for Perforce reports Revision and Prior Revision as 0 <br />
*0014524: The path to the P4 utility is not quoted (reported by Igor Murzov) <br />
*0014523: Drop remnants of backup page that was removed in r2599 <br />
*0014518: Add Perforce support to Daily Updates <br />
*0014346: Fix a couple of typos in file viewer <br />
*0014344: Cosmetics: Simplify some if conditions <br />
*0014343: Drop incorrect & pointless query on client libraries info update <br />
*0014513: Fix some html markdown issues <br />
*0014480: Fix seeming logout in file viewer <br />
*0014496: DOxygen menu should be renamed <br />
*0014478: Don't display errors when project gets unselected on Edit Project page <br />
*0014477: Drop unnecessary MySql-style quotes from SQL queries<br />
*0014469: Fix broken markdown on registration page <br />
*0014451: clientjobschedule.php doesn't encode project name before adding to submit URL <br />
*0014423: Drop left-over code <br />
*0014413: Fix grammar in coverage manager <br />
*0014412: Handle '0 builds' and '0 failed tests' cases properly<br />
*0014351: Fix lines of code calculation in the coverage viewer <br />
*0014350: Set Append property to false in upload xml handler as files are not appendable <br />
*0014189: dynamic analysis results not decoded <br />
*0012368: CDash's build results html should use monospace font for 'standard error' output <br />
*0014364: Add missing dot which prevented job id to be set in client script <br />
*0014374: Properly fetch result of SQL query on coverage info removal <br />
*0014375: Fix incorrect string quoting in SQL query in coveragefile2user model <br />
*0014341: Fix "user" table/function confusion <br />
*0014340: Fix undefined variable usage in sendemail <br />
*0010455: Show graph for <NamedMeasurement> <br />
*0013782: inconsistent last submission time for project and subprojects in the project dashboard <br />
*0013781: typo in manageBuildGroup.php <br />
*0013751: Error page <br />
*0013577: User Enumeration Vulnerability <br />
*0013491: CDash banner does not escape strings, potential SQL injection <br />
*0013256: cdash viewCoverage.php errors with new ajax interface <br />
*0013041: CDash 2 is still reporting wrong summary info for clock speed and RAM <br />
*0014621: Broken Filter Hyperlinks when enabling and then disabling Auto-refresh <br />
*0013943: Backup.php missing <br />
*0013428: Unknown column 'buildid' when running "Cleanup database" <br />
*0014514: svn log not updating with https:// and self signed certificate <br />
*0013079: Test attachment links broken when a test fails <br />
*0012994: Sorting by "Build Name" column doesn't work right when builds have OS icons <br />
*0012993: Times with milliseconds in them appear to be reported incorrectly <br />
*0012990: Strange formatting, and missing total test timing in "Build Time" tooltip <br />
*0012988: Column sort does not work for some columns in Coverage and Dynamic Analysis groups <br />
*0012985: "Show Build History" link does not show any builds <br />
*0012980: Last activity cannot be sorted on first page <br />
*0012978: Make FreeBSD a first class OS <br />
*0012950: login-based SQL injection <br />
*0012937: [CMake] Broken 'headerlogo' link if 'Home URL' is not set <br />
*0012949: CDash remove builds automatically even if $CDASH_AUTOREMOVE_BUILDS is not set <br />
*0012938: Unable to persitently change "Enable" flag in CDash Schedule Build <br />
*0013432: Registration Key URL in e-mail has one char to much at the end <br />
*0012984: CDash generated RSS produces date with 2 digit years; 4 digits preferred <br />
*0012948: Update data count misreported <br />
<br />
== CDash 2.0 ==<br />
<br />
=== New features ===<br />
<br />
* New and Simplified layout<br />
* Better management of asynchronous submission<br />
* Support for PostGreSQL 9<br />
* Improved security<br />
* Support for log rotation<br />
* Better support for new repository browsers<br />
* Improved users administration<br />
* $CDASH_WARN_ABOUT_UNREGISTERED_COMMITTERS option is now OFF by default to avoid flooding the log files. This option can still be overridden in the config.local.php<br />
<br />
=== Bugs fixed ===<br />
* [http://public.kitware.com/Bug/view.php?id=12555 0012555] Asynchronous processing of submission fails with drop site of the form: slicer4.cdash.org <br />
* [http://public.kitware.com/Bug/view.php?id=11809 0011809] "My Build Schedules" might benefit from an extra Comments or Description column <br />
* [http://public.kitware.com/Bug/view.php?id=12557 0012557] Option to hide source code in the coverage webpage <br />
* [http://public.kitware.com/Bug/view.php?id=11804 0011804] "My Build Schedules" list limited to 5 jobs; rest is inaccessible <br />
* [http://public.kitware.com/Bug/view.php?id=11521 0011521] PHP warning about MYSQL_BOTH <br />
* [http://public.kitware.com/Bug/view.php?id=12913 0012913] CDash fails to open update.xml file if CTEST_SITE variable contains a slash character <br />
* [http://public.kitware.com/Bug/view.php?id=10817 0010817] DynamicAnalysis is "green" and "0" even though all tests failed when run under memcheck <br />
* [http://public.kitware.com/Bug/view.php?id=12884 0012884] Adding "Subscribe" to the dashboard page <br />
* [http://public.kitware.com/Bug/view.php?id=12907 0012907] Delete user incomplete / blocks creation of new user with equal name <br />
* [http://public.kitware.com/Bug/view.php?id=12899 0012899] cdash 1.8.2 emails do not include header that indicates text encoding of content <br />
* [http://public.kitware.com/Bug/view.php?id=12885 0012885] When subscribing, "Project" combobox doesn't show current project <br />
* [http://public.kitware.com/Bug/view.php?id=10648 0010648] By default how to allow registered user to create new projects <br />
* [http://public.kitware.com/Bug/view.php?id=10742 0010742] CDash does not check for valid email <br />
* [http://public.kitware.com/Bug/view.php?id=10408 0010408] Time based reload for project dashboard page <br />
* [http://public.kitware.com/Bug/view.php?id=11939 0011939] CDASH cannot display Attached Files <br />
* [http://public.kitware.com/Bug/view.php?id=12314 0012314] description of 'test standard deviation' and 'test standard deviation threshold' is wrong <br />
* [http://public.kitware.com/Bug/view.php?id=10748 0010748] Log rotation <br />
* [http://public.kitware.com/Bug/view.php?id=12310 0012310] 'test time standard deviation' should be renamed <br />
* [http://public.kitware.com/Bug/view.php?id=10974 0010974] Build failures not highlighted <br />
* [http://public.kitware.com/Bug/view.php?id=10822 0010822] compute_update_statistics is undefined <br />
* [http://public.kitware.com/Bug/view.php?id=11799 0011799] "My Build Schedules" lists the same project name for all jobs <br />
* [http://public.kitware.com/Bug/view.php?id=11711 0011711] cdash/createRSS.php creates invalid RSS output <br />
* [http://public.kitware.com/Bug/view.php?id=10051 0010051] Wording of "Email preference" unclear <br />
* [http://public.kitware.com/Bug/view.php?id=11800 0011800] MySQL schema for client_jobschedule does not allow repeattime above 9.99 in newer MySQL versions <br />
* [http://public.kitware.com/Bug/view.php?id=12218 0012218] Update command fails to parse if it contains XML escaped quotes <br />
* [http://public.kitware.com/Bug/view.php?id=11201 0011201] Move the coverage legend on the left <br />
* [http://public.kitware.com/Bug/view.php?id=12368 0012368] CDash's build results html should use monospace font for 'standard error' output <br />
* [http://public.kitware.com/Bug/view.php?id=12164 0012164] CDash 1.6.4 cannot accept the special character <br />
* [http://public.kitware.com/Bug/view.php?id=12395 0012395] cdash login page 'remember me' checkbox does not work when using LDAP authentication <br />
* [http://public.kitware.com/Bug/view.php?id=12416 0012416] Error logs are never cleared <br />
* [http://public.kitware.com/Bug/view.php?id=09663 0009663] [CTest] CTest/CDash OS version & compiler information is lacking on Mac OS X <br />
* [http://public.kitware.com/Bug/view.php?id=07726 0007726] admin should be able to see/set other users settings <br />
* [http://public.kitware.com/Bug/view.php?id=10289 0010289] Patch for the support of hgweb navigation (mercurial) <br />
* [http://public.kitware.com/Bug/view.php?id=11409 0011409] viewErrorLog.php page does not show anything if buildid= *and* date= are given <br />
* [http://public.kitware.com/Bug/view.php?id=12341 0012341] Test names not escaped <br />
* [http://public.kitware.com/Bug/view.php?id=12360 0012360] [CTest] CDash colors for build graphs have poor contrast <br />
* [http://public.kitware.com/Bug/view.php?id=12384 0012384] [PATCH] Add support for the Redmine repository browser <br />
* [http://public.kitware.com/Bug/view.php?id=11737 0011737] CDash submission fails due to wrong parsing of geolocation info <br />
* [http://public.kitware.com/Bug/view.php?id=12585 0012585] Use "(empty)" instead of "" when site and build names come in empty from ctest <br />
* [http://public.kitware.com/Bug/view.php?id=10684 0010684] [CTest] ctest not reporting submission failures <br />
* [http://public.kitware.com/Bug/view.php?id=12396 0012396] [CTest] CDash should indicate the git hash of builds <br />
* [http://public.kitware.com/Bug/view.php?id=11608 0011608] Support new style of gitweb url <br />
* [http://public.kitware.com/Bug/view.php?id=11920 0011920] [CMake] Current svn -> cannot create project + header errors<br />
* [http://public.kitware.com/Bug/view.php?id=12638 0012638] Display Example URL of Reposiroty Viewer <br />
* [http://public.kitware.com/Bug/view.php?id=12631 0012631] Admin can't change user settings -- especially can't edit repository credentials <br />
* [http://public.kitware.com/Bug/view.php?id=10819 0010819] Make one more category for coverage files : "complete" or "perfect" <br />
* [http://public.kitware.com/Bug/view.php?id=12560 0012560] Support for PgSQL 9.x <br />
* [http://public.kitware.com/Bug/view.php?id=12559 0012559] Add database port in configuration file <br />
* [http://public.kitware.com/Bug/view.php?id=12403 0012403] CDash should report the time since reported builds <br />
* [http://public.kitware.com/Bug/view.php?id=12454 0012454] Missing CDASH_SERVER_PORT default in config.php <br />
* [http://public.kitware.com/Bug/view.php?id=12409 0012409] Autorefresh support <br />
* [http://public.kitware.com/Bug/view.php?id=11787 0011787] PHP errors when accessing with empty project name <br />
* [http://public.kitware.com/Bug/view.php?id=12404 0012404] Build management from main dashboard doesn't work on Safari <br />
* [http://public.kitware.com/Bug/view.php?id=12331 0012331] Additional search filters for LDAP based logins<br />
* [http://public.kitware.com/Bug/view.php?id=12308 0012308] WebApi - Method:project - Task:files - Sort files by uploaded date<br />
* [http://public.kitware.com/Bug/view.php?id=11639 0011639] Support committer name and email from git<br />
* [http://public.kitware.com/Bug/view.php?id=10659 0010659] Upgrade Jquery<br />
* [http://public.kitware.com/Bug/view.php?id=10930 0010930] 1.6.5: ctest/cdash report truncated names <br />
* [http://public.kitware.com/Bug/view.php?id=09790 0009790] URL into Trac svn browser wrong <br />
* [http://public.kitware.com/Bug/view.php?id=11432 0011432] Undefined variables <br />
* [http://public.kitware.com/Bug/view.php?id=11894 0011894] PHP warnings about split() <br />
* [http://public.kitware.com/Bug/view.php?id=11828 0011828] PHP warning about preg_match() <br />
* [http://public.kitware.com/Bug/view.php?id=10964 0010964] [CTest] CDash 1.6.4 - test output "crashes" the log page<br />
* [http://public.kitware.com/Bug/view.php?id=11663 0011663] Version 1.8.2 testDetails.php not loading stylesheet.<br />
<br />
== CDash 1.8 ==<br />
<br />
=== New features ===<br />
* Asynchronous submission<br />
* CDash@home beta version<br />
* Increasing number of tests and coverage<br />
* Build group specific auto-remove settings<br />
<br />
=== Bugs fixed ===<br />
* [http://public.kitware.com/Bug/view.php?id=10834 0010834] CDash should log php errors during submission<br />
* [http://public.kitware.com/Bug/view.php?id=10720 0010720] Upgrading PostgreSQL database from 1.7 to 1.8 gives "An error occured"<br />
* [http://public.kitware.com/Bug/view.php?id=10660 0010660] regex for BUG: bug_number<br />
* [http://public.kitware.com/Bug/view.php?id=10947 0010947] Sorting by test timing does not work on index.php<br />
* [http://public.kitware.com/Bug/view.php?id=10929 0010929] Spelling mistakes on code coverage pages<br />
* [http://public.kitware.com/Bug/view.php?id=10657 0010657] MyCDash - project creation blocked<br />
* [http://public.kitware.com/Bug/view.php?id=10649 0010649] Editing project in Chrome makes the repository field empty<br />
* [http://public.kitware.com/Bug/view.php?id=10647 0010647] HTTP Header should specify charset<br />
* [http://public.kitware.com/Bug/view.php?id=10269 0010269] Submission without 'ctest -D ...Build' reports entries in the dashboard 'build' column<br />
* [http://public.kitware.com/Bug/view.php?id=10260 0010260] Logo image doesnt appear on all pages of a Dashboard that uses Subprojects.<br />
* [http://public.kitware.com/Bug/view.php?id=10975 0010975] Negative numbers (for test counts, others?) appearing in subproject dashboard results<br />
* [http://public.kitware.com/Bug/view.php?id=11284 0011284] Buildname with spaces breaks javascript<br />
* [http://public.kitware.com/Bug/view.php?id=11167 0011167] Coverage threshold check should be greater than or equal to<br />
* [http://public.kitware.com/Bug/view.php?id=11125 0011125] Test.Exists() uses incomplete key, resulting in bogus test associations in DB<br />
* [http://public.kitware.com/Bug/view.php?id=11108 0011108] Build shows up more than once if it has more than one note added to it<br />
* [http://public.kitware.com/Bug/view.php?id=10976 0010976] Adding a user to a project sets 'no email' by default<br />
* [http://public.kitware.com/Bug/view.php?id=10767 0010767] Clicking on administration/Users in an arbitrary project leads to an error.<br />
* [http://public.kitware.com/Bug/view.php?id=10760 0010760] The <link> in build update feed should point to the build<br />
* [http://public.kitware.com/Bug/view.php?id=10721 0010721] Showing build errors (the yellow triangle) does not work<br />
* [http://public.kitware.com/Bug/view.php?id=10921 0010921] Sorting of time test does not work <br />
* [http://public.kitware.com/Bug/view.php?id=9941 0009941] Add buildmanagement functionality to CDash<br />
<br />
== CDash 1.6 ==<br />
<br />
=== New features ===<br />
* Support for persistent login<br />
* Better database compression<br />
* New graphs and reports<br />
* Improved coverage visualization<br />
* Better CTest communication<br />
* Expected submission time based on historic average<br />
* Faster load of the main dashboard page<br />
* Improved navigation links<br />
* Remote build management (beta) <br />
<br />
=== Bugs fixed ===<br />
* 0010290 CDash sends failed-test emails, even when this is disabled<br />
* 0010426 ClientJobSchedule::Save fails because of missing client_jobschedule table columns<br />
* 0010463 Shared project repositories not updated correctly<br />
* 0010332 cdash does not properly handle large xml files<br />
* 0010439 Command Lines in Build Error/Warning Display<br />
* 0010460 Subscription can be altered even if not admin<br />
* 0010313 Site description repeatedly escapes special characters<br />
* 0009174 tracing regressions<br />
* 0009276 Postgres does not like the build warnings with '\\' in them<br />
* 0010106 Marking "new" test failures on dashboard "view-failed-only" page.<br />
* 0008735 add ability to get email for missing builds on sites you do not own<br />
* 0008126 Improve Morale<br />
* 0009991 show which failures are new<br />
* 0010027 Feature Request: Compression of test output in the database<br />
* 0008341 itkrobot doesn't trigger message<br />
* 0010071 Empty iphone project page<br />
* 0009790 URL into Trac svn browser wrong<br />
* 0008854 Sort columns in "Manage Coverage Page"<br />
* 0009279 Allow --username for subversion<br />
* 0008171 Display longer history for a single build<br />
* 0008036 Filter out submissions based on IP address<br />
* 0007670 Delta on tests is nice but can mask actual status change.<br />
* 0008965 identify builds that my commit first appear in<br />
* 0007731 Graph of warnings and errors over time<br />
* 0009933 Configurable Tracker URL<br />
* 0007398 groups have "issues"<br />
* 0009928 Updated file count is always 0 for new submissions<br />
* 0008585 Maintainer page<br />
* 0008271 Activity graph<br />
* 0009848 "Edit subscription" should have a project-selection combo box<br />
* 0009820 Links/navigation are partly confusing<br />
* 0008367 Warnings and Errors are set to zero by default<br />
* 0009138 Project names with chars that must be escaped generate incorrect URLs<br />
* 0009295 "Time spent per project" only tracks last build<br />
* 0008948 Update.xml parsing should classify updated/modified/conflicting based on xpath<br />
* 0008736 better looking coverage<br />
* 0009856 "Dashboard" doesn't take me to dashboard for the project<br />
* 0009823 Build summary page should link to pieces<br />
* 0009855 Unsubscribing as project admin<br />
* 0009857 list of "Show public projects" not sorted<br />
* 0009034 Please add a "Show Coverage Percentage Graph" link to the buildSummary page for coverage builds<br />
* 0009669 Coverage page sorting is slow<br />
* 0008425 Flot doesn't work with IE 8 beta<br />
* 0008204 submission should not process files<br />
* 0009891 Build::GetIdFromName() doesn't check projectid for subproject<br />
* 0009890 Deleting project doesn't delete subprojects and labels<br />
* 0009818 Description is escaped for project<br />
* 0009815 projects not sorted on "My CDash" page<br />
* 0009794 CDash "forgets" me very fast...<br />
* 0009788 Dynamic Anyalsis truncated<br />
* 0009063 Display expected submission time based on historical average for expected builds that have not submitted yet<br />
* 0009706 Non-anonymous LDAP authentication (e.g. for Active Directory) - feature request and example implementation<br />
* 0009677 MySQL with STRICT_TRANS_TABLES fails<br />
* 0009668 Cannot move builds from index page on Chrome<br />
* 0009644 Only test timings after last database upgrade are shown<br />
* 0009338 Showing updates files does not work with PostgreSQL<br />
* 0009630 r1964 broke CDash when using PostgreSQL<br />
* 0009322 Show changes in test results<br />
* 0009154 build errors not issuing emails<br />
* 0009522 Persistent login<br />
* 0009359 Unable to invite users<br />
* 0009277 Database update is always needed<br />
* 0009340 Production mode shouldn't display install.php<br />
* 0009120 CDash generates wrong diff URLs for ViewVC (at least on NITRC.org)<br />
* 0009296 Passed test should not have "error" table background<br />
* 0009294 Processor information of build host is not parsed correctly<br />
* 0009266 Cannot remove Site<br />
* 0008957 Remember me login<br />
* 0008931 Need a way to "unclaim" a site that no longer submits<br />
* 0008881 Improve support for white spaces to NamedMeasurement with type text/string and/or text/plain types<br />
<br />
== CDash 1.4 ==<br />
<br />
=== New features ===<br />
*New XML parsing using SAX parsing instead of DOM (memory efficient)<br />
*Introduction of models (MVC framework)<br />
*Nightly testing of CDash itself<br />
** http://www.cdash.org/CDash/index.php?project=CDash<br />
*Support for subprojects (CMake/CTest CVS is required)<br />
** http://trilinos-dev.sandia.gov/cdash/index.php?project=Trilinos<br />
*Support for filters<br />
** allows showing just error builds, or builds from multiple days, or both<br />
** create hyperlink to filter results and bookmark it<br />
** example showing error builds from 3 days ago until now:<br />
** http://trilinos-dev.sandia.gov/cdash/index.php?project=Trilinos&display=project&filtercount=2&showfilters=1&filtercombine=and&field1=builderrors/number&compare1=42&value1=0&field2=buildstarttime/date&compare2=83&value2=3%20days%20ago<br />
*Support for labels on builds, tests, coverage files<br />
** use CVS CMake/CTest and set target, test or source file property LABELS<br />
*Improved navigation<br />
*Improved database indexing<br />
*Improved email reporting<br />
*Added email for coverage<br />
*Improved column sorting<br />
<br />
=== Bug Fixes ===<br />
*0008670 Failed tests shown in orange instead of red <br />
*0008643 New Email summary lines<br />
*0008117 disallow public registration <br />
*0008663 Sorting 'Dynamic Analysis' field 'Labels'<br />
*0008708 Add config.local.php<br />
*0008662 'Coverage' fields 'passed', 'failed', and 'Labels' are not sorting<br />
*0008638 'Dynamic Analsysis' columns can not be sorted<br />
<br />
*0006631 Logos that are too big (tall)<br />
*0007736 Root directory in websvn URL must have trailing slash for websvn paths to be generated correctly<br />
*0007771 Nightly changes should store previous revision<br />
*0008103 Timing test did not fail<br />
*0008127 Prevent spamming<br />
*0007920 ViewChanges crashes ViewCVS on newly created files<br />
*0007570 Test submission silently fails when test output is quite large. <br />
*0008616 Sending subproject email address regression lists in XML and updating CDash email lists <br />
*0008615 Sorting the 'Min' columns is not a numeric sort.<br />
*0008191 pdo_query() does not work if it is not MySQL<br />
*0008469 Coverage broken in SVN<br />
*0008462 Only 412 test results shown<br />
*0008740 NotRun/Fail/Pass tests reports don't report what they should report<br />
*0007713 Upgrading Database should now use previous version<br />
*0007884 Ask CDash not to fill IP addresses<br />
*0008679 XML Parsing problem should send email<br />
*0008783 Email Preference not greyed out on subscription page when ""Email Broken Submission"" is unchecked<br />
*0007724 Configure warnings and errors should trigger email<br />
*0008810 When Editing a project, createProject.php get an error calling fopen."<br />
*0008119 use admin email address as sender address in password emails<br />
*0008610 content of coverage differs to Coverage.xml<br />
*0007855 CDash sends duplicate emails for the same build<br />
*0008760 build failures not being sent out for all dashboard reported build errors<br />
*0008730 Not sending out email notifications for failed configure?<br />
*0008592 Main project/subproject page should be able to filter only Nightly tests<br />
*0008645 Coverage testing link times out<br />
*0008318 viewUpdate.php with PosgreSQL fails<br />
*0008368 XAMPP flaws<br />
*0007908 Make possible to sort Code Coverage rows by submission time <br />
*0008468 Help not closable on small screen <br />
*0008484 Configure log field is too small <br />
*0006468 go to a bug reference from a commit log <br />
*0007778 User can register with the same email address <br />
*0008460 Upgrade to jquery 1.3 <br />
*0007861 Upgrade from 1.0.2 to 1.2.1 breaks Groups<br />
*0007907 Time units missing in detailed test report<br />
*0008125 multiple users can share the same email address<br />
*0008451 Coverage should be sorted by status by default<br />
*0008448 cannot set CVS/SVN ViewerURL - CDash SVN trunk<br />
*0008287 Project name should be trimmed<br />
*0008254 User subscription public project<br />
*0008160 Performance issue when submiting test<br />
*0007916 Check that backup and rss directories are writable<br />
*0008202 Project logo not displayed with PostgreSQL<br />
*0008118 password recovery email seems to be bad html<br />
*0008113 Wrong SQL query leads to not storing results<br />
*0008084 Database name cannot contain minus (-)<br />
*0007848 CDash admin privileges lacking some key actions<br />
*0007847 Admin/users account can become permanently inaccessible<br />
*0007853 Builds sent from differnt sites can clobber each other<br />
*0007582 Charset encoding issues<br />
*0007806 MySQL error creating build groups<br />
*0007871 Installation check for php5-gd<br />
*0007805 The same image can't have multiple roles for a given test<br />
<br />
== CDash 1.2 ==<br />
<br />
=== New features ===<br />
*0006801 Test Failure History Graph<br />
*0007556 ViewSite page should list the users who claimed a site<br />
*0007499 Summarize busytime by site<br />
*0007204 Error summary page<br />
*0007537 Feature request: loggerhead support<br />
*0007116 Add functionality to send email to all site claimers<br />
*0007124 Add warning and minutes column to the cfg-column<br />
*0006943 Feature Request: Use Time, Pass/Fail graphs for navigation<br />
*0007209 add a user or group of users from the admin file without a file upload<br />
*0007266 seeking ViewVC support in CDash<br />
*0007420 Support for WebSVN<br />
*0006606 Support for other databases<br />
*0007068 Support for multiple repositories update<br />
*0007212 Password recovery<br />
*0007063 Support <Measurement> tags containing HTML<br />
*0006646 Compressing notes<br />
*0007019 Email notification of nigthly builds<br />
*0006466 Email when an expected nightly does not show up.<br />
*0007636 +- reporting on the coverage<br />
<br />
=== Bugs fixed ===<br />
*0007573 Only builds from default groups show when All is selected in Global Move.<br />
*0007535 Tests are not sorted by build time<br />
*0007497 email should be sent when an expected nightly does not show up<br />
*0007532 Claim sites list is slow to generate and unsorted<br />
*0007504 <DartMeasurement> output is not SQL-escaped<br />
*0006492 There are no options to define "broken"<br />
*0007458 add_coverage produce SQL error<br />
*0007019 email notification of nigthly builds<br />
*0006842 make browser back button and the date forward/backward buttons smarter<br />
*0007210 time error hides number summary of test time<br />
*0007368 Detail in build warning/error emails<br />
*0007246 test summary page shows previous days builds<br />
*0007422 Configuration option to request full email in manage project roles<br />
*0007051 Timing tests have too many false positives<br />
*0006996 Cannot view graphs<br />
*0007252 OS Name and Version not displayed in viewSite<br />
*0007405 Number of files covered unsatisfactorily is wrong<br />
*0007293 CDash doesn't show all modified and conflicted files<br />
*0006841 show number of new errors rather than total number of errors<br />
*0007299 cdash install issues<br />
*0007262 Email always sent for experimental builds<br />
*0007247 URL encoding in CTestConfig<br />
*0007188 CDash: buildSummary.php reports update time when no update has been made<br />
*0007211 Better visualization of the code coverage (more prominent indication of uncovered line)<br />
*0007135 Timing test statistics should not sample timing value for a failing test<br />
*0007112 Login information not saved<br />
*0007113 Cannot directly link to pages in protected projects<br />
*0007064 CDash: CDash content of coverage differs to Coverage.xml<br />
*0007066 Documentation link<br />
*0007053 CDash loses my identity and getting it back requires manually going back to CDash start page.<br />
*0007052 Redirect user to login page when private project is not accessible<br />
*0007017 Help screen cannot be dismissed if browser window is small<br />
*0007021 Parse cvs/svn/git commit comments and make URL expressions clickable hyperlinks<br />
*0007018 Output from test is truncated<br />
*0007654 Coverage file are truncated<br />
*0007573 Only builds from default groups show when All is selected in Global Move.<br />
*0006492 There are no options to define "broken"<br />
*0007535 Tests are not sorted by build time<br />
*0007667 Submitting using a custom track/group name partially fails when contains a dash<br />
*0007668 Broken image link on database upgrade<br />
*0007648 Commit ordering issue in Nightly Changes page of VTK Cdash (1.0.3)<br />
*0007639 Build group description required by MySQL but not set by PHP build group commands<br />
<br />
== CDash 1.0.2 ==<br />
=== Bugs fixed ===<br />
* 0007016 Create Group does not work under Opera and IE<br />
* Email submission not working for individual users<br />
* Several cosmetic fixes<br />
<br />
== CDash 1.0 ==<br />
=== Bugs fixed ===<br />
* 0006384 Detecting timing defects<br />
* 0006371 Having the number of nightly changes on the main page<br />
* 0006497 Method to mark compile warnings, compile errors, and test failures with "fix in progress" or "fixed"<br />
* 0006508 Test Results information is incomplete for itk<br />
* 0006894 Wrong number of dynamic analysis defects<br />
* 0006878 Support for timestamp CTest 2.6<br />
* 0006612 Bad BuildTimeGraph on buildSummary page for continuous build<br />
* 0006843 Support of different cvs/svn/web viewers<br />
* 0006582 CVS Link to a version 1.1 file is invalid<br />
* 0006664 Incorrect timing and detail report on viewTest page<br />
* 0006832 Previous Build Incorrect<br />
* 0006807 RSS feed with private project<br />
* 0006797 Previous build on build summary page<br />
* 0006805 Warning when backup and rss directory are not writable<br />
* 0006798 Warning message when browsing coverage<br />
* 0006772 Warnings when searching for emails on manageProjectRoles page<br />
* 0006472 Add ability to remove bogus builds<br />
* 0006601 Project administrator cannot remove an expected build if it is not submitting<br />
* 0006471 Add a quick way to upload a cvs/svn user to password file for email notification<br />
* 0006715 PROJECT pulldown under DASHBOARD pulldown<br />
* 0006602 Sort by any column on the viewTest and testSummary pages<br />
* 0006681 Fisheye URL support<br />
* 0006653 Mouse-over build groups<br />
* 0006655 Project logo hyperlink<br />
* 0006942: Show Test Time Graph does not toggle in Internet Explorer<br />
* 0006939: Separate lists of failing tests from list of passing tests<br />
<br />
=== Database modification ===<br />
* Added ‘description’ to table buildgroup<br />
* Added cvsviewertype to table project<br />
* Added index siteid in table site2user<br />
* Added index starttime in table build<br />
* Added index name in table test (this might take some time to run)<br />
* Added crc32 with index in table coveragefile <br />
* Compressing coverage (this might take some time to run)<br />
* Add support for timestatus in build2test table</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Installation&diff=61106CDash:Installation2016-12-29T15:48:56Z<p>Zack: /* Downloading CDash */</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
CDash is a [http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29 LAMP] application, running on [http://www.apache.org/ Apache] using [http://www.php.net/ PHP] to access a [http://www.mysql.com/ MySQL] or [http://www.postgresql.org PostgreSQL] database.<br />
<br />
== System Requirements ==<br />
* Apache<br />
* SQL database<br />
** MySQL database (5.x and higher)<br />
** PostgreSQL database (8.3 and higher)<br />
* PHP (5.3 and higher)<br />
* XSL module for PHP<br />
* cURL module for PHP (for site statistics)<br />
* GD module for PHP (for regression tests)<br />
* MySQL or PostgreSQL PDO module for PHP<br />
<br />
== Downloading CDash ==<br />
<br />
The '''current stable release of CDash is 2.4.0''' you can either download it as a zip archive<br />
* [http://public.kitware.com/Wiki/File:CDash-2-4-0.zip CDash-2.4.0.zip]<br />
* or from the [https://github.com/Kitware/CDash.git GIT] repository 'prebuilt' branch:<br />
git clone https://github.com/Kitware/CDash.git<br />
<br />
=== GIT Development version ===<br />
<br />
CDash is available from the development [https://github.com/Kitware/CDash.git GIT] repository. Either extract the code into your web server tree, or another directory which will later be copied to the web server:<br />
<br />
cd /srv/www/htdocs<br />
git clone https://github.com/Kitware/CDash.git CDash<br />
git checkout prebuilt<br />
<br />
=== Previous versions of CDash ===<br />
* '''2.0''': [http://www.cdash.org/download/CDash-2.0.2.zip CDash-2.0.2.zip] or svn co https://www.kitware.com/svn/CDash/Release-2-0 CDash<br />
* '''1.8''': [http://www.cdash.org/download/CDash-1.8.2.zip CDash-1.8.2.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-8 CDash<br />
* '''1.6''': [http://www.cdash.org/download/CDash-1.6.4.zip CDash-1.6.4.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-6 CDash<br />
* '''1.4''': [http://www.cdash.org/download/CDash-1.4.1.zip CDash-1.4.1.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-4 CDash<br />
* '''1.2''': [http://www.cdash.org/download/CDash-1.2.1.zip CDash-1.2.1.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-2 CDash<br />
* '''1.0''': [http://www.cdash.org/download/CDash-1.0.zip CDash-1.0.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-0 CDash<br />
* '''0.8''': [http://www.cdash.org/download/CDash-0.8.zip CDash-0.8.zip] or svn co https://www.kitware.com/svn/CDash/Release-0-8 CDash<br />
<br />
== Configuration ==<br />
The system configuration is stored in <tt>.../CDash/config/config.php</tt>, however it's recommended to create a '''config.local.php''' in the same directory that contains only the variables you wish to change. Doing so will prevent any changes you make from being overwritten when CDash is upgraded and config.php is re-created.<br />
<br />
Please note that CDash will read the config.php file first, and then config.local.php. Any variables that are changed in config.local.php will take precedence.<br />
<br />
'''WARNING: If creating the config.local.php from config.php make sure you DELETE any text after the 'DO NOT EDIT AFTER THIS LINE' otherwise your configuration file will be referencing each other. Ideally config.local.php should contain ONLY the variables you have modified.'''<br />
<br />
=== SQL Database ===<br />
If you are running the MySQL database on the same server as the Apache web server the defaults should work with no changes:<br />
<br />
// Hostname of the MySQL database <br />
$CDASH_DB_HOST = 'localhost';<br />
<br />
// Login for MySQL database access<br />
$CDASH_DB_LOGIN = 'root';<br />
<br />
// Password for MySQL database access<br />
$CDASH_DB_PASS = '';<br />
<br />
// Name of the MySQL database<br />
$CDASH_DB_NAME = 'cdash';<br />
<br />
If your MySQL (>= v5) server is set to ''strict'' mode, CDash will not work! The reason is that in strict mode, integer columns will not accept the empty string "" as 0 (zero). "" is what the CDash forms currently return for unchecked checkboxes. You'll have to remove the setting <code>STRICT_TRANS_TABLES</code> from the global sql mode parameter. You can query the current setting like this: <code>SELECT @@global.sql_mode;</code><br />
<br />
For more information and more specific settings see the [http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html MySQL sql mode documentation].<br />
<br />
If you have just installed MySQL don't forget to start it:<br />
<br />
rcmysql start<br />
<br />
=== Ubuntu Dependencies ===<br />
<br />
Here is a list of packages required on Ubuntu 12.04:<br />
sudo apt-get install apache2 mysql-server php5 php5-mysql php5-xsl php5-curl php5-gd<br />
<br />
Make sure your apache2 configuration pulls in libapache2-mod-php5 and NOT libapache2-mod-php5filter as this will cause PUT requests to fail and you will not be able to submit anything to your dashboard.<br />
<br />
=== PostgreSQL Database ===<br />
If you are running the PostgreSQL database read the previous MySQL section about configuring the database access.<br />
You will also need to tell CDash to use PostgreSQL driver:<br />
<br />
// Database type (empty means mysql)<br />
$CDASH_DB_TYPE = 'pgsql';<br />
<br />
Here is list of packages necessary on ubuntu<br />
<br />
sudo apt-get install php-pear<br />
sudo pecl install pdo <br />
sudo apt-get install php5-dev<br />
sudo pecl install pdo<br />
sudo pecl install pdo_pgsql<br />
<br />
=== Email ===<br />
You should probably edit the default email addresses:<br />
<br />
// Default from email<br />
$CDASH_EMAILADMIN = 'admin@cdash.org';<br />
$CDASH_EMAIL_FROM = 'admin@cdash.org';<br />
$CDASH_EMAIL_REPLY = 'noreply@cdash.org';<br />
<br />
=== LDAP ===<br />
As of CDash 1.4, authentication to an LDAP database can be performed.<br />
This requires the ldap module for php. The variables to define:<br />
<br />
$CDASH_USE_LDAP='1'; // turn this to 1 for LDAP authentication<br />
$CDASH_LDAP_HOSTNAME='localhost'; // hostname of the LDAP server<br />
$CDASH_LDAP_BASEDN='ou=people,dc=organization,dc=com'; // Base DN<br />
$CDASH_LDAP_PROTOCOL_VERSION='3'; // LDAP protocol version<br />
<br />
Note that the administrator (first user to install CDash) is always stored in the database.<br />
<br />
=== Backup directory ===<br />
The backup/log directory by default is placed in <tt>.../CDash/backup</tt>, this must be made writable by the account that you run Apache under (typically wwwrun or www-data), you can move the directory via:<br />
<br />
// Backup directory<br />
$CDASH_BACKUP_DIRECTORY = 'backup';<br />
<br />
=== Removing registration ===<br />
<br />
The registration can be disabled globally from CDash.<br />
<br />
// Doesn't provide registration links<br />
$CDASH_NO_REGISTRATION = '1';<br />
<br />
=== Cookie expiration time ===<br />
As of CDash 1.2 the login cookie time can be set in the config.php. The default is set to 1 hour.<br />
<br />
// Duration of the cookie session (in seconds)<br />
$CDASH_COOKIE_EXPIRATION_TIME = '3600'<br />
<br />
This allows the browser to remember the login/password of the user.<br />
'''On a public computer it is recommended to always log out'''<br />
<br />
=== Google Maps ===<br />
'''As of February of 2014, these links no longer work and I couldn't figure out where to point them. A workaround is just to insert the empty string instead of a key.'''<br />
<br />
CDash can use [http://code.google.com/apis/maps/ Google maps] to display the location of submission sites. CDash comes with Kitware's key code which won't work for your site's URL. Every site that uses Google maps requires its own [http://code.google.com/apis/maps/signup.html Google maps key] which you should obtain from Google (it's free), use this style URL when applying for a key:<br />
<br />
http://mysite.org/CDash<br />
<br />
Paste your newly obtained key in place of Kitware's:<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['localhost'] = 'paste key here';<br />
<br />
You may also add multiple keys (wighout the http://) and they will get matched by ''$_SERVER['HTTP_HOST']''<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['www.vtk.org'] = 'paste key here';<br />
$CDASH_GOOGLE_MAP_API_KEY['www.cdash.org'] = 'paste another key here';<br />
<br />
If your submission machines use private IP addresses you can add default location information, e.g. for all machines in the 192.x.x.x network (use http://maps.google.com to obtain your location):<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "192.*","latitude" => "42.6612","longitude" => "-73.7689");<br />
<br />
Sometimes site location are misreported (e.g. the ISP's location is used), you can override these:<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "76.65.240.*","latitude" => "43.667","longitude" => "-79.417");<br />
<br />
You'll probably want to replace the defaults that are present.<br />
<br />
Note: If you use the 192.x.x.x address range ensure you update the location information before submitting from any machines in this subnet, as the location is stored in the database on first submission from a site (but can be subsequently edited from the admin web pages).<br />
<br />
=== Google Analytics ===<br />
CDash can use [http://www.google.com/analytics/ Google analytics] to monitor site usage. CDash's main <tt>index.php</tt> contains a reference to a default Kitware Google analytics code:<br />
<br />
$CDASH_DEFAULT_GOOGLE_ANALYTICS='UA-701656-6';<br />
<br />
When you configure each project you will have the opportunity to set a per-project Google analytics code.<br />
See [[CDash:Administration#Adding_Google_Analytics | Adding GoogleAnalytics]] for more information.<br />
<br />
== RSS directory ==<br />
Ensure that the <tt>.../CDash/rss</tt> (and <tt>.../CDash/backup</tt>) directory is writable by the user account that Apache runs under (typically wwwrun).<br />
<br />
== Apache ==<br />
Ensure that the <tt>/srv/www/htdocs/CDash</tt> tree is accessible, you may have to add the following to your <tt>/etc/apache2/conf.d</tt> directory:<br />
<br />
<tt>cdash.conf</tt>:<br />
<br />
<Directory /srv/www/htdocs/CDash><br />
Order allow,deny<br />
Allow from all<br />
</Directory><br />
<br />
You may need to restart Apache:<br />
<br />
rcapache2 restart<br />
<br />
or<br />
<br />
service apache2 restart<br />
<br />
== Creating database ==<br />
Access your website to start the install process:<br />
<br />
http://mywebsite.com/CDash<br />
<br />
The first step will confirm the host login and password for the database, the default admin account and password are also displayed, make a note of these as you'll need them later, as its easy to skip past this step missing them (you can always find them in <tt>.../CDash/sql/cdashdata.sql</tt>).<br />
<br />
== Production Mode ==<br />
In order to disable the installation script, especially when the database is not accessible. You should turn on the option:<br />
<br />
$CDASH_PRODUCTION_MODE = true;<br />
<br />
in your config.local.php<br />
<br />
== GIT support ==<br />
CDash 1.7 and higher are supporting GIT for daily update and also support the main GIT viewer (github, gittorious, etc...). In order to fetch the daily update, a bare (--bare) repository should be created for each project on the CDash server. Every night, CDash will fetch or clone the repository and parse the result of the 'git whatchanged' command. In order to allow git support.<br />
<br />
* Create a 'git' directory and give the web server full write access to it<br />
* Edit your config.local.php and add these values corresponding to your system configuration<br />
<br />
// Define the git command<br />
$CDASH_GIT_COMMAND = 'git';<br />
// The default git directory where the bare repositories should be created<br />
$CDASH_DEFAULT_GIT_DIRECTORY = 'git';<br />
<br />
<br />
== See Also ==<br />
[http://www.cdash.org/cdash/resources/software.html The CDash web site's brief install instructions]</div>Zackhttps://public.kitware.com/Wiki/index.php?title=File:CDash-2-4-0.zip&diff=61105File:CDash-2-4-0.zip2016-12-29T15:48:00Z<p>Zack: Source zipfile for CDash v2.4.0</p>
<hr />
<div>Source zipfile for CDash v2.4.0</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Prebuilt&diff=61104CDash:Prebuilt2016-12-29T15:32:03Z<p>Zack: Created page with "Use these instructions to update the '''prebuilt''' branch after changes to master have been merged. * git fetch * git merge origin/master * php composer.phar install --no-de..."</p>
<hr />
<div>Use these instructions to update the '''prebuilt''' branch after changes to master have been merged.<br />
<br />
* git fetch<br />
* git merge origin/master<br />
* php composer.phar install --no-dev --optimize-autoloader<br />
* npm install<br />
* node_modules/.bin/gulp<br />
* git commit -a -m "Regenerate prebuilt files"<br />
* verify that all tests still pass<br />
* git push origin prebuilt</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash&diff=61103CDash2016-12-29T15:30:29Z<p>Zack: /* Developers Documentation */</p>
<hr />
<div>=Documentation=<br />
== Users Documentation ==<br />
* [[CDash:Installation|CDash Installation]]<br />
* [[CDash:Upgrade|Upgrading CDash]]<br />
* [[CDash:Documentation|User's guide]]<br />
* [[CDash:Administration|Administrator's guide]]<br />
* [[CDash:iPhone|iPhone guide]]<br />
* [[CDash:API|Web API]]<br />
* [[CTest:Using_CTEST_and_CDASH_without_CMAKE | Using CTest/CDash without CMake]]<br />
* [[CDash:Build_Management | Build management]]<br />
* [[CDash:EmailSettingsOverview | Overview of Email Settings]]<br />
<br />
== Developers Documentation ==<br />
* [[CDash:CodingRules|Coding rules]]<br />
* [[CDash:XML|XML Schema]]<br />
* [[CDash:Design|Design guide]]<br />
* [[CDash:Database|Database]]<br />
* [[CDash:Testing|Testing CDash]]<br />
* [[CDash:Tagging|Releasing a new CDash]]<br />
* [[CDash:Prebuilt|Updating the prebuilt branch]]<br />
<br />
= FAQ =<br />
* [[CDash:FAQ|CDash FAQ]]<br />
* [[CDash:BuildEmailNotification|Build Email Notification]]<br />
<br />
=Miscellaneous=<br />
* [[CDash:ExternalImport|Syncing two CDash instances]]<br />
* [[CDash:Dart2AndCDashSubmission|Simultaneous Dart2 and CDash Submission]]</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Installation&diff=61102CDash:Installation2016-12-29T15:19:18Z<p>Zack: /* Downloading CDash */</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
CDash is a [http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29 LAMP] application, running on [http://www.apache.org/ Apache] using [http://www.php.net/ PHP] to access a [http://www.mysql.com/ MySQL] or [http://www.postgresql.org PostgreSQL] database.<br />
<br />
== System Requirements ==<br />
* Apache<br />
* SQL database<br />
** MySQL database (5.x and higher)<br />
** PostgreSQL database (8.3 and higher)<br />
* PHP (5.3 and higher)<br />
* XSL module for PHP<br />
* cURL module for PHP (for site statistics)<br />
* GD module for PHP (for regression tests)<br />
* MySQL or PostgreSQL PDO module for PHP<br />
<br />
== Downloading CDash ==<br />
<br />
The '''current stable release of CDash is 2.2.3''' you can either download it as a zip archive<br />
* [http://www.cdash.org/wp-content/uploads/2014/11/CDash-2-2-3.zip CDash-2.2.3.zip]<br />
* or from the [https://github.com/Kitware/CDash.git GIT] repository 'prebuilt' branch:<br />
git clone https://github.com/Kitware/CDash.git<br />
<br />
=== GIT Development version ===<br />
<br />
CDash is available from the development [https://github.com/Kitware/CDash.git GIT] repository. Either extract the code into your web server tree, or another directory which will later be copied to the web server:<br />
<br />
cd /srv/www/htdocs<br />
git clone https://github.com/Kitware/CDash.git CDash<br />
git checkout prebuilt<br />
<br />
=== Previous versions of CDash ===<br />
* '''2.0''': [http://www.cdash.org/download/CDash-2.0.2.zip CDash-2.0.2.zip] or svn co https://www.kitware.com/svn/CDash/Release-2-0 CDash<br />
* '''1.8''': [http://www.cdash.org/download/CDash-1.8.2.zip CDash-1.8.2.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-8 CDash<br />
* '''1.6''': [http://www.cdash.org/download/CDash-1.6.4.zip CDash-1.6.4.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-6 CDash<br />
* '''1.4''': [http://www.cdash.org/download/CDash-1.4.1.zip CDash-1.4.1.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-4 CDash<br />
* '''1.2''': [http://www.cdash.org/download/CDash-1.2.1.zip CDash-1.2.1.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-2 CDash<br />
* '''1.0''': [http://www.cdash.org/download/CDash-1.0.zip CDash-1.0.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-0 CDash<br />
* '''0.8''': [http://www.cdash.org/download/CDash-0.8.zip CDash-0.8.zip] or svn co https://www.kitware.com/svn/CDash/Release-0-8 CDash<br />
<br />
== Configuration ==<br />
The system configuration is stored in <tt>.../CDash/config/config.php</tt>, however it's recommended to create a '''config.local.php''' in the same directory that contains only the variables you wish to change. Doing so will prevent any changes you make from being overwritten when CDash is upgraded and config.php is re-created.<br />
<br />
Please note that CDash will read the config.php file first, and then config.local.php. Any variables that are changed in config.local.php will take precedence.<br />
<br />
'''WARNING: If creating the config.local.php from config.php make sure you DELETE any text after the 'DO NOT EDIT AFTER THIS LINE' otherwise your configuration file will be referencing each other. Ideally config.local.php should contain ONLY the variables you have modified.'''<br />
<br />
=== SQL Database ===<br />
If you are running the MySQL database on the same server as the Apache web server the defaults should work with no changes:<br />
<br />
// Hostname of the MySQL database <br />
$CDASH_DB_HOST = 'localhost';<br />
<br />
// Login for MySQL database access<br />
$CDASH_DB_LOGIN = 'root';<br />
<br />
// Password for MySQL database access<br />
$CDASH_DB_PASS = '';<br />
<br />
// Name of the MySQL database<br />
$CDASH_DB_NAME = 'cdash';<br />
<br />
If your MySQL (>= v5) server is set to ''strict'' mode, CDash will not work! The reason is that in strict mode, integer columns will not accept the empty string "" as 0 (zero). "" is what the CDash forms currently return for unchecked checkboxes. You'll have to remove the setting <code>STRICT_TRANS_TABLES</code> from the global sql mode parameter. You can query the current setting like this: <code>SELECT @@global.sql_mode;</code><br />
<br />
For more information and more specific settings see the [http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html MySQL sql mode documentation].<br />
<br />
If you have just installed MySQL don't forget to start it:<br />
<br />
rcmysql start<br />
<br />
=== Ubuntu Dependencies ===<br />
<br />
Here is a list of packages required on Ubuntu 12.04:<br />
sudo apt-get install apache2 mysql-server php5 php5-mysql php5-xsl php5-curl php5-gd<br />
<br />
Make sure your apache2 configuration pulls in libapache2-mod-php5 and NOT libapache2-mod-php5filter as this will cause PUT requests to fail and you will not be able to submit anything to your dashboard.<br />
<br />
=== PostgreSQL Database ===<br />
If you are running the PostgreSQL database read the previous MySQL section about configuring the database access.<br />
You will also need to tell CDash to use PostgreSQL driver:<br />
<br />
// Database type (empty means mysql)<br />
$CDASH_DB_TYPE = 'pgsql';<br />
<br />
Here is list of packages necessary on ubuntu<br />
<br />
sudo apt-get install php-pear<br />
sudo pecl install pdo <br />
sudo apt-get install php5-dev<br />
sudo pecl install pdo<br />
sudo pecl install pdo_pgsql<br />
<br />
=== Email ===<br />
You should probably edit the default email addresses:<br />
<br />
// Default from email<br />
$CDASH_EMAILADMIN = 'admin@cdash.org';<br />
$CDASH_EMAIL_FROM = 'admin@cdash.org';<br />
$CDASH_EMAIL_REPLY = 'noreply@cdash.org';<br />
<br />
=== LDAP ===<br />
As of CDash 1.4, authentication to an LDAP database can be performed.<br />
This requires the ldap module for php. The variables to define:<br />
<br />
$CDASH_USE_LDAP='1'; // turn this to 1 for LDAP authentication<br />
$CDASH_LDAP_HOSTNAME='localhost'; // hostname of the LDAP server<br />
$CDASH_LDAP_BASEDN='ou=people,dc=organization,dc=com'; // Base DN<br />
$CDASH_LDAP_PROTOCOL_VERSION='3'; // LDAP protocol version<br />
<br />
Note that the administrator (first user to install CDash) is always stored in the database.<br />
<br />
=== Backup directory ===<br />
The backup/log directory by default is placed in <tt>.../CDash/backup</tt>, this must be made writable by the account that you run Apache under (typically wwwrun or www-data), you can move the directory via:<br />
<br />
// Backup directory<br />
$CDASH_BACKUP_DIRECTORY = 'backup';<br />
<br />
=== Removing registration ===<br />
<br />
The registration can be disabled globally from CDash.<br />
<br />
// Doesn't provide registration links<br />
$CDASH_NO_REGISTRATION = '1';<br />
<br />
=== Cookie expiration time ===<br />
As of CDash 1.2 the login cookie time can be set in the config.php. The default is set to 1 hour.<br />
<br />
// Duration of the cookie session (in seconds)<br />
$CDASH_COOKIE_EXPIRATION_TIME = '3600'<br />
<br />
This allows the browser to remember the login/password of the user.<br />
'''On a public computer it is recommended to always log out'''<br />
<br />
=== Google Maps ===<br />
'''As of February of 2014, these links no longer work and I couldn't figure out where to point them. A workaround is just to insert the empty string instead of a key.'''<br />
<br />
CDash can use [http://code.google.com/apis/maps/ Google maps] to display the location of submission sites. CDash comes with Kitware's key code which won't work for your site's URL. Every site that uses Google maps requires its own [http://code.google.com/apis/maps/signup.html Google maps key] which you should obtain from Google (it's free), use this style URL when applying for a key:<br />
<br />
http://mysite.org/CDash<br />
<br />
Paste your newly obtained key in place of Kitware's:<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['localhost'] = 'paste key here';<br />
<br />
You may also add multiple keys (wighout the http://) and they will get matched by ''$_SERVER['HTTP_HOST']''<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['www.vtk.org'] = 'paste key here';<br />
$CDASH_GOOGLE_MAP_API_KEY['www.cdash.org'] = 'paste another key here';<br />
<br />
If your submission machines use private IP addresses you can add default location information, e.g. for all machines in the 192.x.x.x network (use http://maps.google.com to obtain your location):<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "192.*","latitude" => "42.6612","longitude" => "-73.7689");<br />
<br />
Sometimes site location are misreported (e.g. the ISP's location is used), you can override these:<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "76.65.240.*","latitude" => "43.667","longitude" => "-79.417");<br />
<br />
You'll probably want to replace the defaults that are present.<br />
<br />
Note: If you use the 192.x.x.x address range ensure you update the location information before submitting from any machines in this subnet, as the location is stored in the database on first submission from a site (but can be subsequently edited from the admin web pages).<br />
<br />
=== Google Analytics ===<br />
CDash can use [http://www.google.com/analytics/ Google analytics] to monitor site usage. CDash's main <tt>index.php</tt> contains a reference to a default Kitware Google analytics code:<br />
<br />
$CDASH_DEFAULT_GOOGLE_ANALYTICS='UA-701656-6';<br />
<br />
When you configure each project you will have the opportunity to set a per-project Google analytics code.<br />
See [[CDash:Administration#Adding_Google_Analytics | Adding GoogleAnalytics]] for more information.<br />
<br />
== RSS directory ==<br />
Ensure that the <tt>.../CDash/rss</tt> (and <tt>.../CDash/backup</tt>) directory is writable by the user account that Apache runs under (typically wwwrun).<br />
<br />
== Apache ==<br />
Ensure that the <tt>/srv/www/htdocs/CDash</tt> tree is accessible, you may have to add the following to your <tt>/etc/apache2/conf.d</tt> directory:<br />
<br />
<tt>cdash.conf</tt>:<br />
<br />
<Directory /srv/www/htdocs/CDash><br />
Order allow,deny<br />
Allow from all<br />
</Directory><br />
<br />
You may need to restart Apache:<br />
<br />
rcapache2 restart<br />
<br />
or<br />
<br />
service apache2 restart<br />
<br />
== Creating database ==<br />
Access your website to start the install process:<br />
<br />
http://mywebsite.com/CDash<br />
<br />
The first step will confirm the host login and password for the database, the default admin account and password are also displayed, make a note of these as you'll need them later, as its easy to skip past this step missing them (you can always find them in <tt>.../CDash/sql/cdashdata.sql</tt>).<br />
<br />
== Production Mode ==<br />
In order to disable the installation script, especially when the database is not accessible. You should turn on the option:<br />
<br />
$CDASH_PRODUCTION_MODE = true;<br />
<br />
in your config.local.php<br />
<br />
== GIT support ==<br />
CDash 1.7 and higher are supporting GIT for daily update and also support the main GIT viewer (github, gittorious, etc...). In order to fetch the daily update, a bare (--bare) repository should be created for each project on the CDash server. Every night, CDash will fetch or clone the repository and parse the result of the 'git whatchanged' command. In order to allow git support.<br />
<br />
* Create a 'git' directory and give the web server full write access to it<br />
* Edit your config.local.php and add these values corresponding to your system configuration<br />
<br />
// Define the git command<br />
$CDASH_GIT_COMMAND = 'git';<br />
// The default git directory where the bare repositories should be created<br />
$CDASH_DEFAULT_GIT_DIRECTORY = 'git';<br />
<br />
<br />
== See Also ==<br />
[http://www.cdash.org/cdash/resources/software.html The CDash web site's brief install instructions]</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Installation&diff=61101CDash:Installation2016-12-29T15:17:56Z<p>Zack: /* GIT Development version */</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
CDash is a [http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29 LAMP] application, running on [http://www.apache.org/ Apache] using [http://www.php.net/ PHP] to access a [http://www.mysql.com/ MySQL] or [http://www.postgresql.org PostgreSQL] database.<br />
<br />
== System Requirements ==<br />
* Apache<br />
* SQL database<br />
** MySQL database (5.x and higher)<br />
** PostgreSQL database (8.3 and higher)<br />
* PHP (5.3 and higher)<br />
* XSL module for PHP<br />
* cURL module for PHP (for site statistics)<br />
* GD module for PHP (for regression tests)<br />
* MySQL or PostgreSQL PDO module for PHP<br />
<br />
== Downloading CDash ==<br />
<br />
The '''current stable release of CDash is 2.2.3''' you can either download it as a zip archive<br />
* [http://www.cdash.org/wp-content/uploads/2014/11/CDash-2-2-3.zip CDash-2.2.3.zip]<br />
* or from the [https://github.com/Kitware/CDash.git GIT] repository 'release' branch:<br />
git clone https://github.com/Kitware/CDash.git<br />
<br />
=== GIT Development version ===<br />
<br />
CDash is available from the development [https://github.com/Kitware/CDash.git GIT] repository. Either extract the code into your web server tree, or another directory which will later be copied to the web server:<br />
<br />
cd /srv/www/htdocs<br />
git clone https://github.com/Kitware/CDash.git CDash<br />
git checkout prebuilt<br />
<br />
=== Previous versions of CDash ===<br />
* '''2.0''': [http://www.cdash.org/download/CDash-2.0.2.zip CDash-2.0.2.zip] or svn co https://www.kitware.com/svn/CDash/Release-2-0 CDash<br />
* '''1.8''': [http://www.cdash.org/download/CDash-1.8.2.zip CDash-1.8.2.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-8 CDash<br />
* '''1.6''': [http://www.cdash.org/download/CDash-1.6.4.zip CDash-1.6.4.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-6 CDash<br />
* '''1.4''': [http://www.cdash.org/download/CDash-1.4.1.zip CDash-1.4.1.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-4 CDash<br />
* '''1.2''': [http://www.cdash.org/download/CDash-1.2.1.zip CDash-1.2.1.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-2 CDash<br />
* '''1.0''': [http://www.cdash.org/download/CDash-1.0.zip CDash-1.0.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-0 CDash<br />
* '''0.8''': [http://www.cdash.org/download/CDash-0.8.zip CDash-0.8.zip] or svn co https://www.kitware.com/svn/CDash/Release-0-8 CDash<br />
<br />
== Configuration ==<br />
The system configuration is stored in <tt>.../CDash/config/config.php</tt>, however it's recommended to create a '''config.local.php''' in the same directory that contains only the variables you wish to change. Doing so will prevent any changes you make from being overwritten when CDash is upgraded and config.php is re-created.<br />
<br />
Please note that CDash will read the config.php file first, and then config.local.php. Any variables that are changed in config.local.php will take precedence.<br />
<br />
'''WARNING: If creating the config.local.php from config.php make sure you DELETE any text after the 'DO NOT EDIT AFTER THIS LINE' otherwise your configuration file will be referencing each other. Ideally config.local.php should contain ONLY the variables you have modified.'''<br />
<br />
=== SQL Database ===<br />
If you are running the MySQL database on the same server as the Apache web server the defaults should work with no changes:<br />
<br />
// Hostname of the MySQL database <br />
$CDASH_DB_HOST = 'localhost';<br />
<br />
// Login for MySQL database access<br />
$CDASH_DB_LOGIN = 'root';<br />
<br />
// Password for MySQL database access<br />
$CDASH_DB_PASS = '';<br />
<br />
// Name of the MySQL database<br />
$CDASH_DB_NAME = 'cdash';<br />
<br />
If your MySQL (>= v5) server is set to ''strict'' mode, CDash will not work! The reason is that in strict mode, integer columns will not accept the empty string "" as 0 (zero). "" is what the CDash forms currently return for unchecked checkboxes. You'll have to remove the setting <code>STRICT_TRANS_TABLES</code> from the global sql mode parameter. You can query the current setting like this: <code>SELECT @@global.sql_mode;</code><br />
<br />
For more information and more specific settings see the [http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html MySQL sql mode documentation].<br />
<br />
If you have just installed MySQL don't forget to start it:<br />
<br />
rcmysql start<br />
<br />
=== Ubuntu Dependencies ===<br />
<br />
Here is a list of packages required on Ubuntu 12.04:<br />
sudo apt-get install apache2 mysql-server php5 php5-mysql php5-xsl php5-curl php5-gd<br />
<br />
Make sure your apache2 configuration pulls in libapache2-mod-php5 and NOT libapache2-mod-php5filter as this will cause PUT requests to fail and you will not be able to submit anything to your dashboard.<br />
<br />
=== PostgreSQL Database ===<br />
If you are running the PostgreSQL database read the previous MySQL section about configuring the database access.<br />
You will also need to tell CDash to use PostgreSQL driver:<br />
<br />
// Database type (empty means mysql)<br />
$CDASH_DB_TYPE = 'pgsql';<br />
<br />
Here is list of packages necessary on ubuntu<br />
<br />
sudo apt-get install php-pear<br />
sudo pecl install pdo <br />
sudo apt-get install php5-dev<br />
sudo pecl install pdo<br />
sudo pecl install pdo_pgsql<br />
<br />
=== Email ===<br />
You should probably edit the default email addresses:<br />
<br />
// Default from email<br />
$CDASH_EMAILADMIN = 'admin@cdash.org';<br />
$CDASH_EMAIL_FROM = 'admin@cdash.org';<br />
$CDASH_EMAIL_REPLY = 'noreply@cdash.org';<br />
<br />
=== LDAP ===<br />
As of CDash 1.4, authentication to an LDAP database can be performed.<br />
This requires the ldap module for php. The variables to define:<br />
<br />
$CDASH_USE_LDAP='1'; // turn this to 1 for LDAP authentication<br />
$CDASH_LDAP_HOSTNAME='localhost'; // hostname of the LDAP server<br />
$CDASH_LDAP_BASEDN='ou=people,dc=organization,dc=com'; // Base DN<br />
$CDASH_LDAP_PROTOCOL_VERSION='3'; // LDAP protocol version<br />
<br />
Note that the administrator (first user to install CDash) is always stored in the database.<br />
<br />
=== Backup directory ===<br />
The backup/log directory by default is placed in <tt>.../CDash/backup</tt>, this must be made writable by the account that you run Apache under (typically wwwrun or www-data), you can move the directory via:<br />
<br />
// Backup directory<br />
$CDASH_BACKUP_DIRECTORY = 'backup';<br />
<br />
=== Removing registration ===<br />
<br />
The registration can be disabled globally from CDash.<br />
<br />
// Doesn't provide registration links<br />
$CDASH_NO_REGISTRATION = '1';<br />
<br />
=== Cookie expiration time ===<br />
As of CDash 1.2 the login cookie time can be set in the config.php. The default is set to 1 hour.<br />
<br />
// Duration of the cookie session (in seconds)<br />
$CDASH_COOKIE_EXPIRATION_TIME = '3600'<br />
<br />
This allows the browser to remember the login/password of the user.<br />
'''On a public computer it is recommended to always log out'''<br />
<br />
=== Google Maps ===<br />
'''As of February of 2014, these links no longer work and I couldn't figure out where to point them. A workaround is just to insert the empty string instead of a key.'''<br />
<br />
CDash can use [http://code.google.com/apis/maps/ Google maps] to display the location of submission sites. CDash comes with Kitware's key code which won't work for your site's URL. Every site that uses Google maps requires its own [http://code.google.com/apis/maps/signup.html Google maps key] which you should obtain from Google (it's free), use this style URL when applying for a key:<br />
<br />
http://mysite.org/CDash<br />
<br />
Paste your newly obtained key in place of Kitware's:<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['localhost'] = 'paste key here';<br />
<br />
You may also add multiple keys (wighout the http://) and they will get matched by ''$_SERVER['HTTP_HOST']''<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['www.vtk.org'] = 'paste key here';<br />
$CDASH_GOOGLE_MAP_API_KEY['www.cdash.org'] = 'paste another key here';<br />
<br />
If your submission machines use private IP addresses you can add default location information, e.g. for all machines in the 192.x.x.x network (use http://maps.google.com to obtain your location):<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "192.*","latitude" => "42.6612","longitude" => "-73.7689");<br />
<br />
Sometimes site location are misreported (e.g. the ISP's location is used), you can override these:<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "76.65.240.*","latitude" => "43.667","longitude" => "-79.417");<br />
<br />
You'll probably want to replace the defaults that are present.<br />
<br />
Note: If you use the 192.x.x.x address range ensure you update the location information before submitting from any machines in this subnet, as the location is stored in the database on first submission from a site (but can be subsequently edited from the admin web pages).<br />
<br />
=== Google Analytics ===<br />
CDash can use [http://www.google.com/analytics/ Google analytics] to monitor site usage. CDash's main <tt>index.php</tt> contains a reference to a default Kitware Google analytics code:<br />
<br />
$CDASH_DEFAULT_GOOGLE_ANALYTICS='UA-701656-6';<br />
<br />
When you configure each project you will have the opportunity to set a per-project Google analytics code.<br />
See [[CDash:Administration#Adding_Google_Analytics | Adding GoogleAnalytics]] for more information.<br />
<br />
== RSS directory ==<br />
Ensure that the <tt>.../CDash/rss</tt> (and <tt>.../CDash/backup</tt>) directory is writable by the user account that Apache runs under (typically wwwrun).<br />
<br />
== Apache ==<br />
Ensure that the <tt>/srv/www/htdocs/CDash</tt> tree is accessible, you may have to add the following to your <tt>/etc/apache2/conf.d</tt> directory:<br />
<br />
<tt>cdash.conf</tt>:<br />
<br />
<Directory /srv/www/htdocs/CDash><br />
Order allow,deny<br />
Allow from all<br />
</Directory><br />
<br />
You may need to restart Apache:<br />
<br />
rcapache2 restart<br />
<br />
or<br />
<br />
service apache2 restart<br />
<br />
== Creating database ==<br />
Access your website to start the install process:<br />
<br />
http://mywebsite.com/CDash<br />
<br />
The first step will confirm the host login and password for the database, the default admin account and password are also displayed, make a note of these as you'll need them later, as its easy to skip past this step missing them (you can always find them in <tt>.../CDash/sql/cdashdata.sql</tt>).<br />
<br />
== Production Mode ==<br />
In order to disable the installation script, especially when the database is not accessible. You should turn on the option:<br />
<br />
$CDASH_PRODUCTION_MODE = true;<br />
<br />
in your config.local.php<br />
<br />
== GIT support ==<br />
CDash 1.7 and higher are supporting GIT for daily update and also support the main GIT viewer (github, gittorious, etc...). In order to fetch the daily update, a bare (--bare) repository should be created for each project on the CDash server. Every night, CDash will fetch or clone the repository and parse the result of the 'git whatchanged' command. In order to allow git support.<br />
<br />
* Create a 'git' directory and give the web server full write access to it<br />
* Edit your config.local.php and add these values corresponding to your system configuration<br />
<br />
// Define the git command<br />
$CDASH_GIT_COMMAND = 'git';<br />
// The default git directory where the bare repositories should be created<br />
$CDASH_DEFAULT_GIT_DIRECTORY = 'git';<br />
<br />
<br />
== See Also ==<br />
[http://www.cdash.org/cdash/resources/software.html The CDash web site's brief install instructions]</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Upgrade&diff=61099CDash:Upgrade2016-12-28T14:55:06Z<p>Zack: /* Change logs */</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
This page explains how to upgrade CDash. CDash upgrade mechanism allows users to upgrade CDash at any point in time, even if they are using the current git development of CDash.<br />
<br />
= Upgrading CDash =<br />
<br />
# It is recommended that you [[CDash:Upgrade#Backing_up_CDash | backup the CDash database]].<br />
# Backup your configuration file: config.php or config.local.php<br />
# Replace your current CDash directory with the latest version. If your instance of CDash was cloned from git, a <code>git pull</code> should suffice.<br />
#* [[CDash:Upgrade#Repository_Reorganization_Aftermath | Follow these instructions]] if you just ran <code>git pull</code> and lots of files were moved to a new directory named "public".<br />
# Make sure your web server still has permission to read CDash's files. On Linux you might need to use <code>chown</code> or <code>chmod</code> if the permissions changed when you updated CDash.<br />
# [https://getcomposer.org/download/ Download composer] (if you haven't already) and run <code>php composer.phar install --no-dev --optimize-autoloader</code>.<br />
# Run <code>npm install</code><br />
# Run <code>node_modules/.bin/gulp</code><br />
# Restore the configuration parameters: the config.php file may change from one revision to the other, make sure you are not replacing the config.php file but are actually replacing the parameters inside the file. For this reason, we recommend that you maintain a config.local.php file that contains ONLY your modified settings.<br />
# Navigate your browser to your CDash page. (eg. http://localhost/CDash) <br />
## Note the version number on the main page. It should correctly match the new version that you are upgrading to.<br />
## The following message may appear: "The current database shema doesn't match the version of CDash you are running, upgrade your database structure in the Administration panel of CDash." This is a helpful reminder to perform the following steps:<br />
#Login to CDash as administrator. <br />
#In the ‘Administration’ section, click on ‘[CDash Maintenance]’<br />
#Click on ‘Upgrade CDash’: This process might take some time depending on the size of your database, '''do not close your browser'''.<br />
##Progress messages may appear while CDash performs the upgrade.<br />
##If the upgrade process takes too long you can check in the backup/cdash.log file to see where the process is taking a long time and/or failing. For long running upgrades, you could also [[CDash:Upgrade#Checking_Database_Activity | check your database activity]] to make sure that the upgrade process hasn't stalled out.<br />
##It has been reporting that on some systems the spinning icon never turns into a checkmark. Please check the cdash.log for the "Upgrade done." string if you feel that the upgrade takes too long.<br />
##'''CDash 1.6''': new indexes and fields for the database have been added. The indexes and fields touch the test table and might take a long time to upgrade, just be patient and check the backup/cdash.log file to see the current progress of the update. On a 80GB database the upgrade took about 4 hours.<br />
# '''Note:''' Some web browsers are having issue when upgrading (some javascript variables not passed correctly), in that case you can perform individual updates:<br />
<br />
http://yourURLtoCDash/backwardCompatibilityTools.php?upgrade-2-2=1<br />
<br />
= Backing up CDash =<br />
<br />
CDash stores all the information (except logs) in the database, so it's important to backup your database before any CDash upgrade.<br />
<br />
== MySQL ==<br />
There are a couple a ways to backup a MySQL database. The easiest way is to use the [http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html mysqldump] command.<br />
<br />
Example to backup the '''cdash''' database:<br />
mysqldump -r cdashbackup.sql cdash<br />
<br />
If you are using exclusively MyISAM tables you can copy the CDash directory in your MySQL data directory. Note that you need to shutdown the MySQL before doing the copy since, no file can be touched during the copy.<br />
<br />
== PostGreSQL ==<br />
Similarly to MySQL, PostGreSQL has a [http://www.postgresql.org/docs/8.0/interactive/backup.html pg_dump] utility.<br />
<br />
Example to backup the '''cdash''' database:<br />
pg_dump -U postgreSQLuser cdash > cdashbackup.sql<br />
<br />
= Checking Database Activity =<br />
== MySQL ==<br />
From a mysql prompt:<br />
SHOW PROCESSLIST;<br />
== PostGreSQL ==<br />
From a psql prompt: <br />
SELECT * FROM pg_stat_activity;<br />
<br />
= Repository Reorganization Aftermath =<br />
In November, 2015 we reorganized the CDash repository. All of the files meant to be accessed by a web browser were moved under the <code>public</code> directory. This improves the security of CDash by making sure that we aren't inadvertently exposing something private to the outside world.<br />
<br />
Here are some steps you should take if your CDash upgrade just took your across this threshold.<br />
* Change what directory is exposed to the web. The easiest way to do this is to create a symbolic link in your DocumentRoot (typically <code>/var/www</code> or similar) that points to <code>/path/to/CDash/public</code>.<br />
* Move your <code>config.local.php</code> file (if you're using one) from <code>cdash/</code> to <code>config/</code><br />
* Check your config file for outdated values. We recommend that you maintain a <code>config.local.php</code> file that contains ONLY your changes. If you follow this approach then you will automatically be updated when we change the default value in <code>config.php</code>. Here are some changed values that might trip you up if you aren't doing this:<br />
** <code>$CDASH_CSS_FILE</code> should now be <code>css/cdash.css</code> (or similar)<br />
** Make sure <code>$CDASH_BACKUP_DIRECTORY</code> is defined relative to <code>$CDASH_ROOT_DIR</code>.<br />
** Make sure that any paths to your DocumentRoot (typically <code>/var/www</code>) in this file are also updated (if necessary).<br />
<br />
<br />
<br />
= Change logs =<br />
<br />
== CDash 2.4 ==<br />
<br />
=== New features ===<br />
* We've begun converting the frontend from XSLT to AngularJS. As a benefit of this, you can now [[CDash:API#JSON_data_representation|access the underlying data in JSON format]].<br />
* New page overview.php to show the health of your project over the past two weeks.<br />
* testOverview.php was remodeled to make it easier for you to find problematic tests over a given time period.<br />
* Support for [https://blog.kitware.com/dynamic-buildgroups-in-cdash/ Dynamic BuildGroups]. These show you the latest build results, no matter when they occurred.<br />
* [https://blog.kitware.com/additional-coverage-features-in-cdash/ Various improvements to code coverage analysis] including support for branch coverage and aggregating coverage metrics from multiple builds.<br />
* SubProjects can now be organized into groups with separate coverage thresholds.<br />
<br />
== CDash 2.2 ==<br />
<br />
=== New features ===<br />
*0013753: JUnit support <br />
*0013752: Support for nunit tests <br />
*0014896: Adding log level <br />
*0010084: Site Temporarily Out of Order <br />
*0014517: Add support for P4Web (Perforce Web Client)<br />
*Overall better PostGreSQL compatbility (thanks to Igor Murzov)<br />
*Added feed<br />
<br />
=== Bugs fixed (80) ===<br />
*0014906: Fix schedule to build association when handling submissions synchronously <br />
*0014717: Fix SQL query quoting issue introduced in r3432 <br />
*0014683: Use correct variable to get db type <br />
*0014682: Fix PHP undefined constant usage warning<br />
*0014679: Properly check if specified project exists <br />
*0014678: Drop weird copy'n'pasted comments from api/* files <br />
*0014681: Fix typo in "feed" table definition<br />
*0013400: Deleting all SubProjects does not remove the SubProjects section <br />
*0013937: CDash does not filter warnings when requesting difference to previous build <br />
*0014160: Deleting a group causes all builds in that group to disappear <br />
*0014638: Fix a typo in the coverage viewer <br />
*0014665: Generate xhtml to make the markdown standard compliant <br />
*0014664: Add menu to viewNotes page <br />
*0012989: Uninformative log message occurs a couple times a night on the CMake dashboard <br />
*0013654: Failed to update from "expected" to "non-expected" when there are no build <br />
*0014639: Fix undefined variable usage in test viewer<br />
*0014560: Overhaul configure warning extraction algorithm <br />
*0014589: Fix a PostgreSQL incompatibility<br />
*0014588: Fix undefined variable usage in changes viewer <br />
*0014556: ENH: Check that git directory is writable <br />
*0014551: CDash gives out of memory errors when attempting to XSLT transform large XML files <br />
*0014537: Fix a minor PostgreSQL incompatibility in test failure graph viewer <br />
*0014531: Don't hardcode coverage threshold, use the one from the project settings <br />
*0014530: Display correct configure warnings number on build summary page<br />
*0014525: Daily Updates for Perforce reports Revision and Prior Revision as 0 <br />
*0014524: The path to the P4 utility is not quoted (reported by Igor Murzov) <br />
*0014523: Drop remnants of backup page that was removed in r2599 <br />
*0014518: Add Perforce support to Daily Updates <br />
*0014346: Fix a couple of typos in file viewer <br />
*0014344: Cosmetics: Simplify some if conditions <br />
*0014343: Drop incorrect & pointless query on client libraries info update <br />
*0014513: Fix some html markdown issues <br />
*0014480: Fix seeming logout in file viewer <br />
*0014496: DOxygen menu should be renamed <br />
*0014478: Don't display errors when project gets unselected on Edit Project page <br />
*0014477: Drop unnecessary MySql-style quotes from SQL queries<br />
*0014469: Fix broken markdown on registration page <br />
*0014451: clientjobschedule.php doesn't encode project name before adding to submit URL <br />
*0014423: Drop left-over code <br />
*0014413: Fix grammar in coverage manager <br />
*0014412: Handle '0 builds' and '0 failed tests' cases properly<br />
*0014351: Fix lines of code calculation in the coverage viewer <br />
*0014350: Set Append property to false in upload xml handler as files are not appendable <br />
*0014189: dynamic analysis results not decoded <br />
*0012368: CDash's build results html should use monospace font for 'standard error' output <br />
*0014364: Add missing dot which prevented job id to be set in client script <br />
*0014374: Properly fetch result of SQL query on coverage info removal <br />
*0014375: Fix incorrect string quoting in SQL query in coveragefile2user model <br />
*0014341: Fix "user" table/function confusion <br />
*0014340: Fix undefined variable usage in sendemail <br />
*0010455: Show graph for <NamedMeasurement> <br />
*0013782: inconsistent last submission time for project and subprojects in the project dashboard <br />
*0013781: typo in manageBuildGroup.php <br />
*0013751: Error page <br />
*0013577: User Enumeration Vulnerability <br />
*0013491: CDash banner does not escape strings, potential SQL injection <br />
*0013256: cdash viewCoverage.php errors with new ajax interface <br />
*0013041: CDash 2 is still reporting wrong summary info for clock speed and RAM <br />
*0014621: Broken Filter Hyperlinks when enabling and then disabling Auto-refresh <br />
*0013943: Backup.php missing <br />
*0013428: Unknown column 'buildid' when running "Cleanup database" <br />
*0014514: svn log not updating with https:// and self signed certificate <br />
*0013079: Test attachment links broken when a test fails <br />
*0012994: Sorting by "Build Name" column doesn't work right when builds have OS icons <br />
*0012993: Times with milliseconds in them appear to be reported incorrectly <br />
*0012990: Strange formatting, and missing total test timing in "Build Time" tooltip <br />
*0012988: Column sort does not work for some columns in Coverage and Dynamic Analysis groups <br />
*0012985: "Show Build History" link does not show any builds <br />
*0012980: Last activity cannot be sorted on first page <br />
*0012978: Make FreeBSD a first class OS <br />
*0012950: login-based SQL injection <br />
*0012937: [CMake] Broken 'headerlogo' link if 'Home URL' is not set <br />
*0012949: CDash remove builds automatically even if $CDASH_AUTOREMOVE_BUILDS is not set <br />
*0012938: Unable to persitently change "Enable" flag in CDash Schedule Build <br />
*0013432: Registration Key URL in e-mail has one char to much at the end <br />
*0012984: CDash generated RSS produces date with 2 digit years; 4 digits preferred <br />
*0012948: Update data count misreported <br />
<br />
== CDash 2.0 ==<br />
<br />
=== New features ===<br />
<br />
* New and Simplified layout<br />
* Better management of asynchronous submission<br />
* Support for PostGreSQL 9<br />
* Improved security<br />
* Support for log rotation<br />
* Better support for new repository browsers<br />
* Improved users administration<br />
* $CDASH_WARN_ABOUT_UNREGISTERED_COMMITTERS option is now OFF by default to avoid flooding the log files. This option can still be overridden in the config.local.php<br />
<br />
=== Bugs fixed ===<br />
* [http://public.kitware.com/Bug/view.php?id=12555 0012555] Asynchronous processing of submission fails with drop site of the form: slicer4.cdash.org <br />
* [http://public.kitware.com/Bug/view.php?id=11809 0011809] "My Build Schedules" might benefit from an extra Comments or Description column <br />
* [http://public.kitware.com/Bug/view.php?id=12557 0012557] Option to hide source code in the coverage webpage <br />
* [http://public.kitware.com/Bug/view.php?id=11804 0011804] "My Build Schedules" list limited to 5 jobs; rest is inaccessible <br />
* [http://public.kitware.com/Bug/view.php?id=11521 0011521] PHP warning about MYSQL_BOTH <br />
* [http://public.kitware.com/Bug/view.php?id=12913 0012913] CDash fails to open update.xml file if CTEST_SITE variable contains a slash character <br />
* [http://public.kitware.com/Bug/view.php?id=10817 0010817] DynamicAnalysis is "green" and "0" even though all tests failed when run under memcheck <br />
* [http://public.kitware.com/Bug/view.php?id=12884 0012884] Adding "Subscribe" to the dashboard page <br />
* [http://public.kitware.com/Bug/view.php?id=12907 0012907] Delete user incomplete / blocks creation of new user with equal name <br />
* [http://public.kitware.com/Bug/view.php?id=12899 0012899] cdash 1.8.2 emails do not include header that indicates text encoding of content <br />
* [http://public.kitware.com/Bug/view.php?id=12885 0012885] When subscribing, "Project" combobox doesn't show current project <br />
* [http://public.kitware.com/Bug/view.php?id=10648 0010648] By default how to allow registered user to create new projects <br />
* [http://public.kitware.com/Bug/view.php?id=10742 0010742] CDash does not check for valid email <br />
* [http://public.kitware.com/Bug/view.php?id=10408 0010408] Time based reload for project dashboard page <br />
* [http://public.kitware.com/Bug/view.php?id=11939 0011939] CDASH cannot display Attached Files <br />
* [http://public.kitware.com/Bug/view.php?id=12314 0012314] description of 'test standard deviation' and 'test standard deviation threshold' is wrong <br />
* [http://public.kitware.com/Bug/view.php?id=10748 0010748] Log rotation <br />
* [http://public.kitware.com/Bug/view.php?id=12310 0012310] 'test time standard deviation' should be renamed <br />
* [http://public.kitware.com/Bug/view.php?id=10974 0010974] Build failures not highlighted <br />
* [http://public.kitware.com/Bug/view.php?id=10822 0010822] compute_update_statistics is undefined <br />
* [http://public.kitware.com/Bug/view.php?id=11799 0011799] "My Build Schedules" lists the same project name for all jobs <br />
* [http://public.kitware.com/Bug/view.php?id=11711 0011711] cdash/createRSS.php creates invalid RSS output <br />
* [http://public.kitware.com/Bug/view.php?id=10051 0010051] Wording of "Email preference" unclear <br />
* [http://public.kitware.com/Bug/view.php?id=11800 0011800] MySQL schema for client_jobschedule does not allow repeattime above 9.99 in newer MySQL versions <br />
* [http://public.kitware.com/Bug/view.php?id=12218 0012218] Update command fails to parse if it contains XML escaped quotes <br />
* [http://public.kitware.com/Bug/view.php?id=11201 0011201] Move the coverage legend on the left <br />
* [http://public.kitware.com/Bug/view.php?id=12368 0012368] CDash's build results html should use monospace font for 'standard error' output <br />
* [http://public.kitware.com/Bug/view.php?id=12164 0012164] CDash 1.6.4 cannot accept the special character <br />
* [http://public.kitware.com/Bug/view.php?id=12395 0012395] cdash login page 'remember me' checkbox does not work when using LDAP authentication <br />
* [http://public.kitware.com/Bug/view.php?id=12416 0012416] Error logs are never cleared <br />
* [http://public.kitware.com/Bug/view.php?id=09663 0009663] [CTest] CTest/CDash OS version & compiler information is lacking on Mac OS X <br />
* [http://public.kitware.com/Bug/view.php?id=07726 0007726] admin should be able to see/set other users settings <br />
* [http://public.kitware.com/Bug/view.php?id=10289 0010289] Patch for the support of hgweb navigation (mercurial) <br />
* [http://public.kitware.com/Bug/view.php?id=11409 0011409] viewErrorLog.php page does not show anything if buildid= *and* date= are given <br />
* [http://public.kitware.com/Bug/view.php?id=12341 0012341] Test names not escaped <br />
* [http://public.kitware.com/Bug/view.php?id=12360 0012360] [CTest] CDash colors for build graphs have poor contrast <br />
* [http://public.kitware.com/Bug/view.php?id=12384 0012384] [PATCH] Add support for the Redmine repository browser <br />
* [http://public.kitware.com/Bug/view.php?id=11737 0011737] CDash submission fails due to wrong parsing of geolocation info <br />
* [http://public.kitware.com/Bug/view.php?id=12585 0012585] Use "(empty)" instead of "" when site and build names come in empty from ctest <br />
* [http://public.kitware.com/Bug/view.php?id=10684 0010684] [CTest] ctest not reporting submission failures <br />
* [http://public.kitware.com/Bug/view.php?id=12396 0012396] [CTest] CDash should indicate the git hash of builds <br />
* [http://public.kitware.com/Bug/view.php?id=11608 0011608] Support new style of gitweb url <br />
* [http://public.kitware.com/Bug/view.php?id=11920 0011920] [CMake] Current svn -> cannot create project + header errors<br />
* [http://public.kitware.com/Bug/view.php?id=12638 0012638] Display Example URL of Reposiroty Viewer <br />
* [http://public.kitware.com/Bug/view.php?id=12631 0012631] Admin can't change user settings -- especially can't edit repository credentials <br />
* [http://public.kitware.com/Bug/view.php?id=10819 0010819] Make one more category for coverage files : "complete" or "perfect" <br />
* [http://public.kitware.com/Bug/view.php?id=12560 0012560] Support for PgSQL 9.x <br />
* [http://public.kitware.com/Bug/view.php?id=12559 0012559] Add database port in configuration file <br />
* [http://public.kitware.com/Bug/view.php?id=12403 0012403] CDash should report the time since reported builds <br />
* [http://public.kitware.com/Bug/view.php?id=12454 0012454] Missing CDASH_SERVER_PORT default in config.php <br />
* [http://public.kitware.com/Bug/view.php?id=12409 0012409] Autorefresh support <br />
* [http://public.kitware.com/Bug/view.php?id=11787 0011787] PHP errors when accessing with empty project name <br />
* [http://public.kitware.com/Bug/view.php?id=12404 0012404] Build management from main dashboard doesn't work on Safari <br />
* [http://public.kitware.com/Bug/view.php?id=12331 0012331] Additional search filters for LDAP based logins<br />
* [http://public.kitware.com/Bug/view.php?id=12308 0012308] WebApi - Method:project - Task:files - Sort files by uploaded date<br />
* [http://public.kitware.com/Bug/view.php?id=11639 0011639] Support committer name and email from git<br />
* [http://public.kitware.com/Bug/view.php?id=10659 0010659] Upgrade Jquery<br />
* [http://public.kitware.com/Bug/view.php?id=10930 0010930] 1.6.5: ctest/cdash report truncated names <br />
* [http://public.kitware.com/Bug/view.php?id=09790 0009790] URL into Trac svn browser wrong <br />
* [http://public.kitware.com/Bug/view.php?id=11432 0011432] Undefined variables <br />
* [http://public.kitware.com/Bug/view.php?id=11894 0011894] PHP warnings about split() <br />
* [http://public.kitware.com/Bug/view.php?id=11828 0011828] PHP warning about preg_match() <br />
* [http://public.kitware.com/Bug/view.php?id=10964 0010964] [CTest] CDash 1.6.4 - test output "crashes" the log page<br />
* [http://public.kitware.com/Bug/view.php?id=11663 0011663] Version 1.8.2 testDetails.php not loading stylesheet.<br />
<br />
== CDash 1.8 ==<br />
<br />
=== New features ===<br />
* Asynchronous submission<br />
* CDash@home beta version<br />
* Increasing number of tests and coverage<br />
* Build group specific auto-remove settings<br />
<br />
=== Bugs fixed ===<br />
* [http://public.kitware.com/Bug/view.php?id=10834 0010834] CDash should log php errors during submission<br />
* [http://public.kitware.com/Bug/view.php?id=10720 0010720] Upgrading PostgreSQL database from 1.7 to 1.8 gives "An error occured"<br />
* [http://public.kitware.com/Bug/view.php?id=10660 0010660] regex for BUG: bug_number<br />
* [http://public.kitware.com/Bug/view.php?id=10947 0010947] Sorting by test timing does not work on index.php<br />
* [http://public.kitware.com/Bug/view.php?id=10929 0010929] Spelling mistakes on code coverage pages<br />
* [http://public.kitware.com/Bug/view.php?id=10657 0010657] MyCDash - project creation blocked<br />
* [http://public.kitware.com/Bug/view.php?id=10649 0010649] Editing project in Chrome makes the repository field empty<br />
* [http://public.kitware.com/Bug/view.php?id=10647 0010647] HTTP Header should specify charset<br />
* [http://public.kitware.com/Bug/view.php?id=10269 0010269] Submission without 'ctest -D ...Build' reports entries in the dashboard 'build' column<br />
* [http://public.kitware.com/Bug/view.php?id=10260 0010260] Logo image doesnt appear on all pages of a Dashboard that uses Subprojects.<br />
* [http://public.kitware.com/Bug/view.php?id=10975 0010975] Negative numbers (for test counts, others?) appearing in subproject dashboard results<br />
* [http://public.kitware.com/Bug/view.php?id=11284 0011284] Buildname with spaces breaks javascript<br />
* [http://public.kitware.com/Bug/view.php?id=11167 0011167] Coverage threshold check should be greater than or equal to<br />
* [http://public.kitware.com/Bug/view.php?id=11125 0011125] Test.Exists() uses incomplete key, resulting in bogus test associations in DB<br />
* [http://public.kitware.com/Bug/view.php?id=11108 0011108] Build shows up more than once if it has more than one note added to it<br />
* [http://public.kitware.com/Bug/view.php?id=10976 0010976] Adding a user to a project sets 'no email' by default<br />
* [http://public.kitware.com/Bug/view.php?id=10767 0010767] Clicking on administration/Users in an arbitrary project leads to an error.<br />
* [http://public.kitware.com/Bug/view.php?id=10760 0010760] The <link> in build update feed should point to the build<br />
* [http://public.kitware.com/Bug/view.php?id=10721 0010721] Showing build errors (the yellow triangle) does not work<br />
* [http://public.kitware.com/Bug/view.php?id=10921 0010921] Sorting of time test does not work <br />
* [http://public.kitware.com/Bug/view.php?id=9941 0009941] Add buildmanagement functionality to CDash<br />
<br />
== CDash 1.6 ==<br />
<br />
=== New features ===<br />
* Support for persistent login<br />
* Better database compression<br />
* New graphs and reports<br />
* Improved coverage visualization<br />
* Better CTest communication<br />
* Expected submission time based on historic average<br />
* Faster load of the main dashboard page<br />
* Improved navigation links<br />
* Remote build management (beta) <br />
<br />
=== Bugs fixed ===<br />
* 0010290 CDash sends failed-test emails, even when this is disabled<br />
* 0010426 ClientJobSchedule::Save fails because of missing client_jobschedule table columns<br />
* 0010463 Shared project repositories not updated correctly<br />
* 0010332 cdash does not properly handle large xml files<br />
* 0010439 Command Lines in Build Error/Warning Display<br />
* 0010460 Subscription can be altered even if not admin<br />
* 0010313 Site description repeatedly escapes special characters<br />
* 0009174 tracing regressions<br />
* 0009276 Postgres does not like the build warnings with '\\' in them<br />
* 0010106 Marking "new" test failures on dashboard "view-failed-only" page.<br />
* 0008735 add ability to get email for missing builds on sites you do not own<br />
* 0008126 Improve Morale<br />
* 0009991 show which failures are new<br />
* 0010027 Feature Request: Compression of test output in the database<br />
* 0008341 itkrobot doesn't trigger message<br />
* 0010071 Empty iphone project page<br />
* 0009790 URL into Trac svn browser wrong<br />
* 0008854 Sort columns in "Manage Coverage Page"<br />
* 0009279 Allow --username for subversion<br />
* 0008171 Display longer history for a single build<br />
* 0008036 Filter out submissions based on IP address<br />
* 0007670 Delta on tests is nice but can mask actual status change.<br />
* 0008965 identify builds that my commit first appear in<br />
* 0007731 Graph of warnings and errors over time<br />
* 0009933 Configurable Tracker URL<br />
* 0007398 groups have "issues"<br />
* 0009928 Updated file count is always 0 for new submissions<br />
* 0008585 Maintainer page<br />
* 0008271 Activity graph<br />
* 0009848 "Edit subscription" should have a project-selection combo box<br />
* 0009820 Links/navigation are partly confusing<br />
* 0008367 Warnings and Errors are set to zero by default<br />
* 0009138 Project names with chars that must be escaped generate incorrect URLs<br />
* 0009295 "Time spent per project" only tracks last build<br />
* 0008948 Update.xml parsing should classify updated/modified/conflicting based on xpath<br />
* 0008736 better looking coverage<br />
* 0009856 "Dashboard" doesn't take me to dashboard for the project<br />
* 0009823 Build summary page should link to pieces<br />
* 0009855 Unsubscribing as project admin<br />
* 0009857 list of "Show public projects" not sorted<br />
* 0009034 Please add a "Show Coverage Percentage Graph" link to the buildSummary page for coverage builds<br />
* 0009669 Coverage page sorting is slow<br />
* 0008425 Flot doesn't work with IE 8 beta<br />
* 0008204 submission should not process files<br />
* 0009891 Build::GetIdFromName() doesn't check projectid for subproject<br />
* 0009890 Deleting project doesn't delete subprojects and labels<br />
* 0009818 Description is escaped for project<br />
* 0009815 projects not sorted on "My CDash" page<br />
* 0009794 CDash "forgets" me very fast...<br />
* 0009788 Dynamic Anyalsis truncated<br />
* 0009063 Display expected submission time based on historical average for expected builds that have not submitted yet<br />
* 0009706 Non-anonymous LDAP authentication (e.g. for Active Directory) - feature request and example implementation<br />
* 0009677 MySQL with STRICT_TRANS_TABLES fails<br />
* 0009668 Cannot move builds from index page on Chrome<br />
* 0009644 Only test timings after last database upgrade are shown<br />
* 0009338 Showing updates files does not work with PostgreSQL<br />
* 0009630 r1964 broke CDash when using PostgreSQL<br />
* 0009322 Show changes in test results<br />
* 0009154 build errors not issuing emails<br />
* 0009522 Persistent login<br />
* 0009359 Unable to invite users<br />
* 0009277 Database update is always needed<br />
* 0009340 Production mode shouldn't display install.php<br />
* 0009120 CDash generates wrong diff URLs for ViewVC (at least on NITRC.org)<br />
* 0009296 Passed test should not have "error" table background<br />
* 0009294 Processor information of build host is not parsed correctly<br />
* 0009266 Cannot remove Site<br />
* 0008957 Remember me login<br />
* 0008931 Need a way to "unclaim" a site that no longer submits<br />
* 0008881 Improve support for white spaces to NamedMeasurement with type text/string and/or text/plain types<br />
<br />
== CDash 1.4 ==<br />
<br />
=== New features ===<br />
*New XML parsing using SAX parsing instead of DOM (memory efficient)<br />
*Introduction of models (MVC framework)<br />
*Nightly testing of CDash itself<br />
** http://www.cdash.org/CDash/index.php?project=CDash<br />
*Support for subprojects (CMake/CTest CVS is required)<br />
** http://trilinos-dev.sandia.gov/cdash/index.php?project=Trilinos<br />
*Support for filters<br />
** allows showing just error builds, or builds from multiple days, or both<br />
** create hyperlink to filter results and bookmark it<br />
** example showing error builds from 3 days ago until now:<br />
** http://trilinos-dev.sandia.gov/cdash/index.php?project=Trilinos&display=project&filtercount=2&showfilters=1&filtercombine=and&field1=builderrors/number&compare1=42&value1=0&field2=buildstarttime/date&compare2=83&value2=3%20days%20ago<br />
*Support for labels on builds, tests, coverage files<br />
** use CVS CMake/CTest and set target, test or source file property LABELS<br />
*Improved navigation<br />
*Improved database indexing<br />
*Improved email reporting<br />
*Added email for coverage<br />
*Improved column sorting<br />
<br />
=== Bug Fixes ===<br />
*0008670 Failed tests shown in orange instead of red <br />
*0008643 New Email summary lines<br />
*0008117 disallow public registration <br />
*0008663 Sorting 'Dynamic Analysis' field 'Labels'<br />
*0008708 Add config.local.php<br />
*0008662 'Coverage' fields 'passed', 'failed', and 'Labels' are not sorting<br />
*0008638 'Dynamic Analsysis' columns can not be sorted<br />
<br />
*0006631 Logos that are too big (tall)<br />
*0007736 Root directory in websvn URL must have trailing slash for websvn paths to be generated correctly<br />
*0007771 Nightly changes should store previous revision<br />
*0008103 Timing test did not fail<br />
*0008127 Prevent spamming<br />
*0007920 ViewChanges crashes ViewCVS on newly created files<br />
*0007570 Test submission silently fails when test output is quite large. <br />
*0008616 Sending subproject email address regression lists in XML and updating CDash email lists <br />
*0008615 Sorting the 'Min' columns is not a numeric sort.<br />
*0008191 pdo_query() does not work if it is not MySQL<br />
*0008469 Coverage broken in SVN<br />
*0008462 Only 412 test results shown<br />
*0008740 NotRun/Fail/Pass tests reports don't report what they should report<br />
*0007713 Upgrading Database should now use previous version<br />
*0007884 Ask CDash not to fill IP addresses<br />
*0008679 XML Parsing problem should send email<br />
*0008783 Email Preference not greyed out on subscription page when ""Email Broken Submission"" is unchecked<br />
*0007724 Configure warnings and errors should trigger email<br />
*0008810 When Editing a project, createProject.php get an error calling fopen."<br />
*0008119 use admin email address as sender address in password emails<br />
*0008610 content of coverage differs to Coverage.xml<br />
*0007855 CDash sends duplicate emails for the same build<br />
*0008760 build failures not being sent out for all dashboard reported build errors<br />
*0008730 Not sending out email notifications for failed configure?<br />
*0008592 Main project/subproject page should be able to filter only Nightly tests<br />
*0008645 Coverage testing link times out<br />
*0008318 viewUpdate.php with PosgreSQL fails<br />
*0008368 XAMPP flaws<br />
*0007908 Make possible to sort Code Coverage rows by submission time <br />
*0008468 Help not closable on small screen <br />
*0008484 Configure log field is too small <br />
*0006468 go to a bug reference from a commit log <br />
*0007778 User can register with the same email address <br />
*0008460 Upgrade to jquery 1.3 <br />
*0007861 Upgrade from 1.0.2 to 1.2.1 breaks Groups<br />
*0007907 Time units missing in detailed test report<br />
*0008125 multiple users can share the same email address<br />
*0008451 Coverage should be sorted by status by default<br />
*0008448 cannot set CVS/SVN ViewerURL - CDash SVN trunk<br />
*0008287 Project name should be trimmed<br />
*0008254 User subscription public project<br />
*0008160 Performance issue when submiting test<br />
*0007916 Check that backup and rss directories are writable<br />
*0008202 Project logo not displayed with PostgreSQL<br />
*0008118 password recovery email seems to be bad html<br />
*0008113 Wrong SQL query leads to not storing results<br />
*0008084 Database name cannot contain minus (-)<br />
*0007848 CDash admin privileges lacking some key actions<br />
*0007847 Admin/users account can become permanently inaccessible<br />
*0007853 Builds sent from differnt sites can clobber each other<br />
*0007582 Charset encoding issues<br />
*0007806 MySQL error creating build groups<br />
*0007871 Installation check for php5-gd<br />
*0007805 The same image can't have multiple roles for a given test<br />
<br />
== CDash 1.2 ==<br />
<br />
=== New features ===<br />
*0006801 Test Failure History Graph<br />
*0007556 ViewSite page should list the users who claimed a site<br />
*0007499 Summarize busytime by site<br />
*0007204 Error summary page<br />
*0007537 Feature request: loggerhead support<br />
*0007116 Add functionality to send email to all site claimers<br />
*0007124 Add warning and minutes column to the cfg-column<br />
*0006943 Feature Request: Use Time, Pass/Fail graphs for navigation<br />
*0007209 add a user or group of users from the admin file without a file upload<br />
*0007266 seeking ViewVC support in CDash<br />
*0007420 Support for WebSVN<br />
*0006606 Support for other databases<br />
*0007068 Support for multiple repositories update<br />
*0007212 Password recovery<br />
*0007063 Support <Measurement> tags containing HTML<br />
*0006646 Compressing notes<br />
*0007019 Email notification of nigthly builds<br />
*0006466 Email when an expected nightly does not show up.<br />
*0007636 +- reporting on the coverage<br />
<br />
=== Bugs fixed ===<br />
*0007573 Only builds from default groups show when All is selected in Global Move.<br />
*0007535 Tests are not sorted by build time<br />
*0007497 email should be sent when an expected nightly does not show up<br />
*0007532 Claim sites list is slow to generate and unsorted<br />
*0007504 <DartMeasurement> output is not SQL-escaped<br />
*0006492 There are no options to define "broken"<br />
*0007458 add_coverage produce SQL error<br />
*0007019 email notification of nigthly builds<br />
*0006842 make browser back button and the date forward/backward buttons smarter<br />
*0007210 time error hides number summary of test time<br />
*0007368 Detail in build warning/error emails<br />
*0007246 test summary page shows previous days builds<br />
*0007422 Configuration option to request full email in manage project roles<br />
*0007051 Timing tests have too many false positives<br />
*0006996 Cannot view graphs<br />
*0007252 OS Name and Version not displayed in viewSite<br />
*0007405 Number of files covered unsatisfactorily is wrong<br />
*0007293 CDash doesn't show all modified and conflicted files<br />
*0006841 show number of new errors rather than total number of errors<br />
*0007299 cdash install issues<br />
*0007262 Email always sent for experimental builds<br />
*0007247 URL encoding in CTestConfig<br />
*0007188 CDash: buildSummary.php reports update time when no update has been made<br />
*0007211 Better visualization of the code coverage (more prominent indication of uncovered line)<br />
*0007135 Timing test statistics should not sample timing value for a failing test<br />
*0007112 Login information not saved<br />
*0007113 Cannot directly link to pages in protected projects<br />
*0007064 CDash: CDash content of coverage differs to Coverage.xml<br />
*0007066 Documentation link<br />
*0007053 CDash loses my identity and getting it back requires manually going back to CDash start page.<br />
*0007052 Redirect user to login page when private project is not accessible<br />
*0007017 Help screen cannot be dismissed if browser window is small<br />
*0007021 Parse cvs/svn/git commit comments and make URL expressions clickable hyperlinks<br />
*0007018 Output from test is truncated<br />
*0007654 Coverage file are truncated<br />
*0007573 Only builds from default groups show when All is selected in Global Move.<br />
*0006492 There are no options to define "broken"<br />
*0007535 Tests are not sorted by build time<br />
*0007667 Submitting using a custom track/group name partially fails when contains a dash<br />
*0007668 Broken image link on database upgrade<br />
*0007648 Commit ordering issue in Nightly Changes page of VTK Cdash (1.0.3)<br />
*0007639 Build group description required by MySQL but not set by PHP build group commands<br />
<br />
== CDash 1.0.2 ==<br />
=== Bugs fixed ===<br />
* 0007016 Create Group does not work under Opera and IE<br />
* Email submission not working for individual users<br />
* Several cosmetic fixes<br />
<br />
== CDash 1.0 ==<br />
=== Bugs fixed ===<br />
* 0006384 Detecting timing defects<br />
* 0006371 Having the number of nightly changes on the main page<br />
* 0006497 Method to mark compile warnings, compile errors, and test failures with "fix in progress" or "fixed"<br />
* 0006508 Test Results information is incomplete for itk<br />
* 0006894 Wrong number of dynamic analysis defects<br />
* 0006878 Support for timestamp CTest 2.6<br />
* 0006612 Bad BuildTimeGraph on buildSummary page for continuous build<br />
* 0006843 Support of different cvs/svn/web viewers<br />
* 0006582 CVS Link to a version 1.1 file is invalid<br />
* 0006664 Incorrect timing and detail report on viewTest page<br />
* 0006832 Previous Build Incorrect<br />
* 0006807 RSS feed with private project<br />
* 0006797 Previous build on build summary page<br />
* 0006805 Warning when backup and rss directory are not writable<br />
* 0006798 Warning message when browsing coverage<br />
* 0006772 Warnings when searching for emails on manageProjectRoles page<br />
* 0006472 Add ability to remove bogus builds<br />
* 0006601 Project administrator cannot remove an expected build if it is not submitting<br />
* 0006471 Add a quick way to upload a cvs/svn user to password file for email notification<br />
* 0006715 PROJECT pulldown under DASHBOARD pulldown<br />
* 0006602 Sort by any column on the viewTest and testSummary pages<br />
* 0006681 Fisheye URL support<br />
* 0006653 Mouse-over build groups<br />
* 0006655 Project logo hyperlink<br />
* 0006942: Show Test Time Graph does not toggle in Internet Explorer<br />
* 0006939: Separate lists of failing tests from list of passing tests<br />
<br />
=== Database modification ===<br />
* Added ‘description’ to table buildgroup<br />
* Added cvsviewertype to table project<br />
* Added index siteid in table site2user<br />
* Added index starttime in table build<br />
* Added index name in table test (this might take some time to run)<br />
* Added crc32 with index in table coveragefile <br />
* Compressing coverage (this might take some time to run)<br />
* Add support for timestatus in build2test table</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Tagging&diff=61098CDash:Tagging2016-12-28T14:42:04Z<p>Zack: </p>
<hr />
<div>To release a new CDash (let's say revision 1.2) please follow these steps:<br />
<br />
* Update the version in package.json and include/version.php to 1.2.0<br />
* Add the following lines to js/cdashUpgrade.js and s:<br />
<br />
else if(version < 1.4)<br />
{<br />
nextstep = upgrade_1_4;<br />
}<br />
<br />
function upgrade_1_4()<br />
{<br />
var text = "Applying 1.4 patches";<br />
$("#Upgrade-1-4-Status").html("<img src=\"images/loading.gif\"/> "+text+"...");<br />
sendAjax("#Upgrade-1-4-Status","upgrade.php?upgrade-1-4=1",text,done); <br />
}<br />
<br />
* In upgrade.xsl add:<br />
<nowiki><div id="Upgrade-1-4-Status"></div></nowiki><br />
<br />
* In upgrade.php add:<br />
<br />
<nowiki>// 1.4 Upgrade<br />
if(isset($_GET['upgrade-1-4']))<br />
{ <br />
// Set the database version<br />
setVersion();<br />
<br />
// Put that the upgrade is done in the log<br />
add_log("Upgrade done.","upgrade-1-4");<br />
return;<br />
}</nowiki><br />
<br />
* Make a commit from these changes with the message "CDash 1.2.0".<br />
* Change the version in package.json and version.php to 1.3.0<br />
* Commit this change as "CDash 1.3.0 (development version)"<br />
* After these commits have been merged to master, tag the "CDash 1.2.0" commit as "Release-1-2-0" and push the tag upstream.<br />
<br />
* Upgrade the change log:<br />
<br />
http://public.kitware.com/Wiki/CDash:Upgrade#Change_logs</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Tagging&diff=61097CDash:Tagging2016-12-28T13:54:20Z<p>Zack: </p>
<hr />
<div>To release a new CDash (let's say revision 1.2) please follow these steps:<br />
<br />
* Update the version in package.json and include/version.php to 1.2.0<br />
* Add the following lines to js/cdashUpgrade.js and s:<br />
<br />
else if(version < 1.4)<br />
{<br />
nextstep = upgrade_1_4;<br />
}<br />
<br />
function upgrade_1_4()<br />
{<br />
var text = "Applying 1.4 patches";<br />
$("#Upgrade-1-4-Status").html("<img src=\"images/loading.gif\"/> "+text+"...");<br />
sendAjax("#Upgrade-1-4-Status","upgrade.php?upgrade-1-4=1",text,done); <br />
}<br />
<br />
* In upgrade.xsl add:<br />
<nowiki><div id="Upgrade-1-4-Status"></div></nowiki><br />
<br />
* In upgrade.php add:<br />
<br />
<nowiki>// 1.4 Upgrade<br />
if(isset($_GET['upgrade-1-4']))<br />
{ <br />
// Set the database version<br />
setVersion();<br />
<br />
// Put that the upgrade is done in the log<br />
add_log("Upgrade done.","upgrade-1-4");<br />
return;<br />
}</nowiki><br />
<br />
* Make a commit from these changes with the message "CDash 1.2.0".<br />
* Change the version in package.json and version.php to 1.3.0<br />
* Commit this change as "CDash 1.3.0 (development version)"<br />
* After these commits have been merged to master, tag the "CDash 1.2.0" commit as "v1.2.0" and push the tag upstream.<br />
<br />
* Upgrade the change log:<br />
<br />
http://public.kitware.com/Wiki/CDash:Upgrade#Change_logs</div>Zackhttps://public.kitware.com/Wiki/index.php?title=File:Vpwp.svg&diff=61096File:Vpwp.svg2016-12-27T19:01:20Z<p>Zack: </p>
<hr />
<div></div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Documentation&diff=60962CDash:Documentation2016-10-27T17:50:21Z<p>Zack: /* Filters on index.php */</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
This page is the official CDash documentation.<br />
<br />
= CDash definitions =<br />
<br />
* '''Build:''' Single submission to the dashboard for a specific project, environment and build type.<br />
* '''Build type:''' reference by CTest as Nightly, Experimental or Continuous. (see CMake documentation for more information).<br />
* '''Site:''' Computer contributing builds to the dashboard. A site might belong to several projects and submit different build.<br />
* '''Coverage:''' Number of lines of code actually tested. CDash/CTest currently supports gcov and bulleyes tools.<br />
* '''Dynamic Analysis:''' reports the memory allocation/deallocations analysis for test, examples and executable for the project. Valgrind is currently supported by CTest/CDash.<br />
* '''Nightly start time:''' starting time of the 24h window of the daily dashboard.<br />
* '''Ajax:''' Asynchronous JavaScript and XML, is a group of web development techniques used for creating interactive web applications.<br />
* '''[http://php.net PHP]:''' Hypertext Preprocessor, is a computer scripting language, designed for producing dynamic web pages.<br />
* '''SQL:''' Structured Query Language, is a database computer language designed for the retrieval and management of data in relational database management systems.<br />
<br />
= Login to CDash =<br />
CDash uses secure login for users and adminsitrators. CDash does not store any plain text passwords in the database, therefore passwords cannot be recovered, even by system administrators. <br />
<br />
''Note: LDAP is not currently supported.''<br />
<br />
* To login, click on the 'Login' link at the top of the main CDash page or directly go to the user.php page http://myserver/CDash/user.php.<br />
* If you don't have a login, click on the 'register' link on the top menu. In order to register, CDash requires a valid email address, your first name, last name and password. The institution is optional. CDash implements some security features to avoid robots to register.<br />
* Once registered you are ready to type your email and password provided in the login screen.<br />
<br />
= Available Dashboards =<br />
[[Image:CDashIndexTable.jpg|thumb|CDash index table]]<br />
<br />
The first page display on CDash is a list of current public projects (private projects are not shown on this page). Several information are shown on this page:<br />
<br />
* The name of the project<br />
* The total number of submissions for each project<br />
* The date of the first build for each project<br />
* The date of the last submission (not build time)<br />
<br />
* To total size of the database<br />
<br />
Clicking on the name of the project redirects the user to the main dashboard for this project.<br />
<br />
= Project Dashboard =<br />
[[Image:CDashMainDashboard.jpg|thumb|Project's dashboard page]]<br />
[[Image:CDashHelp.jpg|thumb|Help link from the main dashboard page]]<br />
<br />
Each project dashboard have a similar layout:<br />
* Top row of the page:<br />
** Link to "My CDash/Login"<br />
** Current date of the server hosting CDash<br />
** Link to RSS feed to the project (if not private)<br />
* Banner:<br />
** Custom project logo (see [[CDash:Administration#Updating_project.E2.80.99s_logo | Updating project's logo]] to upload a new logo). ''Note: clicking on the logo redirects to the project's home page (if any defined)''<br />
** Project's name<br />
* Main Menu<br />
** '''Dashboard:''' goes back to the list of projects hosted on CDash<br />
*** '''Updates:''' Overview of the updates for this day and this project<br />
*** '''Builds:''' Overview of the builds for this day and this project<br />
*** '''Tests:''' Overview of the test failing for this day and this project<br />
*** '''Map:''' Map of the sites for this project and this day<br />
** '''Calendar:''' display a calendar to check previous dashboards<br />
** '''Previous:''' Go to the previous day<br />
** '''Current:''' Go to the current day<br />
** '''Next:''' Go to the next day<br />
** '''Project:''' Project links<br />
*** '''Home:''' Home URL<br />
*** '''Doxygen:''' Documentation page for this project<br />
*** '''CVS:''' Link to the CVS/SVN viewer for this project<br />
*** '''Bugs:''' Link to the bug tracker for this project<br />
* '''Daily updates:''' Updates on the project's repository. <br />
* '''Help link:''' popup a window with help information<br />
* Build groups: explained in the next section.<br />
* Coverage: explained in the next section.<br />
* Dynamic Analysis: explained in the next section.<br />
<br />
== Build groups ==<br />
<br />
Each build submitted by a site corresponds to a row in the main dashboard. By default the build falls in the group defined by the type of submission (i.e Nightly, Experimental or Continuous), however, custom builds can be defined. See [[CDash:Administration#Build_Groups | Build Groups]] administration section for more information on how to create new groups and define rules for builds.<br />
<br />
* Mouse hover the top row of a build group, shows the quick link bar to quickly jump to a different group.<br />
* Expected builds are shown as a empty row in the dashboard if they have not been submitting.<br />
<br />
=== Default group ===<br />
[[Image:CDashSorting.jpg|thumb|Muli-columns sorting]]<br />
[[Image:CDashGroup.jpg|thumb|Group description]]<br />
[[Image:CDashShowNote.jpg|thumb|Note for a build]]<br />
<br />
In this section we explain the layout of default groups (i.e. Nightly, Experimental, Continuous,...). These groups are represented in the light blue sections.<br />
<br />
'''Clicking on the gray header allow sorting the table by the clicked field. Multisorting is possible by holding the shift key.''', also the current sorting is saved by the user's web browser using cookies, allowing to keep the same sorting while browsing different days for the same project.<br />
<br />
Clicking on the group name displays the build group description.<br />
<br />
Each build (row) contains the following information:<br />
* '''Site:''' Name of the site submitting the build. Clicking on the name redirects to site description.<br />
* '''Build name:''' Name of the build. Clicking on the name redirects to the build summary page.<br />
** '''Build note:''' If submitted with CTest and configure with build notes, a small icon shows the build note. Clicking on the icon displays the CTest script used to submit the page.<br />
** '''CTest version:''' If submitted with CTest, a small icon displays the CTest version.<br />
** '''Build info:''' If a build is expected and has not been submitting, or if a build has errors or warnings or tests failing, then a build info icon is present. Clicking on the build info icon trigger an ajax request that displays more information about this build.<br />
** '''Notes:''' If someone submitted a note for this build, mouse hover the note icon will display the current notes.<br />
* '''Update:''' Shows the number of files updated (from the SVN/CVS repository) for this build. Clicking on the number shows the name and information of the updated files.<br />
* '''Cfg:''' Shows the configuration errors. If red, some errors occurred while configuring the project. Clicking on the number displays the current configuration status.<br />
* '''Build:''' Displays the principal build information.<br />
** '''Error:''' Number of build errors.<br />
** '''Warn:''' Number of build warnings.<br />
** '''Min:''' Time (in minutes) it took to build the project.<br />
* '''Test:''' Displays information about the test.<br />
** '''Not Run:''' Number of test not run (because not found for instance).<br />
** '''Fail:''' Number of test failed. Clicking on the number show the name of the failing tests. If time status is enabled for the project, it is reflected here.<br />
** '''Pass:''' Number of test passed. Clicking on the number show the name of the passing tests. If time status is enabled for the project, it is reflected here.<br />
** '''Min:''' Time it took to run all the tests.<br />
* '''Build time:''' Time when the build started expressed in the timezone of the webserver. This is different from the time when the build was submitted.<br />
<br />
=== Coverage ===<br />
[[Image:CDashCoverage.jpg|thumb|Coverage section of the dashboard]]<br />
<br />
CDash supports gcov and bullseye as coverage tools.<br />
The main dashboard displays the following information:<br />
<br />
* '''Site:''' name of the site<br />
* '''Build name:''' name of the build<br />
* '''Percentage: ''' Overall coverage percentage (for all files in the project).<br />
* '''Passed:''' Number of lines of code that are tested.<br />
* '''Failed:''' Number of lines of code that are not tested.<br />
* '''Date:''' Build starting date.<br />
<br />
=== Dynamic Analysis ===<br />
[[Image:CDashDynamicAnalysis.jpg|thumb|Dynamic Analysys section of the dashboard]]<br />
<br />
CDash supports [http://valgrind.org valgrind] as the main dynamic analysis tool.<br />
The main dashboard displays the following information:<br />
<br />
* '''Site:''' Name of the site<br />
* '''Build name:''' Name of the build<br />
* '''Checker: ''' Name of the checker.<br />
* '''Defect count:''' Number of memory defects.<br />
* '''Date:''' Build starting date.<br />
<br />
== Daily updates ==<br />
<br />
CDash stores the daily updates in the database for a quick query. The number of files changed for that day as well as the number of authors who changed the files are displayed. Clicking on the number of files changed display the name of the files and more information.<br />
<br />
See the [[CDash:Design#Daily_Updates | Daily Updates Design]] section for more information.<br />
<br />
== Map ==<br />
[[Image:CDashMap.jpg|thumb|Map of the sites contributing to a project]]<br />
<br />
CDash stores the geolocation from the IP address for the sites and displays them on a map via Google map API. This allows to quickly browse where the builds are coming from. Clicking on a pin on the map, shows the name of the site.<br />
<br />
See [[CDash:Design#Map_and_Geolocation | Map and Geolocation]] design page for more information.<br />
<br />
= My CDash =<br />
<br />
[[Image:CDashMyCDash.jpg|thumb|MyCDash page]]<br />
<br />
Each user has its own personal section in CDash, where they can keep track of recent builds, submissions, claim sites and more.<br />
<br />
== My Profile ==<br />
<br />
User can change their profile: First/Last name, email, institution and password from the the "My Profile" menu at the top of the "My CDash" page.<br />
<br />
== My Projects ==<br />
<br />
If a user has subscribe to at least a project (see [[CDash:Documentation#Subscribe_to_project | Subscribe to project]]), the list of subscribed projects is shown under "My Projects". There several links related to the subscriptions.<br />
<br />
=== Edit Subscription ===<br />
<br />
Users can edit their subscription for a given project.<br />
<br />
# From MyCdash page, under My Projects, click on [Edit subscription]<br />
# Change the role if necessary. '''Downgrading from project administrator to Site maintainer or normal user cannot be reverted unless by another project administrator'''.<br />
# Change or add CVS/SVN login<br />
# Change the email preferences if necessary<br />
# Click on "Update Subscription" to validate the modifications<br />
<br />
Users can unsubscribe from a project by clicking on the "Unsubscribe" button. Users will be able to subscribe later on.<br />
<br />
=== Claim sites ===<br />
See [[CDash:Documentation#Claim a site | Claim a site]] section.<br />
<br />
=== Edit project ===<br />
See [[CDash:Administration#Editing_a_project | Editing a project]] section.<br />
<br />
=== Manage project groups ===<br />
See [[CDash:Administration#Build_Groups | Build groups]] section.<br />
<br />
=== Manage project roles ===<br />
See [[CDash:Administration#Project_Roles | Project roles]] section.<br />
<br />
== My Sites ==<br />
<br />
[[Image:CDashMySites.jpg|thumb|My sites]]<br />
<br />
As a site maintainer, it is useful to know if submissions have been missing for quite sometime, or if the current builds on a specific sites are not reporting errors due to misconfiguration.<br />
<br />
* The first column show the list of currently claimed sites.<br />
* The first row shows the current projects that are submitting builds for the given site<br />
* For each pair (site/project) a summary of the current status of the dashboard is displayed<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Build group !! Updates !! Errors !! Warnings !! Tests !! Last submission<br />
|-<br />
| N: Nightly || 1 || 0 || 0 || 0 || Today<br />
|-<br />
| C: Continuous || 1 || 0 || 0 || 0 || Yesterday<br />
|-<br />
| E: Experimental || 1 || 0 || 0 || 0 || 6 days ago<br />
|}<br />
<br />
''Note: only Nightly, Continuous and Experimental groups are current shown'.' <br />
<br />
Clicking on the name of a site gives access to the description of the site.<br />
<br />
== Public projects ==<br />
<br />
List of all the public projects stored in CDash. By definition, users registered in CDash can subscribe to any public projects.<br />
<br />
= Subscribe to project =<br />
<br />
[[Image:CDashSubscribeProject.jpg|thumb|Subscribing to public projects]]<br />
<br />
If the project is public then users can subscribe to the project themselves, otherwise see section [[CDash:Administration#Project_Roles | Project Roles]].<br />
<br />
# Log into CDash (see [[CDash:Documentation#Login_to_CDash | Login to CDash]])<br />
# Under "Public projects" section click on [Subscribe to this project]<br />
# Select your role for the project: '''Normal user''' or '''Site maintainer''' if you are responsible for a machine sending periodic builds to the dashboard/<br />
# Add your CVS/SVN login for the project if you have any<br />
# Select your email preference<br />
# Click on subscribe<br />
<br />
= Claim a site =<br />
[[Image:CDashClaimSite.jpg|thumb|Claiming a site]]<br />
<br />
CDash allows '''Site maintainers''' (see [[CDash:Documentation#Subscribe_to_project | Subscribe to Project]]) to claim a site they are managing. This allows users to have personal reports regarding a specific machine and get informed if the machine has not been submitting from quite some time or has unexpected high number of failures (probably due to misconfiguration).<br />
<br />
In order to claim a site:<br />
<br />
# Login to CDash to acces "My CDash"<br />
# Under "My Projects" select [Claim sites]. If the project is not listed, refers to [[CDash:Documentation#Subscribe_to_project | Subscribe to Project]] for more information.<br />
# The Claim sites page show the list of current sites for the project. Check the site(s) of interest.<br />
# Click on "Update claimed sites"<br />
<br />
In order to unclaim a site:<br />
<br />
# Login to CDash to acces "My CDash"<br />
# Under "My Projects" select [Claim sites].<br />
# Uncheck the site(s) no longer of interest.<br />
# Click on "Update claimed sites"<br />
<br />
See the section [[CDash:Documentation#Describe_a_site | Describe a site]] for information about the given sites.<br />
<br />
= Describe a site =<br />
[[Image:CDashSiteSpecifications.jpg|thumb|Describing a site]]<br />
[[Image:CDashSite.jpg|thumb|Site information]]<br />
<br />
CDash records each site specifications so that users can quickly assess the type of machine, OS, memory, etc...<br />
<br />
'''If using the CTest 2.6 (or higher) the site specifications are automatically sent as part of the submission.'''<br />
<br />
Here's the list of specification currently present:<br />
<br />
*'''Name:''' '''This value shouldn't be changed, unless the site name sent by the build was wrong. Make sure the name of the build matches CTest buildname otherwise a new site will be created.'''<br />
*'''64 bits:''' Is the machine running a 64bits OS<br />
*'''Processor vendor:''' vendor name of the processor (i.e. GenuineIntel)<br />
*'''Processor vendor ID:''' vendor identification of the processor (i.e. Intel Corporation)<br />
*'''Processor family ID:''' family identification number of the processor (i.e. 15)<br />
*'''Processor model ID:''' model identification number of the processor, usually depending on the processor family (i.e. 3)<br />
*'''Processor cache size:''' size of the processor cache in MB.<br />
*'''CPU Speed (MHz):''' speed of the CPU in MHz.<br />
*'''Number of logical CPUs:''' Number of logical CPU per physical CPU.<br />
*'''Number of physical CPUs:''' Number of physical CPU.<br />
*'''Logical Processor per Physical:'''Number of logical processor per physical<br />
*'''Total virtual memory (MB):''' Total virtual memory in MB.<br />
*'''Total physical memory (MB):''' Total physical memory (RAM) in MB.<br />
*'''Description:''' Description of the machine.<br />
*'''IP address:''' Current IP address. This is filled in automatically by CDash<br />
*'''Latitude:''' Geolocation from the IP address<br />
*'''Longitude:''' Geolocation from the IP address<br />
<br />
'''CDash keeps an history''' of the machine description, in case of memory or processor upgrade. This is particularly useful to assess why a test is now running much faster than before. If the system has been upgraded, the checkbox "Force new description revision" should be checked. Note that CDash should automatically detect if a site has been upgraded.<br />
<br />
''Note: support for other specifications, such as graphic card information and more detailed information might be added in the near future.''<br />
<br />
= Graphs =<br />
<br />
CDash relies on the flot javascript library for graphing. See the section [[CDash:Design#Graphs | Graphs]] for information.<br />
CDash curently plots three types of graph as explained below.<br />
<br />
== Build time graph ==<br />
[[Image:CDashBuildGraph.jpg|thumb|Build time graph]]<br />
<br />
The time requires to build a project is recorded as part of CTest. Sometimes it might be useful to track the build time overtime. In order to do so:<br />
<br />
# Go to the main dashboard for the project<br />
# Click on the build name you want to track<br />
# On the build summary page, click on [Show Build Time Graph], this performs an Ajax request to the database.<br />
<br />
== Test time graphs ==<br />
<br />
CDash plots graphs of the time it takes to run a specific test as well as its status (passed/failed) overtime. <br />
<br />
To look at these graphs:<br />
<br />
# Go to the main dashboard for a project<br />
# Click on the number of test passed or failed<br />
# From the list of tests, click on the status of the test.<br />
# Click on [Show Test Time Graph] and/or [Show Failing/Passing Graph]<br />
<br />
<br />
<br />
= Adding notes to a build =<br />
[[Image:CDashAddNote.jpg|thumb|Adding a note to a build]]<br />
In some cases, it is useful to tell other developers that you are currently looking at the errors for a builds and informed them. CDash implements a simple note mechanism.<br />
<br />
* Login to CDash<br />
* On the dashboard project page, click on the build name to which you want to add the note.<br />
* Click on [Add a Note to this Build] link, located next to the current build matrix (see thumbnail)<br />
* Enter a small message corresponding to the note<br />
* Select the status of the note: '''Simple note''', '''Fix in progress''', '''Fixed'''.<br />
* Click on "Add Note"<br />
<br />
= Build summary =<br />
<br />
CDash summarizes the build errors and warnings on a single page. The errors are grouped by file and line number. It makes easier to fix source code.<br />
In order to see the build summary:<br />
<br />
# Go to the main dashboard for the project<br />
# In the main menu select Dashboard->Builds<br />
<br />
= Filters =<br />
Some CDash pages allow you to use '''filters''' to narrow down the results to what's important to you.<br />
<br />
== Filters on index.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Build Duration || How long the build took to complete || 14m 58s<br />
|-<br />
| Build Errors || How many errors occurred during the build step || 1<br />
|-<br />
| Build Warnings || How many warnings occurred during the build step || 5<br />
|-<br />
| Build Name || The name of the build || Linux-cxx<br />
|-<br />
| Build Stamp || The CTest-generated TAG for this build || 20090223-0100-Nightly<br />
|-<br />
| Build Start Time || When this build started (including any update/configure/etc) || 2009-02-23 01:00:00 UTC<br />
|-<br />
| Build Type || What type of build this is || Experimental<br />
|-<br />
| Configure Duration || How long this build took to configure || 2m 45s<br />
|-<br />
| Configure Errors || How many errors occurred during the configure step || 2<br />
|-<br />
| Configure Warnings || How many warnings occurred during the configure step || 3<br />
|-<br />
| Expected || Whether or not this build has been marked as expected || true<br />
|-<br />
| Group || The name of this build's group || Nightly<br />
|-<br />
| Has Coverage || Whether or not this build performed coverage || true<br />
|-<br />
| Has CTest Notes || Whether or not any notes were uploaded with this build || false<br />
|-<br />
| Has Dynamic Analysis || Whether or not this build performed dynamic analysis || true<br />
|-<br />
| Has User Notes || Whether or not a CDash user left a note on this build || true<br />
|-<br />
| Label || Search for builds with a given label || vtkCommonCore<br />
|-<br />
| Revision || The version of the source code that was built (git SHA1, SVN version, etc) || e19dbfa<br />
|-<br />
| Site || Search for builds from a given site || kamino<br />
|-<br />
| Submission Client || What client was used to submit this build || ctest-3.0<br />
|-<br />
| SubProjects || Whitelist or blacklist SubProject results || my-subproject-name<br />
|-<br />
| Tests Duration || How long this build took to test || 5m 23s<br />
|-<br />
| Tests Failed || How many tests failed || 4<br />
|-<br />
| Tests Not Run || How many tests couldn't be run || 10<br />
|-<br />
| Tests Passed || How many tests passed || 20<br />
|-<br />
| Tests Timing Failed || [[CDash:Design#Test_Timing|How many tests failed the time status check]] || 8<br />
|-<br />
| Update Duration || How long this build took to update || 45s<br />
|-<br />
| Updated Files || How many source files were updated before this build || 5<br />
|}<br />
<br />
== Filters on queryTests.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Build Name || The name of the build that performed this test || Linux-c++<br />
|-<br />
| Build Start Time || When this build started (including any update/configure/etc) || 2009-02-23 01:00:00 UTC<br />
|-<br />
| Details || Information about how this test exited || OTHER_FAULT<br />
|-<br />
| Label || Search for tests with a given label || vtkCommonCore<br />
|-<br />
| Site || Search for tests run on a given site || kamino<br />
|-<br />
| Status || Search for tests with a given status || passed<br />
|-<br />
| Test Name || The name of the test || kwsys.testHashSTL<br />
|-<br />
| Time || How long this test took to run (in seconds) || 12.73<br />
|}<br />
<br />
== Filters on testOverview.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Build Name || The name of the build(s) whose tests you're interested in || Linux-c++<br />
|}<br />
<br />
== Filters on viewCoverage.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Covered Lines || The number of covered lines in this file || 50<br />
|-<br />
| Filename || The name of this file || foo.cxx<br />
|-| Labels || Search for source files with a given label || vtkCommonCore<br />
|-<br />
| Priority || The priority of this source file || 2<br />
|-<br />
| Total Lines || The number of coverable lines in this file || 100<br />
|-<br />
| Uncovered Lines || The number of uncovered lines in this file || 25<br />
|}<br />
<br />
== Filters on viewTest.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Details || Information about how this test exited || OTHER_FAULT<br />
|-<br />
| Label || Search for tests with a given label || vtkCommonCore<br />
|-<br />
| Status || Search for tests with a given status || passed<br />
|-<br />
| Test Name || The name of the test || kwsys.testHashSTL<br />
|-<br />
| Time || How long this test took to run (in seconds) || 12.73<br />
|-<br />
| Time Status || [[CDash:Design#Test_Timing|Whether or not this build failed the time status check]] || 1<br />
|}</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Documentation&diff=60954CDash:Documentation2016-10-24T14:34:09Z<p>Zack: /* Filters */</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
This page is the official CDash documentation.<br />
<br />
= CDash definitions =<br />
<br />
* '''Build:''' Single submission to the dashboard for a specific project, environment and build type.<br />
* '''Build type:''' reference by CTest as Nightly, Experimental or Continuous. (see CMake documentation for more information).<br />
* '''Site:''' Computer contributing builds to the dashboard. A site might belong to several projects and submit different build.<br />
* '''Coverage:''' Number of lines of code actually tested. CDash/CTest currently supports gcov and bulleyes tools.<br />
* '''Dynamic Analysis:''' reports the memory allocation/deallocations analysis for test, examples and executable for the project. Valgrind is currently supported by CTest/CDash.<br />
* '''Nightly start time:''' starting time of the 24h window of the daily dashboard.<br />
* '''Ajax:''' Asynchronous JavaScript and XML, is a group of web development techniques used for creating interactive web applications.<br />
* '''[http://php.net PHP]:''' Hypertext Preprocessor, is a computer scripting language, designed for producing dynamic web pages.<br />
* '''SQL:''' Structured Query Language, is a database computer language designed for the retrieval and management of data in relational database management systems.<br />
<br />
= Login to CDash =<br />
CDash uses secure login for users and adminsitrators. CDash does not store any plain text passwords in the database, therefore passwords cannot be recovered, even by system administrators. <br />
<br />
''Note: LDAP is not currently supported.''<br />
<br />
* To login, click on the 'Login' link at the top of the main CDash page or directly go to the user.php page http://myserver/CDash/user.php.<br />
* If you don't have a login, click on the 'register' link on the top menu. In order to register, CDash requires a valid email address, your first name, last name and password. The institution is optional. CDash implements some security features to avoid robots to register.<br />
* Once registered you are ready to type your email and password provided in the login screen.<br />
<br />
= Available Dashboards =<br />
[[Image:CDashIndexTable.jpg|thumb|CDash index table]]<br />
<br />
The first page display on CDash is a list of current public projects (private projects are not shown on this page). Several information are shown on this page:<br />
<br />
* The name of the project<br />
* The total number of submissions for each project<br />
* The date of the first build for each project<br />
* The date of the last submission (not build time)<br />
<br />
* To total size of the database<br />
<br />
Clicking on the name of the project redirects the user to the main dashboard for this project.<br />
<br />
= Project Dashboard =<br />
[[Image:CDashMainDashboard.jpg|thumb|Project's dashboard page]]<br />
[[Image:CDashHelp.jpg|thumb|Help link from the main dashboard page]]<br />
<br />
Each project dashboard have a similar layout:<br />
* Top row of the page:<br />
** Link to "My CDash/Login"<br />
** Current date of the server hosting CDash<br />
** Link to RSS feed to the project (if not private)<br />
* Banner:<br />
** Custom project logo (see [[CDash:Administration#Updating_project.E2.80.99s_logo | Updating project's logo]] to upload a new logo). ''Note: clicking on the logo redirects to the project's home page (if any defined)''<br />
** Project's name<br />
* Main Menu<br />
** '''Dashboard:''' goes back to the list of projects hosted on CDash<br />
*** '''Updates:''' Overview of the updates for this day and this project<br />
*** '''Builds:''' Overview of the builds for this day and this project<br />
*** '''Tests:''' Overview of the test failing for this day and this project<br />
*** '''Map:''' Map of the sites for this project and this day<br />
** '''Calendar:''' display a calendar to check previous dashboards<br />
** '''Previous:''' Go to the previous day<br />
** '''Current:''' Go to the current day<br />
** '''Next:''' Go to the next day<br />
** '''Project:''' Project links<br />
*** '''Home:''' Home URL<br />
*** '''Doxygen:''' Documentation page for this project<br />
*** '''CVS:''' Link to the CVS/SVN viewer for this project<br />
*** '''Bugs:''' Link to the bug tracker for this project<br />
* '''Daily updates:''' Updates on the project's repository. <br />
* '''Help link:''' popup a window with help information<br />
* Build groups: explained in the next section.<br />
* Coverage: explained in the next section.<br />
* Dynamic Analysis: explained in the next section.<br />
<br />
== Build groups ==<br />
<br />
Each build submitted by a site corresponds to a row in the main dashboard. By default the build falls in the group defined by the type of submission (i.e Nightly, Experimental or Continuous), however, custom builds can be defined. See [[CDash:Administration#Build_Groups | Build Groups]] administration section for more information on how to create new groups and define rules for builds.<br />
<br />
* Mouse hover the top row of a build group, shows the quick link bar to quickly jump to a different group.<br />
* Expected builds are shown as a empty row in the dashboard if they have not been submitting.<br />
<br />
=== Default group ===<br />
[[Image:CDashSorting.jpg|thumb|Muli-columns sorting]]<br />
[[Image:CDashGroup.jpg|thumb|Group description]]<br />
[[Image:CDashShowNote.jpg|thumb|Note for a build]]<br />
<br />
In this section we explain the layout of default groups (i.e. Nightly, Experimental, Continuous,...). These groups are represented in the light blue sections.<br />
<br />
'''Clicking on the gray header allow sorting the table by the clicked field. Multisorting is possible by holding the shift key.''', also the current sorting is saved by the user's web browser using cookies, allowing to keep the same sorting while browsing different days for the same project.<br />
<br />
Clicking on the group name displays the build group description.<br />
<br />
Each build (row) contains the following information:<br />
* '''Site:''' Name of the site submitting the build. Clicking on the name redirects to site description.<br />
* '''Build name:''' Name of the build. Clicking on the name redirects to the build summary page.<br />
** '''Build note:''' If submitted with CTest and configure with build notes, a small icon shows the build note. Clicking on the icon displays the CTest script used to submit the page.<br />
** '''CTest version:''' If submitted with CTest, a small icon displays the CTest version.<br />
** '''Build info:''' If a build is expected and has not been submitting, or if a build has errors or warnings or tests failing, then a build info icon is present. Clicking on the build info icon trigger an ajax request that displays more information about this build.<br />
** '''Notes:''' If someone submitted a note for this build, mouse hover the note icon will display the current notes.<br />
* '''Update:''' Shows the number of files updated (from the SVN/CVS repository) for this build. Clicking on the number shows the name and information of the updated files.<br />
* '''Cfg:''' Shows the configuration errors. If red, some errors occurred while configuring the project. Clicking on the number displays the current configuration status.<br />
* '''Build:''' Displays the principal build information.<br />
** '''Error:''' Number of build errors.<br />
** '''Warn:''' Number of build warnings.<br />
** '''Min:''' Time (in minutes) it took to build the project.<br />
* '''Test:''' Displays information about the test.<br />
** '''Not Run:''' Number of test not run (because not found for instance).<br />
** '''Fail:''' Number of test failed. Clicking on the number show the name of the failing tests. If time status is enabled for the project, it is reflected here.<br />
** '''Pass:''' Number of test passed. Clicking on the number show the name of the passing tests. If time status is enabled for the project, it is reflected here.<br />
** '''Min:''' Time it took to run all the tests.<br />
* '''Build time:''' Time when the build started expressed in the timezone of the webserver. This is different from the time when the build was submitted.<br />
<br />
=== Coverage ===<br />
[[Image:CDashCoverage.jpg|thumb|Coverage section of the dashboard]]<br />
<br />
CDash supports gcov and bullseye as coverage tools.<br />
The main dashboard displays the following information:<br />
<br />
* '''Site:''' name of the site<br />
* '''Build name:''' name of the build<br />
* '''Percentage: ''' Overall coverage percentage (for all files in the project).<br />
* '''Passed:''' Number of lines of code that are tested.<br />
* '''Failed:''' Number of lines of code that are not tested.<br />
* '''Date:''' Build starting date.<br />
<br />
=== Dynamic Analysis ===<br />
[[Image:CDashDynamicAnalysis.jpg|thumb|Dynamic Analysys section of the dashboard]]<br />
<br />
CDash supports [http://valgrind.org valgrind] as the main dynamic analysis tool.<br />
The main dashboard displays the following information:<br />
<br />
* '''Site:''' Name of the site<br />
* '''Build name:''' Name of the build<br />
* '''Checker: ''' Name of the checker.<br />
* '''Defect count:''' Number of memory defects.<br />
* '''Date:''' Build starting date.<br />
<br />
== Daily updates ==<br />
<br />
CDash stores the daily updates in the database for a quick query. The number of files changed for that day as well as the number of authors who changed the files are displayed. Clicking on the number of files changed display the name of the files and more information.<br />
<br />
See the [[CDash:Design#Daily_Updates | Daily Updates Design]] section for more information.<br />
<br />
== Map ==<br />
[[Image:CDashMap.jpg|thumb|Map of the sites contributing to a project]]<br />
<br />
CDash stores the geolocation from the IP address for the sites and displays them on a map via Google map API. This allows to quickly browse where the builds are coming from. Clicking on a pin on the map, shows the name of the site.<br />
<br />
See [[CDash:Design#Map_and_Geolocation | Map and Geolocation]] design page for more information.<br />
<br />
= My CDash =<br />
<br />
[[Image:CDashMyCDash.jpg|thumb|MyCDash page]]<br />
<br />
Each user has its own personal section in CDash, where they can keep track of recent builds, submissions, claim sites and more.<br />
<br />
== My Profile ==<br />
<br />
User can change their profile: First/Last name, email, institution and password from the the "My Profile" menu at the top of the "My CDash" page.<br />
<br />
== My Projects ==<br />
<br />
If a user has subscribe to at least a project (see [[CDash:Documentation#Subscribe_to_project | Subscribe to project]]), the list of subscribed projects is shown under "My Projects". There several links related to the subscriptions.<br />
<br />
=== Edit Subscription ===<br />
<br />
Users can edit their subscription for a given project.<br />
<br />
# From MyCdash page, under My Projects, click on [Edit subscription]<br />
# Change the role if necessary. '''Downgrading from project administrator to Site maintainer or normal user cannot be reverted unless by another project administrator'''.<br />
# Change or add CVS/SVN login<br />
# Change the email preferences if necessary<br />
# Click on "Update Subscription" to validate the modifications<br />
<br />
Users can unsubscribe from a project by clicking on the "Unsubscribe" button. Users will be able to subscribe later on.<br />
<br />
=== Claim sites ===<br />
See [[CDash:Documentation#Claim a site | Claim a site]] section.<br />
<br />
=== Edit project ===<br />
See [[CDash:Administration#Editing_a_project | Editing a project]] section.<br />
<br />
=== Manage project groups ===<br />
See [[CDash:Administration#Build_Groups | Build groups]] section.<br />
<br />
=== Manage project roles ===<br />
See [[CDash:Administration#Project_Roles | Project roles]] section.<br />
<br />
== My Sites ==<br />
<br />
[[Image:CDashMySites.jpg|thumb|My sites]]<br />
<br />
As a site maintainer, it is useful to know if submissions have been missing for quite sometime, or if the current builds on a specific sites are not reporting errors due to misconfiguration.<br />
<br />
* The first column show the list of currently claimed sites.<br />
* The first row shows the current projects that are submitting builds for the given site<br />
* For each pair (site/project) a summary of the current status of the dashboard is displayed<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Build group !! Updates !! Errors !! Warnings !! Tests !! Last submission<br />
|-<br />
| N: Nightly || 1 || 0 || 0 || 0 || Today<br />
|-<br />
| C: Continuous || 1 || 0 || 0 || 0 || Yesterday<br />
|-<br />
| E: Experimental || 1 || 0 || 0 || 0 || 6 days ago<br />
|}<br />
<br />
''Note: only Nightly, Continuous and Experimental groups are current shown'.' <br />
<br />
Clicking on the name of a site gives access to the description of the site.<br />
<br />
== Public projects ==<br />
<br />
List of all the public projects stored in CDash. By definition, users registered in CDash can subscribe to any public projects.<br />
<br />
= Subscribe to project =<br />
<br />
[[Image:CDashSubscribeProject.jpg|thumb|Subscribing to public projects]]<br />
<br />
If the project is public then users can subscribe to the project themselves, otherwise see section [[CDash:Administration#Project_Roles | Project Roles]].<br />
<br />
# Log into CDash (see [[CDash:Documentation#Login_to_CDash | Login to CDash]])<br />
# Under "Public projects" section click on [Subscribe to this project]<br />
# Select your role for the project: '''Normal user''' or '''Site maintainer''' if you are responsible for a machine sending periodic builds to the dashboard/<br />
# Add your CVS/SVN login for the project if you have any<br />
# Select your email preference<br />
# Click on subscribe<br />
<br />
= Claim a site =<br />
[[Image:CDashClaimSite.jpg|thumb|Claiming a site]]<br />
<br />
CDash allows '''Site maintainers''' (see [[CDash:Documentation#Subscribe_to_project | Subscribe to Project]]) to claim a site they are managing. This allows users to have personal reports regarding a specific machine and get informed if the machine has not been submitting from quite some time or has unexpected high number of failures (probably due to misconfiguration).<br />
<br />
In order to claim a site:<br />
<br />
# Login to CDash to acces "My CDash"<br />
# Under "My Projects" select [Claim sites]. If the project is not listed, refers to [[CDash:Documentation#Subscribe_to_project | Subscribe to Project]] for more information.<br />
# The Claim sites page show the list of current sites for the project. Check the site(s) of interest.<br />
# Click on "Update claimed sites"<br />
<br />
In order to unclaim a site:<br />
<br />
# Login to CDash to acces "My CDash"<br />
# Under "My Projects" select [Claim sites].<br />
# Uncheck the site(s) no longer of interest.<br />
# Click on "Update claimed sites"<br />
<br />
See the section [[CDash:Documentation#Describe_a_site | Describe a site]] for information about the given sites.<br />
<br />
= Describe a site =<br />
[[Image:CDashSiteSpecifications.jpg|thumb|Describing a site]]<br />
[[Image:CDashSite.jpg|thumb|Site information]]<br />
<br />
CDash records each site specifications so that users can quickly assess the type of machine, OS, memory, etc...<br />
<br />
'''If using the CTest 2.6 (or higher) the site specifications are automatically sent as part of the submission.'''<br />
<br />
Here's the list of specification currently present:<br />
<br />
*'''Name:''' '''This value shouldn't be changed, unless the site name sent by the build was wrong. Make sure the name of the build matches CTest buildname otherwise a new site will be created.'''<br />
*'''64 bits:''' Is the machine running a 64bits OS<br />
*'''Processor vendor:''' vendor name of the processor (i.e. GenuineIntel)<br />
*'''Processor vendor ID:''' vendor identification of the processor (i.e. Intel Corporation)<br />
*'''Processor family ID:''' family identification number of the processor (i.e. 15)<br />
*'''Processor model ID:''' model identification number of the processor, usually depending on the processor family (i.e. 3)<br />
*'''Processor cache size:''' size of the processor cache in MB.<br />
*'''CPU Speed (MHz):''' speed of the CPU in MHz.<br />
*'''Number of logical CPUs:''' Number of logical CPU per physical CPU.<br />
*'''Number of physical CPUs:''' Number of physical CPU.<br />
*'''Logical Processor per Physical:'''Number of logical processor per physical<br />
*'''Total virtual memory (MB):''' Total virtual memory in MB.<br />
*'''Total physical memory (MB):''' Total physical memory (RAM) in MB.<br />
*'''Description:''' Description of the machine.<br />
*'''IP address:''' Current IP address. This is filled in automatically by CDash<br />
*'''Latitude:''' Geolocation from the IP address<br />
*'''Longitude:''' Geolocation from the IP address<br />
<br />
'''CDash keeps an history''' of the machine description, in case of memory or processor upgrade. This is particularly useful to assess why a test is now running much faster than before. If the system has been upgraded, the checkbox "Force new description revision" should be checked. Note that CDash should automatically detect if a site has been upgraded.<br />
<br />
''Note: support for other specifications, such as graphic card information and more detailed information might be added in the near future.''<br />
<br />
= Graphs =<br />
<br />
CDash relies on the flot javascript library for graphing. See the section [[CDash:Design#Graphs | Graphs]] for information.<br />
CDash curently plots three types of graph as explained below.<br />
<br />
== Build time graph ==<br />
[[Image:CDashBuildGraph.jpg|thumb|Build time graph]]<br />
<br />
The time requires to build a project is recorded as part of CTest. Sometimes it might be useful to track the build time overtime. In order to do so:<br />
<br />
# Go to the main dashboard for the project<br />
# Click on the build name you want to track<br />
# On the build summary page, click on [Show Build Time Graph], this performs an Ajax request to the database.<br />
<br />
== Test time graphs ==<br />
<br />
CDash plots graphs of the time it takes to run a specific test as well as its status (passed/failed) overtime. <br />
<br />
To look at these graphs:<br />
<br />
# Go to the main dashboard for a project<br />
# Click on the number of test passed or failed<br />
# From the list of tests, click on the status of the test.<br />
# Click on [Show Test Time Graph] and/or [Show Failing/Passing Graph]<br />
<br />
<br />
<br />
= Adding notes to a build =<br />
[[Image:CDashAddNote.jpg|thumb|Adding a note to a build]]<br />
In some cases, it is useful to tell other developers that you are currently looking at the errors for a builds and informed them. CDash implements a simple note mechanism.<br />
<br />
* Login to CDash<br />
* On the dashboard project page, click on the build name to which you want to add the note.<br />
* Click on [Add a Note to this Build] link, located next to the current build matrix (see thumbnail)<br />
* Enter a small message corresponding to the note<br />
* Select the status of the note: '''Simple note''', '''Fix in progress''', '''Fixed'''.<br />
* Click on "Add Note"<br />
<br />
= Build summary =<br />
<br />
CDash summarizes the build errors and warnings on a single page. The errors are grouped by file and line number. It makes easier to fix source code.<br />
In order to see the build summary:<br />
<br />
# Go to the main dashboard for the project<br />
# In the main menu select Dashboard->Builds<br />
<br />
= Filters =<br />
Some CDash pages allow you to use '''filters''' to narrow down the results to what's important to you.<br />
<br />
== Filters on index.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Build Duration || How long the build took to complete || 14m 58s<br />
|-<br />
| Build Errors || How many errors occurred during the build step || 1<br />
|-<br />
| Build Warnings || How many warnings occurred during the build step || 5<br />
|-<br />
| Build Name || The name of the build || Linux-cxx<br />
|-<br />
| Build Stamp || The CTest-generated TAG for this build || 20090223-0100-Nightly<br />
|-<br />
| Build Start Time || When this build started (including any update/configure/etc) || 2009-02-23 01:00:00 UTC<br />
|-<br />
| Build Type || What type of build this is || Experimental<br />
|-<br />
| Configure Duration || How long this build took to configure || 2m 45s<br />
|-<br />
| Configure Errors || How many errors occurred during the configure step || 2<br />
|-<br />
| Configure Warnings || How many warnings occurred during the configure step || 3<br />
|-<br />
| Expected || Whether or not this build has been marked as expected || true<br />
|-<br />
| Group || The name of this build's group || Nightly<br />
|-<br />
| Has Coverage || Whether or not this build performed coverage || true<br />
|-<br />
| Has CTest Notes || Whether or not any notes were uploaded with this build || false<br />
|-<br />
| Has Dynamic Analysis || Whether or not this build performed dynamic analysis || true<br />
|-<br />
| Has User Notes || Whether or not a CDash user left a note on this build || true<br />
|-<br />
| Label || Search for builds with a given label || vtkCommonCore<br />
|-<br />
| Site || Search for builds from a given site || kamino<br />
|-<br />
| Submission Client || What client was used to submit this build || ctest-3.0<br />
|-<br />
| SubProject || Whitelist or blacklist SubProject results'''<nowiki>*</nowiki>''' || my-subproject-name<br />
|-<br />
| Tests Duration || How long this build took to test || 5m 23s<br />
|-<br />
| Tests Failed || How many tests failed || 4<br />
|-<br />
| Tests Not Run || How many tests couldn't be run || 10<br />
|-<br />
| Tests Passed || How many tests passed || 20<br />
|-<br />
| Tests Timing Failed || [[CDash:Design#Test_Timing|How many tests failed the time status check]] || 8<br />
|-<br />
| Update Duration || How long this build took to update || 45s<br />
|-<br />
| Updated Files || How many source files were updated before this build || 5<br />
|}<br />
<br />
== Filters on queryTests.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Build Name || The name of the build that performed this test || Linux-c++<br />
|-<br />
| Build Start Time || When this build started (including any update/configure/etc) || 2009-02-23 01:00:00 UTC<br />
|-<br />
| Details || Information about how this test exited || OTHER_FAULT<br />
|-<br />
| Label || Search for tests with a given label || vtkCommonCore<br />
|-<br />
| Site || Search for tests run on a given site || kamino<br />
|-<br />
| Status || Search for tests with a given status || passed<br />
|-<br />
| Test Name || The name of the test || kwsys.testHashSTL<br />
|-<br />
| Time || How long this test took to run (in seconds) || 12.73<br />
|}<br />
<br />
== Filters on testOverview.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Build Name || The name of the build(s) whose tests you're interested in || Linux-c++<br />
|}<br />
<br />
== Filters on viewCoverage.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Covered Lines || The number of covered lines in this file || 50<br />
|-<br />
| Filename || The name of this file || foo.cxx<br />
|-| Labels || Search for source files with a given label || vtkCommonCore<br />
|-<br />
| Priority || The priority of this source file || 2<br />
|-<br />
| Total Lines || The number of coverable lines in this file || 100<br />
|-<br />
| Uncovered Lines || The number of uncovered lines in this file || 25<br />
|}<br />
<br />
== Filters on viewTest.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Details || Information about how this test exited || OTHER_FAULT<br />
|-<br />
| Label || Search for tests with a given label || vtkCommonCore<br />
|-<br />
| Status || Search for tests with a given status || passed<br />
|-<br />
| Test Name || The name of the test || kwsys.testHashSTL<br />
|-<br />
| Time || How long this test took to run (in seconds) || 12.73<br />
|-<br />
| Time Status || [[CDash:Design#Test_Timing|Whether or not this build failed the time status check]] || 1<br />
|}</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Installation&diff=60931CDash:Installation2016-10-11T15:41:04Z<p>Zack: /* System Requirements */</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
CDash is a [http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29 LAMP] application, running on [http://www.apache.org/ Apache] using [http://www.php.net/ PHP] to access a [http://www.mysql.com/ MySQL] or [http://www.postgresql.org PostgreSQL] database.<br />
<br />
== System Requirements ==<br />
* Apache<br />
* SQL database<br />
** MySQL database (5.x and higher)<br />
** PostgreSQL database (8.3 and higher)<br />
* PHP (5.3 and higher)<br />
* XSL module for PHP<br />
* cURL module for PHP (for site statistics)<br />
* GD module for PHP (for regression tests)<br />
* MySQL or PostgreSQL PDO module for PHP<br />
<br />
== Downloading CDash ==<br />
<br />
The '''current stable release of CDash is 2.2.3''' you can either download it as a zip archive<br />
* [http://www.cdash.org/wp-content/uploads/2014/11/CDash-2-2-3.zip CDash-2.2.3.zip]<br />
* or from the [https://github.com/Kitware/CDash.git GIT] repository 'release' branch:<br />
git clone https://github.com/Kitware/CDash.git<br />
<br />
=== GIT Development version ===<br />
<br />
CDash is available from the development [https://github.com/Kitware/CDash.git GIT] repository. Either extract the code into your web server tree, or another directory which will later be copied to the web server:<br />
<br />
cd /srv/www/htdocs<br />
git clone https://github.com/Kitware/CDash.git CDash<br />
git checkout release<br />
<br />
=== Previous versions of CDash ===<br />
* '''2.0''': [http://www.cdash.org/download/CDash-2.0.2.zip CDash-2.0.2.zip] or svn co https://www.kitware.com/svn/CDash/Release-2-0 CDash<br />
* '''1.8''': [http://www.cdash.org/download/CDash-1.8.2.zip CDash-1.8.2.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-8 CDash<br />
* '''1.6''': [http://www.cdash.org/download/CDash-1.6.4.zip CDash-1.6.4.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-6 CDash<br />
* '''1.4''': [http://www.cdash.org/download/CDash-1.4.1.zip CDash-1.4.1.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-4 CDash<br />
* '''1.2''': [http://www.cdash.org/download/CDash-1.2.1.zip CDash-1.2.1.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-2 CDash<br />
* '''1.0''': [http://www.cdash.org/download/CDash-1.0.zip CDash-1.0.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-0 CDash<br />
* '''0.8''': [http://www.cdash.org/download/CDash-0.8.zip CDash-0.8.zip] or svn co https://www.kitware.com/svn/CDash/Release-0-8 CDash<br />
<br />
== Configuration ==<br />
The system configuration is stored in <tt>.../CDash/config/config.php</tt>, however it's recommended to create a '''config.local.php''' in the same directory that contains only the variables you wish to change. Doing so will prevent any changes you make from being overwritten when CDash is upgraded and config.php is re-created.<br />
<br />
Please note that CDash will read the config.php file first, and then config.local.php. Any variables that are changed in config.local.php will take precedence.<br />
<br />
'''WARNING: If creating the config.local.php from config.php make sure you DELETE any text after the 'DO NOT EDIT AFTER THIS LINE' otherwise your configuration file will be referencing each other. Ideally config.local.php should contain ONLY the variables you have modified.'''<br />
<br />
=== SQL Database ===<br />
If you are running the MySQL database on the same server as the Apache web server the defaults should work with no changes:<br />
<br />
// Hostname of the MySQL database <br />
$CDASH_DB_HOST = 'localhost';<br />
<br />
// Login for MySQL database access<br />
$CDASH_DB_LOGIN = 'root';<br />
<br />
// Password for MySQL database access<br />
$CDASH_DB_PASS = '';<br />
<br />
// Name of the MySQL database<br />
$CDASH_DB_NAME = 'cdash';<br />
<br />
If your MySQL (>= v5) server is set to ''strict'' mode, CDash will not work! The reason is that in strict mode, integer columns will not accept the empty string "" as 0 (zero). "" is what the CDash forms currently return for unchecked checkboxes. You'll have to remove the setting <code>STRICT_TRANS_TABLES</code> from the global sql mode parameter. You can query the current setting like this: <code>SELECT @@global.sql_mode;</code><br />
<br />
For more information and more specific settings see the [http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html MySQL sql mode documentation].<br />
<br />
If you have just installed MySQL don't forget to start it:<br />
<br />
rcmysql start<br />
<br />
=== Ubuntu Dependencies ===<br />
<br />
Here is a list of packages required on Ubuntu 12.04:<br />
sudo apt-get install apache2 mysql-server php5 php5-mysql php5-xsl php5-curl php5-gd<br />
<br />
Make sure your apache2 configuration pulls in libapache2-mod-php5 and NOT libapache2-mod-php5filter as this will cause PUT requests to fail and you will not be able to submit anything to your dashboard.<br />
<br />
=== PostgreSQL Database ===<br />
If you are running the PostgreSQL database read the previous MySQL section about configuring the database access.<br />
You will also need to tell CDash to use PostgreSQL driver:<br />
<br />
// Database type (empty means mysql)<br />
$CDASH_DB_TYPE = 'pgsql';<br />
<br />
Here is list of packages necessary on ubuntu<br />
<br />
sudo apt-get install php-pear<br />
sudo pecl install pdo <br />
sudo apt-get install php5-dev<br />
sudo pecl install pdo<br />
sudo pecl install pdo_pgsql<br />
<br />
=== Email ===<br />
You should probably edit the default email addresses:<br />
<br />
// Default from email<br />
$CDASH_EMAILADMIN = 'admin@cdash.org';<br />
$CDASH_EMAIL_FROM = 'admin@cdash.org';<br />
$CDASH_EMAIL_REPLY = 'noreply@cdash.org';<br />
<br />
=== LDAP ===<br />
As of CDash 1.4, authentication to an LDAP database can be performed.<br />
This requires the ldap module for php. The variables to define:<br />
<br />
$CDASH_USE_LDAP='1'; // turn this to 1 for LDAP authentication<br />
$CDASH_LDAP_HOSTNAME='localhost'; // hostname of the LDAP server<br />
$CDASH_LDAP_BASEDN='ou=people,dc=organization,dc=com'; // Base DN<br />
$CDASH_LDAP_PROTOCOL_VERSION='3'; // LDAP protocol version<br />
<br />
Note that the administrator (first user to install CDash) is always stored in the database.<br />
<br />
=== Backup directory ===<br />
The backup/log directory by default is placed in <tt>.../CDash/backup</tt>, this must be made writable by the account that you run Apache under (typically wwwrun or www-data), you can move the directory via:<br />
<br />
// Backup directory<br />
$CDASH_BACKUP_DIRECTORY = 'backup';<br />
<br />
=== Removing registration ===<br />
<br />
The registration can be disabled globally from CDash.<br />
<br />
// Doesn't provide registration links<br />
$CDASH_NO_REGISTRATION = '1';<br />
<br />
=== Cookie expiration time ===<br />
As of CDash 1.2 the login cookie time can be set in the config.php. The default is set to 1 hour.<br />
<br />
// Duration of the cookie session (in seconds)<br />
$CDASH_COOKIE_EXPIRATION_TIME = '3600'<br />
<br />
This allows the browser to remember the login/password of the user.<br />
'''On a public computer it is recommended to always log out'''<br />
<br />
=== Google Maps ===<br />
'''As of February of 2014, these links no longer work and I couldn't figure out where to point them. A workaround is just to insert the empty string instead of a key.'''<br />
<br />
CDash can use [http://code.google.com/apis/maps/ Google maps] to display the location of submission sites. CDash comes with Kitware's key code which won't work for your site's URL. Every site that uses Google maps requires its own [http://code.google.com/apis/maps/signup.html Google maps key] which you should obtain from Google (it's free), use this style URL when applying for a key:<br />
<br />
http://mysite.org/CDash<br />
<br />
Paste your newly obtained key in place of Kitware's:<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['localhost'] = 'paste key here';<br />
<br />
You may also add multiple keys (wighout the http://) and they will get matched by ''$_SERVER['HTTP_HOST']''<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['www.vtk.org'] = 'paste key here';<br />
$CDASH_GOOGLE_MAP_API_KEY['www.cdash.org'] = 'paste another key here';<br />
<br />
If your submission machines use private IP addresses you can add default location information, e.g. for all machines in the 192.x.x.x network (use http://maps.google.com to obtain your location):<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "192.*","latitude" => "42.6612","longitude" => "-73.7689");<br />
<br />
Sometimes site location are misreported (e.g. the ISP's location is used), you can override these:<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "76.65.240.*","latitude" => "43.667","longitude" => "-79.417");<br />
<br />
You'll probably want to replace the defaults that are present.<br />
<br />
Note: If you use the 192.x.x.x address range ensure you update the location information before submitting from any machines in this subnet, as the location is stored in the database on first submission from a site (but can be subsequently edited from the admin web pages).<br />
<br />
=== Google Analytics ===<br />
CDash can use [http://www.google.com/analytics/ Google analytics] to monitor site usage. CDash's main <tt>index.php</tt> contains a reference to a default Kitware Google analytics code:<br />
<br />
$CDASH_DEFAULT_GOOGLE_ANALYTICS='UA-701656-6';<br />
<br />
When you configure each project you will have the opportunity to set a per-project Google analytics code.<br />
See [[CDash:Administration#Adding_Google_Analytics | Adding GoogleAnalytics]] for more information.<br />
<br />
== RSS directory ==<br />
Ensure that the <tt>.../CDash/rss</tt> (and <tt>.../CDash/backup</tt>) directory is writable by the user account that Apache runs under (typically wwwrun).<br />
<br />
== Apache ==<br />
Ensure that the <tt>/srv/www/htdocs/CDash</tt> tree is accessible, you may have to add the following to your <tt>/etc/apache2/conf.d</tt> directory:<br />
<br />
<tt>cdash.conf</tt>:<br />
<br />
<Directory /srv/www/htdocs/CDash><br />
Order allow,deny<br />
Allow from all<br />
</Directory><br />
<br />
You may need to restart Apache:<br />
<br />
rcapache2 restart<br />
<br />
or<br />
<br />
service apache2 restart<br />
<br />
== Creating database ==<br />
Access your website to start the install process:<br />
<br />
http://mywebsite.com/CDash<br />
<br />
The first step will confirm the host login and password for the database, the default admin account and password are also displayed, make a note of these as you'll need them later, as its easy to skip past this step missing them (you can always find them in <tt>.../CDash/sql/cdashdata.sql</tt>).<br />
<br />
== Production Mode ==<br />
In order to disable the installation script, especially when the database is not accessible. You should turn on the option:<br />
<br />
$CDASH_PRODUCTION_MODE = true;<br />
<br />
in your config.local.php<br />
<br />
== GIT support ==<br />
CDash 1.7 and higher are supporting GIT for daily update and also support the main GIT viewer (github, gittorious, etc...). In order to fetch the daily update, a bare (--bare) repository should be created for each project on the CDash server. Every night, CDash will fetch or clone the repository and parse the result of the 'git whatchanged' command. In order to allow git support.<br />
<br />
* Create a 'git' directory and give the web server full write access to it<br />
* Edit your config.local.php and add these values corresponding to your system configuration<br />
<br />
// Define the git command<br />
$CDASH_GIT_COMMAND = 'git';<br />
// The default git directory where the bare repositories should be created<br />
$CDASH_DEFAULT_GIT_DIRECTORY = 'git';<br />
<br />
<br />
== See Also ==<br />
[http://www.cdash.org/cdash/resources/software.html The CDash web site's brief install instructions]</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Installation&diff=60930CDash:Installation2016-10-11T15:40:03Z<p>Zack: /* System Requirements */</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
CDash is a [http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29 LAMP] application, running on [http://www.apache.org/ Apache] using [http://www.php.net/ PHP] to access a [http://www.mysql.com/ MySQL] or [http://www.postgresql.org PostgreSQL] database.<br />
<br />
== System Requirements ==<br />
* Apache<br />
* SQL database<br />
** MySQL database (5.x and higher)<br />
** PostgreSQL database (8.3 and higher)<br />
* PHP (5.3 and higher)<br />
* XSL module for PHP<br />
* cURL module for PHP (for site statistics)<br />
* GD module for PHP (for regression tests)<br />
* MySQL or PostgreSQL PDO module for PHP<br />
* XSL module for PHP<br />
<br />
== Downloading CDash ==<br />
<br />
The '''current stable release of CDash is 2.2.3''' you can either download it as a zip archive<br />
* [http://www.cdash.org/wp-content/uploads/2014/11/CDash-2-2-3.zip CDash-2.2.3.zip]<br />
* or from the [https://github.com/Kitware/CDash.git GIT] repository 'release' branch:<br />
git clone https://github.com/Kitware/CDash.git<br />
<br />
=== GIT Development version ===<br />
<br />
CDash is available from the development [https://github.com/Kitware/CDash.git GIT] repository. Either extract the code into your web server tree, or another directory which will later be copied to the web server:<br />
<br />
cd /srv/www/htdocs<br />
git clone https://github.com/Kitware/CDash.git CDash<br />
git checkout release<br />
<br />
=== Previous versions of CDash ===<br />
* '''2.0''': [http://www.cdash.org/download/CDash-2.0.2.zip CDash-2.0.2.zip] or svn co https://www.kitware.com/svn/CDash/Release-2-0 CDash<br />
* '''1.8''': [http://www.cdash.org/download/CDash-1.8.2.zip CDash-1.8.2.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-8 CDash<br />
* '''1.6''': [http://www.cdash.org/download/CDash-1.6.4.zip CDash-1.6.4.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-6 CDash<br />
* '''1.4''': [http://www.cdash.org/download/CDash-1.4.1.zip CDash-1.4.1.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-4 CDash<br />
* '''1.2''': [http://www.cdash.org/download/CDash-1.2.1.zip CDash-1.2.1.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-2 CDash<br />
* '''1.0''': [http://www.cdash.org/download/CDash-1.0.zip CDash-1.0.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-0 CDash<br />
* '''0.8''': [http://www.cdash.org/download/CDash-0.8.zip CDash-0.8.zip] or svn co https://www.kitware.com/svn/CDash/Release-0-8 CDash<br />
<br />
== Configuration ==<br />
The system configuration is stored in <tt>.../CDash/config/config.php</tt>, however it's recommended to create a '''config.local.php''' in the same directory that contains only the variables you wish to change. Doing so will prevent any changes you make from being overwritten when CDash is upgraded and config.php is re-created.<br />
<br />
Please note that CDash will read the config.php file first, and then config.local.php. Any variables that are changed in config.local.php will take precedence.<br />
<br />
'''WARNING: If creating the config.local.php from config.php make sure you DELETE any text after the 'DO NOT EDIT AFTER THIS LINE' otherwise your configuration file will be referencing each other. Ideally config.local.php should contain ONLY the variables you have modified.'''<br />
<br />
=== SQL Database ===<br />
If you are running the MySQL database on the same server as the Apache web server the defaults should work with no changes:<br />
<br />
// Hostname of the MySQL database <br />
$CDASH_DB_HOST = 'localhost';<br />
<br />
// Login for MySQL database access<br />
$CDASH_DB_LOGIN = 'root';<br />
<br />
// Password for MySQL database access<br />
$CDASH_DB_PASS = '';<br />
<br />
// Name of the MySQL database<br />
$CDASH_DB_NAME = 'cdash';<br />
<br />
If your MySQL (>= v5) server is set to ''strict'' mode, CDash will not work! The reason is that in strict mode, integer columns will not accept the empty string "" as 0 (zero). "" is what the CDash forms currently return for unchecked checkboxes. You'll have to remove the setting <code>STRICT_TRANS_TABLES</code> from the global sql mode parameter. You can query the current setting like this: <code>SELECT @@global.sql_mode;</code><br />
<br />
For more information and more specific settings see the [http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html MySQL sql mode documentation].<br />
<br />
If you have just installed MySQL don't forget to start it:<br />
<br />
rcmysql start<br />
<br />
=== Ubuntu Dependencies ===<br />
<br />
Here is a list of packages required on Ubuntu 12.04:<br />
sudo apt-get install apache2 mysql-server php5 php5-mysql php5-xsl php5-curl php5-gd<br />
<br />
Make sure your apache2 configuration pulls in libapache2-mod-php5 and NOT libapache2-mod-php5filter as this will cause PUT requests to fail and you will not be able to submit anything to your dashboard.<br />
<br />
=== PostgreSQL Database ===<br />
If you are running the PostgreSQL database read the previous MySQL section about configuring the database access.<br />
You will also need to tell CDash to use PostgreSQL driver:<br />
<br />
// Database type (empty means mysql)<br />
$CDASH_DB_TYPE = 'pgsql';<br />
<br />
Here is list of packages necessary on ubuntu<br />
<br />
sudo apt-get install php-pear<br />
sudo pecl install pdo <br />
sudo apt-get install php5-dev<br />
sudo pecl install pdo<br />
sudo pecl install pdo_pgsql<br />
<br />
=== Email ===<br />
You should probably edit the default email addresses:<br />
<br />
// Default from email<br />
$CDASH_EMAILADMIN = 'admin@cdash.org';<br />
$CDASH_EMAIL_FROM = 'admin@cdash.org';<br />
$CDASH_EMAIL_REPLY = 'noreply@cdash.org';<br />
<br />
=== LDAP ===<br />
As of CDash 1.4, authentication to an LDAP database can be performed.<br />
This requires the ldap module for php. The variables to define:<br />
<br />
$CDASH_USE_LDAP='1'; // turn this to 1 for LDAP authentication<br />
$CDASH_LDAP_HOSTNAME='localhost'; // hostname of the LDAP server<br />
$CDASH_LDAP_BASEDN='ou=people,dc=organization,dc=com'; // Base DN<br />
$CDASH_LDAP_PROTOCOL_VERSION='3'; // LDAP protocol version<br />
<br />
Note that the administrator (first user to install CDash) is always stored in the database.<br />
<br />
=== Backup directory ===<br />
The backup/log directory by default is placed in <tt>.../CDash/backup</tt>, this must be made writable by the account that you run Apache under (typically wwwrun or www-data), you can move the directory via:<br />
<br />
// Backup directory<br />
$CDASH_BACKUP_DIRECTORY = 'backup';<br />
<br />
=== Removing registration ===<br />
<br />
The registration can be disabled globally from CDash.<br />
<br />
// Doesn't provide registration links<br />
$CDASH_NO_REGISTRATION = '1';<br />
<br />
=== Cookie expiration time ===<br />
As of CDash 1.2 the login cookie time can be set in the config.php. The default is set to 1 hour.<br />
<br />
// Duration of the cookie session (in seconds)<br />
$CDASH_COOKIE_EXPIRATION_TIME = '3600'<br />
<br />
This allows the browser to remember the login/password of the user.<br />
'''On a public computer it is recommended to always log out'''<br />
<br />
=== Google Maps ===<br />
'''As of February of 2014, these links no longer work and I couldn't figure out where to point them. A workaround is just to insert the empty string instead of a key.'''<br />
<br />
CDash can use [http://code.google.com/apis/maps/ Google maps] to display the location of submission sites. CDash comes with Kitware's key code which won't work for your site's URL. Every site that uses Google maps requires its own [http://code.google.com/apis/maps/signup.html Google maps key] which you should obtain from Google (it's free), use this style URL when applying for a key:<br />
<br />
http://mysite.org/CDash<br />
<br />
Paste your newly obtained key in place of Kitware's:<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['localhost'] = 'paste key here';<br />
<br />
You may also add multiple keys (wighout the http://) and they will get matched by ''$_SERVER['HTTP_HOST']''<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['www.vtk.org'] = 'paste key here';<br />
$CDASH_GOOGLE_MAP_API_KEY['www.cdash.org'] = 'paste another key here';<br />
<br />
If your submission machines use private IP addresses you can add default location information, e.g. for all machines in the 192.x.x.x network (use http://maps.google.com to obtain your location):<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "192.*","latitude" => "42.6612","longitude" => "-73.7689");<br />
<br />
Sometimes site location are misreported (e.g. the ISP's location is used), you can override these:<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "76.65.240.*","latitude" => "43.667","longitude" => "-79.417");<br />
<br />
You'll probably want to replace the defaults that are present.<br />
<br />
Note: If you use the 192.x.x.x address range ensure you update the location information before submitting from any machines in this subnet, as the location is stored in the database on first submission from a site (but can be subsequently edited from the admin web pages).<br />
<br />
=== Google Analytics ===<br />
CDash can use [http://www.google.com/analytics/ Google analytics] to monitor site usage. CDash's main <tt>index.php</tt> contains a reference to a default Kitware Google analytics code:<br />
<br />
$CDASH_DEFAULT_GOOGLE_ANALYTICS='UA-701656-6';<br />
<br />
When you configure each project you will have the opportunity to set a per-project Google analytics code.<br />
See [[CDash:Administration#Adding_Google_Analytics | Adding GoogleAnalytics]] for more information.<br />
<br />
== RSS directory ==<br />
Ensure that the <tt>.../CDash/rss</tt> (and <tt>.../CDash/backup</tt>) directory is writable by the user account that Apache runs under (typically wwwrun).<br />
<br />
== Apache ==<br />
Ensure that the <tt>/srv/www/htdocs/CDash</tt> tree is accessible, you may have to add the following to your <tt>/etc/apache2/conf.d</tt> directory:<br />
<br />
<tt>cdash.conf</tt>:<br />
<br />
<Directory /srv/www/htdocs/CDash><br />
Order allow,deny<br />
Allow from all<br />
</Directory><br />
<br />
You may need to restart Apache:<br />
<br />
rcapache2 restart<br />
<br />
or<br />
<br />
service apache2 restart<br />
<br />
== Creating database ==<br />
Access your website to start the install process:<br />
<br />
http://mywebsite.com/CDash<br />
<br />
The first step will confirm the host login and password for the database, the default admin account and password are also displayed, make a note of these as you'll need them later, as its easy to skip past this step missing them (you can always find them in <tt>.../CDash/sql/cdashdata.sql</tt>).<br />
<br />
== Production Mode ==<br />
In order to disable the installation script, especially when the database is not accessible. You should turn on the option:<br />
<br />
$CDASH_PRODUCTION_MODE = true;<br />
<br />
in your config.local.php<br />
<br />
== GIT support ==<br />
CDash 1.7 and higher are supporting GIT for daily update and also support the main GIT viewer (github, gittorious, etc...). In order to fetch the daily update, a bare (--bare) repository should be created for each project on the CDash server. Every night, CDash will fetch or clone the repository and parse the result of the 'git whatchanged' command. In order to allow git support.<br />
<br />
* Create a 'git' directory and give the web server full write access to it<br />
* Edit your config.local.php and add these values corresponding to your system configuration<br />
<br />
// Define the git command<br />
$CDASH_GIT_COMMAND = 'git';<br />
// The default git directory where the bare repositories should be created<br />
$CDASH_DEFAULT_GIT_DIRECTORY = 'git';<br />
<br />
<br />
== See Also ==<br />
[http://www.cdash.org/cdash/resources/software.html The CDash web site's brief install instructions]</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:XML&diff=60927CDash:XML2016-10-10T19:58:23Z<p>Zack: </p>
<hr />
<div>This page provides the validation schemata and example files for direct submission of XML to CDash.<br />
<br />
= Manually submitting to CDash =<br />
<br />
PUT /CDash/submit.php?project=<MyProject>&FileName=<filename.xml>&MD5=<md5ofcontents> <br />
<br />
= Examples XML files and Schema =<br />
<br />
*[[Media:ValidationSchemata.zip|ValidationSchemata.zip]]<br />
*[[Media:ExampleFiles.zip|ExamplesFiles.zip]]<br />
<br />
= CDash with NUnit =<br />
As of version 2.2, CDash partially supports NUnit XML files for tests. The files can either be submitted via CTest or directly uploaded to CDash (via the submit.php as usual). Here's we describe the expected values for direct submission:<br />
<br />
<test-results name="C:\Users\hoffman\Work\osera\MDWS\mdo\mdo-test\bin\Debug\mdo-test.dll" total="309" errors="0" failures="1" not-run="0" inconclusive="0" ignored="0" skipped="0" invalid="0" date="2012-11-09" time="13:51:43"><br />
<environment nunit-version="2.6.2.12296" clr-version="2.0.50727.5456" os-version="Microsoft Windows NT 6.1.7601 Service Pack 1" platform="Win32NT" cwd="C:\Users\hoffman\Work\osera\MDWS" machine-name="EXARIUS" user="hoffman" user-domain="KHQ" /><br />
<br />
In that case CDash performs the following matches:<br />
*buildname = environment.platform (com.kitware.cjh.Test)<br />
*sitename = environment.machine-name (EXARIUS)<br />
*timestamp = 20121109-1351-Nightly based on the timestamp value (based on test-results.date + test-results.time)<br />
*os.name = environment.platform<br />
*os.version= environment.os-version<br />
*compiler.name= 'CLR'<br />
*compiler.version= environment.clr-version<br />
<br />
The timestamp is always set as Nightly when a direct submission (without CTest) is done to CDash.<br />
<br />
= CDash with JUnit =<br />
As of version 2.2, CDash partially supports NUnit XML files for tests and coverage. The files can either be submitted via CTest or directly uploaded to CDash (via the submit.php as usual). Here's we describe the expected values for direct submission:<br />
<br />
== Testing ==<br />
CDash uses the <testsuite> tag in order to determine the '''buildname''', '''sitename''' and '''timestamp''', necessary for CDash. <br />
<br />
<testsuite hostname="ulmus" name="com.kitware.cjh.Test" timestamp="2012-11-20T20:47:07"><br />
<br />
In that case CDash performs the following matches:<br />
*buildname = name (com.kitware.cjh.Test)<br />
*sitename = hostname (ulmus)<br />
*timestamp = 20121120-2047-Nightly based on the timestamp value (the default is Nightly)<br />
*os.name = property.os.name<br />
*os.version= property.os.version<br />
*compiler.name= property.java.vm.name<br />
*compiler.version= property.java.vm.version<br />
<br />
if <testsuite> '''does not have the hostname attribute''' or the '''timestamp attribute''', CDash will assume the timestamp is made as the current time of the CDash server. The hostname can be defined in the <br />
<br />
<property name="hostname" value="MySite" /><br />
<br />
== Coverage ==<br />
CDash support coverage files from JUnit (more information to produce them should be added here). CDash requires CTest in order to submit the files since no information about the build can be determined.<br />
<br />
From the following XML:<br />
<sessioninfo id="ulmus-944b97d" start="1353437105692" dump="1353437105736" /><br />
The timestamp '''start''' and '''dump''' determine the time for the coverage to run.<br />
<br />
<counter type="INSTRUCTION" missed="14" covered="8" /><br />
<counter type="LINE" missed="4" covered="2" /><br />
<counter type="COMPLEXITY" missed="4" covered="4" /><br />
<counter type="METHOD" missed="4" covered="4" /><br />
<counter type="CLASS" missed="0" covered="2" /><br />
<br />
* Ligne of codes: LINE<br />
* Branches: COMPLEXITY<br />
* Functions: METHOD<br />
<br />
CDash doesn't support the coverage per class.<br />
<br />
= Tools =<br />
<br />
* http://www.xmlvalidation.com - Online schema validation tool<br />
* http://www.flame-ware.com/xml2xsd/ - XML to XSD online tool</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Documentation&diff=59801CDash:Documentation2016-06-24T13:50:15Z<p>Zack: /* Filters on queryTests.php */</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
This page is the official CDash documentation.<br />
<br />
= CDash definitions =<br />
<br />
* '''Build:''' Single submission to the dashboard for a specific project, environment and build type.<br />
* '''Build type:''' reference by CTest as Nightly, Experimental or Continuous. (see CMake documentation for more information).<br />
* '''Site:''' Computer contributing builds to the dashboard. A site might belong to several projects and submit different build.<br />
* '''Coverage:''' Number of lines of code actually tested. CDash/CTest currently supports gcov and bulleyes tools.<br />
* '''Dynamic Analysis:''' reports the memory allocation/deallocations analysis for test, examples and executable for the project. Valgrind is currently supported by CTest/CDash.<br />
* '''Nightly start time:''' starting time of the 24h window of the daily dashboard.<br />
* '''Ajax:''' Asynchronous JavaScript and XML, is a group of web development techniques used for creating interactive web applications.<br />
* '''[http://php.net PHP]:''' Hypertext Preprocessor, is a computer scripting language, designed for producing dynamic web pages.<br />
* '''SQL:''' Structured Query Language, is a database computer language designed for the retrieval and management of data in relational database management systems.<br />
<br />
= Login to CDash =<br />
CDash uses secure login for users and adminsitrators. CDash does not store any plain text passwords in the database, therefore passwords cannot be recovered, even by system administrators. <br />
<br />
''Note: LDAP is not currently supported.''<br />
<br />
* To login, click on the 'Login' link at the top of the main CDash page or directly go to the user.php page http://myserver/CDash/user.php.<br />
* If you don't have a login, click on the 'register' link on the top menu. In order to register, CDash requires a valid email address, your first name, last name and password. The institution is optional. CDash implements some security features to avoid robots to register.<br />
* Once registered you are ready to type your email and password provided in the login screen.<br />
<br />
= Available Dashboards =<br />
[[Image:CDashIndexTable.jpg|thumb|CDash index table]]<br />
<br />
The first page display on CDash is a list of current public projects (private projects are not shown on this page). Several information are shown on this page:<br />
<br />
* The name of the project<br />
* The total number of submissions for each project<br />
* The date of the first build for each project<br />
* The date of the last submission (not build time)<br />
<br />
* To total size of the database<br />
<br />
Clicking on the name of the project redirects the user to the main dashboard for this project.<br />
<br />
= Project Dashboard =<br />
[[Image:CDashMainDashboard.jpg|thumb|Project's dashboard page]]<br />
[[Image:CDashHelp.jpg|thumb|Help link from the main dashboard page]]<br />
<br />
Each project dashboard have a similar layout:<br />
* Top row of the page:<br />
** Link to "My CDash/Login"<br />
** Current date of the server hosting CDash<br />
** Link to RSS feed to the project (if not private)<br />
* Banner:<br />
** Custom project logo (see [[CDash:Administration#Updating_project.E2.80.99s_logo | Updating project's logo]] to upload a new logo). ''Note: clicking on the logo redirects to the project's home page (if any defined)''<br />
** Project's name<br />
* Main Menu<br />
** '''Dashboard:''' goes back to the list of projects hosted on CDash<br />
*** '''Updates:''' Overview of the updates for this day and this project<br />
*** '''Builds:''' Overview of the builds for this day and this project<br />
*** '''Tests:''' Overview of the test failing for this day and this project<br />
*** '''Map:''' Map of the sites for this project and this day<br />
** '''Calendar:''' display a calendar to check previous dashboards<br />
** '''Previous:''' Go to the previous day<br />
** '''Current:''' Go to the current day<br />
** '''Next:''' Go to the next day<br />
** '''Project:''' Project links<br />
*** '''Home:''' Home URL<br />
*** '''Doxygen:''' Documentation page for this project<br />
*** '''CVS:''' Link to the CVS/SVN viewer for this project<br />
*** '''Bugs:''' Link to the bug tracker for this project<br />
* '''Daily updates:''' Updates on the project's repository. <br />
* '''Help link:''' popup a window with help information<br />
* Build groups: explained in the next section.<br />
* Coverage: explained in the next section.<br />
* Dynamic Analysis: explained in the next section.<br />
<br />
== Build groups ==<br />
<br />
Each build submitted by a site corresponds to a row in the main dashboard. By default the build falls in the group defined by the type of submission (i.e Nightly, Experimental or Continuous), however, custom builds can be defined. See [[CDash:Administration#Build_Groups | Build Groups]] administration section for more information on how to create new groups and define rules for builds.<br />
<br />
* Mouse hover the top row of a build group, shows the quick link bar to quickly jump to a different group.<br />
* Expected builds are shown as a empty row in the dashboard if they have not been submitting.<br />
<br />
=== Default group ===<br />
[[Image:CDashSorting.jpg|thumb|Muli-columns sorting]]<br />
[[Image:CDashGroup.jpg|thumb|Group description]]<br />
[[Image:CDashShowNote.jpg|thumb|Note for a build]]<br />
<br />
In this section we explain the layout of default groups (i.e. Nightly, Experimental, Continuous,...). These groups are represented in the light blue sections.<br />
<br />
'''Clicking on the gray header allow sorting the table by the clicked field. Multisorting is possible by holding the shift key.''', also the current sorting is saved by the user's web browser using cookies, allowing to keep the same sorting while browsing different days for the same project.<br />
<br />
Clicking on the group name displays the build group description.<br />
<br />
Each build (row) contains the following information:<br />
* '''Site:''' Name of the site submitting the build. Clicking on the name redirects to site description.<br />
* '''Build name:''' Name of the build. Clicking on the name redirects to the build summary page.<br />
** '''Build note:''' If submitted with CTest and configure with build notes, a small icon shows the build note. Clicking on the icon displays the CTest script used to submit the page.<br />
** '''CTest version:''' If submitted with CTest, a small icon displays the CTest version.<br />
** '''Build info:''' If a build is expected and has not been submitting, or if a build has errors or warnings or tests failing, then a build info icon is present. Clicking on the build info icon trigger an ajax request that displays more information about this build.<br />
** '''Notes:''' If someone submitted a note for this build, mouse hover the note icon will display the current notes.<br />
* '''Update:''' Shows the number of files updated (from the SVN/CVS repository) for this build. Clicking on the number shows the name and information of the updated files.<br />
* '''Cfg:''' Shows the configuration errors. If red, some errors occurred while configuring the project. Clicking on the number displays the current configuration status.<br />
* '''Build:''' Displays the principal build information.<br />
** '''Error:''' Number of build errors.<br />
** '''Warn:''' Number of build warnings.<br />
** '''Min:''' Time (in minutes) it took to build the project.<br />
* '''Test:''' Displays information about the test.<br />
** '''Not Run:''' Number of test not run (because not found for instance).<br />
** '''Fail:''' Number of test failed. Clicking on the number show the name of the failing tests. If time status is enabled for the project, it is reflected here.<br />
** '''Pass:''' Number of test passed. Clicking on the number show the name of the passing tests. If time status is enabled for the project, it is reflected here.<br />
** '''Min:''' Time it took to run all the tests.<br />
* '''Build time:''' Time when the build started expressed in the timezone of the webserver. This is different from the time when the build was submitted.<br />
<br />
=== Coverage ===<br />
[[Image:CDashCoverage.jpg|thumb|Coverage section of the dashboard]]<br />
<br />
CDash supports gcov and bullseye as coverage tools.<br />
The main dashboard displays the following information:<br />
<br />
* '''Site:''' name of the site<br />
* '''Build name:''' name of the build<br />
* '''Percentage: ''' Overall coverage percentage (for all files in the project).<br />
* '''Passed:''' Number of lines of code that are tested.<br />
* '''Failed:''' Number of lines of code that are not tested.<br />
* '''Date:''' Build starting date.<br />
<br />
=== Dynamic Analysis ===<br />
[[Image:CDashDynamicAnalysis.jpg|thumb|Dynamic Analysys section of the dashboard]]<br />
<br />
CDash supports [http://valgrind.org valgrind] as the main dynamic analysis tool.<br />
The main dashboard displays the following information:<br />
<br />
* '''Site:''' Name of the site<br />
* '''Build name:''' Name of the build<br />
* '''Checker: ''' Name of the checker.<br />
* '''Defect count:''' Number of memory defects.<br />
* '''Date:''' Build starting date.<br />
<br />
== Daily updates ==<br />
<br />
CDash stores the daily updates in the database for a quick query. The number of files changed for that day as well as the number of authors who changed the files are displayed. Clicking on the number of files changed display the name of the files and more information.<br />
<br />
See the [[CDash:Design#Daily_Updates | Daily Updates Design]] section for more information.<br />
<br />
== Map ==<br />
[[Image:CDashMap.jpg|thumb|Map of the sites contributing to a project]]<br />
<br />
CDash stores the geolocation from the IP address for the sites and displays them on a map via Google map API. This allows to quickly browse where the builds are coming from. Clicking on a pin on the map, shows the name of the site.<br />
<br />
See [[CDash:Design#Map_and_Geolocation | Map and Geolocation]] design page for more information.<br />
<br />
= My CDash =<br />
<br />
[[Image:CDashMyCDash.jpg|thumb|MyCDash page]]<br />
<br />
Each user has its own personal section in CDash, where they can keep track of recent builds, submissions, claim sites and more.<br />
<br />
== My Profile ==<br />
<br />
User can change their profile: First/Last name, email, institution and password from the the "My Profile" menu at the top of the "My CDash" page.<br />
<br />
== My Projects ==<br />
<br />
If a user has subscribe to at least a project (see [[CDash:Documentation#Subscribe_to_project | Subscribe to project]]), the list of subscribed projects is shown under "My Projects". There several links related to the subscriptions.<br />
<br />
=== Edit Subscription ===<br />
<br />
Users can edit their subscription for a given project.<br />
<br />
# From MyCdash page, under My Projects, click on [Edit subscription]<br />
# Change the role if necessary. '''Downgrading from project administrator to Site maintainer or normal user cannot be reverted unless by another project administrator'''.<br />
# Change or add CVS/SVN login<br />
# Change the email preferences if necessary<br />
# Click on "Update Subscription" to validate the modifications<br />
<br />
Users can unsubscribe from a project by clicking on the "Unsubscribe" button. Users will be able to subscribe later on.<br />
<br />
=== Claim sites ===<br />
See [[CDash:Documentation#Claim a site | Claim a site]] section.<br />
<br />
=== Edit project ===<br />
See [[CDash:Administration#Editing_a_project | Editing a project]] section.<br />
<br />
=== Manage project groups ===<br />
See [[CDash:Administration#Build_Groups | Build groups]] section.<br />
<br />
=== Manage project roles ===<br />
See [[CDash:Administration#Project_Roles | Project roles]] section.<br />
<br />
== My Sites ==<br />
<br />
[[Image:CDashMySites.jpg|thumb|My sites]]<br />
<br />
As a site maintainer, it is useful to know if submissions have been missing for quite sometime, or if the current builds on a specific sites are not reporting errors due to misconfiguration.<br />
<br />
* The first column show the list of currently claimed sites.<br />
* The first row shows the current projects that are submitting builds for the given site<br />
* For each pair (site/project) a summary of the current status of the dashboard is displayed<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Build group !! Updates !! Errors !! Warnings !! Tests !! Last submission<br />
|-<br />
| N: Nightly || 1 || 0 || 0 || 0 || Today<br />
|-<br />
| C: Continuous || 1 || 0 || 0 || 0 || Yesterday<br />
|-<br />
| E: Experimental || 1 || 0 || 0 || 0 || 6 days ago<br />
|}<br />
<br />
''Note: only Nightly, Continuous and Experimental groups are current shown'.' <br />
<br />
Clicking on the name of a site gives access to the description of the site.<br />
<br />
== Public projects ==<br />
<br />
List of all the public projects stored in CDash. By definition, users registered in CDash can subscribe to any public projects.<br />
<br />
= Subscribe to project =<br />
<br />
[[Image:CDashSubscribeProject.jpg|thumb|Subscribing to public projects]]<br />
<br />
If the project is public then users can subscribe to the project themselves, otherwise see section [[CDash:Administration#Project_Roles | Project Roles]].<br />
<br />
# Log into CDash (see [[CDash:Documentation#Login_to_CDash | Login to CDash]])<br />
# Under "Public projects" section click on [Subscribe to this project]<br />
# Select your role for the project: '''Normal user''' or '''Site maintainer''' if you are responsible for a machine sending periodic builds to the dashboard/<br />
# Add your CVS/SVN login for the project if you have any<br />
# Select your email preference<br />
# Click on subscribe<br />
<br />
= Claim a site =<br />
[[Image:CDashClaimSite.jpg|thumb|Claiming a site]]<br />
<br />
CDash allows '''Site maintainers''' (see [[CDash:Documentation#Subscribe_to_project | Subscribe to Project]]) to claim a site they are managing. This allows users to have personal reports regarding a specific machine and get informed if the machine has not been submitting from quite some time or has unexpected high number of failures (probably due to misconfiguration).<br />
<br />
In order to claim a site:<br />
<br />
# Login to CDash to acces "My CDash"<br />
# Under "My Projects" select [Claim sites]. If the project is not listed, refers to [[CDash:Documentation#Subscribe_to_project | Subscribe to Project]] for more information.<br />
# The Claim sites page show the list of current sites for the project. Check the site(s) of interest.<br />
# Click on "Update claimed sites"<br />
<br />
In order to unclaim a site:<br />
<br />
# Login to CDash to acces "My CDash"<br />
# Under "My Projects" select [Claim sites].<br />
# Uncheck the site(s) no longer of interest.<br />
# Click on "Update claimed sites"<br />
<br />
See the section [[CDash:Documentation#Describe_a_site | Describe a site]] for information about the given sites.<br />
<br />
= Describe a site =<br />
[[Image:CDashSiteSpecifications.jpg|thumb|Describing a site]]<br />
[[Image:CDashSite.jpg|thumb|Site information]]<br />
<br />
CDash records each site specifications so that users can quickly assess the type of machine, OS, memory, etc...<br />
<br />
'''If using the CTest 2.6 (or higher) the site specifications are automatically sent as part of the submission.'''<br />
<br />
Here's the list of specification currently present:<br />
<br />
*'''Name:''' '''This value shouldn't be changed, unless the site name sent by the build was wrong. Make sure the name of the build matches CTest buildname otherwise a new site will be created.'''<br />
*'''64 bits:''' Is the machine running a 64bits OS<br />
*'''Processor vendor:''' vendor name of the processor (i.e. GenuineIntel)<br />
*'''Processor vendor ID:''' vendor identification of the processor (i.e. Intel Corporation)<br />
*'''Processor family ID:''' family identification number of the processor (i.e. 15)<br />
*'''Processor model ID:''' model identification number of the processor, usually depending on the processor family (i.e. 3)<br />
*'''Processor cache size:''' size of the processor cache in MB.<br />
*'''CPU Speed (MHz):''' speed of the CPU in MHz.<br />
*'''Number of logical CPUs:''' Number of logical CPU per physical CPU.<br />
*'''Number of physical CPUs:''' Number of physical CPU.<br />
*'''Logical Processor per Physical:'''Number of logical processor per physical<br />
*'''Total virtual memory (MB):''' Total virtual memory in MB.<br />
*'''Total physical memory (MB):''' Total physical memory (RAM) in MB.<br />
*'''Description:''' Description of the machine.<br />
*'''IP address:''' Current IP address. This is filled in automatically by CDash<br />
*'''Latitude:''' Geolocation from the IP address<br />
*'''Longitude:''' Geolocation from the IP address<br />
<br />
'''CDash keeps an history''' of the machine description, in case of memory or processor upgrade. This is particularly useful to assess why a test is now running much faster than before. If the system has been upgraded, the checkbox "Force new description revision" should be checked. Note that CDash should automatically detect if a site has been upgraded.<br />
<br />
''Note: support for other specifications, such as graphic card information and more detailed information might be added in the near future.''<br />
<br />
= Graphs =<br />
<br />
CDash relies on the flot javascript library for graphing. See the section [[CDash:Design#Graphs | Graphs]] for information.<br />
CDash curently plots three types of graph as explained below.<br />
<br />
== Build time graph ==<br />
[[Image:CDashBuildGraph.jpg|thumb|Build time graph]]<br />
<br />
The time requires to build a project is recorded as part of CTest. Sometimes it might be useful to track the build time overtime. In order to do so:<br />
<br />
# Go to the main dashboard for the project<br />
# Click on the build name you want to track<br />
# On the build summary page, click on [Show Build Time Graph], this performs an Ajax request to the database.<br />
<br />
== Test time graphs ==<br />
<br />
CDash plots graphs of the time it takes to run a specific test as well as its status (passed/failed) overtime. <br />
<br />
To look at these graphs:<br />
<br />
# Go to the main dashboard for a project<br />
# Click on the number of test passed or failed<br />
# From the list of tests, click on the status of the test.<br />
# Click on [Show Test Time Graph] and/or [Show Failing/Passing Graph]<br />
<br />
<br />
<br />
= Adding notes to a build =<br />
[[Image:CDashAddNote.jpg|thumb|Adding a note to a build]]<br />
In some cases, it is useful to tell other developers that you are currently looking at the errors for a builds and informed them. CDash implements a simple note mechanism.<br />
<br />
* Login to CDash<br />
* On the dashboard project page, click on the build name to which you want to add the note.<br />
* Click on [Add a Note to this Build] link, located next to the current build matrix (see thumbnail)<br />
* Enter a small message corresponding to the note<br />
* Select the status of the note: '''Simple note''', '''Fix in progress''', '''Fixed'''.<br />
* Click on "Add Note"<br />
<br />
= Build summary =<br />
<br />
CDash summarizes the build errors and warnings on a single page. The errors are grouped by file and line number. It makes easier to fix source code.<br />
In order to see the build summary:<br />
<br />
# Go to the main dashboard for the project<br />
# In the main menu select Dashboard->Builds<br />
<br />
= Filters =<br />
Some CDash pages allow you to use '''filters''' to narrow down the results to what's important to you.<br />
<br />
== Filters on index.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Build Duration || How long the build took to complete || 14m 58s<br />
|-<br />
| Build Errors || How many errors occurred during the build step || 1<br />
|-<br />
| Build Warnings || How many warnings occurred during the build step || 5<br />
|-<br />
| Build Name || The name of the build || Linux-cxx<br />
|-<br />
| Build Stamp || The CTest-generated TAG for this build || 20090223-0100-Nightly<br />
|-<br />
| Build Start Time || When this build started (including any update/configure/etc) || 2009-02-23 01:00:00 UTC<br />
|-<br />
| Build Type || What type of build this is || Experimental<br />
|-<br />
| Configure Duration || How long this build took to configure || 2m 45s<br />
|-<br />
| Configure Errors || How many errors occurred during the configure step || 2<br />
|-<br />
| Configure Warnings || How many warnings occurred during the configure step || 3<br />
|-<br />
| Expected || Whether or not this build has been marked as expected || true<br />
|-<br />
| Group || The name of this build's group || Nightly<br />
|-<br />
| Has Coverage || Whether or not this build performed coverage || true<br />
|-<br />
| Has CTest Notes || Whether or not any notes were uploaded with this build || false<br />
|-<br />
| Has Dynamic Analysis || Whether or not this build performed dynamic analysis || true<br />
|-<br />
| Has User Notes || Whether or not a CDash user left a note on this build || true<br />
|-<br />
| Label || Search for builds with a given label || vtkCommonCore<br />
|-<br />
| Site || Search for builds from a given site || kamino<br />
|-<br />
| Submission Client || What client was used to submit this build || ctest-3.0<br />
|-<br />
| SubProject || Whitelist or blacklist SubProject results'''<nowiki>*</nowiki>''' || my-subproject-name<br />
|-<br />
| Tests Duration || How long this build took to test || 5m 23s<br />
|-<br />
| Tests Failed || How many tests failed || 4<br />
|-<br />
| Tests Not Run || How many tests couldn't be run || 10<br />
|-<br />
| Tests Passed || How many tests passed || 20<br />
|-<br />
| Tests Timing Failed || [[CDash:Design#Test_Timing|How many tests failed the time status check]] || 8<br />
|-<br />
| Update Duration || How long this build took to update || 45s<br />
|-<br />
| Updated Files || How many source files were updated before this build || 5<br />
|}<br />
<br />
'''<nowiki>*</nowiki>''' A note on the SubProject filter. This filter can only be used to narrow down results. It can not be used to include results that otherwise would not have been returned. Consider the following examples:<br />
<br />
Test Failures > 0 AND SubProject exclude <the-only-package-with-failing-tests><br />
This works as expected, because the SubProject filter is being used to narrow the results returned by the Test Failure filter.<br />
<br />
Build Duration < 60s AND SubProject exclude <slowest-package-to-build><br />
This does not work the way you expect it to. The Build Duration filter will discard the build for being too slow before the SubProject filter can modify its duration.<br />
<br />
== Filters on queryTests.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Build Name || The name of the build that performed this test || Linux-c++<br />
|-<br />
| Build Start Time || When this build started (including any update/configure/etc) || 2009-02-23 01:00:00 UTC<br />
|-<br />
| Details || Information about how this test exited || OTHER_FAULT<br />
|-<br />
| Label || Search for tests with a given label || vtkCommonCore<br />
|-<br />
| Site || Search for tests run on a given site || kamino<br />
|-<br />
| Status || Search for tests with a given status || passed<br />
|-<br />
| Test Name || The name of the test || kwsys.testHashSTL<br />
|-<br />
| Time || How long this test took to run (in seconds) || 12.73<br />
|}<br />
<br />
== Filters on viewCoverage.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Covered Lines || The number of covered lines in this file || 50<br />
|-<br />
| Filename || The name of this file || foo.cxx<br />
|-| Labels || Search for source files with a given label || vtkCommonCore<br />
|-<br />
| Priority || The priority of this source file || 2<br />
|-<br />
| Total Lines || The number of coverable lines in this file || 100<br />
|-<br />
| Uncovered Lines || The number of uncovered lines in this file || 25<br />
|}<br />
<br />
== Filters on viewTest.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Details || Information about how this test exited || OTHER_FAULT<br />
|-<br />
| Label || Search for tests with a given label || vtkCommonCore<br />
|-<br />
| Status || Search for tests with a given status || passed<br />
|-<br />
| Test Name || The name of the test || kwsys.testHashSTL<br />
|-<br />
| Time || How long this test took to run (in seconds) || 12.73<br />
|-<br />
| Time Status || [[CDash:Design#Test_Timing|Whether or not this build failed the time status check]] || 1<br />
|}</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Documentation&diff=59800CDash:Documentation2016-06-24T13:49:53Z<p>Zack: /* Filters on index.php */</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
This page is the official CDash documentation.<br />
<br />
= CDash definitions =<br />
<br />
* '''Build:''' Single submission to the dashboard for a specific project, environment and build type.<br />
* '''Build type:''' reference by CTest as Nightly, Experimental or Continuous. (see CMake documentation for more information).<br />
* '''Site:''' Computer contributing builds to the dashboard. A site might belong to several projects and submit different build.<br />
* '''Coverage:''' Number of lines of code actually tested. CDash/CTest currently supports gcov and bulleyes tools.<br />
* '''Dynamic Analysis:''' reports the memory allocation/deallocations analysis for test, examples and executable for the project. Valgrind is currently supported by CTest/CDash.<br />
* '''Nightly start time:''' starting time of the 24h window of the daily dashboard.<br />
* '''Ajax:''' Asynchronous JavaScript and XML, is a group of web development techniques used for creating interactive web applications.<br />
* '''[http://php.net PHP]:''' Hypertext Preprocessor, is a computer scripting language, designed for producing dynamic web pages.<br />
* '''SQL:''' Structured Query Language, is a database computer language designed for the retrieval and management of data in relational database management systems.<br />
<br />
= Login to CDash =<br />
CDash uses secure login for users and adminsitrators. CDash does not store any plain text passwords in the database, therefore passwords cannot be recovered, even by system administrators. <br />
<br />
''Note: LDAP is not currently supported.''<br />
<br />
* To login, click on the 'Login' link at the top of the main CDash page or directly go to the user.php page http://myserver/CDash/user.php.<br />
* If you don't have a login, click on the 'register' link on the top menu. In order to register, CDash requires a valid email address, your first name, last name and password. The institution is optional. CDash implements some security features to avoid robots to register.<br />
* Once registered you are ready to type your email and password provided in the login screen.<br />
<br />
= Available Dashboards =<br />
[[Image:CDashIndexTable.jpg|thumb|CDash index table]]<br />
<br />
The first page display on CDash is a list of current public projects (private projects are not shown on this page). Several information are shown on this page:<br />
<br />
* The name of the project<br />
* The total number of submissions for each project<br />
* The date of the first build for each project<br />
* The date of the last submission (not build time)<br />
<br />
* To total size of the database<br />
<br />
Clicking on the name of the project redirects the user to the main dashboard for this project.<br />
<br />
= Project Dashboard =<br />
[[Image:CDashMainDashboard.jpg|thumb|Project's dashboard page]]<br />
[[Image:CDashHelp.jpg|thumb|Help link from the main dashboard page]]<br />
<br />
Each project dashboard have a similar layout:<br />
* Top row of the page:<br />
** Link to "My CDash/Login"<br />
** Current date of the server hosting CDash<br />
** Link to RSS feed to the project (if not private)<br />
* Banner:<br />
** Custom project logo (see [[CDash:Administration#Updating_project.E2.80.99s_logo | Updating project's logo]] to upload a new logo). ''Note: clicking on the logo redirects to the project's home page (if any defined)''<br />
** Project's name<br />
* Main Menu<br />
** '''Dashboard:''' goes back to the list of projects hosted on CDash<br />
*** '''Updates:''' Overview of the updates for this day and this project<br />
*** '''Builds:''' Overview of the builds for this day and this project<br />
*** '''Tests:''' Overview of the test failing for this day and this project<br />
*** '''Map:''' Map of the sites for this project and this day<br />
** '''Calendar:''' display a calendar to check previous dashboards<br />
** '''Previous:''' Go to the previous day<br />
** '''Current:''' Go to the current day<br />
** '''Next:''' Go to the next day<br />
** '''Project:''' Project links<br />
*** '''Home:''' Home URL<br />
*** '''Doxygen:''' Documentation page for this project<br />
*** '''CVS:''' Link to the CVS/SVN viewer for this project<br />
*** '''Bugs:''' Link to the bug tracker for this project<br />
* '''Daily updates:''' Updates on the project's repository. <br />
* '''Help link:''' popup a window with help information<br />
* Build groups: explained in the next section.<br />
* Coverage: explained in the next section.<br />
* Dynamic Analysis: explained in the next section.<br />
<br />
== Build groups ==<br />
<br />
Each build submitted by a site corresponds to a row in the main dashboard. By default the build falls in the group defined by the type of submission (i.e Nightly, Experimental or Continuous), however, custom builds can be defined. See [[CDash:Administration#Build_Groups | Build Groups]] administration section for more information on how to create new groups and define rules for builds.<br />
<br />
* Mouse hover the top row of a build group, shows the quick link bar to quickly jump to a different group.<br />
* Expected builds are shown as a empty row in the dashboard if they have not been submitting.<br />
<br />
=== Default group ===<br />
[[Image:CDashSorting.jpg|thumb|Muli-columns sorting]]<br />
[[Image:CDashGroup.jpg|thumb|Group description]]<br />
[[Image:CDashShowNote.jpg|thumb|Note for a build]]<br />
<br />
In this section we explain the layout of default groups (i.e. Nightly, Experimental, Continuous,...). These groups are represented in the light blue sections.<br />
<br />
'''Clicking on the gray header allow sorting the table by the clicked field. Multisorting is possible by holding the shift key.''', also the current sorting is saved by the user's web browser using cookies, allowing to keep the same sorting while browsing different days for the same project.<br />
<br />
Clicking on the group name displays the build group description.<br />
<br />
Each build (row) contains the following information:<br />
* '''Site:''' Name of the site submitting the build. Clicking on the name redirects to site description.<br />
* '''Build name:''' Name of the build. Clicking on the name redirects to the build summary page.<br />
** '''Build note:''' If submitted with CTest and configure with build notes, a small icon shows the build note. Clicking on the icon displays the CTest script used to submit the page.<br />
** '''CTest version:''' If submitted with CTest, a small icon displays the CTest version.<br />
** '''Build info:''' If a build is expected and has not been submitting, or if a build has errors or warnings or tests failing, then a build info icon is present. Clicking on the build info icon trigger an ajax request that displays more information about this build.<br />
** '''Notes:''' If someone submitted a note for this build, mouse hover the note icon will display the current notes.<br />
* '''Update:''' Shows the number of files updated (from the SVN/CVS repository) for this build. Clicking on the number shows the name and information of the updated files.<br />
* '''Cfg:''' Shows the configuration errors. If red, some errors occurred while configuring the project. Clicking on the number displays the current configuration status.<br />
* '''Build:''' Displays the principal build information.<br />
** '''Error:''' Number of build errors.<br />
** '''Warn:''' Number of build warnings.<br />
** '''Min:''' Time (in minutes) it took to build the project.<br />
* '''Test:''' Displays information about the test.<br />
** '''Not Run:''' Number of test not run (because not found for instance).<br />
** '''Fail:''' Number of test failed. Clicking on the number show the name of the failing tests. If time status is enabled for the project, it is reflected here.<br />
** '''Pass:''' Number of test passed. Clicking on the number show the name of the passing tests. If time status is enabled for the project, it is reflected here.<br />
** '''Min:''' Time it took to run all the tests.<br />
* '''Build time:''' Time when the build started expressed in the timezone of the webserver. This is different from the time when the build was submitted.<br />
<br />
=== Coverage ===<br />
[[Image:CDashCoverage.jpg|thumb|Coverage section of the dashboard]]<br />
<br />
CDash supports gcov and bullseye as coverage tools.<br />
The main dashboard displays the following information:<br />
<br />
* '''Site:''' name of the site<br />
* '''Build name:''' name of the build<br />
* '''Percentage: ''' Overall coverage percentage (for all files in the project).<br />
* '''Passed:''' Number of lines of code that are tested.<br />
* '''Failed:''' Number of lines of code that are not tested.<br />
* '''Date:''' Build starting date.<br />
<br />
=== Dynamic Analysis ===<br />
[[Image:CDashDynamicAnalysis.jpg|thumb|Dynamic Analysys section of the dashboard]]<br />
<br />
CDash supports [http://valgrind.org valgrind] as the main dynamic analysis tool.<br />
The main dashboard displays the following information:<br />
<br />
* '''Site:''' Name of the site<br />
* '''Build name:''' Name of the build<br />
* '''Checker: ''' Name of the checker.<br />
* '''Defect count:''' Number of memory defects.<br />
* '''Date:''' Build starting date.<br />
<br />
== Daily updates ==<br />
<br />
CDash stores the daily updates in the database for a quick query. The number of files changed for that day as well as the number of authors who changed the files are displayed. Clicking on the number of files changed display the name of the files and more information.<br />
<br />
See the [[CDash:Design#Daily_Updates | Daily Updates Design]] section for more information.<br />
<br />
== Map ==<br />
[[Image:CDashMap.jpg|thumb|Map of the sites contributing to a project]]<br />
<br />
CDash stores the geolocation from the IP address for the sites and displays them on a map via Google map API. This allows to quickly browse where the builds are coming from. Clicking on a pin on the map, shows the name of the site.<br />
<br />
See [[CDash:Design#Map_and_Geolocation | Map and Geolocation]] design page for more information.<br />
<br />
= My CDash =<br />
<br />
[[Image:CDashMyCDash.jpg|thumb|MyCDash page]]<br />
<br />
Each user has its own personal section in CDash, where they can keep track of recent builds, submissions, claim sites and more.<br />
<br />
== My Profile ==<br />
<br />
User can change their profile: First/Last name, email, institution and password from the the "My Profile" menu at the top of the "My CDash" page.<br />
<br />
== My Projects ==<br />
<br />
If a user has subscribe to at least a project (see [[CDash:Documentation#Subscribe_to_project | Subscribe to project]]), the list of subscribed projects is shown under "My Projects". There several links related to the subscriptions.<br />
<br />
=== Edit Subscription ===<br />
<br />
Users can edit their subscription for a given project.<br />
<br />
# From MyCdash page, under My Projects, click on [Edit subscription]<br />
# Change the role if necessary. '''Downgrading from project administrator to Site maintainer or normal user cannot be reverted unless by another project administrator'''.<br />
# Change or add CVS/SVN login<br />
# Change the email preferences if necessary<br />
# Click on "Update Subscription" to validate the modifications<br />
<br />
Users can unsubscribe from a project by clicking on the "Unsubscribe" button. Users will be able to subscribe later on.<br />
<br />
=== Claim sites ===<br />
See [[CDash:Documentation#Claim a site | Claim a site]] section.<br />
<br />
=== Edit project ===<br />
See [[CDash:Administration#Editing_a_project | Editing a project]] section.<br />
<br />
=== Manage project groups ===<br />
See [[CDash:Administration#Build_Groups | Build groups]] section.<br />
<br />
=== Manage project roles ===<br />
See [[CDash:Administration#Project_Roles | Project roles]] section.<br />
<br />
== My Sites ==<br />
<br />
[[Image:CDashMySites.jpg|thumb|My sites]]<br />
<br />
As a site maintainer, it is useful to know if submissions have been missing for quite sometime, or if the current builds on a specific sites are not reporting errors due to misconfiguration.<br />
<br />
* The first column show the list of currently claimed sites.<br />
* The first row shows the current projects that are submitting builds for the given site<br />
* For each pair (site/project) a summary of the current status of the dashboard is displayed<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Build group !! Updates !! Errors !! Warnings !! Tests !! Last submission<br />
|-<br />
| N: Nightly || 1 || 0 || 0 || 0 || Today<br />
|-<br />
| C: Continuous || 1 || 0 || 0 || 0 || Yesterday<br />
|-<br />
| E: Experimental || 1 || 0 || 0 || 0 || 6 days ago<br />
|}<br />
<br />
''Note: only Nightly, Continuous and Experimental groups are current shown'.' <br />
<br />
Clicking on the name of a site gives access to the description of the site.<br />
<br />
== Public projects ==<br />
<br />
List of all the public projects stored in CDash. By definition, users registered in CDash can subscribe to any public projects.<br />
<br />
= Subscribe to project =<br />
<br />
[[Image:CDashSubscribeProject.jpg|thumb|Subscribing to public projects]]<br />
<br />
If the project is public then users can subscribe to the project themselves, otherwise see section [[CDash:Administration#Project_Roles | Project Roles]].<br />
<br />
# Log into CDash (see [[CDash:Documentation#Login_to_CDash | Login to CDash]])<br />
# Under "Public projects" section click on [Subscribe to this project]<br />
# Select your role for the project: '''Normal user''' or '''Site maintainer''' if you are responsible for a machine sending periodic builds to the dashboard/<br />
# Add your CVS/SVN login for the project if you have any<br />
# Select your email preference<br />
# Click on subscribe<br />
<br />
= Claim a site =<br />
[[Image:CDashClaimSite.jpg|thumb|Claiming a site]]<br />
<br />
CDash allows '''Site maintainers''' (see [[CDash:Documentation#Subscribe_to_project | Subscribe to Project]]) to claim a site they are managing. This allows users to have personal reports regarding a specific machine and get informed if the machine has not been submitting from quite some time or has unexpected high number of failures (probably due to misconfiguration).<br />
<br />
In order to claim a site:<br />
<br />
# Login to CDash to acces "My CDash"<br />
# Under "My Projects" select [Claim sites]. If the project is not listed, refers to [[CDash:Documentation#Subscribe_to_project | Subscribe to Project]] for more information.<br />
# The Claim sites page show the list of current sites for the project. Check the site(s) of interest.<br />
# Click on "Update claimed sites"<br />
<br />
In order to unclaim a site:<br />
<br />
# Login to CDash to acces "My CDash"<br />
# Under "My Projects" select [Claim sites].<br />
# Uncheck the site(s) no longer of interest.<br />
# Click on "Update claimed sites"<br />
<br />
See the section [[CDash:Documentation#Describe_a_site | Describe a site]] for information about the given sites.<br />
<br />
= Describe a site =<br />
[[Image:CDashSiteSpecifications.jpg|thumb|Describing a site]]<br />
[[Image:CDashSite.jpg|thumb|Site information]]<br />
<br />
CDash records each site specifications so that users can quickly assess the type of machine, OS, memory, etc...<br />
<br />
'''If using the CTest 2.6 (or higher) the site specifications are automatically sent as part of the submission.'''<br />
<br />
Here's the list of specification currently present:<br />
<br />
*'''Name:''' '''This value shouldn't be changed, unless the site name sent by the build was wrong. Make sure the name of the build matches CTest buildname otherwise a new site will be created.'''<br />
*'''64 bits:''' Is the machine running a 64bits OS<br />
*'''Processor vendor:''' vendor name of the processor (i.e. GenuineIntel)<br />
*'''Processor vendor ID:''' vendor identification of the processor (i.e. Intel Corporation)<br />
*'''Processor family ID:''' family identification number of the processor (i.e. 15)<br />
*'''Processor model ID:''' model identification number of the processor, usually depending on the processor family (i.e. 3)<br />
*'''Processor cache size:''' size of the processor cache in MB.<br />
*'''CPU Speed (MHz):''' speed of the CPU in MHz.<br />
*'''Number of logical CPUs:''' Number of logical CPU per physical CPU.<br />
*'''Number of physical CPUs:''' Number of physical CPU.<br />
*'''Logical Processor per Physical:'''Number of logical processor per physical<br />
*'''Total virtual memory (MB):''' Total virtual memory in MB.<br />
*'''Total physical memory (MB):''' Total physical memory (RAM) in MB.<br />
*'''Description:''' Description of the machine.<br />
*'''IP address:''' Current IP address. This is filled in automatically by CDash<br />
*'''Latitude:''' Geolocation from the IP address<br />
*'''Longitude:''' Geolocation from the IP address<br />
<br />
'''CDash keeps an history''' of the machine description, in case of memory or processor upgrade. This is particularly useful to assess why a test is now running much faster than before. If the system has been upgraded, the checkbox "Force new description revision" should be checked. Note that CDash should automatically detect if a site has been upgraded.<br />
<br />
''Note: support for other specifications, such as graphic card information and more detailed information might be added in the near future.''<br />
<br />
= Graphs =<br />
<br />
CDash relies on the flot javascript library for graphing. See the section [[CDash:Design#Graphs | Graphs]] for information.<br />
CDash curently plots three types of graph as explained below.<br />
<br />
== Build time graph ==<br />
[[Image:CDashBuildGraph.jpg|thumb|Build time graph]]<br />
<br />
The time requires to build a project is recorded as part of CTest. Sometimes it might be useful to track the build time overtime. In order to do so:<br />
<br />
# Go to the main dashboard for the project<br />
# Click on the build name you want to track<br />
# On the build summary page, click on [Show Build Time Graph], this performs an Ajax request to the database.<br />
<br />
== Test time graphs ==<br />
<br />
CDash plots graphs of the time it takes to run a specific test as well as its status (passed/failed) overtime. <br />
<br />
To look at these graphs:<br />
<br />
# Go to the main dashboard for a project<br />
# Click on the number of test passed or failed<br />
# From the list of tests, click on the status of the test.<br />
# Click on [Show Test Time Graph] and/or [Show Failing/Passing Graph]<br />
<br />
<br />
<br />
= Adding notes to a build =<br />
[[Image:CDashAddNote.jpg|thumb|Adding a note to a build]]<br />
In some cases, it is useful to tell other developers that you are currently looking at the errors for a builds and informed them. CDash implements a simple note mechanism.<br />
<br />
* Login to CDash<br />
* On the dashboard project page, click on the build name to which you want to add the note.<br />
* Click on [Add a Note to this Build] link, located next to the current build matrix (see thumbnail)<br />
* Enter a small message corresponding to the note<br />
* Select the status of the note: '''Simple note''', '''Fix in progress''', '''Fixed'''.<br />
* Click on "Add Note"<br />
<br />
= Build summary =<br />
<br />
CDash summarizes the build errors and warnings on a single page. The errors are grouped by file and line number. It makes easier to fix source code.<br />
In order to see the build summary:<br />
<br />
# Go to the main dashboard for the project<br />
# In the main menu select Dashboard->Builds<br />
<br />
= Filters =<br />
Some CDash pages allow you to use '''filters''' to narrow down the results to what's important to you.<br />
<br />
== Filters on index.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Build Duration || How long the build took to complete || 14m 58s<br />
|-<br />
| Build Errors || How many errors occurred during the build step || 1<br />
|-<br />
| Build Warnings || How many warnings occurred during the build step || 5<br />
|-<br />
| Build Name || The name of the build || Linux-cxx<br />
|-<br />
| Build Stamp || The CTest-generated TAG for this build || 20090223-0100-Nightly<br />
|-<br />
| Build Start Time || When this build started (including any update/configure/etc) || 2009-02-23 01:00:00 UTC<br />
|-<br />
| Build Type || What type of build this is || Experimental<br />
|-<br />
| Configure Duration || How long this build took to configure || 2m 45s<br />
|-<br />
| Configure Errors || How many errors occurred during the configure step || 2<br />
|-<br />
| Configure Warnings || How many warnings occurred during the configure step || 3<br />
|-<br />
| Expected || Whether or not this build has been marked as expected || true<br />
|-<br />
| Group || The name of this build's group || Nightly<br />
|-<br />
| Has Coverage || Whether or not this build performed coverage || true<br />
|-<br />
| Has CTest Notes || Whether or not any notes were uploaded with this build || false<br />
|-<br />
| Has Dynamic Analysis || Whether or not this build performed dynamic analysis || true<br />
|-<br />
| Has User Notes || Whether or not a CDash user left a note on this build || true<br />
|-<br />
| Label || Search for builds with a given label || vtkCommonCore<br />
|-<br />
| Site || Search for builds from a given site || kamino<br />
|-<br />
| Submission Client || What client was used to submit this build || ctest-3.0<br />
|-<br />
| SubProject || Whitelist or blacklist SubProject results'''<nowiki>*</nowiki>''' || my-subproject-name<br />
|-<br />
| Tests Duration || How long this build took to test || 5m 23s<br />
|-<br />
| Tests Failed || How many tests failed || 4<br />
|-<br />
| Tests Not Run || How many tests couldn't be run || 10<br />
|-<br />
| Tests Passed || How many tests passed || 20<br />
|-<br />
| Tests Timing Failed || [[CDash:Design#Test_Timing|How many tests failed the time status check]] || 8<br />
|-<br />
| Update Duration || How long this build took to update || 45s<br />
|-<br />
| Updated Files || How many source files were updated before this build || 5<br />
|}<br />
<br />
'''<nowiki>*</nowiki>''' A note on the SubProject filter. This filter can only be used to narrow down results. It can not be used to include results that otherwise would not have been returned. Consider the following examples:<br />
<br />
Test Failures > 0 AND SubProject exclude <the-only-package-with-failing-tests><br />
This works as expected, because the SubProject filter is being used to narrow the results returned by the Test Failure filter.<br />
<br />
Build Duration < 60s AND SubProject exclude <slowest-package-to-build><br />
This does not work the way you expect it to. The Build Duration filter will discard the build for being too slow before the SubProject filter can modify its duration.<br />
<br />
== Filters on queryTests.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Build Name || The name of the build that performed this test || Linux-c++<br />
|-<br />
| Build Time || When this build started || 2009-02-23 01:00:00 UTC<br />
|-<br />
| Details || Information about how this test exited || OTHER_FAULT<br />
|-<br />
| Label || Search for tests with a given label || vtkCommonCore<br />
|-<br />
| Site || Search for tests run on a given site || kamino<br />
|-<br />
| Status || Search for tests with a given status || passed<br />
|-<br />
| Test Name || The name of the test || kwsys.testHashSTL<br />
|-<br />
| Time || How long this test took to run (in seconds) || 12.73<br />
|}<br />
<br />
== Filters on viewCoverage.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Covered Lines || The number of covered lines in this file || 50<br />
|-<br />
| Filename || The name of this file || foo.cxx<br />
|-| Labels || Search for source files with a given label || vtkCommonCore<br />
|-<br />
| Priority || The priority of this source file || 2<br />
|-<br />
| Total Lines || The number of coverable lines in this file || 100<br />
|-<br />
| Uncovered Lines || The number of uncovered lines in this file || 25<br />
|}<br />
<br />
== Filters on viewTest.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Details || Information about how this test exited || OTHER_FAULT<br />
|-<br />
| Label || Search for tests with a given label || vtkCommonCore<br />
|-<br />
| Status || Search for tests with a given status || passed<br />
|-<br />
| Test Name || The name of the test || kwsys.testHashSTL<br />
|-<br />
| Time || How long this test took to run (in seconds) || 12.73<br />
|-<br />
| Time Status || [[CDash:Design#Test_Timing|Whether or not this build failed the time status check]] || 1<br />
|}</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Documentation&diff=59776CDash:Documentation2016-06-03T14:11:00Z<p>Zack: /* Filters on queryTests.php */</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
This page is the official CDash documentation.<br />
<br />
= CDash definitions =<br />
<br />
* '''Build:''' Single submission to the dashboard for a specific project, environment and build type.<br />
* '''Build type:''' reference by CTest as Nightly, Experimental or Continuous. (see CMake documentation for more information).<br />
* '''Site:''' Computer contributing builds to the dashboard. A site might belong to several projects and submit different build.<br />
* '''Coverage:''' Number of lines of code actually tested. CDash/CTest currently supports gcov and bulleyes tools.<br />
* '''Dynamic Analysis:''' reports the memory allocation/deallocations analysis for test, examples and executable for the project. Valgrind is currently supported by CTest/CDash.<br />
* '''Nightly start time:''' starting time of the 24h window of the daily dashboard.<br />
* '''Ajax:''' Asynchronous JavaScript and XML, is a group of web development techniques used for creating interactive web applications.<br />
* '''[http://php.net PHP]:''' Hypertext Preprocessor, is a computer scripting language, designed for producing dynamic web pages.<br />
* '''SQL:''' Structured Query Language, is a database computer language designed for the retrieval and management of data in relational database management systems.<br />
<br />
= Login to CDash =<br />
CDash uses secure login for users and adminsitrators. CDash does not store any plain text passwords in the database, therefore passwords cannot be recovered, even by system administrators. <br />
<br />
''Note: LDAP is not currently supported.''<br />
<br />
* To login, click on the 'Login' link at the top of the main CDash page or directly go to the user.php page http://myserver/CDash/user.php.<br />
* If you don't have a login, click on the 'register' link on the top menu. In order to register, CDash requires a valid email address, your first name, last name and password. The institution is optional. CDash implements some security features to avoid robots to register.<br />
* Once registered you are ready to type your email and password provided in the login screen.<br />
<br />
= Available Dashboards =<br />
[[Image:CDashIndexTable.jpg|thumb|CDash index table]]<br />
<br />
The first page display on CDash is a list of current public projects (private projects are not shown on this page). Several information are shown on this page:<br />
<br />
* The name of the project<br />
* The total number of submissions for each project<br />
* The date of the first build for each project<br />
* The date of the last submission (not build time)<br />
<br />
* To total size of the database<br />
<br />
Clicking on the name of the project redirects the user to the main dashboard for this project.<br />
<br />
= Project Dashboard =<br />
[[Image:CDashMainDashboard.jpg|thumb|Project's dashboard page]]<br />
[[Image:CDashHelp.jpg|thumb|Help link from the main dashboard page]]<br />
<br />
Each project dashboard have a similar layout:<br />
* Top row of the page:<br />
** Link to "My CDash/Login"<br />
** Current date of the server hosting CDash<br />
** Link to RSS feed to the project (if not private)<br />
* Banner:<br />
** Custom project logo (see [[CDash:Administration#Updating_project.E2.80.99s_logo | Updating project's logo]] to upload a new logo). ''Note: clicking on the logo redirects to the project's home page (if any defined)''<br />
** Project's name<br />
* Main Menu<br />
** '''Dashboard:''' goes back to the list of projects hosted on CDash<br />
*** '''Updates:''' Overview of the updates for this day and this project<br />
*** '''Builds:''' Overview of the builds for this day and this project<br />
*** '''Tests:''' Overview of the test failing for this day and this project<br />
*** '''Map:''' Map of the sites for this project and this day<br />
** '''Calendar:''' display a calendar to check previous dashboards<br />
** '''Previous:''' Go to the previous day<br />
** '''Current:''' Go to the current day<br />
** '''Next:''' Go to the next day<br />
** '''Project:''' Project links<br />
*** '''Home:''' Home URL<br />
*** '''Doxygen:''' Documentation page for this project<br />
*** '''CVS:''' Link to the CVS/SVN viewer for this project<br />
*** '''Bugs:''' Link to the bug tracker for this project<br />
* '''Daily updates:''' Updates on the project's repository. <br />
* '''Help link:''' popup a window with help information<br />
* Build groups: explained in the next section.<br />
* Coverage: explained in the next section.<br />
* Dynamic Analysis: explained in the next section.<br />
<br />
== Build groups ==<br />
<br />
Each build submitted by a site corresponds to a row in the main dashboard. By default the build falls in the group defined by the type of submission (i.e Nightly, Experimental or Continuous), however, custom builds can be defined. See [[CDash:Administration#Build_Groups | Build Groups]] administration section for more information on how to create new groups and define rules for builds.<br />
<br />
* Mouse hover the top row of a build group, shows the quick link bar to quickly jump to a different group.<br />
* Expected builds are shown as a empty row in the dashboard if they have not been submitting.<br />
<br />
=== Default group ===<br />
[[Image:CDashSorting.jpg|thumb|Muli-columns sorting]]<br />
[[Image:CDashGroup.jpg|thumb|Group description]]<br />
[[Image:CDashShowNote.jpg|thumb|Note for a build]]<br />
<br />
In this section we explain the layout of default groups (i.e. Nightly, Experimental, Continuous,...). These groups are represented in the light blue sections.<br />
<br />
'''Clicking on the gray header allow sorting the table by the clicked field. Multisorting is possible by holding the shift key.''', also the current sorting is saved by the user's web browser using cookies, allowing to keep the same sorting while browsing different days for the same project.<br />
<br />
Clicking on the group name displays the build group description.<br />
<br />
Each build (row) contains the following information:<br />
* '''Site:''' Name of the site submitting the build. Clicking on the name redirects to site description.<br />
* '''Build name:''' Name of the build. Clicking on the name redirects to the build summary page.<br />
** '''Build note:''' If submitted with CTest and configure with build notes, a small icon shows the build note. Clicking on the icon displays the CTest script used to submit the page.<br />
** '''CTest version:''' If submitted with CTest, a small icon displays the CTest version.<br />
** '''Build info:''' If a build is expected and has not been submitting, or if a build has errors or warnings or tests failing, then a build info icon is present. Clicking on the build info icon trigger an ajax request that displays more information about this build.<br />
** '''Notes:''' If someone submitted a note for this build, mouse hover the note icon will display the current notes.<br />
* '''Update:''' Shows the number of files updated (from the SVN/CVS repository) for this build. Clicking on the number shows the name and information of the updated files.<br />
* '''Cfg:''' Shows the configuration errors. If red, some errors occurred while configuring the project. Clicking on the number displays the current configuration status.<br />
* '''Build:''' Displays the principal build information.<br />
** '''Error:''' Number of build errors.<br />
** '''Warn:''' Number of build warnings.<br />
** '''Min:''' Time (in minutes) it took to build the project.<br />
* '''Test:''' Displays information about the test.<br />
** '''Not Run:''' Number of test not run (because not found for instance).<br />
** '''Fail:''' Number of test failed. Clicking on the number show the name of the failing tests. If time status is enabled for the project, it is reflected here.<br />
** '''Pass:''' Number of test passed. Clicking on the number show the name of the passing tests. If time status is enabled for the project, it is reflected here.<br />
** '''Min:''' Time it took to run all the tests.<br />
* '''Build time:''' Time when the build started expressed in the timezone of the webserver. This is different from the time when the build was submitted.<br />
<br />
=== Coverage ===<br />
[[Image:CDashCoverage.jpg|thumb|Coverage section of the dashboard]]<br />
<br />
CDash supports gcov and bullseye as coverage tools.<br />
The main dashboard displays the following information:<br />
<br />
* '''Site:''' name of the site<br />
* '''Build name:''' name of the build<br />
* '''Percentage: ''' Overall coverage percentage (for all files in the project).<br />
* '''Passed:''' Number of lines of code that are tested.<br />
* '''Failed:''' Number of lines of code that are not tested.<br />
* '''Date:''' Build starting date.<br />
<br />
=== Dynamic Analysis ===<br />
[[Image:CDashDynamicAnalysis.jpg|thumb|Dynamic Analysys section of the dashboard]]<br />
<br />
CDash supports [http://valgrind.org valgrind] as the main dynamic analysis tool.<br />
The main dashboard displays the following information:<br />
<br />
* '''Site:''' Name of the site<br />
* '''Build name:''' Name of the build<br />
* '''Checker: ''' Name of the checker.<br />
* '''Defect count:''' Number of memory defects.<br />
* '''Date:''' Build starting date.<br />
<br />
== Daily updates ==<br />
<br />
CDash stores the daily updates in the database for a quick query. The number of files changed for that day as well as the number of authors who changed the files are displayed. Clicking on the number of files changed display the name of the files and more information.<br />
<br />
See the [[CDash:Design#Daily_Updates | Daily Updates Design]] section for more information.<br />
<br />
== Map ==<br />
[[Image:CDashMap.jpg|thumb|Map of the sites contributing to a project]]<br />
<br />
CDash stores the geolocation from the IP address for the sites and displays them on a map via Google map API. This allows to quickly browse where the builds are coming from. Clicking on a pin on the map, shows the name of the site.<br />
<br />
See [[CDash:Design#Map_and_Geolocation | Map and Geolocation]] design page for more information.<br />
<br />
= My CDash =<br />
<br />
[[Image:CDashMyCDash.jpg|thumb|MyCDash page]]<br />
<br />
Each user has its own personal section in CDash, where they can keep track of recent builds, submissions, claim sites and more.<br />
<br />
== My Profile ==<br />
<br />
User can change their profile: First/Last name, email, institution and password from the the "My Profile" menu at the top of the "My CDash" page.<br />
<br />
== My Projects ==<br />
<br />
If a user has subscribe to at least a project (see [[CDash:Documentation#Subscribe_to_project | Subscribe to project]]), the list of subscribed projects is shown under "My Projects". There several links related to the subscriptions.<br />
<br />
=== Edit Subscription ===<br />
<br />
Users can edit their subscription for a given project.<br />
<br />
# From MyCdash page, under My Projects, click on [Edit subscription]<br />
# Change the role if necessary. '''Downgrading from project administrator to Site maintainer or normal user cannot be reverted unless by another project administrator'''.<br />
# Change or add CVS/SVN login<br />
# Change the email preferences if necessary<br />
# Click on "Update Subscription" to validate the modifications<br />
<br />
Users can unsubscribe from a project by clicking on the "Unsubscribe" button. Users will be able to subscribe later on.<br />
<br />
=== Claim sites ===<br />
See [[CDash:Documentation#Claim a site | Claim a site]] section.<br />
<br />
=== Edit project ===<br />
See [[CDash:Administration#Editing_a_project | Editing a project]] section.<br />
<br />
=== Manage project groups ===<br />
See [[CDash:Administration#Build_Groups | Build groups]] section.<br />
<br />
=== Manage project roles ===<br />
See [[CDash:Administration#Project_Roles | Project roles]] section.<br />
<br />
== My Sites ==<br />
<br />
[[Image:CDashMySites.jpg|thumb|My sites]]<br />
<br />
As a site maintainer, it is useful to know if submissions have been missing for quite sometime, or if the current builds on a specific sites are not reporting errors due to misconfiguration.<br />
<br />
* The first column show the list of currently claimed sites.<br />
* The first row shows the current projects that are submitting builds for the given site<br />
* For each pair (site/project) a summary of the current status of the dashboard is displayed<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Build group !! Updates !! Errors !! Warnings !! Tests !! Last submission<br />
|-<br />
| N: Nightly || 1 || 0 || 0 || 0 || Today<br />
|-<br />
| C: Continuous || 1 || 0 || 0 || 0 || Yesterday<br />
|-<br />
| E: Experimental || 1 || 0 || 0 || 0 || 6 days ago<br />
|}<br />
<br />
''Note: only Nightly, Continuous and Experimental groups are current shown'.' <br />
<br />
Clicking on the name of a site gives access to the description of the site.<br />
<br />
== Public projects ==<br />
<br />
List of all the public projects stored in CDash. By definition, users registered in CDash can subscribe to any public projects.<br />
<br />
= Subscribe to project =<br />
<br />
[[Image:CDashSubscribeProject.jpg|thumb|Subscribing to public projects]]<br />
<br />
If the project is public then users can subscribe to the project themselves, otherwise see section [[CDash:Administration#Project_Roles | Project Roles]].<br />
<br />
# Log into CDash (see [[CDash:Documentation#Login_to_CDash | Login to CDash]])<br />
# Under "Public projects" section click on [Subscribe to this project]<br />
# Select your role for the project: '''Normal user''' or '''Site maintainer''' if you are responsible for a machine sending periodic builds to the dashboard/<br />
# Add your CVS/SVN login for the project if you have any<br />
# Select your email preference<br />
# Click on subscribe<br />
<br />
= Claim a site =<br />
[[Image:CDashClaimSite.jpg|thumb|Claiming a site]]<br />
<br />
CDash allows '''Site maintainers''' (see [[CDash:Documentation#Subscribe_to_project | Subscribe to Project]]) to claim a site they are managing. This allows users to have personal reports regarding a specific machine and get informed if the machine has not been submitting from quite some time or has unexpected high number of failures (probably due to misconfiguration).<br />
<br />
In order to claim a site:<br />
<br />
# Login to CDash to acces "My CDash"<br />
# Under "My Projects" select [Claim sites]. If the project is not listed, refers to [[CDash:Documentation#Subscribe_to_project | Subscribe to Project]] for more information.<br />
# The Claim sites page show the list of current sites for the project. Check the site(s) of interest.<br />
# Click on "Update claimed sites"<br />
<br />
In order to unclaim a site:<br />
<br />
# Login to CDash to acces "My CDash"<br />
# Under "My Projects" select [Claim sites].<br />
# Uncheck the site(s) no longer of interest.<br />
# Click on "Update claimed sites"<br />
<br />
See the section [[CDash:Documentation#Describe_a_site | Describe a site]] for information about the given sites.<br />
<br />
= Describe a site =<br />
[[Image:CDashSiteSpecifications.jpg|thumb|Describing a site]]<br />
[[Image:CDashSite.jpg|thumb|Site information]]<br />
<br />
CDash records each site specifications so that users can quickly assess the type of machine, OS, memory, etc...<br />
<br />
'''If using the CTest 2.6 (or higher) the site specifications are automatically sent as part of the submission.'''<br />
<br />
Here's the list of specification currently present:<br />
<br />
*'''Name:''' '''This value shouldn't be changed, unless the site name sent by the build was wrong. Make sure the name of the build matches CTest buildname otherwise a new site will be created.'''<br />
*'''64 bits:''' Is the machine running a 64bits OS<br />
*'''Processor vendor:''' vendor name of the processor (i.e. GenuineIntel)<br />
*'''Processor vendor ID:''' vendor identification of the processor (i.e. Intel Corporation)<br />
*'''Processor family ID:''' family identification number of the processor (i.e. 15)<br />
*'''Processor model ID:''' model identification number of the processor, usually depending on the processor family (i.e. 3)<br />
*'''Processor cache size:''' size of the processor cache in MB.<br />
*'''CPU Speed (MHz):''' speed of the CPU in MHz.<br />
*'''Number of logical CPUs:''' Number of logical CPU per physical CPU.<br />
*'''Number of physical CPUs:''' Number of physical CPU.<br />
*'''Logical Processor per Physical:'''Number of logical processor per physical<br />
*'''Total virtual memory (MB):''' Total virtual memory in MB.<br />
*'''Total physical memory (MB):''' Total physical memory (RAM) in MB.<br />
*'''Description:''' Description of the machine.<br />
*'''IP address:''' Current IP address. This is filled in automatically by CDash<br />
*'''Latitude:''' Geolocation from the IP address<br />
*'''Longitude:''' Geolocation from the IP address<br />
<br />
'''CDash keeps an history''' of the machine description, in case of memory or processor upgrade. This is particularly useful to assess why a test is now running much faster than before. If the system has been upgraded, the checkbox "Force new description revision" should be checked. Note that CDash should automatically detect if a site has been upgraded.<br />
<br />
''Note: support for other specifications, such as graphic card information and more detailed information might be added in the near future.''<br />
<br />
= Graphs =<br />
<br />
CDash relies on the flot javascript library for graphing. See the section [[CDash:Design#Graphs | Graphs]] for information.<br />
CDash curently plots three types of graph as explained below.<br />
<br />
== Build time graph ==<br />
[[Image:CDashBuildGraph.jpg|thumb|Build time graph]]<br />
<br />
The time requires to build a project is recorded as part of CTest. Sometimes it might be useful to track the build time overtime. In order to do so:<br />
<br />
# Go to the main dashboard for the project<br />
# Click on the build name you want to track<br />
# On the build summary page, click on [Show Build Time Graph], this performs an Ajax request to the database.<br />
<br />
== Test time graphs ==<br />
<br />
CDash plots graphs of the time it takes to run a specific test as well as its status (passed/failed) overtime. <br />
<br />
To look at these graphs:<br />
<br />
# Go to the main dashboard for a project<br />
# Click on the number of test passed or failed<br />
# From the list of tests, click on the status of the test.<br />
# Click on [Show Test Time Graph] and/or [Show Failing/Passing Graph]<br />
<br />
<br />
<br />
= Adding notes to a build =<br />
[[Image:CDashAddNote.jpg|thumb|Adding a note to a build]]<br />
In some cases, it is useful to tell other developers that you are currently looking at the errors for a builds and informed them. CDash implements a simple note mechanism.<br />
<br />
* Login to CDash<br />
* On the dashboard project page, click on the build name to which you want to add the note.<br />
* Click on [Add a Note to this Build] link, located next to the current build matrix (see thumbnail)<br />
* Enter a small message corresponding to the note<br />
* Select the status of the note: '''Simple note''', '''Fix in progress''', '''Fixed'''.<br />
* Click on "Add Note"<br />
<br />
= Build summary =<br />
<br />
CDash summarizes the build errors and warnings on a single page. The errors are grouped by file and line number. It makes easier to fix source code.<br />
In order to see the build summary:<br />
<br />
# Go to the main dashboard for the project<br />
# In the main menu select Dashboard->Builds<br />
<br />
= Filters =<br />
Some CDash pages allow you to use '''filters''' to narrow down the results to what's important to you.<br />
<br />
== Filters on index.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Build Duration || How long the build took to complete || 14m 58s<br />
|-<br />
| Build Errors || How many errors occurred during the build step || 1<br />
|-<br />
| Build Warnings || How many warnings occurred during the build step || 5<br />
|-<br />
| Build Name || The name of the build || Linux-cxx<br />
|-<br />
| Build Stamp || The CTest-generated TAG for this build || 20090223-0100-Nightly<br />
|-<br />
| Build Time || When this build started || 2009-02-23 01:00:00 UTC<br />
|-<br />
| Build Type || What type of build this is || Experimental<br />
|-<br />
| Configure Duration || How long this build took to configure || 2m 45s<br />
|-<br />
| Configure Errors || How many errors occurred during the configure step || 2<br />
|-<br />
| Configure Warnings || How many warnings occurred during the configure step || 3<br />
|-<br />
| Expected || Whether or not this build has been marked as expected || true<br />
|-<br />
| Group || The name of this build's group || Nightly<br />
|-<br />
| Has Coverage || Whether or not this build performed coverage || true<br />
|-<br />
| Has CTest Notes || Whether or not any notes were uploaded with this build || false<br />
|-<br />
| Has Dynamic Analysis || Whether or not this build performed dynamic analysis || true<br />
|-<br />
| Has User Notes || Whether or not a CDash user left a note on this build || true<br />
|-<br />
| Label || Search for builds with a given label || vtkCommonCore<br />
|-<br />
| Site || Search for builds from a given site || kamino<br />
|-<br />
| Submission Client || What client was used to submit this build || ctest-3.0<br />
|-<br />
| SubProject || Whitelist or blacklist SubProject results'''<nowiki>*</nowiki>''' || my-subproject-name<br />
|-<br />
| Tests Duration || How long this build took to test || 5m 23s<br />
|-<br />
| Tests Failed || How many tests failed || 4<br />
|-<br />
| Tests Not Run || How many tests couldn't be run || 10<br />
|-<br />
| Tests Passed || How many tests passed || 20<br />
|-<br />
| Tests Timing Failed || [[CDash:Design#Test_Timing|How many tests failed the time status check]] || 8<br />
|-<br />
| Update Duration || How long this build took to update || 45s<br />
|-<br />
| Updated Files || How many source files were updated before this build || 5<br />
|}<br />
<br />
'''<nowiki>*</nowiki>''' A note on the SubProject filter. This filter can only be used to narrow down results. It can not be used to include results that otherwise would not have been returned. Consider the following examples:<br />
<br />
Test Failures > 0 AND SubProject exclude <the-only-package-with-failing-tests><br />
This works as expected, because the SubProject filter is being used to narrow the results returned by the Test Failure filter.<br />
<br />
Build Duration < 60s AND SubProject exclude <slowest-package-to-build><br />
This does not work the way you expect it to. The Build Duration filter will discard the build for being too slow before the SubProject filter can modify its duration.<br />
<br />
== Filters on queryTests.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Build Name || The name of the build that performed this test || Linux-c++<br />
|-<br />
| Build Time || When this build started || 2009-02-23 01:00:00 UTC<br />
|-<br />
| Details || Information about how this test exited || OTHER_FAULT<br />
|-<br />
| Label || Search for tests with a given label || vtkCommonCore<br />
|-<br />
| Site || Search for tests run on a given site || kamino<br />
|-<br />
| Status || Search for tests with a given status || passed<br />
|-<br />
| Test Name || The name of the test || kwsys.testHashSTL<br />
|-<br />
| Time || How long this test took to run (in seconds) || 12.73<br />
|}<br />
<br />
== Filters on viewCoverage.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Covered Lines || The number of covered lines in this file || 50<br />
|-<br />
| Filename || The name of this file || foo.cxx<br />
|-| Labels || Search for source files with a given label || vtkCommonCore<br />
|-<br />
| Priority || The priority of this source file || 2<br />
|-<br />
| Total Lines || The number of coverable lines in this file || 100<br />
|-<br />
| Uncovered Lines || The number of uncovered lines in this file || 25<br />
|}<br />
<br />
== Filters on viewTest.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Details || Information about how this test exited || OTHER_FAULT<br />
|-<br />
| Label || Search for tests with a given label || vtkCommonCore<br />
|-<br />
| Status || Search for tests with a given status || passed<br />
|-<br />
| Test Name || The name of the test || kwsys.testHashSTL<br />
|-<br />
| Time || How long this test took to run (in seconds) || 12.73<br />
|-<br />
| Time Status || [[CDash:Design#Test_Timing|Whether or not this build failed the time status check]] || 1<br />
|}</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Documentation&diff=59746CDash:Documentation2016-05-26T19:35:01Z<p>Zack: /* Filters on index.php */</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
This page is the official CDash documentation.<br />
<br />
= CDash definitions =<br />
<br />
* '''Build:''' Single submission to the dashboard for a specific project, environment and build type.<br />
* '''Build type:''' reference by CTest as Nightly, Experimental or Continuous. (see CMake documentation for more information).<br />
* '''Site:''' Computer contributing builds to the dashboard. A site might belong to several projects and submit different build.<br />
* '''Coverage:''' Number of lines of code actually tested. CDash/CTest currently supports gcov and bulleyes tools.<br />
* '''Dynamic Analysis:''' reports the memory allocation/deallocations analysis for test, examples and executable for the project. Valgrind is currently supported by CTest/CDash.<br />
* '''Nightly start time:''' starting time of the 24h window of the daily dashboard.<br />
* '''Ajax:''' Asynchronous JavaScript and XML, is a group of web development techniques used for creating interactive web applications.<br />
* '''[http://php.net PHP]:''' Hypertext Preprocessor, is a computer scripting language, designed for producing dynamic web pages.<br />
* '''SQL:''' Structured Query Language, is a database computer language designed for the retrieval and management of data in relational database management systems.<br />
<br />
= Login to CDash =<br />
CDash uses secure login for users and adminsitrators. CDash does not store any plain text passwords in the database, therefore passwords cannot be recovered, even by system administrators. <br />
<br />
''Note: LDAP is not currently supported.''<br />
<br />
* To login, click on the 'Login' link at the top of the main CDash page or directly go to the user.php page http://myserver/CDash/user.php.<br />
* If you don't have a login, click on the 'register' link on the top menu. In order to register, CDash requires a valid email address, your first name, last name and password. The institution is optional. CDash implements some security features to avoid robots to register.<br />
* Once registered you are ready to type your email and password provided in the login screen.<br />
<br />
= Available Dashboards =<br />
[[Image:CDashIndexTable.jpg|thumb|CDash index table]]<br />
<br />
The first page display on CDash is a list of current public projects (private projects are not shown on this page). Several information are shown on this page:<br />
<br />
* The name of the project<br />
* The total number of submissions for each project<br />
* The date of the first build for each project<br />
* The date of the last submission (not build time)<br />
<br />
* To total size of the database<br />
<br />
Clicking on the name of the project redirects the user to the main dashboard for this project.<br />
<br />
= Project Dashboard =<br />
[[Image:CDashMainDashboard.jpg|thumb|Project's dashboard page]]<br />
[[Image:CDashHelp.jpg|thumb|Help link from the main dashboard page]]<br />
<br />
Each project dashboard have a similar layout:<br />
* Top row of the page:<br />
** Link to "My CDash/Login"<br />
** Current date of the server hosting CDash<br />
** Link to RSS feed to the project (if not private)<br />
* Banner:<br />
** Custom project logo (see [[CDash:Administration#Updating_project.E2.80.99s_logo | Updating project's logo]] to upload a new logo). ''Note: clicking on the logo redirects to the project's home page (if any defined)''<br />
** Project's name<br />
* Main Menu<br />
** '''Dashboard:''' goes back to the list of projects hosted on CDash<br />
*** '''Updates:''' Overview of the updates for this day and this project<br />
*** '''Builds:''' Overview of the builds for this day and this project<br />
*** '''Tests:''' Overview of the test failing for this day and this project<br />
*** '''Map:''' Map of the sites for this project and this day<br />
** '''Calendar:''' display a calendar to check previous dashboards<br />
** '''Previous:''' Go to the previous day<br />
** '''Current:''' Go to the current day<br />
** '''Next:''' Go to the next day<br />
** '''Project:''' Project links<br />
*** '''Home:''' Home URL<br />
*** '''Doxygen:''' Documentation page for this project<br />
*** '''CVS:''' Link to the CVS/SVN viewer for this project<br />
*** '''Bugs:''' Link to the bug tracker for this project<br />
* '''Daily updates:''' Updates on the project's repository. <br />
* '''Help link:''' popup a window with help information<br />
* Build groups: explained in the next section.<br />
* Coverage: explained in the next section.<br />
* Dynamic Analysis: explained in the next section.<br />
<br />
== Build groups ==<br />
<br />
Each build submitted by a site corresponds to a row in the main dashboard. By default the build falls in the group defined by the type of submission (i.e Nightly, Experimental or Continuous), however, custom builds can be defined. See [[CDash:Administration#Build_Groups | Build Groups]] administration section for more information on how to create new groups and define rules for builds.<br />
<br />
* Mouse hover the top row of a build group, shows the quick link bar to quickly jump to a different group.<br />
* Expected builds are shown as a empty row in the dashboard if they have not been submitting.<br />
<br />
=== Default group ===<br />
[[Image:CDashSorting.jpg|thumb|Muli-columns sorting]]<br />
[[Image:CDashGroup.jpg|thumb|Group description]]<br />
[[Image:CDashShowNote.jpg|thumb|Note for a build]]<br />
<br />
In this section we explain the layout of default groups (i.e. Nightly, Experimental, Continuous,...). These groups are represented in the light blue sections.<br />
<br />
'''Clicking on the gray header allow sorting the table by the clicked field. Multisorting is possible by holding the shift key.''', also the current sorting is saved by the user's web browser using cookies, allowing to keep the same sorting while browsing different days for the same project.<br />
<br />
Clicking on the group name displays the build group description.<br />
<br />
Each build (row) contains the following information:<br />
* '''Site:''' Name of the site submitting the build. Clicking on the name redirects to site description.<br />
* '''Build name:''' Name of the build. Clicking on the name redirects to the build summary page.<br />
** '''Build note:''' If submitted with CTest and configure with build notes, a small icon shows the build note. Clicking on the icon displays the CTest script used to submit the page.<br />
** '''CTest version:''' If submitted with CTest, a small icon displays the CTest version.<br />
** '''Build info:''' If a build is expected and has not been submitting, or if a build has errors or warnings or tests failing, then a build info icon is present. Clicking on the build info icon trigger an ajax request that displays more information about this build.<br />
** '''Notes:''' If someone submitted a note for this build, mouse hover the note icon will display the current notes.<br />
* '''Update:''' Shows the number of files updated (from the SVN/CVS repository) for this build. Clicking on the number shows the name and information of the updated files.<br />
* '''Cfg:''' Shows the configuration errors. If red, some errors occurred while configuring the project. Clicking on the number displays the current configuration status.<br />
* '''Build:''' Displays the principal build information.<br />
** '''Error:''' Number of build errors.<br />
** '''Warn:''' Number of build warnings.<br />
** '''Min:''' Time (in minutes) it took to build the project.<br />
* '''Test:''' Displays information about the test.<br />
** '''Not Run:''' Number of test not run (because not found for instance).<br />
** '''Fail:''' Number of test failed. Clicking on the number show the name of the failing tests. If time status is enabled for the project, it is reflected here.<br />
** '''Pass:''' Number of test passed. Clicking on the number show the name of the passing tests. If time status is enabled for the project, it is reflected here.<br />
** '''Min:''' Time it took to run all the tests.<br />
* '''Build time:''' Time when the build started expressed in the timezone of the webserver. This is different from the time when the build was submitted.<br />
<br />
=== Coverage ===<br />
[[Image:CDashCoverage.jpg|thumb|Coverage section of the dashboard]]<br />
<br />
CDash supports gcov and bullseye as coverage tools.<br />
The main dashboard displays the following information:<br />
<br />
* '''Site:''' name of the site<br />
* '''Build name:''' name of the build<br />
* '''Percentage: ''' Overall coverage percentage (for all files in the project).<br />
* '''Passed:''' Number of lines of code that are tested.<br />
* '''Failed:''' Number of lines of code that are not tested.<br />
* '''Date:''' Build starting date.<br />
<br />
=== Dynamic Analysis ===<br />
[[Image:CDashDynamicAnalysis.jpg|thumb|Dynamic Analysys section of the dashboard]]<br />
<br />
CDash supports [http://valgrind.org valgrind] as the main dynamic analysis tool.<br />
The main dashboard displays the following information:<br />
<br />
* '''Site:''' Name of the site<br />
* '''Build name:''' Name of the build<br />
* '''Checker: ''' Name of the checker.<br />
* '''Defect count:''' Number of memory defects.<br />
* '''Date:''' Build starting date.<br />
<br />
== Daily updates ==<br />
<br />
CDash stores the daily updates in the database for a quick query. The number of files changed for that day as well as the number of authors who changed the files are displayed. Clicking on the number of files changed display the name of the files and more information.<br />
<br />
See the [[CDash:Design#Daily_Updates | Daily Updates Design]] section for more information.<br />
<br />
== Map ==<br />
[[Image:CDashMap.jpg|thumb|Map of the sites contributing to a project]]<br />
<br />
CDash stores the geolocation from the IP address for the sites and displays them on a map via Google map API. This allows to quickly browse where the builds are coming from. Clicking on a pin on the map, shows the name of the site.<br />
<br />
See [[CDash:Design#Map_and_Geolocation | Map and Geolocation]] design page for more information.<br />
<br />
= My CDash =<br />
<br />
[[Image:CDashMyCDash.jpg|thumb|MyCDash page]]<br />
<br />
Each user has its own personal section in CDash, where they can keep track of recent builds, submissions, claim sites and more.<br />
<br />
== My Profile ==<br />
<br />
User can change their profile: First/Last name, email, institution and password from the the "My Profile" menu at the top of the "My CDash" page.<br />
<br />
== My Projects ==<br />
<br />
If a user has subscribe to at least a project (see [[CDash:Documentation#Subscribe_to_project | Subscribe to project]]), the list of subscribed projects is shown under "My Projects". There several links related to the subscriptions.<br />
<br />
=== Edit Subscription ===<br />
<br />
Users can edit their subscription for a given project.<br />
<br />
# From MyCdash page, under My Projects, click on [Edit subscription]<br />
# Change the role if necessary. '''Downgrading from project administrator to Site maintainer or normal user cannot be reverted unless by another project administrator'''.<br />
# Change or add CVS/SVN login<br />
# Change the email preferences if necessary<br />
# Click on "Update Subscription" to validate the modifications<br />
<br />
Users can unsubscribe from a project by clicking on the "Unsubscribe" button. Users will be able to subscribe later on.<br />
<br />
=== Claim sites ===<br />
See [[CDash:Documentation#Claim a site | Claim a site]] section.<br />
<br />
=== Edit project ===<br />
See [[CDash:Administration#Editing_a_project | Editing a project]] section.<br />
<br />
=== Manage project groups ===<br />
See [[CDash:Administration#Build_Groups | Build groups]] section.<br />
<br />
=== Manage project roles ===<br />
See [[CDash:Administration#Project_Roles | Project roles]] section.<br />
<br />
== My Sites ==<br />
<br />
[[Image:CDashMySites.jpg|thumb|My sites]]<br />
<br />
As a site maintainer, it is useful to know if submissions have been missing for quite sometime, or if the current builds on a specific sites are not reporting errors due to misconfiguration.<br />
<br />
* The first column show the list of currently claimed sites.<br />
* The first row shows the current projects that are submitting builds for the given site<br />
* For each pair (site/project) a summary of the current status of the dashboard is displayed<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Build group !! Updates !! Errors !! Warnings !! Tests !! Last submission<br />
|-<br />
| N: Nightly || 1 || 0 || 0 || 0 || Today<br />
|-<br />
| C: Continuous || 1 || 0 || 0 || 0 || Yesterday<br />
|-<br />
| E: Experimental || 1 || 0 || 0 || 0 || 6 days ago<br />
|}<br />
<br />
''Note: only Nightly, Continuous and Experimental groups are current shown'.' <br />
<br />
Clicking on the name of a site gives access to the description of the site.<br />
<br />
== Public projects ==<br />
<br />
List of all the public projects stored in CDash. By definition, users registered in CDash can subscribe to any public projects.<br />
<br />
= Subscribe to project =<br />
<br />
[[Image:CDashSubscribeProject.jpg|thumb|Subscribing to public projects]]<br />
<br />
If the project is public then users can subscribe to the project themselves, otherwise see section [[CDash:Administration#Project_Roles | Project Roles]].<br />
<br />
# Log into CDash (see [[CDash:Documentation#Login_to_CDash | Login to CDash]])<br />
# Under "Public projects" section click on [Subscribe to this project]<br />
# Select your role for the project: '''Normal user''' or '''Site maintainer''' if you are responsible for a machine sending periodic builds to the dashboard/<br />
# Add your CVS/SVN login for the project if you have any<br />
# Select your email preference<br />
# Click on subscribe<br />
<br />
= Claim a site =<br />
[[Image:CDashClaimSite.jpg|thumb|Claiming a site]]<br />
<br />
CDash allows '''Site maintainers''' (see [[CDash:Documentation#Subscribe_to_project | Subscribe to Project]]) to claim a site they are managing. This allows users to have personal reports regarding a specific machine and get informed if the machine has not been submitting from quite some time or has unexpected high number of failures (probably due to misconfiguration).<br />
<br />
In order to claim a site:<br />
<br />
# Login to CDash to acces "My CDash"<br />
# Under "My Projects" select [Claim sites]. If the project is not listed, refers to [[CDash:Documentation#Subscribe_to_project | Subscribe to Project]] for more information.<br />
# The Claim sites page show the list of current sites for the project. Check the site(s) of interest.<br />
# Click on "Update claimed sites"<br />
<br />
In order to unclaim a site:<br />
<br />
# Login to CDash to acces "My CDash"<br />
# Under "My Projects" select [Claim sites].<br />
# Uncheck the site(s) no longer of interest.<br />
# Click on "Update claimed sites"<br />
<br />
See the section [[CDash:Documentation#Describe_a_site | Describe a site]] for information about the given sites.<br />
<br />
= Describe a site =<br />
[[Image:CDashSiteSpecifications.jpg|thumb|Describing a site]]<br />
[[Image:CDashSite.jpg|thumb|Site information]]<br />
<br />
CDash records each site specifications so that users can quickly assess the type of machine, OS, memory, etc...<br />
<br />
'''If using the CTest 2.6 (or higher) the site specifications are automatically sent as part of the submission.'''<br />
<br />
Here's the list of specification currently present:<br />
<br />
*'''Name:''' '''This value shouldn't be changed, unless the site name sent by the build was wrong. Make sure the name of the build matches CTest buildname otherwise a new site will be created.'''<br />
*'''64 bits:''' Is the machine running a 64bits OS<br />
*'''Processor vendor:''' vendor name of the processor (i.e. GenuineIntel)<br />
*'''Processor vendor ID:''' vendor identification of the processor (i.e. Intel Corporation)<br />
*'''Processor family ID:''' family identification number of the processor (i.e. 15)<br />
*'''Processor model ID:''' model identification number of the processor, usually depending on the processor family (i.e. 3)<br />
*'''Processor cache size:''' size of the processor cache in MB.<br />
*'''CPU Speed (MHz):''' speed of the CPU in MHz.<br />
*'''Number of logical CPUs:''' Number of logical CPU per physical CPU.<br />
*'''Number of physical CPUs:''' Number of physical CPU.<br />
*'''Logical Processor per Physical:'''Number of logical processor per physical<br />
*'''Total virtual memory (MB):''' Total virtual memory in MB.<br />
*'''Total physical memory (MB):''' Total physical memory (RAM) in MB.<br />
*'''Description:''' Description of the machine.<br />
*'''IP address:''' Current IP address. This is filled in automatically by CDash<br />
*'''Latitude:''' Geolocation from the IP address<br />
*'''Longitude:''' Geolocation from the IP address<br />
<br />
'''CDash keeps an history''' of the machine description, in case of memory or processor upgrade. This is particularly useful to assess why a test is now running much faster than before. If the system has been upgraded, the checkbox "Force new description revision" should be checked. Note that CDash should automatically detect if a site has been upgraded.<br />
<br />
''Note: support for other specifications, such as graphic card information and more detailed information might be added in the near future.''<br />
<br />
= Graphs =<br />
<br />
CDash relies on the flot javascript library for graphing. See the section [[CDash:Design#Graphs | Graphs]] for information.<br />
CDash curently plots three types of graph as explained below.<br />
<br />
== Build time graph ==<br />
[[Image:CDashBuildGraph.jpg|thumb|Build time graph]]<br />
<br />
The time requires to build a project is recorded as part of CTest. Sometimes it might be useful to track the build time overtime. In order to do so:<br />
<br />
# Go to the main dashboard for the project<br />
# Click on the build name you want to track<br />
# On the build summary page, click on [Show Build Time Graph], this performs an Ajax request to the database.<br />
<br />
== Test time graphs ==<br />
<br />
CDash plots graphs of the time it takes to run a specific test as well as its status (passed/failed) overtime. <br />
<br />
To look at these graphs:<br />
<br />
# Go to the main dashboard for a project<br />
# Click on the number of test passed or failed<br />
# From the list of tests, click on the status of the test.<br />
# Click on [Show Test Time Graph] and/or [Show Failing/Passing Graph]<br />
<br />
<br />
<br />
= Adding notes to a build =<br />
[[Image:CDashAddNote.jpg|thumb|Adding a note to a build]]<br />
In some cases, it is useful to tell other developers that you are currently looking at the errors for a builds and informed them. CDash implements a simple note mechanism.<br />
<br />
* Login to CDash<br />
* On the dashboard project page, click on the build name to which you want to add the note.<br />
* Click on [Add a Note to this Build] link, located next to the current build matrix (see thumbnail)<br />
* Enter a small message corresponding to the note<br />
* Select the status of the note: '''Simple note''', '''Fix in progress''', '''Fixed'''.<br />
* Click on "Add Note"<br />
<br />
= Build summary =<br />
<br />
CDash summarizes the build errors and warnings on a single page. The errors are grouped by file and line number. It makes easier to fix source code.<br />
In order to see the build summary:<br />
<br />
# Go to the main dashboard for the project<br />
# In the main menu select Dashboard->Builds<br />
<br />
= Filters =<br />
Some CDash pages allow you to use '''filters''' to narrow down the results to what's important to you.<br />
<br />
== Filters on index.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Build Duration || How long the build took to complete || 14m 58s<br />
|-<br />
| Build Errors || How many errors occurred during the build step || 1<br />
|-<br />
| Build Warnings || How many warnings occurred during the build step || 5<br />
|-<br />
| Build Name || The name of the build || Linux-cxx<br />
|-<br />
| Build Stamp || The CTest-generated TAG for this build || 20090223-0100-Nightly<br />
|-<br />
| Build Time || When this build started || 2009-02-23 01:00:00 UTC<br />
|-<br />
| Build Type || What type of build this is || Experimental<br />
|-<br />
| Configure Duration || How long this build took to configure || 2m 45s<br />
|-<br />
| Configure Errors || How many errors occurred during the configure step || 2<br />
|-<br />
| Configure Warnings || How many warnings occurred during the configure step || 3<br />
|-<br />
| Expected || Whether or not this build has been marked as expected || true<br />
|-<br />
| Group || The name of this build's group || Nightly<br />
|-<br />
| Has Coverage || Whether or not this build performed coverage || true<br />
|-<br />
| Has CTest Notes || Whether or not any notes were uploaded with this build || false<br />
|-<br />
| Has Dynamic Analysis || Whether or not this build performed dynamic analysis || true<br />
|-<br />
| Has User Notes || Whether or not a CDash user left a note on this build || true<br />
|-<br />
| Label || Search for builds with a given label || vtkCommonCore<br />
|-<br />
| Site || Search for builds from a given site || kamino<br />
|-<br />
| Submission Client || What client was used to submit this build || ctest-3.0<br />
|-<br />
| SubProject || Whitelist or blacklist SubProject results'''<nowiki>*</nowiki>''' || my-subproject-name<br />
|-<br />
| Tests Duration || How long this build took to test || 5m 23s<br />
|-<br />
| Tests Failed || How many tests failed || 4<br />
|-<br />
| Tests Not Run || How many tests couldn't be run || 10<br />
|-<br />
| Tests Passed || How many tests passed || 20<br />
|-<br />
| Tests Timing Failed || [[CDash:Design#Test_Timing|How many tests failed the time status check]] || 8<br />
|-<br />
| Update Duration || How long this build took to update || 45s<br />
|-<br />
| Updated Files || How many source files were updated before this build || 5<br />
|}<br />
<br />
'''<nowiki>*</nowiki>''' A note on the SubProject filter. This filter can only be used to narrow down results. It can not be used to include results that otherwise would not have been returned. Consider the following examples:<br />
<br />
Test Failures > 0 AND SubProject exclude <the-only-package-with-failing-tests><br />
This works as expected, because the SubProject filter is being used to narrow the results returned by the Test Failure filter.<br />
<br />
Build Duration < 60s AND SubProject exclude <slowest-package-to-build><br />
This does not work the way you expect it to. The Build Duration filter will discard the build for being too slow before the SubProject filter can modify its duration.<br />
<br />
== Filters on queryTests.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Build Name || The name of the build that performed this test || Linux-c++<br />
|-<br />
| Build Time || When this build started || 2009-02-23 01:00:00 UTC<br />
|-<br />
| Build Type || What type of build this is || Experimental<br />
|-<br />
| Details || Information about how this test exited || OTHER_FAULT<br />
|-<br />
| Label || Search for tests with a given label || vtkCommonCore<br />
|-<br />
| Site || Search for tests run on a given site || kamino<br />
|-<br />
| Status || Search for tests with a given status || passed<br />
|-<br />
| Test Name || The name of the test || kwsys.testHashSTL<br />
|-<br />
| Time || How long this test took to run (in seconds) || 12.73<br />
|}<br />
<br />
== Filters on viewCoverage.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Covered Lines || The number of covered lines in this file || 50<br />
|-<br />
| Filename || The name of this file || foo.cxx<br />
|-| Labels || Search for source files with a given label || vtkCommonCore<br />
|-<br />
| Priority || The priority of this source file || 2<br />
|-<br />
| Total Lines || The number of coverable lines in this file || 100<br />
|-<br />
| Uncovered Lines || The number of uncovered lines in this file || 25<br />
|}<br />
<br />
== Filters on viewTest.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Details || Information about how this test exited || OTHER_FAULT<br />
|-<br />
| Label || Search for tests with a given label || vtkCommonCore<br />
|-<br />
| Status || Search for tests with a given status || passed<br />
|-<br />
| Test Name || The name of the test || kwsys.testHashSTL<br />
|-<br />
| Time || How long this test took to run (in seconds) || 12.73<br />
|-<br />
| Time Status || [[CDash:Design#Test_Timing|Whether or not this build failed the time status check]] || 1<br />
|}</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Documentation&diff=59745CDash:Documentation2016-05-26T19:30:40Z<p>Zack: /* Filters */ document filters on other pages too</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
This page is the official CDash documentation.<br />
<br />
= CDash definitions =<br />
<br />
* '''Build:''' Single submission to the dashboard for a specific project, environment and build type.<br />
* '''Build type:''' reference by CTest as Nightly, Experimental or Continuous. (see CMake documentation for more information).<br />
* '''Site:''' Computer contributing builds to the dashboard. A site might belong to several projects and submit different build.<br />
* '''Coverage:''' Number of lines of code actually tested. CDash/CTest currently supports gcov and bulleyes tools.<br />
* '''Dynamic Analysis:''' reports the memory allocation/deallocations analysis for test, examples and executable for the project. Valgrind is currently supported by CTest/CDash.<br />
* '''Nightly start time:''' starting time of the 24h window of the daily dashboard.<br />
* '''Ajax:''' Asynchronous JavaScript and XML, is a group of web development techniques used for creating interactive web applications.<br />
* '''[http://php.net PHP]:''' Hypertext Preprocessor, is a computer scripting language, designed for producing dynamic web pages.<br />
* '''SQL:''' Structured Query Language, is a database computer language designed for the retrieval and management of data in relational database management systems.<br />
<br />
= Login to CDash =<br />
CDash uses secure login for users and adminsitrators. CDash does not store any plain text passwords in the database, therefore passwords cannot be recovered, even by system administrators. <br />
<br />
''Note: LDAP is not currently supported.''<br />
<br />
* To login, click on the 'Login' link at the top of the main CDash page or directly go to the user.php page http://myserver/CDash/user.php.<br />
* If you don't have a login, click on the 'register' link on the top menu. In order to register, CDash requires a valid email address, your first name, last name and password. The institution is optional. CDash implements some security features to avoid robots to register.<br />
* Once registered you are ready to type your email and password provided in the login screen.<br />
<br />
= Available Dashboards =<br />
[[Image:CDashIndexTable.jpg|thumb|CDash index table]]<br />
<br />
The first page display on CDash is a list of current public projects (private projects are not shown on this page). Several information are shown on this page:<br />
<br />
* The name of the project<br />
* The total number of submissions for each project<br />
* The date of the first build for each project<br />
* The date of the last submission (not build time)<br />
<br />
* To total size of the database<br />
<br />
Clicking on the name of the project redirects the user to the main dashboard for this project.<br />
<br />
= Project Dashboard =<br />
[[Image:CDashMainDashboard.jpg|thumb|Project's dashboard page]]<br />
[[Image:CDashHelp.jpg|thumb|Help link from the main dashboard page]]<br />
<br />
Each project dashboard have a similar layout:<br />
* Top row of the page:<br />
** Link to "My CDash/Login"<br />
** Current date of the server hosting CDash<br />
** Link to RSS feed to the project (if not private)<br />
* Banner:<br />
** Custom project logo (see [[CDash:Administration#Updating_project.E2.80.99s_logo | Updating project's logo]] to upload a new logo). ''Note: clicking on the logo redirects to the project's home page (if any defined)''<br />
** Project's name<br />
* Main Menu<br />
** '''Dashboard:''' goes back to the list of projects hosted on CDash<br />
*** '''Updates:''' Overview of the updates for this day and this project<br />
*** '''Builds:''' Overview of the builds for this day and this project<br />
*** '''Tests:''' Overview of the test failing for this day and this project<br />
*** '''Map:''' Map of the sites for this project and this day<br />
** '''Calendar:''' display a calendar to check previous dashboards<br />
** '''Previous:''' Go to the previous day<br />
** '''Current:''' Go to the current day<br />
** '''Next:''' Go to the next day<br />
** '''Project:''' Project links<br />
*** '''Home:''' Home URL<br />
*** '''Doxygen:''' Documentation page for this project<br />
*** '''CVS:''' Link to the CVS/SVN viewer for this project<br />
*** '''Bugs:''' Link to the bug tracker for this project<br />
* '''Daily updates:''' Updates on the project's repository. <br />
* '''Help link:''' popup a window with help information<br />
* Build groups: explained in the next section.<br />
* Coverage: explained in the next section.<br />
* Dynamic Analysis: explained in the next section.<br />
<br />
== Build groups ==<br />
<br />
Each build submitted by a site corresponds to a row in the main dashboard. By default the build falls in the group defined by the type of submission (i.e Nightly, Experimental or Continuous), however, custom builds can be defined. See [[CDash:Administration#Build_Groups | Build Groups]] administration section for more information on how to create new groups and define rules for builds.<br />
<br />
* Mouse hover the top row of a build group, shows the quick link bar to quickly jump to a different group.<br />
* Expected builds are shown as a empty row in the dashboard if they have not been submitting.<br />
<br />
=== Default group ===<br />
[[Image:CDashSorting.jpg|thumb|Muli-columns sorting]]<br />
[[Image:CDashGroup.jpg|thumb|Group description]]<br />
[[Image:CDashShowNote.jpg|thumb|Note for a build]]<br />
<br />
In this section we explain the layout of default groups (i.e. Nightly, Experimental, Continuous,...). These groups are represented in the light blue sections.<br />
<br />
'''Clicking on the gray header allow sorting the table by the clicked field. Multisorting is possible by holding the shift key.''', also the current sorting is saved by the user's web browser using cookies, allowing to keep the same sorting while browsing different days for the same project.<br />
<br />
Clicking on the group name displays the build group description.<br />
<br />
Each build (row) contains the following information:<br />
* '''Site:''' Name of the site submitting the build. Clicking on the name redirects to site description.<br />
* '''Build name:''' Name of the build. Clicking on the name redirects to the build summary page.<br />
** '''Build note:''' If submitted with CTest and configure with build notes, a small icon shows the build note. Clicking on the icon displays the CTest script used to submit the page.<br />
** '''CTest version:''' If submitted with CTest, a small icon displays the CTest version.<br />
** '''Build info:''' If a build is expected and has not been submitting, or if a build has errors or warnings or tests failing, then a build info icon is present. Clicking on the build info icon trigger an ajax request that displays more information about this build.<br />
** '''Notes:''' If someone submitted a note for this build, mouse hover the note icon will display the current notes.<br />
* '''Update:''' Shows the number of files updated (from the SVN/CVS repository) for this build. Clicking on the number shows the name and information of the updated files.<br />
* '''Cfg:''' Shows the configuration errors. If red, some errors occurred while configuring the project. Clicking on the number displays the current configuration status.<br />
* '''Build:''' Displays the principal build information.<br />
** '''Error:''' Number of build errors.<br />
** '''Warn:''' Number of build warnings.<br />
** '''Min:''' Time (in minutes) it took to build the project.<br />
* '''Test:''' Displays information about the test.<br />
** '''Not Run:''' Number of test not run (because not found for instance).<br />
** '''Fail:''' Number of test failed. Clicking on the number show the name of the failing tests. If time status is enabled for the project, it is reflected here.<br />
** '''Pass:''' Number of test passed. Clicking on the number show the name of the passing tests. If time status is enabled for the project, it is reflected here.<br />
** '''Min:''' Time it took to run all the tests.<br />
* '''Build time:''' Time when the build started expressed in the timezone of the webserver. This is different from the time when the build was submitted.<br />
<br />
=== Coverage ===<br />
[[Image:CDashCoverage.jpg|thumb|Coverage section of the dashboard]]<br />
<br />
CDash supports gcov and bullseye as coverage tools.<br />
The main dashboard displays the following information:<br />
<br />
* '''Site:''' name of the site<br />
* '''Build name:''' name of the build<br />
* '''Percentage: ''' Overall coverage percentage (for all files in the project).<br />
* '''Passed:''' Number of lines of code that are tested.<br />
* '''Failed:''' Number of lines of code that are not tested.<br />
* '''Date:''' Build starting date.<br />
<br />
=== Dynamic Analysis ===<br />
[[Image:CDashDynamicAnalysis.jpg|thumb|Dynamic Analysys section of the dashboard]]<br />
<br />
CDash supports [http://valgrind.org valgrind] as the main dynamic analysis tool.<br />
The main dashboard displays the following information:<br />
<br />
* '''Site:''' Name of the site<br />
* '''Build name:''' Name of the build<br />
* '''Checker: ''' Name of the checker.<br />
* '''Defect count:''' Number of memory defects.<br />
* '''Date:''' Build starting date.<br />
<br />
== Daily updates ==<br />
<br />
CDash stores the daily updates in the database for a quick query. The number of files changed for that day as well as the number of authors who changed the files are displayed. Clicking on the number of files changed display the name of the files and more information.<br />
<br />
See the [[CDash:Design#Daily_Updates | Daily Updates Design]] section for more information.<br />
<br />
== Map ==<br />
[[Image:CDashMap.jpg|thumb|Map of the sites contributing to a project]]<br />
<br />
CDash stores the geolocation from the IP address for the sites and displays them on a map via Google map API. This allows to quickly browse where the builds are coming from. Clicking on a pin on the map, shows the name of the site.<br />
<br />
See [[CDash:Design#Map_and_Geolocation | Map and Geolocation]] design page for more information.<br />
<br />
= My CDash =<br />
<br />
[[Image:CDashMyCDash.jpg|thumb|MyCDash page]]<br />
<br />
Each user has its own personal section in CDash, where they can keep track of recent builds, submissions, claim sites and more.<br />
<br />
== My Profile ==<br />
<br />
User can change their profile: First/Last name, email, institution and password from the the "My Profile" menu at the top of the "My CDash" page.<br />
<br />
== My Projects ==<br />
<br />
If a user has subscribe to at least a project (see [[CDash:Documentation#Subscribe_to_project | Subscribe to project]]), the list of subscribed projects is shown under "My Projects". There several links related to the subscriptions.<br />
<br />
=== Edit Subscription ===<br />
<br />
Users can edit their subscription for a given project.<br />
<br />
# From MyCdash page, under My Projects, click on [Edit subscription]<br />
# Change the role if necessary. '''Downgrading from project administrator to Site maintainer or normal user cannot be reverted unless by another project administrator'''.<br />
# Change or add CVS/SVN login<br />
# Change the email preferences if necessary<br />
# Click on "Update Subscription" to validate the modifications<br />
<br />
Users can unsubscribe from a project by clicking on the "Unsubscribe" button. Users will be able to subscribe later on.<br />
<br />
=== Claim sites ===<br />
See [[CDash:Documentation#Claim a site | Claim a site]] section.<br />
<br />
=== Edit project ===<br />
See [[CDash:Administration#Editing_a_project | Editing a project]] section.<br />
<br />
=== Manage project groups ===<br />
See [[CDash:Administration#Build_Groups | Build groups]] section.<br />
<br />
=== Manage project roles ===<br />
See [[CDash:Administration#Project_Roles | Project roles]] section.<br />
<br />
== My Sites ==<br />
<br />
[[Image:CDashMySites.jpg|thumb|My sites]]<br />
<br />
As a site maintainer, it is useful to know if submissions have been missing for quite sometime, or if the current builds on a specific sites are not reporting errors due to misconfiguration.<br />
<br />
* The first column show the list of currently claimed sites.<br />
* The first row shows the current projects that are submitting builds for the given site<br />
* For each pair (site/project) a summary of the current status of the dashboard is displayed<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Build group !! Updates !! Errors !! Warnings !! Tests !! Last submission<br />
|-<br />
| N: Nightly || 1 || 0 || 0 || 0 || Today<br />
|-<br />
| C: Continuous || 1 || 0 || 0 || 0 || Yesterday<br />
|-<br />
| E: Experimental || 1 || 0 || 0 || 0 || 6 days ago<br />
|}<br />
<br />
''Note: only Nightly, Continuous and Experimental groups are current shown'.' <br />
<br />
Clicking on the name of a site gives access to the description of the site.<br />
<br />
== Public projects ==<br />
<br />
List of all the public projects stored in CDash. By definition, users registered in CDash can subscribe to any public projects.<br />
<br />
= Subscribe to project =<br />
<br />
[[Image:CDashSubscribeProject.jpg|thumb|Subscribing to public projects]]<br />
<br />
If the project is public then users can subscribe to the project themselves, otherwise see section [[CDash:Administration#Project_Roles | Project Roles]].<br />
<br />
# Log into CDash (see [[CDash:Documentation#Login_to_CDash | Login to CDash]])<br />
# Under "Public projects" section click on [Subscribe to this project]<br />
# Select your role for the project: '''Normal user''' or '''Site maintainer''' if you are responsible for a machine sending periodic builds to the dashboard/<br />
# Add your CVS/SVN login for the project if you have any<br />
# Select your email preference<br />
# Click on subscribe<br />
<br />
= Claim a site =<br />
[[Image:CDashClaimSite.jpg|thumb|Claiming a site]]<br />
<br />
CDash allows '''Site maintainers''' (see [[CDash:Documentation#Subscribe_to_project | Subscribe to Project]]) to claim a site they are managing. This allows users to have personal reports regarding a specific machine and get informed if the machine has not been submitting from quite some time or has unexpected high number of failures (probably due to misconfiguration).<br />
<br />
In order to claim a site:<br />
<br />
# Login to CDash to acces "My CDash"<br />
# Under "My Projects" select [Claim sites]. If the project is not listed, refers to [[CDash:Documentation#Subscribe_to_project | Subscribe to Project]] for more information.<br />
# The Claim sites page show the list of current sites for the project. Check the site(s) of interest.<br />
# Click on "Update claimed sites"<br />
<br />
In order to unclaim a site:<br />
<br />
# Login to CDash to acces "My CDash"<br />
# Under "My Projects" select [Claim sites].<br />
# Uncheck the site(s) no longer of interest.<br />
# Click on "Update claimed sites"<br />
<br />
See the section [[CDash:Documentation#Describe_a_site | Describe a site]] for information about the given sites.<br />
<br />
= Describe a site =<br />
[[Image:CDashSiteSpecifications.jpg|thumb|Describing a site]]<br />
[[Image:CDashSite.jpg|thumb|Site information]]<br />
<br />
CDash records each site specifications so that users can quickly assess the type of machine, OS, memory, etc...<br />
<br />
'''If using the CTest 2.6 (or higher) the site specifications are automatically sent as part of the submission.'''<br />
<br />
Here's the list of specification currently present:<br />
<br />
*'''Name:''' '''This value shouldn't be changed, unless the site name sent by the build was wrong. Make sure the name of the build matches CTest buildname otherwise a new site will be created.'''<br />
*'''64 bits:''' Is the machine running a 64bits OS<br />
*'''Processor vendor:''' vendor name of the processor (i.e. GenuineIntel)<br />
*'''Processor vendor ID:''' vendor identification of the processor (i.e. Intel Corporation)<br />
*'''Processor family ID:''' family identification number of the processor (i.e. 15)<br />
*'''Processor model ID:''' model identification number of the processor, usually depending on the processor family (i.e. 3)<br />
*'''Processor cache size:''' size of the processor cache in MB.<br />
*'''CPU Speed (MHz):''' speed of the CPU in MHz.<br />
*'''Number of logical CPUs:''' Number of logical CPU per physical CPU.<br />
*'''Number of physical CPUs:''' Number of physical CPU.<br />
*'''Logical Processor per Physical:'''Number of logical processor per physical<br />
*'''Total virtual memory (MB):''' Total virtual memory in MB.<br />
*'''Total physical memory (MB):''' Total physical memory (RAM) in MB.<br />
*'''Description:''' Description of the machine.<br />
*'''IP address:''' Current IP address. This is filled in automatically by CDash<br />
*'''Latitude:''' Geolocation from the IP address<br />
*'''Longitude:''' Geolocation from the IP address<br />
<br />
'''CDash keeps an history''' of the machine description, in case of memory or processor upgrade. This is particularly useful to assess why a test is now running much faster than before. If the system has been upgraded, the checkbox "Force new description revision" should be checked. Note that CDash should automatically detect if a site has been upgraded.<br />
<br />
''Note: support for other specifications, such as graphic card information and more detailed information might be added in the near future.''<br />
<br />
= Graphs =<br />
<br />
CDash relies on the flot javascript library for graphing. See the section [[CDash:Design#Graphs | Graphs]] for information.<br />
CDash curently plots three types of graph as explained below.<br />
<br />
== Build time graph ==<br />
[[Image:CDashBuildGraph.jpg|thumb|Build time graph]]<br />
<br />
The time requires to build a project is recorded as part of CTest. Sometimes it might be useful to track the build time overtime. In order to do so:<br />
<br />
# Go to the main dashboard for the project<br />
# Click on the build name you want to track<br />
# On the build summary page, click on [Show Build Time Graph], this performs an Ajax request to the database.<br />
<br />
== Test time graphs ==<br />
<br />
CDash plots graphs of the time it takes to run a specific test as well as its status (passed/failed) overtime. <br />
<br />
To look at these graphs:<br />
<br />
# Go to the main dashboard for a project<br />
# Click on the number of test passed or failed<br />
# From the list of tests, click on the status of the test.<br />
# Click on [Show Test Time Graph] and/or [Show Failing/Passing Graph]<br />
<br />
<br />
<br />
= Adding notes to a build =<br />
[[Image:CDashAddNote.jpg|thumb|Adding a note to a build]]<br />
In some cases, it is useful to tell other developers that you are currently looking at the errors for a builds and informed them. CDash implements a simple note mechanism.<br />
<br />
* Login to CDash<br />
* On the dashboard project page, click on the build name to which you want to add the note.<br />
* Click on [Add a Note to this Build] link, located next to the current build matrix (see thumbnail)<br />
* Enter a small message corresponding to the note<br />
* Select the status of the note: '''Simple note''', '''Fix in progress''', '''Fixed'''.<br />
* Click on "Add Note"<br />
<br />
= Build summary =<br />
<br />
CDash summarizes the build errors and warnings on a single page. The errors are grouped by file and line number. It makes easier to fix source code.<br />
In order to see the build summary:<br />
<br />
# Go to the main dashboard for the project<br />
# In the main menu select Dashboard->Builds<br />
<br />
= Filters =<br />
Some CDash pages allow you to use '''filters''' to narrow down the results to what's important to you.<br />
<br />
== Filters on index.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Build Duration || How long the build took to complete || 14m 58s<br />
|-<br />
| Build Errors || How many errors occurred during the build step || 1<br />
|-<br />
| Build Warnings || How many warnings occurred during the build step || 5<br />
|-<br />
| Build Name || The name of the build || Linux-cxx<br />
|-<br />
| Build Stamp || The CTest-generated TAG for this build || 20090223-0100-Nightly<br />
|-<br />
| Build Time || When this build started || 2009-02-23 01:00:00 UTC<br />
|-<br />
| Build Type || What type of build this is || Experimental<br />
|-<br />
| Configure Duration || How long this build took to configure || 2m 45s<br />
|-<br />
| Configure Errors || How many errors occurred during the configure step || 2<br />
|-<br />
| Configure Warnings || How many warnings occurred during the configure step || 3<br />
|-<br />
| Expected || Whether or not this build has been marked as expected || true<br />
|-<br />
| Group || The name of this build's group || Nightly<br />
|-<br />
| Has Coverage || Whether or not this build performed coverage || true<br />
|-<br />
| Has CTest Notes || Whether or not any notes were uploaded with this build || false<br />
|-<br />
| Has Dynamic Analysis || Whether or not this build performed dynamic analysis || true<br />
|-<br />
| Has User Notes || Whether or not a CDash user left a note on this build || true<br />
|-<br />
| Label || Search for builds with a given label || vtkCommonCore<br />
|-<br />
| Site || Search for builds from a given site || kamino<br />
|-<br />
| Submission Client || What client was used to submit this build || ctest-3.0<br />
|-<br />
| SubProject || Whitelist or blacklist SubProject results'''<nowiki>*</nowiki>''' || my-subproject-name<br />
|-<br />
| Tests Duration || How long this build took to test || 5m 23s<br />
|-<br />
| Tests Failed || How many tests failed || 4<br />
|-<br />
| Tests Not Run || How many tests couldn't be run || 10<br />
|-<br />
| Tests Passed || How many tests passed || 20<br />
|-<br />
| Tests Timing Failed || [[CDash:Design#Test_Timing|How many tests failed the time status check]] || 8<br />
|-<br />
| Update Duration || How long this build took to update || 45s<br />
|-<br />
| Updated Files || How many source files were updated before this build || 5<br />
|}<br />
<br />
'''<nowiki>*</nowiki>''' A note on the SubProject filter. This filter can only be used to narrow down results. It can not be used to include results that otherwise would have been returned. Consider the following examples:<br />
<br />
Test Failures > 0 AND SubProject exclude <the-only-package-with-failing-tests><br />
This works as expected, because the SubProject filter is being used to narrow the results returned by the Test Failure filter.<br />
<br />
Build Duration < 60s AND SubProject exclude <slowest-package-to-build><br />
This does not work the way you expect it to. The Build Duration filter will discard the build for being too slow before the SubProject filter can modify its duration.<br />
<br />
== Filters on queryTests.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Build Name || The name of the build that performed this test || Linux-c++<br />
|-<br />
| Build Time || When this build started || 2009-02-23 01:00:00 UTC<br />
|-<br />
| Build Type || What type of build this is || Experimental<br />
|-<br />
| Details || Information about how this test exited || OTHER_FAULT<br />
|-<br />
| Label || Search for tests with a given label || vtkCommonCore<br />
|-<br />
| Site || Search for tests run on a given site || kamino<br />
|-<br />
| Status || Search for tests with a given status || passed<br />
|-<br />
| Test Name || The name of the test || kwsys.testHashSTL<br />
|-<br />
| Time || How long this test took to run (in seconds) || 12.73<br />
|}<br />
<br />
== Filters on viewCoverage.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Covered Lines || The number of covered lines in this file || 50<br />
|-<br />
| Filename || The name of this file || foo.cxx<br />
|-| Labels || Search for source files with a given label || vtkCommonCore<br />
|-<br />
| Priority || The priority of this source file || 2<br />
|-<br />
| Total Lines || The number of coverable lines in this file || 100<br />
|-<br />
| Uncovered Lines || The number of uncovered lines in this file || 25<br />
|}<br />
<br />
== Filters on viewTest.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Details || Information about how this test exited || OTHER_FAULT<br />
|-<br />
| Label || Search for tests with a given label || vtkCommonCore<br />
|-<br />
| Status || Search for tests with a given status || passed<br />
|-<br />
| Test Name || The name of the test || kwsys.testHashSTL<br />
|-<br />
| Time || How long this test took to run (in seconds) || 12.73<br />
|-<br />
| Time Status || [[CDash:Design#Test_Timing|Whether or not this build failed the time status check]] || 1<br />
|}</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Documentation&diff=59744CDash:Documentation2016-05-26T19:05:14Z<p>Zack: documentation for filters on index.php</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
This page is the official CDash documentation.<br />
<br />
= CDash definitions =<br />
<br />
* '''Build:''' Single submission to the dashboard for a specific project, environment and build type.<br />
* '''Build type:''' reference by CTest as Nightly, Experimental or Continuous. (see CMake documentation for more information).<br />
* '''Site:''' Computer contributing builds to the dashboard. A site might belong to several projects and submit different build.<br />
* '''Coverage:''' Number of lines of code actually tested. CDash/CTest currently supports gcov and bulleyes tools.<br />
* '''Dynamic Analysis:''' reports the memory allocation/deallocations analysis for test, examples and executable for the project. Valgrind is currently supported by CTest/CDash.<br />
* '''Nightly start time:''' starting time of the 24h window of the daily dashboard.<br />
* '''Ajax:''' Asynchronous JavaScript and XML, is a group of web development techniques used for creating interactive web applications.<br />
* '''[http://php.net PHP]:''' Hypertext Preprocessor, is a computer scripting language, designed for producing dynamic web pages.<br />
* '''SQL:''' Structured Query Language, is a database computer language designed for the retrieval and management of data in relational database management systems.<br />
<br />
= Login to CDash =<br />
CDash uses secure login for users and adminsitrators. CDash does not store any plain text passwords in the database, therefore passwords cannot be recovered, even by system administrators. <br />
<br />
''Note: LDAP is not currently supported.''<br />
<br />
* To login, click on the 'Login' link at the top of the main CDash page or directly go to the user.php page http://myserver/CDash/user.php.<br />
* If you don't have a login, click on the 'register' link on the top menu. In order to register, CDash requires a valid email address, your first name, last name and password. The institution is optional. CDash implements some security features to avoid robots to register.<br />
* Once registered you are ready to type your email and password provided in the login screen.<br />
<br />
= Available Dashboards =<br />
[[Image:CDashIndexTable.jpg|thumb|CDash index table]]<br />
<br />
The first page display on CDash is a list of current public projects (private projects are not shown on this page). Several information are shown on this page:<br />
<br />
* The name of the project<br />
* The total number of submissions for each project<br />
* The date of the first build for each project<br />
* The date of the last submission (not build time)<br />
<br />
* To total size of the database<br />
<br />
Clicking on the name of the project redirects the user to the main dashboard for this project.<br />
<br />
= Project Dashboard =<br />
[[Image:CDashMainDashboard.jpg|thumb|Project's dashboard page]]<br />
[[Image:CDashHelp.jpg|thumb|Help link from the main dashboard page]]<br />
<br />
Each project dashboard have a similar layout:<br />
* Top row of the page:<br />
** Link to "My CDash/Login"<br />
** Current date of the server hosting CDash<br />
** Link to RSS feed to the project (if not private)<br />
* Banner:<br />
** Custom project logo (see [[CDash:Administration#Updating_project.E2.80.99s_logo | Updating project's logo]] to upload a new logo). ''Note: clicking on the logo redirects to the project's home page (if any defined)''<br />
** Project's name<br />
* Main Menu<br />
** '''Dashboard:''' goes back to the list of projects hosted on CDash<br />
*** '''Updates:''' Overview of the updates for this day and this project<br />
*** '''Builds:''' Overview of the builds for this day and this project<br />
*** '''Tests:''' Overview of the test failing for this day and this project<br />
*** '''Map:''' Map of the sites for this project and this day<br />
** '''Calendar:''' display a calendar to check previous dashboards<br />
** '''Previous:''' Go to the previous day<br />
** '''Current:''' Go to the current day<br />
** '''Next:''' Go to the next day<br />
** '''Project:''' Project links<br />
*** '''Home:''' Home URL<br />
*** '''Doxygen:''' Documentation page for this project<br />
*** '''CVS:''' Link to the CVS/SVN viewer for this project<br />
*** '''Bugs:''' Link to the bug tracker for this project<br />
* '''Daily updates:''' Updates on the project's repository. <br />
* '''Help link:''' popup a window with help information<br />
* Build groups: explained in the next section.<br />
* Coverage: explained in the next section.<br />
* Dynamic Analysis: explained in the next section.<br />
<br />
== Build groups ==<br />
<br />
Each build submitted by a site corresponds to a row in the main dashboard. By default the build falls in the group defined by the type of submission (i.e Nightly, Experimental or Continuous), however, custom builds can be defined. See [[CDash:Administration#Build_Groups | Build Groups]] administration section for more information on how to create new groups and define rules for builds.<br />
<br />
* Mouse hover the top row of a build group, shows the quick link bar to quickly jump to a different group.<br />
* Expected builds are shown as a empty row in the dashboard if they have not been submitting.<br />
<br />
=== Default group ===<br />
[[Image:CDashSorting.jpg|thumb|Muli-columns sorting]]<br />
[[Image:CDashGroup.jpg|thumb|Group description]]<br />
[[Image:CDashShowNote.jpg|thumb|Note for a build]]<br />
<br />
In this section we explain the layout of default groups (i.e. Nightly, Experimental, Continuous,...). These groups are represented in the light blue sections.<br />
<br />
'''Clicking on the gray header allow sorting the table by the clicked field. Multisorting is possible by holding the shift key.''', also the current sorting is saved by the user's web browser using cookies, allowing to keep the same sorting while browsing different days for the same project.<br />
<br />
Clicking on the group name displays the build group description.<br />
<br />
Each build (row) contains the following information:<br />
* '''Site:''' Name of the site submitting the build. Clicking on the name redirects to site description.<br />
* '''Build name:''' Name of the build. Clicking on the name redirects to the build summary page.<br />
** '''Build note:''' If submitted with CTest and configure with build notes, a small icon shows the build note. Clicking on the icon displays the CTest script used to submit the page.<br />
** '''CTest version:''' If submitted with CTest, a small icon displays the CTest version.<br />
** '''Build info:''' If a build is expected and has not been submitting, or if a build has errors or warnings or tests failing, then a build info icon is present. Clicking on the build info icon trigger an ajax request that displays more information about this build.<br />
** '''Notes:''' If someone submitted a note for this build, mouse hover the note icon will display the current notes.<br />
* '''Update:''' Shows the number of files updated (from the SVN/CVS repository) for this build. Clicking on the number shows the name and information of the updated files.<br />
* '''Cfg:''' Shows the configuration errors. If red, some errors occurred while configuring the project. Clicking on the number displays the current configuration status.<br />
* '''Build:''' Displays the principal build information.<br />
** '''Error:''' Number of build errors.<br />
** '''Warn:''' Number of build warnings.<br />
** '''Min:''' Time (in minutes) it took to build the project.<br />
* '''Test:''' Displays information about the test.<br />
** '''Not Run:''' Number of test not run (because not found for instance).<br />
** '''Fail:''' Number of test failed. Clicking on the number show the name of the failing tests. If time status is enabled for the project, it is reflected here.<br />
** '''Pass:''' Number of test passed. Clicking on the number show the name of the passing tests. If time status is enabled for the project, it is reflected here.<br />
** '''Min:''' Time it took to run all the tests.<br />
* '''Build time:''' Time when the build started expressed in the timezone of the webserver. This is different from the time when the build was submitted.<br />
<br />
=== Coverage ===<br />
[[Image:CDashCoverage.jpg|thumb|Coverage section of the dashboard]]<br />
<br />
CDash supports gcov and bullseye as coverage tools.<br />
The main dashboard displays the following information:<br />
<br />
* '''Site:''' name of the site<br />
* '''Build name:''' name of the build<br />
* '''Percentage: ''' Overall coverage percentage (for all files in the project).<br />
* '''Passed:''' Number of lines of code that are tested.<br />
* '''Failed:''' Number of lines of code that are not tested.<br />
* '''Date:''' Build starting date.<br />
<br />
=== Dynamic Analysis ===<br />
[[Image:CDashDynamicAnalysis.jpg|thumb|Dynamic Analysys section of the dashboard]]<br />
<br />
CDash supports [http://valgrind.org valgrind] as the main dynamic analysis tool.<br />
The main dashboard displays the following information:<br />
<br />
* '''Site:''' Name of the site<br />
* '''Build name:''' Name of the build<br />
* '''Checker: ''' Name of the checker.<br />
* '''Defect count:''' Number of memory defects.<br />
* '''Date:''' Build starting date.<br />
<br />
== Daily updates ==<br />
<br />
CDash stores the daily updates in the database for a quick query. The number of files changed for that day as well as the number of authors who changed the files are displayed. Clicking on the number of files changed display the name of the files and more information.<br />
<br />
See the [[CDash:Design#Daily_Updates | Daily Updates Design]] section for more information.<br />
<br />
== Map ==<br />
[[Image:CDashMap.jpg|thumb|Map of the sites contributing to a project]]<br />
<br />
CDash stores the geolocation from the IP address for the sites and displays them on a map via Google map API. This allows to quickly browse where the builds are coming from. Clicking on a pin on the map, shows the name of the site.<br />
<br />
See [[CDash:Design#Map_and_Geolocation | Map and Geolocation]] design page for more information.<br />
<br />
= My CDash =<br />
<br />
[[Image:CDashMyCDash.jpg|thumb|MyCDash page]]<br />
<br />
Each user has its own personal section in CDash, where they can keep track of recent builds, submissions, claim sites and more.<br />
<br />
== My Profile ==<br />
<br />
User can change their profile: First/Last name, email, institution and password from the the "My Profile" menu at the top of the "My CDash" page.<br />
<br />
== My Projects ==<br />
<br />
If a user has subscribe to at least a project (see [[CDash:Documentation#Subscribe_to_project | Subscribe to project]]), the list of subscribed projects is shown under "My Projects". There several links related to the subscriptions.<br />
<br />
=== Edit Subscription ===<br />
<br />
Users can edit their subscription for a given project.<br />
<br />
# From MyCdash page, under My Projects, click on [Edit subscription]<br />
# Change the role if necessary. '''Downgrading from project administrator to Site maintainer or normal user cannot be reverted unless by another project administrator'''.<br />
# Change or add CVS/SVN login<br />
# Change the email preferences if necessary<br />
# Click on "Update Subscription" to validate the modifications<br />
<br />
Users can unsubscribe from a project by clicking on the "Unsubscribe" button. Users will be able to subscribe later on.<br />
<br />
=== Claim sites ===<br />
See [[CDash:Documentation#Claim a site | Claim a site]] section.<br />
<br />
=== Edit project ===<br />
See [[CDash:Administration#Editing_a_project | Editing a project]] section.<br />
<br />
=== Manage project groups ===<br />
See [[CDash:Administration#Build_Groups | Build groups]] section.<br />
<br />
=== Manage project roles ===<br />
See [[CDash:Administration#Project_Roles | Project roles]] section.<br />
<br />
== My Sites ==<br />
<br />
[[Image:CDashMySites.jpg|thumb|My sites]]<br />
<br />
As a site maintainer, it is useful to know if submissions have been missing for quite sometime, or if the current builds on a specific sites are not reporting errors due to misconfiguration.<br />
<br />
* The first column show the list of currently claimed sites.<br />
* The first row shows the current projects that are submitting builds for the given site<br />
* For each pair (site/project) a summary of the current status of the dashboard is displayed<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Build group !! Updates !! Errors !! Warnings !! Tests !! Last submission<br />
|-<br />
| N: Nightly || 1 || 0 || 0 || 0 || Today<br />
|-<br />
| C: Continuous || 1 || 0 || 0 || 0 || Yesterday<br />
|-<br />
| E: Experimental || 1 || 0 || 0 || 0 || 6 days ago<br />
|}<br />
<br />
''Note: only Nightly, Continuous and Experimental groups are current shown'.' <br />
<br />
Clicking on the name of a site gives access to the description of the site.<br />
<br />
== Public projects ==<br />
<br />
List of all the public projects stored in CDash. By definition, users registered in CDash can subscribe to any public projects.<br />
<br />
= Subscribe to project =<br />
<br />
[[Image:CDashSubscribeProject.jpg|thumb|Subscribing to public projects]]<br />
<br />
If the project is public then users can subscribe to the project themselves, otherwise see section [[CDash:Administration#Project_Roles | Project Roles]].<br />
<br />
# Log into CDash (see [[CDash:Documentation#Login_to_CDash | Login to CDash]])<br />
# Under "Public projects" section click on [Subscribe to this project]<br />
# Select your role for the project: '''Normal user''' or '''Site maintainer''' if you are responsible for a machine sending periodic builds to the dashboard/<br />
# Add your CVS/SVN login for the project if you have any<br />
# Select your email preference<br />
# Click on subscribe<br />
<br />
= Claim a site =<br />
[[Image:CDashClaimSite.jpg|thumb|Claiming a site]]<br />
<br />
CDash allows '''Site maintainers''' (see [[CDash:Documentation#Subscribe_to_project | Subscribe to Project]]) to claim a site they are managing. This allows users to have personal reports regarding a specific machine and get informed if the machine has not been submitting from quite some time or has unexpected high number of failures (probably due to misconfiguration).<br />
<br />
In order to claim a site:<br />
<br />
# Login to CDash to acces "My CDash"<br />
# Under "My Projects" select [Claim sites]. If the project is not listed, refers to [[CDash:Documentation#Subscribe_to_project | Subscribe to Project]] for more information.<br />
# The Claim sites page show the list of current sites for the project. Check the site(s) of interest.<br />
# Click on "Update claimed sites"<br />
<br />
In order to unclaim a site:<br />
<br />
# Login to CDash to acces "My CDash"<br />
# Under "My Projects" select [Claim sites].<br />
# Uncheck the site(s) no longer of interest.<br />
# Click on "Update claimed sites"<br />
<br />
See the section [[CDash:Documentation#Describe_a_site | Describe a site]] for information about the given sites.<br />
<br />
= Describe a site =<br />
[[Image:CDashSiteSpecifications.jpg|thumb|Describing a site]]<br />
[[Image:CDashSite.jpg|thumb|Site information]]<br />
<br />
CDash records each site specifications so that users can quickly assess the type of machine, OS, memory, etc...<br />
<br />
'''If using the CTest 2.6 (or higher) the site specifications are automatically sent as part of the submission.'''<br />
<br />
Here's the list of specification currently present:<br />
<br />
*'''Name:''' '''This value shouldn't be changed, unless the site name sent by the build was wrong. Make sure the name of the build matches CTest buildname otherwise a new site will be created.'''<br />
*'''64 bits:''' Is the machine running a 64bits OS<br />
*'''Processor vendor:''' vendor name of the processor (i.e. GenuineIntel)<br />
*'''Processor vendor ID:''' vendor identification of the processor (i.e. Intel Corporation)<br />
*'''Processor family ID:''' family identification number of the processor (i.e. 15)<br />
*'''Processor model ID:''' model identification number of the processor, usually depending on the processor family (i.e. 3)<br />
*'''Processor cache size:''' size of the processor cache in MB.<br />
*'''CPU Speed (MHz):''' speed of the CPU in MHz.<br />
*'''Number of logical CPUs:''' Number of logical CPU per physical CPU.<br />
*'''Number of physical CPUs:''' Number of physical CPU.<br />
*'''Logical Processor per Physical:'''Number of logical processor per physical<br />
*'''Total virtual memory (MB):''' Total virtual memory in MB.<br />
*'''Total physical memory (MB):''' Total physical memory (RAM) in MB.<br />
*'''Description:''' Description of the machine.<br />
*'''IP address:''' Current IP address. This is filled in automatically by CDash<br />
*'''Latitude:''' Geolocation from the IP address<br />
*'''Longitude:''' Geolocation from the IP address<br />
<br />
'''CDash keeps an history''' of the machine description, in case of memory or processor upgrade. This is particularly useful to assess why a test is now running much faster than before. If the system has been upgraded, the checkbox "Force new description revision" should be checked. Note that CDash should automatically detect if a site has been upgraded.<br />
<br />
''Note: support for other specifications, such as graphic card information and more detailed information might be added in the near future.''<br />
<br />
= Graphs =<br />
<br />
CDash relies on the flot javascript library for graphing. See the section [[CDash:Design#Graphs | Graphs]] for information.<br />
CDash curently plots three types of graph as explained below.<br />
<br />
== Build time graph ==<br />
[[Image:CDashBuildGraph.jpg|thumb|Build time graph]]<br />
<br />
The time requires to build a project is recorded as part of CTest. Sometimes it might be useful to track the build time overtime. In order to do so:<br />
<br />
# Go to the main dashboard for the project<br />
# Click on the build name you want to track<br />
# On the build summary page, click on [Show Build Time Graph], this performs an Ajax request to the database.<br />
<br />
== Test time graphs ==<br />
<br />
CDash plots graphs of the time it takes to run a specific test as well as its status (passed/failed) overtime. <br />
<br />
To look at these graphs:<br />
<br />
# Go to the main dashboard for a project<br />
# Click on the number of test passed or failed<br />
# From the list of tests, click on the status of the test.<br />
# Click on [Show Test Time Graph] and/or [Show Failing/Passing Graph]<br />
<br />
<br />
<br />
= Adding notes to a build =<br />
[[Image:CDashAddNote.jpg|thumb|Adding a note to a build]]<br />
In some cases, it is useful to tell other developers that you are currently looking at the errors for a builds and informed them. CDash implements a simple note mechanism.<br />
<br />
* Login to CDash<br />
* On the dashboard project page, click on the build name to which you want to add the note.<br />
* Click on [Add a Note to this Build] link, located next to the current build matrix (see thumbnail)<br />
* Enter a small message corresponding to the note<br />
* Select the status of the note: '''Simple note''', '''Fix in progress''', '''Fixed'''.<br />
* Click on "Add Note"<br />
<br />
= Build summary =<br />
<br />
CDash summarizes the build errors and warnings on a single page. The errors are grouped by file and line number. It makes easier to fix source code.<br />
In order to see the build summary:<br />
<br />
# Go to the main dashboard for the project<br />
# In the main menu select Dashboard->Builds<br />
<br />
= Filters =<br />
Some CDash pages allow you to use '''filters''' to narrow down the results to what's important to you.<br />
<br />
== Filters on index.php ==<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Description !! Example Value<br />
|-<br />
| Build Duration || How long the build took to complete || 14m 58s<br />
|-<br />
| Build Errors || How many errors occurred during the build step || 1<br />
|-<br />
| Build Warnings || How many warnings occurred during the build step || 5<br />
|-<br />
| Build Name || The name of the build || Linux-cxx<br />
|-<br />
| Build Stamp || The CTest-generated TAG for this build || 20090223-0100-Nightly<br />
|-<br />
| Build Time || When this build started || 2009-02-23 01:00:00 UTC<br />
|-<br />
| Build Type || What type of build this is || Experimental<br />
|-<br />
| Configure Duration || How long this build took to configure || 2m 45s<br />
|-<br />
| Configure Errors || How many errors occurred during the configure step || 2<br />
|-<br />
| Configure Warnings || How many warnings occurred during the configure step || 3<br />
|-<br />
| Expected || Whether or not this build has been marked as expected || true<br />
|-<br />
| Group || The name of this build's group || Nightly<br />
|-<br />
| Has Coverage || Whether or not this build performed coverage || true<br />
|-<br />
| Has CTest Notes || Whether or not any notes were uploaded with this build || false<br />
|-<br />
| Has Dynamic Analysis || Whether or not this build performed dynamic analysis || true<br />
|-<br />
| Has User Notes || Whether or not a CDash user left a note on this build || true<br />
|-<br />
| Label || Search for builds with a given label || vtkCommonCore<br />
|-<br />
| Site || Search for builds from a given site || kamino<br />
|-<br />
| Submission Client || What client was used to submit this build || ctest-3.0<br />
|-<br />
| SubProject || Whitelist or blacklist SubProject results'''<nowiki>*</nowiki>''' || my-subproject-name<br />
|-<br />
| Tests Duration || How long this build took to test || 5m 23s<br />
|-<br />
| Tests Failed || How many tests failed || 4<br />
|-<br />
| Tests Not Run || How many tests couldn't be run || 10<br />
|-<br />
| Tests Passed || How many tests passed || 20<br />
|-<br />
| Tests Timing Failed || [[CDash:Design#Test_Timing|How many tests failed the time status check]] || 8<br />
|-<br />
| Update Duration || How long this build took to update || 45s<br />
|-<br />
| Updated Files || How many source files were updated before this build || 5<br />
|}<br />
<br />
'''<nowiki>*</nowiki>''' A note on the SubProject filter. This filter can only be used to narrow down results. It can not be used to include results that otherwise would have been returned. Consider the following examples:<br />
<br />
Test Failures > 0 AND SubProject exclude <the-only-package-with-failing-tests><br />
This works as expected, because the SubProject filter is being used to narrow the results returned by the Test Failure filter.<br />
<br />
Build Duration < 60s AND SubProject exclude <slowest-package-to-build><br />
This does not work the way you expect it to. The Build Duration filter will discard the build for being too slow before the SubProject filter can modify its duration.</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:API&diff=59331CDash:API2016-04-12T17:09:25Z<p>Zack: </p>
<hr />
<div>The API is still in beta and the response code might change in the near future.<br />
<br />
= JSON data representation =<br />
We are gradually converting CDash's frontend from XSLT to AngularJS. For any page that has already been converted, you can now directly access the underlying data in JSON format.<br />
<br />
For example,<br />
<br />
https://open.cdash.org/api/v1/index.php?project=VTK<br />
<br />
returns a JSON representation of the data that used to render<br />
<br />
https://open.cdash.org/index.php?project=VTK .<br />
<br />
[https://github.com/Kitware/CDash/tree/release/public/api/v1 Go here to see an up-to-date list] of all the pages that have been converted to AngularJS so far.<br />
<br />
= General API =<br />
This section describes the CDash web API. The CDash REST API is generic and the GET url is usually formatted as follows:<br />
<br />
http://mycdashserver/api/?method=method_name&task=task_name&project=project_name<br />
<br />
The URL should be encoded accordingly to the HTTP 1.1 protocol and by default the result is returned as a JSON array.<br />
<br />
== Project API ==<br />
* Method name: project<br />
<br />
=== List ===<br />
* Task name: list<br />
* Description: Returns a list of projects id and names<br />
<br />
http://mycdashserver/api/?method=project&task=list<br />
<br />
* Return an array of projects:<br />
** array[]['id'] = project id<br />
** array[]['name'] = project name<br />
<br />
=== Login ===<br />
* Task name: login<br />
* Project name (mandatory) - The name of the project whose web API key you are using.<br />
* Key (mandatory - POST) - The 40-character web API key displayed on the Miscellaneous tab of the Edit Project page. Pass as a POST field for security.<br />
* Description: A project admin can use the project's web API key to obtain a temporary token that will allow them to call protected web API methods.<br />
<br />
http://mycdashserver/api/?method=project&task=login&project=MyProject<br />
(You must pass key=<api key> as a POST parameter)<br />
<br />
* Return a status message and the token that was created<br />
** array['status'] = true or false depending on whether the token was successfully created<br />
** array['token'] = the 40-character temporary API token that you can use in subsequent web API calls<br />
<br />
== Build API ==<br />
* Method name: build<br />
<br />
=== Revision Status ===<br />
* Task name: revisionstatus<br />
* Project name: mandatory<br />
* Revision: mandatory: GIT hash or SVN revision<br />
* Description: Returns an array of build defects<br />
<br />
http://mycdashserver/api/?method=build&task=revisionstatus&project=test&revision=abcde<br />
<br />
* Return an array of builds: array(build);<br />
** $build['id'] = internal id of the build<br />
** $build['name'] = name of the build as specified by CTest<br />
** $build['os'] = name of the OS<br />
** $build['starttime'] = start time of the build<br />
** $build['endtime'] = end time of the build<br />
** $build['submittime'] = submission time of the build<br />
** $build['configureerrors'] = number of configuration errors<br />
** $build['configurewarnings'] = number of configuration warnings<br />
** $build['loctested'] = number of lines of code tested (if build is associated with coverage)<br />
** $build['locuntested'] = number of lines of code untested (if build is associated with coverage)<br />
** $build['builderrors'] = number of build errors<br />
** $build['buildwarnings'] = number of build warnings<br />
** $build['testnotrun'] = number of tests not run<br />
** $build['testpassed'] = number of tests passed<br />
** $build['testfailed'] = number of tests failed<br />
<br />
=== Defects ===<br />
* Task name: defects<br />
* Project name: mandatory<br />
* Description: Returns an array of build defects over time (currently limited to the 1000 last entries)<br />
<br />
http://mycdashserver/api/?method=build&task=defects&project=MyProject<br />
<br />
* Return an array of builds: array(build);<br />
** build['month'] = month of the build<br />
** build['day'] = day of the build<br />
** build['year'] = year of the build<br />
** build['time'] = time of the build<br />
** build['builderrors'] = number of build errors<br />
** build['buildwarnings'] = number of build warnings<br />
** build['testnotrun'] = number of tests not run<br />
** build['testfailed'] = number of tests failed<br />
<br />
=== Checkins/Defects ===<br />
* Task name: checkinsdefects<br />
* Project name: mandatory<br />
* Description: Returns an array of build defects and number of updated files for the build<br />
* Currently limited to the last 1000 builds for the project<br />
<br />
http://mycdashserver/api/?method=build&task=checkinsdefects&project=MyProject<br />
<br />
* Return an array of builds: array(build);<br />
** build['nfiles'] = number of updated files<br />
** build['builderrors'] = number of build errors<br />
** build['buildwarnings'] = number of build warnings<br />
** build['testnotrun'] = number of tests not run<br />
** build['testfailed'] = number of tests failed<br />
<br />
=== Site/Test Failures ===<br />
* Task name: sitetestfailures<br />
* Project name: mandatory<br />
* Group: optional: Nightly, Continuous, Experimental<br />
* Description: returns an array of sites and corresponding names of the failing tests.<br />
<br />
http://mycdashserver/api/?method=build&task=sitetestfailures&project=MyProject&group=Nightly<br />
<br />
* Return an array of sites with the index being the id of the build<br />
** site['name'] = name of the machine<br />
** site['buildname'] = name of the build<br />
** site['cpu'] = processor speed<br />
** site['memory'] = physical memory<br />
** site['tests'] = name of the tests<br />
<br />
=== Schedule a build (build management) ===<br />
* Task name: schedule<br />
* token (mandatory - POST) - The token obtained from the project API's login method. Pass as a POST parameter for security.<br />
* project (mandatory) - Name of the project<br />
* repository (mandatory) - Name of the repository<br />
* userid (optional) - User scheduling the build (default is administrator)<br />
* type (option) - Experimental, nighty, continuous (Experimental=0,Nightly=1,Continuous=2)<br />
* module (optional) - Name of the repository module<br />
* tag (optional) - Name of the repository tag<br />
* suffix (optional) - Suffix for the build<br />
* configuration (optional) - Configuration type for compilation (Debug=0,Release=1,RelWithDebInfo=2,MinSizeRel=3)<br />
* cmakeversion (optional) - Version of CMake to use<br />
* siteid (optional) - Specify that the build should run on this site<br />
* osname (optional) - Name of the OS to run the build<br />
* osversion (optional) - Version of the OS to run the build<br />
* osbits (optional) - Number of bits of the target OS<br />
* compilername (optional) - Target compiler<br />
* compilerversion (optional) - Target compiler version<br />
* libraryname (optional) - Library name (currently only one can be specified)<br />
* libraryversion (optional) - Library version<br />
<br />
* If none of the optional parameters is set, CDash will try to schedule the build on any available machines.<br />
* Description: returns an array with the current status of the schedule.<br />
<br />
http://mycdashserver/api/?method=build&task=schedule&project=MyProject<br />
<br />
* Return an array containing the status of the scheduling<br />
** status['status'] = true or false depending on whether the schedule was successfully submitted<br />
** status['scheduled'] = 1 if the build has been scheduled<br />
** status['scheduleid'] = internal schedule id for further reference<br />
<br />
=== Get status of a scheduled build (build management) ===<br />
* Task name: schedulestatus<br />
* project (mandatory) - Name of the project<br />
* scheduleid (mandatory) - Id of the schedule<br />
* Description: returns an array with the current status of the schedule.<br />
<br />
http://mycdashserver/api/?method=build&task=schedulestatus&project=MyProject&scheduleid=12<br />
<br />
* Return an array containing the status of the scheduling<br />
** status['scheduled'] = returns 1 if the build has been scheduled<br />
** status['status'] = status code (-1:not found,0:scheduled,2:running,3:finished,4:aborted,5:failed)<br />
** status['statusstring'] = status string<br />
** status['scheduleid'] = id of the schedule<br />
** status['builds'] = array of build id's that were performed as a result of this scheduled job<br />
<br />
== Coverage API ==<br />
* Method name: coverage<br />
<br />
=== Coverage per directory ===<br />
* Task name: directory<br />
* Project name: mandatory<br />
* Description: Return the number of lines untested per directory<br />
<br />
http://mycdashserver/api/?method=coverage&task=directory&project=MyProject<br />
<br />
* Returns an array of LOC tested and untested<br />
** array[directory_fullpath]['loctested'] = # loc tested<br />
** array[directory_fullpath]['locuntested'] = # loc untested<br />
<br />
== User API ==<br />
* Method name: user<br />
<br />
=== Defects per user ===<br />
* Task name: defects<br />
* Project name: mandatory<br />
* Description: Return the commit statistics per user<br />
<br />
http://mycdashserver/api/?method=user&task=defects&project=MyProject<br />
<br />
* Returns an array of users<br />
** array[username]['builderrors'] = number of errors and warning caused by the user<br />
** array[username]['builderrorsfiles'] = number of commits causing either a fix or failure of errors and warnings<br />
** array[username]['buildfixes'] = number of fixes (warnings or errors) done by the user<br />
** array[username]['buildfixesfiles'] = number of commits causing either a fix or failure of errors and warnings<br />
** array[username]['testerrors'] = number of test failing caused by the user<br />
** array[username]['testerrorsfiles'] = number of files committed that produced a test failure<br />
** array[username]['testfixes'] = number of test fixed by the user<br />
** array[username]['testfixesfiles'] = number of files committed that fixed a test<br />
** array[username]['neutralfiles'] = number of commits that didn't fix or break the dashboard<br />
<br />
== Get build id (old API) ==<br />
<br />
*URL:<br />
<br />
/api/getbuildid.php?<br />
<br />
*Parameters:<br />
** project: name of the project<br />
** site: name of the site<br />
** siteid: override the site name if siteid is provided (optional)<br />
** stamp: time stamp of the build<br />
** name: build name<br />
<br />
*Returns:<br />
<br />
** <buildid>buildid</buildid><br />
** <buildid>not found</buildid> if no buildid found<br />
<br />
*Example:<br />
<br />
/api/getbuildid.php?project=VTK&site=singaporecrisp&stamp=20081013-0109-Experimental&name=Linux-c%2B%2B<br />
<br />
== Get user id (Old API) ==<br />
<br />
*URL:<br />
<br />
/api/getuserid.php?<br />
<br />
*Parameters:<br />
** project: name of the project<br />
** author: name of the cvsuser/svnuser<br />
<br />
*Returns:<br />
<br />
** <userid>userid</userid><br />
** <userid>not found</userid> if no user found<br />
<br />
*Example:<br />
<br />
/api/getuserid.php?project=VTK&cvsuser=test</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CMake/Testing_With_CTest&diff=59300CMake/Testing With CTest2016-03-30T12:58:12Z<p>Zack: /* Customizing CTest */ fix name of variable</p>
<hr />
<div>==Introduction==<br />
<br />
CTest is a testing tool distributed as a part of CMake. It can be used to<br />
automate updating (using CVS for example), configuring, building, testing,<br />
performing memory checking, performing coverage, and submitting results to<br />
a [http://www.cdash.org CDash] or [http://public.kitware.com/Dart Dart]<br />
dashboard system.<br />
<br />
There are two basic modes of operation for CTest. <br />
<br />
In the first mode, CMake is used to configure and build a project, using<br />
special commands in the <tt>CMakeLists.txt</tt> file to create tests. CTest<br />
can then be used to execute the tests, and optionally upload their results<br />
to a dashboard server. This is what is handled in this tutorial.<br />
<br />
In the second mode, CTest runs a script (using the same syntax as <br />
<tt>CMakeLists.txt</tt>) to control the whole process of checking out /<br />
updating source code, configuring and building the project, and running<br />
the tests. This is handled in [[CMake Scripting Of CTest]].<br />
<br />
==Simple Testing==<br />
<br />
CMake has support for adding tests to a project:<br />
<br />
enable_testing()<br />
<br />
This adds another build target, which is <tt>test</tt> for Makefile<br />
generators, or <tt>RUN_TESTS</tt> for integrated development environments<br />
(like Visual Studio).<br />
<br />
From that point on, you can use the <tt>ADD_TEST</tt> command to add tests<br />
to the project:<br />
<br />
add_test( testname Exename arg1 arg2 ... )<br />
<br />
Or, in its longer form:<br />
<br />
add_test(NAME <name> [CONFIGURATIONS [Debug|Release|...]]<br />
[WORKING_DIRECTORY dir]<br />
COMMAND <command> [arg1 [arg2 ...]])<br />
<br />
Once you have built the project, you can execute all tests via<br />
<br />
make test<br />
<br />
with Makefile generators, or by rebuilding the <tt>RUN_TESTS</tt> target<br />
in your IDE. Internally this runs CTest to actually perform the testing;<br />
you could just as well execute<br />
<br />
ctest<br />
<br />
in the binary directory of your build.<br />
<br />
In some projects you will want to set <tt>*_POSTFIX</tt> properties on<br />
executables that will be executed for testing, e.g. to make executables<br />
compiled with debug information distinguishable ("<exename>-debug"). Note<br />
that the shorthand version of <tt>add_test</tt> does ''not'' automatically<br />
append these postfixes to the commands it calls for the test target, i.e.<br />
your test will want to call "<exename>" but the executable is "<exename>-debug",<br />
resulting in an error message. Use the long version of the <tt>add_test()</tt><br />
in this case, which adds the appropriate <tt>_POSTFIX</tt> to the command name.<br />
<br />
For more information, check the<br />
[http://www.cmake.org/HTML/Documentation.html CMake Documentation] or run:<br />
<br />
cmake --help-command enable_testing<br />
cmake --help-command add_test<br />
cmake --help-property "<CONFIG>_POSTFIX"<br />
cmake --help-command set_property<br />
<br />
==Dashboards==<br />
<br />
The next step is to not only execute the tests, but to log their results<br />
and provide them in such a way that they could be reviewed easily.<br />
<br />
The result of a test run, reformatted for easy review, is called a<br />
"dashboard". A dashboard can be submitted to a central server, like CDash:<br />
<br />
* [http://http://open.cdash.org/index.php open.cdash.org] and<br />
* [http://my.cdash.org my.cdash.org].<br />
<br />
There are three types of dashboard submissions:<br />
<br />
* '''Experimental''' means the current state of the project. An experimental submission can be performed at any time, usually interactively from the current working copy of a developer.<br />
<br />
* '''Nightly''' is similar to experimental, except that the source tree will be set to the state it was in at a specific nightly time. This ensures that all "nightly" submissions correspond to the state of the project at the same point in time. "Nightly" builds are usually done automatically at a preset time of day.<br />
<br />
* '''Continuous''' means that the source tree is updated to the latest revision, and a build / test cycle is performed only if any files were actually updated. Like "Nightly" builds, "Continuous" ones are usually done automatically and repeatedly in intervals.<br />
<br />
===Dashboard Preparation===<br />
<br />
To enable the creation and submission of dashboards, add the following to your<br />
<tt>CMakeLists.txt</tt>:<br />
<br />
include( CTest )<br />
<br />
This module will automatically call <tt>enable_testing()</tt> (see above), so<br />
you no longer have to do so in your CMake files. It will also add several new<br />
targets to your build.<br />
<br />
* The three main targets:<br />
** Experimental<br />
** Nightly<br />
** Continuous<br />
* For each of the above, targets for the intermediate steps<br />
** ...Start<br />
** ...Update<br />
** ...Configure<br />
** ...Build<br />
** ...Submit<br />
** ...Test<br />
** ...Coverage<br />
** ...MemCheck<br />
** ...Submit<br />
<br />
The intermediate targets are created so you could submit partial test<br />
results, or inspect the results before submitting (or continuing with<br />
more time-consuming steps like MemCheck).<br />
<br />
All this can be disabled by setting the option <tt>BUILD_TESTING</tt> (which<br />
is also added by the CTest module and enabled by default) to OFF / false.<br />
<br />
The default settings of the module are to submit the dashboard to<br />
[http://www.kitware.com Kitware's]<br />
[http://public.kitware.com/Public/Dashboard/MostRecentResults-Nightly/Dashboard.html Public Dashboard],<br />
where you can register your project for free.<br />
<br />
In order to submit to some other server, "CTestConfig.cmake" in the top level<br />
directory of your source, and set your own dashboard preferences. If you are<br />
using a CDash server, you can download a preconfigured file from the respective<br />
project page on that server ("Settings" / "Project", tab "Miscellaneous").<br />
<br />
An example of a CTestConfig.cmake:<br />
<br />
<pre><br />
## This file should be placed in the root directory of your project.<br />
## Then modify the CMakeLists.txt file in the root directory of your<br />
## project to incorporate the testing dashboard.<br />
## # The following are required to uses Dart and the Cdash dashboard<br />
## ENABLE_TESTING()<br />
## INCLUDE(CTest)<br />
set(CTEST_PROJECT_NAME "MyProject")<br />
set(CTEST_NIGHTLY_START_TIME "01:00:00 UTC")<br />
<br />
set(CTEST_DROP_METHOD "http")<br />
set(CTEST_DROP_SITE "open.cdash.org")<br />
set(CTEST_DROP_LOCATION "/submit.php?project=MyProject")<br />
set(CTEST_DROP_SITE_CDASH TRUE)<br />
</pre><br />
<br />
===Dashboard Creation===<br />
<br />
Once you have the above in place, you can build one of the targets added<br />
by the CTest module you included. Internally, this calls the CTest command<br />
line client, which you could also call directly instead:<br />
<br />
ctest -D Experimental<br />
<br />
A detailed description of CTest options can be seen by running:<br />
<br />
ctest --help<br />
<br />
A list of the available targets is listed by calling:<br />
<br />
ctest -D help<br />
<br />
===Converting Dart to CTest===<br />
<br />
CTest is actually a fully [http://www.itk.org/Dart/HTML/Index.shtml Dart]<br />
compatible client, and could submit to any compatible server.<br />
<br />
To convert existing Dart Client invocations to CTest, find lines like:<br />
<br />
tclsh /location/of/Dart/Source/Client/DashboardManager.tcl DartConfiguration.tcl \<br />
Nightly Start Update Configure Build Test Submit<br />
<br />
Then convert them to CTest style:<br />
<br />
ctest -D Nightly<br />
<br />
==Advanced CTest==<br />
<br />
CTest has several additional features that include:<br />
<br />
# FTP/HTTP/SCP/XMLRPC submission support<br />
# Run individual tests, subset of tests, exclude tests, etc.<br />
# Dynamic analysis using Valgrind or Purify<br />
# Customization of the testing by providing:<br />
#* Custom build error/warning regular expressions<br />
#* Ability to suppress some tests from being tested or memory checked and ability to run subset of tests<br />
#* Ability to run commands before and after tests are run<br />
# Ability to run whole testing process described in a single script<br />
<br />
===Submission Of Tests===<br />
<br />
CTest currently supports four methods directly and any other indirectly. Direct methods are HTTP, FTP, SCP and XML-RPC. Both HTTP and FTP methods require extra trigger mechanism, while SCP method relies on the fact that files are on the right place. To set the appropriate submission method, set CTEST_DROP_METHOD variable in CTestConfig.cmake. <br />
<br />
Example for HTTP submission would be:<br />
<pre><br />
SET (CTEST_DROP_METHOD http)<br />
SET (CTEST_DROP_SITE "public.kitware.com")<br />
SET (CTEST_DROP_LOCATION "/cgi-bin/HTTPUploadDartFile.cgi")<br />
SET (CTEST_TRIGGER_SITE <br />
"http://${DROP_SITE}/cgi-bin/Submit-CMake-TestingResults.pl")<br />
</pre><br />
where ''<nowiki>http://public.kitware.com/cgi-bin/HTTPUploadDartFile.cgi</nowiki>'' is a submit script and ''<nowiki>http://public.kitware.com/cgi-bin/Submit-CMake-TestingResults.pl</nowiki>'' is a trigger script.<br />
<br />
For FTP submission:<br />
<pre><br />
SET (CTEST_DROP_METHOD ftp) <br />
SET (CTEST_DROP_SITE "public.kitware.com")<br />
SET (CTEST_DROP_LOCATION "/incoming")<br />
SET (CTEST_DROP_SITE_USER "ftpuser")<br />
SET (CTEST_DROP_SITE_PASSWORD "public")<br />
SET (CTEST_TRIGGER_SITE <br />
"http://${DROP_SITE}/cgi-bin/Submit-CMake-TestingResults.pl")<br />
</pre><br />
where ''/incoming'' is a location on the FTP site ''public.kitware.com'' with user ''ftpuser'' and password ''public''. The trigger scrip is the same as with the http submit.<br />
<br />
For XML-RPC submission (Dart2):<br />
<pre><br />
SET (CTEST_DROP_METHOD xmlrpc) <br />
SET (CTEST_DROP_SITE "www.na-mic.org:8081")<br />
SET (CTEST_DROP_LOCATION "PublicDashboard")<br />
</pre><br />
where XML-RPC submission is on the server ''www.na-mic.org'' with the port ''8081''. The project name is ''PublicDashboard''. XML-RPC submission does not require the trigger script.<br />
<br />
===Running Individual Tests===<br />
<br />
CTest supports two different ways of specifying subset of tests to run.<br />
<br />
The first way is to specify the regular expression using -R and -E. -R specifies tests to be included and -E specifies the tests to be removed. For example, when running ctest in show-only mode, where no tests are run, we may see something like:<br />
<br />
Test project<br />
1/ 13 Testing PythonDataDesc <br />
2/ 13 Testing VTKTest <br />
3/ 13 Testing SystemInformation <br />
4/ 13 Testing TestVTKWriters <br />
5/ 13 Testing TestVTKPython <br />
6/ 13 Testing VTKPythonMultiGrid <br />
7/ 13 Testing IronImage <br />
8/ 13 Testing IronImageMagic <br />
9/ 13 Testing IronImageStrideMagic <br />
10/ 13 Testing IronRectMagic <br />
11/ 13 Testing IronRectStrideMagic <br />
12/ 13 Testing IronStructMagic <br />
13/ 13 Testing IronStructStrideMagic<br />
<br />
If we now run<br />
<br />
ctest -R Python<br />
<br />
We will only see tests that contain string ''Python'':<br />
<br />
Test project<br />
1/ 3 Testing PythonDataDesc <br />
2/ 3 Testing TestVTKPython <br />
3/ 3 Testing VTKPythonMultiGrid<br />
<br />
We can also omit tests using -E, for example:<br />
<br />
ctest -E Iron<br />
<br />
will produce:<br />
<br />
Test project<br />
1/ 6 Testing PythonDataDesc <br />
2/ 6 Testing VTKTest <br />
3/ 6 Testing SystemInformation <br />
4/ 6 Testing TestVTKWriters <br />
5/ 6 Testing TestVTKPython <br />
6/ 6 Testing VTKPythonMultiGrid<br />
<br />
Both -R and -E can be used at the same time.<br />
<br />
To determine what tests are avilable, you can always run:<br />
<br />
ctest -N<br />
<br />
which will display the list of tests but not actually run them.<br />
<br />
The second way of specifying tests is using explicit test number option -I:<br />
<br />
ctest -I 3,5<br />
<br />
will run tests:<br />
<br />
Test project<br />
Running tests: 3 4 5 <br />
3/ 13 Testing SystemInformation <br />
4/ 13 Testing TestVTKWriters <br />
5/ 13 Testing TestVTKPython<br />
<br />
We can also specify stride:<br />
<br />
ctest -I ,,3<br />
<br />
will run tests:<br />
<br />
Test project<br />
Running tests: 1 4 7 10 13 <br />
1/ 13 Testing PythonDataDesc <br />
4/ 13 Testing TestVTKWriters <br />
7/ 13 Testing IronImage <br />
10/ 13 Testing IronRectMagic <br />
13/ 13 Testing IronStructStrideMagic<br />
<br />
Or run individual tests:<br />
<br />
ctest -I 4,4,,4,7,13<br />
<br />
will run tests:<br />
<br />
Test project<br />
Running tests: 4 7 13<br />
4/ 13 Testing TestVTKWriters<br />
7/ 13 Testing IronImage<br />
13/ 13 Testing IronStructStrideMagic<br />
<br />
Make sure that the first and second argument are the index of the first test<br />
<br />
===Dynamic Analysis===<br />
<br />
Software development can be significantly hindered when memory leaks are introduced in the code. Both Purify and Valgrind can catch most of them. Setting up both is extremely easy.<br />
<br />
For example, to setup purify, all you have to do is to add:<br />
<br />
PURIFYCOMMAND:FILEPATH=c:/Progra~1/Rational/common/purify.exe<br />
<br />
To your cmake cache. Same way to setup valgrind, you add:<br />
<br />
MEMORYCHECK_COMMAND:FILEPATH=/home/kitware/local/bin/valgrind<br />
<br />
You can add additional options by specifying MEMORYCHECK_COMMAND_OPTIONS and MEMORYCHECK_SUPPRESSIONS_FILE.<br />
<br />
Make sure to run:<br />
<br />
ctest -D NightlyMemoryCheck<br />
<br />
or<br />
<br />
ctest -D NightlyStart<br />
ctest -D NightlyUpdate<br />
ctest -D NightlyConfigure<br />
ctest -D NightlyBuild<br />
ctest -D NightlyTest<br />
ctest -D NightlyMemCheck<br />
ctest -D NightlySubmit<br />
<br />
===Customizing CTest===<br />
<br />
CTest can be customized by providing CTestCustom.ctest or CTestCustom.cmake file in the ''build'' tree. If both<br />
files exist, CTestCustom.cmake will be preferred. If the CTestCustom.cmake/.ctest file is distributed <br />
with the sources of the project, e.g. CONFIGURE_FILE() can be used to put it in the build tree.<br />
The file may contain any SET command for any CMake variable, but the following ones will be used:<br />
<br />
{|border="1"<br />
|- bgcolor="#abcdef"<br />
! Variable !! Description<br />
|-<br />
| CTEST_CUSTOM_ERROR_MATCH || Regular expression for errors during build process<br />
|-<br />
| CTEST_CUSTOM_ERROR_EXCEPTION || Regular expression for error exceptions during build process<br />
|-<br />
| CTEST_CUSTOM_WARNING_MATCH || Regular expression for warnings during build process<br />
|-<br />
| CTEST_CUSTOM_WARNING_EXCEPTION || Regular expression for warning exception during build process<br />
|-<br />
| CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS || Maximum number of errors to display<br />
|-<br />
| CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS || Maximum number of warnings to display<br />
|- <br />
| CTEST_CUSTOM_TESTS_IGNORE || List of tests to ignore during the ''Test'' stage<br />
|-<br />
| CTEST_CUSTOM_MEMCHECK_IGNORE || List of tests to ignore during the ''MemCheck'' stage<br />
|-<br />
| CTEST_CUSTOM_PRE_TEST || Command to execute before any tests are run during ''Test'' stage<br />
|-<br />
| CTEST_CUSTOM_POST_TEST || Command to execute after any tests are run during ''Test'' stage<br />
|-<br />
| CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE || Maximum size of passed test output<br />
|-<br />
| CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE || Maximum size of failed test output<br />
|-<br />
| CTEST_CUSTOM_PRE_MEMCHECK || Command to execute before any tests are run during ''MemCheck'' stage<br />
|-<br />
| CTEST_CUSTOM_POST_MEMCHECK || Command to execute after any tests are run during ''MemCheck'' stage<br />
|-<br />
| CTEST_CUSTOM_COVERAGE_EXCLUDE || Regular expression for excluding files from coverage testing<br />
|-<br />
| CTEST_EXTRA_COVERAGE_GLOB || Report on uncovered files matching this expression<br />
<br />
|}<br />
<br />
Example of CTestCustom.cmake file would be:<br />
<br />
<pre><br />
SET(CTEST_CUSTOM_MEMCHECK_IGNORE<br />
${CTEST_CUSTOM_MEMCHECK_IGNORE}<br />
TestSetGet<br />
otherPrint-ParaView<br />
Example-vtkLocal<br />
Example-vtkMy<br />
<br />
# These tests do not actually run any VTK code<br />
HeaderTesting-Common<br />
HeaderTesting-Filtering<br />
HeaderTesting-Graphics<br />
HeaderTesting-Imaging<br />
HeaderTesting-IO<br />
<br />
# this one runs python which then runs two<br />
# program so no memory checking there<br />
Sockets-image<br />
)<br />
<br />
SET(CTEST_CUSTOM_WARNING_MATCH<br />
${CTEST_CUSTOM_WARNING_MATCH}<br />
"{standard input}:[0-9][0-9]*: Warning: "<br />
)<br />
<br />
IF("@CMAKE_SYSTEM@" MATCHES "OSF")<br />
SET(CTEST_CUSTOM_WARNING_EXCEPTION<br />
${CTEST_CUSTOM_WARNING_EXCEPTION}<br />
"XdmfDOM"<br />
"XdmfExpr"<br />
"vtkKWApplication"<br />
"vtkKWObject"<br />
)<br />
ENDIF("@CMAKE_SYSTEM@" MATCHES "OSF")<br />
<br />
SET(CTEST_CUSTOM_WARNING_EXCEPTION<br />
${CTEST_CUSTOM_WARNING_EXCEPTION}<br />
"tcl8.4.5/[^/]+/../[^/]+/[^.]+.c[:\"]"<br />
"tk8.4.5/[^/]+/[^/]+.c[:\"]"<br />
"VTK/Utilities/vtktiff/"<br />
"Utilities/vtkmpeg2/"<br />
"Utilities/hdf5/"<br />
"xtree.[0-9]+. : warning C4702: unreachable code"<br />
"warning LNK4221"<br />
"variable .var_args[2]*. is used before its value is set"<br />
)<br />
</pre><br />
<br />
===CTest Scripting===<br />
<br />
For an example of how CTest can run the whole testing process described in a<br />
single script, look at how CMake dashboards are created with the<br />
[http://www.cmake.org/HTML/Testing.html CTest -S script].<br />
<br />
==Conclusion==<br />
<br />
Performing tests on the project is a great software development practice and can result in significant improvement on the quality of the project. CTest provides a simple and reliable way of performing nightly, continuous, and experimental tests.<br />
<br />
More information about CTest can be found in<br />
[http://www.kitware.com/products/cmakebook.html Mastering CMake].<br />
<br />
{{CMake/Template/Footer}}</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Testing&diff=59242CDash:Testing2016-03-22T16:39:17Z<p>Zack: /* Checkout the CDash source code */</p>
<hr />
<div>CDash integrates a self-testing framework based on [http://www.simpletest.org Simple Test]. The self testing code is located in the ''CDash/testing'' directory.<br />
<br />
CDash testing requires the use of CMake and CTest. You can download the CMake suite of tools from [http://www.cmake.org/cmake/resources/software.html www.cmake.org]. CDash testing works much the same as any other CMake based project.<br />
<br />
= Checkout the CDash source code =<br />
<br />
See [[CDash:Installation#Downloading_CDash|Downloading CDash]] for instructions on obtaining a copy of the CDash source code from GitHub. During this step you should decide whether you want to test the latest release of CDash or the current development version.<br />
<br />
No matter which version of CDash you choose to test, make sure to check out the source code into your web server's htdocs folder.<br />
<br />
= Setup CDash for testing =<br />
<br />
== Create a build directory ==<br />
<br />
cd /path/to/CDashTesting<br />
mkdir build<br />
<br />
==Run CMake from the build directory ==<br />
<br />
cd build<br />
ccmake ..<br />
<br />
== Define CMake variables ==<br />
<br />
CDASH_DB_HOST<br />
CDASH_DB_LOGIN<br />
CDASH_DB_PASS<br />
CDASH_DB_TYPE<br />
*These four parameters tell CDash how to connect to your local database server.<br />
<br />
CDASH_SERVER<br />
*CDASH_SERVER should indicate how to connect to your local system via a web browser. This is typically the system's host name, or simply localhost.<br />
<br />
CDASH_USE_APACHE2<br />
*Setting this to ON will enable tests specific to the Apache web server.<br />
<br />
CDASH_USE_SELENIUM<br />
PHPUNIT_EXE<br />
*Setting these options will enable testing of javascript based functionality of CDash. Requires [http://seleniumhq.org/ selenium] and [http://www.phpunit.de/ PHPUnit]. More on this below.<br />
<br />
CMake_SOURCE_DIR<br />
*Point this to a local checkout of CMake source code if you'd like to import some tests from CMake into CDash. This will cause CDash to perform a more thorough end-to-end test of the CMake/CTest/CDash suite of tools.<br />
<br />
PHP_EXE<br />
*CDash testing requires a command-line version of PHP to be installed on the system.<br />
<br />
= Test CDash =<br />
<br />
This is as simple as entering your CDash build directory and running CTest<br />
cd /path/to/CDashTesting/build<br />
ctest -VV<br />
<br />
Note this will create '''CDashTesting/cdash/config.local.php''' and '''CDashTesting/testing/config.test.local.php''' files in your source tree, so svn will show them as ? files.<br />
<br />
'''For PostGreSQL, make sure you create an empty database named 'host' so that CDash can create the cdash4simpletest database'''<br />
<br />
= Writing Additional CDash Tests =<br />
<br />
If you add any new tests, please follow the structure of one of the existing ones.<br />
<br />
For example, at the top of each test_*.php file in the tests directory, you'll see something like this (example from test_banner.php):<br />
<source lang="php"><br />
<?php<br />
//<br />
// After including cdash_test_case.php, subsequent require_once calls are<br />
// relative to the top of the CDash source tree<br />
//<br />
require_once(dirname(__FILE__).'/cdash_test_case.php');<br />
<br />
require_once('cdash/common.php');<br />
require_once('cdash/pdo.php');<br />
require_once('models/banner.php');<br />
<br />
class BannerTestCase extends KWWebTestCase<br />
{<br />
function __construct()<br />
{<br />
parent::__construct();<br />
}<br />
<br />
function testBanner()<br />
{<br />
...<br />
}<br />
}<br />
?><br />
</source><br />
<br />
Please note the following:<br />
* do not use "include" -- use "require_once"<br />
* the first require_once uses dirname(__FILE__) meaning "same dir as this php file"<br />
* the first require_once includes the cdash_test_case.php file<br />
* subsequent require_once calls refer to files from the root of the CDash source tree (include path set properly by the cdash_test_case.php file)<br />
* the constructor of the test case is '''empty''' -- it just calls the parent -- all the common stuff that used to be in the individual test cases has now been refactored to the base class -- see kwtest/kw_web_tester.php if you need to add to that code<br />
<br />
<br />
* similarly for the selenium tests... except with cdash_selenium_test_case.php<br />
* setUp for the individual selenium test cases should simply call $this->browserSetUp (defined once in the parent class)<br />
<br />
= Advanced Topics =<br />
<br />
[[CDash:Testing/Coverage|Code coverage]]<br />
<br />
[[CDash:Testing/Selenium|Testing javascript functionality with Selenium]]<br />
<br />
[[CDash:Testing/Client Management|Client management]]<br />
<br />
[[CDash:Testing/Nightly|Setting up nightly Builds]]</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Installation&diff=59159CDash:Installation2016-02-24T13:20:24Z<p>Zack: /* Configuration */</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
CDash is a [http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29 LAMP] application, running on [http://www.apache.org/ Apache] using [http://www.php.net/ PHP] to access a [http://www.mysql.com/ MySQL] or [http://www.postgresql.org PostgreSQL] database.<br />
<br />
== System Requirements ==<br />
* Apache<br />
* SQL database<br />
** MySQL database (5.x and higher)<br />
** PostgreSQL database (8.3 and higher)<br />
* PHP (5.3 and higher)<br />
* XSL module for PHP<br />
* cURL module for PHP (for site statistics)<br />
* GD module for PHP (for regression tests)<br />
* MySQL or PostgreSQL module for PHP<br />
<br />
== Downloading CDash ==<br />
<br />
The '''current stable release of CDash is 2.2.3''' you can either download it as a zip archive<br />
* [http://www.cdash.org/wp-content/uploads/2014/11/CDash-2-2-3.zip CDash-2.2.3.zip]<br />
* or from the [https://github.com/Kitware/CDash.git GIT] repository 'release' branch:<br />
git clone https://github.com/Kitware/CDash.git<br />
<br />
=== GIT Development version ===<br />
<br />
CDash is available from the development [https://github.com/Kitware/CDash.git GIT] repository. Either extract the code into your web server tree, or another directory which will later be copied to the web server:<br />
<br />
cd /srv/www/htdocs<br />
git clone https://github.com/Kitware/CDash.git CDash<br />
git checkout release<br />
<br />
=== Previous versions of CDash ===<br />
* '''2.0''': [http://www.cdash.org/download/CDash-2.0.2.zip CDash-2.0.2.zip] or svn co https://www.kitware.com/svn/CDash/Release-2-0 CDash<br />
* '''1.8''': [http://www.cdash.org/download/CDash-1.8.2.zip CDash-1.8.2.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-8 CDash<br />
* '''1.6''': [http://www.cdash.org/download/CDash-1.6.4.zip CDash-1.6.4.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-6 CDash<br />
* '''1.4''': [http://www.cdash.org/download/CDash-1.4.1.zip CDash-1.4.1.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-4 CDash<br />
* '''1.2''': [http://www.cdash.org/download/CDash-1.2.1.zip CDash-1.2.1.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-2 CDash<br />
* '''1.0''': [http://www.cdash.org/download/CDash-1.0.zip CDash-1.0.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-0 CDash<br />
* '''0.8''': [http://www.cdash.org/download/CDash-0.8.zip CDash-0.8.zip] or svn co https://www.kitware.com/svn/CDash/Release-0-8 CDash<br />
<br />
== Configuration ==<br />
The system configuration is stored in <tt>.../CDash/config/config.php</tt>, however it's recommended to create a '''config.local.php''' in the same directory that contains only the variables you wish to change. Doing so will prevent any changes you make from being overwritten when CDash is upgraded and config.php is re-created.<br />
<br />
Please note that CDash will read the config.php file first, and then config.local.php. Any variables that are changed in config.local.php will take precedence.<br />
<br />
'''WARNING: If creating the config.local.php from config.php make sure you DELETE any text after the 'DO NOT EDIT AFTER THIS LINE' otherwise your configuration file will be referencing each other. Ideally config.local.php should contain ONLY the variables you have modified.'''<br />
<br />
=== SQL Database ===<br />
If you are running the MySQL database on the same server as the Apache web server the defaults should work with no changes:<br />
<br />
// Hostname of the MySQL database <br />
$CDASH_DB_HOST = 'localhost';<br />
<br />
// Login for MySQL database access<br />
$CDASH_DB_LOGIN = 'root';<br />
<br />
// Password for MySQL database access<br />
$CDASH_DB_PASS = '';<br />
<br />
// Name of the MySQL database<br />
$CDASH_DB_NAME = 'cdash';<br />
<br />
If your MySQL (>= v5) server is set to ''strict'' mode, CDash will not work! The reason is that in strict mode, integer columns will not accept the empty string "" as 0 (zero). "" is what the CDash forms currently return for unchecked checkboxes. You'll have to remove the setting <code>STRICT_TRANS_TABLES</code> from the global sql mode parameter. You can query the current setting like this: <code>SELECT @@global.sql_mode;</code><br />
<br />
For more information and more specific settings see the [http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html MySQL sql mode documentation].<br />
<br />
If you have just installed MySQL don't forget to start it:<br />
<br />
rcmysql start<br />
<br />
=== Ubuntu Dependencies ===<br />
<br />
Here is a list of packages required on Ubuntu 12.04:<br />
sudo apt-get install apache2 mysql-server php5 php5-mysql php5-xsl php5-curl php5-gd<br />
<br />
Make sure your apache2 configuration pulls in libapache2-mod-php5 and NOT libapache2-mod-php5filter as this will cause PUT requests to fail and you will not be able to submit anything to your dashboard.<br />
<br />
=== PostgreSQL Database ===<br />
If you are running the PostGreSQL database read the previous MySQL section about configuring the database access.<br />
You will also need to tell CDash to use PostgreSQL driver:<br />
<br />
// Database type (empty means mysql)<br />
$CDASH_DB_TYPE = 'pgsql';<br />
<br />
Here is list of packages necessary on ubuntu<br />
<br />
sudo apt-get install php-pear<br />
sudo pecl install pdo <br />
sudo apt-get install php5-dev<br />
sudo pecl install pdo<br />
sudo pecl install pdo_pgsql<br />
<br />
=== Email ===<br />
You should probably edit the default email addresses:<br />
<br />
// Default from email<br />
$CDASH_EMAILADMIN = 'admin@cdash.org';<br />
$CDASH_EMAIL_FROM = 'admin@cdash.org';<br />
$CDASH_EMAIL_REPLY = 'noreply@cdash.org';<br />
<br />
=== LDAP ===<br />
As of CDash 1.4, authentication to an LDAP database can be performed.<br />
This requires the ldap module for php. The variables to define:<br />
<br />
$CDASH_USE_LDAP='1'; // turn this to 1 for LDAP authentication<br />
$CDASH_LDAP_HOSTNAME='localhost'; // hostname of the LDAP server<br />
$CDASH_LDAP_BASEDN='ou=people,dc=organization,dc=com'; // Base DN<br />
$CDASH_LDAP_PROTOCOL_VERSION='3'; // LDAP protocol version<br />
<br />
Note that the administrator (first user to install CDash) is always stored in the database.<br />
<br />
=== Backup directory ===<br />
The backup/log directory by default is placed in <tt>.../CDash/backup</tt>, this must be made writable by the account that you run Apache under (typically wwwrun or www-data), you can move the directory via:<br />
<br />
// Backup directory<br />
$CDASH_BACKUP_DIRECTORY = 'backup';<br />
<br />
=== Removing registration ===<br />
<br />
The registration can be disabled globally from CDash.<br />
<br />
// Doesn't provide registration links<br />
$CDASH_NO_REGISTRATION = '1';<br />
<br />
=== Cookie expiration time ===<br />
As of CDash 1.2 the login cookie time can be set in the config.php. The default is set to 1 hour.<br />
<br />
// Duration of the cookie session (in seconds)<br />
$CDASH_COOKIE_EXPIRATION_TIME = '3600'<br />
<br />
This allows the browser to remember the login/password of the user.<br />
'''On a public computer it is recommended to always log out'''<br />
<br />
=== Google Maps ===<br />
'''As of February of 2014, these links no longer work and I couldn't figure out where to point them. A workaround is just to insert the empty string instead of a key.'''<br />
<br />
CDash can use [http://code.google.com/apis/maps/ Google maps] to display the location of submission sites. CDash comes with Kitware's key code which won't work for your site's URL. Every site that uses Google maps requires its own [http://code.google.com/apis/maps/signup.html Google maps key] which you should obtain from Google (it's free), use this style URL when applying for a key:<br />
<br />
http://mysite.org/CDash<br />
<br />
Paste your newly obtained key in place of Kitware's:<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['localhost'] = 'paste key here';<br />
<br />
You may also add multiple keys (wighout the http://) and they will get matched by ''$_SERVER['HTTP_HOST']''<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['www.vtk.org'] = 'paste key here';<br />
$CDASH_GOOGLE_MAP_API_KEY['www.cdash.org'] = 'paste another key here';<br />
<br />
If your submission machines use private IP addresses you can add default location information, e.g. for all machines in the 192.x.x.x network (use http://maps.google.com to obtain your location):<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "192.*","latitude" => "42.6612","longitude" => "-73.7689");<br />
<br />
Sometimes site location are misreported (e.g. the ISP's location is used), you can override these:<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "76.65.240.*","latitude" => "43.667","longitude" => "-79.417");<br />
<br />
You'll probably want to replace the defaults that are present.<br />
<br />
Note: If you use the 192.x.x.x address range ensure you update the location information before submitting from any machines in this subnet, as the location is stored in the database on first submission from a site (but can be subsequently edited from the admin web pages).<br />
<br />
=== Google Analytics ===<br />
CDash can use [http://www.google.com/analytics/ Google analytics] to monitor site usage. CDash's main <tt>index.php</tt> contains a reference to a default Kitware Google analytics code:<br />
<br />
$CDASH_DEFAULT_GOOGLE_ANALYTICS='UA-701656-6';<br />
<br />
When you configure each project you will have the opportunity to set a per-project Google analytics code.<br />
See [[CDash:Administration#Adding_Google_Analytics | Adding GoogleAnalytics]] for more information.<br />
<br />
== RSS directory ==<br />
Ensure that the <tt>.../CDash/rss</tt> (and <tt>.../CDash/backup</tt>) directory is writable by the user account that Apache runs under (typically wwwrun).<br />
<br />
== Apache ==<br />
Ensure that the <tt>/srv/www/htdocs/CDash</tt> tree is accessible, you may have to add the following to your <tt>/etc/apache2/conf.d</tt> directory:<br />
<br />
<tt>cdash.conf</tt>:<br />
<br />
<Directory /srv/www/htdocs/CDash><br />
Order allow,deny<br />
Allow from all<br />
</Directory><br />
<br />
You may need to restart Apache:<br />
<br />
rcapache2 restart<br />
<br />
or<br />
<br />
service apache2 restart<br />
<br />
== Creating database ==<br />
Access your website to start the install process:<br />
<br />
http://mywebsite.com/CDash<br />
<br />
The first step will confirm the host login and password for the database, the default admin account and password are also displayed, make a note of these as you'll need them later, as its easy to skip past this step missing them (you can always find them in <tt>.../CDash/sql/cdashdata.sql</tt>).<br />
<br />
== Production Mode ==<br />
In order to disable the installation script, especially when the database is not accessible. You should turn on the option:<br />
<br />
$CDASH_PRODUCTION_MODE = true;<br />
<br />
in your config.local.php<br />
<br />
== GIT support ==<br />
CDash 1.7 and higher are supporting GIT for daily update and also support the main GIT viewer (github, gittorious, etc...). In order to fetch the daily update, a bare (--bare) repository should be created for each project on the CDash server. Every night, CDash will fetch or clone the repository and parse the result of the 'git whatchanged' command. In order to allow git support.<br />
<br />
* Create a 'git' directory and give the web server full write access to it<br />
* Edit your config.local.php and add these values corresponding to your system configuration<br />
<br />
// Define the git command<br />
$CDASH_GIT_COMMAND = 'git';<br />
// The default git directory where the bare repositories should be created<br />
$CDASH_DEFAULT_GIT_DIRECTORY = 'git';<br />
<br />
<br />
== See Also ==<br />
[http://www.cdash.org/cdash/resources/software.html The CDash web site's brief install instructions]</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Installation&diff=59158CDash:Installation2016-02-24T13:17:30Z<p>Zack: /* GIT Development version */</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
CDash is a [http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29 LAMP] application, running on [http://www.apache.org/ Apache] using [http://www.php.net/ PHP] to access a [http://www.mysql.com/ MySQL] or [http://www.postgresql.org PostgreSQL] database.<br />
<br />
== System Requirements ==<br />
* Apache<br />
* SQL database<br />
** MySQL database (5.x and higher)<br />
** PostgreSQL database (8.3 and higher)<br />
* PHP (5.3 and higher)<br />
* XSL module for PHP<br />
* cURL module for PHP (for site statistics)<br />
* GD module for PHP (for regression tests)<br />
* MySQL or PostgreSQL module for PHP<br />
<br />
== Downloading CDash ==<br />
<br />
The '''current stable release of CDash is 2.2.3''' you can either download it as a zip archive<br />
* [http://www.cdash.org/wp-content/uploads/2014/11/CDash-2-2-3.zip CDash-2.2.3.zip]<br />
* or from the [https://github.com/Kitware/CDash.git GIT] repository 'release' branch:<br />
git clone https://github.com/Kitware/CDash.git<br />
<br />
=== GIT Development version ===<br />
<br />
CDash is available from the development [https://github.com/Kitware/CDash.git GIT] repository. Either extract the code into your web server tree, or another directory which will later be copied to the web server:<br />
<br />
cd /srv/www/htdocs<br />
git clone https://github.com/Kitware/CDash.git CDash<br />
git checkout release<br />
<br />
=== Previous versions of CDash ===<br />
* '''2.0''': [http://www.cdash.org/download/CDash-2.0.2.zip CDash-2.0.2.zip] or svn co https://www.kitware.com/svn/CDash/Release-2-0 CDash<br />
* '''1.8''': [http://www.cdash.org/download/CDash-1.8.2.zip CDash-1.8.2.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-8 CDash<br />
* '''1.6''': [http://www.cdash.org/download/CDash-1.6.4.zip CDash-1.6.4.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-6 CDash<br />
* '''1.4''': [http://www.cdash.org/download/CDash-1.4.1.zip CDash-1.4.1.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-4 CDash<br />
* '''1.2''': [http://www.cdash.org/download/CDash-1.2.1.zip CDash-1.2.1.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-2 CDash<br />
* '''1.0''': [http://www.cdash.org/download/CDash-1.0.zip CDash-1.0.zip] or svn co https://www.kitware.com/svn/CDash/Release-1-0 CDash<br />
* '''0.8''': [http://www.cdash.org/download/CDash-0.8.zip CDash-0.8.zip] or svn co https://www.kitware.com/svn/CDash/Release-0-8 CDash<br />
<br />
== Configuration ==<br />
The system configuration is stored in <tt>.../CDash/cdash/config.php</tt>, however it's recommended to create a '''config.local.php''' in the same directory and overwrite the necessary variables using your favorite ASCII editor. Doing so will prevent any changes you make from being overwritten when CDash is upgraded and config.php is re-created.<br />
<br />
Please note that CDash will read the config.php file first, and then config.local.php. Any variables that are changed in config.local.php will take precedence.<br />
<br />
'''WARNING: If creating the config.local.php from config.php make sure you DELETE any text after the 'DO NOT EDIT AFTER THIS LINE' otherwise your configuration file will be referencing each other.'''<br />
<br />
=== SQL Database ===<br />
If you are running the MySQL database on the same server as the Apache web server the defaults should work with no changes:<br />
<br />
// Hostname of the MySQL database <br />
$CDASH_DB_HOST = 'localhost';<br />
<br />
// Login for MySQL database access<br />
$CDASH_DB_LOGIN = 'root';<br />
<br />
// Password for MySQL database access<br />
$CDASH_DB_PASS = '';<br />
<br />
// Name of the MySQL database<br />
$CDASH_DB_NAME = 'cdash';<br />
<br />
If your MySQL (>= v5) server is set to ''strict'' mode, CDash will not work! The reason is that in strict mode, integer columns will not accept the empty string "" as 0 (zero). "" is what the CDash forms currently return for unchecked checkboxes. You'll have to remove the setting <code>STRICT_TRANS_TABLES</code> from the global sql mode parameter. You can query the current setting like this: <code>SELECT @@global.sql_mode;</code><br />
<br />
For more information and more specific settings see the [http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html MySQL sql mode documentation].<br />
<br />
If you have just installed MySQL don't forget to start it:<br />
<br />
rcmysql start<br />
<br />
=== Ubuntu Dependencies ===<br />
<br />
Here is a list of packages required on Ubuntu 12.04:<br />
sudo apt-get install apache2 mysql-server php5 php5-mysql php5-xsl php5-curl php5-gd<br />
<br />
Make sure your apache2 configuration pulls in libapache2-mod-php5 and NOT libapache2-mod-php5filter as this will cause PUT requests to fail and you will not be able to submit anything to your dashboard.<br />
<br />
=== PostgreSQL Database ===<br />
If you are running the PostGreSQL database read the previous MySQL section about configuring the database access.<br />
You will also need to tell CDash to use PostgreSQL driver:<br />
<br />
// Database type (empty means mysql)<br />
$CDASH_DB_TYPE = 'pgsql';<br />
<br />
Here is list of packages necessary on ubuntu<br />
<br />
sudo apt-get install php-pear<br />
sudo pecl install pdo <br />
sudo apt-get install php5-dev<br />
sudo pecl install pdo<br />
sudo pecl install pdo_pgsql<br />
<br />
=== Email ===<br />
You should probably edit the default email addresses:<br />
<br />
// Default from email<br />
$CDASH_EMAILADMIN = 'admin@cdash.org';<br />
$CDASH_EMAIL_FROM = 'admin@cdash.org';<br />
$CDASH_EMAIL_REPLY = 'noreply@cdash.org';<br />
<br />
=== LDAP ===<br />
As of CDash 1.4, authentication to an LDAP database can be performed.<br />
This requires the ldap module for php. The variables to define:<br />
<br />
$CDASH_USE_LDAP='1'; // turn this to 1 for LDAP authentication<br />
$CDASH_LDAP_HOSTNAME='localhost'; // hostname of the LDAP server<br />
$CDASH_LDAP_BASEDN='ou=people,dc=organization,dc=com'; // Base DN<br />
$CDASH_LDAP_PROTOCOL_VERSION='3'; // LDAP protocol version<br />
<br />
Note that the administrator (first user to install CDash) is always stored in the database.<br />
<br />
=== Backup directory ===<br />
The backup/log directory by default is placed in <tt>.../CDash/backup</tt>, this must be made writable by the account that you run Apache under (typically wwwrun or www-data), you can move the directory via:<br />
<br />
// Backup directory<br />
$CDASH_BACKUP_DIRECTORY = 'backup';<br />
<br />
=== Removing registration ===<br />
<br />
The registration can be disabled globally from CDash.<br />
<br />
// Doesn't provide registration links<br />
$CDASH_NO_REGISTRATION = '1';<br />
<br />
=== Cookie expiration time ===<br />
As of CDash 1.2 the login cookie time can be set in the config.php. The default is set to 1 hour.<br />
<br />
// Duration of the cookie session (in seconds)<br />
$CDASH_COOKIE_EXPIRATION_TIME = '3600'<br />
<br />
This allows the browser to remember the login/password of the user.<br />
'''On a public computer it is recommended to always log out'''<br />
<br />
=== Google Maps ===<br />
'''As of February of 2014, these links no longer work and I couldn't figure out where to point them. A workaround is just to insert the empty string instead of a key.'''<br />
<br />
CDash can use [http://code.google.com/apis/maps/ Google maps] to display the location of submission sites. CDash comes with Kitware's key code which won't work for your site's URL. Every site that uses Google maps requires its own [http://code.google.com/apis/maps/signup.html Google maps key] which you should obtain from Google (it's free), use this style URL when applying for a key:<br />
<br />
http://mysite.org/CDash<br />
<br />
Paste your newly obtained key in place of Kitware's:<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['localhost'] = 'paste key here';<br />
<br />
You may also add multiple keys (wighout the http://) and they will get matched by ''$_SERVER['HTTP_HOST']''<br />
<br />
$CDASH_GOOGLE_MAP_API_KEY['www.vtk.org'] = 'paste key here';<br />
$CDASH_GOOGLE_MAP_API_KEY['www.cdash.org'] = 'paste another key here';<br />
<br />
If your submission machines use private IP addresses you can add default location information, e.g. for all machines in the 192.x.x.x network (use http://maps.google.com to obtain your location):<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "192.*","latitude" => "42.6612","longitude" => "-73.7689");<br />
<br />
Sometimes site location are misreported (e.g. the ISP's location is used), you can override these:<br />
<br />
$CDASH_DEFAULT_IP_LOCATIONS[] = array("IP" => "76.65.240.*","latitude" => "43.667","longitude" => "-79.417");<br />
<br />
You'll probably want to replace the defaults that are present.<br />
<br />
Note: If you use the 192.x.x.x address range ensure you update the location information before submitting from any machines in this subnet, as the location is stored in the database on first submission from a site (but can be subsequently edited from the admin web pages).<br />
<br />
=== Google Analytics ===<br />
CDash can use [http://www.google.com/analytics/ Google analytics] to monitor site usage. CDash's main <tt>index.php</tt> contains a reference to a default Kitware Google analytics code:<br />
<br />
$CDASH_DEFAULT_GOOGLE_ANALYTICS='UA-701656-6';<br />
<br />
When you configure each project you will have the opportunity to set a per-project Google analytics code.<br />
See [[CDash:Administration#Adding_Google_Analytics | Adding GoogleAnalytics]] for more information.<br />
<br />
== RSS directory ==<br />
Ensure that the <tt>.../CDash/rss</tt> (and <tt>.../CDash/backup</tt>) directory is writable by the user account that Apache runs under (typically wwwrun).<br />
<br />
== Apache ==<br />
Ensure that the <tt>/srv/www/htdocs/CDash</tt> tree is accessible, you may have to add the following to your <tt>/etc/apache2/conf.d</tt> directory:<br />
<br />
<tt>cdash.conf</tt>:<br />
<br />
<Directory /srv/www/htdocs/CDash><br />
Order allow,deny<br />
Allow from all<br />
</Directory><br />
<br />
You may need to restart Apache:<br />
<br />
rcapache2 restart<br />
<br />
or<br />
<br />
service apache2 restart<br />
<br />
== Creating database ==<br />
Access your website to start the install process:<br />
<br />
http://mywebsite.com/CDash<br />
<br />
The first step will confirm the host login and password for the database, the default admin account and password are also displayed, make a note of these as you'll need them later, as its easy to skip past this step missing them (you can always find them in <tt>.../CDash/sql/cdashdata.sql</tt>).<br />
<br />
== Production Mode ==<br />
In order to disable the installation script, especially when the database is not accessible. You should turn on the option:<br />
<br />
$CDASH_PRODUCTION_MODE = true;<br />
<br />
in your config.local.php<br />
<br />
== GIT support ==<br />
CDash 1.7 and higher are supporting GIT for daily update and also support the main GIT viewer (github, gittorious, etc...). In order to fetch the daily update, a bare (--bare) repository should be created for each project on the CDash server. Every night, CDash will fetch or clone the repository and parse the result of the 'git whatchanged' command. In order to allow git support.<br />
<br />
* Create a 'git' directory and give the web server full write access to it<br />
* Edit your config.local.php and add these values corresponding to your system configuration<br />
<br />
// Define the git command<br />
$CDASH_GIT_COMMAND = 'git';<br />
// The default git directory where the bare repositories should be created<br />
$CDASH_DEFAULT_GIT_DIRECTORY = 'git';<br />
<br />
<br />
== See Also ==<br />
[http://www.cdash.org/cdash/resources/software.html The CDash web site's brief install instructions]</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Upgrade&diff=58598CDash:Upgrade2015-12-15T18:01:50Z<p>Zack: </p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
This page explains how to upgrade CDash. CDash upgrade mechanism allows users to upgrade CDash at any point in time, even if they are using the current git development of CDash.<br />
<br />
= Upgrading CDash =<br />
<br />
# It is recommended that you [[CDash:Upgrade#Backing_up_CDash | backup the CDash database]].<br />
# Backup your configuration file: config.php or config.local.php<br />
# Replace your current CDash directory with the latest version. If your instance of CDash was cloned from git, a <code>git pull</code> should suffice.<br />
#* [[CDash:Upgrade#Repository_Reorganization_Aftermath | Follow these instructions]] if you just ran <code>git pull</code> and lots of files were moved to a new directory named "public".<br />
# Make sure your web server still has permission to read CDash's files. On Linux you might need to use <code>chown</code> or <code>chmod</code> if the permissions changed when you updated CDash.<br />
# [https://getcomposer.org/download/ Download composer] (if you haven't already) and run <code>php composer.phar install --no-dev --optimize-autoloader</code>.<br />
# Run <code>npm install</code><br />
# Run <code>node_modules/.bin/gulp</code><br />
# Restore the configuration parameters: the config.php file may change from one revision to the other, make sure you are not replacing the config.php file but are actually replacing the parameters inside the file. For this reason, we recommend that you maintain a config.local.php file that contains ONLY your modified settings.<br />
# Navigate your browser to your CDash page. (eg. http://localhost/CDash) <br />
## Note the version number on the main page. It should correctly match the new version that you are upgrading to.<br />
## The following message may appear: "The current database shema doesn't match the version of CDash you are running, upgrade your database structure in the Administration panel of CDash." This is a helpful reminder to perform the following steps:<br />
#Login to CDash as administrator. <br />
#In the ‘Administration’ section, click on ‘[CDash Maintenance]’<br />
#Click on ‘Upgrade CDash’: This process might take some time depending on the size of your database, '''do not close your browser'''.<br />
##Progress messages may appear while CDash performs the upgrade.<br />
##If the upgrade process takes too long you can check in the backup/cdash.log file to see where the process is taking a long time and/or failing. For long running upgrades, you could also [[CDash:Upgrade#Checking_Database_Activity | check your database activity]] to make sure that the upgrade process hasn't stalled out.<br />
##It has been reporting that on some systems the spinning icon never turns into a checkmark. Please check the cdash.log for the "Upgrade done." string if you feel that the upgrade takes too long.<br />
##'''CDash 1.6''': new indexes and fields for the database have been added. The indexes and fields touch the test table and might take a long time to upgrade, just be patient and check the backup/cdash.log file to see the current progress of the update. On a 80GB database the upgrade took about 4 hours.<br />
# '''Note:''' Some web browsers are having issue when upgrading (some javascript variables not passed correctly), in that case you can perform individual updates:<br />
<br />
http://yourURLtoCDash/backwardCompatibilityTools.php?upgrade-2-2=1<br />
<br />
= Backing up CDash =<br />
<br />
CDash stores all the information (except logs) in the database, so it's important to backup your database before any CDash upgrade.<br />
<br />
== MySQL ==<br />
There are a couple a ways to backup a MySQL database. The easiest way is to use the [http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html mysqldump] command.<br />
<br />
Example to backup the '''cdash''' database:<br />
mysqldump -r cdashbackup.sql cdash<br />
<br />
If you are using exclusively MyISAM tables you can copy the CDash directory in your MySQL data directory. Note that you need to shutdown the MySQL before doing the copy since, no file can be touched during the copy.<br />
<br />
== PostGreSQL ==<br />
Similarly to MySQL, PostGreSQL has a [http://www.postgresql.org/docs/8.0/interactive/backup.html pg_dump] utility.<br />
<br />
Example to backup the '''cdash''' database:<br />
pg_dump -U postgreSQLuser cdash > cdashbackup.sql<br />
<br />
= Checking Database Activity =<br />
== MySQL ==<br />
From a mysql prompt:<br />
SHOW PROCESSLIST;<br />
== PostGreSQL ==<br />
From a psql prompt: <br />
SELECT * FROM pg_stat_activity;<br />
<br />
= Repository Reorganization Aftermath =<br />
In November, 2015 we reorganized the CDash repository. All of the files meant to be accessed by a web browser were moved under the <code>public</code> directory. This improves the security of CDash by making sure that we aren't inadvertently exposing something private to the outside world.<br />
<br />
Here are some steps you should take if your CDash upgrade just took your across this threshold.<br />
* Change what directory is exposed to the web. The easiest way to do this is to create a symbolic link in your DocumentRoot (typically <code>/var/www</code> or similar) that points to <code>/path/to/CDash/public</code>.<br />
* Move your <code>config.local.php</code> file (if you're using one) from <code>cdash/</code> to <code>config/</code><br />
* Check your config file for outdated values. We recommend that you maintain a <code>config.local.php</code> file that contains ONLY your changes. If you follow this approach then you will automatically be updated when we change the default value in <code>config.php</code>. Here are some changed values that might trip you up if you aren't doing this:<br />
** <code>$CDASH_CSS_FILE</code> should now be <code>css/cdash.css</code> (or similar)<br />
** Make sure <code>$CDASH_BACKUP_DIRECTORY</code> is defined relative to <code>$CDASH_ROOT_DIR</code>.<br />
** Make sure that any paths to your DocumentRoot (typically <code>/var/www</code>) in this file are also updated (if necessary).<br />
<br />
<br />
<br />
= Change logs =<br />
<br />
== CDash 2.2 ==<br />
<br />
=== New features ===<br />
*0013753: JUnit support <br />
*0013752: Support for nunit tests <br />
*0014896: Adding log level <br />
*0010084: Site Temporarily Out of Order <br />
*0014517: Add support for P4Web (Perforce Web Client)<br />
*Overall better PostGreSQL compatbility (thanks to Igor Murzov)<br />
*Added feed<br />
<br />
=== Bugs fixed (80) ===<br />
*0014906: Fix schedule to build association when handling submissions synchronously <br />
*0014717: Fix SQL query quoting issue introduced in r3432 <br />
*0014683: Use correct variable to get db type <br />
*0014682: Fix PHP undefined constant usage warning<br />
*0014679: Properly check if specified project exists <br />
*0014678: Drop weird copy'n'pasted comments from api/* files <br />
*0014681: Fix typo in "feed" table definition<br />
*0013400: Deleting all SubProjects does not remove the SubProjects section <br />
*0013937: CDash does not filter warnings when requesting difference to previous build <br />
*0014160: Deleting a group causes all builds in that group to disappear <br />
*0014638: Fix a typo in the coverage viewer <br />
*0014665: Generate xhtml to make the markdown standard compliant <br />
*0014664: Add menu to viewNotes page <br />
*0012989: Uninformative log message occurs a couple times a night on the CMake dashboard <br />
*0013654: Failed to update from "expected" to "non-expected" when there are no build <br />
*0014639: Fix undefined variable usage in test viewer<br />
*0014560: Overhaul configure warning extraction algorithm <br />
*0014589: Fix a PostgreSQL incompatibility<br />
*0014588: Fix undefined variable usage in changes viewer <br />
*0014556: ENH: Check that git directory is writable <br />
*0014551: CDash gives out of memory errors when attempting to XSLT transform large XML files <br />
*0014537: Fix a minor PostgreSQL incompatibility in test failure graph viewer <br />
*0014531: Don't hardcode coverage threshold, use the one from the project settings <br />
*0014530: Display correct configure warnings number on build summary page<br />
*0014525: Daily Updates for Perforce reports Revision and Prior Revision as 0 <br />
*0014524: The path to the P4 utility is not quoted (reported by Igor Murzov) <br />
*0014523: Drop remnants of backup page that was removed in r2599 <br />
*0014518: Add Perforce support to Daily Updates <br />
*0014346: Fix a couple of typos in file viewer <br />
*0014344: Cosmetics: Simplify some if conditions <br />
*0014343: Drop incorrect & pointless query on client libraries info update <br />
*0014513: Fix some html markdown issues <br />
*0014480: Fix seeming logout in file viewer <br />
*0014496: DOxygen menu should be renamed <br />
*0014478: Don't display errors when project gets unselected on Edit Project page <br />
*0014477: Drop unnecessary MySql-style quotes from SQL queries<br />
*0014469: Fix broken markdown on registration page <br />
*0014451: clientjobschedule.php doesn't encode project name before adding to submit URL <br />
*0014423: Drop left-over code <br />
*0014413: Fix grammar in coverage manager <br />
*0014412: Handle '0 builds' and '0 failed tests' cases properly<br />
*0014351: Fix lines of code calculation in the coverage viewer <br />
*0014350: Set Append property to false in upload xml handler as files are not appendable <br />
*0014189: dynamic analysis results not decoded <br />
*0012368: CDash's build results html should use monospace font for 'standard error' output <br />
*0014364: Add missing dot which prevented job id to be set in client script <br />
*0014374: Properly fetch result of SQL query on coverage info removal <br />
*0014375: Fix incorrect string quoting in SQL query in coveragefile2user model <br />
*0014341: Fix "user" table/function confusion <br />
*0014340: Fix undefined variable usage in sendemail <br />
*0010455: Show graph for <NamedMeasurement> <br />
*0013782: inconsistent last submission time for project and subprojects in the project dashboard <br />
*0013781: typo in manageBuildGroup.php <br />
*0013751: Error page <br />
*0013577: User Enumeration Vulnerability <br />
*0013491: CDash banner does not escape strings, potential SQL injection <br />
*0013256: cdash viewCoverage.php errors with new ajax interface <br />
*0013041: CDash 2 is still reporting wrong summary info for clock speed and RAM <br />
*0014621: Broken Filter Hyperlinks when enabling and then disabling Auto-refresh <br />
*0013943: Backup.php missing <br />
*0013428: Unknown column 'buildid' when running "Cleanup database" <br />
*0014514: svn log not updating with https:// and self signed certificate <br />
*0013079: Test attachment links broken when a test fails <br />
*0012994: Sorting by "Build Name" column doesn't work right when builds have OS icons <br />
*0012993: Times with milliseconds in them appear to be reported incorrectly <br />
*0012990: Strange formatting, and missing total test timing in "Build Time" tooltip <br />
*0012988: Column sort does not work for some columns in Coverage and Dynamic Analysis groups <br />
*0012985: "Show Build History" link does not show any builds <br />
*0012980: Last activity cannot be sorted on first page <br />
*0012978: Make FreeBSD a first class OS <br />
*0012950: login-based SQL injection <br />
*0012937: [CMake] Broken 'headerlogo' link if 'Home URL' is not set <br />
*0012949: CDash remove builds automatically even if $CDASH_AUTOREMOVE_BUILDS is not set <br />
*0012938: Unable to persitently change "Enable" flag in CDash Schedule Build <br />
*0013432: Registration Key URL in e-mail has one char to much at the end <br />
*0012984: CDash generated RSS produces date with 2 digit years; 4 digits preferred <br />
*0012948: Update data count misreported <br />
<br />
== CDash 2.0 ==<br />
<br />
=== New features ===<br />
<br />
* New and Simplified layout<br />
* Better management of asynchronous submission<br />
* Support for PostGreSQL 9<br />
* Improved security<br />
* Support for log rotation<br />
* Better support for new repository browsers<br />
* Improved users administration<br />
* $CDASH_WARN_ABOUT_UNREGISTERED_COMMITTERS option is now OFF by default to avoid flooding the log files. This option can still be overridden in the config.local.php<br />
<br />
=== Bugs fixed ===<br />
* [http://public.kitware.com/Bug/view.php?id=12555 0012555] Asynchronous processing of submission fails with drop site of the form: slicer4.cdash.org <br />
* [http://public.kitware.com/Bug/view.php?id=11809 0011809] "My Build Schedules" might benefit from an extra Comments or Description column <br />
* [http://public.kitware.com/Bug/view.php?id=12557 0012557] Option to hide source code in the coverage webpage <br />
* [http://public.kitware.com/Bug/view.php?id=11804 0011804] "My Build Schedules" list limited to 5 jobs; rest is inaccessible <br />
* [http://public.kitware.com/Bug/view.php?id=11521 0011521] PHP warning about MYSQL_BOTH <br />
* [http://public.kitware.com/Bug/view.php?id=12913 0012913] CDash fails to open update.xml file if CTEST_SITE variable contains a slash character <br />
* [http://public.kitware.com/Bug/view.php?id=10817 0010817] DynamicAnalysis is "green" and "0" even though all tests failed when run under memcheck <br />
* [http://public.kitware.com/Bug/view.php?id=12884 0012884] Adding "Subscribe" to the dashboard page <br />
* [http://public.kitware.com/Bug/view.php?id=12907 0012907] Delete user incomplete / blocks creation of new user with equal name <br />
* [http://public.kitware.com/Bug/view.php?id=12899 0012899] cdash 1.8.2 emails do not include header that indicates text encoding of content <br />
* [http://public.kitware.com/Bug/view.php?id=12885 0012885] When subscribing, "Project" combobox doesn't show current project <br />
* [http://public.kitware.com/Bug/view.php?id=10648 0010648] By default how to allow registered user to create new projects <br />
* [http://public.kitware.com/Bug/view.php?id=10742 0010742] CDash does not check for valid email <br />
* [http://public.kitware.com/Bug/view.php?id=10408 0010408] Time based reload for project dashboard page <br />
* [http://public.kitware.com/Bug/view.php?id=11939 0011939] CDASH cannot display Attached Files <br />
* [http://public.kitware.com/Bug/view.php?id=12314 0012314] description of 'test standard deviation' and 'test standard deviation threshold' is wrong <br />
* [http://public.kitware.com/Bug/view.php?id=10748 0010748] Log rotation <br />
* [http://public.kitware.com/Bug/view.php?id=12310 0012310] 'test time standard deviation' should be renamed <br />
* [http://public.kitware.com/Bug/view.php?id=10974 0010974] Build failures not highlighted <br />
* [http://public.kitware.com/Bug/view.php?id=10822 0010822] compute_update_statistics is undefined <br />
* [http://public.kitware.com/Bug/view.php?id=11799 0011799] "My Build Schedules" lists the same project name for all jobs <br />
* [http://public.kitware.com/Bug/view.php?id=11711 0011711] cdash/createRSS.php creates invalid RSS output <br />
* [http://public.kitware.com/Bug/view.php?id=10051 0010051] Wording of "Email preference" unclear <br />
* [http://public.kitware.com/Bug/view.php?id=11800 0011800] MySQL schema for client_jobschedule does not allow repeattime above 9.99 in newer MySQL versions <br />
* [http://public.kitware.com/Bug/view.php?id=12218 0012218] Update command fails to parse if it contains XML escaped quotes <br />
* [http://public.kitware.com/Bug/view.php?id=11201 0011201] Move the coverage legend on the left <br />
* [http://public.kitware.com/Bug/view.php?id=12368 0012368] CDash's build results html should use monospace font for 'standard error' output <br />
* [http://public.kitware.com/Bug/view.php?id=12164 0012164] CDash 1.6.4 cannot accept the special character <br />
* [http://public.kitware.com/Bug/view.php?id=12395 0012395] cdash login page 'remember me' checkbox does not work when using LDAP authentication <br />
* [http://public.kitware.com/Bug/view.php?id=12416 0012416] Error logs are never cleared <br />
* [http://public.kitware.com/Bug/view.php?id=09663 0009663] [CTest] CTest/CDash OS version & compiler information is lacking on Mac OS X <br />
* [http://public.kitware.com/Bug/view.php?id=07726 0007726] admin should be able to see/set other users settings <br />
* [http://public.kitware.com/Bug/view.php?id=10289 0010289] Patch for the support of hgweb navigation (mercurial) <br />
* [http://public.kitware.com/Bug/view.php?id=11409 0011409] viewErrorLog.php page does not show anything if buildid= *and* date= are given <br />
* [http://public.kitware.com/Bug/view.php?id=12341 0012341] Test names not escaped <br />
* [http://public.kitware.com/Bug/view.php?id=12360 0012360] [CTest] CDash colors for build graphs have poor contrast <br />
* [http://public.kitware.com/Bug/view.php?id=12384 0012384] [PATCH] Add support for the Redmine repository browser <br />
* [http://public.kitware.com/Bug/view.php?id=11737 0011737] CDash submission fails due to wrong parsing of geolocation info <br />
* [http://public.kitware.com/Bug/view.php?id=12585 0012585] Use "(empty)" instead of "" when site and build names come in empty from ctest <br />
* [http://public.kitware.com/Bug/view.php?id=10684 0010684] [CTest] ctest not reporting submission failures <br />
* [http://public.kitware.com/Bug/view.php?id=12396 0012396] [CTest] CDash should indicate the git hash of builds <br />
* [http://public.kitware.com/Bug/view.php?id=11608 0011608] Support new style of gitweb url <br />
* [http://public.kitware.com/Bug/view.php?id=11920 0011920] [CMake] Current svn -> cannot create project + header errors<br />
* [http://public.kitware.com/Bug/view.php?id=12638 0012638] Display Example URL of Reposiroty Viewer <br />
* [http://public.kitware.com/Bug/view.php?id=12631 0012631] Admin can't change user settings -- especially can't edit repository credentials <br />
* [http://public.kitware.com/Bug/view.php?id=10819 0010819] Make one more category for coverage files : "complete" or "perfect" <br />
* [http://public.kitware.com/Bug/view.php?id=12560 0012560] Support for PgSQL 9.x <br />
* [http://public.kitware.com/Bug/view.php?id=12559 0012559] Add database port in configuration file <br />
* [http://public.kitware.com/Bug/view.php?id=12403 0012403] CDash should report the time since reported builds <br />
* [http://public.kitware.com/Bug/view.php?id=12454 0012454] Missing CDASH_SERVER_PORT default in config.php <br />
* [http://public.kitware.com/Bug/view.php?id=12409 0012409] Autorefresh support <br />
* [http://public.kitware.com/Bug/view.php?id=11787 0011787] PHP errors when accessing with empty project name <br />
* [http://public.kitware.com/Bug/view.php?id=12404 0012404] Build management from main dashboard doesn't work on Safari <br />
* [http://public.kitware.com/Bug/view.php?id=12331 0012331] Additional search filters for LDAP based logins<br />
* [http://public.kitware.com/Bug/view.php?id=12308 0012308] WebApi - Method:project - Task:files - Sort files by uploaded date<br />
* [http://public.kitware.com/Bug/view.php?id=11639 0011639] Support committer name and email from git<br />
* [http://public.kitware.com/Bug/view.php?id=10659 0010659] Upgrade Jquery<br />
* [http://public.kitware.com/Bug/view.php?id=10930 0010930] 1.6.5: ctest/cdash report truncated names <br />
* [http://public.kitware.com/Bug/view.php?id=09790 0009790] URL into Trac svn browser wrong <br />
* [http://public.kitware.com/Bug/view.php?id=11432 0011432] Undefined variables <br />
* [http://public.kitware.com/Bug/view.php?id=11894 0011894] PHP warnings about split() <br />
* [http://public.kitware.com/Bug/view.php?id=11828 0011828] PHP warning about preg_match() <br />
* [http://public.kitware.com/Bug/view.php?id=10964 0010964] [CTest] CDash 1.6.4 - test output "crashes" the log page<br />
* [http://public.kitware.com/Bug/view.php?id=11663 0011663] Version 1.8.2 testDetails.php not loading stylesheet.<br />
<br />
== CDash 1.8 ==<br />
<br />
=== New features ===<br />
* Asynchronous submission<br />
* CDash@home beta version<br />
* Increasing number of tests and coverage<br />
* Build group specific auto-remove settings<br />
<br />
=== Bugs fixed ===<br />
* [http://public.kitware.com/Bug/view.php?id=10834 0010834] CDash should log php errors during submission<br />
* [http://public.kitware.com/Bug/view.php?id=10720 0010720] Upgrading PostgreSQL database from 1.7 to 1.8 gives "An error occured"<br />
* [http://public.kitware.com/Bug/view.php?id=10660 0010660] regex for BUG: bug_number<br />
* [http://public.kitware.com/Bug/view.php?id=10947 0010947] Sorting by test timing does not work on index.php<br />
* [http://public.kitware.com/Bug/view.php?id=10929 0010929] Spelling mistakes on code coverage pages<br />
* [http://public.kitware.com/Bug/view.php?id=10657 0010657] MyCDash - project creation blocked<br />
* [http://public.kitware.com/Bug/view.php?id=10649 0010649] Editing project in Chrome makes the repository field empty<br />
* [http://public.kitware.com/Bug/view.php?id=10647 0010647] HTTP Header should specify charset<br />
* [http://public.kitware.com/Bug/view.php?id=10269 0010269] Submission without 'ctest -D ...Build' reports entries in the dashboard 'build' column<br />
* [http://public.kitware.com/Bug/view.php?id=10260 0010260] Logo image doesnt appear on all pages of a Dashboard that uses Subprojects.<br />
* [http://public.kitware.com/Bug/view.php?id=10975 0010975] Negative numbers (for test counts, others?) appearing in subproject dashboard results<br />
* [http://public.kitware.com/Bug/view.php?id=11284 0011284] Buildname with spaces breaks javascript<br />
* [http://public.kitware.com/Bug/view.php?id=11167 0011167] Coverage threshold check should be greater than or equal to<br />
* [http://public.kitware.com/Bug/view.php?id=11125 0011125] Test.Exists() uses incomplete key, resulting in bogus test associations in DB<br />
* [http://public.kitware.com/Bug/view.php?id=11108 0011108] Build shows up more than once if it has more than one note added to it<br />
* [http://public.kitware.com/Bug/view.php?id=10976 0010976] Adding a user to a project sets 'no email' by default<br />
* [http://public.kitware.com/Bug/view.php?id=10767 0010767] Clicking on administration/Users in an arbitrary project leads to an error.<br />
* [http://public.kitware.com/Bug/view.php?id=10760 0010760] The <link> in build update feed should point to the build<br />
* [http://public.kitware.com/Bug/view.php?id=10721 0010721] Showing build errors (the yellow triangle) does not work<br />
* [http://public.kitware.com/Bug/view.php?id=10921 0010921] Sorting of time test does not work <br />
* [http://public.kitware.com/Bug/view.php?id=9941 0009941] Add buildmanagement functionality to CDash<br />
<br />
== CDash 1.6 ==<br />
<br />
=== New features ===<br />
* Support for persistent login<br />
* Better database compression<br />
* New graphs and reports<br />
* Improved coverage visualization<br />
* Better CTest communication<br />
* Expected submission time based on historic average<br />
* Faster load of the main dashboard page<br />
* Improved navigation links<br />
* Remote build management (beta) <br />
<br />
=== Bugs fixed ===<br />
* 0010290 CDash sends failed-test emails, even when this is disabled<br />
* 0010426 ClientJobSchedule::Save fails because of missing client_jobschedule table columns<br />
* 0010463 Shared project repositories not updated correctly<br />
* 0010332 cdash does not properly handle large xml files<br />
* 0010439 Command Lines in Build Error/Warning Display<br />
* 0010460 Subscription can be altered even if not admin<br />
* 0010313 Site description repeatedly escapes special characters<br />
* 0009174 tracing regressions<br />
* 0009276 Postgres does not like the build warnings with '\\' in them<br />
* 0010106 Marking "new" test failures on dashboard "view-failed-only" page.<br />
* 0008735 add ability to get email for missing builds on sites you do not own<br />
* 0008126 Improve Morale<br />
* 0009991 show which failures are new<br />
* 0010027 Feature Request: Compression of test output in the database<br />
* 0008341 itkrobot doesn't trigger message<br />
* 0010071 Empty iphone project page<br />
* 0009790 URL into Trac svn browser wrong<br />
* 0008854 Sort columns in "Manage Coverage Page"<br />
* 0009279 Allow --username for subversion<br />
* 0008171 Display longer history for a single build<br />
* 0008036 Filter out submissions based on IP address<br />
* 0007670 Delta on tests is nice but can mask actual status change.<br />
* 0008965 identify builds that my commit first appear in<br />
* 0007731 Graph of warnings and errors over time<br />
* 0009933 Configurable Tracker URL<br />
* 0007398 groups have "issues"<br />
* 0009928 Updated file count is always 0 for new submissions<br />
* 0008585 Maintainer page<br />
* 0008271 Activity graph<br />
* 0009848 "Edit subscription" should have a project-selection combo box<br />
* 0009820 Links/navigation are partly confusing<br />
* 0008367 Warnings and Errors are set to zero by default<br />
* 0009138 Project names with chars that must be escaped generate incorrect URLs<br />
* 0009295 "Time spent per project" only tracks last build<br />
* 0008948 Update.xml parsing should classify updated/modified/conflicting based on xpath<br />
* 0008736 better looking coverage<br />
* 0009856 "Dashboard" doesn't take me to dashboard for the project<br />
* 0009823 Build summary page should link to pieces<br />
* 0009855 Unsubscribing as project admin<br />
* 0009857 list of "Show public projects" not sorted<br />
* 0009034 Please add a "Show Coverage Percentage Graph" link to the buildSummary page for coverage builds<br />
* 0009669 Coverage page sorting is slow<br />
* 0008425 Flot doesn't work with IE 8 beta<br />
* 0008204 submission should not process files<br />
* 0009891 Build::GetIdFromName() doesn't check projectid for subproject<br />
* 0009890 Deleting project doesn't delete subprojects and labels<br />
* 0009818 Description is escaped for project<br />
* 0009815 projects not sorted on "My CDash" page<br />
* 0009794 CDash "forgets" me very fast...<br />
* 0009788 Dynamic Anyalsis truncated<br />
* 0009063 Display expected submission time based on historical average for expected builds that have not submitted yet<br />
* 0009706 Non-anonymous LDAP authentication (e.g. for Active Directory) - feature request and example implementation<br />
* 0009677 MySQL with STRICT_TRANS_TABLES fails<br />
* 0009668 Cannot move builds from index page on Chrome<br />
* 0009644 Only test timings after last database upgrade are shown<br />
* 0009338 Showing updates files does not work with PostgreSQL<br />
* 0009630 r1964 broke CDash when using PostgreSQL<br />
* 0009322 Show changes in test results<br />
* 0009154 build errors not issuing emails<br />
* 0009522 Persistent login<br />
* 0009359 Unable to invite users<br />
* 0009277 Database update is always needed<br />
* 0009340 Production mode shouldn't display install.php<br />
* 0009120 CDash generates wrong diff URLs for ViewVC (at least on NITRC.org)<br />
* 0009296 Passed test should not have "error" table background<br />
* 0009294 Processor information of build host is not parsed correctly<br />
* 0009266 Cannot remove Site<br />
* 0008957 Remember me login<br />
* 0008931 Need a way to "unclaim" a site that no longer submits<br />
* 0008881 Improve support for white spaces to NamedMeasurement with type text/string and/or text/plain types<br />
<br />
== CDash 1.4 ==<br />
<br />
=== New features ===<br />
*New XML parsing using SAX parsing instead of DOM (memory efficient)<br />
*Introduction of models (MVC framework)<br />
*Nightly testing of CDash itself<br />
** http://www.cdash.org/CDash/index.php?project=CDash<br />
*Support for subprojects (CMake/CTest CVS is required)<br />
** http://trilinos-dev.sandia.gov/cdash/index.php?project=Trilinos<br />
*Support for filters<br />
** allows showing just error builds, or builds from multiple days, or both<br />
** create hyperlink to filter results and bookmark it<br />
** example showing error builds from 3 days ago until now:<br />
** http://trilinos-dev.sandia.gov/cdash/index.php?project=Trilinos&display=project&filtercount=2&showfilters=1&filtercombine=and&field1=builderrors/number&compare1=42&value1=0&field2=buildstarttime/date&compare2=83&value2=3%20days%20ago<br />
*Support for labels on builds, tests, coverage files<br />
** use CVS CMake/CTest and set target, test or source file property LABELS<br />
*Improved navigation<br />
*Improved database indexing<br />
*Improved email reporting<br />
*Added email for coverage<br />
*Improved column sorting<br />
<br />
=== Bug Fixes ===<br />
*0008670 Failed tests shown in orange instead of red <br />
*0008643 New Email summary lines<br />
*0008117 disallow public registration <br />
*0008663 Sorting 'Dynamic Analysis' field 'Labels'<br />
*0008708 Add config.local.php<br />
*0008662 'Coverage' fields 'passed', 'failed', and 'Labels' are not sorting<br />
*0008638 'Dynamic Analsysis' columns can not be sorted<br />
<br />
*0006631 Logos that are too big (tall)<br />
*0007736 Root directory in websvn URL must have trailing slash for websvn paths to be generated correctly<br />
*0007771 Nightly changes should store previous revision<br />
*0008103 Timing test did not fail<br />
*0008127 Prevent spamming<br />
*0007920 ViewChanges crashes ViewCVS on newly created files<br />
*0007570 Test submission silently fails when test output is quite large. <br />
*0008616 Sending subproject email address regression lists in XML and updating CDash email lists <br />
*0008615 Sorting the 'Min' columns is not a numeric sort.<br />
*0008191 pdo_query() does not work if it is not MySQL<br />
*0008469 Coverage broken in SVN<br />
*0008462 Only 412 test results shown<br />
*0008740 NotRun/Fail/Pass tests reports don't report what they should report<br />
*0007713 Upgrading Database should now use previous version<br />
*0007884 Ask CDash not to fill IP addresses<br />
*0008679 XML Parsing problem should send email<br />
*0008783 Email Preference not greyed out on subscription page when ""Email Broken Submission"" is unchecked<br />
*0007724 Configure warnings and errors should trigger email<br />
*0008810 When Editing a project, createProject.php get an error calling fopen."<br />
*0008119 use admin email address as sender address in password emails<br />
*0008610 content of coverage differs to Coverage.xml<br />
*0007855 CDash sends duplicate emails for the same build<br />
*0008760 build failures not being sent out for all dashboard reported build errors<br />
*0008730 Not sending out email notifications for failed configure?<br />
*0008592 Main project/subproject page should be able to filter only Nightly tests<br />
*0008645 Coverage testing link times out<br />
*0008318 viewUpdate.php with PosgreSQL fails<br />
*0008368 XAMPP flaws<br />
*0007908 Make possible to sort Code Coverage rows by submission time <br />
*0008468 Help not closable on small screen <br />
*0008484 Configure log field is too small <br />
*0006468 go to a bug reference from a commit log <br />
*0007778 User can register with the same email address <br />
*0008460 Upgrade to jquery 1.3 <br />
*0007861 Upgrade from 1.0.2 to 1.2.1 breaks Groups<br />
*0007907 Time units missing in detailed test report<br />
*0008125 multiple users can share the same email address<br />
*0008451 Coverage should be sorted by status by default<br />
*0008448 cannot set CVS/SVN ViewerURL - CDash SVN trunk<br />
*0008287 Project name should be trimmed<br />
*0008254 User subscription public project<br />
*0008160 Performance issue when submiting test<br />
*0007916 Check that backup and rss directories are writable<br />
*0008202 Project logo not displayed with PostgreSQL<br />
*0008118 password recovery email seems to be bad html<br />
*0008113 Wrong SQL query leads to not storing results<br />
*0008084 Database name cannot contain minus (-)<br />
*0007848 CDash admin privileges lacking some key actions<br />
*0007847 Admin/users account can become permanently inaccessible<br />
*0007853 Builds sent from differnt sites can clobber each other<br />
*0007582 Charset encoding issues<br />
*0007806 MySQL error creating build groups<br />
*0007871 Installation check for php5-gd<br />
*0007805 The same image can't have multiple roles for a given test<br />
<br />
== CDash 1.2 ==<br />
<br />
=== New features ===<br />
*0006801 Test Failure History Graph<br />
*0007556 ViewSite page should list the users who claimed a site<br />
*0007499 Summarize busytime by site<br />
*0007204 Error summary page<br />
*0007537 Feature request: loggerhead support<br />
*0007116 Add functionality to send email to all site claimers<br />
*0007124 Add warning and minutes column to the cfg-column<br />
*0006943 Feature Request: Use Time, Pass/Fail graphs for navigation<br />
*0007209 add a user or group of users from the admin file without a file upload<br />
*0007266 seeking ViewVC support in CDash<br />
*0007420 Support for WebSVN<br />
*0006606 Support for other databases<br />
*0007068 Support for multiple repositories update<br />
*0007212 Password recovery<br />
*0007063 Support <Measurement> tags containing HTML<br />
*0006646 Compressing notes<br />
*0007019 Email notification of nigthly builds<br />
*0006466 Email when an expected nightly does not show up.<br />
*0007636 +- reporting on the coverage<br />
<br />
=== Bugs fixed ===<br />
*0007573 Only builds from default groups show when All is selected in Global Move.<br />
*0007535 Tests are not sorted by build time<br />
*0007497 email should be sent when an expected nightly does not show up<br />
*0007532 Claim sites list is slow to generate and unsorted<br />
*0007504 <DartMeasurement> output is not SQL-escaped<br />
*0006492 There are no options to define "broken"<br />
*0007458 add_coverage produce SQL error<br />
*0007019 email notification of nigthly builds<br />
*0006842 make browser back button and the date forward/backward buttons smarter<br />
*0007210 time error hides number summary of test time<br />
*0007368 Detail in build warning/error emails<br />
*0007246 test summary page shows previous days builds<br />
*0007422 Configuration option to request full email in manage project roles<br />
*0007051 Timing tests have too many false positives<br />
*0006996 Cannot view graphs<br />
*0007252 OS Name and Version not displayed in viewSite<br />
*0007405 Number of files covered unsatisfactorily is wrong<br />
*0007293 CDash doesn't show all modified and conflicted files<br />
*0006841 show number of new errors rather than total number of errors<br />
*0007299 cdash install issues<br />
*0007262 Email always sent for experimental builds<br />
*0007247 URL encoding in CTestConfig<br />
*0007188 CDash: buildSummary.php reports update time when no update has been made<br />
*0007211 Better visualization of the code coverage (more prominent indication of uncovered line)<br />
*0007135 Timing test statistics should not sample timing value for a failing test<br />
*0007112 Login information not saved<br />
*0007113 Cannot directly link to pages in protected projects<br />
*0007064 CDash: CDash content of coverage differs to Coverage.xml<br />
*0007066 Documentation link<br />
*0007053 CDash loses my identity and getting it back requires manually going back to CDash start page.<br />
*0007052 Redirect user to login page when private project is not accessible<br />
*0007017 Help screen cannot be dismissed if browser window is small<br />
*0007021 Parse cvs/svn/git commit comments and make URL expressions clickable hyperlinks<br />
*0007018 Output from test is truncated<br />
*0007654 Coverage file are truncated<br />
*0007573 Only builds from default groups show when All is selected in Global Move.<br />
*0006492 There are no options to define "broken"<br />
*0007535 Tests are not sorted by build time<br />
*0007667 Submitting using a custom track/group name partially fails when contains a dash<br />
*0007668 Broken image link on database upgrade<br />
*0007648 Commit ordering issue in Nightly Changes page of VTK Cdash (1.0.3)<br />
*0007639 Build group description required by MySQL but not set by PHP build group commands<br />
<br />
== CDash 1.0.2 ==<br />
=== Bugs fixed ===<br />
* 0007016 Create Group does not work under Opera and IE<br />
* Email submission not working for individual users<br />
* Several cosmetic fixes<br />
<br />
== CDash 1.0 ==<br />
=== Bugs fixed ===<br />
* 0006384 Detecting timing defects<br />
* 0006371 Having the number of nightly changes on the main page<br />
* 0006497 Method to mark compile warnings, compile errors, and test failures with "fix in progress" or "fixed"<br />
* 0006508 Test Results information is incomplete for itk<br />
* 0006894 Wrong number of dynamic analysis defects<br />
* 0006878 Support for timestamp CTest 2.6<br />
* 0006612 Bad BuildTimeGraph on buildSummary page for continuous build<br />
* 0006843 Support of different cvs/svn/web viewers<br />
* 0006582 CVS Link to a version 1.1 file is invalid<br />
* 0006664 Incorrect timing and detail report on viewTest page<br />
* 0006832 Previous Build Incorrect<br />
* 0006807 RSS feed with private project<br />
* 0006797 Previous build on build summary page<br />
* 0006805 Warning when backup and rss directory are not writable<br />
* 0006798 Warning message when browsing coverage<br />
* 0006772 Warnings when searching for emails on manageProjectRoles page<br />
* 0006472 Add ability to remove bogus builds<br />
* 0006601 Project administrator cannot remove an expected build if it is not submitting<br />
* 0006471 Add a quick way to upload a cvs/svn user to password file for email notification<br />
* 0006715 PROJECT pulldown under DASHBOARD pulldown<br />
* 0006602 Sort by any column on the viewTest and testSummary pages<br />
* 0006681 Fisheye URL support<br />
* 0006653 Mouse-over build groups<br />
* 0006655 Project logo hyperlink<br />
* 0006942: Show Test Time Graph does not toggle in Internet Explorer<br />
* 0006939: Separate lists of failing tests from list of passing tests<br />
<br />
=== Database modification ===<br />
* Added ‘description’ to table buildgroup<br />
* Added cvsviewertype to table project<br />
* Added index siteid in table site2user<br />
* Added index starttime in table build<br />
* Added index name in table test (this might take some time to run)<br />
* Added crc32 with index in table coveragefile <br />
* Compressing coverage (this might take some time to run)<br />
* Add support for timestatus in build2test table</div>Zackhttps://public.kitware.com/Wiki/index.php?title=CDash:Upgrade&diff=58597CDash:Upgrade2015-12-15T17:49:22Z<p>Zack: /* Upgrading CDash */</p>
<hr />
<div>[[CDash | < CDash Main Page]]<br />
<br />
This page explains how to upgrade CDash. CDash upgrade mechanism allows users to upgrade CDash at any point in time, even if they are using the current git development of CDash.<br />
<br />
= Upgrading CDash =<br />
<br />
# It is recommended that you [[CDash:Upgrade#Backing_up_CDash | backup the CDash database]].<br />
# Backup your configuration file: config.php or config.local.php<br />
# Replace your current CDash directory with the latest version. If your instance of CDash was cloned from git, a <code>git pull</code> should suffice.<br />
#* [[CDash:Upgrade#Repository_Reorganization_Aftermath | Follow these instructions]] if you just ran <code>git pull</code> and lots of files were moved to a new directory named "public".<br />
# Make sure your web server still has permission to read CDash's files. On Linux you might need to use <code>chown</code> or <code>chmod</code> if the permissions changed when you updated CDash.<br />
# [https://getcomposer.org/download/ Download composer] (if you haven't already) and run <code>php composer.phar install --no-dev --optimize-autoloader</code>.<br />
# Run <code>npm install</code><br />
# Run <code>node_modules/.bin/gulp</code><br />
# Restore the configuration parameters: the config.php file may change from one revision to the other, make sure you are not replacing the config.php file but are actually replacing the parameters inside the file. For this reason, we recommend that you maintain a config.local.php file that contains ONLY your modified settings.<br />
# Navigate your browser to your CDash page. (eg. http://localhost/CDash) <br />
## Note the version number on the main page. It should correctly match the new version that you are upgrading to.<br />
## The following message may appear: "The current database shema doesn't match the version of CDash you are running, upgrade your database structure in the Administration panel of CDash." This is a helpful reminder to perform the following steps:<br />
#Login to CDash as administrator. <br />
#In the ‘Administration’ section, click on ‘[CDash Maintenance]’<br />
#Click on ‘Upgrade CDash’: This process might take some time depending on the size of your database, '''do not close your browser'''.<br />
##Progress messages may appear while CDash performs the upgrade.<br />
##If the upgrade process takes too long you can check in the backup/cdash.log file to see where the process is taking a long time and/or failing. For long running upgrades, you could also [[CDash:Upgrade#Checking_Database_Activity | check your database activity]] to make sure that the upgrade process hasn't stalled out.<br />
##It has been reporting that on some systems the spinning icon never turns into a checkmark. Please check the cdash.log for the "Upgrade done." string if you feel that the upgrade takes too long.<br />
##'''CDash 1.6''': new indexes and fields for the database have been added. The indexes and fields touch the test table and might take a long time to upgrade, just be patient and check the backup/cdash.log file to see the current progress of the update. On a 80GB database the upgrade took about 4 hours.<br />
# '''Note:''' Some web browsers are having issue when upgrading (some javascript variables not passed correctly), in that case you can perform individual updates:<br />
<br />
http://yourURLtoCDash/backwardCompatibilityTools.php?upgrade-2-2=1<br />
<br />
= Backing up CDash =<br />
<br />
CDash stores all the information (except logs) in the database, so it's important to backup your database before any CDash upgrade.<br />
<br />
== MySQL ==<br />
There are a couple a ways to backup a MySQL database. The easiest way is to use the [http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html mysqldump] command.<br />
<br />
Example to backup the '''cdash''' database:<br />
mysqldump -r cdashbackup.sql cdash<br />
<br />
If you are using exclusively MyISAM tables you can copy the CDash directory in your MySQL data directory. Note that you need to shutdown the MySQL before doing the copy since, no file can be touched during the copy.<br />
<br />
== PostGreSQL ==<br />
Similarly to MySQL, PostGreSQL has a [http://www.postgresql.org/docs/8.0/interactive/backup.html pg_dump] utility.<br />
<br />
Example to backup the '''cdash''' database:<br />
pg_dump -U postgreSQLuser cdash > cdashbackup.sql<br />
<br />
= Checking Database Activity =<br />
== MySQL ==<br />
From a mysql prompt:<br />
SHOW PROCESSLIST;<br />
== PostGreSQL ==<br />
From a psql prompt: <br />
SELECT * FROM pg_stat_activity;<br />
<br />
= Change logs =<br />
<br />
== CDash 2.2 ==<br />
<br />
=== New features ===<br />
*0013753: JUnit support <br />
*0013752: Support for nunit tests <br />
*0014896: Adding log level <br />
*0010084: Site Temporarily Out of Order <br />
*0014517: Add support for P4Web (Perforce Web Client)<br />
*Overall better PostGreSQL compatbility (thanks to Igor Murzov)<br />
*Added feed<br />
<br />
=== Bugs fixed (80) ===<br />
*0014906: Fix schedule to build association when handling submissions synchronously <br />
*0014717: Fix SQL query quoting issue introduced in r3432 <br />
*0014683: Use correct variable to get db type <br />
*0014682: Fix PHP undefined constant usage warning<br />
*0014679: Properly check if specified project exists <br />
*0014678: Drop weird copy'n'pasted comments from api/* files <br />
*0014681: Fix typo in "feed" table definition<br />
*0013400: Deleting all SubProjects does not remove the SubProjects section <br />
*0013937: CDash does not filter warnings when requesting difference to previous build <br />
*0014160: Deleting a group causes all builds in that group to disappear <br />
*0014638: Fix a typo in the coverage viewer <br />
*0014665: Generate xhtml to make the markdown standard compliant <br />
*0014664: Add menu to viewNotes page <br />
*0012989: Uninformative log message occurs a couple times a night on the CMake dashboard <br />
*0013654: Failed to update from "expected" to "non-expected" when there are no build <br />
*0014639: Fix undefined variable usage in test viewer<br />
*0014560: Overhaul configure warning extraction algorithm <br />
*0014589: Fix a PostgreSQL incompatibility<br />
*0014588: Fix undefined variable usage in changes viewer <br />
*0014556: ENH: Check that git directory is writable <br />
*0014551: CDash gives out of memory errors when attempting to XSLT transform large XML files <br />
*0014537: Fix a minor PostgreSQL incompatibility in test failure graph viewer <br />
*0014531: Don't hardcode coverage threshold, use the one from the project settings <br />
*0014530: Display correct configure warnings number on build summary page<br />
*0014525: Daily Updates for Perforce reports Revision and Prior Revision as 0 <br />
*0014524: The path to the P4 utility is not quoted (reported by Igor Murzov) <br />
*0014523: Drop remnants of backup page that was removed in r2599 <br />
*0014518: Add Perforce support to Daily Updates <br />
*0014346: Fix a couple of typos in file viewer <br />
*0014344: Cosmetics: Simplify some if conditions <br />
*0014343: Drop incorrect & pointless query on client libraries info update <br />
*0014513: Fix some html markdown issues <br />
*0014480: Fix seeming logout in file viewer <br />
*0014496: DOxygen menu should be renamed <br />
*0014478: Don't display errors when project gets unselected on Edit Project page <br />
*0014477: Drop unnecessary MySql-style quotes from SQL queries<br />
*0014469: Fix broken markdown on registration page <br />
*0014451: clientjobschedule.php doesn't encode project name before adding to submit URL <br />
*0014423: Drop left-over code <br />
*0014413: Fix grammar in coverage manager <br />
*0014412: Handle '0 builds' and '0 failed tests' cases properly<br />
*0014351: Fix lines of code calculation in the coverage viewer <br />
*0014350: Set Append property to false in upload xml handler as files are not appendable <br />
*0014189: dynamic analysis results not decoded <br />
*0012368: CDash's build results html should use monospace font for 'standard error' output <br />
*0014364: Add missing dot which prevented job id to be set in client script <br />
*0014374: Properly fetch result of SQL query on coverage info removal <br />
*0014375: Fix incorrect string quoting in SQL query in coveragefile2user model <br />
*0014341: Fix "user" table/function confusion <br />
*0014340: Fix undefined variable usage in sendemail <br />
*0010455: Show graph for <NamedMeasurement> <br />
*0013782: inconsistent last submission time for project and subprojects in the project dashboard <br />
*0013781: typo in manageBuildGroup.php <br />
*0013751: Error page <br />
*0013577: User Enumeration Vulnerability <br />
*0013491: CDash banner does not escape strings, potential SQL injection <br />
*0013256: cdash viewCoverage.php errors with new ajax interface <br />
*0013041: CDash 2 is still reporting wrong summary info for clock speed and RAM <br />
*0014621: Broken Filter Hyperlinks when enabling and then disabling Auto-refresh <br />
*0013943: Backup.php missing <br />
*0013428: Unknown column 'buildid' when running "Cleanup database" <br />
*0014514: svn log not updating with https:// and self signed certificate <br />
*0013079: Test attachment links broken when a test fails <br />
*0012994: Sorting by "Build Name" column doesn't work right when builds have OS icons <br />
*0012993: Times with milliseconds in them appear to be reported incorrectly <br />
*0012990: Strange formatting, and missing total test timing in "Build Time" tooltip <br />
*0012988: Column sort does not work for some columns in Coverage and Dynamic Analysis groups <br />
*0012985: "Show Build History" link does not show any builds <br />
*0012980: Last activity cannot be sorted on first page <br />
*0012978: Make FreeBSD a first class OS <br />
*0012950: login-based SQL injection <br />
*0012937: [CMake] Broken 'headerlogo' link if 'Home URL' is not set <br />
*0012949: CDash remove builds automatically even if $CDASH_AUTOREMOVE_BUILDS is not set <br />
*0012938: Unable to persitently change "Enable" flag in CDash Schedule Build <br />
*0013432: Registration Key URL in e-mail has one char to much at the end <br />
*0012984: CDash generated RSS produces date with 2 digit years; 4 digits preferred <br />
*0012948: Update data count misreported <br />
<br />
== CDash 2.0 ==<br />
<br />
=== New features ===<br />
<br />
* New and Simplified layout<br />
* Better management of asynchronous submission<br />
* Support for PostGreSQL 9<br />
* Improved security<br />
* Support for log rotation<br />
* Better support for new repository browsers<br />
* Improved users administration<br />
* $CDASH_WARN_ABOUT_UNREGISTERED_COMMITTERS option is now OFF by default to avoid flooding the log files. This option can still be overridden in the config.local.php<br />
<br />
=== Bugs fixed ===<br />
* [http://public.kitware.com/Bug/view.php?id=12555 0012555] Asynchronous processing of submission fails with drop site of the form: slicer4.cdash.org <br />
* [http://public.kitware.com/Bug/view.php?id=11809 0011809] "My Build Schedules" might benefit from an extra Comments or Description column <br />
* [http://public.kitware.com/Bug/view.php?id=12557 0012557] Option to hide source code in the coverage webpage <br />
* [http://public.kitware.com/Bug/view.php?id=11804 0011804] "My Build Schedules" list limited to 5 jobs; rest is inaccessible <br />
* [http://public.kitware.com/Bug/view.php?id=11521 0011521] PHP warning about MYSQL_BOTH <br />
* [http://public.kitware.com/Bug/view.php?id=12913 0012913] CDash fails to open update.xml file if CTEST_SITE variable contains a slash character <br />
* [http://public.kitware.com/Bug/view.php?id=10817 0010817] DynamicAnalysis is "green" and "0" even though all tests failed when run under memcheck <br />
* [http://public.kitware.com/Bug/view.php?id=12884 0012884] Adding "Subscribe" to the dashboard page <br />
* [http://public.kitware.com/Bug/view.php?id=12907 0012907] Delete user incomplete / blocks creation of new user with equal name <br />
* [http://public.kitware.com/Bug/view.php?id=12899 0012899] cdash 1.8.2 emails do not include header that indicates text encoding of content <br />
* [http://public.kitware.com/Bug/view.php?id=12885 0012885] When subscribing, "Project" combobox doesn't show current project <br />
* [http://public.kitware.com/Bug/view.php?id=10648 0010648] By default how to allow registered user to create new projects <br />
* [http://public.kitware.com/Bug/view.php?id=10742 0010742] CDash does not check for valid email <br />
* [http://public.kitware.com/Bug/view.php?id=10408 0010408] Time based reload for project dashboard page <br />
* [http://public.kitware.com/Bug/view.php?id=11939 0011939] CDASH cannot display Attached Files <br />
* [http://public.kitware.com/Bug/view.php?id=12314 0012314] description of 'test standard deviation' and 'test standard deviation threshold' is wrong <br />
* [http://public.kitware.com/Bug/view.php?id=10748 0010748] Log rotation <br />
* [http://public.kitware.com/Bug/view.php?id=12310 0012310] 'test time standard deviation' should be renamed <br />
* [http://public.kitware.com/Bug/view.php?id=10974 0010974] Build failures not highlighted <br />
* [http://public.kitware.com/Bug/view.php?id=10822 0010822] compute_update_statistics is undefined <br />
* [http://public.kitware.com/Bug/view.php?id=11799 0011799] "My Build Schedules" lists the same project name for all jobs <br />
* [http://public.kitware.com/Bug/view.php?id=11711 0011711] cdash/createRSS.php creates invalid RSS output <br />
* [http://public.kitware.com/Bug/view.php?id=10051 0010051] Wording of "Email preference" unclear <br />
* [http://public.kitware.com/Bug/view.php?id=11800 0011800] MySQL schema for client_jobschedule does not allow repeattime above 9.99 in newer MySQL versions <br />
* [http://public.kitware.com/Bug/view.php?id=12218 0012218] Update command fails to parse if it contains XML escaped quotes <br />
* [http://public.kitware.com/Bug/view.php?id=11201 0011201] Move the coverage legend on the left <br />
* [http://public.kitware.com/Bug/view.php?id=12368 0012368] CDash's build results html should use monospace font for 'standard error' output <br />
* [http://public.kitware.com/Bug/view.php?id=12164 0012164] CDash 1.6.4 cannot accept the special character <br />
* [http://public.kitware.com/Bug/view.php?id=12395 0012395] cdash login page 'remember me' checkbox does not work when using LDAP authentication <br />
* [http://public.kitware.com/Bug/view.php?id=12416 0012416] Error logs are never cleared <br />
* [http://public.kitware.com/Bug/view.php?id=09663 0009663] [CTest] CTest/CDash OS version & compiler information is lacking on Mac OS X <br />
* [http://public.kitware.com/Bug/view.php?id=07726 0007726] admin should be able to see/set other users settings <br />
* [http://public.kitware.com/Bug/view.php?id=10289 0010289] Patch for the support of hgweb navigation (mercurial) <br />
* [http://public.kitware.com/Bug/view.php?id=11409 0011409] viewErrorLog.php page does not show anything if buildid= *and* date= are given <br />
* [http://public.kitware.com/Bug/view.php?id=12341 0012341] Test names not escaped <br />
* [http://public.kitware.com/Bug/view.php?id=12360 0012360] [CTest] CDash colors for build graphs have poor contrast <br />
* [http://public.kitware.com/Bug/view.php?id=12384 0012384] [PATCH] Add support for the Redmine repository browser <br />
* [http://public.kitware.com/Bug/view.php?id=11737 0011737] CDash submission fails due to wrong parsing of geolocation info <br />
* [http://public.kitware.com/Bug/view.php?id=12585 0012585] Use "(empty)" instead of "" when site and build names come in empty from ctest <br />
* [http://public.kitware.com/Bug/view.php?id=10684 0010684] [CTest] ctest not reporting submission failures <br />
* [http://public.kitware.com/Bug/view.php?id=12396 0012396] [CTest] CDash should indicate the git hash of builds <br />
* [http://public.kitware.com/Bug/view.php?id=11608 0011608] Support new style of gitweb url <br />
* [http://public.kitware.com/Bug/view.php?id=11920 0011920] [CMake] Current svn -> cannot create project + header errors<br />
* [http://public.kitware.com/Bug/view.php?id=12638 0012638] Display Example URL of Reposiroty Viewer <br />
* [http://public.kitware.com/Bug/view.php?id=12631 0012631] Admin can't change user settings -- especially can't edit repository credentials <br />
* [http://public.kitware.com/Bug/view.php?id=10819 0010819] Make one more category for coverage files : "complete" or "perfect" <br />
* [http://public.kitware.com/Bug/view.php?id=12560 0012560] Support for PgSQL 9.x <br />
* [http://public.kitware.com/Bug/view.php?id=12559 0012559] Add database port in configuration file <br />
* [http://public.kitware.com/Bug/view.php?id=12403 0012403] CDash should report the time since reported builds <br />
* [http://public.kitware.com/Bug/view.php?id=12454 0012454] Missing CDASH_SERVER_PORT default in config.php <br />
* [http://public.kitware.com/Bug/view.php?id=12409 0012409] Autorefresh support <br />
* [http://public.kitware.com/Bug/view.php?id=11787 0011787] PHP errors when accessing with empty project name <br />
* [http://public.kitware.com/Bug/view.php?id=12404 0012404] Build management from main dashboard doesn't work on Safari <br />
* [http://public.kitware.com/Bug/view.php?id=12331 0012331] Additional search filters for LDAP based logins<br />
* [http://public.kitware.com/Bug/view.php?id=12308 0012308] WebApi - Method:project - Task:files - Sort files by uploaded date<br />
* [http://public.kitware.com/Bug/view.php?id=11639 0011639] Support committer name and email from git<br />
* [http://public.kitware.com/Bug/view.php?id=10659 0010659] Upgrade Jquery<br />
* [http://public.kitware.com/Bug/view.php?id=10930 0010930] 1.6.5: ctest/cdash report truncated names <br />
* [http://public.kitware.com/Bug/view.php?id=09790 0009790] URL into Trac svn browser wrong <br />
* [http://public.kitware.com/Bug/view.php?id=11432 0011432] Undefined variables <br />
* [http://public.kitware.com/Bug/view.php?id=11894 0011894] PHP warnings about split() <br />
* [http://public.kitware.com/Bug/view.php?id=11828 0011828] PHP warning about preg_match() <br />
* [http://public.kitware.com/Bug/view.php?id=10964 0010964] [CTest] CDash 1.6.4 - test output "crashes" the log page<br />
* [http://public.kitware.com/Bug/view.php?id=11663 0011663] Version 1.8.2 testDetails.php not loading stylesheet.<br />
<br />
== CDash 1.8 ==<br />
<br />
=== New features ===<br />
* Asynchronous submission<br />
* CDash@home beta version<br />
* Increasing number of tests and coverage<br />
* Build group specific auto-remove settings<br />
<br />
=== Bugs fixed ===<br />
* [http://public.kitware.com/Bug/view.php?id=10834 0010834] CDash should log php errors during submission<br />
* [http://public.kitware.com/Bug/view.php?id=10720 0010720] Upgrading PostgreSQL database from 1.7 to 1.8 gives "An error occured"<br />
* [http://public.kitware.com/Bug/view.php?id=10660 0010660] regex for BUG: bug_number<br />
* [http://public.kitware.com/Bug/view.php?id=10947 0010947] Sorting by test timing does not work on index.php<br />
* [http://public.kitware.com/Bug/view.php?id=10929 0010929] Spelling mistakes on code coverage pages<br />
* [http://public.kitware.com/Bug/view.php?id=10657 0010657] MyCDash - project creation blocked<br />
* [http://public.kitware.com/Bug/view.php?id=10649 0010649] Editing project in Chrome makes the repository field empty<br />
* [http://public.kitware.com/Bug/view.php?id=10647 0010647] HTTP Header should specify charset<br />
* [http://public.kitware.com/Bug/view.php?id=10269 0010269] Submission without 'ctest -D ...Build' reports entries in the dashboard 'build' column<br />
* [http://public.kitware.com/Bug/view.php?id=10260 0010260] Logo image doesnt appear on all pages of a Dashboard that uses Subprojects.<br />
* [http://public.kitware.com/Bug/view.php?id=10975 0010975] Negative numbers (for test counts, others?) appearing in subproject dashboard results<br />
* [http://public.kitware.com/Bug/view.php?id=11284 0011284] Buildname with spaces breaks javascript<br />
* [http://public.kitware.com/Bug/view.php?id=11167 0011167] Coverage threshold check should be greater than or equal to<br />
* [http://public.kitware.com/Bug/view.php?id=11125 0011125] Test.Exists() uses incomplete key, resulting in bogus test associations in DB<br />
* [http://public.kitware.com/Bug/view.php?id=11108 0011108] Build shows up more than once if it has more than one note added to it<br />
* [http://public.kitware.com/Bug/view.php?id=10976 0010976] Adding a user to a project sets 'no email' by default<br />
* [http://public.kitware.com/Bug/view.php?id=10767 0010767] Clicking on administration/Users in an arbitrary project leads to an error.<br />
* [http://public.kitware.com/Bug/view.php?id=10760 0010760] The <link> in build update feed should point to the build<br />
* [http://public.kitware.com/Bug/view.php?id=10721 0010721] Showing build errors (the yellow triangle) does not work<br />
* [http://public.kitware.com/Bug/view.php?id=10921 0010921] Sorting of time test does not work <br />
* [http://public.kitware.com/Bug/view.php?id=9941 0009941] Add buildmanagement functionality to CDash<br />
<br />
== CDash 1.6 ==<br />
<br />
=== New features ===<br />
* Support for persistent login<br />
* Better database compression<br />
* New graphs and reports<br />
* Improved coverage visualization<br />
* Better CTest communication<br />
* Expected submission time based on historic average<br />
* Faster load of the main dashboard page<br />
* Improved navigation links<br />
* Remote build management (beta) <br />
<br />
=== Bugs fixed ===<br />
* 0010290 CDash sends failed-test emails, even when this is disabled<br />
* 0010426 ClientJobSchedule::Save fails because of missing client_jobschedule table columns<br />
* 0010463 Shared project repositories not updated correctly<br />
* 0010332 cdash does not properly handle large xml files<br />
* 0010439 Command Lines in Build Error/Warning Display<br />
* 0010460 Subscription can be altered even if not admin<br />
* 0010313 Site description repeatedly escapes special characters<br />
* 0009174 tracing regressions<br />
* 0009276 Postgres does not like the build warnings with '\\' in them<br />
* 0010106 Marking "new" test failures on dashboard "view-failed-only" page.<br />
* 0008735 add ability to get email for missing builds on sites you do not own<br />
* 0008126 Improve Morale<br />
* 0009991 show which failures are new<br />
* 0010027 Feature Request: Compression of test output in the database<br />
* 0008341 itkrobot doesn't trigger message<br />
* 0010071 Empty iphone project page<br />
* 0009790 URL into Trac svn browser wrong<br />
* 0008854 Sort columns in "Manage Coverage Page"<br />
* 0009279 Allow --username for subversion<br />
* 0008171 Display longer history for a single build<br />
* 0008036 Filter out submissions based on IP address<br />
* 0007670 Delta on tests is nice but can mask actual status change.<br />
* 0008965 identify builds that my commit first appear in<br />
* 0007731 Graph of warnings and errors over time<br />
* 0009933 Configurable Tracker URL<br />
* 0007398 groups have "issues"<br />
* 0009928 Updated file count is always 0 for new submissions<br />
* 0008585 Maintainer page<br />
* 0008271 Activity graph<br />
* 0009848 "Edit subscription" should have a project-selection combo box<br />
* 0009820 Links/navigation are partly confusing<br />
* 0008367 Warnings and Errors are set to zero by default<br />
* 0009138 Project names with chars that must be escaped generate incorrect URLs<br />
* 0009295 "Time spent per project" only tracks last build<br />
* 0008948 Update.xml parsing should classify updated/modified/conflicting based on xpath<br />
* 0008736 better looking coverage<br />
* 0009856 "Dashboard" doesn't take me to dashboard for the project<br />
* 0009823 Build summary page should link to pieces<br />
* 0009855 Unsubscribing as project admin<br />
* 0009857 list of "Show public projects" not sorted<br />
* 0009034 Please add a "Show Coverage Percentage Graph" link to the buildSummary page for coverage builds<br />
* 0009669 Coverage page sorting is slow<br />
* 0008425 Flot doesn't work with IE 8 beta<br />
* 0008204 submission should not process files<br />
* 0009891 Build::GetIdFromName() doesn't check projectid for subproject<br />
* 0009890 Deleting project doesn't delete subprojects and labels<br />
* 0009818 Description is escaped for project<br />
* 0009815 projects not sorted on "My CDash" page<br />
* 0009794 CDash "forgets" me very fast...<br />
* 0009788 Dynamic Anyalsis truncated<br />
* 0009063 Display expected submission time based on historical average for expected builds that have not submitted yet<br />
* 0009706 Non-anonymous LDAP authentication (e.g. for Active Directory) - feature request and example implementation<br />
* 0009677 MySQL with STRICT_TRANS_TABLES fails<br />
* 0009668 Cannot move builds from index page on Chrome<br />
* 0009644 Only test timings after last database upgrade are shown<br />
* 0009338 Showing updates files does not work with PostgreSQL<br />
* 0009630 r1964 broke CDash when using PostgreSQL<br />
* 0009322 Show changes in test results<br />
* 0009154 build errors not issuing emails<br />
* 0009522 Persistent login<br />
* 0009359 Unable to invite users<br />
* 0009277 Database update is always needed<br />
* 0009340 Production mode shouldn't display install.php<br />
* 0009120 CDash generates wrong diff URLs for ViewVC (at least on NITRC.org)<br />
* 0009296 Passed test should not have "error" table background<br />
* 0009294 Processor information of build host is not parsed correctly<br />
* 0009266 Cannot remove Site<br />
* 0008957 Remember me login<br />
* 0008931 Need a way to "unclaim" a site that no longer submits<br />
* 0008881 Improve support for white spaces to NamedMeasurement with type text/string and/or text/plain types<br />
<br />
== CDash 1.4 ==<br />
<br />
=== New features ===<br />
*New XML parsing using SAX parsing instead of DOM (memory efficient)<br />
*Introduction of models (MVC framework)<br />
*Nightly testing of CDash itself<br />
** http://www.cdash.org/CDash/index.php?project=CDash<br />
*Support for subprojects (CMake/CTest CVS is required)<br />
** http://trilinos-dev.sandia.gov/cdash/index.php?project=Trilinos<br />
*Support for filters<br />
** allows showing just error builds, or builds from multiple days, or both<br />
** create hyperlink to filter results and bookmark it<br />
** example showing error builds from 3 days ago until now:<br />
** http://trilinos-dev.sandia.gov/cdash/index.php?project=Trilinos&display=project&filtercount=2&showfilters=1&filtercombine=and&field1=builderrors/number&compare1=42&value1=0&field2=buildstarttime/date&compare2=83&value2=3%20days%20ago<br />
*Support for labels on builds, tests, coverage files<br />
** use CVS CMake/CTest and set target, test or source file property LABELS<br />
*Improved navigation<br />
*Improved database indexing<br />
*Improved email reporting<br />
*Added email for coverage<br />
*Improved column sorting<br />
<br />
=== Bug Fixes ===<br />
*0008670 Failed tests shown in orange instead of red <br />
*0008643 New Email summary lines<br />
*0008117 disallow public registration <br />
*0008663 Sorting 'Dynamic Analysis' field 'Labels'<br />
*0008708 Add config.local.php<br />
*0008662 'Coverage' fields 'passed', 'failed', and 'Labels' are not sorting<br />
*0008638 'Dynamic Analsysis' columns can not be sorted<br />
<br />
*0006631 Logos that are too big (tall)<br />
*0007736 Root directory in websvn URL must have trailing slash for websvn paths to be generated correctly<br />
*0007771 Nightly changes should store previous revision<br />
*0008103 Timing test did not fail<br />
*0008127 Prevent spamming<br />
*0007920 ViewChanges crashes ViewCVS on newly created files<br />
*0007570 Test submission silently fails when test output is quite large. <br />
*0008616 Sending subproject email address regression lists in XML and updating CDash email lists <br />
*0008615 Sorting the 'Min' columns is not a numeric sort.<br />
*0008191 pdo_query() does not work if it is not MySQL<br />
*0008469 Coverage broken in SVN<br />
*0008462 Only 412 test results shown<br />
*0008740 NotRun/Fail/Pass tests reports don't report what they should report<br />
*0007713 Upgrading Database should now use previous version<br />
*0007884 Ask CDash not to fill IP addresses<br />
*0008679 XML Parsing problem should send email<br />
*0008783 Email Preference not greyed out on subscription page when ""Email Broken Submission"" is unchecked<br />
*0007724 Configure warnings and errors should trigger email<br />
*0008810 When Editing a project, createProject.php get an error calling fopen."<br />
*0008119 use admin email address as sender address in password emails<br />
*0008610 content of coverage differs to Coverage.xml<br />
*0007855 CDash sends duplicate emails for the same build<br />
*0008760 build failures not being sent out for all dashboard reported build errors<br />
*0008730 Not sending out email notifications for failed configure?<br />
*0008592 Main project/subproject page should be able to filter only Nightly tests<br />
*0008645 Coverage testing link times out<br />
*0008318 viewUpdate.php with PosgreSQL fails<br />
*0008368 XAMPP flaws<br />
*0007908 Make possible to sort Code Coverage rows by submission time <br />
*0008468 Help not closable on small screen <br />
*0008484 Configure log field is too small <br />
*0006468 go to a bug reference from a commit log <br />
*0007778 User can register with the same email address <br />
*0008460 Upgrade to jquery 1.3 <br />
*0007861 Upgrade from 1.0.2 to 1.2.1 breaks Groups<br />
*0007907 Time units missing in detailed test report<br />
*0008125 multiple users can share the same email address<br />
*0008451 Coverage should be sorted by status by default<br />
*0008448 cannot set CVS/SVN ViewerURL - CDash SVN trunk<br />
*0008287 Project name should be trimmed<br />
*0008254 User subscription public project<br />
*0008160 Performance issue when submiting test<br />
*0007916 Check that backup and rss directories are writable<br />
*0008202 Project logo not displayed with PostgreSQL<br />
*0008118 password recovery email seems to be bad html<br />
*0008113 Wrong SQL query leads to not storing results<br />
*0008084 Database name cannot contain minus (-)<br />
*0007848 CDash admin privileges lacking some key actions<br />
*0007847 Admin/users account can become permanently inaccessible<br />
*0007853 Builds sent from differnt sites can clobber each other<br />
*0007582 Charset encoding issues<br />
*0007806 MySQL error creating build groups<br />
*0007871 Installation check for php5-gd<br />
*0007805 The same image can't have multiple roles for a given test<br />
<br />
== CDash 1.2 ==<br />
<br />
=== New features ===<br />
*0006801 Test Failure History Graph<br />
*0007556 ViewSite page should list the users who claimed a site<br />
*0007499 Summarize busytime by site<br />
*0007204 Error summary page<br />
*0007537 Feature request: loggerhead support<br />
*0007116 Add functionality to send email to all site claimers<br />
*0007124 Add warning and minutes column to the cfg-column<br />
*0006943 Feature Request: Use Time, Pass/Fail graphs for navigation<br />
*0007209 add a user or group of users from the admin file without a file upload<br />
*0007266 seeking ViewVC support in CDash<br />
*0007420 Support for WebSVN<br />
*0006606 Support for other databases<br />
*0007068 Support for multiple repositories update<br />
*0007212 Password recovery<br />
*0007063 Support <Measurement> tags containing HTML<br />
*0006646 Compressing notes<br />
*0007019 Email notification of nigthly builds<br />
*0006466 Email when an expected nightly does not show up.<br />
*0007636 +- reporting on the coverage<br />
<br />
=== Bugs fixed ===<br />
*0007573 Only builds from default groups show when All is selected in Global Move.<br />
*0007535 Tests are not sorted by build time<br />
*0007497 email should be sent when an expected nightly does not show up<br />
*0007532 Claim sites list is slow to generate and unsorted<br />
*0007504 <DartMeasurement> output is not SQL-escaped<br />
*0006492 There are no options to define "broken"<br />
*0007458 add_coverage produce SQL error<br />
*0007019 email notification of nigthly builds<br />
*0006842 make browser back button and the date forward/backward buttons smarter<br />
*0007210 time error hides number summary of test time<br />
*0007368 Detail in build warning/error emails<br />
*0007246 test summary page shows previous days builds<br />
*0007422 Configuration option to request full email in manage project roles<br />
*0007051 Timing tests have too many false positives<br />
*0006996 Cannot view graphs<br />
*0007252 OS Name and Version not displayed in viewSite<br />
*0007405 Number of files covered unsatisfactorily is wrong<br />
*0007293 CDash doesn't show all modified and conflicted files<br />
*0006841 show number of new errors rather than total number of errors<br />
*0007299 cdash install issues<br />
*0007262 Email always sent for experimental builds<br />
*0007247 URL encoding in CTestConfig<br />
*0007188 CDash: buildSummary.php reports update time when no update has been made<br />
*0007211 Better visualization of the code coverage (more prominent indication of uncovered line)<br />
*0007135 Timing test statistics should not sample timing value for a failing test<br />
*0007112 Login information not saved<br />
*0007113 Cannot directly link to pages in protected projects<br />
*0007064 CDash: CDash content of coverage differs to Coverage.xml<br />
*0007066 Documentation link<br />
*0007053 CDash loses my identity and getting it back requires manually going back to CDash start page.<br />
*0007052 Redirect user to login page when private project is not accessible<br />
*0007017 Help screen cannot be dismissed if browser window is small<br />
*0007021 Parse cvs/svn/git commit comments and make URL expressions clickable hyperlinks<br />
*0007018 Output from test is truncated<br />
*0007654 Coverage file are truncated<br />
*0007573 Only builds from default groups show when All is selected in Global Move.<br />
*0006492 There are no options to define "broken"<br />
*0007535 Tests are not sorted by build time<br />
*0007667 Submitting using a custom track/group name partially fails when contains a dash<br />
*0007668 Broken image link on database upgrade<br />
*0007648 Commit ordering issue in Nightly Changes page of VTK Cdash (1.0.3)<br />
*0007639 Build group description required by MySQL but not set by PHP build group commands<br />
<br />
== CDash 1.0.2 ==<br />
=== Bugs fixed ===<br />
* 0007016 Create Group does not work under Opera and IE<br />
* Email submission not working for individual users<br />
* Several cosmetic fixes<br />
<br />
== CDash 1.0 ==<br />
=== Bugs fixed ===<br />
* 0006384 Detecting timing defects<br />
* 0006371 Having the number of nightly changes on the main page<br />
* 0006497 Method to mark compile warnings, compile errors, and test failures with "fix in progress" or "fixed"<br />
* 0006508 Test Results information is incomplete for itk<br />
* 0006894 Wrong number of dynamic analysis defects<br />
* 0006878 Support for timestamp CTest 2.6<br />
* 0006612 Bad BuildTimeGraph on buildSummary page for continuous build<br />
* 0006843 Support of different cvs/svn/web viewers<br />
* 0006582 CVS Link to a version 1.1 file is invalid<br />
* 0006664 Incorrect timing and detail report on viewTest page<br />
* 0006832 Previous Build Incorrect<br />
* 0006807 RSS feed with private project<br />
* 0006797 Previous build on build summary page<br />
* 0006805 Warning when backup and rss directory are not writable<br />
* 0006798 Warning message when browsing coverage<br />
* 0006772 Warnings when searching for emails on manageProjectRoles page<br />
* 0006472 Add ability to remove bogus builds<br />
* 0006601 Project administrator cannot remove an expected build if it is not submitting<br />
* 0006471 Add a quick way to upload a cvs/svn user to password file for email notification<br />
* 0006715 PROJECT pulldown under DASHBOARD pulldown<br />
* 0006602 Sort by any column on the viewTest and testSummary pages<br />
* 0006681 Fisheye URL support<br />
* 0006653 Mouse-over build groups<br />
* 0006655 Project logo hyperlink<br />
* 0006942: Show Test Time Graph does not toggle in Internet Explorer<br />
* 0006939: Separate lists of failing tests from list of passing tests<br />
<br />
=== Database modification ===<br />
* Added ‘description’ to table buildgroup<br />
* Added cvsviewertype to table project<br />
* Added index siteid in table site2user<br />
* Added index starttime in table build<br />
* Added index name in table test (this might take some time to run)<br />
* Added crc32 with index in table coveragefile <br />
* Compressing coverage (this might take some time to run)<br />
* Add support for timestatus in build2test table</div>Zack