Packages
appsignal
2.17.1
2.17.4
2.17.3
2.17.2
2.17.1
2.17.0
2.16.0
2.15.11
2.15.10
2.15.9
2.15.8
2.15.7
2.15.6
2.15.5
2.15.4
2.15.3
2.15.2
2.15.1
2.15.0
2.14.1
2.14.0
2.13.4
2.13.3
2.13.2
2.13.1
2.13.0
2.12.3
2.12.2
2.12.1
2.12.0
2.11.0
2.10.2
2.10.1
2.10.0
2.9.2
2.9.1
2.9.0
2.8.3
2.8.2
2.8.1
2.8.0
2.7.13
2.7.12
2.7.11
2.7.10
2.7.9
2.7.8
2.7.7
2.7.6
2.7.5
2.7.4
2.7.3
2.7.2
2.7.1
2.7.0
2.7.0-beta.1
2.6.1
2.6.0
2.5.3
2.5.2
2.5.1
2.5.0
2.4.3
2.4.2
2.4.1
2.4.0
2.3.1
2.3.0
2.2.19
2.2.18
2.2.17
2.2.16
2.2.15
2.2.14
2.2.13
2.2.12
retired
2.2.11
2.2.10
2.2.9
2.2.8
2.2.7
2.2.6
2.2.5
2.2.4
2.2.3
2.2.2
2.2.1
2.2.0
2.1.15
2.1.14
2.1.13
2.1.12
2.1.11
2.1.10
2.1.9
2.1.8
2.1.7
2.1.7-beta.1
2.1.6
2.1.5
2.1.4
2.1.3
2.1.2
2.1.1
2.1.0
2.0.8
2.0.7
2.0.6
2.0.6-beta.1
2.0.5
retired
2.0.4
retired
2.0.3
retired
2.0.2
retired
2.0.1
retired
2.0.0
retired
2.0.0-beta.11
2.0.0-beta.10
2.0.0-beta.9
2.0.0-beta.8
2.0.0-beta.7
2.0.0-beta.6
2.0.0-beta.5
2.0.0-beta.4
2.0.0-beta.3
2.0.0-beta.2
2.0.0-beta.1
2.0.0-alpha.7
2.0.0-alpha.6
2.0.0-alpha.5
2.0.0-alpha.4
2.0.0-alpha.3
2.0.0-alpha.2
2.0.0-alpha.1
1.13.5
1.13.4
1.13.3
1.13.2
1.13.1
1.13.0
1.13.0-beta.2
1.13.0-beta.1
1.12.1
1.12.0
1.12.0-beta.3
1.12.0-beta.2
1.12.0-beta.1
1.11.8
1.11.7
1.11.6
1.11.5
1.11.4
1.11.3
1.11.2
1.11.1
1.11.0
1.11.0-beta.1
1.10.13
1.10.12
1.10.11
1.10.10
1.10.9
1.10.8
1.10.7
1.10.6
1.10.5
1.10.4
1.10.3
1.10.2
1.10.1
1.10.0
1.9.4
1.9.3
1.9.2
1.9.1
1.9.1-beta.1
1.9.0
1.9.0-beta.1
1.9.0-alpha.1
1.8.2
1.8.1
1.8.1-beta.2
1.8.1-beta.1
1.8.0
1.7.2
1.7.1
1.7.0
1.7.0-beta.2
1.7.0-beta.1
1.7.0-alpha.4
1.7.0-alpha.3
1.7.0-alpha.2
1.7.0-alpha.1
1.6.7
1.6.6
1.6.6-beta.2
1.6.6-beta.1
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.6.0-beta.1
1.6.0-alpha.1
1.5.1
1.5.0
1.5.0-beta.2
1.5.0-beta.1
1.4.11-beta.1
1.4.10
1.4.9
1.4.8
1.4.7
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.4.0-alpha.1
1.3.6
1.3.6-beta.1
1.3.5
1.3.4
1.3.4-beta.1
1.3.3
1.3.2
1.3.1
1.3.0
1.3.0-beta.3
1.3.0-beta.2
1.3.0-beta.1
1.2.3
1.2.2
1.2.1
1.2.0
1.1.1
1.1.0
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
1.0.0-rc.1
0.13.0
0.12.3
0.12.2
0.12.1
0.12.0
0.11.6
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.0
0.9.2
0.9.1
0.9.0
0.8.0
0.7.1
0.7.0
0.6.2
0.6.1
0.6.0
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
0.0.9
0.0.8
0.0.7
0.0.6
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
Collects error and performance data from your Elixir applications and sends it to AppSignal
Current section
Files
Jump to
Current section
Files
mix.exs
# credo:disable-for-this-file Credo.Check.Refactor.CyclomaticComplexity
defmodule Mix.Tasks.Compile.Appsignal do
use Mix.Task
@requirements "loadpaths"
def run(_args) do
# Remove all :appsignal environment overrides before evaluating mix_helpers.exs
# so that Application.compile_env/3 resolves to production defaults (real modules).
# This prevents fake test modules from being injected into the extension install task.
# The :config key is excluded as it holds user-facing AppSignal configuration.
saved = Application.get_all_env(:appsignal)
Enum.each(saved, fn
{:config, _} -> :ok
{key, _} -> Application.delete_env(:appsignal, key)
end)
{_, _} = Code.eval_file("mix_helpers.exs")
Mix.Appsignal.Helper.install()
Enum.each(saved, fn {key, val} -> Application.put_env(:appsignal, key, val) end)
{:ok, []}
end
end
defmodule Appsignal.Mixfile do
use Mix.Project
@source_url "https://github.com/appsignal/appsignal-elixir"
@version "2.17.1"
def project do
[
app: :appsignal,
version: @version,
name: "AppSignal",
description: description(),
package: package(),
homepage_url: "https://appsignal.com",
test_paths: test_paths(Mix.env()),
elixir: "~> 1.9",
compilers: compilers(Mix.env()),
elixirc_paths: elixirc_paths(Mix.env()),
deps: deps(),
docs: [
main: "readme",
logo: "logo.png",
source_ref: "v#{@version}",
source_url: @source_url,
extras: ["README.md", "CHANGELOG.md"]
],
dialyzer: [
plt_file: {:no_warn, "priv/plts/dialyzer.plt"},
plt_add_apps: [:mix]
]
]
end
defp description do
"Collects error and performance data from your Elixir applications and sends it to AppSignal"
end
defp package do
%{
files: [
"lib",
"c_src/*.[ch]",
"mix.exs",
"mix_helpers.exs",
"*.md",
"LICENSE",
"Makefile",
"agent.exs",
"priv/cacert.pem",
"README.md",
"CHANGELOG.md"
],
maintainers: ["Jeff Kreeftmeijer", "Tom de Bruijn"],
licenses: ["MIT"],
links: %{
"Changelog" => "#{@source_url}/blob/main/CHANGELOG.md",
"GitHub" => @source_url
}
}
end
def application do
[
extra_applications: [
:logger,
:runtime_tools
],
mod: {Appsignal, []}
]
end
defp compilers(_), do: [:appsignal] ++ Mix.compilers()
defp test_paths(_), do: ["test/appsignal", "test/mix"]
defp elixirc_paths(env) do
case test?(env) do
true -> ["lib", "test/support"]
false -> ["lib"]
end
end
defp test?(:test), do: true
defp test?(:test_no_nif), do: true
defp test?(:bench), do: true
defp test?(_), do: false
defp deps do
system_version = System.version()
otp_version = System.otp_release()
decorator_version =
case Version.compare(system_version, "1.5.0") do
:lt -> "~> 1.2.3"
_ -> "~> 1.2.3 or ~> 1.3"
end
finch_version =
case Version.compare(system_version, "1.15.0") do
:lt -> ">= 0.19.0 and < 0.22.0"
_ -> "~> 0.19"
end
telemetry_version =
case otp_version < "21" do
true -> "~> 0.4"
false -> "~> 0.4 or ~> 1.0"
end
mime_dependency =
case Version.compare(system_version, "1.10.0") do
:lt -> [{:mime, "~> 1.0", only: [:test, :test_no_nif]}]
_ -> []
end
plug_version =
case Version.compare(system_version, "1.10.0") do
:lt ->
"~> 1.13.6"
_ ->
case Version.compare(system_version, "1.14.0") do
:lt -> "~> 1.14 and < 1.19.0"
_ -> "~> 1.14"
end
end
credo_version =
case Version.compare(system_version, "1.13.0") do
:lt -> "1.7.6"
_ -> "~> 1.7"
end
logger_backends_dependency =
case Version.compare(system_version, "1.15.0") do
:lt -> []
_ -> [{:logger_backends, "~> 1.0"}]
end
[
{:castore, "~> 1.0"},
{:certifi, "~> 2.14"},
{:decimal, "~> 2.0 or ~> 3.1"},
{:benchee, "~> 1.0", only: :bench},
{:finch, finch_version},
{:jason, "~> 1.0"},
{:decorator, decorator_version},
{:plug, plug_version, only: [:test, :test_no_nif]},
{:plug_cowboy, "~> 1.0", only: [:test, :test_no_nif]},
{:bypass, "~> 0.6.0", only: [:test, :test_no_nif]},
{:ex_doc, "~> 0.12", only: :dev, runtime: false},
{:credo, credo_version, only: [:test, :dev], runtime: false},
{:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false},
{:telemetry, telemetry_version},
{:httpoison, "~> 2.0", optional: true}
] ++ mime_dependency ++ logger_backends_dependency
end
end