This how-to is used on a yearly basis to generate the list of contributors who are eligible for the TSC election.


  1. You have access to the scripts located at:
  2. You can run a bash shell script
  3. You have updated to contain the updated list of repositories for projects and labs.

Step-by-step guide

  1. Create a Google Sheet to contain the election contribution list

    1. Copy last year's election contribution list to a new Google sheet
    2. Add a new tab to for any new projects and their maintainers
    3. Update the new sheet to reflect changes to existing project's maintainers
    4. Remove any tabs that are no longer applicable
    5. If a "Labs" and "Others Repo" tab exists, remove them
    6. Update the formula on master to reflect any new and/or deleted sheets
  2. Run the script specifying the --since argument. The --since argument should specify the last date that was used when for the last TSC election roles.

    sh --since 08/01/2017 --all

    This step will create a folder named /tmp/hyperledger-contributors-<datetime> with a file named contributors.csv  that contains all of the contributors for the Hyperledger projects and Hyperledger Labs specified in

  3. Import contributors.csv file into the contributors tab (replacing any existing content).  Make sure that you are on the sheet named ‘Contributors’ .

    1. File | Import

    2. Upload contributors.csv that was created in step #2 above

    3. Click on Replace Current Sheet

    4. Choose Custom separator character

    5. Use the comma as the delimiter

    6. Double check that you are on the sheet named ‘Contributors’.

    7. Click Import

    8. Add a header row at the top of the sheet (Email, Name)

Some contributors will contribute under multiple email addresses and may be reflected with variations of their names in the output of the script. If this occurs, the names and/or email addresses will have multiple entries that are separated by a pipe. In addition, there may be multiple entries reflecting the same person. Go through the list and make sure that this is corrected via the mailmap file and by ensuring that the names and email addresses used across the tabs in the spreadsheet are consistent.

Error rendering macro 'contentbylabel'

parameters should not be empty