defmodule ExZarr.MixProject do use Mix.Project @version "0.1.0" @source_url "https://github.com/thanosvassilakis/ex_zarr" def project do [ app: :ex_zarr, version: @version, elixir: "~> 1.19", start_permanent: Mix.env() == :prod, deps: deps(), # Package info description: description(), package: package(), docs: docs(), name: "ExZarr", source_url: @source_url, # Testing test_coverage: [tool: ExCoveralls], # Dialyzer dialyzer: [ plt_file: {:no_warn, "priv/plts/dialyzer.plt"}, plt_add_apps: [:mix, :ex_unit], flags: [:underspecs, :unmatched_returns], ignore_warnings: ".dialyzer_ignore.exs" ] ] end def application do [ extra_applications: [:logger, :crypto] ] end def cli do [ preferred_envs: [ coveralls: :test, "coveralls.detail": :test, "coveralls.post": :test, "coveralls.html": :test, "coveralls.github": :test, "coveralls.cobertura": :test ] ] end defp deps do [ # Ziggler for Zig NIFs (compression codecs) {:zigler, "~> 0.13", runtime: false}, # JSON encoding/decoding for metadata {:jason, "~> 1.4"}, # Documentation {:ex_doc, "~> 0.31", only: :dev, runtime: false} ] ++ [ {:credo, "~> 1.7", only: [:dev, :test], runtime: false}, {:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false}, {:excoveralls, "~> 0.18", only: :test}, {:stream_data, "~> 1.1", only: [:dev, :test]} ] end defp description do """ Pure Elixir implementation of Zarr v2: compressed, chunked, N-dimensional arrays with full Python zarr-python compatibility. Perfect for data science, scientific computing, and working with large datasets. """ end defp package do [ name: "ex_zarr", licenses: ["MIT"], links: %{ "GitHub" => @source_url, "Changelog" => "#{@source_url}/blob/main/CHANGELOG.md", "Zarr Specification" => "https://zarr.dev" }, maintainers: ["Thanos Vassilakis"], files: ~w(lib priv native .formatter.exs mix.exs README.md CHANGELOG.md INTEROPERABILITY.md LICENSE) ] end defp docs do [ main: "ExZarr", extras: [ "README.md", "CHANGELOG.md", "INTEROPERABILITY.md" ], groups_for_extras: [ Guides: ~r/INTEROPERABILITY/, "Release Notes": ~r/CHANGELOG/ ], source_ref: "v#{@version}", source_url: @source_url, authors: ["Thanos Vassilakis"] ] end end