1. 19 Apr, 2021 3 commits
    • Chris Kay's avatar
      build(hooks): add commitlint hook · d97bade1
      Chris Kay authored
      
      
      This change adds a configuration for commitlint - a tool designed to
      enforce a particular commit message style - and run it as part of Git's
      commit-msg hook. This validates commits immediately after the editor has
      been exited, and the configuration is derived from the configuration we
      provide to Commitizen.
      
      While the configuration provided suggests a maximum header and body
      length, neither of these are hard errors. This is to accommodate the
      occasional commit where it may be difficult or impossible to comply
      with the length requirements (for example, with a particularly long
      scope, or a long URL in the message body).
      
      Change-Id: Ib5e90472fd1f1da9c2bff47703c9682232ee5679
      Signed-off-by: default avatarChris Kay <chris.kay@arm.com>
      d97bade1
    • Chris Kay's avatar
      build(hooks): add Commitizen hook · c75ce067
      Chris Kay authored
      
      
      This change adds Commitizen, an interactive tool for writing commit
      messages, to the package.json file. This installs Commitizen within the
      `node_modules` directory automatically when developers invoke
      `npm install` from the root repository directory.
      
      Additionally, this change adds a prepare-commit-msg Git hook which
      invokes Commitizen prior to generation of the default commit message.
      It may be exited with the standard ^C signal without terminating the
      commit process for those who desperately want to avoid using it, but
      otherwise should encourage developers to conform to the new commit style
      without running into post-commit linting errors.
      
      Change-Id: I8a1e268ed40b61af38519d13d62b116fce76a494
      Signed-off-by: default avatarChris Kay <chris.kay@arm.com>
      c75ce067
    • Chris Kay's avatar
      build(hooks): add Husky configuration · ba39362f
      Chris Kay authored
      
      
      Husky is a tool for managing Git hooks within the repository itself.
      Traditionally, commit hooks need to be manually installed on a per-user
      basis, but Husky allows us to install these hooks either automatically
      when `npm install` is invoked within the repository, or manually with
      `npx husky install`.
      
      This will become useful for us in the next few patches when we begin
      introducing tools for enforcing a commit message style.
      
      Change-Id: I64cae147e9ea910347416cfe0bcc4652ec9b4830
      Signed-off-by: default avatarChris Kay <chris.kay@arm.com>
      ba39362f