Releases: microsoft/mu_devops
v12.4.0
What's Changed
-
.sync/rust\_config/rustfmt.toml: Add struct and enum alignment @zurcher (#389)
Change Details
Add arguments to rustfmt for vertically aligning struct and enum members. Usage requires `+nightly`.
Value of 8 matches 'align_var_struct_span' from uncrustify.cfg.
🚀 Features & ✨ Enhancements
-
Update Release Drafter for Dev Branches @makubacki (#387)
Change Details
Changes the way release drafter handles drafting releases on repos with release branches (which have dev branches now).
Ultimately, a release is 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>
- Title:
- Dev Branch
- Title:
dev-v<version>
- Tag:
dev-v<version>
- Title:
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 thetype: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 would be marked as latest.
The
release-drafter/release-drafter
action is still used.
- Release Branch
Full Changelog: v12.3.0...v12.4.0
v12.3.0
What's Changed
-
Version.njk: Update to container version 4bebc96 @makubacki (#384)
Change Details
Main reason to update is to pick up the latest Ubuntu container build that uses Python 3.12.
A complete list of changes compared to the previous container version (
d1e4ff1
) is in:
-
.sync/Dockerfile: Add Python 3.12 installation steps @makubacki (#383)
Change Details
Some additional steps are needed to move the container build to Python 3.12.
The Deadsnakes PPA is needed to get Python 3.12. Add a step to add that repo and then use apt to install Python 3.12 from it. gnupg is needed to add the key for Deadsnakes. Distutils was removed from Python 3.12 but we still need it to build QEMU so that is added as a separate installation.
Changes tested in #382
🚀 Features & ✨ Enhancements
-
Add release branch backport workflow @makubacki (#386)
Change Details
Closes #372
This new workflow will attempt to automatically cherry-pick marked contributions to a development branch to its corresponding release branch. If a merge conflict occurs, the commit is committed to a new branch with merge markers and then a PR is created into the target branch with those markers. The PR is labeled with
type:release-merge-conflict
to indicate that it needs manual resolution.The PR (if created) is expected to fail compilation and status checks of course due to the merge conflict markers. A human should then checkout the PR branch, resolve the conflicts, and push the changes back to the PR branch.
- To mark a PR going into the development branch so that it should be cherry-picked to the release branch, add the
type:backport
label to the PR.
Notes:
- The workflow is synced to all repos that currently have a
dev
branch. - Each repo that
backport-to-release-branch.yml
is synced to must have aCHERRY_PICK_TOKEN
defined with repo write permission.
- To mark a PR going into the development branch so that it should be cherry-picked to the release branch, add the
Full Changelog: v12.2.0...v12.3.0
v12.2.0
What's Changed
-
Use a Single Python Version Definition [Rebase \& FF] @makubacki (#380)
Change Details
**Define Python version once**
Defines the Python version in a single location
Version.njk
and
syncs that version to other files. Sets the Python version to 3.12
(although 3.13 was recently released) for continued compatibility
with the version already used in Windows pipelines.
.sync/Version.njk: Update to Mu DevOps v12.2.0
See the following comparison for details of the changes
between these releases:v12.0.2...v12.2.0
Note: Testing is in progress.
-
Containers: Update QEMU to version 9.0.0 @cfernald (#377)
Change Details
QEMU Version 9.0.0 is required for SMMU and GIC support on the sbsa-ref machine. This version is already used in the mu_tiano_platforms ext-dep
Full Changelog: v12.1.0...v12.2.0
v12.1.0
What's Changed
-
.sync/Version.njk: Update to Mu DevOps v12.0.2 @makubacki (#375)
Change Details
See the following comparison for details of the changes between these releases:
🚀 Features & ✨ Enhancements
-
PrGate.yml: Add extra\_pre\_build\_steps param @makubacki (#378)
Change Details
Adds a new template parameter called `extra_pre_build_steps` that allows a step list to run before any stuart build related commands are executed.
Full Changelog: v12.0.2...v12.1.0
v12.0.2
What's Changed
-
Version.njk: Update to container version d1e4ff1 @makubacki (#374)
Change Details
Main reason to update is to use the latest Rust versions in Version.njk.
{# The Rust toolchain version to use. #} {% set rust_toolchain = "1.80.0" %} {# Rust tool versions. #} {% set cargo_make = "0.37.9" %} {% set cargo_tarpaulin = "0.31.2" %}
A complete list of changes compared to the previous container
version (0e124c1
) is in:
-
Build-Containers.yml: Trigger on Version.njk change @makubacki (#373)
Change Details
Builds the container on a change to the version file.
Full Changelog: v12.0.1...v12.0.2
v12.0.1
What's Changed
-
.sync: Update codeql to run on dev/\* branches @Javagedes (#371)
Change Details
Updates `codeql.yml` and `codeql-platform.yml` to run on dev/* branches.
Full Changelog: v12.0.0...v12.0.1
v12.0.0
What's Changed
-
.sync/dependabot: Add Features/DEBUGGER to ignore list @makubacki (#369)
Change Details
Let the submodule-release-updater GitHub action handle updates based on versioned GitHub releases.
⚠️ Breaking Changes
-
RustSetupSteps.yml: Update to latest cargo\_tarpaulin 31.2 and Rust Toolchain @antklein (#363)
Change Details
Update to the latest version of cargo_tarpaulin, release 31.2. This change is required to allow tarpaulin to function with Rust toolchain 1.80. Running tarpaulin 27.3 with toolchain 1.80 results in the tool failing with a "Parse error".
Full Changelog: v11.1.0...v12.0.0
v11.1.0
What's Changed
-
Steps/BuildPlatform: Add toggle for stuart\_pr\_eval @Javagedes (#368)
Change Details
Adds a True / False parameter to the BuildPlatform step to allow disabling PR evaluation, similar to that of Steps/PrGate.yml. Default value is True to match current behavior.
-
Minor fix to PR template @zurcher (#367)
Change Details
## Description
Remove redundant
"to complete"
from PR template
-
Update the Rust toolchain to version 1.80.0 @antklein (#362)
Change Details
Update to a newer Rust toolchain in order to incorporate improvements with newer versions. For example, an improvement on the size optimization of output rust binaries.
Full Changelog: v11.0.3...v12.0.0
v11.0.3
What's Changed
-
.sync/version.njk: Update latest Mu branch to 202405 @makubacki (#360)
Change Details
Also updates references to 202302 throughout the repo to prevent the examples from getting too stale over time.
Full Changelog: v11.0.2...v11.0.3
v11.0.2
What's Changed
-
Add extra\_npm\_args for InstallMarkdownLink.yml and InstallSpellCheck @MarcChen46 (#361)
Change Details
Add "extra_npm_args" for InstallMarkdownLint.yml and InstallSpellCheck.yml steps to increase the flexibility to npm actions.
Full Changelog: v11.0.1...v11.0.2