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

chore(release): try changesets instead of changelog #10138

Merged
merged 5 commits into from
Mar 8, 2024

Conversation

jtoar
Copy link
Contributor

@jtoar jtoar commented Mar 7, 2024

The newish changelog workflow has personally saved me a lot of time and is half the reason we were able to release so many times on a moment's notice last week. But it's prone to merge conflicts, both in this repo and in the release tooling (most cherry picks from the main branch to the next branch had merge conflicts because of the changelog) so it's not going to scale out much more. But it's proved it's usefulness.

I tried Changesets proper—seemed like the obvious choice and @ahaywood even independently came up with the idea—but it's overkill. I don't want to have to associate a semver with a PR (we use milestones for that). I also don't want to have to pick which packages we're versioning. Right now it's always all of them. And without the tooling or without using git, there's no obvious way to tie a changeset back to the PR that made it. (Maybe one of the changeset changelog packages do this, but config.) All I really want is what we're doing right now without the merge conflicts, so I spiked on a small script to generate a minimal changeset:

yarn changesets 10116
yarn changesets https://github.com/redwoodjs/redwood/pull/10116

The idea is that we'll do what we've been doing, but just via that command. It'll write a file to .changesets/three-random-words.md, and we'll put our release notes for the PR there. The release tooling can aggregate them into release notes at the time of release.

The main con is that we can't see all the unreleased changes in linear order in one file. But tradeoffs. It's definitely worth not having to put up with merge conflicts.

@jtoar jtoar added the release:chore This PR is a chore (means nothing for users) label Mar 7, 2024
@jtoar jtoar added this to the chore milestone Mar 7, 2024
@jtoar jtoar force-pushed the ds-release/work-on-changesets branch from d49ee15 to eba16eb Compare March 8, 2024 09:08
@jtoar jtoar added the changesets-ok Override the changesets check label Mar 8, 2024
@jtoar jtoar enabled auto-merge (squash) March 8, 2024 09:23
Copy link
Member

@Tobbe Tobbe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@jtoar jtoar merged commit f5d97e0 into main Mar 8, 2024
43 of 45 checks passed
@jtoar jtoar deleted the ds-release/work-on-changesets branch March 8, 2024 09:30
ahaywood pushed a commit that referenced this pull request Mar 8, 2024
The newish changelog workflow has personally saved me a lot of time and
is half the reason we were able to release so many times on a moment's
notice last week. But it's prone to merge conflicts, both in this repo
and in the release tooling (most cherry picks from the main branch to
the next branch had merge conflicts because of the changelog) so it's
not going to scale out much more. But it's proved it's usefulness.

I tried Changesets proper—seemed like the obvious choice and @ahaywood
even independently came up with the idea—but it's overkill. I don't want
to have to associate a semver with a PR (we use milestones for that). I
also don't want to have to pick which packages we're versioning. Right
now it's always all of them. And without the tooling or without using
git, there's no obvious way to tie a changeset back to the PR that made
it. (Maybe one of the changeset changelog packages do this, but config.)
All I really want is what we're doing right now without the merge
conflicts, so I spiked on a small script to generate a minimal
changeset:

```
yarn changesets 10116
yarn changesets #10116
```

The idea is that we'll do what we've been doing, but just via that
command. It'll write a file to `.changesets/three-random-words.md`, and
we'll put our release notes for the PR there. The release tooling can
aggregate them into release notes at the time of release.

The main con is that we can't see all the unreleased changes in linear
order in one file. But tradeoffs. It's definitely worth not having to
put up with merge conflicts.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
changesets-ok Override the changesets check release:chore This PR is a chore (means nothing for users)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants