id = "rebar3"
name = "Rebar3"
homepage = "https://rebar3.org/"
description = "An Erlang build tool"
executables = ["rebar3"]
[dotfiles]
paths = ["[configHome]/rebar3/rebar.config"]
secret = []
[commands]
format = 1
label = "Build and test an Erlang project"
description = "The common rebar3 jobs: compile, clean, run EUnit or Common Test, and create a project from a template. Releases, dialyzer, plugins and profiles are not covered."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = false }
[[commands.subcommand]]
path = ["compile"]
label = "Compile the project"
description = "Compile project apps and dependencies."
[[commands.subcommand.source]]
id = "docs"
kind = "manual"
url = "https://rebar3.org/docs/commands/"
revision = "2026-10-27"
evidence = '''
compile
-d/--deps_only Only compile dependencies, no project apps will be built
'''
[[commands.subcommand.field]]
id = "deps_only"
label = "Dependencies only"
type = "boolean"
option = ["--deps_only", "-d"]
sources = ["docs"]
[[commands.subcommand.task]]
id = "compile"
label = "Compile the project"
fields = ["deps_only"]
required = []
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["deps_only"]
[[commands.subcommand]]
path = ["clean"]
label = "Clean build output"
description = "Remove compiled BEAM files."
[[commands.subcommand.source]]
id = "docs"
kind = "manual"
url = "https://rebar3.org/docs/commands/"
revision = "2026-10-27"
evidence = '''
clean
--all/-a Clean all apps, including the dependencies
--apps Clean a specific list of apps or dependencies
'''
[[commands.subcommand.field]]
id = "all"
label = "Include dependencies"
type = "boolean"
option = ["--all", "-a"]
effect = "delete"
sources = ["docs"]
[[commands.subcommand.field]]
id = "apps"
label = "Apps (comma separated)"
type = "string"
option = ["--apps"]
sources = ["docs"]
[[commands.subcommand.task]]
id = "clean"
label = "Clean build output"
fields = ["all", "apps"]
required = []
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["all", "apps"]
[[commands.subcommand]]
path = ["eunit"]
label = "Run EUnit tests"
description = "Run EUnit tests on project apps."
[[commands.subcommand.source]]
id = "docs"
kind = "manual"
url = "https://rebar3.org/docs/commands/"
revision = "2026-10-27"
evidence = '''
eunit
--application Application test suites to run.
-c, --cover Generate cover data. Defaults to false
'''
[[commands.subcommand.field]]
id = "application"
label = "Applications (comma separated)"
type = "string"
option = ["--application"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "cover"
label = "Generate cover data"
type = "boolean"
option = ["--cover", "-c"]
sources = ["docs"]
[[commands.subcommand.task]]
id = "eunit"
label = "Run EUnit tests"
fields = ["application", "cover"]
required = []
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["application", "cover"]
[[commands.subcommand]]
path = ["ct"]
label = "Run Common Test"
description = "Run Common Test suites under test/."
[[commands.subcommand.source]]
id = "docs"
kind = "manual"
url = "https://rebar3.org/docs/commands/"
revision = "2026-10-27"
evidence = '''
ct
--suite Compile and run all test suites specified.
--group Test groups to run.
--case List of test cases to run.
--cover, -c
--verbose, -v
'''
[[commands.subcommand.field]]
id = "suite"
label = "Suites (comma separated paths)"
type = "string"
option = ["--suite"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "group"
label = "Groups (comma separated)"
type = "string"
option = ["--group"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "case"
label = "Cases (comma separated)"
type = "string"
option = ["--case"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "cover"
label = "Generate cover data"
type = "boolean"
option = ["--cover", "-c"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "verbose"
label = "Verbose"
type = "boolean"
option = ["--verbose", "-v"]
sources = ["docs"]
[[commands.subcommand.task]]
id = "ct"
label = "Run Common Test"
fields = ["suite", "group", "case", "cover", "verbose"]
required = []
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["suite", "group", "case", "cover", "verbose"]
[[commands.subcommand]]
path = ["new"]
label = "Create a project"
description = "Create a project from a template such as app, lib or release."
[[commands.subcommand.source]]
id = "docs"
kind = "manual"
url = "https://rebar3.org/docs/commands/"
revision = "2026-10-27"
evidence = '''
rebar3 new <template> <project-name>
--force, -f Overwrite existing files.
'''
[[commands.subcommand.field]]
id = "template"
label = "Template"
type = "string"
position = 0
suggestions = [{ value = "app", label = "app" }, { value = "lib", label = "lib" }, { value = "release", label = "release" }]
min = 1
sources = ["docs"]
[[commands.subcommand.field]]
id = "name"
label = "Project name"
type = "string"
position = 1
min = 1
sources = ["docs"]
[[commands.subcommand.field]]
id = "force"
label = "Overwrite existing files"
type = "boolean"
option = ["--force", "-f"]
effect = "overwrite"
sources = ["docs"]
[[commands.subcommand.task]]
id = "new"
label = "Create a project"
fields = ["template", "name"]
required = ["template", "name"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["template", "name", "force"]