To stop you from getting disappointed right away: I do not have the answers! I have questions!
I just watched some documentaries about the creation of Vue and React. Those two are flourishing open source projects with lots of contributors and seem to have done something right.
During recent years as a developer, I have come across a couple of open source projects that gladly allow anyone to reuse the code. They also receive (plenty of) pull requests, but they are very reluctant to accept contributions. Among those projects were some one-person free-time repositories, some were hosted by small companies.
I wondered why this was the case - and simply asked. The projects did never rejected the idea in general, but the main argument that I heard against accepting contributions was that contributions might lack quality and reviewing and testing would be more effort than creating everything from scratch. Some projects also mentioned the fear of reputation loss if not catching security related issues or similar.
I can understand these concerns. But it clearly works elsewhere. So, I wonder what all the possible obstacles and countermeasures could be. Maybe someone is interested in thinking here with me.
Potential reasons to remain closed for contributions
Some problems I thought of are:
- lack of trust into others
- tendency to want to control every aspect
- lack of communication with the community
- lack of resources for dealing with pull requests
- lack of automated improvement (e.g. automated linting)
- lack of automated reviewing (e.g. automated static code analysis reports)
- lack of automated testing (e.g. automated unit tests)
- lack of proper documentation to help contributors to make high quality contributions
- unclear benefits of accepting contributions
- potential copyright issues if contributors reuse code that they should not
That list could probably be expanded ...
Solving all these items would certainly help, but the solution may not be obvious, the items certainly are intertwined, one item may be more important than another, and there will not be one right approach for every project. I assume that in some cases it might not even make sense.
Care to share?
Now, I wonder if someone could add potential obstacles that I missed or if someone here has gone through the same thought process, or even been involved in tackling and resolving things in an open source project. Do you mind sharing your experiences and ideas?
Top comments (0)