fsprojects / FAKE

FAKE - F# Make
https://fake.build
Other
1.28k stars 581 forks source link

Release Notes - Conventional Changelog compatibility #2676

Closed akhansari closed 2 years ago

akhansari commented 2 years ago

Description

Release Notes module is not compatible with Conventional Changelog.

This is an enhancement.

Repro steps

ReleaseNotes.load on a file like this.

Expected behavior

Be able to parse Conventional changelogs and maybe ignore headers without version.

Actual behavior

System.Exception

Known workarounds

x

Related information

github-actions[bot] commented 2 years ago

Welcome to the FAKE community! Thank you so much for creating your first issue and therefore improving the project!

baronfel commented 2 years ago

There's a Changelog module as well that you may prefer to use instead of the ReleaseNotes module. I've switched many of my repos over to it (or to Ionide.KeepAChangelog directly) as a result.

akhansari commented 2 years ago

Oh very nice. I didn't search well. Is there any way to detect the format in order to know which one should be used between Changelog or ReleaseNotes (instead of doing a try/catch)?

baronfel commented 2 years ago

I mean sure, yes, but I would instead just know that if I'm using a CHANGELOG.md then I need to use the Changelog module. You have to do an explicit migration right now from the FAKE-specific ReleaseNotes format to the more general Changelog format, so I don't really see a point to trying to automatically detect the format.

akhansari commented 2 years ago

OK it makes sense. thank you Chet 🙏🏻

baronfel commented 2 years ago

If you want to migrate an existing Release Notes file, here's a one-time conversion function I made for FSAutoComplete when we moved: fsharp/FsAutoComplete@af81187 (#881)

It might make sense for FAKE to have this, now that I think of it.