defmodule Hell.MixProject do use Mix.Project def project do [ app: :hell, version: "0.1.1", elixir: ">= 1.18.0", elixirc_paths: elixirc_paths(Mix.env()), start_permanent: Mix.env() == :prod, deps: deps(), dialyzer: dialyzer(), name: "Hell", description: "A simple & modern pure Elixir socket server", source_url: "https://github.com/gsmlg-dev/hell", package: [ name: "hell", licenses: ["MIT"], links: %{ "GitHub" => "https://github.com/gsmlg-dev/hell", "Changelog" => "https://github.com/gsmlg-dev/hell/blob/main/CHANGELOG.md" }, files: [ "lib", "mix.exs", "README*", "LICENSE*", "CHANGELOG*", "MIGRATION.md", "RELEASE.md" ] ], docs: docs() ] end def application do [extra_applications: [:logger, :ssl]] end defp elixirc_paths(:test), do: ["lib", "test/support"] defp elixirc_paths(_), do: ["lib"] defp deps() do [ {:telemetry, "~> 0.4 or ~> 1.0"}, {:machete, ">= 0.0.0", only: [:dev, :test]}, {:ex_doc, "~> 0.25", only: [:dev, :test], runtime: false}, {:dialyxir, "~> 1.0", only: [:dev, :test], runtime: false}, {:credo, "~> 1.5", only: [:dev, :test], runtime: false} ] end defp dialyzer do [ plt_core_path: "priv/plts", plt_file: {:no_warn, "priv/plts/dialyzer.plt"}, plt_add_deps: :apps_direct, plt_add_apps: [:public_key], flags: [ "-Werror_handling", "-Wextra_return", "-Wmissing_return", "-Wunknown", "-Wunmatched_returns", "-Wunderspecs" ] ] end defp docs do [ main: "Hell", extras: ["MIGRATION.md", "CHANGELOG.md"], groups_for_extras: [ Changelog: ~r/CHANGELOG\.md/ ], groups_for_modules: [ Transport: [ Hell.Transport, Hell.Transports.TCP, Hell.Transports.SSL ] ] ] end end