Skip to content

patina-v11.3.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 04:57
· 661 commits to refs/heads/main since this release

What's Changed

  • Publish to crates.io @makubacki (#866)
    Change Details
      ## Description

    Closes #864

    Move from the patina-fw registry to crates.io.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    • Cargo release dry run

    Integration Instructions

    • Crates in this repo will be available on crates.io after this is merged and published.


  • Makefile.toml: Update cargo vet task to only report unvetted deps @makubacki (#860)
    Change Details
      ## Description

    Prevent auto generated audit file updates.

    Update the make task to not fail for unvetted dependencies. Another workflow will be added to enforce vetting on a more permissible basis.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    • cargo make vet locally

    Integration Instructions

    • N/A


  • Mark libc with owner "rust-lang-owner" as safe to deploy @Javagedes (#853)
    Change Details
      ## Description

    Cargo vet is currently failing for the newest version of libc.

    cargo vet specifically states that mozilla trusts rust-lang-owner and to consider doing cargo vet trust libc rust-lang-owner, which is what this does.

    Additionally removes the previous user-id for libc

    image
    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    CI

    Integration Instructions

    N/A




  • Continuous Integration: Upload Coverage Report @Javagedes (#847)
    Change Details
      ## Description

    Upload coverage report to Codecov during CI builds and merges into main. Adds Coverage badging which will display properly once the PR is merged and the Merge CI workflow finishes.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    CI - Validated coverage uploaded successfully. Viewable: https://app.codecov.io/github/OpenDevicePartnership/patina

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    
  • Readme: Add badging @Javagedes (#813)
    Change Details
      ## Description

    Adds the following badging:

    1. Crates.io version
    2. Commits since last release
    3. current CI Status

    Please note that the Crates.io version badge will not properly display until we perform our first release and the other two badges will not properly display until we go pubic.

    Closes #26. The codecov percentage wil be moved to another task, which I will create and self assign, to start pubishing coverage results to codecov once we go public.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    N/A

    Integration Instructions

    N/A




  • chore: Release v11.2.0 @makubacki (#841)
    Change Details
      ## Description

    Update the version for the 11.2.0 release.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    • N/A

    Integration Instructions

    • N/A


  • patina\_dxe\_core/pecoff: Verify PointerToRawData is resolved properly @makubacki (#840)
    Change Details
      ## Description

    Verifies that the behavior in the following goblin fix is followed:

    m4b/goblin@04d69ad

    This support is available in goblin 0.10.2.

    This verifies that the filename in the debug section is found using an image built with 512 byte file alignment and one built with 32 byte file alignment. Both have 4k-section alignment. This verifies that binaries with very small file alignments have PointerToRawData calculated to the correct position in the image.

    The goblin version in Cargo.toml is set from 0.10 to ~0.10.2. This is to use versions >=0.10.2 and <0.11.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    • cargo make all

    Integration Instructions

    • N/A - New unit tests


🚀 Features & ✨ Enhancements

  • Component Params: Only validation on debug builds @Javagedes (#854)
    Change Details
      ## Description

    Fully described in #849, this commit changes all validation for UB in component function parameters to only be present in debug builds. This is a performance and size optimization that can be made because the function interfaces are static and do not change at runtime.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    CI

    Integration Instructions

    N/A




  • Generate lcov and html coverage reports @makubacki (#842)
    Change Details
      ## Description

    Currently, only lcov reports are generated by default. However, HTML reports provide nice, simple visualization of coverage data. While the HTML report can be generated manually today, it can also be generated efficiently in the coverage task without users having to understand (1) that the command is available and (2) how to use it to generate the HTML report.

    Coverage data will be calculated once and then both reports will be generated from that data. Individual cargo-make tasks can be run as desired if only report type is needed in a given flow or development scenario. However, the main use case remains cargo make coverage which will now generate both reports.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    • cargo make coverage
    • cargo make coverage-collect
    • cargo make coverage-lcov
    • cargo make coverage-html

    Integration Instructions

    • N/A - Impacts local repo developer operations


  • patina\_debugger: Remove initial breakpoint configurability. @cfernald (#845)
    Change Details
      ## Description

    The configure function in PatinaDebugger currently allows the platform to dynamically enable the debugger without the initial breakpoint. Currently this input is ignored as having the debugger enable in a silent configuration can be potentially dangerous for having the debugger enabled without notice in non-development scenarios. This removes this option and changes configure to enable for clarity.

    Not marking as breaking as the configure function is not currently used.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    N/A

    Integration Instructions

    N/A




🐛 Bug Fixes

  • component params: Bugfix and additional testing @Javagedes (#848)
    Change Details
      ## Description

    While writing tests in this same commit, a bug was found in the param initialization / validation logic for ConfigMut. The wrong panic message was being displayed when there was a conflict in parameter accesses for a param function. This commit fixes that bug.

    This commit also increases test coverage for the param module.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    CI

    Integration Instructions

    N/A




📖 Documentation Updates

  • Component Params: Only validation on debug builds @Javagedes (#854)
    Change Details
      ## Description

    Fully described in #849, this commit changes all validation for UB in component function parameters to only be present in debug builds. This is a performance and size optimization that can be made because the function interfaces are static and do not change at runtime.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    CI

    Integration Instructions

    N/A




  • Fix documentation URLs @vineelko (#852)
    Change Details
      ## Description

    Fix documentation URLs

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    NA

    Integration Instructions

    NA




  • patina: Add a link to the book in the crate docs @cfernald (#850)
    Change Details
      As many folks looking for Patina may first stumble on the patina page in doc.rs, it should redirect used to look at the book.
    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    N/A

    Integration Instructions

    N/A




  • Docs: Update Debugger Recommendations @os-d (#844)
    Change Details
      ## Description

    This updates the patina docs to reflect that it is recommended to have a PCR7 measurement reflecting that the debugger is enabled and that for FV size considerations, it is recommended that debug builds have the debugger enabled to accommodate the size needs easily.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    N/A.

    Integration Instructions

    N/A.




  • Docs: Add Recommendation to Use Debugger Feature Flag @os-d (#843)
    Change Details
      ## Description

    After analysis with cargo-bloat, it has been determined that the debugger, even when disabled, adds 60k - 200k of file size to a platform, depending on the platform. This updates the patina docs to recommend a feature flag to enable the debugger in order to save this space when it is not in use.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    N/A.

    Integration Instructions

    N/A.




Full Changelog: patina-v11.2.0...v11.3.0