DEV Community

Gabor Szabo
Gabor Szabo

Posted on

Improving the quality of Open Source projects

Open Source projects don't have the luxury of a QA department so they need to rely on what they know best. Writing more code for testing.

Throughout the years I've seen many Open Source projects and many in-house projects. Consistently I saw the open source projects have a lot more unit and even integration tests than the closed source projects. (OK, this is not such a bold statement given that most of the companies I visited had NO, or very few unit tests before I got there.)

Continuous Integration

Anyway, using Version Control is almost ubiquitous among Open Source projects however using Continuous Integration isn't yet. Even after so many years of having Travis-CI available free of charge.

So I am working a little project, or two, trying to improve the situation. Currently I am focusing on projects in two languages. Perl and Python.

Perl

For Perl I am working on a project called CPAN Digger to monitor the packages uploaded to CPAN and to see if they have a link to their public VCS and to see if they have Continuous Integration configured.

Python

For Python I have already built a web site collecting data called PyDigger There you can find the statistics that shows
31% of the packages have no VCS listed in the package.

It also shows that 52% of the packages use GitHub but have no Travis-CI configured. This latter needs some work so we'll recognize the other available CI systems and provide a list of all the packages that don't use any CI.

How can you help?

I think one of the easiest ways to get involved in Open Source projects and to contribute is to find low-hanging fruits that do not need a lot of involvement in the project.
Then if that works for both the project and you, you can delve deeper.

The low hanging fruits would be configuring one or more CI systems for the project. Checking test coverage. Writing more unit-tests. So check out the links and get started.

CI systems for GitHub

Top comments (0)