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
No fields configured for Feature.

Projects

Status

Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions