 ------
 Edit a Project
 ------
 Emmanuel Venisse
 Olivier Lamy
 ------
 Oct 3 2007
 ------

Edit a Project

~~%{toc|section=0}

* {Project View}

  When you edit a project from the Group Summary page, you will see basic information.
  The first part of the page contains information regarding:

  * project name

  * project version 

  * project scm url

  * project Last Build Date

  * all build definitions attached to the project

  []

[../../images/project-view-top.png] Project View Top

  With the <<<'Edit'>>> button, you can change some project informations like the scm url if your project was moved.
  With the <<<'Build Now'>>> button, you build the project manually with the default build definition.

  Second part contains information regarding:

  * project notifiers

  * project dependencies

  * project developpers

  []

[../../images/project-view-bottom.png] Project View Bottom

* {Build Results}

  You can view all project's Build Results with the link Builds 
  You will see all build results summary : start/end Time, result.
  It's possible to delete some build results with checkboxes

[../../images/build-results.png] Build Results

  Now you can edit a build result

* {Build Result}

  Editing a build result will display :

  * scm changes (author and file path)

  * project dependencies (project recorded in this continuum instance)

  * detail of the build definition used

  * the full build command line output

  []

[../../images/build-result.png] Build Result




