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

🚀 Use regular semver instead of prerelease tags on next releases #22636

Open
2 tasks done
Pike opened this issue Jan 31, 2024 · 7 comments
Open
2 tasks done

🚀 Use regular semver instead of prerelease tags on next releases #22636

Pike opened this issue Jan 31, 2024 · 7 comments
Labels
area:core Related to the Core Backstage Framework enhancement New feature or request

Comments

@Pike
Copy link
Contributor

Pike commented Jan 31, 2024

🔖 Feature description

Let's ship regular semvers for our next releases.

This should limit the number of packages we ship in each release. That should reduce the cognitive load on maintainers, and on adopters.

In my testing of a broken approach in the changesets project, this would mean that we'd ship some 90 packages instead of 200.

A possible downside would be that core plugins might jump by several release versions, worst case, they could jump from 2.23.3 to 5.0.0 (I think). That's if you do a breaking change in each next release.

I'd gladly take that, as version numbers are cheap.

🎤 Context

Right now, we're release everything under the sun on every release.

This is driven by the use of prerelease tags for the next releases, and some bugs on the changesets toolchain.

Effectively, this goes back to https://github.com/npm/node-semver?tab=readme-ov-file#prerelease-tags, which reads in backstage lingo: If we bump @backstage/core-plugin-api in a pre-release, we need to also ship a pre-release version of @backstage/plugin-todo, which references that core package with the specific pre-release version.

More details on why that also then affects the non-pre releases is in Emma's comment in changesets/changesets#382 (comment).

✌️ Possible Implementation

This would require the fixes from changesets/changesets#1291, and then we'd need to piece together some parts of the changesets tooling with custom tooling.

I'd not expect the changesets project to adopt a change like this, as it's a firm commitment on doing semver right in prereleases.

But the changesets toolchain is so modular, that the amount of code we'd need to maintain on the backstage side should be fairly minimal.

👀 Have you spent some time to check if this feature request has been raised before?

  • I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

Are you willing to submit PR?

None

@Pike Pike added the enhancement New feature or request label Jan 31, 2024
@Rugvip Rugvip added the area:core Related to the Core Backstage Framework label Feb 1, 2024
@Rugvip
Copy link
Member

Rugvip commented Feb 1, 2024

Hmm, seems kinda tricky to get this right with the proper NPM release tags as well as changelog communication. Could be something to explore though.

I think the need for this might be reduced a bit as we start to move over most plugins to a community plugins repo though?

@Pike
Copy link
Contributor Author

Pike commented Feb 19, 2024

For the implementation part, the whole changelogs code is a metric ton of packages, so I'm hoping that we can re-use a good amount of code. In principle, make the pre-release code work as is, but make the version bump pretend it's not a pre-release.

For the community plugins, I think the success of the community repo will largely depend on whether those plugins hold back adopters from updating core. I think this will depend on the actual inner workings of the repo, and its CI. Personally, I'd love to see CI testing community plugins on core pre-releases. That sounds like a decent compromise between catching some issues in the upcoming core release (either on plugin or core side), compared to running CI on each merge to master on upstream.

At which point that repo would benefit from proper semver in pre-releases, too.

Copy link
Contributor

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the stale label Apr 19, 2024
@Pike
Copy link
Contributor Author

Pike commented Apr 19, 2024

Still wanted on my side.

@github-actions github-actions bot removed the stale label Apr 19, 2024
@Rugvip Rugvip added this to the Release Updates milestone Apr 23, 2024
@Rugvip
Copy link
Member

Rugvip commented Apr 23, 2024

Added this to the new "Release Updates" milestone. Started collecting ideas for how we could improve our release process to potentially spend a bit of time on that in the future.

Copy link
Contributor

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the stale label Jun 22, 2024
@freben freben removed the stale label Jun 24, 2024
Copy link
Contributor

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the stale label Aug 23, 2024
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Aug 30, 2024
@Rugvip Rugvip reopened this Aug 30, 2024
@github-actions github-actions bot removed the stale label Aug 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:core Related to the Core Backstage Framework enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants