From 84d5b0adf99f7143e20ca16b8d661a28be0a6a56 Mon Sep 17 00:00:00 2001 From: James Harton Date: Fri, 24 Nov 2023 15:38:36 +1300 Subject: [PATCH] chore: Set up documentation linting with `doctor`. --- .doctor.exs | 15 +++++++++++++++ lib/wafer/application.ex | 1 + lib/wafer/drivers/fake.ex | 3 +++ lib/wafer/registers.ex | 1 + mix.exs | 1 + mix.lock | 2 ++ 6 files changed, 23 insertions(+) create mode 100644 .doctor.exs diff --git a/.doctor.exs b/.doctor.exs new file mode 100644 index 0000000..4a0533e --- /dev/null +++ b/.doctor.exs @@ -0,0 +1,15 @@ +%Doctor.Config{ + ignore_modules: [Wafer.Registers], + ignore_paths: [], + min_module_doc_coverage: 40, + min_module_spec_coverage: 0, + min_overall_doc_coverage: 50, + min_overall_moduledoc_coverage: 100, + min_overall_spec_coverage: 0, + exception_moduledoc_required: true, + raise: false, + reporter: Doctor.Reporters.Full, + struct_type_spec_required: true, + umbrella: false, + failed: false +} diff --git a/lib/wafer/application.ex b/lib/wafer/application.ex index 078ceb9..be0b075 100644 --- a/lib/wafer/application.ex +++ b/lib/wafer/application.ex @@ -5,6 +5,7 @@ defmodule Wafer.Application do use Application + @doc false def start(_type, _args) do children = [ {Registry, [keys: :duplicate, name: Wafer.InterruptRegistry]}, diff --git a/lib/wafer/drivers/fake.ex b/lib/wafer/drivers/fake.ex index 8b243f3..84947fb 100644 --- a/lib/wafer/drivers/fake.ex +++ b/lib/wafer/drivers/fake.ex @@ -14,6 +14,9 @@ defmodule Wafer.Driver.Fake do protocols. """ + @type t :: %__MODULE__{opts: any} + + @doc false @impl Wafer.Conn def acquire(opts) do if emit_warning(), diff --git a/lib/wafer/registers.ex b/lib/wafer/registers.ex index a8b4bf4..570c095 100644 --- a/lib/wafer/registers.ex +++ b/lib/wafer/registers.ex @@ -15,6 +15,7 @@ defmodule Wafer.Registers do @type access_mode :: :ro | :rw | :wo @type bytes :: non_neg_integer + @doc false defmacro __using__(_opts) do quote do import Wafer.Registers diff --git a/mix.exs b/mix.exs index 1d7c5dc..194d562 100644 --- a/mix.exs +++ b/mix.exs @@ -57,6 +57,7 @@ defmodule Wafer.MixProject do # Dev/test {:credo, "~> 1.6", devtest}, {:dialyxir, "~> 1.4", devtest}, + {:doctor, "~> 0.21", devtest}, {:earmark, "~> 1.4", devtest}, {:ex_check, "~> 0.15", devtest}, {:ex_doc, ">= 0.0.0", devtest}, diff --git a/mix.lock b/mix.lock index ecb9156..d455f12 100644 --- a/mix.lock +++ b/mix.lock @@ -4,7 +4,9 @@ "circuits_i2c": {:hex, :circuits_i2c, "2.0.1", "e9ab22f078b403cafd2c5006fff448f9a790f73c04e9135b7ac22f45f2e63c5c", [:make, :mix], [{:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "a1567004389b49637fe34d9dd8bdf36c26a53c269e654753860b5c09532bc3c4"}, "circuits_spi": {:hex, :circuits_spi, "1.3.0", "d66d4c8818739416958cea1d846d66896ab7c28fa42695f1cae3c2c7a3e9e9ca", [:make, :mix], [{:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "56e49b346fdd43185832a03d3de3751c2ce9928ee3ce4a31a364f6548fe2b74c"}, "credo": {:hex, :credo, "1.7.1", "6e26bbcc9e22eefbff7e43188e69924e78818e2fe6282487d0703652bc20fd62", [:mix], [{:bunt, "~> 0.2.1", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2.8", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "e9871c6095a4c0381c89b6aa98bc6260a8ba6addccf7f6a53da8849c748a58a2"}, + "decimal": {:hex, :decimal, "2.1.1", "5611dca5d4b2c3dd497dec8f68751f1f1a54755e8ed2a966c2633cf885973ad6", [:mix], [], "hexpm", "53cfe5f497ed0e7771ae1a475575603d77425099ba5faef9394932b35020ffcc"}, "dialyxir": {:hex, :dialyxir, "1.4.2", "764a6e8e7a354f0ba95d58418178d486065ead1f69ad89782817c296d0d746a5", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "516603d8067b2fd585319e4b13d3674ad4f314a5902ba8130cd97dc902ce6bbd"}, + "doctor": {:hex, :doctor, "0.21.0", "20ef89355c67778e206225fe74913e96141c4d001cb04efdeba1a2a9704f1ab5", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm", "a227831daa79784eb24cdeedfa403c46a4cb7d0eab0e31232ec654314447e4e0"}, "earmark": {:hex, :earmark, "1.4.19", "3854a17305c880cc46305af15fb1630568d23a709aba21aaa996ced082fc29d7", [:mix], [{:earmark_parser, ">= 1.4.18", [hex: :earmark_parser, repo: "hexpm", optional: false]}], "hexpm", "d5a8c9f9e37159a8fdd3ea8437fb4e229eaf56d5129b9a011dc4780a4872079d"}, "earmark_parser": {:hex, :earmark_parser, "1.4.19", "de0d033d5ff9fc396a24eadc2fcf2afa3d120841eb3f1004d138cbf9273210e8", [:mix], [], "hexpm", "527ab6630b5c75c3a3960b75844c314ec305c76d9899bb30f71cb85952a9dc45"}, "elixir_ale": {:hex, :elixir_ale, "1.2.1", "07ac2f17a0191b8bd3b0df6b526c7f699a3a4d690c9def573fcb5824eef24d98", [:make, :mix], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "bfb099137500a3b8c4a1750cf07f2d704897ef9feac3412064bf9edc7d74193c"},