Hi,

Here's what I've done so far:

1. Separate prepare build from actual build
    - introduce PrepareBuildProjectsTask and
PrepareBuildProjectsTaskExecutor

2. Model change
    - added ProjectScmRoot ( which is used when updating ). Fields
(scmRootAddress, error, state, oldstate, projectGroup)
    - added scmRootAddress to Project which is the scmUrl of the root
project it belongs to.
    - added scmResult to Project. ( the scmResult in the BuildResult object
will no longer be used )

3. Group level updates
    - update all projects first before building them one by one.

4. Prepare build
    - state goes to the ProjectScmRoot; either updated (success) or error
only.
    - sets scmResult of project

5. Building
    - checks if ProjectScmRoot of the project is in successful state,
otherwise, do not build
    - no more scmResult in the build result of a project (it's still there
but no longer being used)

6. Cancelled build
    - no build result
    - project's state is set to it's previous state

7. UI
    - added ProjectScmRoot information
    - status icons: check for successful state, cross for error state
    - viewing of result: no result for successful state; click the
cross('x') icon to view the error.

8. Notification Mail    - configurable notification when scm failed.


Comments, suggestions and/or violent reactions are welcome :)


Thanks,
--
Marica

Reply via email to