defmodule Lucerna.MixProject do use Mix.Project @version "0.0.1-alpha.0" @homepage "https://uselucerna.app" @docs_url "https://hexdocs.pm/lucerna" @issues_url "https://github.com/uselucerna/lucerna-issues/issues" def project do [ app: :lucerna, version: @version, elixir: "~> 1.18", start_permanent: Mix.env() == :prod, test_ignore_filters: [~r"test/support/"], deps: deps(), description: "Lucerna SDK for Elixir — feature gates, experiments and identity.", package: package(), docs: docs(), name: "Lucerna", homepage_url: @homepage ] end def application do [ extra_applications: [:logger] ] end # The whole dependency list, by design: finch for HTTP, telemetry for # instrumentation. JSON comes from the standard library (Elixir 1.18+). defp deps do [ {:finch, "~> 0.19"}, {:telemetry, "~> 1.0"}, {:ex_doc, "~> 0.34", only: :dev, runtime: false} ] end defp package do [ # `lucerna` on hex.pm — the app name is the package name. The source # monorepo is private; like the npm/Ruby siblings we link the docs # site and the public issues repo, not source. licenses: ["MIT"], files: ~w(lib guides mix.exs README.md), links: %{ "Docs" => @docs_url, "Homepage" => @homepage, "Issues" => @issues_url } ] end defp docs do [ main: "readme", extras: [ "README.md", "guides/phoenix.md" ], groups_for_extras: [ Guides: ~r"guides/" ], formatters: ["html"] ] end end