Contributing to QCAD
QCAD is free open source software. This means that everyone can get involved and contribute to make this project even better.
The source code of QCAD is hosted on github at: https://github.com/qcad/qcad/
This includes documentation sources, translation sources, icons, etc.
One of the most comfortable ways to contribute is to create a pull request through github.
Every user of QCAD has the freedom to download the QCAD source code and modify or extend it. Such modifications are then usually contributed back to become a part of QCAD or an optional add-on for QCAD.
Add-ons are often developed by QCAD users to solve a particular problem at hand. A user might for example want to create an add-on to QCAD to draw some type of complex line pattern between two points. There's a good chance that there are other users our there, who could benefit from the same add-on, so the user decides to share this add-on under an open source license. Another user might start using that add-on, modify and improve it and share it back. Now the first user also benefits from the update made by the second user. This is the spirit of open source software development.
The core of QCAD is developed in C++. To extend QCAD using C++, a plugin interface is available which can for example be used to provide access to external C / C++ libraries, to register new script classes and functions, etc. A C++ plugin should be developed if your add-on depends on an existing external C or C++ library or if performance is crucial.
Testing and Feedback
If you would like to try out the latest and greatest new features and help with testing and feedback, please check out the current development version. You will need a compiler to compile the QCAD source code. Detailed compilation instructions are available for Windows, Mac OS X and Linux systems. Other systems such as Solaris, FreeBSD, etc. are likely to work as well but are not officially supported at this point.
Documentation and Translation
Each QCAD script add-on is bundled in a separate directory with its documentation in the 'doc' subdirectory (e.g. 'scripts/Draw/Line/Line2P/doc'). Documentation can be added as HTML snippets named after the tool and translation language (e.g. 'Line2P_desc_en.html' for a description of the tool in English and 'Line2P_proc_de.html' for the procedure to use the tool in English). The automatically generated manual page for the line tool is called 'Line2P_en.html' and should never be edited by hand.
All HTML snippets from all script tools are compiled fully automatically into the complete user reference manual which is available on our web site at http://www.qcad.org/doc/qcad/latest/reference/en/. This process ensures that titles, menus and shortcuts used in the manual always match the current software version.
The user manual is currently most complete in English, German and Japanese but other translations can be added as well.
User Interface Translation
The user interface of QCAD can be translated using the Qt internationalization tool chain (lupdate, linguist and lrelease). Script add-ons are bundled with their translations in their local subdirectory 'ts'.
Since February 2014, there is also a translation server available which can be used to translate the user interface of QCAD conveniently online: