Also posted on my blog at:
http://bibwild.wordpress.com/2011/12/14/practices-for-simple-contributor-management/
So, like many non-huge non-corporate-supported open source projects,
many of the open source projects I contribute to go something like this
(some of which I was original author, others not):
* Someone starts the project in an publicly accessible repo.
* If she works for a company, in the best case she got permission with
her employer (who may or may not own copyright to code she writes) to
release it as open source.
* She sticks some open source License file in the repo saying “copying
Carrie Coder” and/or the the name of the employer.
Okay, so far so good, but then:
* She adds someone else as a committer, who starts committing code.
And/or accepts pull requests on github etc, committing code by other
authors.
* Never even thinks about licensing/intellectual property issues.
What can go wrong?
* Well, the license file probably still says ‘copyright Carrie Coder’ or
‘copyright Acme Inc’, even though the code by other authors has
copyright held by them (or their employers). So right away something
seems not all on the up and up.
* One of those contributors can later be like “Wait, I didn’t mean to
release that open source, and I own the copyright, you don’t have my
permission to use it, take it out.”
* Or worse, one of the contributors employers can assert they own the
copyright and did not give permission for it to be released open source
and you don’t have permission to use it (and neither does anyone else
that’s copied or forked it from you).
== Heavy weight solutions
So there’s a really heavy-weight solution to this, like Apache
Foundation uses in their Contributor License Agreement. This is
something people have to actually print out and sign and mail in. Some
agreements like this actually transfer the copyright to some corporate
entity, presumably so the project can easily re-license under a
different license later. (I thought Apache did this, but apparently not).
This is kind of too much over-head for a simple non-corporate-sponsored
open source project. Who’s going to receive all this mail, and where are
they going to keep the contracts? There is no corporate entity to be
granted a non-exclusive license to do anything. (And the hypothetical
project isn’t nearly so important or popular to justify trying to get
umbrella stewardship from Apache or the Software Freedom Conservancy or
whatever.(If it were, the Software Freedom Conservancy is a good option,
but still too much overhead for the dozens of different tiny-to-medium
sized projects anyone may be involved in. )
Even so far as individuals, over the life of the project who the
committers are may very well change, and not include the original
author(s) anymore.
And you don’t want to make someone print out sign and wait for you to
receive something before accepting their commits, that’s not internet-speed.
== Best practices for a simpler solution that’s not nothing?
So doing it ‘right’ with that heavy-weight solution is just way too much
trouble, so most of us just keep ignoring it.
But is there some lighter-weight better-than-nothing
probably-good-enough approach? I am curious if anyone can provide
examples, ideally lawyer-vetted examples, of doing this much simpler.
Most of my projects are MIT-style licensed, which already says “do
whatever the heck you want with this code”, so I don’t really care about
being able to re-license under a different license later (I don’t think
I do? Or maybe even the MIT license would already allow anyone to do
that). So I definitely don’t need and can’t really can’t handle paper
print-outs.
I’m imagining something where each
contributor/accepted-pull-request-submitter basically just puts a
digital file in the repo, once, that says something like “All the code
I’ve contributed to this repo in past or future, I have the legal
ability to release under license X, and I have done so.” And then I
guess in the License file, instead of saying ‘copyright Original
Author’, it would be like ‘copyright by various contributors, see files
in ./contributors to see who.’
Does something along those lines end up working legally, or is it
worthless, no better than just continuing to ignore the problem, so you
might as well just continue to ignore the problem? Or if it is
potentially workable, does anyone have examples of projects using such a
system, ideally with some evidence some lawyer has said it’s worthwhile,
including a lawyer-vetted digital contributor agreement?
Any ideas?
|