diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index d5558b4..d869484 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -34,3 +34,23 @@ jobs:
run: dnf install -y make yamllint
- name: Run test
run: make -f Makefile yamllint
+
+ spelling-checks:
+ runs-on: ubuntu-latest
+ container: fedora:40 # CURRENT DEVELOPMENT ENVIRONMENT
+ steps:
+ - name: Install dependencies for Fedora
+ run: >
+ dnf install -y
+ clang
+ make
+ - uses: actions/checkout@v4
+ - uses: dtolnay/rust-toolchain@master
+ with:
+ components: cargo
+ toolchain: 1.81.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN
+ - uses: baptiste0928/cargo-install@v3
+ with:
+ crate: typos-cli
+ - name: Run test
+ run: make -f Makefile check-typos
diff --git a/Makefile b/Makefile
index d6b87e4..d6b11c0 100644
--- a/Makefile
+++ b/Makefile
@@ -47,6 +47,9 @@ clean:
(cd ./docs/design ; $(MAKE) clean)
(cd ./docs/style ; $(MAKE) clean)
+check-typos:
+ typos
+
WEBSITE_REPO ?=
test-website-repo:
echo "Testing that WEBSITE_REPO environment variable is set to a directory path"
diff --git a/README.md b/README.md
index 9c29d21..ed3912e 100644
--- a/README.md
+++ b/README.md
@@ -69,7 +69,7 @@ Any content inside the `static/` directory (*not* `content/static/`) will be cop
### Front Page Sidebar
-Links can be added adn removed by editing the `config.toml`. Specifically, the `hyde_user_links`, `hyde_developer_links`, or `hyde_contact_links` arrays.
+Links can be added and removed by editing the `config.toml`. Specifically, the `hyde_user_links`, `hyde_developer_links`, or `hyde_contact_links` arrays.
## Theming
diff --git a/_typos.toml b/_typos.toml
new file mode 100644
index 0000000..9fd590c
--- /dev/null
+++ b/_typos.toml
@@ -0,0 +1,6 @@
+[default.extend-words]
+# Misidentified as spelling of "ME"
+MEK = "MEK"
+
+# Misidentified as word, actually a D-Bus signature fragment
+ba = "ba"
diff --git a/content/static/howto.md b/content/static/howto.md
index 277d14e..b72b89f 100644
--- a/content/static/howto.md
+++ b/content/static/howto.md
@@ -225,7 +225,7 @@ stratis_howto fs_howto 546 MiB Nov 09 2018 11:08 /dev/stratis/stratis_howt
## `snapshot`: Create a snapshot
-To create a snaphot, which is a read/writeable thinly provisioned point in time copy of the source FS.
+To create a snapshot, which is a read/writeable thinly provisioned point in time copy of the source FS.
```
# stratis filesystem snapshot olympic some_fs some_fs_snapshot
diff --git a/content/stratify.md b/content/stratify.md
index c350be8..bfec34e 100644
--- a/content/stratify.md
+++ b/content/stratify.md
@@ -88,7 +88,7 @@ Download the `stratify.py` script and example kickstart file from GitHub:
```
The kickstart file can be customized before beginning the installation - for
-example to set the system language, timzeone, or package selection for the
+example to set the system language, timezone, or package selection for the
install. See the [kickstart
documentation](https://pykickstart.readthedocs.io/en/latest/) for further
information.
diff --git a/content/stratis-release-announce-3.0.0.md b/content/stratis-release-announce-3.0.0.md
index 30b6cdb..a05a64a 100644
--- a/content/stratis-release-announce-3.0.0.md
+++ b/content/stratis-release-announce-3.0.0.md
@@ -24,7 +24,7 @@ of the filesystem D-Bus interface under the new system for stratisd 3.0.0 is
`org.storage.stratis3.filesystem.r0`.
The motivation for both these changes is the most typical of all: the
-implementation of stratisd will become unwieldly and bug-ridden if we try to
+implementation of stratisd will become unwieldy and bug-ridden if we try to
maintain backwards compatibility in the D-Bus layer while simultaneously
doing necessary redesign, re-implementation, and enhancement of the stratisd
engine. In particular, changes to the way errors are managed internally will
diff --git a/content/stratis-release-notes-2.1.0.md b/content/stratis-release-notes-2.1.0.md
index 25a58e3..69076f8 100644
--- a/content/stratis-release-notes-2.1.0.md
+++ b/content/stratis-release-notes-2.1.0.md
@@ -46,7 +46,7 @@ stratisd 2.1.0 supplies several new D-Bus interfaces:
additional `HasCache` property.
* `org.storage.stratis2.Report.r1`: This interface supports a set of
ad-hoc reports about Stratis. The interface is unstable; the names by
- which the reports can be accesed are not guaranteed to remain stable,
+ which the reports can be accessed are not guaranteed to remain stable,
and the format of any report is only guaranteed to be valid JSON.
Please consult the D-Bus API Reference for the precise D-Bus specification.
diff --git a/content/stratis-release-notes-2.4.0.md b/content/stratis-release-notes-2.4.0.md
index ed01da5..e665c0c 100644
--- a/content/stratis-release-notes-2.4.0.md
+++ b/content/stratis-release-notes-2.4.0.md
@@ -19,7 +19,7 @@ mechanism. Previously, the user could create an encrypted pool using the
kernel keyring only, and could bind or unbind using Clevis only.
More minor user-visible changes are:
-* An enhancment to the FetchProperties D-Bus interface in order to disclose
+* An enhancement to the FetchProperties D-Bus interface in order to disclose
more information about sets of encrypted devices.
* The `engine_state_report` key in the report interface has been stabilized
and is guaranteed to be supported in future releases.
diff --git a/content/stratis-release-notes-2.4.1.md b/content/stratis-release-notes-2.4.1.md
index 23b7333..2648e85 100644
--- a/content/stratis-release-notes-2.4.1.md
+++ b/content/stratis-release-notes-2.4.1.md
@@ -33,7 +33,7 @@ associated with r4 D-Bus interfaces were not being sent appropriately,
now they are.
In addition, stratisd 2.4.1 includes logging, at the trace level, of lock
-aquisitions and releases and additional logging in the systemd generators
+acquisitions and releases and additional logging in the systemd generators
included with the release.
The stratis-cli 2.4.1 release includes:
diff --git a/content/stratis-release-notes-3.0.0.md b/content/stratis-release-notes-3.0.0.md
index b1c5756..4922f17 100644
--- a/content/stratis-release-notes-3.0.0.md
+++ b/content/stratis-release-notes-3.0.0.md
@@ -92,7 +92,7 @@ check using libblkid and exits with an error if libblkid reports that the
device is in use.
* Handling of errors returned by internal methods is improved; a chaining
mechanism has been introduced and the error chains can be scrutinized
-programatically to identify expected scenarios like rollback failures.
+programmatically to identify expected scenarios like rollback failures.
* A set of states indicating that a pool has reduced capability have been
added internally and are published on the D-Bus. A pool's capability is
reduced on an error being returned internally which contains, somewhere in
diff --git a/content/stratisd-release-notes-2.0.1.md b/content/stratisd-release-notes-2.0.1.md
index 71e9eb4..7aeaaae 100644
--- a/content/stratisd-release-notes-2.0.1.md
+++ b/content/stratisd-release-notes-2.0.1.md
@@ -19,7 +19,7 @@ error was fixed ([stratisd issue 1730]).
The device discovery implementation was improved; computational complexity
was reduced and additional logging on unusual events was added.
-The D-Bus layer was restructured to more cleanly suppport multiple versioned
+The D-Bus layer was restructured to more cleanly support multiple versioned
D-Bus interfaces.
All macros were rewritten to use fully qualified names to improve code
diff --git a/docs/dbus/manager.xml b/docs/dbus/manager.xml
index b92850b..ad3e6f0 100644
--- a/docs/dbus/manager.xml
+++ b/docs/dbus/manager.xml
@@ -47,7 +47,7 @@
@@ -392,7 +392,7 @@
b: True if the pool is encrypted using Clevis.
ss: Clevis configuration.
s: Clevis pin.
- s: Pin-specfic Clevis configuration information.
+ s: Pin-specific Clevis configuration information.
-->
@@ -615,7 +615,7 @@
b: True if the pool is encrypted using Clevis.
ss: Clevis configuration.
s: Clevis pin.
- s: Pin-specfic Clevis configuration information.
+ s: Pin-specific Clevis configuration information.
-->
@@ -846,7 +846,7 @@
b: True if the pool is encrypted using Clevis.
ss: Clevis configuration.
s: Clevis pin.
- s: Pin-specfic Clevis configuration information.
+ s: Pin-specific Clevis configuration information.
-->
@@ -1077,7 +1077,7 @@
b: True if the pool is encrypted using Clevis.
ss: Clevis configuration.
s: Clevis pin.
- s: Pin-specfic Clevis configuration information.
+ s: Pin-specific Clevis configuration information.
-->
@@ -1308,7 +1308,7 @@
b: True if the pool is encrypted using Clevis.
ss: Clevis configuration.
s: Clevis pin.
- s: Pin-specfic Clevis configuration information.
+ s: Pin-specific Clevis configuration information.
-->
@@ -1540,7 +1540,7 @@
b: True if the pool is encrypted using Clevis.
ss: Clevis configuration.
s: Clevis pin.
- s: Pin-specfic Clevis configuration information.
+ s: Pin-specific Clevis configuration information.
-->
diff --git a/docs/design/StratisSoftwareDesign.lyx b/docs/design/StratisSoftwareDesign.lyx
index e1d3cd6..71dbaa0 100644
--- a/docs/design/StratisSoftwareDesign.lyx
+++ b/docs/design/StratisSoftwareDesign.lyx
@@ -696,8 +696,8 @@ stratisd implements the D-Bus interface, and manages and monitors Stratis
\begin_layout Standard
stratisd includes a simulator engine.
- The simulator engine is purely computational and does not affect the environmen
-t, although it does communicate over the D-Bus.
+ The simulator engine is purely computational and does not affect the
+environment, although it does communicate over the D-Bus.
\end_layout
\begin_layout Standard
@@ -4362,7 +4362,7 @@ Implementation Details
\begin_layout Standard
Stratis' command-line tool is written in Python.
- Since it is only used after the system is booted by the adminstrator, Python's
+ Since it is only used after the system is booted by the administrator, Python's
interpreted nature and overhead is not a concern.
\end_layout