Google Summer of Code 2009 Roundup improvements
Mario Đanić
Summary
Roundup is a simple-to-use and -install issue-tracking system with command-line, web and e-mail interfaces.
Roundup has long been recognized as one of the most flexible issue-tracking systems in existance. One of the features it always lacked was integration with various version control systems. While Roundup Subversion extension tried to provide small-ish feature set such an integration could provide, it suffered from various problems and lack of miscellaneous useful features.
Roundup as ... The following features need to be implemented in order to facilitate adoption of Roundup during project's entire lifecycle: Issue status change via tokens embedded into commit messages Changes review o Check if code applies cleanly to target repository/branch o Diff (unified and side-by-side) Attach a repository/mainline pair to a project o Attach branches to milestones o Attach (external) repository/branch to an issue Source browser Buildbot integration
Use-cases Issue status change via tokens embedded into commit messages
START
hg commit –m “Fixed #321” Change tokens Repository
Bug #321 – status: closed
Branch
END
Use-case 1: Bug gets fixed in mainline
START
hg commit –m “Fixed #321” Change tokens Repository
Potential fix available in $repo/$branch
Branch
END
Use-case 2: Contributor fixes a bug
Relatively simple feature whose aim is to get a few seconds for development tasks, rather then bug management tasks.
Changes review
START
hg commit –m 'Implemented caching'
Generate patch hg diff -p -U 8 roundup/ > 123.patch
Attach patch to Enchantment request #123
Review, review, review
Commit to mainline
END
Use-case 3: Contributor submits a patch Changes review is at the core of what we are trying to achieve. The reason for that is not the review itself, because that will consist of a (technically) fairly simple cycle of comments in the appropriate bug
on the tracker. The main reason why this is so important is that Roundup gets to know about the new „patch“ type with two attributes attached to it: repository and branch. Such new type type allows buildbot-integration and merge possibility checking. On top of that, patch type will get several kinds of rendering, with two of them being most prominent: unified and side-by-side comparison.
Attach a repository/mainline pair to a project This feature is a requirement for „Issue status change via tokens embedded into commit messages“ specification, in particular its advanced features like display of possible fixes to a certain bug in external repositories. There should be a pretty UI to attach the pair, leaving manual configuration and the possibility of mistake to minimum.
Source browser All the cool kids have a source browser these days, and so Roundup should have one too, with Ajax sprinkles and all that.
Buildbot integration Running regression tests automatically is very important. Slick integration of Buildbot in Roundup would give us all-in-one development portal, reducing time needed to look up certain things and definitely reducing complexity which in the end should give more time to the developers to do what they do best.