Packages
credo
1.7.13
1.7.19
1.7.18
1.7.17
1.7.16
1.7.15
1.7.14
1.7.13
1.7.12
1.7.11
1.7.10
1.7.9
1.7.8
1.7.7
1.7.7-rc.0
1.7.6
1.7.5
1.7.4
1.7.3
1.7.2
1.7.2-rc.4
1.7.2-rc.3
1.7.2-rc.2
1.7.2-rc.1
1.7.2-rc.0
1.7.1
1.7.0
1.7.0-rc.2
1.7.0-rc.1
1.6.7
1.6.6
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.6.0-rc.1
1.6.0-rc.0
1.5.6
1.5.5
1.5.4
1.5.3
1.5.2
1.5.1
1.5.0
1.5.0-rc.5
1.5.0-rc.4
1.5.0-rc.3
1.5.0-rc.2
1.5.0-rc.1
1.4.1
1.4.0
1.4.0-rc.2
1.4.0-rc.1
1.3.2
1.3.1
1.3.0
1.3.0-rc3
1.3.0-rc2
1.3.0-rc1
1.2.3
1.2.2
1.2.1
1.2.0
1.2.0-rc4
1.2.0-rc3
1.2.0-rc2
1.2.0-rc1
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.1.0-rc3
1.1.0-rc2
1.1.0-rc1
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.1-rc1
1.0.0
1.0.0-rc1
0.10.2
0.10.1
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.9.0-rc8
0.9.0-rc7
0.9.0-rc6
0.9.0-rc5
0.9.0-rc4
0.9.0-rc3
0.9.0-rc2
0.9.0-rc1
0.8.10
0.8.9
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.8.0-rc7
0.8.0-rc6
0.8.0-rc5
0.8.0-rc4
0.8.0-rc3
0.8.0-rc2
0.8.0-rc1
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.1
0.6.0
0.6.0-rc2
0.6.0-rc1
0.5.3
0.5.2
0.5.1
0.5.0
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.10-dev
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.4.0
0.4.0-beta5
0.4.0-beta4
0.4.0-beta3
0.4.0-beta2
0.4.0-beta1
0.3.13
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.3.0-dev2
0.3.0-dev
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
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
0.0.1-dev
A static code analysis tool with a focus on code consistency and teaching.
Current section
Files
Jump to
Current section
Files
mix.exs
defmodule Credo.Mixfile do
use Mix.Project
@version "1.7.13"
def project do
[
app: :credo,
version: @version,
elixir: ">= 1.13.0",
escript: [main_module: Credo.CLI],
build_embedded: Mix.env() == :prod,
start_permanent: Mix.env() == :prod,
deps: deps(),
test_coverage: [tool: ExCoveralls],
name: "Credo",
description: "A static code analysis tool with a focus on code consistency and teaching.",
package: package(),
source_url: "https://github.com/rrrene/credo",
docs: docs(),
aliases: aliases(),
test_ignore_filters: [
"test/old_credo.exs",
"test/regression/run_older_credo_version.exs",
~r[test/credo/check/housekeeping_.+.exs],
~r[/fixtures/]
]
] ++ project_cli_entry()
end
defp preferred_cli_env do
[
coveralls: :test,
"coveralls.html": :test,
"test.fast": :test,
"test.slow": :test
]
end
if Version.match?(System.version(), ">= 1.19.0-dev") do
defp project_cli_entry do
[]
end
def cli do
[preferred_cli_env: preferred_cli_env()]
end
else
defp project_cli_entry do
[preferred_cli_env: preferred_cli_env()]
end
end
defp docs do
[
source_ref: "v#{@version}",
main: "overview",
logo: "assets/credo-logo-with-trail.png",
extra_section: "GUIDES",
assets: "guides/assets",
formatters: ["html"],
nest_modules_by_prefix: nest_modules_by_prefix(),
groups_for_modules: groups_for_modules(),
extras: extras(),
groups_for_extras: groups_for_extras()
]
end
defp nest_modules_by_prefix do
[
Credo.Check.Design,
Credo.Check.Readability,
Credo.Check.Refactor,
Credo.Check.Warning,
Credo.Check.Consistency
]
end
defp extras do
[
"CHANGELOG.md",
# Introduction
"guides/introduction/overview.md",
"guides/introduction/installation.md",
"guides/introduction/basic_usage.md",
"guides/introduction/exit_statuses.md",
"guides/introduction/mix_tasks.md",
# Commands
"guides/commands/suggest_command.md",
"guides/commands/diff_command.md",
"guides/commands/explain_command.md",
"guides/commands/list_command.md",
# Checks
"guides/custom_checks/adding_checks.md",
"guides/custom_checks/testing_checks.md",
# Configuration
"guides/configuration/config_file.md",
"guides/configuration/cli_switches.md",
"guides/configuration/config_comments.md",
"guides/configuration/check_params.md",
# Plugins
"guides/plugins/using_plugins.md",
"guides/plugins/creating_plugins.md"
]
end
defp groups_for_extras do
[
Introduction: ~r/guides\/introduction\/.?/,
Configuration: ~r/guides\/configuration\//,
Commands: ~r/guides\/commands\//,
"Custom Checks": ~r/guides\/custom_checks\//,
Plugins: ~r/guides\/plugins\//
]
end
defp groups_for_modules do
[
"Essential Behaviours": ~r/^Credo\.(Check|Plugin)$/,
"Essential Structs": ~r/^Credo\.(Execution|Issue|IssueMeta|SourceFile)$/,
"Code Analysis": ~r/^Credo\.Code(\.[^\.]+|)$/,
"Testing Utilities": ~r/^Credo\.Test\./,
"Check Utilities": ~r/^Credo\.Check(\.[^\.]+|)$/,
"Checks: Software Design": ~r/^Credo\.Check\.Design\./,
"Checks: Code Readability": ~r/^Credo\.Check\.Readability\./,
"Checks: Refactoring Opportunities": ~r/^Credo\.Check\.Refactor\./,
"Checks: Warnings": ~r/^Credo\.Check\.Warning\./,
"Checks: Consistency": ~r/^Credo\.Check\.Consistency\./,
"Commands & CLI": ~r/^Credo\.CLI(\.[^\.]+|)$/,
Internal: ~r/^Credo\..+/
]
end
defp package do
[
files: [
".credo.exs",
".template.check.ex",
".template.debug.html",
"CHANGELOG.md",
"lib",
"LICENSE",
"mix.exs",
"README.md"
],
maintainers: ["René Föhring"],
licenses: ["MIT"],
links: %{
"GitHub" => "https://github.com/rrrene/credo",
"Changelog" => "https://github.com/rrrene/credo/blob/master/CHANGELOG.md"
}
]
end
def application do
[
mod: {Credo.Application, []},
extra_applications: [:bunt, :crypto, :eex, :ex_unit, :file_system, :inets, :jason, :logger]
]
end
defp deps do
[
{:file_system, "~> 0.2 or ~> 1.0"},
{:bunt, "~> 0.2.1 or ~> 1.0"},
{:jason, "~> 1.0"},
{:ex_doc, "~> 0.25", only: :dev, runtime: false}
]
end
defp aliases do
[
test: "test --exclude slow --include slow:disk_io",
"test.fast": "test --exclude slow",
"test.slow": "test --include slow"
]
end
end