Packages

Ready-made Phoenix components, built with Pyro.

Current section

Files

Jump to
Raw

mix.exs

defmodule PyroComponents.MixProject do
@moduledoc false
use Mix.Project
@source_url "https://github.com/frankdugan3/pyro_components"
@version "0.1.0"
@description """
Ready-made Phoenix components, built with Pyro.
"""
def project do
[
app: :pyro_components,
version: @version,
description: @description,
elixir: "~> 1.16",
start_permanent: Mix.env() == :prod,
package: package(),
deps: deps(),
docs: docs(),
test_paths: ["lib"],
name: "PyroComponents",
source_url: @source_url,
elixirc_paths: ["lib"],
aliases: aliases(),
compilers: [:yecc] ++ Mix.compilers(),
dialyzer: [plt_add_apps: [:ecto, :mix]]
]
end
defp extras do
"documentation/**/*.md"
|> Path.wildcard()
|> Enum.map(fn path ->
title =
path
|> Path.basename(".md")
|> String.split(~r/[-_]/)
|> Enum.map_join(" ", &String.capitalize/1)
{String.to_atom(path),
[
title: title,
default: title == "Get Started"
]}
end)
end
defp groups_for_extras do
[
Tutorials: [
"documentation/tutorials/get-started.md",
~r'documentation/tutorials'
]
]
end
defp docs do
[
main: "about",
source_ref: "v#{@version}",
output: "doc",
source_url: @source_url,
extra_section: "GUIDES",
extras: extras(),
groups_for_extras: groups_for_extras(),
groups_for_modules: groups_for_modules(),
groups_for_functions: [
Components: &(&1[:type] == :component),
Macros: &(&1[:type] == :macro)
]
]
end
defp package do
[
name: :pyro_components,
maintainers: ["Frank Dugan III"],
licenses: ["MIT"],
links: %{GitHub: @source_url},
files:
~w(assets lib documentation) ++
~w(README* CHANGELOG* LICENSE* mix.exs package.json .formatter.exs)
]
end
defp groups_for_modules do
[
Core: [
PyroComponents
],
Overrides: [
~r/\.Overrides\./
],
Components: [~r/\.Components\./]
]
end
# Run "mix help compile.app" to learn about applications.
def application do
[
extra_applications: [:logger]
]
end
# Run "mix help deps" to learn about dependencies.
defp deps do
[
# Code quality tooling
{:credo, ">= 0.0.0", only: :dev, runtime: false},
{:dialyxir, ">= 0.0.0", only: :dev, runtime: false},
{:doctor, ">= 0.0.0", only: :dev, runtime: false},
{:ex_check, "~> 0.15", [env: :prod, hex: "ex_check", only: :dev, runtime: false, repo: "hexpm"]},
{:faker, "~> 0.17", only: [:test, :dev]},
{:floki, ">= 0.30.0", only: :test},
{:mix_audit, ">= 0.0.0", only: :dev, runtime: false},
{:styler, "~> 0.11", only: [:dev, :test], runtime: false},
# Build tooling
{:ex_doc, ">= 0.0.0", only: :dev, runtime: false},
{:git_ops, "~> 2.6", only: :dev},
# Core dependencies
{:ecto, "~> 3.11"},
{:pyro, "~> 0.3"},
# {:pyro, github: "frankdugan3/pyro", branch: "main"},
{:jason, "~> 1.4"},
# These dependencies add optional features if installed
{:makeup, "~> 1.1", optional: true},
{:tzdata, "~> 1.1.0", optional: true},
{:tz_extra, "~> 0.26", optional: true}
]
end
defp aliases do
[
setup: [
"deps.get",
"compile",
"docs"
],
# until we hit 1.0, we will ensure no major release!
release: [
"git_ops.release --no-major"
],
publish: [
"hex.publish"
]
]
end
end