logo.png

Staging Notes

  • consolidated guides into one guide

  • join conversation section: mailing, irc
  • bug tracker onto page: the easiest way to contribute is to report any bugs using bugzilla
  • to do: update/archive outdated pages, potentially add channels: mailing lists, commits, commit-digests, planet gnome

Welcome to GNOME! This is a great place to learn new skills, make friends, have fun and be a part of an inspirational Free Software project.

GNOME Love is the place to learn how to start contributing to GNOME. These pages will give you guidance to help you become a member of the GNOME community. You can also get help from existing GNOME contributors and find tasks to get started on.

Start Contributing to GNOME's Codebase

This getting started guide explains the most essential things that you need to know to start participating and contributing code. See our get involved page to explore other ways to start contributing!

  • Project Tour - Learn your way around the most important parts of the project

  • Guide to contributing code to GNOME - Step-by-step instructions on one way to start contributing code: solving a bug by submitting a patch

  • Triaging bugs - Familiarize yourself with GNOME by joining the Bugsquad

  • General advice - Tips on becoming a GNOME contributor

  • Mentors - Don't know where to start or how to move forward? Get in touch with these nice folks who can help you with your first contribution

Getting Help and Advice

To get further help and advice, join us on these communication channels:

  • Head to the #gnome-love IRC channel on GIMPNet/irc.gnome.org for initial support or just to say hi

  • Join the GNOME Love mailing list for info and further support

  • You can also contact nice folks who can provide informal mentorship for specific projects they are working on

Development Guidance and Tutorials

  • GNOME Developer Center - Up to date advice and tutorials on developing for GNOME, with quick guides on getting started in different languages and links to current developer documentation

  • Newcomers tutorial - Step-by-step tutorial through the process of contributing to GNOME

  • GNOME University - Initiative to teach people how to contribute to GNOME in C with courses in development

General Resources

/!\ Please maintain consistency when adding a new reference to keep this page as clear as possible.

  • GTK+ and Glade3 GUI Programming Tutorial. An introduction to GTK+ and Glade3 development using C or Python.

  • Perl Gtk3 Tutorial. An introduction to programming in Perl with GTK3.

  • Outdated Getting Started Guide. An outdated guide for those interested in developing with GNOME has not been updated for a few years. Warning: This guide mentions outdated technologies (CVS instead of Git, gconf instead of GSettings/dconf, libglade instead of Gtk, etc). A new guide is in the making for GNOME 3.6. The outdated guide currently contains:

    • Quick overviews of the important tools you need to use and websites you should be aware of
    • Programming tutorials in C, C++, Perl, and Python for using Glade/libglade and gconf (with gtk+ being learned along the way)
    • Debugging tutorials covering gdb, strace, and valgrind (specifically memcheck)
    • Detailed guide on building GNOME from CVS (use of jhbuild)
    • A "What in the world is that?!?" section to help explain all the cryptic but common tools, libraries, and filenames
  • Capturing Stack Traces: If you are trying to fix a specific bug in GNOME that is a crash, this guide explains how to obtain a stack trace --one of the first important pieces of information needed in most cases to move towards fixing the problem.

Tips & Tricks

GUI

Other

Books

  • Matthias Warkus wrote a book covering the GNOME 2 desktop environment.
    {en} The Official GNOME 2 Developer's Guide (quite outdated)
    {de} GNOME 2.0: Das Entwickler-Handbuch

  • Andrew Krause wrote another book, dedicated to GTK+ 2 development.
    {en} Foundations of GTK+ Development

  • Havoc Pennington wrote a book in a tutorial style about developing GTK+ and GNOME applications.
    {en} GTK+/Gnome Application Development (ISBN: 0735700788) (partially outdated)

  • GNOME uses SGML with DocBook DTD for documentation (though we slowly move to Mallard). This free book by Norman Walsh and Leonard Muellner is a resource for learning DocBook.
    {en} DocBook: The Definitive Guide (ISBN: 1565925807)

  • GNOME uses Autoconf, Automake, and Libtool for building source. This free book by Gary V. Vaughan, Ben Elliston, Tom Tromey, and Ian Lance Taylor describes how to use these sometimes seemingly-arcane tools.
    {en} GNU Autoconf, Automake, and Libtool (ISBN: 1578701902)

  • The first published book on developing with GTK+ by Eric Harlow. A guide with examples and explanations.
    {en} Developing Linux Applications with GTK+ and GDK (ISBN: 0735700214) (might be outdated)

  • A book on CORBA programming that gives a great overall view of what CORBA is and how to use it. Even though it is C++ oriented, it maps over to C easily, but be sure that you have the CORBA C specification as well. Please note that CORBA/Bonobo has been deprecated in GNOME and new applications should not use this anymore but D-Bus instead.
    {en} Advanced CORBA Programming with C++ - by Michi Henning and Steve Vinoski. (ISBN: 0201379279)

Internationalization

GNOME Love Days

The underlying idea behind GNOME Love Days is to have one special day for a given task, for example finding bugs, or improving a specific part of GNOME.

On this day, someone will stay on the #gnome-love irc channel to give some support and help you on this task.

Join us on IRC or the gnome-love mailing list to help us plan our next GNOME Love Day!

Old Mentoring and Project Ideas


CategoryGnomeLove

TiffanyYau/Staging/GnomeLove (last edited 2013-12-03 19:04:41 by TiffanyYau)