defmodule Decant.MixProject do
use Mix.Project
@version "0.1.0-beta.2"
@source_url "https://github.com/Arsenalist/decant"
@moduledoc false
# Decant — tokenized, multi-field ILIKE/LIKE search compiled to a composable
# Ecto `dynamic/2`. Host-agnostic by construction: the only runtime dep is
# `:ecto`, and `test/decant/architecture_test.exs` guards `lib/` against
# host-app references. See README.md for install and usage.
def project do
[
app: :decant,
version: @version,
elixir: "~> 1.19",
elixirc_paths: elixirc_paths(Mix.env()),
start_permanent: Mix.env() == :prod,
deps: deps(),
name: "Decant",
description: description(),
package: package(),
docs: docs(),
source_url: @source_url,
homepage_url: @source_url
]
end
def application do
[extra_applications: [:logger]]
end
defp elixirc_paths(:test), do: ["lib", "test/support"]
defp elixirc_paths(_), do: ["lib"]
defp deps do
[
{:ecto, "~> 3.10"},
{:ecto_sql, "~> 3.10", only: :test},
{:postgrex, ">= 0.0.0", only: :test},
{:ex_doc, "~> 0.34", only: :dev, runtime: false}
]
end
defp description do
"Tokenized, multi-field ILIKE/LIKE search compiled to a composable Ecto dynamic. " <>
"Minimal, binding-agnostic, drop-in."
end
defp package do
[
licenses: ["MIT"],
maintainers: ["Zarar Siddiqi"],
links: %{
"GitHub" => @source_url,
"Changelog" => "#{@source_url}/blob/main/CHANGELOG.md"
},
files: ~w(lib mix.exs README.md LICENSE CHANGELOG.md CONTRIBUTING.md CODE_OF_CONDUCT.md)
]
end
defp docs do
[
main: "Decant",
source_ref: "v#{@version}",
extras: ["README.md", "CHANGELOG.md", "CONTRIBUTING.md"]
]
end
end