Packages

Elixir/Phoenix admin framework for resources, dashboards, datasets, actions, authorization, and service-owned remote admin surfaces.

Current section

Files

Jump to
incant mix.exs
Raw

mix.exs

defmodule Incant.MixProject do
use Mix.Project
@version "0.1.1"
@source_url "https://github.com/elixir-vibe/incant"
def project do
[
app: :incant,
version: @version,
elixir: "~> 1.19",
start_permanent: Mix.env() == :prod,
name: "Incant",
description: description(),
source_url: @source_url,
homepage_url: @source_url,
package: package(),
docs: docs(),
dialyzer: [plt_add_apps: [:mix, :release_kit]],
releases: releases(),
deps: deps(),
aliases: aliases(),
listeners: [Phoenix.CodeReloader]
]
end
def application do
[
mod: {Incant.Application, []},
extra_applications: [:logger]
]
end
def cli do
[
preferred_envs: [ci: :test]
]
end
defp description do
"Elixir/Phoenix admin framework for resources, dashboards, datasets, actions, " <>
"authorization, and service-owned remote admin surfaces."
end
defp package do
[
licenses: ["MIT"],
links: %{"GitHub" => @source_url},
files:
~w(assets config guides lib .formatter.exs mix.exs package.json npm.lock README.md CHANGELOG.md LICENSE)
]
end
defp docs do
[
main: "readme",
source_ref: "v#{@version}",
source_url: @source_url,
extras: [
"README.md",
"CHANGELOG.md",
"guides/introduction/getting-started.md",
"guides/introduction/library-mode.md",
"guides/introduction/standalone-mode.md",
"guides/introduction/project-structure.md",
"guides/features/resources.md",
"guides/features/dashboards.md",
"guides/features/datasets.md",
"guides/features/authorization.md",
"guides/features/themes-and-liveview.md",
"guides/features/distributed-services.md",
"guides/deployment/standalone-deployment.md",
"guides/reference/configuration.cheatmd",
"guides/reference/admin-http-api.cheatmd",
"guides/internals/architecture.md"
],
groups_for_extras: [
Introduction: ~r/guides\/introduction\//,
Features: ~r/guides\/features\//,
Deployment: ~r/guides\/deployment\//,
Reference: ~r/guides\/reference\//,
Internals: ~r/guides\/internals\//
],
groups_for_modules: [
Core: [
Incant,
Incant.Admin,
Incant.Resource,
Incant.Dashboard,
Incant.Dataset,
Incant.Surface,
Incant.Session
],
"Data and Forms": [
Incant.DataSource,
Incant.Ecto,
Incant.Query,
Incant.Result,
Incant.Form,
Incant.Forms
],
"Actions and Policy": [
Incant.ActionResult,
Incant.Policy,
Incant.Filter
],
"Distributed Services": [
Incant.Service,
Incant.Service.Client,
Incant.Service.Registry,
Incant.Service.RegistryServer,
Incant.Service.Session
],
UI: [
Incant.UI,
Incant.UI.Adapter,
Incant.UI.Document,
Incant.UI.Adapters.LiveView,
Incant.Theme,
Incant.Design
],
Phoenix: [
Incant.Router,
Incant.Live.Admin,
Incant.Web.Endpoint
]
]
]
end
defp releases do
[
incant: [
applications: [incant: :permanent]
]
]
end
defp deps do
[
{:ex_slop, "~> 0.4", only: [:dev, :test], runtime: false},
{:reach, "~> 2.0", only: [:dev, :test], runtime: false},
{:ex_dna, "~> 1.0", only: [:dev, :test], runtime: false},
{:dialyxir, "~> 1.0", only: [:dev, :test], runtime: false},
{:credo, "~> 1.0", only: [:dev, :test], runtime: false},
{:ex_doc, "~> 0.38", only: :dev, runtime: false},
{:dsl, "~> 0.1.2"},
{:vibe_kit, "~> 0.1"},
{:igniter, "~> 0.6", runtime: false},
{:release_kit, "~> 0.3", runtime: false},
{:json_codec, "~> 0.2.3"},
{:volt, "~> 0.17.2"},
{:safe_rpc, "~> 0.1.12"},
{:ecto, "~> 3.13"},
{:phoenix_live_view, "~> 1.1"},
{:plug_cowboy, "~> 2.7"}
]
end
defp aliases() do
[
"assets.build": ["volt.build --tailwind"],
"assets.deploy": ["volt.build --tailwind", "phx.digest"],
server: ["phx.server"],
ci: [
"compile --warnings-as-errors",
"format --check-formatted",
"npm.ci",
"volt.js.check --type-aware --type-check",
"test",
"credo --strict",
"dialyzer",
"ex_dna --max-clones 0",
"reach.check --arch --smells --strict"
]
]
end
end