defmodule Timber.Mixfile do use Mix.Project @project_description "🌲 Great Elixir Logging Made Easy. Official Timber.io Integration." @source_url "https://github.com/timberio/timber-elixir" @homepage_url "https://github.com/timberio/timber-elixir" @version "3.1.2" # Project manifest for Mix # # See `mix help` entries for the following if you need # more information about the options used in this section: # # - `compile` # - `compile.elixir` # - `compile.erlang` def project do [ app: :timber, name: "Timber", version: @version, elixir: "~> 1.4", elixirc_paths: elixirc_paths(Mix.env()), description: @project_description, source_url: @source_url, homepage_url: @homepage_url, package: package(), deps: deps(), docs: docs(), build_embedded: Mix.env() == :prod, start_permanent: Mix.env() == :prod, preferred_cli_env: preferred_cli_env(), test_coverage: test_coverage(), dialyzer: dialyzer() ] end # Appication definition for building the `.app` file # # See `mix help compile.app` for more information about the # options used in this section # # Note: Because this is a package, the default environment # is specified in this section. The `config/*` files in this # repository are only useful for this package's local development # and are not distributed with the package. def application do [ mod: {Timber.Application, []}, env: env(), extra_applications: [:logger] ] end # The environment to be configured by default defp env() do [] end # Compiler paths switched on the Mix environment # # The `lib` directory is always compiled # # In the :test environment, `test/support` will also be compiled defp elixirc_paths(:test), do: ["lib", "test/support"] defp elixirc_paths(_), do: ["lib"] # Preferred CLI Environment details # # Defines the preferred environment for Mix tasks defp preferred_cli_env() do [ coveralls: :test, "coveralls.details": :test, "coveralls.circle": :test, "coveralls.html": :test, "coveralls.travis": :test ] end # Test Coverage configuration # # Sets the test converage tool to be Coveralls defp test_coverage() do [ tool: ExCoveralls ] end # Dialyzer configuration defp dialyzer() do [ plt_add_deps: true, plt_add_apps: [:mix, :ssl, :inets], ignore_warnings: "dialyzer.ignore-warnings" ] end # Package options for the Hex package listing # # See `mix help hex.publish` for more information about # the options used in this section defp package() do [ name: :timber, files: ["lib", "mix.exs", "README*", "LICENSE*"], maintainers: ["Ben Johnson"], licenses: ["ISC"], links: %{ "GitHub" => @source_url } ] end # Documentation options for ExDoc defp docs() do [ source_ref: "v#{@version}", main: "readme", logo: "doc_assets/logo.png", extras: [ "README.md": [title: "README"], "LICENSE.md": [title: "LICENSE"] ], groups_for_modules: doc_groups_for_modules() ] end defp doc_groups_for_modules() do [ "Logger Backends": [ Timber.LoggerBackends.HTTP ], "Test Helpers": [ Timber.HTTPClients.Fake, Timber.LoggerBackends.InMemory ] ] end # Dependencies for this application # # See `mix help deps` for more information about the options used # in this section # # Please: # # - Keep this as the last section in `mix.exs` to make # it easily discoverable # - Keep deps categorized by direct dependencies, third-party integrations, # tooling # - Keep each category sorted in alphabetical order # - End all declarations in `,` so that they can easily be re-arranged # and sorted defp deps() do [ {:hackney, "~> 1.9"}, {:jason, "~> 1.1"}, {:msgpax, "~> 2.2"}, # # Tooling # {:credo, "1.0.0", only: [:dev, :test]}, {:dialyxir, "~> 0.5", only: [:dev, :test]}, {:earmark, "~> 1.2", only: [:dev]}, {:ex_doc, "~> 0.19.0", only: [:dev]}, {:excoveralls, "~> 0.5", only: [:dev, :test]}, {:inch_ex, "~> 1.0", only: [:dev]} ] end end