310 likes | 476 Views
A Tour of Roundup. Paul F. Dubois AX-Division Contributing Editor, IEEE Computing in Science and Engineering. This talk is in increasing order of geekiness. What is Roundup, and why is it useful? A demo Some technical / managerial details and suggestions
E N D
A Tour of Roundup Paul F. Dubois AX-Division Contributing Editor, IEEE Computing in Science and Engineering
This talk is in increasing order of geekiness. • What is Roundup, and why is it useful? • A demo • Some technical / managerial details and suggestions • Special guest appearance: real geeks from NIF “Wait for it” – Radar O’Reilly If your question is more geeky than my current level, wait and see.
Roundup is a versatile issue tracker. “Issues” may represent: • Bug reports, • Wishes and features, • FAQs, • Reports, • Handy files / examples, • Notices to users or project members.
Issues have many parts. An issue • Is classified by a priority, • Annotated by a status and keywords, • Can be assigned to someone, • Can have attached files, • Has an email mini-list of “nosy” people. • Has a time-stamped audit trail.
Users submit issues and follow ups by web or email. • Users can send mail about issues to a support address, or reply to mail received from the tracker. • Users can log on to the website to see / search / modify issues.
Users manage their own details. • Using the tracker, a user can change their password, email, phone number, name, etc. • Registration can have email confirmation. • Anonymous bug reports can be allowed, or not. Not.
Choose your attitude toward the unwashed public. • Allow anonymous users, or not, or with restrictions. • Give different users different abilities. • Show users with different privileges different views of the data. Even public sites like Python’s tracker have found that anonymous bug reports are a bad idea.
Nosy lists are Roundup’s big advantage. • New comments about an issue generate mail to the issue’s “nosy list”. • These custom mini-lists balance the amount of email each person gets. • Artificial ‘mail list’ users can be added.
The nosy lists are user managed. • Starts with the issue’s author and anyone he adds. • Those who comment on the issue are added. • Anyone who gets “nosy” can add themselves. • Anyone disinterested can remove themselves.
You can email new issues to a “triage team”. • This ensures that every new issue is seen by someone. • The small reactor for this is in the customization manual, but just ask me and I’ll mail you mine.
Roundup is easy to install and use. • Download / install Python • Download Roundup and install runtime. No compiling required, it is in pure Python. • Any platform
A tracker is created in two steps. • Creation: roundup-admin init • This populates the tracker with database and html templates. • Edit the configuration file to state your url and email, choose some options. • Initialize: roundup-admin initialise. • Note the s, it is Australian • Edit and install server-ctl script. • Set up desired email gateway. Execute server-ctl start • Set up “keep-alive” cron job: server-ctl condstart
You have choices*. • A tracker has: • A database* (change what kind of db) • A database schema* (add more fields) • A set of html templates* (look and feel) • Detectors* (audit/react) • Extensions* (new, I don’t know them) • All defaults are reasonable, but within very wide limits you can change almost everything.
One server can manage many trackers. • An organization can run one server that serves several different trackers. • This makes the most sense if the different projects can agree on most customizations so that a base customization is then branched to the separate projects.
You can add Python scripts that screen and react to changes. • “Detectors” come in two flavors: • Auditor: called when something is about to change, and gives you a chance to veto or modify it. • Reactor: called after something has changed, gives you a chance to do something in response. • The “nosy reactor” handles the nosy email, for example.
Here are some of our customizations. • Project name in corner of each page. • Restricting assignment of issues to developers not users. • Adding due dates for issues. • Added priorities for FAQ, Notices. • Special treatment of status reports. • Customized (remembered) searches. • Link to “news” synchronized with source control. • Link to project documentation.
We use our tracker for more than bugs and wishes. • FAQ • An issue when it is closed can often become an FAQ. We just give the issues priority and status of “faq”. • Status reports • Status reports have a keyword “Status Report” and their nosy lists don’t email. • Each contributes their report to the current “issue” • Instant archive of progress reports.
Non-bug issues include features and wishes. • Features • Explanations of “how it is”, arguments about how it should be. • Wishes • User / developer requests for enhancement
We have additional scripts that run periodically to enhance Roundup. • Email users a list of open issues assigned to them. • Email users a list of unassigned bugs. • Transfer comments made in source code submissions to the Roundup issues they pertain to, and close those issues if desired.
A link to “project news” on the first page shows you our main-line news directory in the project source. • HTML link from main page to a “news” subdirectory. • The news subdirectory is updated periodically with the source control system’s “sync” to copy the “main/news” directory from source control. • This news directory has documentation of the latest changes submitted by the author along with their source changes.
Demo • This is the demo that comes with Roundup. After installing Roundup, run it to be sure your installation works.
The email sent can be replied to, and has a link to the issue. Support address From: "Michael R. Zika Kull Tracker" <kullsupport@llnl.gov>To: brantley1@llnl.gov, dubois1@llnl.gov, tbyang@llnl.govSubject: [issue925] Can we stop the code based on some conditional?Date: 26 Jul 2006 20:53:00 +0000Michael R. Zika <zika@llnl.gov> added the comment:<snip> contents omitted _________________________________________Kull Issue Tracker <kullsupport@llnl.gov><https://bugzi.llnl.gov/kull/issue925> Link to issue
There are 3 ways to deploy the server. • Stand-alone server on a blocked port, with proxy-pass from (possibly secure) web server. (See next slide) • Stand-alone server on a public port. • As a CGI in the web server.
I like putting Roundup “behind” the web server. • User logs into https://myplace.llnl.gov/mytracker • Web server is configured with “proxy pass” to redirect this traffic tohttp://myplace.llnl.gov:8070/mytracker • Roundup server runs on blocked port 8070. Root must configure the web server by adding two lines; everything else can be done as a “normal” user.
An artificial user that owns roundup is a good idea. • User “roundup” runs the server. • Maintainers login as themselves, then sudo su roundup to “become” this user. This is thus a shared account without a shared password. • User “roundup” runs the cron jobs for server-keep-alive, mail gateway, etc.
There are two¹ ways to configure the email access. • Get ‘mysupport@llnl.gov’ POP account. • Run roundup-mailgw every few minutes using a cron job to fetch mail from mail.llnl.gov. • Use a mail alias on server’s machine that pipes mail into roundup-mailgw. • For classified servers, use this one. User “mail” and user “roundup” must be in a group. ¹I lied, there is a third way I can’t explain.
Manage customizations with your source-control system. • Main line: Roundup as shipped • Branch to: Ours • Modify Ours as desired and install tracker. • When a new version of Roundup arrives, install it as changes to main line, then integrate main to “Ours”. • Use merge tools to resolve conflicts
The effort is proportional to the amount of customization. • No backup needed except as normally done on the machine. • Moving to a new machine is a small effort. • The database can export / import csv files. • Users do not seem to need much if any training.
Customizing is probably a 200-level job. • HTML -> TAL -> METAL languages just for the html area. • Understanding of database basics. • Python for the detectors.
We love Roundup. • Just the right amount of communication. • For many developers, Roundup is their todo list. • We think the email interface / nosy lists are the key. The first page displays the bug list without further action. • History is captured, everything is searchable.