aboutsummaryrefslogtreecommitdiffstats
path: root/docs/html/bzhacking.html
diff options
context:
space:
mode:
authorgerv%gerv.net <>2002-07-28 05:00:17 +0000
committergerv%gerv.net <>2002-07-28 05:00:17 +0000
commitd8caf6045d10344c431918128e3803ca497565f3 (patch)
tree1b2fbc50e442b6413a4ef0949e8ff7eed1df1361 /docs/html/bzhacking.html
parenta9bb18746686c1bf5497e27f7ac2e12d0e3fc31a (diff)
downloadbugs-d8caf6045d10344c431918128e3803ca497565f3.tar
bugs-d8caf6045d10344c431918128e3803ca497565f3.tar.gz
bugs-d8caf6045d10344c431918128e3803ca497565f3.tar.bz2
bugs-d8caf6045d10344c431918128e3803ca497565f3.tar.xz
bugs-d8caf6045d10344c431918128e3803ca497565f3.zip
Merging new docs from 2.16 branch.
Diffstat (limited to 'docs/html/bzhacking.html')
-rw-r--r--docs/html/bzhacking.html492
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
->&#13; 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
->&#13; Usage of variables in Regular Expressions
- </P
-><P
->&#13; 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
->&#13; <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><FONT
-COLOR="#000000"
-><PRE
-CLASS="programlisting"
->&#13;grep ($_ eq $value, @array);
- </PRE
-></FONT
-></TD
-></TR
-></TABLE
->
- </P
-><P
->&#13; -- NOT THIS --
- </P
-><P
->&#13; <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><FONT
-COLOR="#000000"
-><PRE
-CLASS="programlisting"
->&#13;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
->&#13; 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
->&#13; 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
->&#13; 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
->&#13; 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
->&#13; Whitespace
- </P
-><P
->&#13; Bugzilla's preferred indentation is 4 spaces (no tabs, please).
- </P
-></LI
-><LI
-><P
->&#13; Curly braces.
- </P
-><P
->&#13; 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
->&#13; <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><FONT
-COLOR="#000000"
-><PRE
-CLASS="programlisting"
->&#13;if ($var) {
- print "The variable is true";
-}
-else {
- print "Try again";
-}
- </PRE
-></FONT
-></TD
-></TR
-></TABLE
->
- </P
-><P
->&#13; -- NOT THIS --
- </P
-><P
->&#13; <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><FONT
-COLOR="#000000"
-><PRE
-CLASS="programlisting"
->&#13;if ($var)
-{
- print "The variable is true";
-}
-else
-{
- print "Try again";
-}
- </PRE
-></FONT
-></TD
-></TR
-></TABLE
->
- </P
-></LI
-><LI
-><P
->&#13; Cookies
- </P
-><P
->&#13; Bugzilla uses cookies to ease the user experience, but no new patches
- should <EM
->require</EM
-> user-side cookies.
- </P
-></LI
-><LI
-><P
->&#13; File Names
- </P
-><P
->&#13; File names for bugzilla code and support documention should be legal across
- multiple platforms. <TT
-CLASS="computeroutput"
->\ / : * ? " &#60; &#62;</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
->&#13; Javascript dependencies
- </P
-><P
->&#13; While Bugzilla uses Javascript to make the user experience easier, no patch
- to Bugzilla should <EM
->require</EM
-> Javascript.
- </P
-></LI
-><LI
-><P
->&#13; Patch Format
- </P
-><P
->&#13; 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
->&#13; Schema Changes
- </P
-><P
->&#13; 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
->&#13; Taint Mode
- </P
-><P
->&#13; 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
->&#13; Templatization
- </P
-><P
->&#13; Patches to Bugzilla need to support templates so they do not force user interface choices
- on Bugzilla administrators.
- </P
-></LI
-><LI
-><P
->&#13; Variable Names
- </P
-><P
->&#13; 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
->&#13; Cross Database Compatability
- </P
-><P
->&#13; 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
->&#13; Cross Platform Compatability
- </P
-><P
->&#13; 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