Is unlikely that few companies decide to use an Open Source tool. As time goes by and the company changes around the tool, new requisites and needs arise.
Sometimes the possibility to get the code presents itself and let us be able to make quick small modifications to adapt the software to new needs, especially if the code isn’t compiled (you just have to edit the file and that’s it!)
Those changes can come mainly as:
- Author’s patches
- Third-party patches
- Our own patches (developed by ourselves)
When we make some changes to an Open Source project, we have to take into account that code becomes of our own and we assume certain responsibilities, which sometimes we left out.
Keep in mind it’s likely that the tool must be reinstalled in another machine. This applies even if you don’t modify the code.
- Save a copy from the original code and the changes you’ve made on it. Ideally, add it to your code versioning system.
- If you note down the steps you’ve followed to install it, it can be very helpful in the future.
- Don’t think that the file you downloaded will be always available online. Save it in a safe place, since there are projects that disappear, others erase versions just because they can’t keep a complete history, etc.
Now that you’ve made changes, you are responsible for the code.
Think about how you will manage a version change with your applied changes.
- If the project releases a security update you’ll be responsible for reapplying your changes to the latest version.
- Think that the operative system distribution can overwrite your changes if it was installed as a package.
- Changes release
If you modify the source code of a project, watch out for the license implications that it has. You may have to publish your changes in order to comply adequately with the license. Ask a specialist if you have doubts.
- Join the community
– Join the newsletters. Many projects make available to their users a list an “announce” (low-volume) mail list where there are only new versions announced or security problems.
– Join the user list or the development list to participate and propose your modifications. Other users and developers will be able to help you make your changes more efficiently.
- Contributing modifications
Try that the modifications you make are accepted in the main project. If you’ve been showing your changes in the developers’ list, rest assured you’ve gone a long way. Many other users will benefit, and more importantly: you will no longer have to maintain and apply your patches forever, as the project would have assumed that responsibility when incorporating your changes.
- Use the tool’s extension points
Many projects allow charging plugins that extend the tool’s behaviour. If you can implement your functionalities via a plugin, you will benefit of an easier updating process, since minor updates to the product base must not break plugin’s API without warning.
The fact of having the project’s code at hand does not mean we can make decisions lightly about changes on it. On the mid run, the problems of maintaining “your version” can become much more of a problem than you imagined.