Releases: microsoft/mu_devops
v7.2.0
What's Changed
-
.sync/Version.njk: Update Mu repos to Mu DevOps v7.1.0 @makubacki (#268)
Change Details
Changes since last release: https://github.com/microsoft/mu_devops/compare/v7.0.1...v7.1.0
General release info: https://github.com/microsoft/mu_devops/releases
This change is necessary when integrating 649a4ba to prevent the following failure:
/.azurepipelines/MuDevOpsWrapper.yml (Line: 92, Col: 30): Unexpected parameter 'calculate_code_coverage'</blockquote> <hr> </details>
🚀 Features & ✨ Enhancements
-
MuDevOpsWrapper: Allow coverage uploads to ado or codecov.io @Javagedes (#270)
Change Details
## Description
This change reverts the changes made in #266 in favor of performing the reformatting in the HostBasedUnitTestRunner plugin. From there it allows the consumer of
MuDevOpsWrapperto configure where code coverage data is uploaded to, eitherado(The azure devops pipeline that is running) orcodecov(The codecov account associated with the repository).- Uploading to ado remains the same - A final job runs that merges coverage data and uploads it to azure pipelines
- Due to the advanced capabilities, uploading to codecov runs per matrix job and uploads using flags to separate code coverage data between packages.
Integration Instructions
The previous logic remains the default, that is to say code coverage is uploaded to the azure devops pipeline that is running. Should a consumer set
coverage_publish_targetto 'codecov', they must ensure thatCODECOV_TOKENis set as a private variable in the pipeline.</blockquote> <hr> </details>
Full Changelog: v7.1.0...v7.2.0
v7.1.0
What's Changed
✨ Enhancements
-
Update Code Coverage Calculations @Javagedes (#266)
Change Details
Update code coverage calculations to have the ability to reorganize the report by INF using `stuart_parse` and `stuart_report.`
I have confirmed this as working using MuDevOpsWrapper for MU_BASECORE PRs:
Windows: Pipelines - Run 20231102.11 (azure.com)
Linux: Pipelines - Run 20231102.11 (azure.com)
Integration Instructions
Code Coverage is now disabled by default for MuDevOpsWrapper.yml. To enable CodeCoverage, set the calculate_code_coverage: parameter to true for MuDevOpsWrapper. Code Coverage now requires that your build_file (typically CISetting.py) subclasses ParseSettingsManager, which was introduced in edk2-pytool-extensions v0.26.0
Full Changelog: v7.0.2...v7.1.0
v7.0.2
What's Changed
-
.sync/workflows: Pass Rust env tool exclusions in CodeQL flows @makubacki (#265)
Change Details
Excludes tools that are not necessary to be present for CodeQL builds.
Can precede but pairs with BaseTools/Plugin: Add tool exclusion to RustEnvironmentCheck
-
.sync/Version.njk: Update Mu repos to Mu DevOps v7.0.1 @makubacki (#262)
Change Details
Changes since last release: https://github.com/microsoft/mu_devops/compare/v7.0.0...v7.0.1
Also updates the container to the latest version
1082f35.General release info: https://github.com/microsoft/mu_devops/releases
Full Changelog: v7.0.1...v7.0.2
v7.0.1
What's Changed
-
.sync/Version.njk: Update to Rust 1.73.0 @makubacki (#261)
Change Details
Updates to the latest Rust version currently available to allow code to use the latest features.
Full Changelog: v7.0.0...v7.0.1
v7.0.0
What's Changed
⚠️ Breaking Changes
-
Fix Python minor version and update to Python 3.12 [Rebase \& FF] @makubacki (#259)
Change Details
Because of the way the Python version was managed, pipelines already started picking up [Python 3.12](https://www.python.org/downloads/release/python-3120/).
Also, tool like pytools are releasing 3.12 support. This change fixes
the minor version to prevent unintentional minor version updates in
the future and explicitly sets the minor version to12.This files synced from this PR should merged into repos after the pytools
release is out with 3.12 support and this mu_basecore change is completed
(microsoft/mu_basecore#586). Though since pipelines
already moved to 3.12 as-is, it won't make much of a practical difference.Three commits:
Fix Python minor version
Set to Python 3.11 (current) but do not allow newer minor versions to
be picked up unless explicitly specified.
Update to Python 3.12
Repos had already started picking up 3.12 because the minor version
was previously not fixed. This change update the Python version to
3.12 to accelerate adoption and ensure compatibility.
.sync/Version.njk: Update Mu repos to Mu DevOps v7.0.0
Changes since last release:
v6.5.1...v7.0.0General release info: https://github.com/microsoft/mu_devops/releases
Full Changelog: v6.5.2...v7.0.0
v6.5.2
What's Changed
-
Add UploadCodeCoverage Template @Javagedes (#258)
Change Details
Add a new template, UploadCodeCoverage, that can be used to upload a code coverage document (such as cobertura) to codecov.io.
Uses the
-Zflag, which will cause the step to fail if uploading fails for any reason.See: https://dev.azure.com/projectmu/mu/_build/results?buildId=55185&view=results for a working example.
Closed #257 but this should be usable in non-rust environments. I will start uploading all code coverage (such as for mu_basecore) once I have
stuart_reportmerged and being used to clean up the code coverage data.
-
.sync/Version.njk: Update Mu repos to Mu DevOps v6.5.1 @makubacki (#255)
Change Details
Changes since last release: https://github.com/microsoft/mu_devops/compare/v6.4.1...v6.5.1
General release info: https://github.com/microsoft/mu_devops/releases
Full Changelog: v6.5.1...v6.5.2
v6.5.1
What's Changed
-
MuDevOpsWrapper.yml: Set container\_build parameter @makubacki (#253)
Change Details
Sets the parameter to true since this usage of the template is always using a container.
Full Changelog: v6.5.0...v6.5.1
v6.5.0
What's Changed
-
.sync/Files.yml: Drop Makefile.toml sync to mu\_rust\_hid @makubacki (#251)
Change Details
Do not sync the file since the repo is not planned to host UEFI rust code at this time which the makefile helps cater to.
-
.sync/Version.njk: Update Mu repos to Mu DevOps v6.4.1 @makubacki (#250)
Change Details
Changes since last release: https://github.com/microsoft/mu_devops/compare/v6.1.0...v6.4.1
General release info: https://github.com/microsoft/mu_devops/releases
🚀 Features & ✨ Enhancements
-
Steps/RustCargoSteps.yml: Parameterize commands @makubacki (#252)
Change Details
Allows the format, test, and build commands to be customized by a caller. The default values remain the same as the previous commands for backward compatibility.
Repos that only contain pure Rust code may choose to pass conventional
cargo commands or custom wrapper commands.
Full Changelog: v6.4.1...v6.5.0
v6.4.1
What's Changed
-
.sync/Files.yml: Sync files to mu\_rust\_hid [Rebase \& FF] @makubacki (#244)
Change Details
Adds the mu_rust_hid repo as a file sync target for relevant files.
🐛 Bug Fixes
-
Conditionalize RustSetupSteps.yml to Non-Self-Hosted Agents @kuqin12 (#246)
Change Details
The current rust setup script embedded for package CI build will cause failures on selfhosted agent pipelines.
On Windows AARCH64 agents, the failure is due to the installation of toolchain is currently specified to be x86_64, which will not succeed on AARCH64 systems in the self-host pool. In addition, the update will apply to installed cargo, which could cause conflict when multiple agents run on the same host system.
On Linux agents, the failure is due to modifications made to container permissions. Self-hosted Linux agents do not use containers.
The change here removes the toolchain installation steps for selfhost agent matrix builds as it assumes these systems preset the needed environment properly.
Full Changelog: v6.4.0...v6.4.1
v6.4.0
What's Changed
-
RustSetupSteps: Add target triple detection @makubacki (#247)
Change Details
Adds a step to determine the target triple for the host platform that can be reused by other steps. It is currently used in the `rustup component add` command issued later in the file.
🚀 Features & ✨ Enhancements
-
.sync/dependabot: Add cargo ecosystem @makubacki (#245)
Change Details
Allows crate dependencies to be updated by dependabot.
🐛 Bug Fixes
-
.sync/Makefile.toml: Resolve cargo-tarpaulin breaking changes @makubacki (#249)
Change Details
Tarpaulin 0.27 was released on September 17, 2023: https://github.com/xd009642/tarpaulin/releases/tag/0.27.0
The clap crate (Command Line Argument Parser) dependency within
tarpaulin was upgraded in the 0.27 release from an old version
(v2) to the latest major version (v4):Upgraded from clap v2 to v4. This has a few changes, notably any arguments which can be specified more than once require multiple entries so --run-types doc test needs to be turned into --run-types doc --run-types testThis means passing packages to a single
-pparameter as a comma-
separated list is no longer supported:[cargo-make] Execute Command: "cargo" "tarpaulin" "-p" \ "HelloWorldRustDxe,RustBootServicesAllocatorDxe" cargo_tarpaulin::config: Creating config cargo_tarpaulin: Running Tarpaulin cargo_tarpaulin: Building project cargo_tarpaulin::cargo: Cleaning project error: invalid character `,` in pkgid: `HelloWorldRustDxe,RustBootServicesAllocatorDxe`, characters must be Unicode XID characters (numbers, `-`, `_`, or most letters)Providing users the ability to pass packages separated by commas to
cargo make coverageis convenient and assumed in our documentation
and wrapper scripts.This change retains the same user-facing interface to
cargo make coverage
while using a duckscript within the cargo makefile to transform the
list to the format accepted by tarpaulin. Other commands are unchanged.Duckscript is useful because it is readily embedded in cargo-make so
no additional dependencies are required and it is cross-platform.
In addition, a minor fix is made by changing
Htmltohtmlfor the
following issue:[cargo-make] Execute Command: "cargo" "tarpaulin" "--out" "Html" "--exclude-files" "**/tests/*" "--output-dir" "D:\\src\\mu_plus/target" error: invalid value 'Html' for '--out [<FMT>...]' [possible values: json, stdout, xml, html, lcov] tip: a similar value exists: 'html'</blockquote> <hr> </details>
Full Changelog: v6.3.0...v6.4.0