Skip to content

Standards

This is the single source of truth for coding and naming standards at The Data Shed.

General

While the above describe standards and tooling appropriate to each language or framework, there are some which apply to all projects.

pre-commit

Git hooks are a means by which automated action can be taken for certain events in the Git lifecycle.

pre-commit is a framework for managing a variety of tools, specifically for the pre-commit hook.

  • all projects SHOULD make use of pre-commit;
  • any project using pre-commit MUST make use of its autoupdate feature;
  • any project using pre-commit MUST run all hooks as part of the CI/CD pipeline.

There are some tools which SHOULD be used on every project, where appropriate:

  • markdownlint-cli: most projects have a README.md and such documents should be validated by markdownlint;
  • detect-secrets: needless to say, the accidental addition of sensitive data to a project should be avoided;
  • gitleaks: similar to detect-secrets, this aims to prevent to accidental addition of sensitive values.

If you use pre-commit hooks for other stages, such as commitizen that's for the commit-msg stage, then you can simplify the usage by adding the following top-level options to your .pre-commit-config.yaml file:

default_install_hook_types: ["pre-commit", "commit-msg"]
default_stages: [commit]
minimum_pre_commit_version: 2.18.0