# Trac

Trac é uma simples ferramenta, open source e de interface web para controle de mudanças em projetos de desenvolvimento de software. O objetivo do software é ajudar o desenvolvedor a rastrear essas mudanças, entender o porque de cada uma e qual o seu impacto no projeto como um todo.
O software foi desenvolvido na linguagem de programação Python e está disponível sob uma licença GPL desde meados de 2005. Desde a versão 0.9, é disponibilizado sob uma licença BSD modificada.
Entre os diversos usuários do software temos o Laboratório de Propulsão a Jato da NASA, que usa a ferramenta para controle de vários projetos. Uma lista mais completa de usuários do Trac pode ser obtida no seu próprio site.

## Recursos do Trac

* Controle de mudanças;
* Wiki para documentação colaborativa e referência cruzada entre os elementos do Trac;
* Integração com o Subversion (Trac também funciona como um browser do repositório do Subversion);
* Acompanhamento da evolução do projeto.

## Benefícios obtidos com o uso do Trac

* Melhoria na qualidade do produto e do processo de desenvolvimento;
* Registro, rastreamento e controle das mudanças sofridas pelo projeto durante o seu ciclo de vida;
* Integração entre o controle de versão e o controle de mudança;
* Acompanhamento básico da evolução do projeto;
* Melhor documentação do projeto através de participação da equipe de desenvolvimento.

## Controle de mudanças

Para o controle de mudanças, existe um elemento chamado ticket que pode conter registros de defeitos (ou bugs), pedidos de melhoria e tarefas do projeto, sendo útil para obtenção de informações sobre a construção do projeto.
Todas as anotações complementares e mudanças feitas após a criação do ticket são mantidas, formando um histórico da evolução do mesmo.
Dessa forma, as mudanças que foram solicitadas e as alterações feitas no software a partir delas são rastreadas por amarrações feitas pelos links criados através da formatação Wiki.
No sistema de controle de versão, geralmente o SVN, a amarração é entre o conjunto de mudanças (ChangeSet), que é publicado no repositório, e o ticket (ou outros elementos do Trac) por meio de mensagens de log.
Veja mais informações sobre tickets no site do projeto - TracTickets, ou consulte os tickets do projeto na página de relatórios.

## Wiki

O Wiki serve como um elemento de documentação colaborativa do projeto e como um repositório central de referências cruzadas entre todos os elementos do Trac. O Wiki deve ser encarado como uma ferramenta para o aumento da interação entre os membros da equipe de desenvolvedores. O texto em Wiki tem uma sintaxe diferente e mais simples do que HTML, permitindo uma maior facilidade para que os membros da equipe incluam novo conteúdo e alterem o conteúdo existente.
A rede de links formada pelo wiki entre os elementos do Trac fornece uma visão abrangente de todo o projeto. E este é um dos diferenciais mais importantes do Trac em relação a outros softwares similares.
Para saber mais sobre os recursos de Wiki do Trac, veja o guia TracWiki no site do projeto.

## Integração com o Subversion

O Trac é integrado ao Subversion e oferece como um de seus recursos principais um browser do repositório do Subversion, permitindo a navegação pela árvore de diretórios e a visualização de diversos elementos do Subversion tais como a estrutura de diretórios, logs de mudanças efetuadas, diferenças entre revisões, enfim, oferecendo aos desenvolvedores e usuários uma excelente interface para o repositório SVN.

## Acompanhamento da evolução do projeto

O acompanhamento da evolução do projeto pode ser feita através do acompanhamento do estado dos tickets e através de milestones, que são pontos de checagem ou marcos de desenvolvimento definidos no projeto.

## Alguns projetos que usam o Trac

* O próprio projeto do Trac
* Radiant CMS Arquivado em 4 de junho de 2006, no Wayback Machine. - sistema de gerenciamento de conteúdo desenvolvido em Ruby on Rails
* Uma lista mais completa pode ser obtida em TracUsers
* Wordpress - sistema de gerenciamento de conteúdo