Add a "submitting patches" subsection
[openwrt/svn-archive/archive.git] / docs / bugs.tex
1 OpenWrt as an open source software opens its development to the community by
2 having a publicly browseable subversion repository. The Trac software which
3 comes along with a Subversion frontend, a Wiki and a ticket reporting system
4 is used as an interface between developers, users and contributors in order to
5 make the whole development process much easier and efficient.
7 We make distinction between two kinds of people within the Trac system:
9 \begin{itemize}
10 \item developers, able to report, close and fix tickets
11 \item reporters, able to add a comment, patch, or request ticket status
12 \end{itemize}
14 \subsubsection{Opening a ticket}
16 A reporter might want to open a ticket for the following reasons:
18 \begin{itemize}
19 \item a bug affects a specific hardware and/or software and needs to be fixed
20 \item a specific software package would be seen as part of the official OpenWrt repository
21 \item a feature should be added or removed from OpenWrt
22 \end{itemize}
24 Regarding the kind of ticket that is open, a patch is welcome in those cases:
26 \begin{itemize}
27 \item new package to be included in OpenWrt
28 \item fix for a bug that works for the reporter and has no known side effect
29 \item new features that can be added by modifying existing OpenWrt files
30 \end{itemize}
32 Once the ticket is open, a developer will take care of it, if so, the ticket is marked
33 as "accepted" with the developer name. You can add comments at any time to the ticket,
34 even when it is closed.
36 \subsubsection{Submitting patches}
38 In order to include a patch to a ticket, you need to output it, this can be done by using the \textbf{svn diff} command which generates the differences between your local copy (modified) and the version on the OpenWrt repository (unmodified yet). Then attach the patch with a description, using the "Attach" button.
40 Your patch must respect the following conventions :
42 \begin{itemize}
43 \item it has to work, with no side effect on other platforms, distributions, packages ...
44 \item it must have a reason to be included in OpenWrt : bug fix, enhancement, feature adding/removing
45 \item the patch name should be named like that : <index number>-this\_fixes\_bug\_foo\_and\_bar.patch
46 \item if several, they have to be indexed with an integer number : 100-patch1, 200-patch2 ...
47 \end{itemize}
49 Your patch will be read and most likely be used as-is by the developpers if it is clean and working. If not, the patch will be accepted anyway and modified to be OpenWrt-rules compliant
51 \subsubsection{Closing a ticket}
53 A ticket might be closed by a developer because:
55 \begin{itemize}
56 \item the problem is already fixed (wontfix)
57 \item the problem described is not judged as valid, and comes along with an explanation why (invalid)
58 \item the developers know that this bug will be fixed upstream (wontfix)
59 \item the problem is very similar to something that has already been reported (duplicate)
60 \item the problem cannot be reproduced by the developers (worksforme)
61 \end{itemize}
63 A the same time, the reporter may want to get the ticket closed since he is not
64 longer able to trigger the bug, or found it invalid by himself.
66 When a ticket is closed by a developer and marked as "fixed", the comment contains
67 the subversion changeset which corrects the bug.