defmodule Reginald.MixProject do use Mix.Project @version "0.0.0" @scm_url "https://github.com/probably-not/reginald" @elixir_requirement "~> 1.16" def project do [ app: :reginald, version: @version, elixir: @elixir_requirement, build_embedded: Mix.env() == :prod, start_permanent: Mix.env() == :prod, package: package(), name: "Reginald", description: description(), source_url: @scm_url, homepage_url: @scm_url, deps: deps(), elixirc_paths: elixirc_paths(Mix.env()), elixirc_options: [warnings_as_errors: true], aliases: aliases(), test_coverage: [tool: ExCoveralls], preferred_cli_env: [ ci: :test, coveralls: :test, "coveralls.detail": :test, "coveralls.post": :test, "coveralls.html": :test ], docs: docs() ] end def application do [ extra_applications: applications(Mix.env()) ] end defp applications(:dev), do: applications(:all) ++ [:remixed_remix, :runtime_tools] defp applications(_all), do: [:logger] defp deps do [ ## Testing and Development Dependencies {:ex_doc, "~> 0.31", only: :dev, runtime: false}, {:credo, "~> 1.7", only: [:dev, :test], runtime: false}, {:excoveralls, "~> 0.18", only: :test}, {:remixed_remix, "~> 2.0.2", only: :dev} ] end defp aliases do [ quality: ["format", "credo --strict"], ci: ["test", "format --check-formatted", "credo --strict"] ] end # Specifies which paths to compile per environment. defp elixirc_paths(:test), do: ["lib", "test/support"] defp elixirc_paths(_), do: ["lib"] defp description do """ Reginald is a simple distributed registry built in pure Elixir on top of the built-in Elixir Registry. """ end defp package do [ description: description(), files: ~w(lib mix.exs README* LICENSE* CHANGELOG*), maintainers: ["Coby Benveniste"], links: %{"GitHub" => @scm_url}, licenses: ["MIT"] ] end defp docs do [main: "Reginald", extras: extras()] end defp extras do [ "README.md", "CHANGELOG.md" ] end end