What does open source mean to the Indicia project?¶
By now you will probably have seen the words “open source” banded around relating to Indicia. If you are a die hard open source aficionado then feel free to skip to the next section. However if you are unsure what this means or worried about the result this will have on project quality then this section explains what open source means to the Indicia project. Open source can mean a variety of things but in the context of Indicia we have adopted a licence called GNU Public License or GPL. To summarise:
- You can easily and freely access all the source code.
- You can use Indicia with no license costs. Not only is Indicia itself free to use, but so are all the other components it depends on. Don’t forget though, that you must allow for the costs of having a website built using Indicia and any assistance required.
- You can distribute copies of Indicia for free as long as you include the license and access to the source code.
- You can modify your copy of the source code.
- If you build a commercial product based on Indicia then this is OK only if Indicia is included as a standalone part. If your product is an extension of Indicia itself then you cannot sell it commercially.
Although these are the only significant stipulations, in practice being involved in an open source GPL project like Indicia can feel quite different to buying a license for a commercial project.
- It is easy for you to get involved and help the project, whether this is as a coder, tester or to provide new ideas.
- The project can be quite fluid and reactive, with releases being fairly frequent and new releases for critical bugs being released within a matter of hours in some cases.
- If you find a bug then potentially you can dig around in the code and fix it yourself or maybe find a programmer to help you do this. There is no need to wait a year or two in some cases for a new release which may not even fix the bug.
- You can dialog with the actual developers on the forum, not sales representatives.
Many people will express concerns about open source projects having a lack of quality control. Of course it is possible for an open source project to have very little concern for quality and be full of bugs, but this is also possible in the commercial world. In both cases the project is likely to eventually fail, either because people will not join the project and contribute in one case or because of lack of sales in the other. In fact developers on open source projects often write better quality code simply because they know they are “being watched” by the community and won’t get away with poor quality code! It is probably fair to say that a well-run commercial project is a much better bet than a badly run open source project, but also that a well run open source project is a much better bet than a badly run commercial one.
Indicia is a rapidly developing project with a disparate community of developers so of course it is essential that care is taken to ensure code quality. One way this is happening is through the setup of a continuous integration and testing environment. Every time code changes are made to the repository, an automated tool retrieves the changes and performs an automatic complete installation of Indicia followed by some tests to ensure key areas of functionality still work. Whilst this is still work in progress it already means that we instantly know if a code change breaks the installation and in future the tests will be expanded to cover more areas of the system. This is yet another example of open source in action as the skills required to do this were brought to the project by a voluntary contributor who was looking at using Indicia for his own bird group (thanks, you know who you are!).
These are not hard and fast rules and there are some commercial projects which share these characteristics, but open source projects are generally very different to commercial ones.