defmodule Potable.MixProject do use Mix.Project @version "1.0.0" def project do [ app: :potable, version: @version, elixir: "~> 1.18", start_permanent: Mix.env() == :prod, deps: deps(), elixirc_paths: elixirc_paths(Mix.env()), docs: docs(), name: "Potable", source_url: "https://github.com/RosterPub/Potable", homepage_url: "https://github.com/RosterPub/Potable", description: """ Elixir implementation of AT Protocol primitives (CID, TID, MST, DAG-CBOR, CAR). """, package: package() ] end def application do [ extra_applications: [:logger, :crypto] ] end defp elixirc_paths(:test), do: ["lib", "test/support"] defp elixirc_paths(_), do: ["lib"] defp package do [ licenses: ["MIT"], links: %{ "GitHub" => "https://github.com/RosterPub/Potable" }, files: ~w(lib docs/*.md .formatter.exs mix.exs README.md LICENSE) ] end defp deps do [ {:cbor, "~> 1.0"}, {:ex_doc, "~> 0.34", only: :dev, runtime: false} ] end defp docs do [ main: "readme", extras: [ "README.md", "docs/00_overview.md", "docs/01_quickstart.md", "docs/02_data_formats.md", "docs/03_mst.md", "docs/04_commits_and_signatures.md", "docs/05_repository_engine.md", "docs/06_storage_backends.md", "docs/07_known_limitations.md", "docs/08_conformance_and_interop.md", "docs/09_sync_and_firehose_primitives.md" ], groups_for_extras: [ "Getting Started": [ "README.md", "docs/00_overview.md", "docs/01_quickstart.md" ], "Core Guides": [ "docs/02_data_formats.md", "docs/03_mst.md", "docs/04_commits_and_signatures.md", "docs/05_repository_engine.md" ], "Integration And Ops": [ "docs/06_storage_backends.md", "docs/07_known_limitations.md", "docs/08_conformance_and_interop.md", "docs/09_sync_and_firehose_primitives.md" ] ], groups_for_modules: [ "Repository Engine": [ Potable.Repository, Potable.Commit, Potable.MST, Potable.CAR, Potable.Signing ], "Codecs and Addressing": [ Potable.DagCbor, Potable.CID, Potable.Varint, Potable.TID ], Storage: [ Potable.BlockStore, Potable.BlockStore.Memory, Potable.EventLog, Potable.EventLog.Memory, Potable.Blob, Potable.Blob.Storage, Potable.Blob.MemoryStorage ], "Sync and Firehose": [ Potable.Sync.CommitEnvelope, Potable.Sync.Cursors, Potable.Sync.CAR ], "Identifiers and Records": [ Potable.DID, Potable.NSID, Potable.AtUri, Potable.Handle, Potable.Record, Potable.Identity.Resolver, Potable.Identity.StaticResolver ] ] ] end end