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

[Proposal] Automate versioning, releasing and changelog generating with Changesets #2189

Closed
ruanyl opened this issue Aug 23, 2022 · 5 comments

Comments

@ruanyl
Copy link
Member

ruanyl commented Aug 23, 2022

Seeing people been discussing automated release in different contexts, I'd like to propose a possible solution.

Related issues #591 #1741 #1801

What's Changesets?

Changesets is a tool to manage versioning and changelogs with a focus on multi-package repositories

More details about Changesets can be found here: link to Changesets

Why Changesets?

  1. Fully automated version bump in package.json for packages, no manual work needed, version get bump based on SemVer
  2. Release with automatic tagging and changelogs generating. By following Changesets workflow, all PRs need to be properly "documented" which ensures all changes are recorded in the changelogs when making a new release.
  3. Changesets PR workflow will bring a better community engagement experience with Changesets github bot.
  4. Changesets encourage PR author to put details of the changes for each PR

The best time to capture this information is when submitting a PR (when it is fresh in your mind), not when you eventually go to batch and release these changes.

I noticed people are also discussing 4 digit version in dashboard plugin projects while Changesets works with SemVer, but still, I'd love to raise the topic for discussion 😃 (I might miss some key points as I lack a full picture of the project)

@prudhvigodithi
Copy link

Hey @ruanyl thanks for starting the discussion.

For dashboard plugins I see we have version increment done for more than one file (not only just the package.json files), example https://github.com/opensearch-project/security-dashboards-plugin/pull/1005/files, as part of the version increment process we should be able to handle them.
Also we have an extra digit along with SemVer example 2.0.0.0, (more discussion to add extra number to semVer semver/semver#340), I will do some more reading about Changeset if it can handle the version increment with this extra number.

@bbarani @dblock @seanneumann @kavilla

@ruanyl
Copy link
Member Author

ruanyl commented Sep 21, 2022

Thanks @prudhvigodithi for the comment! Yes, I noticed the usage of 4 digit version, this could be challenged with Changeset as it expects SemVer, I'm not sure how easy to customize it via the plugin, need to double-check that.

Unlike the release process which can be pretty much standardized, the version increment in other files can be different in different projects, a generic release automation tool probably should not handle this, I feel these can be done via project-specific scripts/templates as part of the release.

@joshuarrrr
Copy link
Member

Should be considered in opensearch-project/.github#148

@dblock
Copy link
Member

dblock commented Apr 27, 2023

Are there any concerns of introducing this set of tools into a non-JS toolset like in OpenSearch? Will developers have to do anything more?

@joshuarrrr
Copy link
Member

@ruanyl Thanks for all the suggestions about Changesets. Many of those ideas have been incorporated into the adopted proposal: opensearch-project/.github#156

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants