1\subsection{How to contribute} 2OpenWrt is constantly being improved. We'd like as many people to contribute 3to this as we can get. If you find a change useful, by all means try to get 4it incorporated into the project. This should improve OpenWrt and it should 5help carry your changes forward into future versions 6 7This section tries to lay out a procedure to enable people to submit patches 8in a way that is most effective for all concerned. 9 10It is important to do all these steps repeatedly: 11 12\begin{itemize} 13 \item \textit{listen} to what other people think. 14 \item \textit{talk} explaining what problem you are addressing and your 15 proposed solution. 16 \item \textit{do} write useful patches including documentation. 17 \item \textit{test. test. test.} 18\end{itemize} 19 20\subsection{Where to listen and talk} 21 22\begin{itemize} 23 \item google to find things related to your problem 24 \item Mailing lists: \href{http://lists.openwrt.org/}{http://lists.openwrt.org/} 25 \item Wiki: check the wiki: \href{http://wiki.openwrt.org/OpenWrtDocs}{http://wiki.openwrt.org/OpenWrtDocs} 26 \item Forum: \href{http://forum.openwrt.org/}{http://forum.openwrt.org/} 27 \item IRC: \texttt{irc.freenode.net}, channels \texttt{\#openwrt} and 28 \texttt{\#openwrt-devel} 29 \item TRAC: \href{https://dev.openwrt.org/}{https://dev.openwrt.org/} the issue/bug/change tracking system 30\end{itemize} 31 32It is often best to document what you are doing before you do it. The process 33of documentation often exposes possible improvements. Keep your documentation 34up to date. 35 36\subsection{Patch Submission Process} 37\begin{enumerate} 38 \item Use git or svn to create a patch. Creating patches manually with 39 \textit{diff -urN} also works, but is usually unnecessary. 40 \item Send a mail to openwrt-devel@lists.openwrt.org with the following contents: 41 \begin{enumerate} 42 \item \texttt{[PATCH] <short description>} in the Subject, followed by: 43 \item (optional) a longer description of your patch in the message body 44 \item \texttt{Signed-off-by: Your name <your@email.address>} 45 \item Your actual patch, inline, not word wrapped or whitespace mangled. 46 \end{enumerate} 47 \item Please read \href{http://kerneltrap.org/Linux/Email\_Clients\_and\_Patches}{http://kerneltrap.org/Linux/Email\_Clients\_and\_Patches} 48 to find out how to make sure your email client doesn't destroy your patch. 49 \item Please use your real name and email address in the \texttt{Signed-off-by} 50 line, following the same guidelines as in the \href{http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/SubmittingPatches;h=681e2b36195c98ea5271b76383b3a574b190b04f;hb=HEAD}{Linux Kernel patch submission guidelines} 51 \item Example of a properly formatted patch submission: \\ 52 \href{http://lists.openwrt.org/pipermail/openwrt-devel/2007-November/001334.html}{http://lists.openwrt.org/pipermail/openwrt-devel/2007-November/001334.html} 53\end{enumerate} 54