defmodule NebulaGraphEx.MixProject do use Mix.Project @version "0.1.3" @source_url "https://github.com/VChain/nebula_graph_ex" @description "NebulaGraph client for Elixir — connection pooling, session management, and rich result decoding." def project do [ app: :nebula_graph_ex, version: @version, elixir: "~> 1.15", elixirc_paths: elixirc_paths(Mix.env()), start_permanent: Mix.env() == :prod, deps: deps(), aliases: aliases(), docs: docs(), package: package(), description: @description, # Tests test_paths: ["test"], test_pattern: "**/*_test.exs" ] end def application do [ mod: {NebulaGraphEx.Application, []}, extra_applications: [:logger, :ssl] ] end def cli do [ preferred_envs: [precommit: :test] ] end defp elixirc_paths(:test), do: ["lib", "test/support"] defp elixirc_paths(_), do: ["lib"] defp deps do [ {:db_connection, "~> 2.7"}, {:nimble_options, "~> 1.1"}, {:telemetry, "~> 1.0"}, # Dev/test {:ex_doc, "~> 0.34", only: :dev, runtime: false}, {:stream_data, "~> 1.0", only: [:dev, :test]}, {:mox, "~> 1.2", only: :test} ] end defp aliases do [ precommit: ["format --check-formatted", "compile --warnings-as-errors", "test"] ] end defp docs do [ main: "NebulaGraphEx", source_url: @source_url, source_ref: "v#{@version}", extras: ["README.md"], groups_for_modules: [ "Public API": [NebulaGraphEx, NebulaGraphEx.Graph], "Result Decoding": [ NebulaGraphEx.ResultSet, NebulaGraphEx.Record, NebulaGraphEx.Value ], "Graph Types": [ NebulaGraphEx.Types.Vertex, NebulaGraphEx.Types.Edge, NebulaGraphEx.Types.Path, NebulaGraphEx.Types.Tag, NebulaGraphEx.Types.Duration, NebulaGraphEx.Types.Geography ], Internals: [ NebulaGraphEx.Connection, NebulaGraphEx.Query, NebulaGraphEx.Result, NebulaGraphEx.Error, NebulaGraphEx.Transport, NebulaGraphEx.Telemetry, NebulaGraphEx.Options ] ] ] end defp package do [ maintainers: ["VChain"], licenses: ["Apache-2.0"], links: %{"GitHub" => @source_url}, files: ~w(lib priv/thrift mix.exs README.md LICENSE) ] end end