trac osdc nov 2007
DESCRIPTION
TracProject and Process Management for DevelopersTRANSCRIPT
![Page 1: Trac Osdc Nov 2007](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/2.jpg)
OpenMedia
Overview
Introduction to Trac Trac Concepts Trac Administration Tips and Tricks
![Page 3: Trac Osdc Nov 2007](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/7.jpg)
OpenMedia
Trac Front Page
![Page 8: Trac Osdc Nov 2007](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/8.jpg)
OpenMedia
Trac Timeline
![Page 9: Trac Osdc Nov 2007](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/9.jpg)
OpenMedia
Trac Roadmap
![Page 10: Trac Osdc Nov 2007](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/11.jpg)
OpenMedia
Trac New Ticket
![Page 12: Trac Osdc Nov 2007](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/12.jpg)
OpenMedia
Trac New Ticket
![Page 13: Trac Osdc Nov 2007](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/13.jpg)
OpenMedia
Trac Completed Ticket
![Page 14: Trac Osdc Nov 2007](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/31.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/32.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/33.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/34.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051323/5481276db4af9fea158b5e7e/html5/thumbnails/35.jpg)
OpenMedia
Questions