defmodule ActiveMemory.MixProject do use Mix.Project @app :active_memory @author "Erin Boeger" @github "https://github.com/SullysMustyRuby/active_memory" @license "MIT" @name "ActiveMemory" @version "0.8.0" def project do [ app: @app, version: @version, author: @author, description: description(), elixir: "~> 1.15", start_permanent: Mix.env() == :prod, deps: deps(), package: package(), # Support modules and seed files under test/support are loaded manually by # test/test_helper.exs, so exclude them from the Elixir 1.19+ test file scan. test_ignore_filters: [ ~r"^test/support/" ], # ExDoc name: @name, source_url: @github, homepage_url: @github, docs: [ main: @name, canonical: "https://hexdocs.pm/#{@app}", extras: [ "README.md", "guides/coming_from_ecto.md": [title: "Coming from Ecto"], "CHANGELOG.md": [title: "Changelog"] ], groups_for_extras: [Guides: ~r/guides\//] ], aliases: [ test: "test --no-start" ] ] end # Run "mix help compile.app" to learn about applications. def application do [ extra_applications: [:logger, :mnesia], mod: {ActiveMemory.Application, []} ] end defp description do "The typed, attribute-queryable in-memory store for ETS and Mnesia, " <> "with Ecto changeset support, record expiry (TTL), crash resilience, " <> "and atomic take-once reads." end # Run "mix help deps" to learn about dependencies. defp deps do [ {:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false}, {:ecto, "~> 3.0"}, {:ex_doc, "~> 0.27", only: :dev, runtime: false}, {:local_cluster, "~> 2.1", only: [:test]} ] end defp package do [ name: @app, maintainers: [@author], licenses: [@license], files: ~w(mix.exs lib guides README.md CHANGELOG.md), links: %{"Github" => @github} ] end end