Releaser.Config (releaser v0.0.2)

Copy Markdown View Source

Configuration schema and defaults for Releaser.

All configuration lives under the :releaser key in your root mix.exs project config.

Options

  • :apps_root — Root directory containing your apps. Default: "apps"
  • :version_files — List of {glob_or_path, regex} tuples for multi-file version sync
  • :changelog — Changelog configuration (see below)
  • :hooks — Pre/post hook modules (see below)
  • :publisher — Hex publishing configuration (see below)

Changelog options

  • :anchors — Map of commit prefix to changelog section. Default: %{"feat" => "Added", "fix" => "Fixed", "refactor" => "Changed", "docs" => "Documentation", "perf" => "Performance", "breaking" => "Breaking Changes"}
  • :path — Path to CHANGELOG.md. Default: "CHANGELOG.md"
  • :format:keepachangelog (default)

Hooks options

Publisher options

  • :org — Hex organization name (optional)
  • :package_defaults — Default package/0 config injected into apps that lack it. Keys: :licenses, :links, :files

Commits (Conventional Commits)

Opt-in automation that parses git log to decide bump types per app. Disabled unless you set enabled: true.

commits: [
  enabled: true,
  bump_rules: %{"feat" => :minor, "fix" => :patch, ...},
  breaking_bump: :major,
  breaking_markers: [:bang, :body],
  scope_aliases: %{"xml" => "cfdi_xml"},
  no_scope: :warn
]

See Releaser.Commits and guides/conventional-commits.md.

Summary

Functions

Returns the default configuration.

Loads configuration from the host project's mix.exs, merged with defaults.

Functions

defaults()

Returns the default configuration.

load()

Loads configuration from the host project's mix.exs, merged with defaults.