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

Feature: Improved release process #6244

Open
etrepum opened this issue Jun 3, 2024 · 1 comment
Open

Feature: Improved release process #6244

etrepum opened this issue Jun 3, 2024 · 1 comment
Labels
enhancement Improvement over existing feature

Comments

@etrepum
Copy link
Collaborator

etrepum commented Jun 3, 2024

Follow-up to #6169 #6204

Once we have nightly releases it would be nice to make the following enhancements:

Nightly releases

  • Only run nightly releases if main has changed since the last one

Latest channel releases

  • Create the PR from the versioned release branch (possibly automated) (example: v0.15.0 #6084)
  • Create the draft release from the versioned release tag (probably automated) (example: https://github.com/facebook/lexical/releases/tag/v0.15.0)
  • Perform the npm publish from the release tag after the release is published (this fixes the race condition on main)
  • Update documentation accordingly

Proposed new workflow

  1. Run "Create Release Branch" action with patch or minor increment
  • Automatically creates or updates the PR and initial release branch (if we can get permissions to do it, see comment)
  • Automatically creates or updates the tag & channel branch
  • Automatically creates or updates the draft release
  1. PR should be reviewed.
  • If any changes need to be made, do them in separate PRs, merge to main, and start over at step 1
  1. Merge PR
  • This updates main, so the CHANGELOG, package.json, error-codes, etc. are all in sync
  1. Edit draft release (fix formatting, add highlights, etc.) and publish
  • Automatically publishes the contents of the release tag to npm
  • Note: The latest release is used as an input for 1. when generating the CHANGELOG

Open questions

  • Do we want to support release channels other than nightly and latest?
  • Is there a use case for prerelease version increment and the next channel? If so, we should implement it, if not then we should remove support for it.

I have a prototype of the new workflows in a separate repo that I have deliberately built with similar organization around the workflows and release processes with all of this working: https://github.com/etrepum/lexical-builder/tree/main/.github/workflows

@etrepum etrepum added the enhancement Improvement over existing feature label Jun 3, 2024
@etrepum
Copy link
Collaborator Author

etrepum commented Jun 3, 2024

Regarding PRs, it seems that it might be worth leaving that as a manual process unless the facebook organization and lexical repo allows actions to create PRs. It's not on by default.

Screenshot 2024-06-03 at 2 50 51 PM

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

No branches or pull requests

1 participant