3DOSX
MacWarriors

General Info Screen Shots Articles Download
FAQ Questions/Comments Forum Mailing List
Additional Themes Development

3DOSX Development Zone

This is the 3DOSX development page, where you can find information about contributing code and fixing bugs. This page also documents the various processes associated with these tasks.

Quick Navigation

Web CVS
Anonymous CVS Instructions
Bugzilla
Indian Hill C Style Guide

Sections

Contributing Code
Patch Format
CVS

Contributing Code

We welcome all contributions of code, from people of any skill level. Although we reserve the right to reject patches, generally as long as something is well written and adds to the quality of 3DOSX, it will be accepted.

If you're looking for something to work on, you can take a look at our TODO list and find out what no one else is current working on (make sure to check the WORKING file as well). You can search through the bugzilla bugs as well, fix bugs and create attachments with diffs for bug fixes. For diff information, see the next section.

The best way to suggest an enhancement is to contact one of the maintainers by e-mail (before you write the code) to okay any new feature you might want to add. Here is a list of the current maintainers and what part of the code they maintain. Make sure you contact the right person:

Component Description Maintainer
Actual Themes The themes themselves and anything to do with themes and not the implementation. mflider@uiuc.edu
Cocoa UI Interface issues related to either Cocoa or IB. tuley@acm.uiuc.edu
Documentation Errors in documentation and things that need to be added. mflider@uiuc.edu
Feature Requests Request new features or changes to current ones. mflider@uiuc.edu
File System Anything related to file system interaction. This includes incorrect get info information, incorrect files showing up on platters, and alias and symlink problems. rchin@uiuc.edu
General/Misc/Crash Anything that doesn't fit into one of the above categories. rchin@uiuc.edu
OpenGL Rendering Any miscellaenous OpenGL problems, rendering or otherwise. Anything that's not directly UI related. haveblue@mac.com
OpenGL UI Any user interface issues with respect to OpenGL. haveblue@mac.com
Preferences Anything to do with preferences. tuley@acm.uiuc.edu
Screensaver Mode Anything to do with the screensaver portion of 3DOSX. rchin@uiuc.edu
Theme Architecture Problems with theme loader, etc. rchin@uiuc.edu

After approval, you should then submit a feature request through bugzilla, and assign the bug to the person who has approved the feature. Add yourself to the CC list, and then you can attach your patch to the attachments section of the bugzilla bug.

Patch Format

If you're working on existing code, always make sure you have the latest development code! The best way to do this is to keep in sync via CVS. For CVS information, see the next section.

If you happen to be working with old code, the code you're working with may end up being too out of date to be easily integrated into the working development tree. So it's to your advantage to keep your code in sync.

There currently is no 3DOSX style guide for code, but try to keep it somewhat like the Bell Labs Indian Hill style guide recommendations.

When you submit code patches, you should use a context diff. This can be achieved with the diff program in the following fashion:

% diff -c oldfile newfile

or, if you have multiple files:

% diff -c -r olddir newdir

You can then tar your files together if there's a whole set of them and you're deleting/adding/renaming files. If you do that, you probably want to uuencode them so stuff doesn't get messed up in the transfer.

CVS

Anonymous CVS is supported so that you can sync your code easily. This includes free CVS integration if you are using December 2001's Project Builder or later. Note that there are various problems with NIB files and project builder's cvs integration, this is Apple's bug, not ours. The anonymous CVS syncs with the main dynamic tree every hour. We also have available instructions for checking out the source code anonymously . This includes both the stable and development trees.

For everyone's convenience, we also have WebCVS setup. Make sure you're viewing the proper tree that you're working on.