Skip to content

feat: Implement release and changelog process #126

@lornakelly

Description

@lornakelly

Description

Original Spike: #109

After spike investigation, the following tool focused on monorepos wwill be a good fit: https://github.com/changesets/changesets

Motivation

Establish a simple, consistent process for delivering the package to npm, ensuring changes are tracked, versioned, and communicated clearly.

Proposed Implementation

Based on findings: use 2 GH Actions and create release branches to allow us to fix previous releases when required.

Release strategy steps

GHA: Prepare Release

  • Triggered manually via workflow_dispatch.
  • Creates a release branch
  • Runs changesets/action without publishing.
  • Updates package versions.
  • Updates package-level CHANGELOG.md files.
  • Creates a release PR targeting the release branch, i.e. `1.0`

Manual review and merge

  •  People review the changes and merge the release PR into the release branch

GHA: Publish Release

  • Automatically runs only when the release PR is merged into the official release branch.
  • Check that the merged PR is a release PR by checking:
    • release branch name
    • authored by github-actions[bot] or similar
    • release-pr or similar on PR title.
  • Checks out the release branch
  • Runs `pnpm install` and build:prod together with the tests
  • Runs changeset publish through changesets/action.
  • Creates release tags through Changesets.
  • Creates GitHub Releases through changesets/action.
  • Publishes npm packages, ideally via npm Trusted Publishing/OIDC similarly to serverlessworkflow/sdk-typescript.

Definition of Done

  • Implementation: Fully implemented according to the Serverless Workflow spec.
  • Unit Tests: Comprehensive unit tests are included and passing.
  • Integration Tests: Verified within the monorepo and target environments (Web/VS Code).
  • Documentation: Updated README.md, ADRs, or official docs.
  • Performance: No significant regression in editor responsiveness.
  • Accessibility: UI changes comply with accessibility standards.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

Status

Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions