OpenWrt as an open source software opens its development to the community by
having a publicly browseable subversion repository. The Trac software which
comes along with a Subversion frontend,  a Wiki and a ticket reporting system 
is used as an interface between developers, users and contributors in order to 
make the whole development process much easier and efficient.

We make distinction between two kinds of people within the Trac system:

\begin{itemize}
\item developers, able to report, close and fix tickets
\item reporters, able to add a comment, patch, or request ticket status
\end{itemize}

\subsubsection{Opening a ticket}

A reporter might want to open a ticket for the following reasons:

\begin{itemize}
\item a bug affects a specific hardware and/or software and needs to be fixed
\item a specific software package would be seen as part of the official OpenWrt repository
\item a feature should be added or removed from OpenWrt
\end{itemize}

Regarding the kind of ticket that is open, a patch is welcome in those cases:

\begin{itemize}
\item new package to be included in OpenWrt
\item fix for a bug that works for the reporter and has no known side effect
\item new features that can be added by modifying existing OpenWrt files
\end{itemize}

Once the ticket is open, a developer will take care of it, if so, the ticket is marked
as "accepted" with the developer name. You can add comments at any time to the ticket,
even when it is closed.

\subsubsection{Closing a ticket}

A ticket might be closed by a developer because:

\begin{itemize}
\item the problem is already fixed (wontfix)
\item the problem described is not judged as valid, and comes along with an explanation why (invalid)
\item the developers know that this bug will be fixed upstream (wontfix)
\item the problem is very similar to something that has already been reported (duplicate)
\item the problem cannot be reproduced by the developers (worksforme)
\end{itemize}

At the same time, the reporter may want to get the ticket closed since he is not 
longer able to trigger the bug, or found it invalid by himself.

When a ticket is closed by a developer and marked as "fixed", the comment contains 
the subversion changeset which corrects the bug.
