Current section
Files
Jump to
Current section
Files
ash_computer
mix.exs
mix.exs
defmodule AshComputer.MixProject do
use Mix.Project
@description """
Ash wrapper for computer
"""
@version "0.1.0"
@source_url "https://github.com/marot/ash_computer"
def project do
[
app: :ash_computer,
version: @version,
elixir: "~> 1.18",
elixirc_paths: elixirc_paths(Mix.env()),
package: package(),
consolidate_protocols: Mix.env() == :prod,
start_permanent: Mix.env() == :prod,
aliases: aliases(),
deps: deps(),
dialyzer: [plt_add_apps: [:mix]],
description: @description,
source_url: @source_url,
homepage_url: @source_url,
preferred_cli_env: [
"test.create": :test,
"test.migrate": :test,
"test.rollback": :test,
"test.migrate_tenants": :test,
"test.check_migrations": :test,
"test.drop": :test,
"test.generate_migrations": :test,
"test.reset": :test,
"test.full_reset": :test
],
test_coverage: [
summary: [threshold: 80],
ignore_modules: [
AshComputer.PreCommit.Formatter,
~r/^Inspect\./,
~r/^AshComputer.Dsl\./
]
]
]
end
# Run "mix help compile.app" to learn about applications.
def application do
[
extra_applications: [:logger],
mod: {AshComputer.Application, []}
]
end
defp elixirc_paths(:test) do
["test/support", "lib/"]
end
defp elixirc_paths(_env) do
["lib/"]
end
defp package do
[
name: :ash_computer,
licenses: ["MIT"],
files:
~w(lib .formatter.exs mix.exs README* LICENSE* usage-rules.md CHANGELOG*),
links: %{
"GitHub" => @source_url,
"Changelog" => "#{@source_url}/blob/main/CHANGELOG.md"
}
]
end
# Run "mix help deps" to learn about dependencies.
defp deps do
[
{:usage_rules, "~> 0.1", only: [:dev]},
{:claude, "~> 0.5", only: [:dev], runtime: false},
{:spark, "~> 2.2"},
# Dev/test dependencies
{:git_hooks, "~> 0.8.0", only: [:dev], runtime: false},
{:ex_check, "~> 0.12", only: [:dev, :test]},
{:git_ops, "~> 2.6.1", only: [:dev]},
{:ex_doc, "~> 0.34", only: [:dev], runtime: false},
{:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false},
{:credo, "~> 1.7", only: [:dev, :test], runtime: false},
{:sobelow, "~> 0.13", only: [:dev, :test], runtime: false},
{:phoenix, "~> 1.8.1", optional: true},
{:phoenix_live_view, "~> 1.1.8", optional: true},
{:lazy_html, ">= 0.1.0", only: :test}
]
end
defp aliases do
[
sync_usage_rules: "usage_rules.sync CLAUDE.md --all --inline usage_rules:all
--link-to-folder deps",
"spark.formatter": "spark.formatter --extensions AshComputer",
sobelow: "sobelow --skip",
credo: "credo --strict",
"spark.cheat_sheets": "spark.cheat_sheets --extensions AshComputer",
"test.generate_migrations": "ash_postgres.generate_migrations",
"test.check_migrations": "ash_postgres.generate_migrations --check",
"test.migrate_tenants": "ash_postgres.migrate --tenants",
"test.migrate": "ash_postgres.migrate",
"test.rollback": "ash_postgres.rollback",
"test.create": "ash_postgres.create",
"test.full_reset": ["test.generate_migrations", "test.reset"],
"test.reset": ["test.drop", "test.create", "test.migrate", "ash_postgres.migrate --tenants"],
"test.drop": "ash_postgres.drop"
]
end
end