Skip to content
This repository was archived by the owner on Jun 29, 2022. It is now read-only.
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions docs/development/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,51 @@ This is a developer docs directory. Not meant for end users.
## Contents

- [Update component configuration.](./updating-components.md)

## Spell checking

As part of the CI process, we run [codespell](https://github.com/codespell-project/codespell) to find potential
typos in our code base. This section describes how to configure and use it.

### Running locally

To run `codespell` locally, install it either using the [official method](https://github.com/codespell-project/codespell#installation)
or using a package manager specific to your Linux distribution.

With `codespell` installed, run the following command to run spell checking locally:
```sh
make codespell
```

### Ignoring specific words

Sometimes, `codespell` detects some words as typos, like `AKS`, `ACI` or `IAM`, which cause the CI to
report errors. To resolve that, we define our list of ignored words in the `.codespell.ignorewords` file,
which is then passed to `codespell` via the `--ignore-words` flag.

If you find that some word you used should be ignored, add it to this file.

### Ignoring vendored files

Lokomotive ships some 3rd party code like vendored Go dependencies and Helm charts, which are maintained
by other people and may also contain some typos. It is recommended to configure `codespell` to **SKIP** those
files from checking, instead of **FIXING** them in our repository, to avoid deriving from upstream code, which
may make the update process of this code more difficult in the future (merge conflicts, extensive diffs etc.).

To skip some file or directory (recursively) from spell checking, add the path to `.codespell.skip` file.
The content of this file is then passed to the `--skip` flag of `codespell`.

Additionally, if time allows, consider fixing the found typos in the respective upstream projects.

### Spell checking git commit messages

Spell checking of git commit messages is not done as part of the CI process, but it is recommended to do it locally
before submitting patches.

To check for typos in commit messages of your feature branch, you can run the following command:
```sh
git log master..HEAD | codespell -
```

It will spell check both commit messages and new code, so it is recommended to first fix typos in the code before
running it, to only find typos in commit messages.