SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
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

Mais conteúdo relacionado

Semelhante a Trac Osdc Nov 2007

Trac Project And Process Management For Developers And Sys Admins Presentation
Trac  Project And Process Management For Developers And Sys Admins PresentationTrac  Project And Process Management For Developers And Sys Admins Presentation
Trac Project And Process Management For Developers And Sys Admins Presentationguest3fc4fa
 
Full stack development best practice and toolset
Full stack development best practice and toolsetFull stack development best practice and toolset
Full stack development best practice and toolsetReid Lai
 
Declare Your Language: What is a Compiler?
Declare Your Language: What is a Compiler?Declare Your Language: What is a Compiler?
Declare Your Language: What is a Compiler?Eelco Visser
 
Red Teaming macOS Environments with Hermes the Swift Messenger
Red Teaming macOS Environments with Hermes the Swift MessengerRed Teaming macOS Environments with Hermes the Swift Messenger
Red Teaming macOS Environments with Hermes the Swift MessengerJustin Bui
 
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Global Summit - Real-time Media Stream Processing Using KurentoFIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Global Summit - Real-time Media Stream Processing Using KurentoFIWARE
 
Docker Application to Scientific Computing
Docker Application to Scientific ComputingDocker Application to Scientific Computing
Docker Application to Scientific ComputingPeter Bryzgalov
 
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitThe DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitMarco Ferrigno
 
The DevOps Paradigm
The DevOps ParadigmThe DevOps Paradigm
The DevOps ParadigmNaLUG
 
Developer-Friendly CI / CD for Kubernetes
Developer-Friendly CI / CD for KubernetesDeveloper-Friendly CI / CD for Kubernetes
Developer-Friendly CI / CD for KubernetesDevOps Indonesia
 
Programming the Network Data Plane
Programming the Network Data PlaneProgramming the Network Data Plane
Programming the Network Data PlaneC4Media
 
Version Uncontrolled! How to Manage Your Version Control
Version Uncontrolled! How to Manage Your Version ControlVersion Uncontrolled! How to Manage Your Version Control
Version Uncontrolled! How to Manage Your Version ControlRevelation Technologies
 
NuGet beyond Hello World - DotNext Piter 2017
NuGet beyond Hello World - DotNext Piter 2017NuGet beyond Hello World - DotNext Piter 2017
NuGet beyond Hello World - DotNext Piter 2017Maarten Balliauw
 
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Global Summit - Real-time Media Stream Processing Using KurentoFIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Global Summit - Real-time Media Stream Processing Using KurentoFIWARE
 
Techniques and lessons for improvement of deployment processes
Techniques and lessons for improvement of deployment processesTechniques and lessons for improvement of deployment processes
Techniques and lessons for improvement of deployment processesSander van der Burg
 
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...OpenShift Origin
 
Connect Everything with NATS - Cloud Expo Europe
Connect Everything with NATS - Cloud Expo EuropeConnect Everything with NATS - Cloud Expo Europe
Connect Everything with NATS - Cloud Expo Europewallyqs
 
The world of Docker and Kubernetes
The world of Docker and Kubernetes The world of Docker and Kubernetes
The world of Docker and Kubernetes vty
 

Semelhante a Trac Osdc Nov 2007 (20)

Trac Project And Process Management For Developers And Sys Admins Presentation
Trac  Project And Process Management For Developers And Sys Admins PresentationTrac  Project And Process Management For Developers And Sys Admins Presentation
Trac Project And Process Management For Developers And Sys Admins Presentation
 
Link. LaTeX
  Link. LaTeX  Link. LaTeX
Link. LaTeX
 
Full stack development best practice and toolset
Full stack development best practice and toolsetFull stack development best practice and toolset
Full stack development best practice and toolset
 
Declare Your Language: What is a Compiler?
Declare Your Language: What is a Compiler?Declare Your Language: What is a Compiler?
Declare Your Language: What is a Compiler?
 
Red Teaming macOS Environments with Hermes the Swift Messenger
Red Teaming macOS Environments with Hermes the Swift MessengerRed Teaming macOS Environments with Hermes the Swift Messenger
Red Teaming macOS Environments with Hermes the Swift Messenger
 
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Global Summit - Real-time Media Stream Processing Using KurentoFIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
 
Docker Application to Scientific Computing
Docker Application to Scientific ComputingDocker Application to Scientific Computing
Docker Application to Scientific Computing
 
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitThe DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
 
The DevOps Paradigm
The DevOps ParadigmThe DevOps Paradigm
The DevOps Paradigm
 
Developer-Friendly CI / CD for Kubernetes
Developer-Friendly CI / CD for KubernetesDeveloper-Friendly CI / CD for Kubernetes
Developer-Friendly CI / CD for Kubernetes
 
Programming the Network Data Plane
Programming the Network Data PlaneProgramming the Network Data Plane
Programming the Network Data Plane
 
Version Uncontrolled! How to Manage Your Version Control
Version Uncontrolled! How to Manage Your Version ControlVersion Uncontrolled! How to Manage Your Version Control
Version Uncontrolled! How to Manage Your Version Control
 
NuGet beyond Hello World - DotNext Piter 2017
NuGet beyond Hello World - DotNext Piter 2017NuGet beyond Hello World - DotNext Piter 2017
NuGet beyond Hello World - DotNext Piter 2017
 
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Global Summit - Real-time Media Stream Processing Using KurentoFIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
 
Techniques and lessons for improvement of deployment processes
Techniques and lessons for improvement of deployment processesTechniques and lessons for improvement of deployment processes
Techniques and lessons for improvement of deployment processes
 
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
 
sveltekit-en.pdf
sveltekit-en.pdfsveltekit-en.pdf
sveltekit-en.pdf
 
Connect Everything with NATS - Cloud Expo Europe
Connect Everything with NATS - Cloud Expo EuropeConnect Everything with NATS - Cloud Expo Europe
Connect Everything with NATS - Cloud Expo Europe
 
Dektec
DektecDektec
Dektec
 
The world of Docker and Kubernetes
The world of Docker and Kubernetes The world of Docker and Kubernetes
The world of Docker and Kubernetes
 

Último

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 

Último (20)

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 

Trac Osdc Nov 2007

  • 1. 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
  • 2. Overview Introduction to Trac  Trac Concepts  Trac Administration  Tips and Tricks  OpenMedia
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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 
  • 7. Trac Front Page OpenMedia
  • 8. Trac Timeline OpenMedia
  • 9. Trac Roadmap OpenMedia
  • 10. 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
  • 11. Trac New Ticket OpenMedia
  • 12. Trac New Ticket OpenMedia
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. 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
  • 31. 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
  • 32. 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 
  • 33. 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
  • 34. 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
  • 35. Questions OpenMedia