Skip to content

Library release process #31

@Gudahtt

Description

@Gudahtt

This is a tracking issue for creating an automated release process that can be used by all of our libraries. We may want to split this into smaller tickets.

  • Automate changelog generation
    • We should automatically generate changelog entries for any changes made since the last release
    • The generated changelog should use the "keep a changelog" format.
    • Each generated entry will be uncategorized. We will have to manually categorize each entry, and improve the descriptions of each change.
    • The entries should be grouped under the release being prepared
    • The entry for the release candidate should not have any date. That will be added after it is released.
  • Automate npm publishing?
    • This is an open question, as there are security concerns about the authority granted to npm tokens.
  • Automate preparation of a release candidate
    • We could trigger a release candidate by pushing a branch with a particular naming scheme (e.g. release-X.Y.Z)
    • The version bump and changelog generation script should be run automatically
  • 'Require linear history' should be enabled for any long-running branches (e.g. main and version branches)
    • This lets us assume that it's safe to release after merging the release branch, because it's guaranteed to be identical to what was tested on the release branch.
  • Merging the release branch should trigger final release steps
    • This includes tagging the release commit, publishing a GitHub release, and updating the changelog with the release date.
  • Write instructions for new release process
    • These should be included in the repository
    • These instructions should assume as little as possible. Include examples of each command that should be run.
    • Include instructions for both normal and hotfix releases

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions