Starting to help develop code introduction
jralls at ceridwen.fremont.ca.us
Thu Nov 7 10:05:34 EST 2013
On Nov 7, 2013, at 5:42 AM, Alex Kempster <alkempster.cu at gmail.com> 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!
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 https://bugzilla.gnome.org/query.cgi. 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 http://wiki.gnucash.org/wiki/Development and http://wiki.gnucash.org/wiki/Development_Process and the linked pages.
Some future plans -- modulated by our significant shortage of programmer time -- can be found at http://wiki.gnucash.org/wiki/Roadmap.
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 https://github.com/Gnucash/gnucash.git.
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.
More information about the gnucash-devel