We’ve written before about how much we value open source software and about two of our contributions: a utility library for handling UTF-8 and a Typescipt plugin for Netbeans. The importance of open source has been capably and thoroughly described by others. Less thoroughly documented is the how teams can optimize open source code contributions. Here are two best practices:
1) Keep projects current
The initial release of an open source project is is exciting; after all, its availability makes coders’ lives easier. Early attention on the code often helps uncover small fixes and opportunities, driving a spate of commits at launch. However, projects may later suffer from the conflicting demands and busy schedule of the original developer(s). It takes time and effort to identify things that need to be updated in the project, to solve these challenges, and to QA and push those changes. Because of these issues, many projects never benefit from updates. As a result, users either have to rely on code with vulnerabilities or have to fork their own versions, losing many of the advantages of open source software.
To address these issues, we aim to keep our projects current. For instance, below is a graph of the commits for our Netbeans plugin, showing the extended release cycle and ongoing updates. The lead on the project, Jeff, has kept pace with dependency updates, doing new commits when Typescript moved to versions 1.7.3, 1.7.5, and 1.8.5.
2) Leverage all available documentation
Open source projects often have multiple contributors – both to functionality, but also to documentation. As more users configure a project in their respective environments, more information becomes available about potential issues and shortcuts. It also gives people with different backgrounds and commenting styles a chance to provide context for those who come after them. All of this makes for easier future setup and increases the rate of adoption.
For example, our Netbeans plugin benefits from two great resources from the community:
- A video tutorial for setting up the plugin:
- A screenshot tutorial for setting it up for use in conjunction with Angular 2
We continue to be excited about the opportunities of open source and about doing our part to contribute. That includes keeping our projects current and documenting them.