<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Dear QGIS users,<br>
<br>
I started a crowd-funding campaign for automated unit tests in QGIS.
Please consider to help funding this project in order to improve the
software and code quality in the long run. More details can be found
on the project page and in the text below.<br>
<br>
<a class="moz-txt-link-freetext" href="http://blog.vitu.ch/10102014-1046/crowdfunding-initiative-automated-testing">http://blog.vitu.ch/10102014-1046/crowdfunding-initiative-automated-testing</a><br>
<br>
<p class="MsoPlainText"><span lang="EN-US">I plan to improve the
quality of QGIS sustainably by introducing the automatic
execution of test procedures which will inform responsible
developers automatically in case of failure. Your support for
this project is highly welcome and you can contribute to make
QGIS more stable in the long run. To implement the necessary
changes as well as repairing currently broken tests a minimal
amount of CHF 5000.- will be required. The following paragraphs
will describe the project in more detail.<o:p></o:p></span><span
lang="EN-US"><o:p> </o:p></span>
</p>
<p class="MsoPlainText"><span lang="EN-US">----------<o:p></o:p></span></p>
<p class="MsoPlainText"><span lang="EN-US">In the last years, QGIS
matured from a hobby project to a serious alternative with a
broad scope of possibilities and a great potential.<o:p></o:p></span></p>
<p class="MsoPlainText"><span lang="EN-US">With the constant
addition of new features new possibilities have been created and
still are created. Every new feature means changes to the source
code of the software and is a potential source of errors.<br>
</span></p>
<p class="MsoPlainText"><span lang="EN-US">There are possibilities
to automatically detect errors. This is done by executing a
series of operations with known result. If a operation does not
return the desired (known) result something went wrong and it
needs to be evaulated why.<o:p></o:p></span><br>
</p>
<p class="MsoPlainText"><span lang="EN-US">QGIS has currently over
100 different tests. However, these are not run regularly and
nobody realizes when tests fail. This led to the situation, that
at the moment approximately 2/3 of the tests do not report
success and nobody knows why and since when.<br>
</span></p>
<p class="MsoPlainText"><span lang="EN-US">I intend to take the
following measures to ensure that in the future tests no longer
can silently fail:<br>
</span></p>
<p class="MsoPlainText"><span lang="EN-US">* tests will be run on
all source code changes in master (main development branch)<o:p></o:p></span></p>
<p class="MsoPlainText"><span lang="EN-US">* tests will be run on
all pull requests (changes being evaluated for integration in
master)<o:p></o:p></span></p>
<p class="MsoPlainText"><span lang="EN-US">* if tests fail the
responsible developers will be notified by mail<o:p></o:p></span></p>
<p class="MsoPlainText"><span lang="EN-US">* with symbols, the
current state of the tests will be indicated<o:p></o:p></span><span
lang="EN-US"><o:p><br>
</o:p></span></p>
<p class="MsoPlainText"><span lang="EN-US"><o:p></o:p></span><span
lang="EN-US">With this system it is possible to react
instantaneously when tests fail and to revert the responsible
changes or to not even integrate these.<o:p></o:p></span><span
lang="EN-US"><o:p><br>
</o:p></span></p>
<p class="MsoPlainText"><span lang="EN-US"><o:p></o:p></span><span
lang="EN-US">To make sure that this system works and is
accepted, it is important to start with a working suite of
tests. How much time it takes to fix all tests is difficult to
say. The plan is therefore to fix as many tests with the
available funds and to disable the rest of the tests in the
first time. Therefore additional funds that are provided on top
of the required minimum CHF 5000.- will be very welcome for
additional working tests.<o:p></o:p></span><span lang="EN-US"><o:p><br>
</o:p></span></p>
<p class="MsoPlainText">It would be great if this crowd-funding
effort could help to get this project to fly.<br>
<span lang="EN-US"><o:p></o:p></span><span lang="EN-US"></span></p>
<p class="MsoPlainText">Kind regards,<o:p></o:p></p>
Matthias Kuhn<br>
</body>
</html>