Author: | Richard Jones |
---|---|
Date: | August 27, 2007 |
This file documents the work undertaken for Chris Ryland @emsoftware.com for the purposes of integrating Roundup and Subversion.
This project will integrate Subversion and Roundup, with the following goals:
The integration will take the form of two components:
Information needs to be passed to Roundup from Subversion when a commit takes place. This will be handled by the script notify-roundup.py
The trigger for talking to Roundup will be a token in the change log message formatted on a new line as:
<issue designator> [<new status>]
for example:
issue3 issue123 resolved issue12 done-cbb
The information required to work with Roundup will include:
A hook script that directly accesses a Roundup tracker will be able to use the Roundup API to create new revisions, messages and modify issues according to the information extracted from the change log message.
In this scenario, information is passed to Roundup using the standard mail gateway. The message will be crafted to have a Subject: line:
[<designator>] SVN commit message [status=<new status>]
An auditor on the Roundup side parses the incoming message to extract the repository (host, path) and the revision number.
To determine the author of the change message, the Subversion username must be translated into an email address that your tracker may identify. The simplest method of doing this is to append an email domain, thus creating "<username>@<email-domain>". This domain is configured using the "email :: default-domain" variable in the configuration file.
If some Subversion users don't have convenient email addresses like this, then you may specify either just the name part or their whole address in the configuration file. See the "address mappings" configuration file description below.
The script notify-roundup.py implements both a "local" and "email" mode of operation, controlled by a configuration file (see notify-roundup.ini for a sample configuration).
Information needs to be handled, stored and presented to the user. A single Link to a Subversion revision will appear on each message, which is obviously optional. It is automatically set by the Subversion hook script notify-roundup.py
We will want to formally store Subversion revision numbers relevant to an issue. These will then be used to format links from the issue to a Subversion web interface which may view information about the revision.
All deliverables will be made publicly available.
Accompanying Files:
2007-08-27 - 1.5
- Fixed svn_repo permission advice.
2004-04-31 - 1.4
- Document permission assignments required to create svn_rev items
2005-04-27 - 1.3
- Fixed suggested formatting of viewcvs_url to format as integer
- Fixed traceback in notify-roundup.py
2005-05-16 - 1.2
- Status wasn't being set by ID in local mode
- Wasn't catching errors in local changes, hence not cleaning up db correctly
- svnauditor.py wasn't handling the fifth argument from notify-roundup.py
- viewcvs_url formatting wasn't quite right
2005-05-04 - 1.1
- Several fixes from Ron Alford
- Don't change issue titles to "SVN commit message..."
2005-04-26 - 1.0
- Initial version released