Packages
mob_dev
0.3.37
0.6.23
0.6.22
0.6.21
0.6.20
0.6.19
0.6.18
0.6.17
0.6.16
0.6.15
0.6.14
0.6.13
0.6.12
0.6.11
0.6.10
0.6.9
0.6.8
0.6.7
0.6.6
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.17
0.5.16
0.5.15
0.5.14
0.5.13
0.5.12
0.5.11
0.5.10
0.5.9
0.5.8
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.0
0.3.37
0.3.35
0.3.34
0.3.33
0.3.28
0.3.26
0.3.23
0.3.21
0.3.19
0.3.18
0.3.17
0.3.16
0.3.15
0.3.14
0.3.13
0.3.12
0.3.11
0.3.10
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.18
0.2.17
0.2.15
0.2.14
0.2.13
0.2.12
0.2.11
0.2.10
0.2.9
0.2.8
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.0
Development tooling for the Mob mobile framework
Current section
Files
Jump to
Current section
Files
mix.exs
defmodule MobDev.MixProject do
use Mix.Project
def project do
[
app: :mob_dev,
version: "0.3.37",
elixir: "~> 1.19",
description: "Development tooling for the Mob mobile framework",
source_url: "https://github.com/genericjam/mob_dev",
compilers: compilers(Mix.env()) ++ Mix.compilers(),
deps: deps(),
package: package(),
docs: docs(),
unused: [
ignore: [
# GenServer / behaviour callbacks (mix_unused can't see callbacks).
{:_, :init, 1},
{:_, :handle_call, 3},
{:_, :handle_cast, 2},
{:_, :handle_info, 2},
{:_, :handle_continue, 2},
{:_, :terminate, 2},
{:_, :code_change, 3},
{:_, :format_status, 1},
# Mix task entry points are dispatched by name.
{~r/^Mix\.Tasks\..+$/, :run, 1},
# Public API surface intended for downstream apps + IEx exploration —
# these are documented entry points, even when no internal caller
# references them.
{~r/^MobDev\.GooglePlay\..+$/, :_, :_},
{~r/^MobDev\.Server\..+$/, :_, :_},
# Test helpers exposed via @doc false for diagnosis.
{~r/^MobDev\..+/, :__test_only__, :_}
]
]
]
end
# `:unused` only runs in dev. Adding it to test or prod compile would
# spam the test output and slow CI for no benefit (test fixtures
# legitimately have unused public functions).
# mix_unused 0.4.1 uses :re.import/1 which was removed in OTP 28, so
# skip it there until a compatible release is available.
defp compilers(:dev) do
if String.to_integer(System.otp_release()) >= 28, do: [], else: [:unused]
end
defp compilers(_), do: []
def application do
[extra_applications: [:logger]]
end
defp deps do
[
{:eqrcode, "~> 0.2"},
{:jason, "~> 1.4"},
{:mix_audit, "~> 2.1", runtime: false},
{:avatarz, "~> 0.2", optional: true},
{:image, "~> 0.54", optional: true},
# Dev server
{:phoenix_live_view, "~> 1.0"},
{:bandit, "~> 1.0"},
{:phoenix_pubsub, "~> 2.0"},
{:plug_crypto, "~> 2.0"},
{:ex_doc, ">= 0.0.0", only: :dev, runtime: false},
{:credo, "~> 1.7", only: [:dev, :test], runtime: false},
{:jump_credo_checks, "~> 0.1.0", only: [:dev, :test], runtime: false},
{:erlfmt, "~> 1.8", only: :dev, runtime: false},
# Dev-only dead-code detector. Wires in via the `:unused` compiler
# tracer; ignore list maintained inline below since this codebase has
# legitimate dynamic dispatch (NIF on_load stubs, GenServer
# callbacks, behaviour implementations).
{:mix_unused, "~> 0.4", only: :dev, runtime: false}
]
end
defp docs do
[
main: "readme",
source_url: "https://github.com/genericjam/mob_dev",
source_url_pattern: "https://github.com/genericjam/mob_dev/blob/main/%{path}#L%{line}",
extras: [
"README.md": [title: "mob_dev"],
"build_release.md": [title: "Building OTP Release Tarballs"],
"guides/security_scan.md": [title: "Security scanning"],
"guides/slim_release.md": [title: "Slim Release (bundle size)"],
"guides/publishing_to_testflight.md": [title: "Publishing to TestFlight (iOS)"],
"guides/publishing_to_google_play.md": [title: "Publishing to Google Play (Android)"]
],
groups_for_extras: [
Guides: ~r/guides\/.*/
],
groups_for_modules: [
"Mix Tasks": ~r/Mix\.Tasks\./,
Server: ~r/MobDev\.Server/,
Internals: ~r/MobDev/
]
]
end
defp package do
[
licenses: ["MIT"],
links: %{"GitHub" => "https://github.com/genericjam/mob_dev"}
]
end
end