defmodule Ockam.MixProject do use Mix.Project @version "0.0.0" @elixir_requirement "~> 1.10" @ockam_github_repo "https://github.com/ockam-network/ockam" @ockam_github_repo_path "implementations/elixir/ockam/ockam" def project do [ app: :ockam, version: @version, elixir: @elixir_requirement, consolidate_protocols: Mix.env() != :test, elixirc_options: [warnings_as_errors: true], deps: deps(), aliases: aliases(), # lint dialyzer: [flags: ["-Wunmatched_returns", :error_handling, :underspecs]], # test test_coverage: [output: "_build/cover"], preferred_cli_env: ["test.cover": :test], # hex description: "A collection of tools for building connected systems that you can trust.", package: package(), # docs name: "Ockam", docs: docs() ] end # mix help compile.app for more def application do [ mod: {Ockam, []}, extra_applications: [:logger, :gen_state_machine] ] end defp deps do [ {:ex_doc, "~> 0.23.0", only: :dev, runtime: false}, ] end # used by hex defp package do [ links: %{"GitHub" => @ockam_github_repo}, licenses: ["Apache-2.0"] ] end # used by ex_doc defp docs do [ main: "Ockam", source_url_pattern: "#{@ockam_github_repo}/blob/v#{@version}/#{@ockam_github_repo_path}/%{path}#L%{line}" ] end defp aliases do [ docs: "docs --output docs --formatter html", "test.cover": "test --no-start --cover", "lint.format": "format --check-formatted", "lint.credo": "credo --strict", "lint.dialyzer": "dialyzer --format dialyxir", lint: ["lint.format", "lint.credo"] ] end end