Releases: OpenDevicePartnership/patina-mtrr
v1.1.4
What's Changed
-
Chore: Update crate versions to 1.1.4 @[patina-automation[bot]](https://github.com/apps/patina-automation) (#61)
Change Details
An automatically created pull request to update the version of the repo due to a release.
-
Add Cache Type Pretty Print @os-d (#59)
Change Details
## Description
Consumers of patina_mtrr may want a pretty print for the cache type instead of having to implement their own. This adds a simple pretty print.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Tested integrating into Patina to use.
Integration Instructions
N/A.
</blockquote> <hr> </details>
Full Changelog: v1.1.3...v1.1.4
v1.1.3
What's Changed
-
Chore: Update crate versions to 1.1.3 @[patina-automation[bot]](https://github.com/apps/patina-automation) (#52)
Change Details
An automatically created pull request to update the version of the repo due to a release.
-
Update patina-devops to v0.2.2 for release process bugfix @Javagedes (#51)
Change Details
## Description
Includes two bugfixes for the release process as documented in the release:
ref: https://github.com/OpenDevicePartnership/patina-devops/releases/tag/v0.2.2
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
N/A
Integration Instructions
N/A
</blockquote> <hr> </details>
Full Changelog: v1.1.2...v1.1.3
v1.1.2
What's Changed
-
Chore: Update crate versions to 1.1.2 @[patina-automation[bot]](https://github.com/apps/patina-automation) (#50)
Change Details
An automatically created pull request to update the version of the repo due to a release.
-
Update to patina-devops v0.2.1 @Javagedes (#49)
Change Details
## Description
Updates to patina-devops v0.2.1 to fix a bug in the crate update workflow where we would hit an error if the crate did not contain Cargo.toml files outside of the root.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
N/A
Integration Instructions
N/A
</blockquote> <hr> </details>
-
Update to patina-devops v0.20 @Javagedes (#48)
Change Details
## Description
Updates the repository to patina-devops v0.2.0 which changes the release process as described in the release notes of patina-devops:
ref: https://github.com/OpenDevicePartnership/patina-devops/releases/tag/v0.2.0
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
N/A
Integration Instructions
The new release process is to manually trigger the
Create Crate Version Update PRaction. Once the created PR is reviewed, approved, and merged, the release on github and crates.io will happen automatically.</blockquote> <hr> </details>
-
Update to patina-devops 0.1.1 @Javagedes (#47)
Change Details
## Description
Updates patina-devops to v0.1.1 which should result in a shorter PR Gate runtime.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
N/A
Integration Instructions
N/A
</blockquote> <hr> </details>
-
Makefile.toml: Clean up coverage commands @Javagedes (#46)
Change Details
## Description
This commit cleans up the coverage commands by replacing the
testcommand logic with thecoverage-collectlogic and having all coverage report generation rely on thetestcommand instead. This allows us to removetestfrom theallcommand, which was previsouly building and running host based unit tests twice.- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
N/A
Integration Instructions
N/A
</blockquote> <hr> </details>
-
Ignore patina automation bot PRs in release notes @os-d (#45)
Change Details
## Description
Do not show changes from patina-automation[bot].
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
N/A.
Integration Instructions
N/A.
</blockquote> <hr> </details>
-
Update patina-devops to v0.0.4 @Javagedes (#44)
Change Details
## Description - [ ] Impacts functionality? - [ ] Impacts security? - [ ] Breaking change? - [ ] Includes tests? - [ ] Includes documentation?
How This Was Tested
N/A
Integration Instructions
N/A
</blockquote> <hr> </details>
-
Code Coverage: Only post status to pull requests @cfernald (#43)
Change Details
## Description
This uses only_pulls which "Only post a status to pull requests, defaults to false. If true no status will be posted for commits not on a pull request."
see: https://docs.codecov.com/docs/commit-status#only_pulls
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
N/A
Integration Instructions
N/A
</blockquote> <hr> </details>
-
switch to nightly toolchain @Javagedes (#42)
Change Details
## Description
This commit switches the compiler to a nightly version dated one day past the 1.90 release date, rather then using the 1.90 release directly with RUSTC_BOOTSTRAP=1.
This change also removes all usage / reference of RUSTC_BOOTSTRAP=1 and resolves any new clippy / fmt errors.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
N/A
Integration Instructions
N/A
</blockquote> <hr> </details>
-
Add codecov configuration @Javagedes (#41)
Change Details
## Description
This commit configures codecov with the following:
-
Delay codecov from sending status until all checks are finished
-
Rounds coverage percentage up or down to the nearest 2 decimal palces.
-
Updates the range so that less than 80% is red, 80-89% is yellow, and 90%+ is green
-
Sets the target coverage for the project and PR patch to 80% rather than keeping it approximitely what was before the commit.
-
Hardcodes the comment layout, though these are the default settings.
-
Impacts functionality?
-
Impacts security?
-
Breaking change?
-
Includes tests?
-
Includes documentation?
How This Was Tested
Ran the settings through the codecov validator.
Integration Instructions
N/A
-
-
Switch to patina-devops @makubacki (#40)
Change Details
## Description
Call reusable workflows current in patina-devops to reduce CI related overhead in this repo.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
- PR CI workflows
Integration Instructions
- N/A
-
CIWorkflow.yml: multiple bugfixes / cleanup @Javagedes (#39)
Change Details
## Description
This PR does the following:
-
Adds
alphato the cargo release dry run step so that we always bump the version. This is necessary ascargo releaseattempts to do a dry run with the current release in the Cargo.toml, which conflicts because it already exists. -
Removes the usage and requirements of the crates.io token. This had multiple issues: (1) Someone with a branch on this repository edit the CI workflow and use the crates.io token however they wanted. (2) It caused CI to fail on branches from forks, as we marked the secret as required and, and secrets are not shared to forks.
-
Removes the editing of some of the rust config files with the metadata we needed to be able to download crates from azure crates for running CI.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
N/A
Integration Instructions
N/A
</blockquote> <hr> </details> -
Full Changelog: v1.1.1...v1.1.2
v1.1.1
What's Changed
-
Update publishing token @makubacki (#38)
Change Details
## Description
Updates the token to use an org secret token instead of a local repo secret.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
- Will be tested in CI
Integration Instructions
- N/A
-
Cargo.toml: Update version to 1.1.0 @makubacki (#37)
Change Details
## Description
Update the crate version for an upcoming release.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
- N/A
Integration Instructions
- N/A
Full Changelog: v1.1.0...v1.1.1
v1.1.0
What's Changed
-
Upload Code Coverage and add badging @Javagedes (#35)
Change Details
## Description
This pull request adds badging to the readme and begins uploading code coverage to codecov.io
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
N/A
Integration Instructions
N/A
-
cspell: Update asm!(...); regex to support newlines @Javagedes (#34)
Change Details
## Description
The existing regex only matches if the entire
asm!(...);macro is on the same line. The updated macro can now handle multi-line asm macros such as:asm!( "...", "...", );
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
ran
cargo make cspellon code with a multi-lineasm!macro and commands that would normally trigger a spell check did not.Integration Instructions
N/A
-
Set rust analyze test env to use bootstrap @cfernald (#32)
Change Details
## Description
This is required to use rust analyzer uses the proper compiler for the tests run through the UI.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
N/A
Integration Instructions
N/A
-
Switch to Apache 2.0 License [Rebase \& FF] @makubacki (#30)
Change Details
## Description
Per https://github.com/OpenDevicePartnership/governance/blob/main/rfc/0013-patina-apache-20-license.md, switch the patina-mtrr repo to the Apache 2.0 License.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
Note: PRs will be made for other Patina repos as well.
How This Was Tested
cargo make all
Integration Instructions
- Review licensing changes and the accompanying RFC.
-
[REBASE\&FF] Update to rust version 1.89 @Javagedes (#29)
Change Details
## Description
Updates the rust version from 1.85 to 1.89, applying any necessary changes. These changes are ultimetly only formatting changes and should not affect functionality.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
CI
Integration Instructions
N/A
-
[REBASE \& FF] Move Code Coverage to cargo-llvm-cov @os-d (#28)
Change Details
## Description
Cargo.toml: Reduce Optimizations in Test Profile
This commit adds some recommended settings to disable compiler optimizations when running tests. This is a needed step to increase accuracy of code coverage.
Move to cargo-llvm-cov for Code Coverage
Per RFC 0013, move to cargo-llvm-cov for code coverage. This drops cargo-tarpaulin from docs, required installation, and cargo make coverage. From a developer perspective, the only thing needed is to install cargo-llvm-cov; coverage is still run using cargo make coverage.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Running
cargo make coverageIntegration Instructions
This is not a breaking change for integration, however it does require developers to install cargo-llvm-cov in order to run coverage:
cargo install cargo-llvm-cov --version "0.6.18"
-
Coverage: Generate xml file for local tooling @Javagedes (#27)
Change Details
## Description
Local tooling such as coverage gutters can read xml files and directly highlight coverage in your vscode files. Automatically generating this file helps automate using this tool with no extra bootstrapping.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
CI
Integration Instructions
N/A
-
Miscellaneous Build Updates [Rebase \& FF] @makubacki (#26)
Change Details
## Description
rustfmt.toml: Remove edition
We are not making use of this right now and it is out of date. Use
the edition specified in Cargo.toml.
.vscode/settings.json: Add file
Run
cargo make checkwith JSON message output as the rust-analyzer
checkcommand.Prevent lock contention when running cargo commands while
rust-analyzer is also running and reduce the need for rebuilds by
setting rust-analyzer to use a dedicated target directory
(target/rust-analyzer).
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
cargo make all- Check
./target/rust-analyzeris used
Integration Instructions
- N/A
-
Makefile.toml: Add check\_tests subtask to check @os-d (#25)
Change Details
## Description
This allows
cargo make checkto include test code. Sincecargo make checkis already run as theRust Analyzercheckcommand (as defined in.vscode/settings.json), this also allows the errors reported by Rust Analyzer in theProblemspane of VS Code to include test code errors when saving files.- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Copied from Patina.
Integration Instructions
N/A.
-
[REBASE \& FF] CI Updates @os-d (#24)
Change Details
## Description
This PR contains two commits that brings patina-paging CI in line with patina.
Makefile: Move cargo doc --open to cargo make doc-open
This allows cargo make all to use cargo make doc which doesn't run a web browser when running the command.
cspell: Remove Overly Permissive Dictionaries and Fix Spellings
This aligns with Patina's cspell choices and fixes misspellings.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
cargo make all works.
Integration Instructions
N/A.
📖 Documentation Updates
-
Fix broken README link @Javagedes (#36)
Change Details
## Description
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
N/A
Integration Instructions
N/A
-
Refactor unit tests to eliminate randomness and other improvements [Rebase \& FF] @makubacki (#33)
Change Details
## Description
Fixes #31
Eliminates random number generation from the unit tests. The randomly
generated values previously resulted in non-deterministic results
causing patina-mtrr unit tests to fail about half the time they were
executed.- At a high-level,the
testsmodule hierarchy is cleaned up to be:config- Test configuration and constantsfixtures- Reusable test fixtures and buildersmock_hal- Mock hardware abstraction layermtrr_tests- Main functionality testssupport- Test utilities ...
- At a high-level,the
v1.0.0
What's Changed
-
[REBASE\&FF] Rust version and edition updates @Javagedes (#22)
Change Details
## Description
Updates the rust version to 1.85 and edition to 2024
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
CI Passes
Integration Instructions
N/A
</blockquote> <hr> </details>
⚠️ Breaking Changes
-
Rename patina-mtrr crate to patina\_mtrr @vineelko (#21)
Change Details
## Description
Rename patina-mtrr crate to patina_mtrr to stay consistent with the RFC and rest of the patina crates.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
cargo make allIntegration Instructions
Need to update in patina repo to refer to patina_mtrr instead of patina-mtrr in Cargo.toml files. Code remains the same.
Full Changelog: v0.1.2...v1.0.0
v0.1.2
What's Changed
Registry Change
This version will be published to the patina-fw registry feed:
https://dev.azure.com/patina-fw/artifacts/_artifacts/feed/temporary
Since this repo is planned to start publishing to crates.io soon, the registry and token infrastructure in the repo are not updated for patina-fw and it will be published there manually.
-
Cargo.toml: Update to v0.1.2 @makubacki (#20)
Change Details
## Description
The version is updated to publish a new version to the
patina-fwrepo.- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
- N/A - Will be used to publish manually
Integration Instructions
-
This version will be published to the
patina-fwregistry feed:https://dev.azure.com/patina-fw/artifacts/_artifacts/feed/temporary
Since this repo is planned to start publishing to crates.io soon, the registry and token infrastructure in the repo are not updated for
patina-fwand it will be published there manually.
-
Prep patina-mtrr repo to go public @vineelko (#19)
Change Details
## Description Prep patina-mtrr repo to go public
- Remove references to internal registry
- Do not depend on other repos for pipeline workflow files
- Normalize files to LF line endings
- Update unicode-ident library license exception (v1.0.13 still uses Unicode-DFS-2016)
- Include .editorconfig to enforce LF line endings(to be resilient from editor settings)
cargo make allworks- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
Fixes: OpenDevicePartnership/patina#412
How This Was Tested
Unit tested
Integration Instructions
NA
Full Changelog: v0.1.1...v0.1.2
v0.1.1
What's Changed
-
.github/ISSUE\_TEMPLATE/rfc.yml: Remove file @makubacki (#17)
Change Details
## Description
We've decided to use pull requests instead of directly submitting a GitHub issue for RFCs so remove the file in this repo.
The RFC template can be found in the docs area of uefi-dxe-core.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
- N/A - GitHub issue form removal
Integration Instructions
- N/A
-
Add repo contribution and compliance files @makubacki (#15)
Change Details
## Description
Closes #74 (uefi-dxe-core)
Adds the following files to define code of conduct, the contribution process, and security vulnerability process within ODP.
CONTRIBUTING.md is slightly modified for UEFI contributors.
Relicensing code under "MIT" is a todo but expected to occur, so that license is left in the file.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
cargo make all
Integration Instructions
- N/A
-
Rename markdownlint file @makubacki (#14)
Change Details
## Description
Update the file name to match the expected default name by the
DavidAnson.vscode-markdownlintVS Code plugin so the rules are applied automatically.Rules can be enabled, disabled, and customized by creating a
JSON file named .markdownlint.jsonc/.markdownlint.json or a YAML
file named .markdownlint.yaml/.markdownlint.yml or a JavaScript
file named .markdownlint.cjs in any directory of a project.- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
- Use markdownlint plugin locally without further configuration.
Integration Instructions
Rename
markdownlint.ymlto.markdownlint.yml.
-
[REBASE\&FF] Update project configurations @Javagedes (#13)
Change Details
## Description
Applies the two project configuration changes:
Consider rust MSV for the crate when doing dependency resolution.
Tell Cargo Make not to auto install cargo tools.- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
<Describe the test(s) that were run to verify the changes.>
Integration Instructions
<Describe how these changes should be integrated. Use N/A if nothing is required.>
</blockquote> <hr> </details>
-
Add cargo deny @makubacki (#12)
Change Details
## Description
Adds an initial config file and the tool to the
[tools]section of rust-toolchain.toml so it is installed with the rust tool cache action in the CI workflow. Adds relevant exceptions with notes.Adds the
cargo make denytask to the makefile to run the command in this repo.- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
cargo make deny
Integration Instructions
- N/A
-
Makefile.toml: Add all, check, clippy, cspell, and fmt @makubacki (#11)
Change Details
## Description
Adds additional commands present in other repos for consistency and convenience.
Adds the
allcommand so a set of checks can be performed prior to PR like in other repos.- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
cargo make allcargo make checkcargo make clippycargo make cspell- `cargo make fmt
Integration Instructions
- N/A
-
Various dependency and toolchain updates [Rebase \& FF] @makubacki (#10)
Change Details
## Description
Update version to v1.1
Version update in preparation to publish a new patch version crate
release.
rust-toolchain.toml: Update from Rust 1.80 to Rust 1.84
Update to newer release using the same version as other ODP repos.
Cargo.toml Update
bitfield-structfrom from v0.9 to v0.10Right now, different versions are being duplicated in places like
dxe_core:├ bitfield-struct v0.8.0
└── mtrr v0.1.0
└── uefi_cpu v10.0.0
├── dxe_core v9.0.0
└── uefi_debugger v10.0.0
└── dxe_core v9.0.0 ()
├ bitfield-struct v0.9.5
├── paging v2.0.0
│ ├── dxe_core v9.0.0
│ ├── uefi_cpu v10.0.0
│ │ ├── dxe_core v9.0.0 ()
│ │ └── uefi_debugger v10.0.0
│ │ └── dxe_core v9.0.0 ()
│ └── uefi_debugger v10.0.0 ()
└── uefi_debugger v10.0.0 (*)v0.10 is available now, so get everything on that.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
cargo make alland CI
Integration Instructions
- N/A
-
rust-toolchain.toml: Add additional required components @Javagedes (#9)
Change Details
## Description
These additional requirements must be specified so that the command
rustup toolchain installinstalls all necessary components, just in case the user (or CI runner) does not have them installed.- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
OpenDevicePartnership/patina#287
Integration Instructions
N/A
-
Cargo.toml: Allow bitfield-struct v0 compatibility @makubacki (#8)
Change Details
Allow compatibility across a broader version range to improve compatibility with downstream users of this library.
Before:
bitfield-struct v0.8.0 (proc-macro) └── mtrr v0.1.0 └── uefi_cpu v9.1.1 ├── dxe_core v8.1.0 │ └── intel_dxe_core v3.2.0 ├── intel_dxe_core v3.2.0 └── uefi_debugger v9.1.1 └── dxe_core v8.1.0 (*) bitfield-struct v0.9.5 (proc-macro) ├── intel_dxe_core v3.2.0 ├── paging v1.0.2 │ ├── dxe_core v8.1.0 (*) │ ├── uefi_cpu v9.1.1 (*) │ └── uefi_debugger v9.1.1 (*) └── uefi_debugger v9.1.1 (*)</blockquote> <hr> </details>
-
Change GitHub org name from pop-project to OpenDevicePartnership @makubacki (#6)
Change Details
The org name has switched to OpenDevicePartnership so all references to the previous org name are updated.
- Verified new URLs.
- Note: "pop-project" will redirect to "OpenDevicePartnership" so the old URLs will still work for now.
- https://github.com/pop-project will return 404 until/if it is claimed by someone else.
📖 Documentation Updates
-
Add RFC template @makubacki (#16)
Change Details
## Description
Add a template for new design & feature proposals.
Instructions for usage are in introduction.md.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes ...
v0.1.0
Note: First release published to a feed.
What's Changed
- Rust MTRR Lib Implementation by @vineelko in #1
- Make MtrrLib behind a trait for easy mocking from Cpu Arch Lib by @vineelko in #3
- MTRR: LF to CRLF conversions by @vineelko in #4
- Add internal registry by @makubacki in #5
New Contributors
- @vineelko made their first contribution in #1
- @makubacki made their first contribution in #5
Full Changelog: https://github.com/pop-project/mtrr/commits/v0.1.0