2021-03-04 05:56:28 +08:00
|
|
|
defmodule Livebook.MixProject do
|
2021-01-08 03:55:45 +08:00
|
|
|
use Mix.Project
|
|
|
|
|
2021-06-18 01:33:33 +08:00
|
|
|
@version "0.2.0"
|
2021-05-20 05:30:53 +08:00
|
|
|
@description "Interactive and collaborative code notebooks - made with Phoenix LiveView"
|
|
|
|
|
2021-01-08 03:55:45 +08:00
|
|
|
def project do
|
|
|
|
[
|
2021-03-04 05:56:28 +08:00
|
|
|
app: :livebook,
|
2021-05-20 05:30:53 +08:00
|
|
|
version: @version,
|
2021-05-19 22:46:33 +08:00
|
|
|
elixir: "~> 1.12",
|
2021-05-20 05:30:53 +08:00
|
|
|
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(),
|
2021-03-17 08:53:44 +08:00
|
|
|
deps: deps(),
|
2021-04-27 22:34:02 +08:00
|
|
|
escript: escript(),
|
2021-05-20 05:30:53 +08:00
|
|
|
releases: releases(),
|
|
|
|
package: package()
|
2021-01-08 03:55:45 +08:00
|
|
|
]
|
|
|
|
end
|
|
|
|
|
|
|
|
def application do
|
|
|
|
[
|
2021-03-04 05:56:28 +08:00
|
|
|
mod: {Livebook.Application, []},
|
2021-04-23 23:40:13 +08:00
|
|
|
extra_applications: [:logger, :runtime_tools, :os_mon, :inets, :ssl]
|
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
|
|
|
|
[
|
|
|
|
{:phoenix, "~> 1.5.7"},
|
2021-06-03 19:53:03 +08:00
|
|
|
# We point LV to an exact version, because we install
|
|
|
|
# the npm package from there to bundle all the assets,
|
|
|
|
# so the Elixir-side version must match
|
|
|
|
{:phoenix_live_view, "0.15.7"},
|
2021-04-15 02:10:25 +08:00
|
|
|
{:phoenix_live_dashboard, "~> 0.4"},
|
2021-01-08 04:16:54 +08:00
|
|
|
{:floki, ">= 0.27.0", only: :test},
|
2021-01-08 03:55:45 +08:00
|
|
|
{:phoenix_html, "~> 2.11"},
|
|
|
|
{:phoenix_live_reload, "~> 1.2", only: :dev},
|
|
|
|
{:telemetry_metrics, "~> 0.4"},
|
|
|
|
{:telemetry_poller, "~> 0.4"},
|
|
|
|
{:jason, "~> 1.0"},
|
2021-02-17 01:39:52 +08:00
|
|
|
{:plug_cowboy, "~> 2.0"},
|
2021-04-23 23:40:13 +08:00
|
|
|
{:earmark_parser, "~> 1.4"},
|
|
|
|
{:bypass, "~> 2.1", only: :test},
|
|
|
|
{:castore, "~> 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"],
|
2021-05-20 05:30:53 +08:00
|
|
|
"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"]
|
2021-03-17 08:53:44 +08:00
|
|
|
]
|
|
|
|
end
|
|
|
|
|
2021-05-20 05:30:53 +08:00
|
|
|
defp escript do
|
2021-03-17 08:53:44 +08:00
|
|
|
[
|
|
|
|
main_module: LivebookCLI,
|
|
|
|
app: nil
|
|
|
|
]
|
|
|
|
end
|
2021-04-27 22:34:02 +08:00
|
|
|
|
2021-05-20 05:30:53 +08:00
|
|
|
defp releases do
|
2021-04-27 22:34:02 +08:00
|
|
|
[
|
|
|
|
livebook: [
|
|
|
|
include_executables_for: [:unix],
|
|
|
|
include_erts: false
|
|
|
|
]
|
|
|
|
]
|
|
|
|
end
|
2021-05-20 05:30:53 +08:00
|
|
|
|
|
|
|
def package do
|
|
|
|
[
|
|
|
|
licenses: ["Apache-2.0"],
|
|
|
|
links: %{
|
|
|
|
"GitHub" => "https://github.com/elixir-nx/livebook"
|
2021-05-20 05:44:57 +08:00
|
|
|
},
|
2021-05-20 05:50:18 +08:00
|
|
|
files: ~w(lib priv config mix.exs README.md LICENSE CHANGELOG.md)
|
2021-05-20 05:30:53 +08:00
|
|
|
]
|
|
|
|
end
|
2021-01-08 03:55:45 +08:00
|
|
|
end
|