Note: This is now moved to https://liw.fi/sponsored-by/ where it’s easier to update.

Executive summary

To make sponsorship of free and open source software more visible, add a Sponsored-by pseudo-header to git commit messages.

The problem

This is an idea I had together with Daniel Silverstone.

Free and open source software is sometimes funded by its authors: they work on it in their free time. Sometimes development is funded by a company who employs people to develop the software. Sometimes it’s fully or partially funded by donations or gifts: some party gives money to the developers so they can work on the software, but not as employment; we call this sponsorship.

Overall, for any particular project, it’s unclear how it’s funded. Sometimes the project makes it clear, but often it’s not clear. In a large project, with different parties funding parts of the work such as the Linux kernel, it’s hard to keep track of who funds the work. Currently it is done by heuristics based on author commit email addresses.

One of the problems is that employment and sponsorship tends to be scarce, and difficult to get, and even many important, popular software projects do not have people who can work on it full time. This hurts the quality of the software, and slows down its development significantly.

A partial solution

We propose that it would help to make sponsorship more obvious. Apart from the project’s web site, each commit could label the work as sponsored using a pseudo-header:

Sponsored-by: Example Corp.

Any commits done as part of sponsored work would have this. This would raise the visibility of sponsorship, thereby hopefully making it more interesting to sponsor.

Specification

We suggest the following specification as a base of discussion:

  • sponsorship of work to produce a commit is marked by one or more Sponsored-by pseudo-headers in the commit message
  • lack of such a header does not say anything about whether the work was sponsored; use of the header is optional
  • a header only applies to the commit it appears in
  • all headers referring to the same sponsor should try to use the same value so it’s easier to collect statistics
  • the value has the same format as a git commit author field; it can be a bare email address, or lack an email address
  • the special value author means the work was done without sponsorship

Examples:

  • Sponsored-by: author
  • Sponsored-by: Lars Wirzenius <liw@liw.fi>
  • Sponsored-by: Wikimedia Foundation
  • Sponsored-by: IBM <https://www.ibm.com/>

Examples of commits using this:

This is a new idea, and has barely been tried. What do you think?

Edited to add: It turns out the FreeBSD development community has a tradition of marking commits as having being sponsored. See for example: