diff options
author | gerv%gerv.net <> | 2002-07-28 07:00:17 +0200 |
---|---|---|
committer | gerv%gerv.net <> | 2002-07-28 07:00:17 +0200 |
commit | d8caf6045d10344c431918128e3803ca497565f3 (patch) | |
tree | 1b2fbc50e442b6413a4ef0949e8ff7eed1df1361 /docs/html/bzhacking.html | |
parent | a9bb18746686c1bf5497e27f7ac2e12d0e3fc31a (diff) | |
download | bugzilla-d8caf6045d10344c431918128e3803ca497565f3.tar.gz bugzilla-d8caf6045d10344c431918128e3803ca497565f3.tar.xz |
Merging new docs from 2.16 branch.
Diffstat (limited to 'docs/html/bzhacking.html')
-rw-r--r-- | docs/html/bzhacking.html | 492 |
1 files changed, 0 insertions, 492 deletions
diff --git a/docs/html/bzhacking.html b/docs/html/bzhacking.html deleted file mode 100644 index d34310624..000000000 --- a/docs/html/bzhacking.html +++ /dev/null @@ -1,492 +0,0 @@ -<HTML -><HEAD -><TITLE ->Hacking Bugzilla</TITLE -><META -NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ -"><LINK -REL="HOME" -TITLE="The Bugzilla Guide" -HREF="index.html"><LINK -REL="UP" -TITLE="Useful Patches and Utilities for Bugzilla" -HREF="patches.html"><LINK -REL="PREVIOUS" -TITLE="The Quicksearch Utility" -HREF="quicksearch.html"><LINK -REL="NEXT" -TITLE="GNU Free Documentation License" -HREF="gfdl.html"></HEAD -><BODY -CLASS="section" -BGCOLOR="#FFFFFF" -TEXT="#000000" -LINK="#0000FF" -VLINK="#840084" -ALINK="#0000FF" -><DIV -CLASS="NAVHEADER" -><TABLE -SUMMARY="Header navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->The Bugzilla Guide</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="quicksearch.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" ->Appendix D. Useful Patches and Utilities for Bugzilla</TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="gfdl.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV -><DIV -CLASS="section" -><H1 -CLASS="section" -><A -NAME="bzhacking">D.5. Hacking Bugzilla</H1 -><P -> The following is a guide for reviewers when checking code into Bugzilla's - CVS repostory at mozilla.org. If you wish to submit patches to Bugzilla, - you should follow the rules and style conventions below. Any code that - does not adhere to these basic rules will not be added to Bugzilla's - codebase. - </P -><DIV -CLASS="section" -><H2 -CLASS="section" -><A -NAME="AEN2436">D.5.1. Things that have caused problems and should be avoided</H2 -><P -></P -><OL -TYPE="1" -><LI -><P -> Usage of variables in Regular Expressions - </P -><P -> It is very important that you don't use a variable in a regular - expression unless that variable is supposed to contain an expression. - This especially applies when using grep. You should use: - </P -><P -> <TABLE -BORDER="0" -BGCOLOR="#E0E0E0" -WIDTH="100%" -><TR -><TD -><FONT -COLOR="#000000" -><PRE -CLASS="programlisting" -> grep ($_ eq $value, @array); - </PRE -></FONT -></TD -></TR -></TABLE -> - </P -><P -> -- NOT THIS -- - </P -><P -> <TABLE -BORDER="0" -BGCOLOR="#E0E0E0" -WIDTH="100%" -><TR -><TD -><FONT -COLOR="#000000" -><PRE -CLASS="programlisting" -> grep (/$value/, @array); - </PRE -></FONT -></TD -></TR -></TABLE -> - </P -><DIV -CLASS="note" -><P -></P -><TABLE -CLASS="note" -WIDTH="100%" -BORDER="0" -><TR -><TD -WIDTH="25" -ALIGN="CENTER" -VALIGN="TOP" -><IMG -SRC="../images/note.gif" -HSPACE="5" -ALT="Note"></TD -><TD -ALIGN="LEFT" -VALIGN="TOP" -><P -> If you need to use a non-expression variable inside of an expression, be - sure to quote it properly (using <TT -CLASS="function" ->\Q..\E</TT ->). - </P -></TD -></TR -></TABLE -></DIV -></LI -></OL -></DIV -><DIV -CLASS="section" -><H2 -CLASS="section" -><A -NAME="AEN2450">D.5.2. Coding Style for Bugzilla</H2 -><P -> While it's true that not all of the code currently in Bugzilla adheres to - this (or any) styleguide, it is something that is being worked toward. Therefore, - we ask that all new code (submitted patches and new files) follow this guide - as closely as possible (if you're only changing 1 or 2 lines, you don't have - to reformat the entire file :). - </P -><P -> The Bugzilla development team has decided to adopt the perl style guide as - published by Larry Wall. This giude can be found in <SPAN -CLASS="QUOTE" ->"Programming - Perl"</SPAN -> (the camel book) or by typing <B -CLASS="command" ->man perlstyle</B -> at - your favorite shell prompt. - </P -><P -> What appears below if a brief summary, please refer to the perl style - guide if you don't see your question covered here. It is much better to submit - a patch which fails these criteria than no patch at all, but please try to meet - these minimum standards when submitting code to Bugzilla. - </P -><P -></P -><UL -><LI -><P -> Whitespace - </P -><P -> Bugzilla's preferred indentation is 4 spaces (no tabs, please). - </P -></LI -><LI -><P -> Curly braces. - </P -><P -> The opening brace of a block should be on the same line as the statement - that is causing the block and the closing brace should be at the same - indentation level as that statement, for example: - </P -><P -> <TABLE -BORDER="0" -BGCOLOR="#E0E0E0" -WIDTH="100%" -><TR -><TD -><FONT -COLOR="#000000" -><PRE -CLASS="programlisting" -> if ($var) { - print "The variable is true"; -} -else { - print "Try again"; -} - </PRE -></FONT -></TD -></TR -></TABLE -> - </P -><P -> -- NOT THIS -- - </P -><P -> <TABLE -BORDER="0" -BGCOLOR="#E0E0E0" -WIDTH="100%" -><TR -><TD -><FONT -COLOR="#000000" -><PRE -CLASS="programlisting" -> if ($var) -{ - print "The variable is true"; -} -else -{ - print "Try again"; -} - </PRE -></FONT -></TD -></TR -></TABLE -> - </P -></LI -><LI -><P -> Cookies - </P -><P -> Bugzilla uses cookies to ease the user experience, but no new patches - should <EM ->require</EM -> user-side cookies. - </P -></LI -><LI -><P -> File Names - </P -><P -> File names for bugzilla code and support documention should be legal across - multiple platforms. <TT -CLASS="computeroutput" ->\ / : * ? " < ></TT -> - and <TT -CLASS="computeroutput" ->|</TT -> are all illegal characters for filenames - on various platforms. Also, file names should not have spaces in them as they - can cause confusion in CVS and other mozilla.org utilities. - </P -></LI -><LI -><P -> Javascript dependencies - </P -><P -> While Bugzilla uses Javascript to make the user experience easier, no patch - to Bugzilla should <EM ->require</EM -> Javascript. - </P -></LI -><LI -><P -> Patch Format - </P -><P -> All patches submitted for inclusion into Bugzilla should be in the form of a - <SPAN -CLASS="QUOTE" ->"unified diff"</SPAN ->. This comes from using <SPAN -CLASS="QUOTE" ->"diff -u"</SPAN -> - instead of simply <SPAN -CLASS="QUOTE" ->"diff"</SPAN -> when creating your patch. This will - result in quicker acceptance of the patch. - </P -></LI -><LI -><P -> Schema Changes - </P -><P -> If you make schema changes, you should modify <TT -CLASS="filename" ->sanitycheck.cgi</TT -> - to support the new schema. All referential columns should be checked. - </P -></LI -><LI -><P -> Taint Mode - </P -><P -> All new cgis must run in Taint mode (Perl taint and DBI taint), and existing cgi's - which run in taint mode must not have taint mode turned off. - </P -></LI -><LI -><P -> Templatization - </P -><P -> Patches to Bugzilla need to support templates so they do not force user interface choices - on Bugzilla administrators. - </P -></LI -><LI -><P -> Variable Names - </P -><P -> If a variable is scoped globally (<TT -CLASS="computeroutput" ->$::variable</TT ->) - its name should be descriptive of what it contains. Local variables can be named - a bit looser, provided the context makes their content obvious. For example, - <TT -CLASS="computeroutput" ->$ret</TT -> could be used as a staging variable for a - routine's return value as the line <TT -CLASS="computeroutput" ->return $ret;</TT -> - will make it blatantly obvious what the variable holds and most likely be shown - on the same screen as <TT -CLASS="computeroutput" ->my $ret = "";</TT ->. - </P -></LI -><LI -><P -> Cross Database Compatability - </P -><P -> Bugzilla was originally written to work with MySQL and therefore took advantage - of some of its features that aren't contained in other RDBMS software. These - should be avoided in all new code. Examples of these features are enums and - <TT -CLASS="function" ->encrypt()</TT ->. - </P -></LI -><LI -><P -> Cross Platform Compatability - </P -><P -> While Bugzilla was written to be used on Unix based systems (and Unix/Linux is - still the only officially supported platform) there are many who desire/need to - run Bugzilla on Microsoft Windows boxes. Whenever possible, we should strive - not to make the lives of these people any more complicated and avoid doing things - that break Bugzilla's ability to run on multiple operating systems. - </P -></LI -></UL -></DIV -></DIV -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -SUMMARY="Footer navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="quicksearch.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="index.html" -ACCESSKEY="H" ->Home</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="gfdl.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->The Quicksearch Utility</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="patches.html" -ACCESSKEY="U" ->Up</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->GNU Free Documentation License</TD -></TR -></TABLE -></DIV -></BODY -></HTML ->
\ No newline at end of file |