defmodule ForgeCredoChecks.MixProject do use Mix.Project @version "0.7.0" @source_url "https://github.com/BobbieBarker/forge_credo_checks" def project do [ app: :forge_credo_checks, version: @version, elixir: "~> 1.18", start_permanent: Mix.env() == :prod, deps: deps(), description: description(), package: package(), source_url: @source_url, docs: docs(), dialyzer: dialyzer() ] end def application do [ extra_applications: [:logger] ] end defp deps do [ {:credo, "~> 1.7"}, {:ex_doc, "~> 0.34", only: :dev, runtime: false}, {:dialyxir, "~> 1.4", only: [:dev], runtime: false} ] end defp description do "Custom Credo checks targeting anti-patterns LLMs commonly generate " <> "(filter |> map, map |> reject(is_nil), Map.get/2 || fallback, etc.)" end defp package do [ maintainers: ["Chad King"], licenses: ["MIT"], files: ~w(lib mix.exs README.md LICENSE CHANGELOG.md), links: %{"GitHub" => @source_url, "Changelog" => "#{@source_url}/blob/main/CHANGELOG.md"} ] end defp docs do [ main: "readme", extras: ["README.md", "CHANGELOG.md"], source_ref: "v#{@version}", source_url: @source_url ] end defp dialyzer do [ plt_file: {:no_warn, "priv/plts/dialyzer.plt"}, plt_add_apps: [:credo, :mix] ] end end