Skip to content
  • Andrew Or's avatar
    6f80b749
    [Release] Major improvements to generate contributors script · 6f80b749
    Andrew Or authored
    This commit introduces several major improvements to the script
    that generates the contributors list for release notes, notably:
    
    (1) Use release tags instead of a range of commits. Across branches,
    commits are not actually strictly two-dimensional, and so it is not
    sufficient to specify a start hash and an end hash. Otherwise, we
    end up counting commits that were already merged in an older branch.
    
    (2) Match PR numbers in addition to commit hashes. This is related
    to the first point in that if a PR is already merged in an older
    minor release tag, it should be filtered out here. This requires us
    to do some intelligent regex parsing on the commit description in
    addition to just relying on the GitHub API.
    
    (3) Relax author validity check. The old code fails on a name that
    has many middle names, for instance. The test was just too strict.
    
    (4) Use GitHub authentication. This allows us to make far more
    requests through the GitHub API than before (5000 as opposed to 60
    per hour).
    
    (5) Translate from Github username, not commit author name. This is
    important because the commit author name is not always configured
    correctly by the user. For instance, the username "falaki" used to
    resolve to just "Hossein", which was treated as a github username
    and translated to something else that is completely arbitrary.
    
    (6) Add an option to use the untranslated name. If there is not
    a satisfactory candidate to replace the untranslated name with,
    at least allow the user to not translate it.
    6f80b749
    [Release] Major improvements to generate contributors script
    Andrew Or authored
    This commit introduces several major improvements to the script
    that generates the contributors list for release notes, notably:
    
    (1) Use release tags instead of a range of commits. Across branches,
    commits are not actually strictly two-dimensional, and so it is not
    sufficient to specify a start hash and an end hash. Otherwise, we
    end up counting commits that were already merged in an older branch.
    
    (2) Match PR numbers in addition to commit hashes. This is related
    to the first point in that if a PR is already merged in an older
    minor release tag, it should be filtered out here. This requires us
    to do some intelligent regex parsing on the commit description in
    addition to just relying on the GitHub API.
    
    (3) Relax author validity check. The old code fails on a name that
    has many middle names, for instance. The test was just too strict.
    
    (4) Use GitHub authentication. This allows us to make far more
    requests through the GitHub API than before (5000 as opposed to 60
    per hour).
    
    (5) Translate from Github username, not commit author name. This is
    important because the commit author name is not always configured
    correctly by the user. For instance, the username "falaki" used to
    resolve to just "Hossein", which was treated as a github username
    and translated to something else that is completely arbitrary.
    
    (6) Add an option to use the untranslated name. If there is not
    a satisfactory candidate to replace the untranslated name with,
    at least allow the user to not translate it.
Loading