q-optimize / c3

Toolset for control, calibration and characterization of physical systems
https://c3-toolset.readthedocs.io/
Apache License 2.0
66 stars 36 forks source link

Add a CHANGELOG #88

Closed lazyoracle closed 3 years ago

lazyoracle commented 3 years ago

Is your feature request related to a problem? Please describe. There is no easy and centralised way for checking the changes being introduced in a new release. Sometimes the API is broken and there needs to be deprecation warnings issued at least a few minor releases ahead.

Describe the solution you'd like A version-controlled CHANGELOG included with the repository (as a markdown file) which gets updated incrementally during all the PRs that lead up to a particular release. It gets finalised in the release/x.y.z PR before merging into master. Some points:

Describe alternatives you've considered Discussions on Slack/Rocket.chat, fragmented notes in various PRs, Issues and meeting docs, some minimal points in the Github Releases section. None of this has archival and reference usage and are also difficult to maintain, aggregate and version control.

Additional context Related: As discussed in the comments on PR #87 we need a well-structured commit message for the merge commits when we merge a branch into dev during the usual development cycle. The expected template for this is as below:

Short 1-line (50 chars) description of key feature/bug-fix with associated issue numbers if any (can go in the commit heading in Github PR merge UI)

(The part below goes in the merge commit message details) Contributors: Full name (and not Github handle) of all contributors to this PR, irrespective of who made the code commits. Longer multi-line description, typically in the form of a detailed list of various features implemented with any additional insights/remarks on the implementations etc.

It should be possible to implement this through an automated Github bot that notifies on every PR the requirements of updated tests, updated docs, changelog, commit message, CLA etc. Either enforce this through PR templates or through a github bot.

lazyoracle commented 3 years ago

Related discussion on automatic Changelog and Release Notes generator: https://github.com/unitaryfund/mitiq/issues/565