Back to Index

Voikko

How to contribute

If you are new to this project and want to find out how to help, please see the Finnish FAQ first. This page explains how to contribute code and fix bugs.

The preferred way of contributing is to send patches to our mailing list. Very large patches may be rejected by the mailing list software, and sending mail to the list generally requires you to subscribe on it first. Therefore it is also possible to send patches directly to the individual developers. You may also attach the patches to our SourceForge bug tracker.

It is best to write the patches against current SVN trunk and submit them in the default output format of svn diff. Send the patch as attachment, not inline.

If you want to help with the development of our vocabulary database (the data, not the application) please note that we are rather careful with the copyright issues related to dictionaries and word lists. You should ask for premission on our mailing list before using any external sources other than those already listed in trunk/suomimalaga/CONTRIBUTORS.

We use UTF-8 encoding in all parts of our development environment, web site and applications so please make sure that your tools can deal with it. Especially Subversion client and text editors should be run under an UTF-8 locale. Some non-ASCII characters are used in Finnish, and they may be present in file names as well. It is perfectly possible to use Voikko in an environment where some other encoding is used. If you prefer to write Finnish with a fixed 8 bit encoding, ISO-8859-15 is the best choice and ISO-8859-1 is also sufficient for most use, but in this project UTF-8 is the standard.

Defect handling

Bugs and feature requests should, if possbile, be reported to our tracker. Using the mailing list or private mail may be better for inexperienced users, for bugs that must be fixed immediately (regressions found in pre-release testing or security bugs) and for issues related to confidential projects. However, if a non-critical bug is not reported to the tracker, it is very likely to be forgotten.

Issues should be reported by following good bug reporting conventions. We ask that you also submit test cases for your report. For example, if you are reporting that some type of compound words should be treated differently, list some representative examples.

License policy

Everything under our version control system must be available under "GPL v3 or later". Additional premissions, dual licensing or use of various more permissive licenses (LGPL, GPL+GFDL, BSD, MIT) are allowed too, as long as it will be possible to distribute the work under "GPL v3 or later".

Additionally material under some subdirectories of SVN trunk must be available under GPL v2. These directories are:

If you patches are large, please remember that we need them to be licensed under the same license as the files that are being patched. Usually this is required anyway by the GPL, but in case the files are distributed under multiple licenses you should give us explicit premission to use your patch under all of the relevant licenses. If you send us new source, data or documentation files, you can generally pick any license you want as long as it is compatible with our licensing policy. All source files should have explicit license header, unless it is unreasonable to do so.

We do not ask for copyrights being transferred to us or anyone else (this would be very difficult to do under Finnish copyright law anyway). Please do not send anonymous patches, they will be rejected if they are longer than about five lines of code.

SVN commit policy

SVN commit access will be given to regular contributors only. This is mostly because we do not use branches a lot but do most of our development and releases directly on the trunk. Therefore the commit policy changes often and it would be difficult to keep things organised if the number of committers was large.

Voikko is becoming rather complex piece of software. Therefore we will be gradually adding more automated tests to avoid serious regressions in quality. All committers must be aware of the available testing methods for the code or other material they are modifying. The testing methods are described on a separate page. For Suomi-malaga and libvoikko you should use voikkotest --base, voikkotest --current and voikkotest --compare before committing any code or vocabulary changes. For openoffice.org-voikko the published test document should be used to test all changes.

It is also the responsibility of the developers to improve the tests and testing tools. When fixing bugs in libvoikko or Suomi-malaga, new tests should be added to the files under /trunk/tests/voikkotest (this is not required for vocabulary changes). For openoffice.org-voikko new tests should be added to the test document. Changes fixing bugs reported to the tracker must contain a reference to that bug in the commit log message. When closing such bugs, mention the number of the SVN revision containing the fix.

There are not yet formal requirements to document the changes or write specifications for new features, but any existing documentation should be updated if you change the documented behaviour.

We aim to store only original source code in our repository. Do not check in anything that is generated (program binaries, source packages, pdf files) or is maintained in another revision control system (glib sources) without asking premission from the mailing list.

Possible improvements

Here are some things that would be nice to do, but are not yet being actively worked on. If you would like to get seriously involved with this project, see if any of these subprojects would interest you and let us know. Also all of the unassigned issues in our tracker are available for anyone to work on.


Last update: $Id: contributing.html 2057 2008-03-23 17:23:19Z hatp $