Packages

Elixir ChromaDB library

Current section

Files

Jump to
Raw

mix.exs

defmodule ExChromaDb.MixProject do
use Mix.Project
@version "0.1.0"
@description "Elixir ChromaDB library"
@repo_url "https://github.com/paulsabou/ex_chroma_db"
def project do
[
app: :ex_chroma_db,
version: @version,
elixir: "~> 1.17",
build_embedded: Mix.env() == :prod,
deps: deps(),
aliases: aliases(),
dialyzer: [
plt_add_apps: [:mix],
ignore_warnings: ".dialyzer_ignore.exs"
],
# Hex
package: hex_package(),
description: @description,
# Docs
name: "ex_chroma_db",
docs: [
source_ref: "v#{@version}",
main: "ExChromaDb",
source_url: @repo_url
# extras: ["CHANGELOG.md"]
]
]
end
# Run "mix help compile.app" to learn about applications.
def application do
[
extra_applications: [:logger, :telemetry, :hackney]
]
end
def hex_package do
[
maintainers: ["Paul Sabou"],
licenses: ["Apache-2.0"],
links: %{
"GitHub" => @repo_url,
"Changelog" => @repo_url <> "/blob/main/CHANGELOG.md"
},
files: ~w(lib mix.exs *.md)
]
end
defp deps do
[
# BEGIN --------------------------------- App core
# Caching for chromadb collections
{:cachex, "~> 4.0.3"},
# We generate the ChromaDB client from the OpenAPI spec
{:oapi_generator, "~> 0.2.0", only: :dev, runtime: false},
# HTTP Cient
{:tesla, "~> 1.5"},
# HTTP adapter for Tesla
{:hackney, "~> 1.18", runtime: true},
# UUID generation for tests
{:uuid, "~> 1.1", only: [:dev, :test], runtime: false},
# END --------------------------------- App core
# BEGIN --------------------------------- Developer Experience
# Types annotations checks
{:dialyxir, "~> 1.4", runtime: false},
# Code style checker
{:credo, "~> 1.7", only: [:dev, :test], runtime: false},
# Security checks
{:sobelow, "~> 0.13", only: [:dev, :test], runtime: false},
# Code documentation
{:ex_doc, ">= 0.0.0", only: [:dev], runtime: false},
# Deps security audits
{:mix_audit, "~> 2.1", only: [:dev, :test], runtime: false},
# Watch code changes & rerun tests automatically
{:mix_test_watch, "~> 1.2.0", only: [:dev, :test], runtime: false},
# Test factories
{:ex_machina, "~> 2.8.0", only: :test},
# Tidewave - LLM API MCP
{:tidewave, "~> 0.1", only: [:dev, :test], runtime: false}
# END --------------------------------- Developer Experience
]
end
defp aliases do
[
test: ["test"],
sobelow: ["sobelow --config .sobelow-conf"],
prepare_commit: [
"credo",
"sobelow",
"hex.audit",
"deps.audit",
"deps.unlock --check-unused",
"format",
"dialyzer"
],
"chromadb.generate": ["api.gen chromadb_client priv/openapi/chromadb.openapi.json"]
]
end
end