What to Look for in an Open-Source Project
In a recent article, Ben Balter discusses “9 things to look for in an open-source project.” According to the article, “If you’re going to rely on a community-contributed open-source project, you’ll want to ensure the code is up to your standards and that the community will continue to support it throughout the project’s life cycle.”
1. Update frequency.
“The most commonly cited metric is: When was it last updated?”
For some of the projects to which Kitware contributes, the most recent releases are:
- ITK 4.6.1 was released on October 1, 2014. ITK began in 1999 with a three-year contract from the U.S. National Library of Medicine of the National Institutes of Health to develop an open-source registration and segmentation toolkit.
- CMake 3.0.2 was released on September 11, 2014. The initial CMake implementation was mid-2000.
- ParaView 4.2.0 was released on September 29, 2014. The ParaView project started in 2000 as a collaborative effort between Kitware and Los Alamos National Laboratory.
- VTK 6.1.0 was released in January. VTK was originally written as part of a textbook, The Visualization Toolkit An Object-Oriented Approach to 3D Graphics, by Will Schroeder, Ken Martin, and Bill Lorensen. The book was written beginning in December 1993.
“Issues and bug reports are good things — really.”
Like all of the projects Kitware develops, ParaView, CMake, VTK, and ITK have bug trackers that are actively monitored. This helps the development team ensure that issues are addressed and fixed quickly. To address issues in VTK, for example, we hosted a hackathon earlier in October. For details on the hackathon, please read this previously posted blog entry.
3. Forks, stars and downloads.
“Each distribution platform provides its own metrics to describe popularity…Those indicators show how much the project is used, but be careful not to confuse adoption with quality.”
So far in October, VTK has over 5,000 total downloads, ParaView has over 1,200 total downloads, and CMake has over total 76,900 downloads.
“How is the project documented?”
Documentation for the four open-source projects is updated often. For example, ParaView’s documentation is automatically generated on a nightly basis. The documentation contains extensive descriptions regarding inheritance, methods, object collaboration, etc., that are particularly useful for developers working with the projects. VTK’s Doxygen-generated manuals are also updated nightly.
5. Organization or user.
“Who’s behind the project?”
Many of the open-source projects to which Kitware contributes are the result of extended collaboration. Kitware has collaborated with organizations including Los Alamos National Laboratory, National Library of Medicine, National Alliance for Medical Computing, Department of Energy, Sandia National Laboratories, and Army Research Laboratory, UNC Chapel Hill, University of Utah, University of Pennsylvania, GE Corporate R&D, and Insightful, among others, for open-source projects such as ITK, ParaView, VTK, and CMake.
6. Number of contributors
“Is the project a solo act or a team effort?”
Many of the open-source projects to which Kitware contributes are surrounded by active communities. For example, ParaView has had over 160 contributors, VTK has had over 250 contributors, CMake has had 330 contributors, and ITK has had over 260 contributors.
7. Who else uses it?
“…if none of your peers is using the project (or worse, have not even heard of it), that could be a major red flag. Many companies proudly showcase their open-source projects.”
Many organizations are using the projects to which Kitware contributes. For example, Netflix, INRIA, Canonical, biicode, and the Wolfram Language use CMake. In addition, over the summer, Microsoft announced Windows support for CMake. Meanwhile, Sandia National Laboratories, Los Alamos National Laboratory, Army Research Laboratory, and CSimSoft are among ParaView’s contributors.
“Does it contain a license file or just a reference to a license in the readme.txt file? Do files contain the proper headings where required? The strictness with which the software is licensed and the type of license used can indicate how familiar the publisher is with open source and how serious he or she is about providing you with unburdened intellectual property. Most important, make sure the license is compatible with your project and goals.”
Many of Kitware’s open-source projects are distributed under a BSD or an Apache license. For example, ParaView uses a permissive BSD license that enables the broadest possible audience, including commercial organizations, to use the software, royalty free, for most purposes. CMake is also distributed under a BSD 3-clause License, and ITK is distributed as open source under an OSI-approved license. Starting with ITK 4.0, the Apache 2.0 license is used. In addition, VTK is distributed under a BSD license.
9. The code itself.
“Did the developer follow the language’s common conventions and design patterns? Did he or she use a framework or build everything from scratch? Did he or she use a package manager?”