defmodule RedisCluster.MixProject do use Mix.Project @homepage_url "https://tubitv.hexdocs.pm/redis_cluster" @source_url "https://github.com/Tubitv/redis_cluster" @version "0.8.0" def project do [ app: :redis_cluster, version: @version, elixir: "~> 1.14", start_permanent: Mix.env() == :prod, dialyzer: dialyzer_opts(), package: package(), docs: docs(), deps: deps() ] end def application do [ extra_applications: [:logger] ] end defp dialyzer_opts do [ plt_add_deps: :app_tree, plt_add_apps: [:eex, :mix, :ex_unit], ignore_warnings: "dialyzer_ignore.exs", flags: [ # Default warnings :unknown, :unmatched_returns, :error_handling, :no_opaque, # Extra warnings :underspecs # Unused warnings # :race_conditions, # :overspecs # :specdiffs # Unused suppressions # :no_return, # :no_fail_call, # :no_contracts, # :no_missing_calls, # :no_match, # :no_fun_app, # :no_behaviours, # :no_improper_lists, # :no_undefined_callbacks, # :no_unused, ] ] end defp deps do [ {:redix, "~> 1.5"}, {:crc, "~> 0.10"}, {:telemetry, "~> 1.0"}, {:ex_doc, "~> 0.34", only: [:dev], runtime: false}, {:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false}, {:mox, "~> 1.0", only: [:test]} ] end def package do %{ description: "Extends Redix with Redis cluster support", files: ~w(.formatter.exs mix.exs lib), licenses: ["MIT"], links: %{"GitHub" => @source_url} } end defp docs do [ extras: ["README.md", "CHANGELOG.md"], main: "readme", source_url: @source_url, homepage_url: @homepage_url, source_ref: "v#{@version}", formatters: ["html"] ] end end