trac osdc nov 2007

35
OpenMedia Trac Project and Process Management for Developers A simple but powerful tool to manage more than just your development process. OSDC Brisbane November 2007 Steven Ellis Technical Director OpenMedia Limited

Upload: openmedia

Post on 28-Nov-2014

2.346 views

Category:

Technology


0 download

DESCRIPTION

TracProject and Process Management for Developers

TRANSCRIPT

Page 1: Trac Osdc Nov 2007

OpenMedia

TracProject and Process Management for Developers

A simple but powerful tool to manage more than just your development process.

OSDC BrisbaneNovember 2007

Steven EllisTechnical Director

OpenMedia Limited

Page 2: Trac Osdc Nov 2007

OpenMedia

Overview

Introduction to Trac Trac Concepts Trac Administration Tips and Tricks

Page 3: Trac Osdc Nov 2007

OpenMedia

What is Trac?

Lightweight web based project management framework

Open Source - Modified BSD License

Developed at http://trac.edgewall.com Widely used by a variety of Open Source

projects

Page 4: Trac Osdc Nov 2007

OpenMedia

Real World Use of Trac

Internal Development OpenMedia - http://openmedia.co.nz

Open Source Projects MythTV - http://svn.mythtv.org/trac/ IVTV - http://ivtvdriver.org/trac/ Pidgin - http://developer.pidgin.im/ Puppet - http://reductivelabs.com/trac/puppet VirtualBox – http://www.virtualbox.org

Page 5: Trac Osdc Nov 2007

OpenMedia

Why Trac?

Provides an integrated approach to managing a software development project or team via the following key features - Ticketing for tasks and bug tracking Documentation via searchable simple to use Wiki Version control through strong support for

Subversion

Strength is in the integrated approach all sections can reference each other

Simple to install, configure, manage and use

Page 6: Trac Osdc Nov 2007

OpenMedia

Key Trac Concepts

Trac is much more than a bug tracker Use Trac to capture even the most mundane

administration tasks Office stationary orders Change of phone or ISP plan

Focus is on a single project rather than a series of projects For OpenMedia our company is the project

Multiple projects off a single install Easy to host a series of projects on a single system

Page 7: Trac Osdc Nov 2007

OpenMedia

Trac Front Page

Page 8: Trac Osdc Nov 2007

OpenMedia

Trac Timeline

Page 9: Trac Osdc Nov 2007

OpenMedia

Trac Roadmap

Page 10: Trac Osdc Nov 2007

OpenMedia

Trac Tickets

Type - e.g. defect, enhancement or task Component - The project module or subsystem Priority - The importance of this bug, task etc. Milestone – Based on Roadmap entries Assigned to - Principal person responsible for

handling this ticket Summary – Single line brief description of the

ticket, be clear and concise Description – Body of the ticket, be descriptive

and make use of the TracWiki syntax

Page 11: Trac Osdc Nov 2007

OpenMedia

Trac New Ticket

Page 12: Trac Osdc Nov 2007

OpenMedia

Trac New Ticket

Page 13: Trac Osdc Nov 2007

OpenMedia

Trac Completed Ticket

Page 14: Trac Osdc Nov 2007

OpenMedia

Trac – Version Control

Doesn't have an integrated version control tool. Leverage's Subversion Support for other Version Control tools in

development Excellent web based browser and diff tool for

Subversion

Page 15: Trac Osdc Nov 2007

OpenMedia

Trac Installation

Number of existing excellent guideshttp://trac.edgewall.org/wiki/TracInstallPlatforms

Minimum of version 0.10.3 Avoids numerous bugs Dag Wieers RPMs for RedHat Consider backports for Debian / Ubuntu

Usable environment, complete with version control, in under 30 minutes

Page 16: Trac Osdc Nov 2007

OpenMedia

Trac Administration

Excellent documentation provided by edgewall Command line management via trac-admin tool

trac-admin help

First specify the location of your Trac environment

trac-admin /var/trac/OSDC

E.g. add Subversion as a component managed by steve

trac-admin /var/trac/OSDC component add \Subversion steve

Page 17: Trac Osdc Nov 2007

OpenMedia

Trac – User Management

Work out how you want to organise your team(s)

Try to start with a clean set of permissions Assign permissions to groups, and then assign

your team to the groups Covered in detail at

http://trac.edgewall.org/wiki/TracPermissions

Recommend installing the TracAdmin plug-in

Page 18: Trac Osdc Nov 2007

OpenMedia

Trac – Tips and Tricks

How can we make the best use of any project management tool?

Focus is on Trac, but could be applied to other tools such as bugzilla launchpad

Page 19: Trac Osdc Nov 2007

OpenMedia

Use Trac to Set-up Trac

Use Trac to document the set-up of your Trac and Subversion environment E.g. your first ticket could be around setting up your

Subversion environment

Page 20: Trac Osdc Nov 2007

OpenMedia

TracLinks

TracLinks allows seamless linking between tickets, the wiki and subversion Wiki pages should use CamelCase where possible,

or [wiki:Page] where this isn't appropriate Tickets can be referenced via #number or

[ticket:number] e.g. #27 or [ticket:27] Subversion change sets can be referenced by

revision number e.g. r21 or [changeset:21] You can link to a specific location with your

Subversion repository via source:/path e.g. [source:/trunk/project/documentation/Readme]

Page 21: Trac Osdc Nov 2007

OpenMedia

TracLinks Examples

A new ticket 91 with the following description:Work on NewFeature picking up from #57 as r81 does not meet the design covered in [wiki:Design1]

We then might complete some changes in Subversion and include the following in the commit message:

Reworked NewFeature for ticket #91. Complex re factoring of code to meet design

This change references back to the ticket, plus the ticket references documentation, an old ticket, and a subversion commit

Page 22: Trac Osdc Nov 2007

OpenMedia

Subversion post-commit hook

Highly recommend development teams to utilise the trac-post-commit-hook add-on

Installation details covered in the Trac FAQhttp://trac.edgewall.org/wiki/TracFaq

Auto-updates Trac tickets by using a simple syntax in Subversion commit messages Closes #ticket – Marks ticket closed with comment Refs #ticket – Just adds comment to ticket

Page 23: Trac Osdc Nov 2007

OpenMedia

post-commit-hook example

Based off our earlier example, restructure the Subversion commit as follows:

svn commit -m “Work on NewFeature r81 as it does not meet the design covered in [wiki:Design1], refs #91 #93, closes #57”

This commit will update 3 tickets #91 and #93 which will remain in their current state

with the new comment added #57 will get the comment and be marked as fixed

Page 24: Trac Osdc Nov 2007

OpenMedia

Never commit without a ticket

If you are doing any version control updates that don't reference or close a ticket you aren't making the best use of Trac

Even simple tasks can benefit from capturing the process of performing the work

It can look better when you close a lot of tickets today

Page 25: Trac Osdc Nov 2007

OpenMedia

Sub Tickets

Important to break out larger tasks into logical items of work

A current weakness of Trac - No inbuilt method of generating sub-tickets TracHacks website has an sub-ticket add-on -

Adds a custom field to all tickets that can point at a parent

Parent and child can see connection Parent cannot be closed until all children are also closed

Easy to define a manual process for handling sub-tickets, but plug-in simplifies process

Page 26: Trac Osdc Nov 2007

OpenMedia

Version more than your code

Avoid poor document management standards -Design Document rev57a(steve's copy).doc

Subversion is less than ideal for binary formats If you don't have a document management system

it can still prove to be a life saver.

Tickets can track work on documents - Who were all of the contributors?

You can refer to older document revisionsPlease reference [source:/trunk/docs/design.doc@57 design doc] revision 57 as an example of how not to write documentation

Page 27: Trac Osdc Nov 2007

OpenMedia

CSV files rock

All text file formats rock because: Version control can efficiently deal with them. It is a lot easier to do a diff between document

revisions on the command line with Subversion. Trac has an excellent visual Subversion diff tool.

Page 28: Trac Osdc Nov 2007

OpenMedia

Backups

You know it makes sense Trac and Subversion have a simple mechanism

to perform a hot backup E.g. you could use a simple wrapper script

DATE=`date +%Y%m%d`

svnadmin hotcopy /var/svn/OSDC/ /backup/svn.$DATE

trac-admin /var/trac/OSDC/ hotcopy \/backup/trac.$DATE

Backup trees are a fully working environment Simply copy into correct location to recover

Page 29: Trac Osdc Nov 2007

OpenMedia

Tag milestones on release

Tag each release in subversion as part of closing a Roadmap milestone

Tags are cheap in Subversion – use them Make sure all changes are committed to Subversion Create a Subversion tag based on your release

svn copy http://trac.ourcompany.org/svn/OSDC/trunk \http://trac.ourcompany.org/svn/OSDC/tags/release-0.1 \-m "First Release milestone"

Link milestone description to revisionRelease tagged in r81

Close the milestone and re-assign any open tickets

Page 30: Trac Osdc Nov 2007

OpenMedia

WikiMacros

Covered in detail in integrated documentation [[PageOutline]]

Table of contents of a wiki page based on headings.

A must have once a wiki entry exceeds a page

[[Image]] Provides control when embedding images

InterTrac and InterWiki Rapid links to other sources such as MythTV Trac

or Wikipedia, e.g. [mythtv:ticket]

Page 31: Trac Osdc Nov 2007

OpenMedia

Don't go plug-in crazy

Lots of cool stuff on TracHacks Do you really need the plug-in? How well supported is it?

Will it work in the next release of Trac?

Make sure you test in a sandbox environment Same rules apply to adding additional Macros

Page 32: Trac Osdc Nov 2007

OpenMedia

The not so good

Relatively few niggles Administration

0.11 released has integrated the TracAdmin plug-in Permission model needs improving

Can't have public and private wiki sections Customer or public tickets and internal tickets.

Work flow Small improvements in 0.11

Inconsistencies You can diff a wiki page, but not a ticket description

Page 33: Trac Osdc Nov 2007

OpenMedia

The Future is Bright

Some of the enhancements of interest - Additional database support -

Currently sqlite Work under way to support postgresql and mysql

Additional Version Control support - Tool is originally based off CVSTrac Primary backend is Subversion Work under way to support Mercurial, bzr and git -http://trac.edgewall.org/wiki/VersioningSystemBackend

Page 34: Trac Osdc Nov 2007

OpenMedia

Links and References

Edgewall http://www.edgewall.org/ http://trac.edgewall.org/

TracHacks http://trac-hacks.org/wiki/TracHacks

OpenMedia http://www.openmedia.co.nz

myPVR http://www.mypvr.co.nz

Page 35: Trac Osdc Nov 2007

OpenMedia

Questions