FOSS zombies
First and foremost, FOSS projects are usually maintained by volunteers that donate their own time to the community. We can only be thankful for that. Nevertheless, it's our right to find ways to devote our time where it will make more impact (whatever that entails for each of us).
Now imagine you've been contributing for some months to a FOSS project. You've learned its internals to a large extent and your change proposals have been quite consistently merged.
Someday, you realize that your patches take more and more time to receive attention; what used to take days, now takes weeks. You start feeling a bit frustrated. You have so many ideas to improve the software, but at this pace, your code will hit master within months if you're lucky.
At this very time, you start noticing things in the project that you didn't pay much attention in the beginning, but which can explain crystal clear why you've got involved in what I'm calling a "FOSS zombie".
Let's review some signals and tips to avoid falling in the trap.
Zombie signs
Inactive or dismantled organization
The organization behind the project is not active anymore.
What to look for?
-
Is the organization owning the project still alive and kicking?
-
Do some research on the main contributors. Do they used to work for/be part of the organization owning the project, but they are not anymore?
External contributors are the only contributors
Most releases are minor/patch versions proposed by external contributors and new features are rare.
What to look for?
-
Review the changelog and latest commits; are most of them from external authors? What type of changes contain?
-
Do maintainers write new code? Do they only merge other people's code?
-
Try to find plans for new features. Roadmap anywhere?
Maintainers accumulate all responsibilities
Maintainers still have all responsibilities even if they haven't made any significant contribution for months/years.
Nevertheless, they have not vanished; they still provide feedback, merge contributions and release versions.
What to look for?
-
Find out what level of involvement do the maintainers have in the project?
-
Are there external developers allowed to accept contributions in the project?
-
In general, is there any kind of responsibility delegation?
Initial boost
The project received much attention at its creation, but in the following years/months it was pretty much inactive.
What to look for?
-
Use your preferred tool to show git repo statistics and look for tendencies.
-
Watch for messages of the project being completed. Many projects will match this pattern but don't seek further development and this is OK.
Open issues and contributions
There are many open issues and contributions, which means ideas and developments that didn't go well for whatever reason.
What to look for?
- Check the contribution open/close ratio. Compare it with other succesful projects.
Useless work and code
There are unmerged contributions which have received a lot of feedback and work, but that didn't work out well and now all that code is in the limbo.
What to look for?
-
Look for open contributions with a number of reviews/comments strangely above normal.
-
Look for open contributions opened months/years ago. Find root causes. Try to be critic and impartial.
Conclusions
It's important to distinguish between a "FOSS zombie" and a project which is simply done. If that's the case, you'll find out easily by reading the documentation.
Now that we can identify a "FOSS zombie" and tell the difference from an abandoned/unmaintained one, let's realize that we are not obliged to contribute to it; there are always alternatives:
- Find a similar project with a more active community.
- Talk to the maintainers in case they are willing to support a fork or hand-off.
- Create a fork and start improving and using it.
In my opinion, "FOSS zombies" lead to confusion to potential contributors. If the maintainer(s) don't want to work anymore in the project, which is perfectly fine, they'd be better off letting go of it. Otherwise, contributors might get quickly burned out and the project will miss opportunities to grow and improve.