1
defmodule Nossa.MixProject do
2
use Mix.Project
3
4
def project do
5
[
6
app: :nossa,
7
version: "0.1.0",
8
elixir: "~> 1.14",
9
elixirc_paths: elixirc_paths(Mix.env()),
10
compilers: [:phoenix_live_view] ++ Mix.compilers(),
11
listeners: [Phoenix.CodeReloader],
12
start_permanent: Mix.env() == :prod,
13
aliases: aliases(),
14
deps: deps(),
15
test_coverage: [
16
ignore_modules: [
17
# Ignore generated/template embed classes, app/rel stuff.
18
~r/HTML$/,
19
Nossa.Application,
20
Nossa.Release,
21
Nossa.Repo,
22
NossaWeb.Layouts,
23
# We pull out changes into NossaComponents.
24
NossaWeb.CoreComponents,
25
# :erlang.nif_error stubs.
26
Git2
27
]
28
],
29
# docs
30
name: "nóssa",
31
source_url: "https://nossa.ee/~talya/nossa",
32
homepage_url: "https://nossa.ee",
33
docs: &docs/0
34
]
35
end
36
37
def application do
38
[
39
mod: {Nossa.Application, []},
40
extra_applications: [:logger, :runtime_tools]
41
]
42
end
43
44
defp elixirc_paths(:test), do: ["lib", "test/support"]
45
defp elixirc_paths(_), do: ["lib"]
46
47
defp deps do
48
[
49
# Baseline.
50
{:phoenix, "~> 1.8.1", override: true},
51
{:phoenix_ecto, "~> 4.6"},
52
{:ecto_sql, "~> 3.10"},
53
{:bcrypt_elixir, "~> 3.2"},
54
{:postgrex, ">= 0.0.0"},
55
{:phoenix_html, "~> 4.2"},
56
{:phoenix_live_reload, "~> 1.2", only: :dev},
57
{:phoenix_live_view, "~> 1.1"},
58
{:lazy_html, ">= 0.0.0", only: :test},
59
{:phoenix_live_dashboard, "~> 0.8.6"},
60
{:esbuild, "~> 0.8", runtime: Mix.env() == :dev},
61
{:swoosh, "~> 1.18"},
62
{:req, "~> 0.5"},
63
{:telemetry_metrics, "~> 1.0"},
64
{:telemetry_poller, "~> 1.0"},
65
{:gettext, "~> 0.26"},
66
{:jason, "~> 1.4"},
67
{:dns_cluster, "~> 0.1.1"},
68
{:bandit, "~> 1.6"},
69
{:gen_smtp, "~> 1.2"},
70
{:remote_ip, "~> 1.2"},
71
{:process_tree, "~> 0.2.1"},
72
{:ex_doc, "~> 0.34", only: :dev, runtime: false},
73
{:deps_nix, "~> 2.4"},
74
{:mime, "~> 2.0"},
75
# Logging/observability.
76
{:logfmt_ex, "~> 0.4.2"},
77
{:peep, "~> 3.5.0"},
78
# Rust/MDEx.
79
{:rustler, "~> 0.36"},
80
{:rustler_precompiled, "~> 0.8"},
81
{:mdex, "~> 0.9"},
82
# Syntax highlighting.
83
{:autumn, "~> 0.5"},
84
# Background jobs.
85
{:oban, "~> 2.18"}
86
]
87
end
88
89
defp aliases do
90
[
91
"deps.get": ["deps.get", "deps.nix --output nix/deps.nix"],
92
"deps.update": ["deps.update", "deps.nix --output nix/deps.nix"],
93
setup: ["deps.get", "ecto.setup", "assets.build"],
94
"ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"],
95
"ecto.reset": ["ecto.drop", "ecto.setup"],
96
test: ["ecto.create --quiet", "ecto.migrate --quiet", "test"],
97
"assets.build": ["esbuild nossa"],
98
"assets.deploy": [
99
"esbuild nossa --minify",
100
"phx.digest"
101
]
102
]
103
end
104
105
defp docs do
106
[
107
main: "nóssa",
108
extras: ["README.md", "TAREAS.md"]
109
]
110
end
111
end
112