Hints for reporting QGIS bugs

One of the many ways that people can contribute to QGIS is bug reporting.

Actually, I think that bug reporting and documentation translation and writing are one of the best ways to join the QGIS effort and contribute back to this nice community.

This post gives some hints on bug reporting and I would like to start it by simply saying that you should take your time when doing a bug report.
By this I mean that you should give specific details and be as explicit as you can as in what conditions that bug appears.

You can checkout https://hub.qgis.org/wiki/17/Bugreports on more info about the bug reporting procedure.

The best way to present a QGIS bug is by accompanying your report with data and the exact steps that are needed to be done so that the issue can be easily reproduced.

I strongly believe that a good report (with data attached) makes a very good invite for any developer to check out the report. As developer time is as precious to him/her as everyone else's time the fact that you (the bug reporter) invested time so that the developer doesn't waste his/hers will probably get your bug checked out faster than others that are not detailed enough and can give headaches when trying to reproduce.

For vectors, you can save your data in shapefile or sqlite format.

However, keep in mind that it's best that you don't use the shapefile format for anything, including bug reporting.
Although you can easily search for articles that say why I will just paste some of the why nots I could easily find:

  • shapefiles have serious problems with attributes. For example, they cannot store null values, they round up numbers, they have poor support for Unicode character strings, they do not allow field names longer than 10 characters, and they cannot store both a date and time in a field. These are just the main issues
  • shapefiles do not work well for storing information in a language other than English

So, although the shapefile format is widely used (inertia), I strongly recommend saving your portable data in the sqlite format instead of shapefiles. For anything!

You can use the Create SpatiaLite Layer tool to do it:

The created sqlite file is over 5.6MB in size as it contains all the coordinate systems definitions in it.

If you want to shrink it you can simple delete the CRS's that you don't use for your data by connecting with DB Manager to the databsae and by running the following query:

DELETE FROM spatial_ref_sys WHERE srid <> 3844;  
DELETE FROM spatial_ref_sys_aux WHERE srid <> 3844;  

Basically, the above queries delete all the CRS definitions other than the one that I am usually using, that has the srid of 3844.
Keep in mind that the Vacuum command is needed in order to shrink the database after the data is deleted.

You can see from the terminal output below to what amount the data shrinked:

web@thinkpad:~/$ ls -al -h water.sqlite  
-rw-r--r-- 1 web web 5.6M Jan 24 16:05 water.sqlite

web@thinkpad:~/$ ls -al -h water.sqlite  
-rw-r--r-- 1 web web 667K Jan 24 16:07 water.sqlite

web@thinkpad:~/$ ls -al -h water.sqlite  
-rw-r--r-- 1 web web 128K Jan 24 16:11 water.sqlite