Current section

Files

Jump to
timber mix.exs
Raw

mix.exs

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