defmodule ExESDBGrpc.MixProject do @moduledoc false use Mix.Project @app_name :ex_esdb_grpc @version "0.5.0" @source_url "https://github.com/beam-campus/ex-esdb-grpc" @docs_url "https://hexdocs.pm/ex_esdb_grpc" @description "EventStore-compatible gRPC API server for ExESDB event store clusters. Provides complete stream operations, real-time subscriptions, transaction support, and comprehensive monitoring capabilities with high performance and production-ready reliability." def project do [ app: @app_name, version: @version, elixir: "~> 1.14", deps: deps(), description: @description, docs: docs(), package: package(), start_permanent: Mix.env() == :prod, test_coverage: [tool: ExCoveralls], preferred_cli_env: [coveralls: :test] ] end def application do [ extra_applications: [:logger], mod: {ExESDBGrpc.Application, []} ] end defp deps do [ # Core dependencies {:ex_esdb_gater, "~> 0.8"}, {:grpc, "~> 0.7"}, {:protobuf, "~> 0.15"}, {:jason, "~> 1.0"}, # Development dependencies {:ex_doc, "~> 0.31", only: :dev, runtime: false}, {:credo, "~> 1.7", only: [:dev, :test], runtime: false}, {:dialyxir, "~> 1.3", only: [:dev], runtime: false}, # Test dependencies {:excoveralls, "~> 0.16", only: :test} ] end defp package do [ name: @app_name, description: @description, version: @version, files: [ "lib", "priv", "mix.exs", "../README*", "../LICENSE*", "CHANGELOG*", ".formatter.exs" ], maintainers: ["rgfaber"], licenses: ["MIT"], links: %{ "GitHub" => @source_url }, source_url: @source_url ] end defp docs do [ main: "readme", canonical: @docs_url, source_ref: "v#{@version}", extras: [ "../README.md": [ filename: "readme", title: "Read Me" ], "CHANGELOG.md": [ filename: "changelog", title: "Changelog" ] ] ] end end