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

Update release workflow #1345

Merged

Conversation

NullVoxPopuli
Copy link
Collaborator

@NullVoxPopuli NullVoxPopuli commented Jan 30, 2023

I imagine the workflow would be as follows:

  • merge a bunch of PRs willy nilly, contributors don't need to do anything different from what they're doing today
  • when it comes time to prepare for a release, we will
    • run npx changeset-recover@beta to help fill out the Changelog (in bite-sized, PR-oriented pieces that the tooling calls "changesets" (for those unfamiliar: https://github.com/changesets/changesets/ ))
    • edit the generated files to tidy up the generate Changelog entry
      • select whether the change is a bugfix (patch), minor change, or major / breaking change
      • edit the changelog entry, which defaults to a combination of both the PR title and PR description - and if an associated PR can't be found, the commit message will be used (useful for direct commits to main)
    • commit and push up these new .changeset/*.md files
    • C.I. (the action added here in this workflow file) will then create a PR to main that allows you to preview how the versions will change on each of the packages
      • Since we want a single changelog, there is one more manual step: combine all the changelogs -- this can be done by pushing to the branch that is created.


        I'm still thinking about a tool for this, because this amount of manual work isn't fun -- for this particular repo, since the packages themselves don't have changelogs at all, this tool might be reasonbly easy to write -- I'd kinda need to see the format that these single-version changelog entries use since the changelog files would be "created for the first time" by the changeset tool. My hunch Is that I can write a local tool to this repo that just pulls in the entirety of the changelog files into the main changelog and then deletes the per-package ones
    • only when the "version preview PR" is merged, the release will occur automatically
      • what is done?
        • a tag for each package in the format: packageName@version - examples: xstate ember-resources
        • a release page entry per package titled packageName@version - examples: xstate, ember-resources
        • each package is pushed to npm

Assumptions:

  • the prepare script runs automatically
  • these permissions set in /settings/actions:

image

@simonihmig
Copy link
Collaborator

Since we want a single changelog

What's the context for this? Why do we want this? And is this set in stone?

@NullVoxPopuli
Copy link
Collaborator Author

NullVoxPopuli commented Feb 7, 2023

Just what @ef4 wants 🤷

It does have a benefit where you can see all changes in one place. But, i have a hard time reading it for finding changes for a specific package.

So, i think we should let the tool create per-package changelogs, imo.

All of @ef4's hopes and dreams are written out here tho:
#1237

@ef4
Copy link
Contributor

ef4 commented Feb 7, 2023

It's not set in stone, it's just what I thought was the most helpful for readers. We can do separate ones if people like it.

@NullVoxPopuli
Copy link
Collaborator Author

NullVoxPopuli commented Feb 7, 2023

during the office hours today, we talked about adding a GitHub Action that runs after Changeset creates the "release preview pr". this new GitHub Action would merge the generated Changelogs from Changesets and commit to the "release preview branch" showing us what the aggregated changelog looks like

@ef4
Copy link
Contributor

ef4 commented Feb 14, 2023

Merging so we can try this out.

@ef4 ef4 merged commit e05dfdc into embroider-build:main Feb 14, 2023
@ef4 ef4 added the internal label May 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants