Starting to help develop code introduction

Alex Kempster at
Thu Nov 7 12:55:10 EST 2013

Thank you John Ralls,

That was very informative. I now have the git version downloaded and
compiling successfully (Horah!).

I have been getting used to the existing source code over the past hour or
so and realised there are a few cases were magic numbers are used:

gint hours = -bias / 60; // 60 minutes per hour
gint minutes = (bias < 0 ? -bias : bias) % 60;


Would it be beneficial to replace the numbers with more meaningful
definitions such as:


gint hours = -bias / MINUTES_PER_HOUR;
gint minutes = (bias < 0 ? -bias : bias) % MINUTES_PER_HOUR;

The definition would, in this case be stored in gnc-date.h

I think it could improve readability as well as help me to get more
familiar with the code base!

Any thoughts welcome

Alex Kempster

On 7 November 2013 15:05, John Ralls <jralls at> wrote:

> On Nov 7, 2013, at 5:42 AM, Alex Kempster < at> wrote:
> > I would like to help develop source code for this project. From my
> research
> > I understand that GnuCash is based on C and GTK+. I know that the code
> can
> > be accessed at:
> >
> >
> >
> > I looked through the FAQ but was unable to find a route in to helping
> > develop for this project.
> > Can anybody provide information as to a good starting point such as
> > code tidying or minor
> >
> > patches and modifications? I am a competent C programmer and I have
> > dabbled a little bit
> > on GTK, SDL and OpenGL. I also have a few years experience working on
> > parallelization of
> > programs using OpenMP. I realise that GnuCash only runs on a single
> > processor core so
> >
> > improving the performance of calculations such as large for loops is
> > something that I feel
> >
> > could enhance the project. Can I add support for using multiple
> > processor cores using OpenMP
> >
> > and if so, where would be a good place for me to start? Finally, I
> > can't find any information on
> >
> > setting up development under linux, is there a guide for this or
> > general tool-suite that is
> >
> > commonly used?
> >
> > Thank you for your time!
> Welcome!
> The usual way for people to start getting involved with any open source
> project, Gnucash
> included, is to work on bugs. We have an extensive and diverse collection
> on Gnome's Bugzilla at Select
> Gnucash from the project list and pick a subsystem to narrow the list a
> bit, then click on "search".
> Before you start coding, you should familiarize yourself with our
> development environment, process, coding standards, and so on. Please read
> and
> and the linked pages.
> Some future plans -- modulated by our significant shortage of programmer
> time -- can be found at
> We are now in the final couple of months of releasing our next minor
> version, 2.6, so any significant changes will have to wait for that to
> stabilize and branch, which we usually do about 3 months and bug-fix
> releases after the initial release. That doesn't mean you can't start on
> anything major until then, just that it has to live on a branch until then.
> You found our subversion repository, but with the release of 2.6 we will
> be closing that and completing the transition to git, which the core
> developers are already using. You can clone the repository from
> As for MP, we need to get to multi-user access to the database backend
> first. This will unfortunately require a major rewrite, for which we're
> planning to use C++. Thread safety should certainly be a design
> consideration in that new implementation; the current one is stuffed with
> statics and utterly thread unsafe.
> Regards,
> John Ralls

Kind Regards,

Alex Kempster

More information about the gnucash-devel mailing list