Skip to content

Instantly share code, notes, and snippets.

@roobre
Created November 20, 2021 12:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save roobre/a12b9a5febfe97561cfafc41b222057a to your computer and use it in GitHub Desktop.
Save roobre/a12b9a5febfe97561cfafc41b222057a to your computer and use it in GitHub Desktop.
Releaser PoC

Releaser

This doc explains the requirements and initial approach for a release automation tool "releaser" (name is not final). The main goal of this tool is to make the release process easier for the developers, releaving them from having to manually trace the commit or PR history back and having to manually compile a changelog.

Design goals and use cases

Core tool

We understand by "Core tool" a component that is capable of generating a baseline changelog given two git references, either just from the Git history or by using a software forge API to get additional information.

  • The tool MUST provide a baseline changelog that should require little or no changes to be meaningful for those who use the software but are not familiar with its codebase.
    • The tool MUST gather changelog information either from commits or PRs, so developers do not need extra steps to input changelog information.
    • The tool MUST NOT consider all commits, merge commits, or PRs to be relevant for a changelog, but rather allow developers to easily mark those which are.
    • The tool MUST NOT assume that neither the first line of the commit message, or the title of the PR are always a good changelog entry, and MUST provide a means for developers to override the content of the changelog entry without having to edit the produced changelog later.
    • The tool SHOULD generate separate changelog sections for new features, bug fixes, breaking changes, and possibly some more.
  • The tool SHOULD allow including links to PRs whenever possible, and commits or authors if not possible, so OSS maintainers can credit contributors properly.

Workflow integration

We understand "workflow integration" as how the baseline changelog generated by the "Core tool" is incorporated into the release notes.

  • The workflow MUST be able to integrate the changelog into a CHANGELOG.md file in the repository.
  • The workflow MUST be able to integrate the changelog into the release notes for a particular release, typically stored not within the git repo but in a software forge.
  • The baseline changelog provided by the tool MUST be editable by developers or product owners who want to add or tweak the changelog content before the workflow commits it to the main branch of the repository or the release notes.

Proposed solutions

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment