Trac Osdc Nov 2007
Upcoming SlideShare
Loading in...5
×
 

Trac Osdc Nov 2007

on

  • 2,186 views

Trac

Trac
Project and Process Management for Developers

Statistics

Views

Total Views
2,186
Views on SlideShare
2,184
Embed Views
2

Actions

Likes
0
Downloads
37
Comments
0

1 Embed 2

http://www.slideshare.net 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Trac Osdc Nov 2007 Trac Osdc Nov 2007 Presentation Transcript

  • 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 OpenMedia
  • Overview Introduction to Trac  Trac Concepts  Trac Administration  Tips and Tricks  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 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  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  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 OpenMedia single system 
  • Trac Front Page OpenMedia
  • Trac Timeline OpenMedia
  • Trac Roadmap 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  OpenMedia and make use of the TracWiki syntax
  • Trac New Ticket OpenMedia
  • Trac New Ticket OpenMedia
  • Trac Completed Ticket 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 OpenMedia
  • Trac Installation Number of existing excellent guides  http://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 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 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  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  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 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] 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 OpenMedia
  • Subversion post-commit hook Highly recommend development teams to  utilise the trac-post-commit-hook add-on Installation details covered in the Trac FAQ  http://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  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  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 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 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 revisions  Please reference [source:/trunk/docs/design.doc@57 design doc] revision 57 as an example of how not to write documentation 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.  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  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 quot;First Release milestonequot; Link milestone description to revision  Release tagged in r81 Close the milestone and re-assign any open tickets  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] 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  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 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 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  OpenMedia
  • Questions OpenMedia