
Ask HN: How to get contributions to open source project - billziss
I am looking for advice on getting contributions to my open source project. While the project has generated interest, it has received no actual contributions as of today and I am looking for the reasons why.<p>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:<p>https:&#x2F;&#x2F;github.com&#x2F;billziss-gh&#x2F;winfsp<p>So far I have had little success in attracting contributions to this project. I list some reasons of why this may be so here:<p>- The project is not of high quality.<p>- The project is not well organized.<p>- The project is not well documented.<p>- No one serious about open source cares about Windows.<p>- The subject matter (user mode file systems) is not interesting to most of today&#x27;s developers.<p>- The subject matter may be interesting, but most of today&#x27;s developers lack the skill set required to contribute.<p>- Potential contributors are turned off by the license (AGPLv3
 - GNU Affero General Public License).<p>- Potential contributors are turned off by the requirement to assign joint copyright interests to any contributions.<p>- Potential contributors are turned off that the project author wants to retain copyright control so that he can potentially license the code commercially.<p>- The project is just new and has not had enough time to gain traction.<p>- The project author is an intolerable d<i></i>k and no one wants to work with him.<p>- All of the above.<p>- Other reasons?<p>Some of the things that I need help with:<p>- Contributions to the core WinFsp project.<p>- File systems ports. WinFsp has a FUSE API, which I have used to port SSHFS and FUSEPY.<p>- WinFsp wrapped in languages other than C&#x2F;C++. I have had interest shown, but nothing concrete yet.<p>Thank you for any feedback.
======
CharlesMerriam2
Perhaps I can summarize: "I want free help for a product I can sell. I put it
up on GitHub. Why aren't people giving free help to me?"

~~~
billziss
I fail to understand this. Are you saying that the GPL is not an open source
license?

~~~
voltagex_
The AGPL is more restrictive than the GPL. It's a tricky choice to make.

~~~
billziss
If that is the only impediment, I will switch to GPL tomorrow.

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.

~~~
CiPHPerCoder
GPL is fine for this use case. AGPL might be considered too aggressive for
some people.

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.

------
GFK_of_xmaspast
I did a little bit of googling, and you left out "there is an existing project
that's in the same space".

For 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.

~~~
voltagex_
The other interesting part is that it's a very niche product in itself. If you
go off the theory that most contributors are trying to solve a problem for
themselves, then people who need an FS driver are

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.

~~~
billziss
That is a very good insight and one that I agree with.

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.

------
voltagex_
You've also got the problem of driver signing, especially on Windows 10
Anniversary. Microsoft _really_ doesn't want people without signing
certificates making drivers.

~~~
billziss
That is indeed a problem. Although developers can get by using testsigning and
turning off secure boot.

That is what I do for development, between releases.

------
voltagex_
AGPL will probably scare off commercial contributors. You've also got the
problem that there's a _very_ high bar to entry in your project. I have the
same problem with trying to contribute to Dokany - I just don't have the
skills. Many of your potential contributors may also lack the required
operating system to do the work...

~~~
billziss
There is indeed a high bar of entry, although this is not necessarily true for
the user mode components.

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](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.

~~~
voltagex_
It's not going to be a popular opinion on HN, but I think supporting Windows
10 only is fine in 2016.

I'm wondering how tricky it'd be to create a C# FS implementation that
supported both Dokany and WinFsp from the same codebase.

~~~
billziss
> 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.

------
brudgers
People will more readily contribute to a community than a technology. For some
definition of 'successful', successful opensource projects are often
successful due to community at least as much as technology.

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:

    
    
      attractingContributors != buildingCommunity
    

Good luck.

------
ksherlock
I saw winfsp a few months back and thought it looked fantastic. But...

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.

~~~
billziss
Thanks for the honest feedback.

> 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!

------
flukus
One thing you missed is that there just isn't the same culture around open
source development in the windows world. After all, why should someone devote
their time to make windows (a commercial, closed source product) better?

~~~
billziss
I understand this sentiment. I am a Mac guy myself (and have been for over 10
years).

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.

