So GSoC 2012 finally came to an end with Gnucash for Android entering beta. It was a rich experience and I have definitely learned a lot along the way. I took some time off, which may explain why there have not been many blog posts in a while and only minor fixes have been made since the first beta. But now I’m back and its time to begin a new journey!!
I am pleased to say that I will be maintaining Gnucash for Android going forward. I think that is one of the great benefits of the GSoC program – introducing and keeping people involved in open source. Now that GSoC is over, the application is open to contributions from anyone who can help in any way. The code is hosted on GitHub which means it is relatively easy to fork and make pull requests. Up till now, I have been developing locally and pushing changes to master, with master being some reflection of the last “stable” state. This is going to change to encourage more participation. This means the repository is going to be split into branches using the git-flow branching model.
In summary, there will be two branches at all times, develop and master. master should be always stable and ready to deploy. This means before anything hits master, it should have been properly tested and integrated. develop is where constant merging of patches and hotfixes will be taking place. This is effectively the working branch. There will be also several feature branches in the feature/ folder which will be short-lived and serve only the purpose of their name (creating new app features). Feature branches may or may not live in the public repository, but master and develop will.
I know there are a few folks who have expressed interest in helping out. Thank you and I look forward to your contributions. For the rest, I’ll need all the help I can get. There will be need for testers in many different locales, promoting Gnucash for Android, documentation writing (both developer and user documentation) in addition to coding contributions. If you can help in any way, you are welcome.
This is somewhat new to me and I’ll be making it up as I go along and adjusting accordingly. However, for starters, there will be some house rules. In order to maintain some level of quality, there are a few things to keep in mind when submitting a contribution.
- Contributions, coding or otherwise will be mainly accepted through GitHub pull requests. This is the preferred way for now and will allow for some sort of public review of the patches before they are merged. I cannot guarantee using privately sent patch files unless I solicit them.
- Any coding contributions should have proper tests which cover them. Gnucash for Android uses Robotium for UI testing. Both unit tests and UI tests should be written to properly cover the feature. This will prevent any regressions or inadvertent introduction of bugs in the codebase.
That’s it for now and I’m sure we’ll revisit these over time, but until then, we’ll stick with these. So the journey begins and I look forward to what lies ahead as well as people to share in this adventure. Look out for the next beta….