Software Development With Trac

Author: Matt Good
Date: 2007-02-25

What is Trac?

Trac is an enhanced wiki and issue tracking system for software development projects. Trac uses a minimalistic approach to web-based software project management. Our mission is to help developers write great software while staying out of the way.

Who uses Trac?

Who uses Trac?

Who uses Trac?

ruby_on_rails.png

Who uses Trac?

Next Python web framework?

Software project management

Common tools for managing software projects

Problem: Information is scattered across different systems

Trac's Purpose

Provide a consistent/integrated interface to this project information

Integration: Timeline

timeline.png

Consistency

Wiki syntax used throughout Trac

Integration: Linking

Wiki's key feature is linking

Linking example

workflow/annotate.png

Extending

Different organizations have different needs

Write extensions in Python

Macros
Define function for use in the wiki
Plugins
Extend current components or add new ones

Existing macros and plugins at http://trac-hacks.org

Macro Example

Save as "plugins/whoami.py"

from trac.wiki.macros import WikiMacroBase

class WhoAmIMacro(WikiMacroBase):
    """ Usage: `[[WhoAmI]]` """
    def render_macro(self, formatter,
                     name, content):
        user = formatter.req.authname
        return 'You are: ' + user

Plugins

Plugins: Bitten

bitten-builds.png