# 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 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 ` * `Sponsored-by: Wikimedia Foundation` * `Sponsored-by: IBM ` --- title: Sponsored-by in git commit messages author: L.W. and D.S. documentclass: report ...