Packages

spark

2.7.2
2.7.2 2.7.1 2.7.0 2.6.1 2.6.0 2.5.0 2.4.1 2.4.0 2.3.14 2.3.13 2.3.12 2.3.11 2.3.10 2.3.9 2.3.8 2.3.7 2.3.6 2.3.5 2.3.4 2.3.3 2.3.2 2.3.1 2.3.0 2.2.69 2.2.68 2.2.67 2.2.66 2.2.65 2.2.64 2.2.63 2.2.62 2.2.61 2.2.60 2.2.59 2.2.58 2.2.57 2.2.56 2.2.55 2.2.54 2.2.53 2.2.52 2.2.51 2.2.50 2.2.49 2.2.48 2.2.47 2.2.46 2.2.45 2.2.44 2.2.43 2.2.42 2.2.41 2.2.40 2.2.39 2.2.38 2.2.37 2.2.36 2.2.35 2.2.34 2.2.33 2.2.32 2.2.31 2.2.30 2.2.29 2.2.28 2.2.27 2.2.26 2.2.25 2.2.24 2.2.23 2.2.22 2.2.21 2.2.20 2.2.19 2.2.18 2.2.17 2.2.16 2.2.15 2.2.14 2.2.13 2.2.12 2.2.11 2.2.10 2.2.9 2.2.8 2.2.7 2.2.6 2.2.5 2.2.4 2.2.3 2.2.2 2.2.1 2.2.0 2.1.24 2.1.23 2.1.22 2.1.21 2.1.20 2.1.19 2.1.18 2.1.17 2.1.16 2.1.15 2.1.14 2.1.13 2.1.12 2.1.11 2.1.10 2.1.9 2.1.8 2.1.7 2.1.6 2.1.5 2.1.4 2.1.3 2.1.2 2.1.1 2.1.0 2.0.1 2.0.0 1.1.55 1.1.54 1.1.53 1.1.52 1.1.51 1.1.50 1.1.49 1.1.48 1.1.47 1.1.46 1.1.45 1.1.44 1.1.43 1.1.42 1.1.41 1.1.40 1.1.39 1.1.38 1.1.37 1.1.36 1.1.35 1.1.34 1.1.32 1.1.31 1.1.30 1.1.29 1.1.28 1.1.27 1.1.26 1.1.25 1.1.24 1.1.22 1.1.21 1.1.20 1.1.19 1.1.18 1.1.17 1.1.16 1.1.15 1.1.14 retired 1.1.13 1.1.12 1.1.11 1.1.10 1.1.9 1.1.8 1.1.7 1.1.6 1.1.5 1.1.4 1.1.3 1.1.2 1.1.1 1.1.0 1.0.9 1.0.8 1.0.7 1.0.6 1.0.5 1.0.4 1.0.3 1.0.2 1.0.1 1.0.0 0.4.12 0.4.11 0.4.10 0.4.9 0.4.8 0.4.7 0.4.6 0.4.5 0.4.4 0.4.3 0.4.2 0.4.1 0.3.12 0.3.11 0.3.10 0.3.9 0.3.8 0.3.7 0.3.6 0.3.5 0.3.4 0.3.3 0.3.2 0.3.1 0.3.0 0.2.18 0.2.17 0.2.16 0.2.15 0.2.14 0.2.13 0.2.12 0.2.11 0.2.10 0.2.9 0.2.8 0.2.7 0.2.6 0.2.5 0.2.4 0.2.3 0.2.2 0.2.1 0.2.0 0.1.29 0.1.28 0.1.27 0.1.26 0.1.25 0.1.24 0.1.23 0.1.22 0.1.21 0.1.20 0.1.19 0.1.18 0.1.17 0.1.16 0.1.15 0.1.14 0.1.13 0.1.12 0.1.11 0.1.10 0.1.9 0.1.8 0.1.7 0.1.6 0.1.5 0.1.4 0.1.3 0.1.2 0.1.1 0.1.0

Generic tooling for building DSLs

Current section

Files

Jump to
spark mix.exs
Raw

mix.exs

# SPDX-FileCopyrightText: 2022 spark contributors <https://github.com/ash-project/spark/graphs/contributors>
#
# SPDX-License-Identifier: MIT
defmodule Spark.MixProject do
use Mix.Project
@version "2.7.2"
@description "Generic tooling for building DSLs"
def project do
[
app: :spark,
version: @version,
elixir: "~> 1.15",
elixirc_options: [
ignore_module_conflict: Mix.env() == :test,
parser_options: [
token_metadata: true,
parser_columns: true
]
],
test_elixirc_options: [debug_info: true],
start_permanent: Mix.env() == :prod,
deps: deps(),
package: package(),
docs: docs(),
description: @description,
elixirc_paths: elixirc_paths(Mix.env()),
aliases: aliases(),
source_url: "https://github.com/ash-project/spark",
homepage_url: "https://github.com/ash-project/spark",
dialyzer: [plt_add_apps: [:mix]]
]
end
defp elixirc_paths(:test) do
elixirc_paths(:prod) ++ ["test/support"]
end
defp elixirc_paths(_), do: ["lib"]
# Run "mix help compile.app" to learn about applications.
def application do
[
extra_applications: [:logger]
]
end
defp docs do
# The main page in the docs
[
main: "Spark",
source_ref: "v#{@version}",
extra_section: "GUIDES",
before_closing_head_tag: fn type ->
if type == :html do
"""
<script>
if (location.hostname === "hexdocs.pm") {
var script = document.createElement("script");
script.src = "https://plausible.io/js/script.js";
script.setAttribute("defer", "defer")
script.setAttribute("data-domain", "ashhexdocs")
document.head.appendChild(script);
}
</script>
"""
end
end,
logo: "logos/logo.svg",
assets: %{"logos" => "logos"},
spark: [
mix_tasks: [
Formatting: [
Mix.Tasks.Spark.Formatter
]
]
],
extras: [
"documentation/tutorials/get-started-with-spark.md",
"documentation/how_to/upgrade-to-2.0.md",
"documentation/how_to/writing-extensions.md",
"documentation/how_to/split-up-large-dsls.md",
"documentation/how_to/use-source-annotations.md",
"documentation/how_to/setup-autocomplete.md",
"documentation/how_to/build-extensions-with-builders.md",
"documentation/how_to/test-spark-verifiers.md"
],
groups_for_extras: [
Tutorials: ~r/documentation\/tutorials/,
"How To": ~r/documentation\/how_to/
],
groups_for_modules: [
"DSLs and Extensions": ~r/^Spark.Dsl/,
Options: ~r/^Spark.Options/,
Errors: [Spark.Error.DslError],
Internals: ~r/.*/
]
]
end
defp package do
[
maintainers: [
"Zach Daniel <zach@zachdaniel.dev>"
],
licenses: ["MIT"],
files: ~w(lib .formatter.exs mix.exs README* LICENSE*
CHANGELOG* documentation usage-rules.md),
links: %{
"GitHub" => "https://github.com/ash-project/spark",
"Changelog" => "https://github.com/ash-project/spark/blob/main/CHANGELOG.md",
"Discord" => "https://discord.gg/HTHRaaVPUc",
"Website" => "https://ash-hq.org",
"Forum" => "https://elixirforum.com/c/elixir-framework-forums/ash-framework-forum",
"REUSE Compliance" => "https://api.reuse.software/info/github.com/ash-project/spark"
}
]
end
# Run "mix help deps" to learn about dependencies.
defp deps do
[
{:sourceror, "~> 1.2", optional: true},
{:jason, "~> 1.4", optional: true},
{:igniter, "~> 0.2 and >= 0.3.64", optional: true},
# Dev/Test dependencies
{:benchee, "~> 1.3", only: [:dev, :test]},
{:eflame, "~> 1.0", only: [:dev, :test], runtime: false},
{:ex_doc, "~> 0.32", only: [:dev, :test], runtime: false},
{:ex_check, "~> 0.12", only: [:dev, :test]},
{:credo, ">= 0.0.0", only: [:dev, :test], runtime: false},
{:dialyxir, ">= 0.0.0", only: [:dev, :test], runtime: false},
{:sobelow, ">= 0.0.0", only: [:dev, :test], runtime: false},
{:git_ops, "~> 2.5", only: [:dev, :test]},
{:mix_test_watch, "~> 1.0", only: [:dev, :test], runtime: false},
{:elixir_sense, github: "elixir-lsp/elixir_sense", only: [:dev, :test, :docs]},
{:mix_audit, ">= 0.0.0", only: [:dev, :test], runtime: false}
]
end
defp aliases do
[
sobelow: "sobelow --skip",
credo: "credo --strict"
]
end
end