2 ms·
I think it is difficult to make general statements about all "open source" projects, because there seems to be at least 3 different types of open source project
by bxparks 2y ago
I think it is difficult to make general statements about all "open source" projects, because there seems to be at least 3 different types of open source projects:
1) Small projects, owned and maintained by a single person, with maybe a few random contributors.
2) Medium-sized projects maintained by handful of developers, without much organizational structure.
3) Large, almost enterprise-scale, projects used by thousands or millions of downstream users, maintained by dozens or hundreds of developers, requiring fairly complex organizational structure.
The article says that "instant you get that first contribution to your code, it becomes an open source project with an open source community of two", and the purpose of the project changes to "collaborating on the maintenance of the project".
For me, absolutely not. For most of my personal projects that I have open-sourced, I have no desire to migrate from a Type 1 (small, personal) project to a Type 2 (medium-sized, multiple-maintainers) project.
I accept PRs on a case-by-case basis, but I usually reject a vast majority of them: they are often buggy and incorrect, or they don't match the purpose and design of the project, or they are correct but severely incomplete (e.g. missing edge-cases, missing tests, missing documentation, etc). I have discovered that it usually takes me more time and effort to code-review the drive-by contributions into an acceptable state, than to just implement the feature myself.
On the other hand, for Type 3 (large, enterprise-scale) critical projects which affect numerous other parties, there is probably a higher level of implicit and social expectations that the project will handle bug reports and feature contributions from 3rd party contributors in a reasonable manner. The development process of a large project probably shouldn't rely on the whims and emotional state of a single maintainer on the project.
With regards to "kindness", which the article mentions a few times, I think for small projects, it might be reasonable to expect the kindness of the community. But for large projects, it is unrealistic that "kindness" will scale to thousands or millions of users. Too many people are too narcissistic, thoughtless, cruel, or all of the above.
In summary, it seems to me that the expectations and the dynamics of an open-source project varies quite a bit, possibly depending on the size and character of the project.
- creesch 2y ago> But for large projects, it is unrealistic that "kindness" will scale to thousands or millions of users. Too many people are too narcissistic, thoughtless, cruel, or all of the above. While it is sadly not to be expected, I don't think it should prevent projects from at least trying to cultivate it. One thing I have learned when dealing with large communities over the years is that it certainly is possible to cultivate a more general atmosphere that greatly reduces the amount of unkind/aggressive interactions. Part of the strategy to make that work is to keep talking about it and keep reminding people. People tend to get wrapped up in their own mind on the internet, for a majority of people being reminded of the fact that they are interacting with other people is often enough. So you need to make sure that as a project you have these things explicitly stated in places like contribution guidelines, on top of issue templates, etc. In addition to that, contributors and project owners need to be seen talking about these things. It might seem a bit childish, but things like a "hey, I'd be happy to continue talking about this issue you created but in a more constructive manner" from contributors help a lot as well. People tend to see that and notice that there is a clear expectation from the project. And of course, articles like this one actually are really important. And to be clear, it is never going to perfect, but in the long term it will be a lot better for contributors and owners than without any "community training" on these sorts of things.
- s1gsegv 2y agoI’m in the same camp. If I do something I find interesting and make it open source, it’s because I’d like to do this work out in the open, or someone might benefit from it, not that I am necessarily seeking out collaborators. Plus if you do GPL, accepting that first contribution is giving away the easy path should you want to relicense in the future.