-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmix.exs
More file actions
126 lines (120 loc) · 4.17 KB
/
Copy pathmix.exs
File metadata and controls
126 lines (120 loc) · 4.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
defmodule Predicator.MixProject do
use Mix.Project
@app :predicator
@version "9.0.2"
@description "A secure, non-evaling condition (boolean predicate) engine for end users"
@source_url "https://github.com/riddler/predicator-ex"
@deps [
# Development and testing
{:castore, "~> 1.0", only: [:dev, :test]},
{:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false},
{:ex_doc, "~> 0.40", only: :dev, runtime: false},
{:credo, "~> 1.7", only: [:dev, :test], runtime: false},
{:excoveralls, "~> 0.18", only: :test},
{:ex_quality, "~> 0.14", only: :dev, runtime: false},
{:benchee, "~> 1.3", only: :dev, runtime: false}
]
def project do
[
app: @app,
version: @version,
elixir: "~> 1.18",
start_permanent: Mix.env() == :prod,
deps: @deps,
docs: docs(),
description: @description,
package: package(),
aliases: aliases(),
test_coverage: [tool: ExCoveralls],
preferred_cli_env: [
coveralls: :test,
"coveralls.detail": :test,
"coveralls.post": :test,
"coveralls.html": :test,
"coveralls.json": :test,
"test.coverage": :test,
"test.coverage.html": :test,
"test.coverage.detail": :test
],
dialyzer: [
plt_file: {:no_warn, "priv/plts/dialyzer.plt"},
plt_add_apps: [:mix, :ex_unit],
warnings: [:unknown]
]
]
end
def application do
[
extra_applications: [:logger]
]
end
defp package do
[
name: @app,
# Deliberately excludes docs/ - hexdocs is built from docs()'s extras:
# paths read off the publisher's disk, not from this tarball, so the
# markdown sources only bloat what mix deps.get downloads.
#
# The whole conformance apparatus is excluded on the same principle:
# nothing an application does at runtime touches it, and the audience
# that does - sibling implementers - works from a git checkout. That is
# three things, excluded three ways (px-35i.4):
#
# conformance/ the corpus, manifest, and schemas;
# simply absent from files:
# lib/mix/tasks/corpus.*.ex the dev tasks that regenerate it;
# lib/predicator* never matched them
# lib/predicator/conformance/ the generator modules the tasks call;
# matched by the glob, so removed by
# exclude_patterns below
#
# Nothing under lib/ outside those two directories references
# Predicator.Conformance, so dropping it cannot break a consumer's
# compile. A test guards that invariant.
files: ~w(lib/predicator* mix.exs README.md LICENSE CHANGELOG.md),
exclude_patterns: [~r{\Alib/predicator/conformance/}],
licenses: ["MIT"],
links: %{"GitHub" => @source_url},
maintainers: ["Predicator Team"]
]
end
defp docs do
[
name: "Predicator",
source_ref: "v#{@version}",
canonical: "https://hexdocs.pm/predicator",
source_url: @source_url,
main: "readme",
# These paths are read off disk at publish time and need no entry in
# package()'s files: list - the docs tarball hexdocs hosts is built by
# mix docs, separately from the package tarball mix deps.get fetches.
extras: [
"README.md",
"docs/reference/language.md",
"docs/isa.md",
"docs/guides/nested-data-access.md",
"docs/guides/custom-functions.md",
"docs/guides/location-expressions.md",
"docs/guides/embedding.md",
"docs/guides/porting.md",
"docs/architecture.md",
"docs/contributing.md",
"CHANGELOG.md",
"LICENSE"
],
groups_for_extras: [
Reference: ~r{docs/(reference/|isa\.md)},
Guides: ~r{docs/guides/},
Architecture: ~r{docs/architecture}
],
skip_undefined_reference_warnings_on: ["CHANGELOG.md"]
]
end
defp aliases do
[
"test.coverage": ["coveralls"],
"test.coverage.html": ["coveralls.html"],
"test.coverage.detail": ["coveralls.detail"]
]
end
end