Re: [evince] A struggling newcomer



On Fri, 2015-01-02 at 01:55 +0530, Dharak Kharod wrote:
hi, I am new to open source world and want to contribute to evince... I
have built evince from its git repo using JHBuild...
Now can someone guide me about how do I understand the codebase?
may be some bugs suitable for a beginner like me?

Hi,

In bugzilla you will find bugs with the keyword gnome-love.  Those are
potentially solvable by newcomers.  If some of them already have
patches, you can test them, rebase-them (if needed) and add comments in
bugzilla.

Likely for gnome-love bugs you might need to touch one file.  You don't
need to know the full code base to address them. In most the cases is
that, even for more complex bugs/features.

Some hints in the evince directory structure:
* backend: Support for different file formats. Most of them (if not
           all) calls external libraries to render a document.
* browser-plugin: Enable evince to be embedded in a web browser.
           The code here is to be installed in browsers as plugins.
* cut-n-paste: Code taken from other repositories that cannot be
           added as dependencies, or that only is needed a specific
           part rather than the full library.
* data: Desktop files, man page, dbus services, icons
* help: End-user help written in Mallard
* libdocument: Classes to handle a document, get access to its
               features, interface with backends, etc.
* libmisc: Everything that does not fit in libdocument nor
           libview, and that should be in a library.
* libview: Classes to present the document on the screen.
* previewer: "Print" preview
* shell: User interface.
* thumbnailer: stand alone application to create the thumbnails
               of document supported by Evince. Used by applications
               like Nautilus.

I would say the shell, libdocument and libview are the ones you might
want to take a look.

Inside shell you fill find multiple files, most of them one per class:
history, properties, metadata, sidebar, elements in a sidebar (index,
annotations, layers, links, ...).  The applications is
ev-application.[ch], which creates a window per document, which is
ev-window.[ch], and each window has sidebar, toolbar, find bar, and
the actual view of the document.

At last but not least, here is the list of current evince's gnome-love
bugs:
https://bugzilla.gnome.org/buglist.cgi?quicksearch=keywords%3Agnome-love
+product%3A%22evince%22+

-- 
Germán Poo-Caamaño
http://calcifer.org/



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]