logo
Published on Haiku Project (http://www.haiku-os.org)

Haiku Development: Getting Started

By wkornewald
Created 2006-10-28 08:54
The information on this page is intended to explain how you can get started with Haiku development.

Getting Involved

The best way to get into developing on the Haiku project is to get to know the environment and make yourself familiar with the system. If you have programmed for BeOS before, getting into the Haiku API shouldn't be a problem. If you are new to Haiku and BeOS, try spending some time with easier tasks (see below). It is much easier for us to help you with problems you encounter after you chose a task than to assign one to you as we don't know what your exact skills and preferences are.

Easy Introductory Tasks

Here are a few possible starting points:
  • Fix font sensitivity issues and hard-coded values
    Run apps, see if everything looks alright at different font sizes, fix any bugs. Check the source for use of hard-coded values (e.g., colors, paths) and use the respective API call to retrieve the system-defined value (e.g., via ui_color()).
  • Make our UI and applications more compliant to our HIG
    Run apps, check if menus and buttons are named and positioned correctly (e.g., menus/buttons that open a dialog should end with "..." using B_UTF8_ELLIPSIS). Also, check, for example, if the preferences dialogs apply changes immediately (or have an "Apply" button) and if they have a "Revert" button (instead of "Cancel" and "OK"). Also see if they behave consistently with the rest of our system preferences applications.
    See the Human Interface Guidelines [1] for further information on this item.
  • Cleanup incompliant source files
    We have Coding Guidelines [1] that all of our source should follow (except for imported code from other projects). Some of the native applications do not follow these guidelines yet. Clean them up so they are compliant and send a patch to our development mailing list [2]
  • Easy tasks from our bugtracker
    Please also take a look at our list of easy tasks [3] at the bugtracker. They are mostly smaller bugs that can be fixed by one person. Pick one of them, leave a comment that you are working on it and attach a patch when you're done.

If you don't find something for you in this list, please ask at our development mailing list by sending in a small introduction of yourself:
  • What are your skills? - E.g.: "I'm a professional C++ developer." or "I'm a hobby coder with 2 years C++ experience."
  • How many hour per week do you want to work? A rough estimate is enough, just so that we can assess which kind of task may fit you.
  • Do you have experience with special development areas? - E.g.: kernel, network, file systems...
  • Is there some specific area you want to work on?
We will try to find something for you by asking some questions and maybe pointing you to specific bugs.

When You've Found a Task

When you have found a task you'd like to work on, please feel free to ask your questions on the development mailing list. Before writing code please also read our Coding Guidelines and try to always keep them in mind (we are strict about them). Then we wish you much luck and fun coding for Haiku!

team's [3] mailing list
  • The development mailing list [4]
  • The general Haiku mailing list [5]
  • Commit logs [6]
  • Choose your preferred editor/IDE. Examples: BeIDE, Pe [7], Vim [8]
  • Install and learn how to use our development tools (also see "Further reading" [8]):
    • Subversion [8] version control system (for BeOS 5.0 or later)
    • SSH [8] [for BONE [8]]
    • Development Tools for BeOS R5 [9] (contains obsolete GCC version; please use version linked below instead)
    • GCC compiler [10] 2.95.3 (for BeOS 5.0 or later)
    • GCC Haiku cross compiler 2.95.3 [11] (needed to build Haiku in BeOS R5 or later)
    • Jam [11] building tool (for BeOS 5.0 or later) - note, you need this customized version to build Haiku.
    • If you develop in Linux, please read Getting Linux Developer Tools [11].
  • Read how to get and build our source code [11].
  • Learn the basics of our source tree layout [11].
  • Get familiar with our project management and bug/issue tracking system [12] (Trac). You will need a Haiku website account [12] to use Trac.
  • Learn our Coding Guidelines [12]. All Haiku source code should comply to this standard.
  • Obtaining SVN write access

    SVN write access to the Haiku repository is granted to developers on the basis of their contributions to the Haiku code base. Your shortest way to obtaining SVN write access is by submitting patches using our Trac bug reporting tool [13].

    After a number of your patches have been successfully committed to the Haiku repository, you can send a request for SVN write access to the [haiku-development] mailing list [14]. In order to facilitate the task of reviewing your contributions and making a decision on your request, please include in the message a list of your patches (title and link to the Trac entry).

    If your request is accepted, you will need a BerliOS [15] account.

    FAQ: Do you have any easy introductory tasks for me? [16]
  • Brief Introduction to the Source Repository Layout [17]
  • Developers Documentation [17]
  • The BeBook [17]
  • "Programming the Be Operating System" [18] (mirror [18])
  • Getting Started with Jam [19] (mirror [19])
  • Jam reference and documents [20]
  • Version Control with Subversion [21]
  • Using Subversion with the Haiku Source Repository [21]



  • Source URL:
    http://www.haiku-os.org/documents/dev/haiku_development_getting_started