#changelog #strongly-typed #markdown #change #date #weather #render

overcast

Strongly typed changelogs for projects as changeable as the weather

3 releases

0.1.3 Mar 19, 2024
0.1.1 Mar 19, 2024
0.1.0 Mar 19, 2024

#2228 in Parser implementations

MPL-2.0 license

21KB
456 lines

Overcast is a crate for defining strongly typed changelogs that change as often as the weather. It's designed to make it simple to Keep a Changelog.

Crates.io Version Crates.io License docs.rs

Example

A more complete example is available in get_overcast_changelog.rs, the structure used to render CHANGELOG.md.

let changelog = Changelog::new("My Changelog")
    .with_description("A changelog for amazing things")
    .add_release(Release::new(0, 1, 0)
        .with_date(1970, 1, 1)
        .added("New feature")
        .fixed("All the bugs")
    );

let markdown = render_markdown(&changelog).unwrap();

assert_eq!(
    markdown,
    "# My Changelog

A changelog for amazing things

### 0.1.0 - 1970-01-01

#### Added
- New feature


#### Fixed
- All the bugs

"
)

lib.rs:

Overcast is a crate for defining strongly typed changelogs that are designed to make it simple to Keep a Changelog.

Example

A more complete example is available in get_overcast_changelog.rs, the structure used to render CHANGELOG.md

let changelog = Changelog::new("My Changelog")
    .with_description("A changelog for amazing things")
    .add_release(Release::new(0, 1, 0)
        .with_date(1970, 1, 1)
        .added("New feature")
        .fixed("All the bugs")
    );

let markdown = render_markdown(&changelog).unwrap();

assert_eq!(
    markdown,
    "# My Changelog

A changelog for amazing things

### 0.1.0 - 1970-01-01

#### Added
- New feature


#### Fixed
- All the bugs

"
)

Features

  • dates Support for adding dates to changelog entries
  • render_markdown render changelogs as JSON
  • render_json render changelogs to JSON format
  • drizzle_changelog include Drizzle's changelog. Mainly to enable testing and examples

Dependencies

~0–1MB
~20K SLoC