livebook/mix.exs

100 lines
2.8 KiB
Elixir
Raw Normal View History

defmodule Livebook.MixProject do
2021-01-08 03:55:45 +08:00
use Mix.Project
@version "0.2.3"
@description "Interactive and collaborative code notebooks - made with Phoenix LiveView"
2021-01-08 03:55:45 +08:00
def project do
[
app: :livebook,
version: @version,
elixir: "~> 1.12",
name: "Livebook",
description: @description,
2021-01-08 03:55:45 +08:00
elixirc_paths: elixirc_paths(Mix.env()),
compilers: [:phoenix] ++ Mix.compilers(),
start_permanent: Mix.env() == :prod,
aliases: aliases(),
deps: deps(),
escript: escript(),
releases: releases(),
package: package()
2021-01-08 03:55:45 +08:00
]
end
def application do
[
mod: {Livebook.Application, []},
extra_applications: [:logger, :runtime_tools, :os_mon, :inets, :ssl, :xmerl]
2021-01-08 03:55:45 +08:00
]
end
defp elixirc_paths(:test), do: ["lib", "test/support"]
defp elixirc_paths(_), do: ["lib"]
defp deps do
[
2021-08-11 18:07:03 +08:00
# We point phoenix, phoenix_live_view and phoenix_html to
2021-08-11 06:56:52 +08:00
# exact versions, because we install the corresponding npm
2021-08-11 18:07:03 +08:00
# packages directly from the local deps (using "file:"),
# they end up in the final assets bundle and the Elixir-side
# versions must match at runtime. Specifically, this is
# necessary because mix.lock is not loaded when installing
# the Escript and we don't want newer versions to be installed.
2021-08-11 06:56:52 +08:00
{:phoenix, "1.5.10"},
{:phoenix_live_view, "0.16.0"},
{:phoenix_live_dashboard, "~> 0.5.0"},
2021-01-08 04:16:54 +08:00
{:floki, ">= 0.27.0", only: :test},
2021-08-11 06:56:52 +08:00
{:phoenix_html, "3.0.0"},
2021-01-08 03:55:45 +08:00
{:phoenix_live_reload, "~> 1.2", only: :dev},
{:telemetry_metrics, "~> 0.4"},
{:telemetry_poller, "~> 0.4"},
{:jason, "~> 1.0"},
{:plug_cowboy, "~> 2.0"},
{:earmark_parser, "~> 1.4"},
{:bypass, "~> 2.1", only: :test},
{:castore, "~> 0.1.0"},
{:aws_signature, "~> 0.1.0"}
2021-01-08 03:55:45 +08:00
]
end
defp aliases do
[
2021-04-05 22:59:26 +08:00
"dev.setup": ["deps.get", "cmd npm install --prefix assets"],
"dev.build": ["cmd npm run deploy --prefix ./assets"],
"format.all": ["format", "cmd npm run format --prefix ./assets"],
# TODO: loadconfig no longer required on Elixir v1.13
# Currently this ensures we load configuration before
# compiling dependencies as part of `mix escript.install`.
# See https://github.com/elixir-lang/elixir/commit/a6eefb244b3a5892895a97b2dad4cce2b3c3c5ed
"escript.build": ["loadconfig", "escript.build"]
]
end
defp escript do
[
main_module: LivebookCLI,
app: nil
]
end
defp releases do
[
livebook: [
include_executables_for: [:unix],
include_erts: false
]
]
end
def package do
[
licenses: ["Apache-2.0"],
links: %{
"GitHub" => "https://github.com/livebook-dev/livebook"
2021-05-20 05:44:57 +08:00
},
files: ~w(lib priv config mix.exs README.md LICENSE CHANGELOG.md)
]
end
2021-01-08 03:55:45 +08:00
end