Skip to content

Commit

Permalink
Update release drafter for dev branches (#1224)
Browse files Browse the repository at this point in the history
## Description

This change is currently being prototyped in Mu Basecore.

Further changes may be made before syncing to other repos. During this
time anyone making releases should pay careful attention to the versions
and notes drafted and report any issues.

The `release-drafter` action takes some inputs by config file so a
couple new config files are added. These originate from a single copy
(template) of the file in mu_devops so we'd still only be maintaining
one actual release drafter config file.

---

A release will be drafted for the dev branch and the release branch. The
releases are differentiated by both their release title and tag.

- Release Branch
  - Title: `release-v<version>`
  - Tag: `v<version>`
- Dev Branch
  - Title: `dev-v<version>`
  - Tag: `dev-v<version>`

Note that the tag for the release branch follows the same convention as
existing release tags.

The "release branch" release includes all pull requests made to the dev
branch with the `type:backport` label since the last "dev branch"
release. For this reason, the "dev branch" and "release branch" should
be released at the same time. Then, this effectively results in the
"release branch" having all relevant changes since the last release. The
"dev branch" release will be based at the same point in history as the
"release branch" release but include all changes not just those with the
`type:backport` label.

The "release branch" release for the current release branch should be
marked as "latest". For example, if "release/202311" and
"release/202405" exist, the "release/202405" "release branch" release
should be marked as latest when making the release.

When making releases, the "dev branch" release should be made first and
then the "release branch" release.

- [ ] Impacts functionality?
- [ ] Impacts security?
- [ ] Breaking change?
- [ ] Includes tests?
- [ ] Includes documentation?
- [ ] Backport to release branch?

## How This Was Tested

- Generate "dev branch" and "release branch" on fork with various
combinations of changes.

## Integration Instructions

N/A

Signed-off-by: Michael Kubacki <[email protected]>
  • Loading branch information
makubacki authored Nov 20, 2024
1 parent 91f14ee commit b5bc594
Show file tree
Hide file tree
Showing 5 changed files with 214 additions and 9 deletions.
100 changes: 100 additions & 0 deletions .github/release-draft-config-n-1-dev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
# Defines the configuration used for drafting new releases.
#
# IMPORTANT: Only use labels defined in the .github/Labels.yml file in this repo.
#
# NOTE: `semver:major`, `semver:minor`, and `semver:patch` can be used to force that
# version to roll regardless of other labels.
#
# NOTE: This file is automatically synchronized from Mu DevOps. Update the original file there
# instead of the file in this repo.
#
# - Mu DevOps Repo: https://github.com/microsoft/mu_devops
# - File Sync Settings: https://github.com/microsoft/mu_devops/blob/main/.sync/Files.yml
#
# Copyright (c) Microsoft Corporation.
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
# For more information, see:
# https://github.com/release-drafter/release-drafter

name-template: 'dev-v$RESOLVED_VERSION'
tag-template: 'dev-v$RESOLVED_VERSION'

commitish: refs/heads/dev/202311
filter-by-commitish: true

template: |
# What's Changed
$CHANGES
**Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...v$RESOLVED_VERSION
categories:
- title: '⚠️ Breaking Changes'
labels:
- 'impact:breaking-change'
- title: '🚀 Features & ✨ Enhancements'
labels:
- 'type:design-change'
- 'type:enhancement'
- 'type:feature-request'
- title: '🐛 Bug Fixes'
labels:
- 'type:bug'
- title: '🔐 Security Impacting'
labels:
- 'impact:security'
- title: '📖 Documentation Updates'
labels:
- 'type:documentation'
- title: '🛠️ Submodule Updates'
labels:
- 'type:submodules'

change-template: >-
<ul>
<li>
$TITLE @$AUTHOR (#$NUMBER)
<br>
<details>
<summary>Change Details</summary>
<blockquote>
<!-- Non-breaking space to have content if body is empty -->
&nbsp; $BODY
</blockquote>
<hr>
</details>
</li>
</ul>
change-title-escapes: '\<*_&@' # Note: @ is added to disable mentions

# Maintenance: Keep labels organized in ascending alphabetical order - easier to scan, identify duplicates, etc.
version-resolver:
major:
labels:
- 'impact:breaking-change'
- 'semver:major'
minor:
labels:
- 'semver:minor'
- 'type:design-change'
- 'type:enhancement'
- 'type:feature-request'
patch:
labels:
- 'impact:non-functional'
- 'semver:patch'
- 'type:bug'
- 'type:documentation'
default: patch

exclude-labels:
- 'type:dependabot'
- 'type:file-sync'
- 'type:notes'
- 'type:question'

exclude-contributors:
- 'uefibot'
7 changes: 4 additions & 3 deletions .github/release-draft-config-n-1.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,12 @@
# For more information, see:
# https://github.com/release-drafter/release-drafter

name-template: 'v$RESOLVED_VERSION'
tag-template: 'v$RESOLVED_VERSION'
name-template: 'dev-v$RESOLVED_VERSION'
tag-template: 'dev-v$RESOLVED_VERSION'

commitish: refs/heads/release/202311
commitish: refs/heads/dev/202311
filter-by-commitish: true
include-labels: ["type:backport"]

template: |
# What's Changed
Expand Down
100 changes: 100 additions & 0 deletions .github/release-draft-config-n-dev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
# Defines the configuration used for drafting new releases.
#
# IMPORTANT: Only use labels defined in the .github/Labels.yml file in this repo.
#
# NOTE: `semver:major`, `semver:minor`, and `semver:patch` can be used to force that
# version to roll regardless of other labels.
#
# NOTE: This file is automatically synchronized from Mu DevOps. Update the original file there
# instead of the file in this repo.
#
# - Mu DevOps Repo: https://github.com/microsoft/mu_devops
# - File Sync Settings: https://github.com/microsoft/mu_devops/blob/main/.sync/Files.yml
#
# Copyright (c) Microsoft Corporation.
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
# For more information, see:
# https://github.com/release-drafter/release-drafter

name-template: 'dev-v$RESOLVED_VERSION'
tag-template: 'dev-v$RESOLVED_VERSION'

commitish: refs/heads/dev/202405
filter-by-commitish: true

template: |
# What's Changed
$CHANGES
**Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...v$RESOLVED_VERSION
categories:
- title: '⚠️ Breaking Changes'
labels:
- 'impact:breaking-change'
- title: '🚀 Features & ✨ Enhancements'
labels:
- 'type:design-change'
- 'type:enhancement'
- 'type:feature-request'
- title: '🐛 Bug Fixes'
labels:
- 'type:bug'
- title: '🔐 Security Impacting'
labels:
- 'impact:security'
- title: '📖 Documentation Updates'
labels:
- 'type:documentation'
- title: '🛠️ Submodule Updates'
labels:
- 'type:submodules'

change-template: >-
<ul>
<li>
$TITLE @$AUTHOR (#$NUMBER)
<br>
<details>
<summary>Change Details</summary>
<blockquote>
<!-- Non-breaking space to have content if body is empty -->
&nbsp; $BODY
</blockquote>
<hr>
</details>
</li>
</ul>
change-title-escapes: '\<*_&@' # Note: @ is added to disable mentions

# Maintenance: Keep labels organized in ascending alphabetical order - easier to scan, identify duplicates, etc.
version-resolver:
major:
labels:
- 'impact:breaking-change'
- 'semver:major'
minor:
labels:
- 'semver:minor'
- 'type:design-change'
- 'type:enhancement'
- 'type:feature-request'
patch:
labels:
- 'impact:non-functional'
- 'semver:patch'
- 'type:bug'
- 'type:documentation'
default: patch

exclude-labels:
- 'type:dependabot'
- 'type:file-sync'
- 'type:notes'
- 'type:question'

exclude-contributors:
- 'uefibot'
7 changes: 4 additions & 3 deletions .github/release-draft-config-n.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,12 @@
# For more information, see:
# https://github.com/release-drafter/release-drafter

name-template: 'v$RESOLVED_VERSION'
tag-template: 'v$RESOLVED_VERSION'
name-template: 'dev-v$RESOLVED_VERSION'
tag-template: 'dev-v$RESOLVED_VERSION'

commitish: refs/heads/release/202405
commitish: refs/heads/dev/202405
filter-by-commitish: true
include-labels: ["type:backport"]

template: |
# What's Changed
Expand Down
9 changes: 6 additions & 3 deletions .github/workflows/release-draft.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,17 @@ name: Update Release Draft
on:
push:
branches:
- release/202405
- dev/202405

jobs:
draft:
dev_draft:
name: Draft Releases

permissions:
contents: write
pull-requests: write

uses: microsoft/mu_devops/.github/workflows/[email protected]
# The "release_drafter_update_for_release_branches" branch is temporarily being used to test release
# drafter changes on that branch in Mu Basecore before merging them into the main branch.
uses: microsoft/mu_devops/.github/workflows/ReleaseDrafter.yml@release_drafter_update_for_release_branches
secrets: inherit

0 comments on commit b5bc594

Please sign in to comment.