How do I customise open source in a maintainable way?
While having access to the source code is one of the key benefits of open source, developers can run into difficulties when making changes. This is especially true if the full implications of those changes are not carefully considered. Typically, extensive local changes can lead to expensive merging operations when upgrading to a new project release or installing new modules that are incompatible with local customisations. One way to avoid this expense is to work with the software architecture and restrict changes to a ‘plug-in’. This can be managed as a separate project with few dependencies on the core code. Such plug-in code is less often effected by project changes. An even more effective approach is to work with the project community to adopt the changes into the core project. The changes are then maintained by the project and will be automatically included in the next release. The extra effort involved is often outweighed by the reduced maintenance costs, or by the improved reput