An IndieWeb engine for a self-hostable website. https://koype.net/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

mix.exs 5.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. # Koype: a IndieWeb-focused, single-tenant website engine for people.
  2. #
  3. # Copyright © 2019 Jacky Alciné <jacky.is@black.af>
  4. #
  5. # This file belongs to the Koype project.
  6. #
  7. # This program is free software: you can redistribute it and/or modify
  8. # it under the terms of the GNU Affero General Public License as published by
  9. # the Free Software Foundation, either version 3 of the License, or
  10. # (at your option) any later version.
  11. #
  12. # This program is distributed in the hope that it will be useful,
  13. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. # GNU Affero General Public License for more details.
  16. #
  17. # You should have received a copy of the GNU Affero General Public License
  18. # along with this program. If not, see <https://www.gnu.org/licenses/>.
  19. defmodule Koype.Mixfile do
  20. use Mix.Project
  21. @version "0.1.2"
  22. def project do
  23. [
  24. app: :koype,
  25. name: "Koype",
  26. version: @version,
  27. elixir: "~> 1.7",
  28. elixirc_paths: elixirc_paths(Mix.env()),
  29. compilers: [:phoenix, :gettext, :phoenix_swagger] ++ Mix.compilers(),
  30. start_permanent: Mix.env() == :prod,
  31. aliases: aliases(),
  32. deps: deps(),
  33. test_coverage: [tool: ExCoveralls],
  34. dialyzer: [
  35. plt_add_deps: :transitive,
  36. ignore_warnings: "dialyzer.ignore-warnings",
  37. flags: ["-Wunmatched_returns", :error_handling, :underspecs, :race_conditions]
  38. ],
  39. preferred_cli_env: [
  40. ci: :test,
  41. coveralls: :test,
  42. "coveralls.detail": :test,
  43. "coveralls.post": :test,
  44. "coveralls.html": :test,
  45. vcr: :test,
  46. "vcr.delete": :test,
  47. "vcr.check": :test,
  48. "vcr.show": :test,
  49. doc: :dev
  50. ],
  51. source_url: "https://git.jacky.wtf/indieweb/koype",
  52. source_url_pattern: "https://git.jacky.wtf/indieweb/koype/blob/develop/%{path}#L%{line}",
  53. homepage_url: "https://koype.net/",
  54. docs: [
  55. extras: Path.wildcard("docs/pages/*.md"),
  56. main: "Koype",
  57. output: "priv/static/doc",
  58. groups_for_extras: []
  59. ]
  60. ]
  61. end
  62. def application do
  63. [
  64. mod: {Koype.Application, []},
  65. extra_applications: [:logger, :runtime_tools, :cachex, :que, :indieweb, :arc, :httpotion]
  66. ]
  67. end
  68. defp elixirc_paths(:test), do: ["lib", "rel", "web", "test/support"]
  69. defp elixirc_paths(_), do: ["lib", "rel", "web"]
  70. defp deps do
  71. [
  72. {:atomex, "~> 0.3.0"},
  73. {:apex, "~> 1.2.1", only: [:dev, :test]},
  74. {:arc, "~> 0.11.0"},
  75. {:arc_ecto, "~> 0.11.1"},
  76. {:bureaucrat, "~> 0.2.0", only: :test},
  77. {:cabbage, "~> 0.3.0", only: :test},
  78. {:cachex, "~> 3.1"},
  79. {:calendar, "~> 0.17.4"},
  80. {:confex, "~> 3.4.0", override: true},
  81. {:corsica, "~> 1.1.2"},
  82. {:credo, "~> 0.10.0", only: [:dev, :test]},
  83. {:dialyxir, "~> 1.0.0-rc.4", only: :dev, runtime: false},
  84. {:distillery, "~> 2.0"},
  85. {:double, "~> 0.6.5", only: :test},
  86. {:earmark, "~> 1.3.0"},
  87. {:ecto, "~> 2.2.0"},
  88. {:ex_aws, "~> 2.1"},
  89. {:ex_aws_s3, "~> 2.0"},
  90. {:ex_cldr, "~> 2.0"},
  91. {:ex_cldr_numbers, "~> 2.1"},
  92. {:ex_cldr_territories, "~> 2.0"},
  93. {:ex_doc, ">= 0.19.0"},
  94. {:ex_image_info, "~> 0.2.4"},
  95. {:ex_json_schema, "~> 0.5.8"},
  96. {:ex_machina, "~> 2.2", only: :test},
  97. {:ex_url, "~> 1.0.0"},
  98. {:excoveralls, "~> 0.8", only: [:dev, :test]},
  99. {:explode, "~> 1.1.0"},
  100. {:exvcr, "~> 0.10", only: :test},
  101. {:faker, "~> 0.12.0", only: [:test, :dev]},
  102. {:floki, "~> 0.20.0", override: true},
  103. {:furlex, "~> 0.3.0"},
  104. {:gettext, "~> 0.11"},
  105. {:guardian, "~> 1.0"},
  106. {:guardian_db, "~> 1.0"},
  107. {:hackney, "~> 1.9"},
  108. {:hound, "~> 1.0", only: :test},
  109. {:html_sanitize_ex, "~> 1.3.0-rc3"},
  110. {:httpoison, "~> 1.3.0", override: true},
  111. {:inch_ex, git: "https://github.com/rrrene/inch_ex"},
  112. {:indieweb, git: "https://git.jacky.wtf/indieweb/elixir", branch: "develop"},
  113. {:inflex, "~> 1.10.0", override: true},
  114. {:jason, "~> 1.1.0"},
  115. {:liquid, git: "https://github.com/bettyblocks/liquid-elixir", commit: " 1a29cbc"},
  116. {:logster, "~> 0.10.0"},
  117. {:microformats2, "~> 0.2.1"},
  118. {:mime, "~> 1.3.0"},
  119. {:mock, "~> 0.3.0", only: :test},
  120. {:page_object, "~> 0.4.0", only: :test},
  121. {:phoenix, "~> 1.4.2"},
  122. {:phoenix_ecto, "~> 3.2"},
  123. {:phoenix_html, "~> 2.10"},
  124. {:phoenix_html_simplified_helpers, "~> 2.0"},
  125. {:phoenix_live_reload, "~> 1.0", only: :dev},
  126. {:phoenix_pubsub, "~> 1.1"},
  127. {:phoenix_swagger, "~> 0.8.1"},
  128. {:plug_cowboy, "~> 2.0"},
  129. {:que, "~> 0.8.0"},
  130. {:scrivener_list, "~> 1.0"},
  131. {:scrivener_ecto, "~> 1.0"},
  132. {:scrivener_headers, "~> 3.1"},
  133. {:stream_gzip, "~> 0.3.1"},
  134. {:sobelow, "~> 0.7.1", only: [:dev, :test], runtime: false},
  135. {:social_parser, "~> 2.0.0"},
  136. {:sqlite_ecto2, "~> 2.2.5"},
  137. {:sweet_xml, "~> 0.6.6"},
  138. {:totpex, "~> 0.1.2"},
  139. {:uuid, "~> 1.1"},
  140. {:xml_builder, "~> 2.0.0", override: true}
  141. ]
  142. end
  143. defp aliases do
  144. [
  145. "ecto.setup": ["ecto.create", "ecto.migrate"],
  146. "ecto.reset": ["ecto.drop", "ecto.setup"],
  147. "ecto.seed": ["run priv/repo/seeds.ex"],
  148. "test.features": ["ecto.create --quiet", "ecto.migrate", "test --only integration:true"],
  149. lint: ["format --check-formatted"],
  150. analyze: ["credo", "sobelow", "dialyzer --plt --format dialyxir"],
  151. start: ["phx.server"],
  152. ci: ["ecto.setup", "test --cover --exclude acceptance:true"],
  153. routes: ["phx.routes Koype.Web.Router"]
  154. ]
  155. end
  156. end