Versioning.Changelog (Versioning v0.4.1) View Source

Creates changelogs for schemas.

The changelog is composed of a list of maps that describe the history of the schema. For example:

[
  %{
    version: "1.1.0",
    changes: [
      %{type: Foo, descriptions: ["Changed this.", "Changed that."]}
    ]
  },
  %{
    version: "1.0.0",
    changes: [
      %{type: Foo, descriptions: ["Changed this.", "Changed that."]}
    ]
  }
]

The descriptions associated with each change can be attributed via the @desc module attribute on a change module. Please see Versioning.Change for more details.

Formatters can be used to turn the raw changelog into different formats. Please see the Versioning.Changelog.Formatter behaviour for more details.

The Versioning.Changelog.Markdown formatter is included with this package.

Link to this section Summary

Functions

Builds a changelog of the schema.

Link to this section Types

Specs

change() :: %{type: module(), descriptions: [binary()]}

Specs

t() :: [version()]

Specs

version() :: %{version: binary(), changes: [change()]}

Link to this section Functions

Link to this function

build(schema, opts \\ [])

View Source

Builds a changelog of the schema.

Options

  • :version - A specific version within the changelog.
  • :type - A specific type within the specified version.
  • :formatter - A module that adheres to the Versioning.Changelog.Formatter behaviour.

Examples

Versioning.Changelog.build(MySchema, formatter: Versioning.Changelog.Markdown)