Skip to content

Contributors License Agreement processing details

Phil Elson edited this page Jan 16, 2019 · 7 revisions

Background

The SciTools organisation requires contributor license agreements (CLAs) for all contributions to its projects. Since SciTool’s inception this has always been an expectation, but the CLA RFC made this requirement explicit, as documented at https://github.com/SciTools/scitools.org.uk/tree/master/documents/scitools_licensing.md.

The scope of this page is to describe the process of ensuring compliance with the aforementioned document.

How do we confirm that there is an appropriate CLA for a requested change?

A web service, implemented in https://github.com/SciTools-incubator/scitools-cla-checker, runs on each and every pull request (PR) submitted to SciTools (and SciTools-incubator). It is responsible for updating the PR with an indication of whether a CLA exists for all of the changes (commits) being proposed.

The webservice itself is running on Heroku, with access granted to @philip.elson, @bill.little and @tremain.knight. It is automatically deployed upon changes to master on https://github.com/SciTools-incubator/scitools-cla-checker.

Where can I see a list of all of those that have signed the CLA?

A JSON document containing a list of those who have signed the CLA can be found at https://script.google.com/macros/s/AKfycbwqZ0JLlOKJEcvYUYFXo77o6nux9tSHvOJISUnk3yHi-Bk0Qanz/exec.

This is the canonical source of those who have completed https://scitools.org.uk/cla/v4/form. It is a direct and live export of the Google form results that is populated upon completion of https://scitools.org.uk/cla/v4/form.

For those with access to the scitools.org.uk Google account, visiting https://script.google.com/home will present a number of scripts. The script providing the aforementioned service is entitled "List GH handles of CLA signatories".

How does the CLA signing form work?

The form behind https://scitools.org.uk/cla/v4/form is a Google form which populates a spreadsheet on Google Drive. For those with access to the scitools.org.uk Google account, the form can be found at "CLA/CLA v4 form". The form populates "CLA/CLA v4 Responses".

When a form is completed it adds a new row to the spreadsheet, it also fires a trigger (seen at script.google.com/home/triggers) that runs the script attached to the spreadsheet (can be edited by visiting script.google.com and opening "CLA v4 pdf-generator" or by opening the spreadsheet and clicking on the burger followed by "Script editor"). This trigger (createPdf()) uses "CLA/CLA v4" as a template and fills in the blanks based on the freshly submitted data. Once the CLA has been filled in, it is added to "CLA/signed/<gh-handle>" and emailed to the submitter & the SciTools administrators. No further work is required.

How to update an existing record

If a submission needs to be modified for any reason (e.g. wrong email address, changed GitHub handle) then it is possible for administrators to modify the row directly. A menu item should have been added "SciTools CLA" which allows one to "Send signed SciTools CLA again" for the current row - this will regenerate the PDF (and add a new item in "CLA/signed/<gh-handle>") and then subsequently send the PDF via email.

Can users submit a CLA more than once?

Technically, there is nothing stopping multiple submissions. This should be discouraged though - ideally we would have one CLA per persona on GitHub (some folks have a work and a personal account, in which case it makes sense to allow two submissions).

Can I remove a CLA signatory / delete a row from the spreadsheet?

Deleting a row from the spreadsheet will result in that user no longer being listed as a CLA signatory. We still have a record of the CLA in "CLA/signed/<gh-handle>" for legal protection for contributions already made. On the whole it is very unusual to want to be removed from the list - we cannot remove the signed CLA, and there is no real advantage to removing the person from the list of people who can contribute in the future (we still have to have their data). The CLA needn’t be revoked for a user to cease contributing.