dojo / meta

:rocket: Dojo - meta information for the project.
Other
227 stars 50 forks source link

CHANGELOG generation and curation #178

Open rishson opened 7 years ago

rishson commented 7 years ago

Proposal: We have a CHANGELOG.md in each repo. We manually append to this document in each repo, with each beta release and RC. We collate each repo's updates into a CHANGELOG.md on dojo/meta.

At a later date, we can look to have automatic changelog generation based on commit prefixes etc.

rishson commented 7 years ago

Proposed format:

CHANGELOG: [Release version] (optional release name)

⚠️ Breaking changes

[repo name]

[Description of the change] [Previous behaviour] [Updated behaviour]

[repo name]

[Description of the change] [Previous behaviour] [Updated behaviour]

✅ Fixes

[Repo name]

[Description] [Description]

[Repo name]

[Description] [Description]

👍 Enhancements

[Repo name]

[Description] [Description]

[Repo name]

[Description] [Description]

dylans commented 7 years ago

I think it's a good idea... would we want a combined change log for major releases across all packages, or per package? never mind, re-read and it sounds like you have a good plan for both (per repo, and then aggregating in meta).

kitsonk commented 7 years ago

I would prefer that we adopt a standard of using GitHub release notes (e.g. https://github.com/dojo/test-extras/releases or https://github.com/dojo/widget-core/releases) with some sort of convention as those changes in the repo are better to manage and much easier to keep updated. They can then be curated and aggregated in meta if desired.

We should also investigate leveraging the GitHub APIs to "stub out" these release notes, by taking the commits between tags and adding them to a markdown document which can be used to be the framework for the release notes (and stub out other aspects of the template as per the above).

kitsonk commented 7 years ago

The API we are looking for is the GitHub Release API. For reading (and therefore curating) the releases, no authentication is required. To be able to create a draft release, OAuth needs to be done with an authorised user.

kitsonk commented 7 years ago

bubba-bot (https://github.com/kitsonk/bubba) has the logic and functionality for this. The logic could be ported into grunt-dojo2 or bubba bot could be used via the CLI itself. The biggest "challenge" is the need to have an API token available for posting the information. That of course could be supplied as part of the release process.