Current section

Files

Jump to
phoenix mix.exs
Raw

mix.exs

defmodule Phoenix.Mixfile do
use Mix.Project
@version "1.3.0"
# TODO v1.4: Update to elixir 1.4 + new application inference
def project do
[
app: :phoenix,
version: @version,
elixir: "~> 1.3",
deps: deps(),
package: package(),
preferred_cli_env: [docs: :docs],
# Because we define protocols on the fly to test
# Phoenix.Param, we need to disable consolidation
# for the test environment for Elixir v1.2 onward.
consolidate_protocols: Mix.env != :test,
xref: [exclude: [Ecto.Type]],
name: "Phoenix",
docs: [
source_ref: "v#{@version}",
main: "overview",
logo: "logo.png",
extra_section: "GUIDES",
assets: "deps/phoenix_guides/images",
extras: extras()
],
aliases: aliases(),
source_url: "https://github.com/phoenixframework/phoenix",
homepage_url: "http://www.phoenixframework.org",
description: """
Productive. Reliable. Fast. A productive web framework that
does not compromise speed and maintainability.
"""
]
end
def application do
[
mod: {Phoenix, []},
applications: [:plug, :poison, :logger, :eex, :phoenix_pubsub, :crypto],
env: [
stacktrace_depth: nil,
template_engines: [],
format_encoders: [],
filter_parameters: ["password"],
serve_endpoints: false,
gzippable_exts: ~w(.js .css .txt .text .html .json .svg)
]
]
end
defp deps do
[
{:cowboy, "~> 1.0", optional: true},
{:plug, "~> 1.3.3 or ~> 1.4"},
{:phoenix_pubsub, "~> 1.0"},
{:poison, "~> 2.2 or ~> 3.0"},
{:gettext, "~> 0.8", only: :test},
# Docs dependencies
{:ex_doc, "~> 0.16", only: :docs},
{:inch_ex, "~> 0.2", only: :docs},
{:phoenix_guides, git: "https://github.com/phoenixframework/phoenix_guides.git", compile: false, app: false, only: :docs},
# Test dependencies
{:phoenix_html, "~> 2.10", only: :test},
{:websocket_client, git: "https://github.com/jeremyong/websocket_client.git", only: :test}
]
end
defp package do
[
maintainers: [
"Chris McCord", "José Valim", "Lance Halvorsen", "Gary Rennie",
"Jason Stiebs", "Eric Meadows-Jönsson", "Sonny Scroggin"
],
licenses: ["MIT"],
links: %{github: "https://github.com/phoenixframework/phoenix"},
files: ~w(assets lib priv) ++
~w(brunch-config.js CHANGELOG.md LICENSE.md mix.exs package.json README.md)
]
end
defp extras do
[
"introduction/overview.md": [group: "Introduction"],
"introduction/installation.md": [group: "Introduction"],
"introduction/learning.md": [group: "Introduction"],
"introduction/community.md": [group: "Introduction"],
"up_and_running.md": [group: "Guides"],
"adding_pages.md": [group: "Guides"],
"routing.md": [group: "Guides"],
"plug.md": [group: "Guides"],
"endpoint.md": [group: "Guides"],
"controllers.md": [group: "Guides"],
"views.md": [group: "Guides"],
"templates.md": [group: "Guides"],
"channels.md": [group: "Guides"],
"ecto.md": [group: "Guides"],
"contexts.md": [group: "Guides"],
"testing/testing.md": [group: "Testing"],
"testing/testing_models.md": [group: "Testing"],
"testing/testing_controllers.md": [group: "Testing"],
"testing/testing_channels.md": [group: "Testing"],
"deployment/deployment.md": [group: "Deployment"],
"deployment/heroku.md": [group: "Deployment"],
"bonus_guides/upgrading_phoenix.md": [group: "Bonus Guides"],
"bonus_guides/custom_primary_key.md": [group: "Bonus Guides"],
"bonus_guides/using_mysql.md": [group: "Bonus Guides"],
"bonus_guides/static_assets.md": [group: "Bonus Guides"],
"bonus_guides/mix_tasks.md": [group: "Bonus Guides"],
"bonus_guides/task_supervisor.md": [group: "Bonus Guides"],
"bonus_guides/file_uploads.md": [group: "Bonus Guides"],
"bonus_guides/sending_email_with_mailgun.md": [group: "Bonus Guides"],
"bonus_guides/sending_email_with_smtp.md": [group: "Bonus Guides"],
"bonus_guides/sessions.md": [group: "Bonus Guides"],
"bonus_guides/custom_errors.md": [group: "Bonus Guides"],
"bonus_guides/using_ssl.md": [group: "Bonus Guides"],
"bonus_guides/phoenix_behind_proxy.md": [group: "Bonus Guides"],
"bonus_guides/config.md": [group: "Bonus Guides"],
"bonus_guides/learning_elixir.md": [group: "Bonus Guides"],
"bonus_guides/seeding_data.md": [group: "Bonus Guides"]
]
|> Enum.map(fn {file, opts} -> {:"deps/phoenix_guides/docs/#{file}", opts} end)
end
defp aliases do
[
"docs": ["docs", &generate_js_docs/1]
]
end
def generate_js_docs(_) do
Mix.Task.run "app.start"
System.cmd("npm", ["run", "docs"])
end
end