Releaser.FileSync (releaser v0.0.4)

Copy Markdown View Source

Syncs version numbers across multiple files.

Besides mix.exs (which is always updated), you can configure additional files like README.md, Dockerfile, or any file containing a version string.

Configuration

releaser: [
  version_files: [
    {"README.md", ~r/version "(+.+.+)"/},
    {"Dockerfile", ~r/ARG VERSION=(S+)/}
  ]
]

Summary

Functions

Syncs version in all configured additional files for the given app.

Updates the version in mix.exs for the given app path.

Functions

sync_files(app_path, old_version, new_version, files)

Syncs version in all configured additional files for the given app.

files is a list of {path_or_glob, regex} tuples where the regex must contain a capture group matching the version string to replace.

update_mix_version(app_path, old_version, new_version, version_form \\ :literal)

Updates the version in mix.exs for the given app path.

The third positional argument is the new version. When the caller knows that the version is declared as a module attribute (@version "...") it should pass version_form: :attribute so the correct token is rewritten. Defaults to :literal (version: "...").