Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[task] explore different options for release automation #1229

Open
mirceanis opened this issue Aug 18, 2023 · 0 comments
Open

[task] explore different options for release automation #1229

mirceanis opened this issue Aug 18, 2023 · 0 comments
Labels
pinned don't close this just for being stale

Comments

@mirceanis
Copy link
Member

mirceanis commented Aug 18, 2023

We rely on lerna to publish releases.
The existing Veramo release automation can be described as follows:

  • Pushing something to main triggers a @latest release.
  • Pushing something to next triggers a @next pre-release.
  • @next pre-releases force all packages to be bumped to the same version and all are published to the @next dist-tag.
  • @latest releases depend on conventional-commit messages AND, because of lerna, also depend on code changes in each package.

This means that some pushes to main won't trigger a release if there are no fix:, feat: or BREAKING CHANGE: commit messages.
And sometimes a release will only bump certain packages because they were the only ones containing code changes.
This makes it hard(er) to keep all Veramo packages in sync, as they are only designed to work together at the same version. Mixing versions is not a good idea.

Lerna takes care of bumping dependencies for packages that depend on each-other, updating CHANGELOG.md files, publishing packages to npm and creating the GitHub release including all the relevant changelogs, based on commit messages.

This mostly works great, except that:

  • We need a better solution that is able to do all of the above(except publish all packages to latest when at least one gets bumped in version).
  • if the release process is interrupted (usually by npmjs.org HTTP problems), then lerna stops and won't retry, resulting in only some packages actually getting releases, but not all. Running it again will definitely fail if there are already some packages published.

Some possible tools to try out:

As a bonus, it would be great if all PRs could publish a pre-release so that they can be tested in the wild

@mirceanis mirceanis added the pinned don't close this just for being stale label Aug 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pinned don't close this just for being stale
Projects
None yet
Development

No branches or pull requests

1 participant