defmodule Soroban.MixProject do use Mix.Project @version "0.2.0" @github_url "https://github.com/kommitters/soroban.ex" def project do [ app: :soroban, version: @version, elixir: "~> 1.14", start_permanent: Mix.env() == :prod, deps: deps(), name: "Soroban", description: description(), source_url: @github_url, package: package(), docs: docs(), dialyzer: [ plt_add_apps: [:soroban, :ex_unit, :jason], plt_file: {:no_warn, "priv/plts/dialyzer.plt"} ], test_coverage: [tool: ExCoveralls], preferred_cli_env: [ coveralls: :test, "coveralls.detail": :test, "coveralls.post": :test, "coveralls.html": :test ] ] 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 [ {:credo, "~> 1.6", only: [:dev, :test], runtime: false}, {:dialyxir, "~> 1.0", only: [:dev, :test], runtime: false}, {:ex_doc, "~> 0.29", only: :dev, runtime: false}, {:excoveralls, "~> 0.15", only: :test}, {:stellar_sdk, "~> 0.13.1"} ] end defp description do """ Elixir library to interact with the Soroban-RPC server, and facilitate the deployment and invocation of Soroban smart contracts. """ end defp package do [ description: description(), files: ["lib", "config", "mix.exs", "README*", "LICENSE"], licenses: ["MIT"], links: %{ "Changelog" => "#{@github_url}/blob/main/CHANGELOG.md", "GitHub" => @github_url, "Sponsor" => "https://github.com/sponsors/kommitters" } ] end defp docs do [ main: "readme", name: "Soroban.ex", source_ref: "v#{@version}", source_url: @github_url, canonical: "https://hexdocs.pm/soroban", extras: extras(), groups_for_modules: groups_for_modules() ] end defp groups_for_modules do [] end defp extras() do [ "README.md", "CHANGELOG.md", "CONTRIBUTING.md" ] end end