Packages

Permutation is a package and protocol for calculating the possible permutations or combinations of an Enumerable.

Current section

Files

Jump to
Raw

mix.exs

defmodule Permutation.MixProject do
  use Mix.Project

  @source_url "https://github.com/fireproofsocks/permutation"
  @version "0.4.0"

  def project do
    [
      aliases: aliases(),
      app: :permutation,
      deps: deps(),
      description: description(),
      docs: [
        main: "readme",
        source_ref: "v#{@version}",
        source_url: @source_url,
        logo: "logo.png",
        extras: ["README.md", "CHANGELOG.md"]
      ],
      package: package(),
      preferred_cli_env: [
        coveralls: :test,
        "coveralls.detail": :test,
        credo: :test,
        "local.hex": :prod,
        "local.rebar": :prod,
        "deps.get": :prod,
        test_reset: :test
      ],
      start_permanent: Mix.env() == :prod,
      test_coverage: [
        tool: ExCoveralls
      ],
      version: @version
    ]
  end

  defp aliases do
    [
      lint: ["format --check-formatted", "credo --strict"]
    ]
  end

  # Run "mix help compile.app" to learn about applications.
  def application do
    [
      extra_applications: [:logger]
    ]
  end

  # Run "mix help deps" to learn about dependencies.
  defp deps do
    [
      {:credo, "~> 1.7.18", only: [:dev, :test], runtime: false},
      {:dialyxir, "~> 1.4.7", only: [:dev], runtime: false},
      {:ex_doc, "~> 0.40.1", runtime: false},
      {:excoveralls, "~> 0.18.5", only: [:dev, :test], runtime: false}
    ]
  end

  defp description,
    do: """
    Permutation is a package and protocol for calculating the possible
    permutations or combinations of an Enumerable.
    """

  def links do
    %{
      "GitHub" => @source_url,
      "Readme" => "#{@source_url}/blob/v#{@version}/README.md",
      "Changelog" => "#{@source_url}/blob/v#{@version}/CHANGELOG.md"
    }
  end

  defp package do
    [
      maintainers: ["Everett Griffiths"],
      licenses: ["Apache-2.0"],
      logo: "assets/logo.png",
      links: links(),
      files: [
        "lib",
        "logo.png",
        "mix.exs",
        "README*",
        "CHANGELOG*",
        "LICENSE*"
      ]
    ]
  end
end