Packages

Formal-model-driven conformance testing for Elixir implementations using TLA+ traces generated by Apalache.

Current section

Files

Jump to
victoria mix.exs
Raw

mix.exs

defmodule Victoria.MixProject do
use Mix.Project
@version "0.1.0"
@source_url "https://github.com/kokjinsam/victoria"
def project do
[
app: :victoria,
version: @version,
elixir: "~> 1.18",
name: "Victoria",
description: description(),
start_permanent: Mix.env() == :prod,
elixirc_paths: elixirc_paths(Mix.env()),
deps: deps(),
source_url: @source_url,
homepage_url: @source_url,
package: package(),
docs: docs(),
test_ignore_filters: [&String.starts_with?(&1, "test/consumers/")],
aliases: aliases()
]
end
# Run "mix help compile.app" to learn about applications.
def application do
[
extra_applications: [:crypto, :logger]
]
end
# Run "mix help deps" to learn about dependencies.
defp deps do
[
{:code_style, "~> 0.1.1", only: [:dev, :test], runtime: false},
{:credo, "~> 1.7.19", only: [:dev, :test], runtime: false},
{:dialyxir, "~> 1.4.7", only: [:dev, :test], runtime: false},
{:ex_doc, "~> 0.38", only: :dev, runtime: false},
{:styler, "~> 1.11.0", only: [:dev, :test], runtime: false}
]
end
defp description do
"Formal-model-driven conformance testing for Elixir implementations using TLA+ traces generated by Apalache."
end
defp package do
[
name: "victoria",
licenses: ["MIT"],
links: %{
"GitHub" => @source_url,
"Documentation" => "https://hexdocs.pm/victoria",
"Changelog" => "#{@source_url}/blob/main/CHANGELOG.md"
},
files: ~w(lib .formatter.exs mix.exs README.md CHANGELOG.md LICENSE CONTEXT.md)
]
end
defp docs do
[
main: "readme",
source_ref: "v#{@version}",
source_url: @source_url,
extras: ["README.md", "CHANGELOG.md", "CONTEXT.md"],
groups_for_modules: documentation_groups()
]
end
defp documentation_groups do
[
"Core verification": [
Victoria,
Victoria.Model,
Victoria.Trace,
Victoria.Step,
Victoria.ITF,
Victoria.Runner,
Victoria.Verifier
],
"Apalache integration": [
Victoria.Spec,
Victoria.Apalache,
Victoria.Apalache.Plan,
Victoria.Apalache.RunDirectory,
Victoria.Apalache.Result
],
"Workflow orchestration": [
Victoria.Workflow,
Victoria.Workflow.Result,
Victoria.Workflow.Verification
],
"ExUnit integration": [Victoria.ExUnit],
Errors: [
Victoria.ITF.Error,
Victoria.Spec.Error,
Victoria.Runner.Failure,
Victoria.VerificationFailure,
Victoria.Apalache.Error,
Victoria.Workflow.Error
],
Reports: [Victoria.Runner.Report]
]
end
def cli do
[preferred_envs: [check: :test, dialyzer: :dev]]
end
defp elixirc_paths(:test), do: ["lib", "test/support"]
defp elixirc_paths(_env), do: ["lib"]
defp aliases do
[
check: [
"format --check-formatted",
"compile --warnings-as-errors",
"credo --strict",
"dialyzer",
"test"
]
]
end
end