Improved pull request experience

In this sprint, we're adding a number of enhancements to the pull request experience. These include making optional checks more visible, enabling Ctrl-clicks to open a new tab, adding location to annotations, and improving the comment filtering layout.

Check out the Features list below for details.

Features

Azure Boards

Azure Repos

Azure Pipelines

Azure Boards

Removing "Assigned To" rule on Bug work item type

There are several hidden system rules across all the different work item types in Agile, Scrum, and CMMI. These rules have existed for over a decade and have generally worked fine without any complaints. However, there are a couple of rules that have run out their welcome. One rule in particular has caused a lot of pain for new and existing customers and we have decided it was time to remove it. This rule exists on the Bug work item type in the Agile process.

"Set the Assigned value to Created By when state is changed to Resolved"

We received a lot of your feedback about this rule. In response, we went ahead and removed this rule from the Bug work item type in the Agile process. This change will affect every project using an inherited Agile or a customized inherited Agile process. For those customers who like and depend on this current rule, please see our blog post on the steps you can take to re-add the rule in using custom rules.

Azure Repos

A batch of improvements to the Pull Request experience

The new pull request experience has been in preview for a few months now. We've been addressing feedback we received from many of you. We are happy to announce the following improvements that you will see with this sprint's deployment:

Make the optional checks more visible

Customers use optional checks to draw a developer's attention to potential issues. In the previous experience, it used to be obvious when these checks fail. However, that is not the case in the preview experience. A big, green checkmark on the required checks masks the failures in optional checks. Users could only discover that optional checks failed by opening the checks panel. Developers don't often do that when there is no indication of a problem. In this deployment, we made the status of optional checks more visible in the summary.


show the optional checks


Ctrl-clicks on menu items

Tab menus on a PR didn't support Ctrl-click. Users often open new browser tabs as they review a pull request. This has been fixed.

Location of [+] annotation

The tree listing of files in a PR shows an annotation [+] to help authors and reviewers identify new files. Since the annotation was after the ellipsis, it was often not visible for longer file names.


show locations of annotations

PR updates dropdown regain timing information

The dropdown to select update and compare files in a PR lost an important element in the preview experience. It didn't show when that update was made. This has been fixed.


PR updates dropdown missing timing information

Improved comment filter layout

When filtering comments on the summary page of a pull request, the drop-down was on the right, but the text was left-aligned. This has been fixed.


Improved comment filter layout

We have more improvements planned over the next two sprints.

Azure Pipelines

Updating Node in the Azure Pipelines agent

Update from what was originally published: Due to an incompatibility with Red Hat Enterprise Linux 6 and Node 14, we've suspended work on Node 14 and will first focus on getting to Node 10.

This release, we've begun our move away from Node 6 and towards a supported Node version as the preferred runtime for Azure Pipelines tasks. We've updated the first batch of in-the-box tasks to run on Node 10. This change marks the start of a process to remove Node 6 from the agent by default. Node 6 has exited long-term support and is often flagged as a security risk by automated scanners. While we believe our use of Node 6 is unlikely to be subject to most of the potential flaws, it's nevertheless important for us to get tasks onto a supported runtime. In calendar year 2021, we plan to begin shipping a version of the agent without Node 6.

If you use any of the Node 10-enabled tasks, your self-hosted agents will update themselves to run the new versions of tasks. Other than that, there should be no impact for most customers. On the other hand, if you're the author of any tasks, you should begin updating them to run on Node 10. In your task.json, under execution, you can update from Node to Node10. If you need to support older server versions, you can leave your Node entrypoint. Instances of Azure DevOps which understand the Node 10 handler will choose it by default, and those which don't will fall back to your Node 6 implementation.

Save an unhealthy agent for investigation in scale set agents

When you use scale set agents, Azure Pipelines manages the scaling up and down of agent instances. When Azure Pipelines detects an unhealthy VM in the scale set, it will log the issue to the Pool Diagnostics UI and attempt to delete the VM. There are many reasons why a VM can be unhealthy: the scale set's network configuration may have prevented the Azure Pipelines extension from downloading the latest agent, your custom script extension may have failed, or the scale set VM image may have a pending reboot or pending Windows Updates.


check agent

By deleting unhealthy VMs, Azure Pipelines keeps your agent pool optimized to run CI/CD jobs. In some cases, you may be able to use the Azure Pipelines diagnostics page (shown above) or the Azure diagnostics page to debug this problem. However, in many cases, the best way to diagnose the problem is to log into the VM and review the agent logs and event viewer logs. At present, this is not easy to do since the unhealthy VM is deleted automatically.

With this release, we enhanced the diagnosability of unhealthy VMs by giving you the ability to save an unhealthy agent for investigation.

When an unhealthy agent is saved, you can connect to the virtual machine, debug, and retrieve any logs you need. When finished, you can release the agent and the associated VM. For more information, see the section on troubleshooting unhealthy agents.

ubuntu-latest pipelines will soon use Ubuntu-20.04

Ubuntu 20.04 will soon be the default version for the ubuntu-latest label in Azure Pipelines. This change will be rolled out over a period of several weeks beginning on November 30.

If you see any issues with your Ubuntu pipelines:

  • File an issue in the virtual-environments repository
  • Switch back to Ubuntu 18.04 by specifying ubuntu-18.04 as the vmImage in your pipeline. We will continue to support Ubuntu 18.04.

Note that ubuntu-18.04 and ubuntu-20.04 may differ in both pre-installed tools and the default versions of tools. For information on all the differences, see https://github.com/actions/virtual-environments/issues/1816.

Next steps

Note

These features will roll out over the next two to three weeks.

Head over to Azure DevOps and take a look.

How to provide feedback

We would love to hear what you think about these features. Use the help menu to report a problem or provide a suggestion.

Make a suggestion

You can also get advice and your questions answered by the community on Stack Overflow.

Thanks,

Matt Cooper