Ask HN: How to get contributions to open source project
My project is WinFsp, an open source project that enables developers to create user-mode file systems for Windows. In this sense it is similar to FUSE for UNIX. It consists of a kernel mode file system driver and user mode components. The project is hosted on github:
https://github.com/billziss-gh/winfsp
So far I have had little success in attracting contributions to this project. I list some reasons of why this may be so here:
- The project is not of high quality.
- The project is not well organized.
- The project is not well documented.
- No one serious about open source cares about Windows.
- The subject matter (user mode file systems) is not interesting to most of today's developers.
- The subject matter may be interesting, but most of today's developers lack the skill set required to contribute.
- Potential contributors are turned off by the license (AGPLv3 - GNU Affero General Public License).
- Potential contributors are turned off by the requirement to assign joint copyright interests to any contributions.
- Potential contributors are turned off that the project author wants to retain copyright control so that he can potentially license the code commercially.
- The project is just new and has not had enough time to gain traction.
- The project author is an intolerable dk and no one wants to work with him.
- All of the above.
- Other reasons?
Some of the things that I need help with:
- Contributions to the core WinFsp project.
- File systems ports. WinFsp has a FUSE API, which I have used to port SSHFS and FUSEPY.
- WinFsp wrapped in languages other than C/C++. I have had interest shown, but nothing concrete yet.
Thank you for any feedback.
23 comments
[ 40.3 ms ] story [ 696 ms ] threadFor me the AGPL in itself would be an "absolutely not", and combined with the point two bullets below that, on the grounds that "hey I'm doing work but he's getting money" that just adds insult to injury.
Unfortunately for you, you will not fix the problem if you don't change the way you're thinking about commercial products and FOSS on Windows. If this can help you to understand the environment: almost all Dokany contributors are using it for commercial purpose, remember that it was also your case and so is my personal case btw.
Let me explain the license choice (even if it was decided by the previous maintainer, I would have done the same choices here): we use LGPL license for the core/library so it can be used freely on commercial app while we still protect ourselves on unpublished core modification, and MIT license for additional programs (control, samples...) because these doesn't matter and this way it can be used as a starting point for developers.
I believe this is what people are expecting on Windows (FOSS on MAC is generally worth from my experience ^^) ; but of course this means giving it to companies making business on your work. It's part of the deal. I completely understand your position as I'm also using AGPL license for other open source projects I started years ago and for those I didn't want companies to use it freely.
Philosophically, to be open source is already a great decision, then the license decision is yours according to your way of thinking for your project.
a) rare
b) likely to be making a commercial product, in which case the main competitor to WinFSP isn't Dokan(y), but CBFS.
The author of Expandrive could probably add more to this - his product is based off CBFS.
BTW, I am not really trying to make WinFsp into a product. I simply created it because I am a file system writer myself and wanted a stable FSD for Windows.
I was originally planning to put it under the BSD, but I spent too much time and effort to simply give it away.
I suspect that there is more than that. I suspect that people no longer like the GPL. I am actually one of those people.
My intent with WinFsp is to allow any open source project to use it without restrictions (commercial or otherwise). The only thing I want to restrict is closed source commercial uses (in which case I offer a commercial license).
Unfortunately I am not aware of an open source license that is compatible with other open source licenses and does not impose any restrictions on them. The only open source licenses that I know that allow unlimited open source use, also allow unlimited closed source use (which I would like to restrict).
If anyone points me to such a license I will be happy to consider it for WinFsp.
Don't let people bully you here though. Choose the license that makes sense for you. I think you want GPL, but that's not for me to say.
BTW, please consider contributing to WinFsp :) You do not have to contribute to the core project if you find the license unpalatable or any other reason. But there are other ways that one could help. Creating a C# or Java wrapper would be very useful, for example.
The cygfuse project also needs help and this one intends to work with both WinFsp and Dokany:
https://github.com/mgeisert/cygfuse
> Many of your potential contributors may also lack the required operating system to do the work...
That is an interesting thought. I wonder if I could spend some time to try making this compile on Win7.
I'm wondering how tricky it'd be to create a C# FS implementation that supported both Dokany and WinFsp from the same codebase.
That's actually a cool idea.
The API's are not dissimilar as both API's were designed for Windows. If you decide to look into this you can count on my help and support.
That is what I do for development, between releases.
OTOH, here is how I got involved with this. I was developing a file system on OSX that I then ported to Linux. When I looked to port it to Windows I did not find any satisfying solutions and I ended up writing WinFsp.
Why port to Windows? Because it still has the biggest market share and because it was an interesting technical problem.
1. the license.
2. windows.
Also, I suspect open source follows a pareto distribution (5% of the projects get 95% of the contributions). And no contributors is probably better than being overwhelmed with low quality contributions and feature requests.
> 1. the license
I am pretty convinced that this is a major issue. I am looking for a solution that would allow unrestricted open source use while restricting closed source use. For example, freely combine with a BSD licensed open source project without imposing any restrictions on it (GPL), but disallow combining with a closed source project (unless a commercial license is used).
I am wondering if such a license (or license strategy) already exists.
> 2. windows
Ok, I hear you there :) This will sound weird, but I do not even consider myself a Windows developer anymore (despite being an ex-MSFT and writing Windows kernel mode drivers). I am writing to you from a Macbook Pro and I make a living these days writing Mac and iOS apps!
Often those communities are built around the business needs of the community members, e.g. Apache Foundation projects. Occasionally, the communities are built around shared political beliefs, e.g. GNU projects...it's worth considering how much work Stallman has put into community over the past 35 years or so. Probably worth looking at Linux too in regard to how much the principle contributor's social eccentricities affect open source success.
To put it another way:
Good luck.