Potential Projects

From CDOT Wiki
Revision as of 15:34, 4 September 2007 by David.humphrey (talk | contribs) (Addiing Potential Project page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Introduction

This is a list of potential projects that need people. If you'd like to work on one of these, move the chosen project to the Project Page and create a page for your work based on the Sample Project template.

Projects

Sample Project

This is a sample project stub. You can use the template for Sample Project in order to create a project page for one of the stubs below. This is how you 'sign-up' for a project.

NOTE: if someone has already created the project page, speak to this person and see if you can join them. If so, simply add your name to the Project Leader(s) page. Otherwise, you can become a contributor later.

Mozilla Source and Symbol Server

Create a source code server to work with Mozilla's current symbol server. This will allow users to do full debugs of nightly release builds with access to remote symbols and full source code.

Add OpenID support to Bugzilla

Many open source projects rely on bugzilla for bug tracking, and open source developers use different instances, forcing them to have multiple logins. Complete OpenID support in bugzilla.

References: see bug 294608

Improve Mozilla Application and Platform Documentation

Not enough is understood about the various communities and companies who develop with Mozilla, as opposed to those who work on the Mozilla code itself. A proper survey needs to be conducted in order to find out which APIs are being used and how, what is hard, what could be improved, etc. The Mozilla Platform Application Developers is interested in changing this. Their goal is to work with the Mozilla development community to survey, understand, and document the current state of the art. In this project you will work with the mozpad community to connect with projects/companies in orbit around Mozilla and do interviews with their developers. You will then document this information.

Mozilla Developer Virtual Appliance

Create a Linux-based virtual machine with all the necessary build, development, and testing tools necessary for working on Mozilla. This virtual appliance would be targeted at developers not familiar with the Mozilla toolchain and wanted to get started.

Add support for more compilers to distcc

An earlier project added multi-compiler support to distcc, and then MSVC support. The framework is now in place to support even more compilers. Add support for another compiler, perhaps Java, C#, or something else.

Necessary Skills: C, Python, Makefile

Port distcc to MSYS

The recent work to add MSVC support to distcc works using the cygwin build environment. However, since this project was completed, Mozilla has switched to MSYS (see the [http://developer.mozilla.org/en/docs/Windows_Build_Prerequisites Mozilla Win32 build docs). Port distcc so that it works with the new MSYS environment.

References: Cesar and Tom

Add Multi-File transfer to distcc

The recent work to add MSVC support to distcc only allows for a single file to be sent back from build slaves. This means that extra debugging info (e.g., .pdb files) cannot be sent with binaries. Modify distcc so that it can support debug Mozilla builds.

References: Cesar and Tom

Add password managers for various platforms

Previous work was done on adding OS X Keychain integration to Firefox. This work was focused on tightly binding C++ and Mac API calls. Since then more work has been done to modularize the password manager in Firefox. Various platform "keychains" need to be integrated with the new system. See bugs 309807, 106400, and 371000.

Add Offline Support to an open source web app

Firefox 3 will support offline abilities, such that web developers can write their apps so they work even when no network is present. Good headway has been made already porting Zimbra. Pick another web app and add offline support, for example: Moodle.

Add SMTP Failover Support to Thunderbird

When sending mail in Thunderbird, if the default SMTP server fails, the error dialog shown to the user should prompt with the choice of using another SMTP server--assuming one is present in the Account Settings. This is similar to, and perhaps the same as, the Thunderbird SMTP Auto-Sensing project idea.

Thunderbird SMTP Auto-Sensing

Modify Thunderbird so that it uses the correct SMTP server for your current network and IP. In other words, if you are at home, use your home ISP's SMTP, but if you use a school wireless network, switch to the school's SMTP. These various SMTP configurations should be manually controlled by the user, that is, you don't have to try and figure out which SMTP to use. Rather, it should be configurable in an options dialog.

Firefox Session Saver Extension

Write a simple (i.e., nothing more than a simple "save session") extension to leverage the existing Session Store API in order to allow the user to save his/her currently open tabs and restore them. This is similar to what Firefox does when it unexpectedly crashes and gives the user the option to restore a previous session. NOTE: there are extensions that do this already, but many of them are more feature rich than need be. See also this blog post.

Thunderbird Picture Preview

Write an extension for Thunderbird that allows the user to start a slideshow preview of all images in the current message. The feature would work like this: when a mail arrives with pictures attached, a button or some other UI is added to the message that allows the slideshow to begin. When clicked, the images are shown one after the other, properly scaled to fit in the window. Consider using Canvas to do the custom graphics, and take a look at this existing Thunderbird extension for ideas.

Cross-Platform Mozilla Build Farm

Using the accumulated knowledge of the buildbot and distcc projects, and using the physical resources of Hera, create a cross-platform distributed build system suitable for testing patches to Mozilla.

Bugzilla component-watching

It's common for a developer to want to "watch" all the bugs that are filed in a certain Bugzilla component. Mozilla uses a convoluted and painful system of synthetic accounts to simulate this capability, and we'd all really prefer to be able to do it more directly and with less opportunity for error.

Reference: Bug 76794

Automated Testing

Programmatically driving the browser to perform human-like tasks repeatedly. The programmer will have to create a framework for driving browser components in JavaScript or other scripting language to repeatedly test various pieces of the application. Ideally, the successful completion of this task will see a test or suite of tests that can be invoked by command line to start the browser, run the test suites and then exit and record the results for display or analysis.

Reference: Work with Mozilla's Rob Campbell and Jay Patel from the QA Team. See also http://labs.mozilla.com/2007/09/coscripter/

Litmus Extension

We wanted to have an extension that would be able to serve users testcases to try and allow them to submit results to http://litmus.mozilla.org. We could expand the feature set of the extension to do a lot of other cool things with Bugzilla and Website Reporter integration. So we need some ideas there. If you're interested, you could consult the work of David Hamp-Gonsalves, who created the Buggy Bar extension.

"Avoid loading the same page twice" Extension

Create an extension to Firefox so that when a bookmark is clicked, and that site is already open in any tab in any window, that tab/window is brought to the front rather than loading the page again.

Related tech and skills: XUL, JavaScript