Packages

Interval/range operations on Decimal, DateTime, Integer, Float, etc. Ecto support for Postgres range types like int4range, daterange, tstzrange, etc. Implement intervals over your own custom data.

Current section

Files

Jump to
interval mix.exs
Raw

mix.exs

defmodule Interval.MixProject do
  use Mix.Project

  @version "2.0.4"
  @source_url "https://github.com/tbug/elixir_interval"

  def project do
    [
      app: :interval,
      description: """
      Interval/range operations on Decimal, DateTime, Integer, Float, etc.
      Ecto support for Postgres range types like int4range, daterange, tstzrange, etc.
      Implement intervals over your own custom data.
      """,
      version: @version,
      elixir: "~> 1.16",
      elixirc_paths: elixirc_paths(Mix.env()),
      start_permanent: Mix.env() == :prod,
      test_coverage: test_coverage(),
      preferred_cli_env: [check: :test],
      deps: deps(),
      package: package(),
      aliases: aliases(),
      dialyzer: dialyzer()
    ] ++ docs()
  end

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

  defp elixirc_paths(:test), do: ["lib", "test/support"]
  defp elixirc_paths(_), do: ["lib"]

  defp docs() do
    [
      name: "Interval",
      source_url: @source_url,
      docs: [
        assets: %{
          "assets" => "assets"
        },
        skip_undefined_reference_warnings_on: ["CHANGELOG.md"],
        source_ref: "v#{@version}",
        main: "readme",
        extras: [
          "README.md": [filename: "readme", title: "Readme"],
          "CHANGELOG.md": []
        ]
      ]
    ]
  end

  defp package() do
    [
      links: %{"GitHub" => @source_url},
      licenses: [
        "Apache-2.0"
      ]
    ]
  end

  defp test_coverage() do
    [
      ignore_modules: [Helper],
      summary: [threshold: 85]
    ]
  end

  defp aliases do
    [
      check: [
        "format --check-formatted",
        "credo suggest --all --format=oneline",
        "test --cover --slowest 5"
      ]
    ]
  end

  defp dialyzer do
    [
      flags: [:error_handling, :underspecs, :unmatched_returns, :no_return]
    ]
  end

  # Run "mix help deps" to learn about dependencies.
  defp deps do
    [
      {:ecto, ">= 3.4.3 and < 4.0.0", optional: true},
      {:jason, ">= 1.0.0 and < 2.0.0", optional: true},
      {:postgrex, "~> 0.14", optional: true},
      {:decimal, "~> 3.0", optional: true},
      {:stream_data, "~> 1.0", only: [:test, :dev]},
      {:ex_doc, "~> 0.27", only: :dev, runtime: false},
      {:credo, "~> 1.6", only: [:dev, :test], runtime: false},
      {:dialyxir, "~> 1.2", only: [:dev, :test], runtime: false}
    ]
  end
end