defmodule EctoLibSql.MixProject do use Mix.Project @version "0.8.3" @source_url "https://github.com/ocean/ecto_libsql" def project do [ app: :ecto_libsql, version: @version, elixir: "~> 1.17", start_permanent: Mix.env() == :prod, deps: deps(), name: "EctoLibSql", source_url: @source_url, homepage_url: @source_url, package: package(), description: description(), docs: docs(), dialyzer: [ plt_core_path: "priv/plts", app_tree: true, plt_add_apps: [:mix, :ex_unit], ignore_warnings: ".dialyzer_ignore.exs", list_unused_filters: true ], aliases: [ "check.dialyzer": "dialyzer" ] ] end def application do [ extra_applications: [:logger] ] end defp description() do """ Elixir Ecto adapter for LibSQL and Turso databases. Supports local SQLite files, remote Turso cloud databases, and embedded replicas with sync. Built with Rust NIFs for reliability and fault tolerance. See the Changelog for details! """ end defp deps do [ {:credo, "~> 1.7", only: [:dev, :test], runtime: false}, {:db_connection, "~> 2.1"}, {:dialyxir, "~> 1.4", only: [:dev], runtime: false}, {:ecto, "~> 3.11"}, {:ecto_sql, "~> 3.11"}, {:ex_doc, "~> 0.31", only: :dev, runtime: false}, {:jason, "~> 1.4"}, {:rustler, "~> 0.37.1"}, {:sobelow, "~> 0.13", only: [:dev, :test], runtime: false}, {:stream_data, "~> 1.0", only: [:dev, :test]} ] end defp package() do [ name: "ecto_libsql", files: ~w(lib priv .formatter.exs mix.exs README* LICENSE* CHANGELOG* AGENT* native), licenses: ["Apache-2.0"], links: %{ "GitHub" => @source_url, "Changelog" => "https://hexdocs.pm/ecto_libsql/changelog.html" }, maintainers: ["ocean"] ] end defp docs do [ main: "EctoLibSql", source_ref: "v#{@version}", source_url: @source_url, extras: ["README.md", "CHANGELOG.md", "AGENTS.md", "ECTO_MIGRATION_GUIDE.md"], groups_for_modules: [ "Core Modules": [EctoLibSql, EctoLibSql.Native], "Support Modules": [ EctoLibSql.Query, EctoLibSql.Result, EctoLibSql.State, EctoLibSql.Error ], "Ecto Integration": [ Ecto.Adapters.LibSql, Ecto.Adapters.LibSql.Connection ] ] ] end end