# SPDX-FileCopyrightText: 2025 usage_rules contributors # # SPDX-License-Identifier: MIT defmodule UsageRules.MixProject do use Mix.Project @version "1.2.6" @description """ A config-driven dev tool for Elixir projects to manage AGENTS.md files and agent skills from dependencies """ @source_url "https://github.com/ash-project/usage_rules" def project do [ app: :usage_rules, version: @version, elixir: "~> 1.18", package: package(), aliases: aliases(), dialyzer: [plt_add_apps: [:mix, :iex]], docs: &docs/0, description: @description, source_url: @source_url, homepage_url: @source_url, start_permanent: Mix.env() == :prod, consolidate_protocols: Mix.env() != :dev, deps: deps() ] end defp package do [ maintainers: [ "Zach Daniel " ], licenses: ["MIT"], files: ~w(lib .formatter.exs mix.exs README* LICENSE* CHANGELOG* usage-rules usage-rules.md), links: %{ "GitHub" => @source_url, "Changelog" => "#{@source_url}/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" } ] end defp docs do [ main: "readme", source_ref: "v#{@version}", extra_section: "GUIDES", extras: [ {"README.md", title: "Home"} ], before_closing_head_tag: fn type -> if type == :html do """ """ end end ] end defp aliases do [ sobelow: "sobelow --skip", credo: "credo --strict" ] end def application do [ extra_applications: [:logger] ] end defp deps do [ {:req, "~> 0.5"}, {:jason, "~> 1.0"}, # not an optional dependency, because *this package* is itself a dev dependency {:igniter, "~> 0.6 and >= 0.6.6"}, # dev dependencies {:ex_doc, "~> 0.37-rc", 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}, {:mix_audit, ">= 0.0.0", only: [:dev, :test], runtime: false}, {:git_ops, "~> 2.0", only: [:dev]} ] end end