|
GnomeLove is an initiative that aims to help people who want to get started contributing to GNOME. This page offers a collection of links to useful resources for aspiring developers, testers, documenters or simply GNOME enthusiasts. |
Contents
Contacts
Beside this wiki page, the GnomeLove project also features:
the #gnome-love irc channel on irc.gnome.org
This page mainly focuses on developers, but there are also many other ways to get involved.
Getting started
Those guides provide useful information on the differents steps a beginner may follow to start contributing, and get to know how the things work.
Thoughts on how to start your GNOME journey, for those interested in getting involved or just writing GNOME applications (by RyanMcDougall).
Thoughts about working on Free Software (by HavocPennington)
http://planet.gnome.org is a good place to learn about GNOME and its users
Technical guides
Please maintain consistency when adding a new reference to keep this page as clear as possible...
A Getting Started Guide for those interested in developing with GNOME is being written. It hasn't been updated for a few months, but it 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.
A GnomeGlossary of the terms that get bandied around mailing lists
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.
Programming Guidelines: Hints to get used to best practices on programming.
Submitting Patches: In order to submit improvements you make to various GNOME modules, you will need to make and submit patches. This page explains how to do so (more thoroughly than does the section in the above tutorial on this topic).
Jhbuild: Jhbuild is a tool designed to build collections of source packages (also known as modules) from a variety of sources. Use this tool to build a copy of the GNOME desktop suitable for development and testing.
Giving love to projects
|
Case 1: You don't want to work on a specific project
Then the GnomeGoals are made for you. Instead of project-based bug correction, it generally consists of task-based desktop-wide bug corrections. You then learn a single task, but touch to every project, which is a good exercise to get started. The tasks are usually simple and short, and accompanied with guidelines. You also need less commitment in the project, so this is perfect for people wanting to contribute on an irregular basis.
Also, if you're interested in performance issues, look at GnomePerformance for how to help in making GNOME run faster, and, in the same spirit, see MemoryReduction to help in reducing the amount of memory used by GNOME.
Case 2: You don't know which project you want to work on
Look at bugzilla bugs with the gnome-love keyword. These are tasks suitable for new developers, for many GNOME projects.
Case 3: You want to work on a specific project
Then check out the ModuleMaintenanceWorkspaces and pick up a project. Following the associated love-bugs link will lead you to the tasks suitable for GNOME Lovers for that project.
Some projects also have a favorite entry point, or additionnal info for GNOME Lovers:
GTK+: See the GtkLove bug list and the GtkTasks page for volunteers.
/GnomeKeyringManager - Project developed only by GNOME lovers. Go there to learn and contribute to it.
Lockdown Editor - A simple idea in need of developers.
The GNOME System Tools task list.
Totem: http://mail.gnome.org/archives/gnome-love/2004-April/msg00023.html.
Metacity: The HACKING and code overview files orient you to the code, point out relevant standards, explain a lot of the specialized utilities for testing metacity, show how to debug your code (debuggers don't work well for Metacity), and provide a list of tasks you can work on.
Epiphany: There are lots of older, sometimes untargeted bugs for Epiphany that the development team doesn't get around to. Help would be most welcome!
Other applications:
Glom (Easy database UIs) has a task list suitable for new contributors.
Silky - a graphical SILC client - is looking for more developers.
xchat-gnome has a list of tasks suitable for new developers.
Case 4: You want to work on new projects or new features
There are a bunch of ideas for new projects and features in GNOME, make sure to get the opinion of the affected maintainers or the community because the project in question could have become obsolete, invalid or yet implemented with the passing of time:
Ideas and Performance projects from SummerOfCode2006.
GNOME desktop bounties
GNOME Love Days
The underlying idea behind this, 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.
When |
Topic |
2005-10-30, from 14:00 UTC |
|
2006-08-06, from 14:00 UTC |
Articles and tutorials
Tips & Tricks
Internationalization
Internationalization tutorial by Malcolm Tredinnick
GUI
GtkUIManager tutorial for making Menus and Toolbars
Drag and drop tutorial for your GTK+ applications
GtkTreeView tutorial by Tim-Philipp Muller
GtkTextView tutorial by Vijay Kumar
Other
GOptions tutorial for easy command line parsing
GObject tutorial by Mathieu Lacage
Integrating existing software with GNOME (installing mime types, thumbnailers, etc..)
Books
Matthias Warkus wrote a (quite outdated by now) book covering the GNOME 2 desktop environment.
{en} The Official GNOME 2 Developer's Guide (quite outdated)
{de} GNOME 2.0: Das Entwickler-HandbuchAndrew Krause wrote another book, dedicated to GTK+ 2 development.
{en} Foundations of GTK+ Development

