Packages
nerves
1.14.3
1.15.0
1.14.3
1.14.2
1.14.1
1.14.0
1.13.2
1.13.1
1.13.0
1.12.0
1.11.3
1.11.2
1.11.1
1.11.0
1.10.5
1.10.4
1.10.3
1.10.2
1.10.1
1.10.0
1.9.3
1.9.2
retired
1.9.1
1.9.0
1.8.0
1.7.17
1.7.16
1.7.15
1.7.14
retired
1.7.13
1.7.12
1.7.11
1.7.10
1.7.9
1.7.8
1.7.7
1.7.6
1.7.5
1.7.4
1.7.3
1.7.2
retired
1.7.1
retired
1.7.0
retired
1.6.7
1.6.6
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.5.5
1.5.4
1.5.3
1.5.2
1.5.1
1.5.0
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.1
1.2.0
1.1.1
1.1.0
1.0.1
1.0.0
1.0.0-rc.2
1.0.0-rc.1
1.0.0-rc.0
0.11.0
0.10.1
0.10.0
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.3
0.8.2
0.8.1
0.8.0
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.1
0.6.0
0.5.2
0.5.1
0.5.0
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.4.0-rc.0
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.0
Craft and deploy bulletproof embedded software
Current section
Files
Jump to
Current section
Files
mix.exs
# SPDX-FileCopyrightText: None
#
# SPDX-License-Identifier: CC0-1.0
#
defmodule Nerves.MixProject do
use Mix.Project
@version "1.14.3"
@source_url "https://github.com/nerves-project/nerves"
# Fail quickly on OTP 25 and earlier rather than letting them fail at runtime
@otp_release :erlang.system_info(:otp_release) |> List.to_integer()
if @otp_release < 26 do
raise "nerves requires OTP 26 or later. Current OTP version: #{@otp_release}"
end
def project do
[
app: :nerves,
version: @version,
elixir: "~> 1.20.0 or ~> 1.19.0 or ~> 1.18.0 or ~> 1.17.0 or ~> 1.16.0 or ~> 1.15.1",
archives: [nerves_bootstrap: "~> 1.15.1 or ~> 1.16"],
elixirc_paths: elixirc_paths(Mix.env()),
deps: deps(),
description: description(),
package: package(),
compilers: [:elixir_make | Mix.compilers()],
make_targets: ["all"],
make_clean: ["clean"],
docs: docs(),
dialyzer: dialyzer(),
aliases: ["archive.build": &raise_on_archive_build/1],
test_ignore_filters: [~r/test.fixtures.*/]
]
end
def application do
# Remove :nerves_bootstrap after allowing time for everyone to upgrade to
# 1.15.1 or later.
[extra_applications: [:ssl, :inets, :public_key, :eex, :nerves_bootstrap]]
end
defp elixirc_paths(:test), do: ["lib", "compat", "test/support"]
defp elixirc_paths(_), do: ["lib", "compat"]
def cli do
[preferred_envs: %{docs: :docs, credo: :dev, "hex.publish": :docs, "hex.build": :docs}]
end
defp deps do
[
{:elixir_make, "~> 0.6", runtime: false},
{:interactive_cmd, "~> 0.1.4"},
{:jason, "~> 1.2"},
{:nerves_discovery, "~> 0.1.2"},
{:tablet, "~> 0.3.1"},
{:credo, "~> 1.6", only: :dev, runtime: false},
{:ex_doc, "~> 0.22", only: :docs, runtime: false},
{:dialyxir, "~> 1.0", only: :dev, runtime: false},
{:bandit, "~> 1.0", only: :test},
{:mimic, "~> 2.3", only: :test},
{:plug, "~> 1.10", only: :test}
]
end
defp dialyzer do
[
flags: [:missing_return, :extra_return, :unmatched_returns, :error_handling, :underspecs],
plt_add_apps: [:mix]
]
end
defp docs do
[
main: "getting-started",
source_ref: "v#{@version}",
source_url: @source_url,
extra_section: "GUIDES",
assets: %{"resources" => "assets"},
logo: "resources/logo-color.png",
groups_for_extras: [
Introduction: ~r/guides\/introduction\/.?/,
Core: ~r/guides\/core\/.?/,
Advanced: ~r/guides\/advanced\/.?/,
Cheatsheets: ~r/guides\/cheatsheets\/.?/
],
extras: ["CHANGELOG.md"] ++ Path.wildcard("guides/*/*.{md,cheatmd}"),
skip_undefined_reference_warnings_on: [
"guides/advanced/updating-projects.md",
"CHANGELOG.md"
]
]
end
defp description do
"Craft and deploy bulletproof embedded software"
end
defp package do
[
files: [
"CHANGELOG.md",
"lib",
"LICENSES/*",
"Makefile",
"mix.exs",
"NOTICE",
"README.md",
"REUSE.toml",
"scripts",
"src"
],
licenses: ["Apache-2.0"],
links: %{
"Home page" => "https://www.nerves-project.org/",
"GitHub" => @source_url,
"Changelog" => "#{@source_url}/blob/main/CHANGELOG.md",
"REUSE Compliance" => "https://api.reuse.software/info/github.com/nerves-project/nerves"
}
]
end
defp raise_on_archive_build(_) do
Mix.raise("""
You are trying to install "nerves" as an archive, which is not supported. \
You probably meant to install "nerves_bootstrap" instead.
""")
end
end