go-text / typesetting

High quality text shaping in pure Go.
Other
88 stars 11 forks source link

Should go-text require contributors to sign a CLA or DCO? #9

Open whereswaldon opened 2 years ago

whereswaldon commented 2 years ago

We need to choose some contribution guidelines, among the most important of which is whether or not we ask contributors to agree to either a Contributor License Agreement or the Developer Certificate of Origin.

Please propose what you think makes the most sense for this project here.

andydotxyz commented 2 years ago

It may depend on the license we go with I expect. CLA and DCO usefulness vary based on who has the copyright and what notion of transference is required. Though it may not be a determining factor shall we agree go-text/shaping#6 first?

eliasnaur commented 2 years ago

Why does the choice between CLA vs DCO depend on the license? Is there a license that is incompatible with either form of contributor agreement?

If we're worried about record keeping, I believe Kakoune's contributor guide describes a low friction approach: they record contributor agreement in Git commit messages (hat tip @whereswaldon).

whereswaldon commented 2 years ago

Why does the choice between CLA vs DCO depend on the license? Is there a license that is incompatible with either form of contributor agreement?

I'm not sure if it does, but I'm happy to take the two issues one at a time. :D I do like Kakoune's approach though, so it's something that would be nice to emulate with our decision here.

whereswaldon commented 1 year ago

This might still warrant some discussion.

andydotxyz commented 1 year ago

I'd go for something that is easy to do and standard. I'm not sure about a commit message on empty commit personally - the record of it is hard to find and if for some reason git history is lost then so is your record of any assignment/license/waiver...

whereswaldon commented 1 year ago

I think using git sign-off trailers to indicate accepting the standard DCO that the kernel uses would both satisfy our purposes, be standard, and be durable.

It practically just means adding -s to your git commit invocations, which is easy enough.