Confirmed users
52
edits
(→NECKO) |
(Change Pastebin into link) |
||
| (34 intermediate revisions by 5 users not shown) | |||
| Line 23: | Line 23: | ||
* [http://developer.mozilla.org/en/docs/Build_Documentation#Build_prerequisites Others] | * [http://developer.mozilla.org/en/docs/Build_Documentation#Build_prerequisites Others] | ||
If you wish to build the palm sync extension, you will need to install the [https://www.developerpavilion.com/palmos/page.asp?page_id=365&tool_id=14 Palm CDK] (requires free registration). | If you wish to build the palm sync extension, you will need to install the [https://www.developerpavilion.com/palmos/page.asp?page_id=365&tool_id=14 Palm CDK] (requires free registration). And BUILD_PALMSYNC=1 and PALM_CDK_DIR=c:/PALMCDK403 env vars. (do not use PALM CDK v6) [http://tomfrauenhofer.com/wordpress/?p=4 Building Palm OS Conduits with CDK 4.0.3 and VS 2005] may also have useful info. | ||
==== Debuggers ==== | ==== Debuggers ==== | ||
| Line 29: | Line 29: | ||
* gdb (Linux, Mac OS X) | * gdb (Linux, Mac OS X) | ||
* ?? | * ?? | ||
==== Bug Tracking | ==== Bug Filing/Tracking/Fixing ==== | ||
''Note: Bugzilla is where people who don't even build / debug can contribute, so this should be at the top of the list. [[User:Nth10sd|nth10sd]] 11:13, 17 April 2008 (PDT)'' | ''Note: Bugzilla is where people who don't even build / debug can contribute, so this should be at the top of the list. [[User:Nth10sd|nth10sd]] 11:13, 17 April 2008 (PDT)'' | ||
| Line 35: | Line 35: | ||
In Mozilla development process 'bug' is a broader term than its conventional meaning which is software defect. A bug means '''anything''' related to the product and the development process including feature requests, performance improvements and even process improvements. You can file a bug about almost anything that you think that would contribute to the success of the project. | In Mozilla development process 'bug' is a broader term than its conventional meaning which is software defect. A bug means '''anything''' related to the product and the development process including feature requests, performance improvements and even process improvements. You can file a bug about almost anything that you think that would contribute to the success of the project. | ||
* [http://developer.mozilla.org/en/docs/Bug_writing_guidelines Bug Writing Guidelines] | |||
* [https://bugzilla.mozilla.org/ Bugzilla Page] | * [https://bugzilla.mozilla.org/ Bugzilla Page] | ||
| Line 41: | Line 42: | ||
* [http://wiki.mozilla.org/Thunderbird:Bug_Triage#Triage_Resources.2C_Tools_and_Hints Thunderbird Bug Triage] | * [http://wiki.mozilla.org/Thunderbird:Bug_Triage#Triage_Resources.2C_Tools_and_Hints Thunderbird Bug Triage] | ||
* [http://wiki.mozilla.org/Thunderbird:Bugdays Thunderbird Bugday] | * [http://wiki.mozilla.org/Thunderbird:Bugdays Thunderbird Bugday] | ||
''Note to author: Add a starting to bug fixing section. Mention best practices, keywords, how to search etc.. Look IRC transcripts dated Apr 30th. Things to talk about; what are keywords how to use them, what are products and components, etc...'' | |||
==== Source Control Management ==== | ==== Source Control Management ==== | ||
| Line 48: | Line 51: | ||
* Patch | * Patch | ||
==== Collaboration ==== | ==== Collaboration ==== | ||
* Pastebin | * [https://wiki.mozilla.org/Education/Collaboration/IRC#Using_pastebin.mozilla.org Pastebin] | ||
==== Build Automation ==== | ==== Build Automation ==== | ||
* [http://tinderbox.mozilla.org/Thunderbird/ Thunderbird Tinderbox] | * [http://tinderbox.mozilla.org/Thunderbird/ Thunderbird Tinderbox] | ||
| Line 66: | Line 69: | ||
* [http://www.mozilla.org/MPL/ Licensing] | * [http://www.mozilla.org/MPL/ Licensing] | ||
* [http://www.mozilla.org/projects/toolkit/review.html Toolkit Review Policy] | |||
* [http://www.mozilla.org/hacking/code-review-faq.html Gecko Code Reviews] | |||
=== Getting the Source === | === Getting the Source === | ||
| Line 77: | Line 82: | ||
=== Building the Code === | === Building the Code === | ||
''Folder hierarchy and meaning (public, src, main folders -- mailnews, mail, xpcom, etc..)'' | |||
<link> | <link> | ||
=== | === Mozilla Framework Libraries used by Thunderbird === | ||
==== PL ==== | ==== PL ==== | ||
What is PL? How it is different than platform's C runtime, Secure C functions, etc... | What is PL? How it is different than platform's C runtime, Secure C functions, etc... | ||
==== NSPR ==== | ==== NSPR ==== | ||
NSPR is a cross-platform | NSPR is a cross-platform library to provide Mozilla application with OS-agnostic facilities such as threading, I/O operations, networking, logging and more. It is crucial for a Mozilla C/C++ hacker to be familiar with this library in order to work with Thunderbird backend. | ||
Although NSPR documentation is not up-to-date, still it is a very good starting point before you go and check the source code. You can find NSPR documentation at the following links. | Although NSPR documentation is not up-to-date, still it is a very good starting point before you go and check the source code. You can find NSPR documentation at the following links. | ||
| Line 89: | Line 96: | ||
* [http://www.mozilla.org/projects/nspr/ The Netscape Portable Runtime Page] | * [http://www.mozilla.org/projects/nspr/ The Netscape Portable Runtime Page] | ||
* [http://www.mozilla.org/projects/nspr/reference/html/index.html The Netscape Portable Runtime Reference] | * [http://www.mozilla.org/projects/nspr/reference/html/index.html The Netscape Portable Runtime Reference] | ||
==== PSM / NSS ==== | |||
Personal Security Manager (PSM) consists of a set of libraries that perform cryptographic operations on behalf of a client application. These operations include setting up an SSL connection, object signing and signature verification, certificate management (including issuance and revocation), and other common PKI functions. | |||
* [http://www.mozilla.org/projects/security/pki/psm/ PSM Home Page] | |||
NSS provides a complete open-source implementation of the crypto libraries used by AOL, Red Hat, Sun, and other companies in a variety of products. | |||
* [http://www.mozilla.org/projects/security/pki/nss/ NSS Home Page] | |||
==== libMime ==== | |||
short introduction | |||
==== XPCOM ==== | |||
XPCOM is Mozilla's simplified cross-platform component object model. | |||
''IDL firebot: uuid, <link>'' | |||
* [http://developer.mozilla.org/en/docs/Using_nsCOMPtr Using nsCOMPtr] | |||
* Reference Management | |||
** [http://developer.mozilla.org/en/docs/XPCOM_ownership_guidelines Ownership Guide] | |||
** [http://developer.mozilla.org/en/docs/Weak_reference#Why_can.27t_I_just_QueryInterface_between_the_pair.3F Weak References] | |||
* [http://developer.mozilla.org/en/docs/Creating_XPCOM_Components Creating XPCOM Components] | |||
* [http://developer.mozilla.org/en/docs/XPCOM_string_guide XPCOM string guide] | |||
* [http://www.xulplanet.com/references/xpcomref XPCOM Reference] | |||
==== NECKO ==== | ==== NECKO ==== | ||
| Line 107: | Line 137: | ||
* IRC - irc://irc.mozilla.org/#mozilla | * IRC - irc://irc.mozilla.org/#mozilla | ||
==== | ==== GECKO ==== | ||
What is Gecko | |||
==== XUL ==== | ==== XUL ==== | ||
What is XUL | What is XUL | ||
* [http://www.xulplanet.com XUL Planet] | |||
* [http://ted.mielczarek.org/code/mozilla/xuledit/xuledit.xul Online XUL editor from Ted Mielczarek] | |||
=== Best Practices === | === Best Practices === | ||
| Line 127: | Line 153: | ||
==== Assertions ==== | ==== Assertions ==== | ||
.... | .... | ||
==== | ==== Logging/Tracing Thunderbird ==== | ||
* [[Performance:Leak_Tools]] | See [[MailNews:Logging]] for how to do general NSPR logging in MailNews. Note that there are many more logging options/protocols in the core code, search for [http://mxr.mozilla.org/seamonkey/search?string=PR_NewLogModule PR_NewLogModule] to find them. | ||
* [http://developer.mozilla.org/en/docs/Debugging_memory_leaks Debugging Memory Leaks] | |||
* [[QA:Home_Page:Firefox_3.0_TestPlan:Leaks:LeakTesting-How-To]] | * Misc | ||
** [[Performance:Leak_Tools]] | |||
** [http://developer.mozilla.org/en/docs/Debugging_memory_leaks Debugging Memory Leaks] | |||
** [[QA:Home_Page:Firefox_3.0_TestPlan:Leaks:LeakTesting-How-To]] | |||
==== Understanding threading, Proxy etc.. !!! ==== | ==== Understanding threading, Proxy etc.. !!! ==== | ||
| Line 140: | Line 166: | ||
==== Unit Testing (TUnit, cppUnit etc..) ==== | ==== Unit Testing (TUnit, cppUnit etc..) ==== | ||
* [[MailNews:Performance_Testing]] | |||
* [https://developer.mozilla.org/en/MailNews/MailNews_Automated_Testing MailNews Automated Testing] | |||
* [http://developer.mozilla.org/en/docs/Mozilla_automated_testing Mozilla Automated Testing] | * [http://developer.mozilla.org/en/docs/Mozilla_automated_testing Mozilla Automated Testing] | ||
.... | .... | ||
| Line 170: | Line 197: | ||
* ... | * ... | ||
=== | === Major Thunderbird Entities === | ||
* | * [http://doxygen.db48x.net/mozilla/html/classes.html Thunderbird class diagrams] | ||
* [http://wiki.mozilla.org/User:Emre/tb/architecture/diagrams Architectural overview] | |||
* .. | |||