defmodule Mobius.MixProject do use Mix.Project @version "0.7.0" def project do [ app: :mobius, version: @version, elixir: "~> 1.15", start_permanent: Mix.env() == :prod, aliases: aliases(), deps: deps(), dialyzer: dialyzer(), description: description(), package: package(), docs: docs(), name: "Mobius" ] end def cli do [preferred_envs: [docs: :docs, "hex.publish": :docs, precommit: :test]] end # Run "mix help compile.app" to learn about applications. def application do [ extra_applications: [:logger, :crypto] ] end # Run "mix help deps" to learn about dependencies. defp deps do [ {:ex_doc, "~> 0.40", only: :docs, runtime: false}, {:dialyxir, "~> 1.4", only: [:dev], runtime: false}, {:credo, "~> 1.7", only: [:dev, :test], runtime: false}, {:telemetry, "~> 0.4.3 or ~> 1.0"}, {:telemetry_metrics, "~> 0.6 or ~> 1.0"}, {:circular_buffer, "~> 0.4 or ~> 1.0"}, {:elixir_uuid, "~> 1.2"} ] end defp docs() do [ extras: ["README.md", "CHANGELOG.md"], main: "readme", source_ref: "v#{@version}", source_url: "https://github.com/mobius-home/mobius", skip_undefined_reference_warnings_on: ["CHANGELOG.md"], assets: %{"assets" => "assets"}, logo: "assets/m.png" ] end defp description do "Local metrics library" end defp package do [ licenses: ["Apache-2.0"], links: %{"GitHub" => "https://github.com/mobius-home/mobius"}, name: :mobius ] end defp dialyzer() do [ flags: [:unmatched_returns, :error_handling], plt_add_apps: [:eex, :mix] ] end defp aliases() do [ test: ["test --exclude timeout"], precommit: [ "hex.audit", "compile --warnings-as-errors --force", "format", "credo --strict --all", "deps.unlock --unused", "dialyzer", "test" ] ] end end