Packages

Interactive versioning and release automation for Elixir packages. Guides you through version bumps, changelog management, git operations, and publishing with interactive prompts.

Current section

Files

Jump to
versionise mix.exs
Raw

mix.exs

defmodule Versionise.MixProject do
use Mix.Project
@version "1.0.0"
@source_url "https://github.com/dylanblakemore/versionise"
def project do
[
app: :versionise,
version: @version,
elixir: "~> 1.12",
start_permanent: Mix.env() == :prod,
deps: deps(),
aliases: aliases(),
dialyzer: dialyzer(),
description: description(),
package: package(),
docs: docs(),
name: "Versionise",
source_url: @source_url,
homepage_url: @source_url
]
end
# Run "mix help compile.app" to learn about applications.
def application do
[
extra_applications: [:logger]
]
end
# Run "mix help deps" to learn about dependencies.
defp deps do
[
{:ex_doc, "~> 0.31", only: :dev, runtime: false},
{:credo, "~> 1.7", only: [:dev, :test], runtime: false},
{:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false}
]
end
defp aliases do
[
precommit: ["format --check-formatted", "test", "credo --strict", "dialyzer"]
]
end
def cli do
[
preferred_envs: [precommit: :test]
]
end
defp dialyzer do
[
plt_file: {:no_warn, "priv/plts/dialyzer.plt"},
plt_add_apps: [:mix, :ex_unit],
flags: [:error_handling, :underspecs],
ignore_warnings: ".dialyzer_ignore.exs"
]
end
defp description do
"""
Interactive versioning and release automation for Elixir packages.
Guides you through version bumps, changelog management, git operations,
and publishing with interactive prompts.
"""
end
defp package do
[
name: "versionise",
files: ~w(lib .formatter.exs mix.exs README.md LICENSE CHANGELOG.md),
maintainers: ["Dylan Blakemore"],
licenses: ["MIT"],
links: %{
"GitHub" => @source_url,
"Changelog" => "#{@source_url}/blob/main/CHANGELOG.md"
}
]
end
defp docs do
[
main: "readme",
source_ref: "v#{@version}",
source_url: @source_url,
extras: ["README.md", "CHANGELOG.md", "LICENSE"],
authors: ["Dylan Blakemore"]
]
end
end