Skip to content

Releases: microsoft/mu_devops

v5.0.0

21 Jun 15:25
Compare
Choose a tag to compare

What's Changed

Note: #201 will also update Mu DevOps repos to v5.0.0.

Repos were moved to v4.0.5 after the release was made (before this release).


  • .sync/Version.njk: Update Mu repos to Mu DevOps v4.0.5 @makubacki (#203)
    Change Details
      Changes since last release: https://github.com/microsoft/mu_devops/compare/v4.0.0...v4.0.5

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

    In particular, this rolls out an update to the issue labeler action
    to bring it up to latest.




⚠️ Breaking Changes

  • Add N, N-1, and main branch release drafting support [Rebase \& FF] @makubacki (#201)
    Change Details
      Resolves #197

    Two commits.

    Add N, N-1, and main branch release drafting

    Updates the ReleaseDrafter.yml workflow to filter the base ref to
    use when composing the release draft based on the GitHub trigger
    context. This allows simultaneous release drafting in repos that
    use release branches while repos with non-release branches (e.g.
    main branch) are not impacted.

    Adds a variable to Version.njk to track the previous Mu release
    branch name. This files continues to serve as a single location
    where the release branches are defined.

    Updates the file sync process to sync the release drafter config
    file as needed for the corresponding repo.

    .sync/Version.njk: Update Mu repos to Mu DevOps v5.0.0

    Changes since last release:
    v4.0.5...v5.0.0

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

    A major release is being made because of a change in the file names of
    config files passed to the release drafter workflow.

    Note: v5.0.0 is used in anticipation of the version created by this
    change (since it will roll the major version).


    How This Supports Ongoing Mu Release Branches

    As of this PR, the following branches are N and N-1:

    • N: release/202302
    • N-1: release/202208

    Each of those branches in each repo currently has a synced release-drafter.yml
    file that sets up a branch push trigger for its branch name. This will cause pushes
    (PR completions) to that branch to trigger the ReleaseDrafter.yml workflow here
    in Mu DevOps.

    This workflow compares the latest values for latest_mu_release_branch and
    previous_mu_release_branch in .sync/Version.njk to the triggering branch (github.ref)
    to determine if there's a match. If there is, either the release-draft-config-n.yml
    or release-draft-config-n-1.yml is respectively used. This means, if a branch
    (like release/202208) eventually becomes "N-2", it will simply not match and no
    longer have release notes/versioning auto drafted.

    Those release drafter config files are specially templatized during syncing to specify
    commitish base refs (the branch name) to filter for drafting the notes. This means
    a release/202208 submission will filter to release/202208 changes.

    Since the file sync is always active for the "current branch" in a repo. This means that
    over time, each release branch in a repo will have its own relative N and N-1 release
    drafter config files that stay in the branch. ReleaseDrafter.yml uses the default
    branch config files so the N and N-1 config files should match the latest and
    previous values in .sync/Version.njk.




🚀 Features & ✨ Enhancements

  • Add N, N-1, and main branch release drafting support [Rebase \& FF] @makubacki (#201)
    Change Details
      Resolves #197

    Two commits.

    Add N, N-1, and main branch release drafting

    Updates the ReleaseDrafter.yml workflow to filter the base ref to
    use when composing the release draft based on the GitHub trigger
    context. This allows simultaneous release drafting in repos that
    use release branches while repos with non-release branches (e.g.
    main branch) are not impacted.

    Adds a variable to Version.njk to track the previous Mu release
    branch name. This files continues to serve as a single location
    where the release branches are defined.

    Updates the file sync process to sync the release drafter config
    file as needed for the corresponding repo.

    .sync/Version.njk: Update Mu repos to Mu DevOps v5.0.0

    Changes since last release:
    v4.0.5...v5.0.0

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

    A major release is being made because of a change in the file names of
    config files passed to the release drafter workflow.

    Note: v5.0.0 is used in anticipation of the version created by this
    change (since it will roll the major version).


    How This Supports Ongoing Mu Release Branches

    As of this PR, the following branches are N and N-1:

    • N: release/202302
    • N-1: release/202208

    Each of those branches in each repo currently has a synced release-drafter.yml
    file that sets up a branch push trigger for its branch name. This will cause pushes
    (PR completions) to that branch to trigger the ReleaseDrafter.yml workflow here
    in Mu DevOps.

    This workflow compares the latest values for latest_mu_release_branch and
    previous_mu_release_branch in .sync/Version.njk to the triggering branch (github.ref)
    to determine if there's a match. If there is, either the release-draft-config-n.yml
    or release-draft-config-n-1.yml is respectively used. This means, if a branch
    (like release/202208) eventually becomes "N-2", it will simply not match and no
    longer have release notes/versioning auto drafted.

    Those release drafter config files are specially templatized during syncing to specify
    commitish base refs (the branch name) to filter for drafting the notes. This means
    a release/202208 submission will filter to release/202208 changes.

    Since the file sync is always active for the "current branch" in a repo. This means that
    over time, each release branch in a repo will have its own relative N and N-1 release
    drafter config files that stay in the branch. ReleaseDrafter.yml uses the default
    branch config files so the N and N-1 config files should match the latest and
    previous values in .sync/Version.njk.




Full Changelog: v4.0.5...v5.0.0

v4.0.5

21 Jun 01:12
ab3bf35
Compare
Choose a tag to compare

What's Changed

  • .github/workflows/Labeler.yml: Update workflows @makubacki (#202)
    Change Details
      Updates `github/issue-labeler` from `v2.5` to `v3.1`.

    Includes the following fixes (occassionally impacting Mu PRs):

    • Issue labels that do not match a regex will no longer be removed
    • Support empty body and only remove existing labels

    Updates actions/labeler from v4 to v4.1.0.

    No major known changes that impact Mu DevOps.




Full Changelog: v4.0.4...v4.0.5

v4.0.4

20 Jun 03:39
47beda0
Compare
Choose a tag to compare

What's Changed

  • Remove the azure user path work-around. @cfernald (#200)
    Change Details
      1. Updates the container to include container fix for azure pipeline path 2. Removes the path work-around from the pipeline files

  • Add the azure container user local bin to container path @cfernald (#199)
    Change Details
      This removes the need for pipeline files to add this path, and simplified use of the container.

Full Changelog: v4.0.3...v4.0.4

v4.0.3

08 Jun 03:20
b2e7224
Compare
Choose a tag to compare

What's Changed

  • Publish coverage on even with skipped builds @kuqin12 (#198)
    Change Details
      Current pipeline job for publishing coverage will skip the jobs if there are a few jobs being skipped. However, some skips are expected, such as some jobs that should be run on selfhosted agents, but no agents are available on the public site.

    This change will update the publish coverage job's condition to ignore the skipped conditions, such that it will always run the job as long as there the previous job(s) not failing or being cancelled.




  • Notebooks/PullRequests.github-issues: Bump completed PR start date @makubacki (#194)
    Change Details
      Updates the year from `2022` to `2023` to reduce the total number of PRs returned (which is limited by GitHub).

  • .sync/dependabot: Update PIP modules weekly @makubacki (#195)
    Change Details
      Checks for PIP module updates weekly instead of daily. The number of updates was too frequent for CI resources and reviewer overhead.

    Also explicitly sets the submodule weekly update day to Tuesday so
    PIP and submodules updates can both be available Wednesday morning
    for review and merge.




Full Changelog: v4.0.2...v4.0.3

v4.0.2

02 Jun 14:40
d9bd295
Compare
Choose a tag to compare

What's Changed

  • .sync/Files.yml: Sync SECURITY.md to mu\_devops @makubacki (#189)
    Change Details
      Additionally syncs the file to mu_devops since it is missing. Also prevents the `microsoft-github-policy-service` bot from creating PRs to add a SECURITY.md file.

🐛 Bug Fixes

  • Fixing the sync file being empty and update the version to be used @kuqin12 (#188)
    Change Details
      This change fixed an issue on auto-populated sync files by adding raw text tags around the applicable sections.

    It also updated the tag version to v4.0.0 to pick up the latest change of supporting self-hosted agents.




Full Changelog: v4.0.1...v4.0.2

v4.0.1

01 Jun 19:14
c46c379
Compare
Choose a tag to compare

What's Changed

🐛 Bug Fixes

  • .sync/azure\_pipelines/MuDevOpsWrapper.yml: Fix Version.njk path @makubacki (#185)
    Change Details
      Update the relative path for the proper number of parent directories.

Full Changelog: v4.0.0...v4.0.1

v4.0.0

31 May 22:11
9868552
Compare
Choose a tag to compare

What's Changed

  • .sync/Version.njk: Update Mu repos to Mu DevOps v3.0.0 @makubacki (#183)
    Change Details
      Changes since last release: https://github.com/microsoft/mu_devops/compare/v2.5.3...v3.0.0

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

    A major release is being made because of a change in the container
    images used in Project Mu pipelines.




⚠️ Breaking Changes

  • Adding support for self-hosted pools @kuqin12 (#154)
    Change Details
      This change added support for self-hosted agent pools for potentially onboarding Windows on ARM systems as there is no plan for Microsoft hosted Windows ARM agents as of today.

    The main change is around the flag of installing tools or not. The existing routine will expect the incoming flag being a boolean type, which does not work when this parameter is being populated using a variable (string). This change will update the flag to string type as well.

    After changing, the only file being synced to individual repos is MuDevOpsWrapper.yml. And each repo can configure their own build matrix for build target, architecture list, run on selfhost agents or not, etc.

    This is considered a breaking change, due to:

    1. Steps/PrGate.yml updated the extra_install_steps to be invoked before stuart_setup and stuart_update. But this change does not knowingly break the existing consumers.
    2. Jobs/PrGate.yml updated the parameters to accept parameters.build_matrix, which needs the consumers to update top level yaml script to comply with the updated template.

🚀 Features & ✨ Enhancements

  • Adding support for self-hosted pools @kuqin12 (#154)
    Change Details
      This change added support for self-hosted agent pools for potentially onboarding Windows on ARM systems as there is no plan for Microsoft hosted Windows ARM agents as of today.

    The main change is around the flag of installing tools or not. The existing routine will expect the incoming flag being a boolean type, which does not work when this parameter is being populated using a variable (string). This change will update the flag to string type as well.

    After changing, the only file being synced to individual repos is MuDevOpsWrapper.yml. And each repo can configure their own build matrix for build target, architecture list, run on selfhost agents or not, etc.

    This is considered a breaking change, due to:

    1. Steps/PrGate.yml updated the extra_install_steps to be invoked before stuart_setup and stuart_update. But this change does not knowingly break the existing consumers.
    2. Jobs/PrGate.yml updated the parameters to accept parameters.build_matrix, which needs the consumers to update top level yaml script to comply with the updated template.

Full Changelog: v3.0.0...v4.0.0

v3.0.0

26 May 19:50
4fd77b4
Compare
Choose a tag to compare

What's Changed

⚠️ Breaking Changes

  • .sync/Version.njk: Switch to Project Mu Ubuntu 22 containers @makubacki (#182)
    Change Details
      Updates the default Linux build container from Fedora 37 to Ubuntu 22.

    The container feed switched from ghcr.io/tianocore/containers
    to ghcr.io/microsoft/mu_devops.

    Note: This is marked as a breaking change because of the distro change
    from Fedora to Ubuntu. Commands run inside the container such as those
    interacting with the package manager need to be reviewed and updated.




Full Changelog: v2.5.4...v3.0.0

v2.5.4

26 May 19:16
cc7f6cc
Compare
Choose a tag to compare

What's Changed

  • .sync/Files.yml: Sync release drafter to additional repos @makubacki (#181)
    Change Details
      More repos with `release` branches are moving to versioned releases so the release drafter workflow is synced to them in this change.

    New repos:

    • microsoft/mu_common_intel_min_platform
    • microsoft/mu_oem_sample
    • microsoft/mu_plus
    • microsoft/mu_silicon_arm_tiano
    • microsoft/mu_silicon_intel_tiano
    • microsoft/mu_tiano_plus


Full Changelog: v2.5.3...v2.5.4

v2.5.3

25 May 21:43
68801f5
Compare
Choose a tag to compare

What's Changed

  • .sync/Version.njk: Update latest Mu release branch to 202302 @makubacki (#179)
    Change Details
      Updates the `latest_mu_release_branch` value substituted into sync templates from `release/202208` to `release/202302`.

  • Add a dependabot label and exclude it from release notes @makubacki (#177)
    Change Details
      The `release-drafter` GitHub action has an `exclude-contributors` configuration option that excludes usernames from the final contributors. This does not appear to work for dependabot.

    The exclude-labels configuration option does work. This change
    adds a new label type:dependabot to dependabot PRs (via the
    dependabot config file) and uses the exclude-labels option in
    the release-drafter config file to exclude those PRs from release
    notes.

    Submodules are currently updated by either dependabot or the
    submodule-release-updater GitHub action local to mu_devops. Since
    submodules are recursive to repo consumers and to keep those
    consistently in the release notes, the type:dependabot label is
    not added to dependabot submodule updates keeping those updates in
    the release notes.




  • Initial check-in for MU Linux container and pipelines @cfernald (#175)
    Change Details
      Creates a Ubuntu-22 based image for building Project MU. These changes are largely based on the infrastructure from [tianocore/containers](https://github.com/tianocore/containers).

    Sizes:
    Build - 2.74 Gb
    Test - 3.63 Gb
    Dev - 3.63 Gb




  • .sync/dependabot: Ignore additional submodules with versioned releases @makubacki (#176)
    Change Details
      The following repos recently moved to semantic versioning so they can be updated by their versioned releases now instead of dependabot checking for the latest commit hash.


📖 Documentation Updates

  • Readme.rst: Reorganize and refresh content @makubacki (#180)
    Change Details
      1. Add a Table of Contents 2. Update Conventions section 3. Add a Containers section 4. Add missing workflow sections 5. Sort workflow sections so they're easier to find in the Table of Contents 6. Other minor miscellaneous updates

Full Changelog: v2.5.2...v2.5.3