defmodule Patterns.MixProject do use Mix.Project @source_url "https://github.com/minnasoft/patterns" @version "0.0.1" def project do [ app: :patterns, version: @version, elixir: "~> 1.15", elixirc_paths: elixirc_paths(Mix.env()), start_permanent: Mix.env() == :prod, deps: deps(), aliases: aliases(), package: package(), description: description(), docs: docs(), test_coverage: [tool: ExCoveralls], dialyzer: [ plt_file: {:no_warn, "priv/plts/dialyzer.plt"}, plt_add_apps: [:ex_unit, :mix] ] ] end def application do [extra_applications: [:logger]] end def cli do [ preferred_envs: [ coveralls: :test, "coveralls.detail": :test, "coveralls.github": :test, "coveralls.html": :test ] ] end defp elixirc_paths(:test) do ["lib", "test/support"] end defp elixirc_paths(_) do ["lib"] end defp deps do [ {:ecto, "~> 3.13"}, {:ecto_sql, "~> 3.13", only: :test}, {:ecto_sqlite3, ">= 0.0.0", only: :test}, {:credo, "~> 1.7", only: [:dev, :test], runtime: false}, {:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false}, {:castore, "~> 1.0", only: :test}, {:excoveralls, "~> 0.18", only: :test}, {:ex_doc, "~> 0.38", only: :dev, runtime: false}, {:styler, "~> 1.3", only: [:dev, :test], runtime: false} ] end defp aliases do [ lint: [ "compile --warnings-as-errors", "deps.unlock --unused", "format --check-formatted", "credo --strict", "dialyzer" ] ] end defp description do "Pretty patterns for writing the Elixir you want to write." end defp package do [ licenses: ["MIT"], links: %{"GitHub" => @source_url}, files: ~w(lib .formatter.exs .tool-versions mix.exs README.md CHANGELOG.md LICENSE) ] end defp docs do [ main: "readme", source_ref: "v#{@version}", source_url: @source_url, extras: ["README.md", "CHANGELOG.md", "LICENSE"] ] end end