This site has been retired. For up to date information, see handbook.gnome.org or gitlab.gnome.org.


[Home] [TitleIndex] [WordIndex

bugseverywhere.png

Your first mission!

Keep your hands warm and your head cold. You are about to make your first contribution! In GNOME we keep all tasks inside a bug tracker. You can imagine it a bit like a huge database of “to do” items. All of the bugs are open for anyone to try and solve!

Documentation-header-icon.png Documentation

The rule of thumb

To begin, first you need to know where to search for clues. You don’t need to do this now, but read carefully! If you run into some code or something in the bug report you don’t understand, then do the following:

developer-center.png

  • 1. Browse the GNOME Developer Documentation.
    Here you can find GNOME APIs as well as several tutorials to make applications using GTK, Glib and other GNOME libraries.

    GNOME Developer Documentation

app-page.png

  • 2. Find documentation in your project’s homepage

    Each GNOME project has it’s own homepage with information and links to resources that can help you understand the source code. If you haven’t checked out your application’s homepage, go back to the Choose Project step and do it!

  • 3. Ask questions in the GNOME chatrooms (Matrix or IRC).
    Our community is friendly and we are here to support you when you are in doubt! Ask away.

    • Questions related to GTK in the gtk chatroom.

    • Question about the newcomer guide in the #newcomers chatroom.

    • Questions related to your project inside the your project’s chatroom (see Choose Project).

pick-a-task-header-icon.png Pick a Task

I’m ready! Where do I start?

Each newcomer application in GNOME has hand-picked some bugs which are newcomer-friendly.

find-bug-in-list.png

how-to-read-bugs.png

  • 3. Identify the problem.
    There are several types of bugs.

    • If your bug contains reproduction steps, try to reproduce it.
    • If your bug contains a description or a design, try to identify which part of the UI it concerns.
    • If someone else already submitted code to the bug recently, you can help by reviewing the code.

    • If you are unsure what the problem is or run into trouble, comment on the bug to get advice.

solve-a-task-header-icon.png Solve the Task

Time to put on the engineering hat.

Let’s get this bug fixed with the Builder IDE! While you’re working, here’s some good tips on how to solve GNOME bugs.

gtk-inspector.png

  • 1. Identify the problematic object(s)

    All GNOME apps are object-oriented. Your task will typically require you to fix the behavior of one or more objects. GTK Inspector lets you point and click to inspect any GTK object visible in the interface. Inspection can help you find the object’s class or change its margin and other properties.

    For all newcomer apps, the code is located inside the /src/ folder of your project. UI files are usually located inside the /data/ folder.

  • 3. Change the code
    Once you have identified the problem, you can start thinking of how to solve it. When making changes there are a few guidelines:

    • Don’t do unrelated changes of the bug you are trying to fix, even style changes.
    • Follow the coding style used in the code you are working on. Just take a look at the surrounding code and try to use the same format, if the project does not have an explicit “coding style” document.
    • Make sure the patch does not contain trailing whitespace and spurious empty lines. You can use git diff --check for this.

Other useful tools

GTK also includes the following developer tools that may be helpful for you:

  • GTK Widget Factory
    GTK Widget Factory is an example application demonstrating the majority of different widgets which can be created with GTK. It can be opened from the terminal by typing gtk3-widget-factory.


2024-10-23 11:23