defmodule HexorcistUpdate.MixProject do
use Mix.Project
@version "0.4.0"
@source_url "https://git.sr.ht/~sbr/hexorcist"
def project do
[
app: :hexorcist_update,
version: @version,
elixir: "~> 1.16",
start_permanent: Mix.env() == :prod,
deps: deps(),
description:
"Client for Hexorcist: applies a project's upgrade plan locally " <>
"(mix deps.update), test-gated, leaving a reviewable diff.",
source_url: @source_url,
docs: docs(),
package: package()
]
end
# No runtime deps: uses OTP's :inets/:ssl (httpc) and Elixir 1.18+ JSON, so it
# can be installed as an archive without dragging deps into the user's project.
def application, do: [extra_applications: [:inets, :ssl]]
# ex_doc is dev-only/runtime: false — required by `mix hex.publish` to build
# the docs, but never part of the published archive's (empty) dependency tree.
defp deps do
[
{:ex_doc, ">= 0.0.0", only: :dev, runtime: false},
{:credo, ">= 0.0.0", only: [:dev, :test], runtime: false}
]
end
defp docs do
[
main: "readme",
extras: ["README.md", "LICENSE"],
source_url: @source_url
]
end
defp package do
[
licenses: ["BSD-3-Clause"],
files: ~w(lib mix.exs README.md LICENSE .formatter.exs),
links: %{
"Source" => @source_url,
"Hexorcist" => "https://hexorcist.net"
}
]
end
end