-
Notifications
You must be signed in to change notification settings - Fork 197
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
ci(release_workspace): add additional checks and document workflow #1175
Open
BethGriggs
wants to merge
4
commits into
backstage:main
Choose a base branch
from
BethGriggs:poc-multiple-releases-pt-2
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
dc772bd
ci(release_workspace): add additional checks and document workflow
BethGriggs 960be3f
doc: clarify plugin maintainer patch release process
BethGriggs 7edf67c
Merge branch 'main' into poc-multiple-releases-pt-2
BethGriggs 02c2f5e
Merge branch 'main' into poc-multiple-releases-pt-2
awanlin File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
# Plugin Maintainer Guide | ||
|
||
## Table of Contents | ||
|
||
- [Plugin Maintainer Guide](#plugin-maintainer-guide) | ||
- [Table of Contents](#table-of-contents) | ||
- [Maintaining and patching an older release line](#maintaining-and-patching-an-older-release-line) | ||
- [Patching an older release](#patching-an-older-release) | ||
|
||
## Maintaining and patching an older release line | ||
|
||
It may be necessary to patch a prior release line of a plugin when users depend on an older, but stable version and while a newer, incompatible, major version of the plugin exists. Typically for these older releases, only major bugs and security issues will need to be remediated. Not every plugin will need this workflow. | ||
|
||
This guide will describe the steps needed to release on an older version. | ||
|
||
### Patching an older release | ||
|
||
When patching an older release, follow the steps below to ensure the correct workflow is applied: | ||
|
||
1. Request a `workspace/${workspace}` branch: | ||
- Ensure that a branch named `workspace/${workspace}` exists, with appropriate branch protections in place. This branch will be used for patch releases. | ||
- The `${workspace}` should correspond to the specific plugin or component you are patching. | ||
|
||
2. Reset the `workspace` branch: | ||
- Reset the `workspace/${workspace}` branch to the version of the plugin you need to patch. | ||
- You can use the autogenerated version tags from previous releases to pinpoint the prior release version to apply the patch. | ||
|
||
3. Apply your commits: | ||
- Apply the necessary patch fixes or security updates. | ||
- Manually bump the version in `package.json` to reflect the new patch version (e.g., from `1.2.3` to `1.2.4`). | ||
|
||
4. Run the release workflow: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should we highlight what access you need to be able to run the workflow? This could go in a section towards the top. Pretty sure you need to be an Org Member 🤔 |
||
- Navigate to the GitHub Actions tab in your repository and manually trigger the release workflow. | ||
- When prompted: | ||
- Specify the `workspace` (this refers to the workspace which contains the plugin you are patching). | ||
- Specify the `branch` you are patching. It must correspond to the workspace specified following the `workspace/${workspace}` convention. | ||
- Select the `force release with no changesets` option. | ||
- The workflow will run, building and releasing the patched version. A new version tag will be published which you can use as the base for future patch/maintenance releases. |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How does one request a branch?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can think of a few options:
What do you think is best to start?
If not explained elsewhere, the reason this is an explicit step is because the workflow is coded to only release plugins from the workspace included in the branch name, and so we can set up appropriate access to that branch based on the codeowners/plugin.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if you need to be an org member to run the workflow, then you might as well ping that person at the outset to get them to create the branch so you can then later run the workflow.
An issue template would boilerplate the request and give people something to link to for the branch creation and later workflow runs too, so maybe that's worth doing.