Upload
sorley
View
49
Download
2
Embed Size (px)
DESCRIPTION
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 - PowerPoint PPT Presentation
Citation preview
This work was performed under the auspices of the U.S. Department of Energy by the University of CaliforniaLawrence Livermore National Laboratory under Contract No. W-7405-Eng-48.
Lawrence Livermore National Laboratory, P.O. Box 808, Livermore, CA 94551-0808
Identifying Marker. 1
A Tour of Roundup
Paul F. Dubois
AX-Division
Contributing Editor, IEEE Computing in Science and Engineering
Identifying Marker. 2
Unclassified
Unclassified
This talk is in increasing order of geekiness.
1.What is Roundup, and why is it useful?
2.A demo
3.Some technical / managerial details and suggestions
4.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.
Identifying Marker. 3
Unclassified
Unclassified
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.
Identifying Marker. 4
Unclassified
Unclassified
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.
Identifying Marker. 5
Unclassified
Unclassified
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.
Identifying Marker. 6
Unclassified
Unclassified
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.
Identifying Marker. 7
Unclassified
Unclassified
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.
Identifying Marker. 8
Unclassified
Unclassified
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.
Identifying Marker. 9
Unclassified
Unclassified
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.
Identifying Marker. 10
Unclassified
Unclassified
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.
Identifying Marker. 11
Unclassified
Unclassified
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
Identifying Marker. 12
Unclassified
Unclassified
A tracker is created in two steps.
1. 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.
2. 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
Identifying Marker. 13
Unclassified
Unclassified
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.
Identifying Marker. 14
Unclassified
Unclassified
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.
Identifying Marker. 15
Unclassified
Unclassified
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.
Identifying Marker. 16
Unclassified
Unclassified
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.
Identifying Marker. 17
Unclassified
Unclassified
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.
Identifying Marker. 18
Unclassified
Unclassified
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
Identifying Marker. 19
Unclassified
Unclassified
We have additional scripts that run periodically to enhance Roundup.
1. Email users a list of open issues assigned to them.
2. Email users a list of unassigned bugs.
3. Transfer comments made in source code submissions to the Roundup issues they pertain to, and close those issues if desired.
Identifying Marker. 20
Unclassified
Unclassified
Identifying Marker. 21
Unclassified
Unclassified
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.
Identifying Marker. 22
Unclassified
Unclassified
Demo
• This is the demo that comes with Roundup. After installing Roundup, run it to be sure your installation works.
Identifying Marker. 23
Unclassified
Unclassified
The email sent can be replied to, and has a link to the issue.
From: "Michael R. Zika Kull Tracker" <[email protected]>To: [email protected], [email protected], [email protected]: [issue925] Can we stop the code based on some conditional?Date: 26 Jul 2006 20:53:00 +0000
Michael R. Zika <[email protected]> added the comment:
<snip> contents omitted
_________________________________________Kull Issue Tracker <[email protected]><https://bugzi.llnl.gov/kull/issue925>
Support address
Link to issue
Identifying Marker. 24
Unclassified
Unclassified
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.
Identifying Marker. 25
Unclassified
Unclassified
I like putting Roundup “behind” the web server.
1) User logs into https://myplace.llnl.gov/mytracker
2) Web server is configured with “proxy pass” to redirect this traffic tohttp://myplace.llnl.gov:8070/mytracker
3) 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.
Identifying Marker. 26
Unclassified
Unclassified
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.
Identifying Marker. 27
Unclassified
Unclassified
There are two¹ ways to configure the email access.
• Get ‘[email protected]’ 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.
Identifying Marker. 28
Unclassified
Unclassified
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
Identifying Marker. 29
Unclassified
Unclassified
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.
Identifying Marker. 30
Unclassified
Unclassified
Customizing is probably a 200-level job.
• HTML -> TAL -> METAL languages just for the html area.
• Understanding of database basics.
• Python for the detectors.
Identifying Marker. 31
Unclassified
Unclassified
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.