Skip to content

Releases: microsoft/mu_devops

v7.0.1

14 Oct 00:03
1082f35
Compare
Choose a tag to compare

What's Changed

Full Changelog: v7.0.0...v7.0.1

v7.0.0

09 Oct 17:56
d7907bf
Compare
Choose a tag to compare

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 to 12.

    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.0

    General release info: https://github.com/microsoft/mu_devops/releases




Full Changelog: v6.5.2...v7.0.0

v6.5.2

30 Sep 00:07
88d04c3
Compare
Choose a tag to compare

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 -Z flag, 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_report merged and being used to clean up the code coverage data.




Full Changelog: v6.5.1...v6.5.2

v6.5.1

23 Sep 02:19
2318750
Compare
Choose a tag to compare

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

22 Sep 23:38
e2f5540
Compare
Choose a tag to compare

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.

🚀 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

22 Sep 19:04
2402fe9
Compare
Choose a tag to compare

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

22 Sep 17:22
34c6988
Compare
Choose a tag to compare

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 test
    

    This means passing packages to a single -p parameter 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 coverage is 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 Html to html for 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

v6.3.0

18 Sep 16:25
ce52749
Compare
Choose a tag to compare

What's Changed

🚀 Features & ✨ Enhancements

  • .sync/workflows/leaf/codeql: Remove build dirs @makubacki (#242)
    Change Details
      Intermediate build files are sometimes left in build directories during CodeQL execution. This is particularly more prevalent in module directories that contain Rust files. These files have very long names, for example:
    D:\a\mu_tiano_platforms\Build\QemuQ35Pkg
      \DEBUG_VS2022\X64\MsCorePkg\HelloWorldRustDxe\HelloWorldRustDxe
      \DEBUG\x86_64-unknown-uefi\debug\incremental
      \rust_boot_services_allocator_dxe-2f5m6unckl0t8
      \s-gorl2pbwn9-18oh534-e4zntah436u40i7hceav0825j
    

    CodeQL actions have well known and unresolved issues with long paths
    when they're scanning directories for files.

    The directories where these files may be left are not needed after
    build and it takes about 3 seconds to remove them so that is done
    in this change.


    Tested on fork. Example:
    https://github.com/makubacki/mu_tiano_platforms/actions/runs/6204825673




Full Changelog: v6.2.0...v6.3.0

v6.2.0

15 Sep 21:54
bdffdb2
Compare
Choose a tag to compare

What's Changed

Read more

v6.1.1

30 Aug 23:08
Compare
Choose a tag to compare

What's Changed

  • Add mu\_tiano\_platforms to Rust Sync @makubacki (#237)
    Change Details
      Two changes:

    Add extra_cargo_steps parameter in MuDevOpsWrapper.yml

    The extra_cargo_steps parameter allows a repo extending
    MuDevOpsWrapper.yml to specify a step list that should be executed
    before running the standard set of cargo commands in the repo
    (to build and test).


    Opt mu_tiano_platforms into Rust file sync

    Syncs the normal set of workspace-level Rust files to the
    mu_tiano_platforms repo.




  • .sync/RustSetupSteps.yml: Update leaf file to match current @makubacki (#236)
    Change Details
      Updates the workflow to be able to build Rust code if present in a repo. The Rust toolchain is installed by default, so this simply installs `cargo make` and installs `rust-src`.

    cargo-make is cached so it can be reused across runs until the
    next version is published in the upstream repo.




Full Changelog: v6.1.0...v6.1.1