v2023020001.3.0
What's Changed
🚀 Features & ✨ Enhancements
-
Add Rust Support and Advanced Logger Crate [Rebase \& FF] @makubacki (#289)
Change Details
Closes #294
Description
Updates the repo to add some files needed to support Rust builds and a
RustAdvancedLoggerDxe
library crate.Because this repo was used to test the Rust build and is adding a new crate in that process, the infrastructure files are added directly in this PR. In the future, these will be synced from
mu_devops
. The file content aligns with the current templates inmu_devops
so there should be no change in the sync process in this repo. Future repos can simply sync the files with the bot accounts and then add the Rust code in a follow up PR.The ability to build with Rust is temporarily disabled in the last commit of the PR branch because changes in
mu_devops
need to be completed before the pipeline build in this repo will succeed.Commit/Change Overview
Add initial Rust infrastructure files
Adds workspace level files to build Rust in the repo.
.azurepipelines: Add Rust build support
Makes the changes needed to build Rust in pipelines on Windows
and Linux.
AdvLoggerPkg: Add RustAdvancedLoggerDxe
Adds a library crate that serves as a Rust wrapper for access to
Advanced Logger protocol.
- Impacts functionality?
- Functionality - Does the change ultimately impact how firmware functions?
- Examples: Add a new library, publish a new PPI, update an algorithm, ...
- Impacts security?
- Security - Does the change have a direct security impact on an application,
flow, or firmware? - Examples: Crypto algorithm change, buffer overflow fix, parameter
validation improvement, ...
- Security - Does the change have a direct security impact on an application,
- Breaking change?
- Breaking change - Will anyone consuming this change experience a break
in build or boot behavior? - Examples: Add a new library class, move a module to a different repo, call
a function in a new library class in a pre-existing module, ...
- Breaking change - Will anyone consuming this change experience a break
- Includes tests?
- Tests - Does the change include any explicit test code?
- Examples: Unit tests, integration tests, robot tests, ...
- Includes documentation?
- Documentation - Does the change contain explicit documentation additions
outside direct code modifications (and comments)? - Examples: Update readme file, add feature readme file, link to documentation
on an a separate Web page, ...
- Documentation - Does the change contain explicit documentation additions
How This Was Tested
- Built container image from mu_devops locally with docker
- Ran container image locally to perform a Rust build
- Ran all changes in this PR in mu_plus pipelines to verify build results
Integration Instructions
No changes are needed for mu_plus integrators.
Review general Rust documentation in mu_basecore for more info.
- Impacts functionality?
Full Changelog: v2023020001.2.0...v2023020001.3.0