defmodule CrucibleTelemetry.MixProject do use Mix.Project @version "0.2.0" @source_url "https://github.com/North-Shore-AI/crucible_telemetry" def project do [ app: :crucible_telemetry, version: @version, elixir: "~> 1.14", start_permanent: Mix.env() == :prod, deps: deps(), dialyzer: dialyzer(), docs: docs(), description: description(), package: package(), name: "CrucibleTelemetry", source_url: @source_url, homepage_url: @source_url ] end def application do [ extra_applications: [:logger], mod: {CrucibleTelemetry.Application, []} ] end defp deps do [ {:jason, "~> 1.4"}, {:telemetry, "~> 1.3"}, # Static analysis {:dialyxir, "~> 1.4", only: :dev, runtime: false}, # Documentation {:ex_doc, "~> 0.38", only: :dev, runtime: false} ] end defp description do """ Advanced telemetry collection and analysis for AI research """ end defp docs do [ main: "readme", name: "CrucibleTelemetry", source_ref: "v#{@version}", source_url: @source_url, homepage_url: @source_url, extras: extras(), groups_for_extras: groups_for_extras(), assets: %{"assets" => "assets"}, logo: "assets/crucible_telemetry.svg", before_closing_head_tag: &mermaid_config/1 ] end defp dialyzer do [ plt_add_deps: :app_tree, plt_add_apps: [:mix] ] end defp extras do [ "README.md", "CHANGELOG.md" ] end defp groups_for_extras do [ Guides: ["README.md"], "Release Notes": ["CHANGELOG.md"] ] end defp mermaid_config(:html) do """ """ end defp mermaid_config(_), do: "" defp package do [ name: "crucible_telemetry", description: description(), files: ~w(lib mix.exs README.md CHANGELOG.md LICENSE), licenses: ["MIT"], links: %{ "GitHub" => @source_url, "Online documentation" => "https://hexdocs.pm/crucible_telemetry", "Changelog" => "#{@source_url}/blob/main/CHANGELOG.md" }, maintainers: ["nshkrdotcom"] ] end end