Заметки о выпуске Team Foundation Server 2018 Team Foundation Server 2018 Release Notes

Примечание

Если вы открываете локализованную версию этой страницы и хотите просмотреть актуальные материалы, посетите страницу "Заметки о выпуске" на английском языке.If you are accessing this page from a non-English language version, and want to see the most up-to-date content, please visit this Release Notes page in English.

Совет

Язык страницы можно переключить в ее нижней части.You can switch the page language at the bottom of this page. Нажмите кнопкуClick the значок , найдите свой язык или выберите его в списке доступных языков. icon, search for your language, or select from the list of available languages.

Download the latest version of Team Foundation Server

Дополнительные сведения о Team Foundation Server 2018 см. на странице Требования к Team Foundation Server и совместимость.To learn more about Team Foundation Server 2018, see the Team Foundation Server Requirements and Compatibility page.


Видео о новых возможностях в TFS 2018What's New in TFS 2018 video


ОтзывыFeedback

Мы будем рады узнать ваше мнение!We’d love to hear from you! Сообщить о проблеме и отслеживать ее можно с помощью портала сообщества разработчиков, а получить совет можно на сайте Stack Overflow.You can report a problem and track it through Developer Community and get advice on Stack Overflow. Как всегда, если вы хотите, чтобы мы уделили больше внимания тем или иным аспектам, перейдите на портал UserVoice, чтобы добавить свою идею или проголосовать за имеющиеся.As always, if you have ideas on things you’d like to see us prioritize, head over to UserVoice to add your idea or vote for an existing one.


Дата выпуска: 15 ноября 2017 г.Release Date: November 15, 2017

Сводка: обновления Team Foundation Server 2018Summary: Team Foundation Server 2018 Updates

Мы добавили в Team Foundation Server 2018 много новых и полезных функций.We've added a lot of new value to Team Foundation Server 2018. Вот некоторые из них:Some of the highlights include:

Сборка XAMLXAML Build

Изначально Сборка XAML была отмечена как удаленная из TFS 2018 RTW и обновления 1.We had originally listed XAML build as removed from TFS 2018 RTW and Update 1. Однако из-за этого очень многим клиентам не удалось обновить ее или пришлось обращаться в службу поддержки, чтобы повторно включить ее после обновления.However, that resulted in too many customers being unable to upgrade or having to contact support to re-enable it after the upgrade completed. В TFS 2018 с обновлением 2 сборка XAML включена, но использовать ее не рекомендуется.In TFS 2018 Update 2, XAML build is enabled but has been deprecated. Это значит, что мы больше не занимаемся разработкой сборки XAML, и Microsoft Test Manager (MTM) больше не поддерживает сборки XAML.This means there is no further investment in XAML Build, and Microsoft Test Manager (MTM) no longer supports using XAML builds. Рекомендуется перейти на новые форматы определений сборок.We highly recommend converting to one of the newer build definition formats. Вы можете по-прежнему подключаться к контроллерам XAML и запускать сборки XAML в TFS 2018 с обновлением 2.You may continue to connect your XAML controllers and run XAML builds with TFS 2018 Update 2. Дополнительные сведенияMore info

Компоненты, удаленные в TFS 2018 RTWFeatures Removed in TFS 2018 RTW


Подробные сведения. Новые возможности этого выпускаDetails: What's New in this Release

Отслеживание рабочих элементов Work Item Tracking

Мастер создания проектов в Интернете Project Creation Wizard on the web

Мы улучшили процесс создания командного проекта через веб-интерфейс.We have improved the experience for creating a Team Project from web access. Теперь он включает большую часть функций, доступных при создании командного проекта в клиенте Visual Studio.It now includes most of the features available when you create a Team Project in the Visual Studio client. Преимущество веб-интерфейса в том, что вам не требуется соответствующая версия Visual Studio.The benefit of using the web interface is that you don't need a matching Visual Studio version. Разница в использовании Visual Studio и веб-версии заключается в том, что при работе с веб-версией нельзя подготовить отчеты в SSRS.The difference of using Visual Studio or the web version is that the web version doesn’t provision your reports in SSRS. При использовании веб-версии процесса создания командного проекта можно выполнить команду tfsconfig на уровне приложения для подготовки или обновления отчетов SSRS.If you used the web version of the Team Project creation, you can run the tfsconfig command on the Application Tier to provision or update the SSRS reports. Дополнительные сведения см. в разделе о добавлении отчетов проекта.See details in add project reports.

Диспетчер шаблонов процессов в ИнтернетеProcess Template Manager on the web

В TFS 2018 для отправки шаблонов процессов можно использовать веб-интерфейс.With TFS 2018, you can use web access to upload your process templates. Работать с веб-интерфейсом гораздо проще, так как нет необходимости устанавливать соответствующую версию Visual Studio для взаимодействия с вашими шаблонами процессов.The web interface is a much easier experience because you don't have to install the correct version of Visual Studio to interact with your process templates. В обновлении 4 для Visual Studio 2017 и более ранних версиях по-прежнему отображается диалоговое окно диспетчера шаблонов процессов, хотя мы рекомендуем использовать веб-интерфейс.Visual Studio 2017 Update 4 and earlier will still show the Process Template Manager dialog, although we recommend using the web interface. В обновлении 5 для Visual Studio 2017 и более поздних версиях перенаправление на веб-интерфейс выполняется автоматически.Visual Studio 2017 Update 5 and later will redirect you to the web automatically.

Настройка заголовка формы рабочего элемента Customize the work item form header

Теперь можно настроить область заголовка формы рабочего элемента, заменив существующие или скрыв маловажные элементы управления.You can now customize the work item form header area by replacing the existing controls, or hiding controls, that are not relevant to your process. Таким образом можно заменить путь к области на пользовательское поле команды, скрыть поле итерации, если команды больше ориентированы на работу с канбаном, и заменить поле причины на пользовательское поле.This will enable replacing Area path with a custom Team field, hiding Iteration if your teams are more Kanban focused, and replacing Reason with a custom field. Скрыть или заменить поле состояния невозможно.The State field cannot be hidden or replaced.

Дополнительные сведения см. в документации по элементам WebLayout и Control.See the documentation for WebLayout and Control elements for more information.

Форма рабочего элемента для мобильных устройств Mobile work item form

У нас есть полноценный процесс, в котором оптимизирован интерфейс рабочих элементов (рис. 1).We have a full end-to-end experience that includes an optimized look and feel for work items (Figure 1). Он позволяет легко работать с элементами, которые были вам назначены, которые вы отслеживаете или просматривали либо недавно изменяли, на телефоне.It provides an easy way to interact with items that are assigned to you, that you’re following, or that you have visited, or edited recently, from your phone.

Mobile work item query
(Рисунок 1) Запрос рабочих элементов с мобильного устройства(Figure 1) Mobile work item query

Наряду с привлекательным внешним видом, этот интерфейс поддерживает оптимизированные элементы управления для всех типов полей (рис. 2).Along with the good looks, this experience supports optimized controls for all field types (Figure 2).

Mobile work item form
(Рисунок 2) Форма рабочего элемента для мобильных устройств(Figure 2) Mobile work item form

Новая реализация навигации на мобильных устройствах (рис. 3) позволяет пользователям связываться с другими компонентами TFS, поддерживающими мобильный доступ, и вернуться на полнофункциональный классический сайт, если им требуется взаимодействие с другими центрами.With the new mobile navigation (Figure 3), users can reach any other mobile-ready parts of TFS and get back to the full desktop site in case they need to interact with other hubs.

Mobile navigation
(Рисунок 3) Навигация на мобильных устройствах(Figure 3) Mobile navigation

Фильтрация по невыполненной работе, канбан-доскам, спринтам и запросамFiltering on backlogs, Kanban boards, sprints, and queries

Все функции отслеживания рабочих элементов в таблице (запросы, невыполненная работа, канбан-доски, невыполненная работа по спринтам и управление тестовыми случаями) теперь используют общую согласованную функцию фильтрации (рис. 4).All of our work item tracking grid experiences (queries, backlogs, Kanban boards, sprints backlogs, and test case management) now make use of our common, consistent filtering component (Figure 4). Помимо применения фильтра по ключевым словам для отображаемых столбцов и выбора тегов, можно также использовать фильтрацию по типам рабочих элементов, состояниям и полю "Кому назначено", что позволяет быстрее найти искомые рабочие элементы.Beyond applying a keyword filter across displayed columns and selecting tags, you can also filter on work item types, states, and assigned to, in order to quickly get to the work items you are looking for.

Filtering on query
(Рисунок 4) Фильтрация по запросам(Figure 4) Filtering on queries

Развертывание для отображения пустых полей на карте канбанаExpand to show empty fields on a Kanban card

Сейчас вы можете добавлять дополнительные поля на карту, а затем скрывать пустые поля (рис. 5) в параметрах доски, чтобы удалить с доски ненужные элементы.Today, you have the option to add additional fields to a card and then hide empty fields (Figure 5) in board settings to remove unnecessary clutter from the board. Недостаток использования этой функции заключается в том, что после скрытия пустого поля единственный способ изменить это поле — открыть форму рабочего элемента.The drawback to this feature was that once an empty field was hidden, the only way to update the field was to open the work item form. Благодаря новой функции развертывания на картах канбана вы можете скрывать пустые поля на доске и при этом переходить к изменению определенного поля на карте одним щелчком мыши.With the newly available expand option on Kanban cards, you can now benefit from hiding empty fields across the board, but still have single click access to update a particular field on a card. Просто наведите указатель мыши на карту и найдите шеврон, направленный вниз, в нижней части карты, чтобы изменить скрытое поле.Simply hover over the card and look for the down chevron at the bottom of the card to update the hidden field.

Hidden field
(Рисунок 5) Скрытое поле на карте канбана(Figure 5) Hidden field on Kanban card

Щелкните шеврон, направленный вниз, в нижней части карты, чтобы изменить поле (рис. 6).Click the down chevron at the bottom of the card to update the field (Figure 6).

Update hidden field
(Рисунок 6) Изменение скрытого поля на карте канбана(Figure 6) Update hidden field on Kanban card

Расширения, блокирующие сохранение рабочего элементаExtensions block work item save

Страницы, группы и пользовательские элементы управления формы рабочего элемента теперь могут блокировать сохранение рабочего элемента для проверки данных и гарантии того, что пользователь указал все необходимые сведения, прежде чем сохранить форму рабочего элемента.Work item form custom controls, groups, and pages can now block work item save to validate data and ensure the user fills out any required information before saving the work item form.

Встроенные планы доставки надстроекInline add on Delivery Plans

Идеи по улучшению продукта могут возникнуть в любой момент, поэтому мы упростили добавление новых функций непосредственно в планы доставки (рис. 7).New feature ideas can arrive at any moment, so we’ve made it easier to add new features directly to your Delivery Plans (Figure 7). Просто нажмите кнопку Создать элемент, появляющуюся при наведении указателя мыши, введите имя и нажмите клавишу ВВОД.Simply click the New item button available on hover, enter a name, and hit enter. Будет создана функция с требуемыми путем к области и путем итерации.A new feature will be created with the area path and iteration path you’d expect.

Inline add on delivery plans
(Рисунок 7) Встроенные планы доставки надстроек(Figure 7) Inline add on delivery plans

Управление версиями Version Control

Вилки Forks

В TFS 2018 добавлена поддержка вилок Git (рис. 8).TFS 2018 adds support for Git forks (Figure 8). Вилка — это копия репозитория на стороне сервера.A fork is a server-side copy of a repository. Используя вилки, вы можете разрешить широкому кругу пользователей принимать участие в вашем репозитории, не предоставляя им прямой доступ к фиксации.Using forks, you can allow a broad range of people to contribute to your repository without giving them direct commit access. Вместо этого они будут фиксировать свою работу в собственной вилке репозитория.Instead, they commit their work to their own fork of the repository. Это дает вам возможность проверять их изменения в запросе на включение внесенных изменений до принятия этих изменений в центральном репозитории.This gives you the opportunity to review their changes in a pull request before accepting those changes into the central repository.

Git forks
(Рисунок 8) Вилки Git(Figure 8) Git forks

GVFS GVFS

Теперь поддерживается виртуальная файловая система Git (GVFS).Git Virtual File System (GVFS) is now supported. GVFS позволяет масштабировать репозитории Git до миллионов файлов благодаря виртуализации и оптимизации работы Git в файловой системе.GVFS allows Git repositories to scale to millions of files by virtualizing and optimizing how Git operates on the filesystem.

Создание папки в репозитории с помощью веб-службыCreate a folder in a repository using web

Теперь вы можете создавать папки в репозиториях Git и TFVC через Интернет (рис. 9).You can now create folders via the web in your Git and TFVC repositories (Figure 9). Эта функция пришла на смену расширению для управления папками, которое будет выводиться из использования.This replaces the Folder Management extension, which will now undergo the process of deprecation.

Чтобы создать папку, нажмите Создать > Папка на панели команд или в контекстном меню:To create a folder, click New > Folder in either the command bar or context menu:

New folder option
(Рисунок 9) Команда для создания папки(Figure 9) New folder option

При использовании TFVC необходимо указать имя папки, а затем вернуть ее.For TFVC, you’ll specify a folder name and then check it in. При использовании Git необходимо также указать имя файла, так как пустые папки не допускаются, при необходимости изменить файл, а затем зафиксировать его.For Git, because empty folders aren’t permitted, you’ll also have to specify a file name, optionally edit the file, then commit it.

Кроме того, при работе с Git в диалоговом окне Новый файл (рис. 10) теперь можно вводить символы косой черты для создания вложенных папок.Additionally, for Git, The New file dialog (Figure 10) has been enhanced to accept slashes to create subfolders.

New file dialog
(Рисунок 10) Диалоговое окно создания файла(Figure 10) New file dialog

Мини-карта файлаFile minimap

В процессе просмотра или редактирования файла теперь можно просмотреть его мини-карту с краткой информацией о коде (рис. 11).You can now view a minimap of a file as you view or edit to give you a quick overview of the code (Figure 11). Чтобы включить мини-карту, откройте палитру команд (F1 или щелчок правой кнопкой мыши) и выберите команду Переключить мини-карту.To turn on the minimap, open the Command Palette (F1 or right-click) and select Toggle Minimap.

File minimap
(Рисунок 11) Мини-карта файла(Figure 11) File minimap

Сопоставление скобокBracket matching

При редактировании или просмотре файла справа теперь приводятся указания, помогающие обеспечивать соответствие скобок (рис. 12).When editing or viewing a file, there are now guidelines on the left side to make it easy to match your brackets (Figure 12).

Bracket matching
(Рисунок 12) Сопоставление скобок(Figure 12) Bracket matching

Включение и отключение отображения пробеловToggle white space

При просмотре или редактировании файла теперь можно включать и отключать отображение пробелов.You can now toggle white space on and off when viewing or editing a file. Функция, позволяющая включать и отключать отображение пробелов при поиске различий, пока находится в разработке.We are still developing a feature that will allow you to toggle white space when diff’ing. Чтобы отобразить пробелы (рис. 13), откройте палитру команд (F1 или щелчок правой кнопкой мыши) и выберите команду Переключить пробел. Это позволит различать пробелы и символы табуляции.To view white space (Figure 13), open the Command Palette (F1 or right-click) and select Toggle White Space, which allows you to differentiate between spaces and tabs.

Toggle white space
(Рисунок 13) Включение и отключение отображения пробелов(Figure 13) Toggle white space

Параметр для отключения веб-редактирования репозиториев TFVCSetting to turn off web editing for TFVC repos

Группы разработчиков, которые работают с TFVC, часто используют политики возврата в Visual Studio, чтобы гарантировать высокое качество кода.Teams that use TFVC often use check-in policies in Visual Studio to ensure code quality. Тем не менее, так как политики возврата действуют на стороне клиента, к коду, который изменяется через веб-клиент, эти политики не применяются.However, because check-in policies are enforced on the client, code that is edited on the web isn’t subjected to the same policies.

Мы получили много запросов на реализацию функции отключения веб-редактирования для защиты от изменений, которые обходят политики возврата.Several people have asked for a way to disable web-editing to protect against changes that bypass check-in policies. Мы реализовали такую возможность: теперь вы можете отключить веб-редактирование (добавление, удаление, переименование и изменение) для TFVC для отдельного проекта или репозитория.We’ve enabled a way for you to turn off web-editing (adding, deleting, renaming, and editing) for TFVC on a project/repository basis.

Чтобы запретить веб-редактирование, со страницы Файлы перейдите на страницу Параметры, а затем — Управление версиями (рис. 14).To disallow web-editing from the Files page, go to Settings then Version Control (Figure 14). Щелкните репозиторий TFVC в дереве, перейдите к сводной таблице "Параметры" и снимите флажок Включить веб-редактирование для этого репозитория TFVC.Click on the TFVC repo in the tree, navigate to the Options pivot, and uncheck Enable web-editing for this TFVC repository. По умолчанию веб-редактирование включено.By default, web-editing is enabled.

Примечание

Это изменение не затрагивает редактирование файла сведений (README) на странице обзора проекта.Editing the README from the Project Overview page is unaffected.

Turn off web editing
(Рисунок 14) Отключение веб-редактирования(Figure 14) Turn off web editing

При попытке веб-редактирования проекта, для которого веб-редактирование отключено, вы получите уведомление о том, что эта операция недопустима (рис. 15).If you attempt a web-edit in a project with web-editing disabled, you will be notified that web-editing is not allowed (Figure 15).

Web editing not allowed dialog
(Рисунок 15) Диалоговое окно "Веб-редактирование запрещено"(Figure 15) Web editing not allowed dialog

Совет

Это режим был разработан на основе связанных предложений.This has been developed based on a related suggestion.

Определение устаревших ветвейIdentify stale branches

Вы можете обеспечить более четкую организацию репозитория, удаляя ненужные ветви. Таким образом, командам будет проще находить интересующие их ветви и задавать избранные ветви с необходимым уровнем точности.Keeping your repository clean by deleting branches you no longer need enables teams to find branches they care about and set favorites at the right granularity. Но при наличии большого числа ветвей в репозитории бывает трудно понять, какие из них являются неактивными и могут быть удалены.However, if you have lots of branches in your repo, it can be hard to figure out which are inactive and can be deleted. Теперь стало гораздо проще выявить "устаревшие" ветви (ветви, указывающие на фиксации старше трех месяцев).We’ve now made it easier to identify “stale” branches (branches that point to commits older than 3 months). Для просмотра устаревших ветвей перейдите к сводной таблице Устарело на странице Ветви (рис. 16).To see your stale branches, go to the Stale pivot on the Branches page (Figure 16).

Stale branches
(Рисунок 16) Устаревшие ветви(Figure 16) Stale branches

Поиск удаленной ветви и ее повторное созданиеSearch for a deleted branch and re-create it

Когда ветвь случайно удаляется с сервера, бывает сложно понять, что с ней случилось.When a branch is accidentally deleted from the server, it can be difficult to figure out what happened to it. Теперь можно выполнить поиск удаленной ветви, узнать, кто и когда удалил ее, и повторно создать ее при необходимости.Now you can search for a deleted branch, see who deleted it and when, and re-create it if you wish.

Для поиска удаленных ветвей введите полное имя ветви в поле поиска ветви.To search for a deleted branch, enter the full branch name into the branch search box. Поиск вернет все существующие ветви, соответствующие этому тексту.It will return any existing branches that match that text. Кроме того, можно выполнить поиск точного совпадения в списке удаленных ветвей.You will also see an option to search for an exact match in the list of deleted branches. Щелкните ссылку, чтобы найти удаленные ветви (рис. 17).Click the link to search deleted branches (Figure 17).

Search for deleted branches
(Рисунок 17) Поиск удаленных ветвей(Figure 17) Search for deleted branches

Если соответствие найдено, вы увидите, кто и когда удалил эту ветвь.If a match is found, you will see who deleted it and when. Вы также можете восстановить ветвь (рис. 18).You can also restore the branch (Figure 18).

Restore deleted branches
(Рисунок 18) Восстановление удаленных ветвей(Figure 18) Restore deleted branches

При восстановлении ветви выполняется ее повторное создание в той фиксации, на которую она указывала последней.Restoring the branch will re-create it at the commit to which is last pointed. Но политики и разрешения не восстанавливаются.However, it will not restore policies and permissions.

Поиск фиксации в ветвях, начинающихся с префиксаSearch for a commit in branches starting with a prefix

При наличии структуры ветвей в иерархическом формате, где все ветви начинаются с текстового префикса, эта функция помогает обнаружить фиксацию во всех ветвях, начинающихся с такого текстового префикса.If you have branch structure in a hierarchical format where all branches are prefixed with a text, then this feature will help you to find a commit in all the branches starting with that prefix text. Например, если вы хотите просмотреть, сделана ли фиксация во всех ветвях, которые имеют префикс dev, введите dev в поле поиска и выберите Поиск в ветвях, начинающихся с dev (рис. 19).For example, if you want to see whether a commit made its way to all branches that are prefixed with "dev" then simply type "dev" in the search box and select Search in branches starting with "dev" (Figure 19).

Search for a commit
(Рисунок 19) Поиск фиксации(Figure 19) Search for a commit

Более подробная выноска запроса на включение внесенных изменений на странице сведений о фиксацииRicher pull request callout on commit details page

Выноска запроса на вытягивание на странице сведений о фиксации содержит наиболее важные сведения, повышающие эффективность диагностики (рис. 20).The pull request callout on the commit details page shows more relevant information to help you diagnose better (Figure 20). Теперь на этой выноске также отображается первый запрос на включение внесенных изменений, представляющий фиксацию для каждой ветви, и запрос на включение внесенных изменений, связанный с ветвью по умолчанию.Now we also show the first pull request that introduced the commit to any branch and the pull request associated with the default branch in the callout.

Pull request callout
(Рисунок 20) Выноска запроса на вытягивание(Figure 20) Pull request callout

Фильтрация представления в виде дерева в кодеFilter tree view in Code

Теперь не нужно прокручивать все файлы, которые могли быть изменены фиксацией, чтобы просто получить нужные файлы.Now you don’t need to scroll through all the files that a commit may have modified to just get to your files. Представление в виде дерева сведений о фиксации, запросов на включение внесенных изменений, сведений о наборе отложенных изменений и страницы сведений о наборе изменений теперь поддерживает фильтрацию по файлам и папкам.The tree view on commit details, pull requests, shelveset details, and changeset details page now supports file and folder filtering. Это интеллектуальный фильтр, показывающий дочерние файлы в папке при фильтрации по имени папки и свернутое представление файла в виде дерева, показывающее иерархию файлов при фильтрации по имени файла.This is a smart filter that shows child files of a folder when you filter by folder name and shows a collapsed tree view of a file to display the file hierarchy when you filter by file name.

Поиск фильтра по файлу или папке в дереве фиксаций (рис. 21) и (рис. 22).Find a file or folder filter on commit tree (Figure 21) and (Figure 22):

Find a file or folder
(Рисунок 21) Поиск файла или папки(Figure 21) Find a file or folder
Filtered view
(Рисунок 22) Отфильтрованное представление дерева фиксаций(Figure 22) Filtered view on commit tree

Страница "Обновления ветви" заменена страницей "Push-уведомления"Branch updates page is now Pushes

Страница Обновления ветви обеспечивает огромные преимущества.The Branch Updates page has tremendous value. Тем не менее, она скрыта как сводная таблица в центре журналов.However, it was hidden as a pivot under the History hub. Теперь страница обновлений ветви будет отображаться как центр Push-уведомления (рис. 23) в разделе Код, наряду с центрами Фиксации, Ветви, Теги и Запросы на вытягивание.Now the branch updates page will be visible as a hub called Pushes (Figure 23) under Code, alongside Commits, Branches, Tags, and Pull Requests. Новый URL-адрес для страницы push-уведомлений: \<tfsserverurl\>/\<projectname\>/_git/\<reponame\>/pushes.The new URL for the pushes page is: \<tfsserverurl\>/\<projectname\>/_git/\<reponame\>/pushes. Старые URL-адреса будут по-прежнему работать.The old URLs will continue to function.

Pushes page
(Рисунок 23) Страница "Push-уведомления"(Figure 23) Pushes page

В то же время центр Журналы переименован в центр Фиксации (рис. 24), так как в этом разделе теперь отображаются только фиксации.At the same time, the History hub is now renamed to Commits (Figure 24) since the hub only shows commits. Мы получили отзывы о том, что диагностика неполадок, связанных с фиксациями, представляла трудности, так как в представлении списка фиксаций подробные сведения о времени отображались только по наведению указателя мыши.We received feedback that people were finding it difficult to troubleshoot commit related issues because the commit list view only showed detailed time on-hover. Теперь в представлении списка фиксаций во всем экземпляре дата и время будут отображаться в формате дд.мм.гг чч:мм.Now the commit list view across your instance will show date and time in dd/mm/yy hh:mm format. Новый URL-адрес для страницы фиксаций: \<tfsserverurl\>/\<projectname\>/_git/\<reponame\>/commits.The new URL for commits page is: \<tfsserverurl\>/\<projectname\>/_git/\<reponame\>/commits. Старые URL-адреса будут по-прежнему работать.The old URLs will continue to function.

Commits page
(Рисунок 24) Страница "Фиксации"(Figure 24) Commits page

Сохранение имени файла при переходе из таблицы "Файлы" на страницу "Фиксации"Retain filename when moving from Files to Commits

Некоторые пользователи сообщали о том, что при фильтрации каталога по определенному файлу в сводной таблице Файлы центра кода с последующим переключением на таблицу Журнал имя файла не сохранялось, если фиксация изменяла более 1000 файлов.We heard feedback from people that when they filter the directory to a particular file in the Files pivot of the Code hub and later flip to the History pivot, the filename isn’t persisted if the commit changed more than 1,000 files. Из-за этого приходилось загружать больше файлов и фильтровать их содержимое для поиска нужного файла, что отрицательно сказывалось на производительности.This resulted in people needing to load more files and filter content to find the file, which was impacting productivity. Разработчики обычно работают в одном каталоге, и им требуется сохранять имеющиеся рабочие каталоги для отслеживания изменений.Developers normally work in the same directory and want to persist to the directories they work in as they trace changes. Теперь имя файла сохраняется при переходе между сводными таблицами центра кода независимо от количества файлов, измененных в фиксации.Now, we persist the filename as you move between Code hub pivots regardless of the number of files changed in a commit. Это означает, что теперь вам не нужно щелкать ссылку Загрузить еще, чтобы найти нужный файл.This means that you do not have to click on Load More to find the file you want.

Просмотр тегов Git View Git tags

Вы можете просмотреть все теги в репозитории на странице Теги (рис. 25).You can view all the tags in your repository on the Tags page (Figure 25). Если вы управляете всеми тегами как выпусками, пользователь может посетить страницу тегов, чтобы просмотреть обобщенное представление всех выпусков продукта.If you manage all your tags as releases, then a user can visit the tags page to get a bird’s-eye view of all the product releases.

View Git tags
(Рисунок 25) Просмотр тегов Git(Figure 25) View Git tags

Вы можете легко отличить упрощенные теги от тегов с заметками.You can easily differentiate between a lightweight and an annotated tag. Для тегов с заметками наряду со связанной фиксацией отображается средство создания тегов и дата создания, тогда как для упрощенных тегов отображаются только сведения о фиксации.Annotated tags show the tagger and the creation date alongside the associated commit, while lightweight tags only show the commit information.

Удаление тегов GitDelete Git tags

Бывают ситуации, когда требуется удалить тег из удаленного репозитория,There can be times when you want to delete a tag from your remote repo. например из-за опечатки в имени тега или применения тега к неправильной фиксации.It could be due to a typo in the tag name, or you might have tagged the wrong commit. Теги можно легко удалить с помощью веб-интерфейса, щелкнув контекстное меню тега на странице Теги и выбрав пункт Удалить тег (рис. 26).You can easily delete tags from the web UI by clicking the context menu of a tag on the Tags page and selecting Delete tag (Figure 26).

Предупреждение

Удалять теги удаленных репозиториев необходимо с осторожностью.Deleting tags on remote repos should be exercised with caution.

Delete git tags
(Рисунок 26) Удаление тегов Git(Figure 26) Delete Git tags

Фильтрация тегов GitFiltering Git tags

Для старых репозиториев число тегов может со временем значительно возрасти, кроме того, могут существовать репозитории с иерархией тегов, которая затрудняет их поиск.For old repositories, the number of tags can grow significantly with time; there can also be repositories that have tags created in hierarchies, which can make finding tags difficult.

Если не удалось найти нужный тег на странице Теги, можно попробовать сделать поиск по имени тега, используя фильтр вверху страницы Теги (рис. 27).If you are unable to find the tag that you were looking for on the Tags page, then you can simply search for the tag name using the filter on top of the Tags page (Figure 27).

Filter Git tags
(Рисунок 27) Фильтрация тегов Git(Figure 27) Filter Git tags

Безопасность тегов GitGit tags security

Теперь вы можете точно настраивать разрешения на управление тегами для пользователей репозитория.Now you can grant granular permissions to users of the repo to manage tags. Используя этот интерфейс, вы можете предоставить пользователям разрешение на удаление тегов или управление тегами (рис. 28).You can give users the permission to delete tags or manage tags from this interface (Figure 28).

Git tag security
(Рисунок 28) Безопасность тегов Git(Figure 28) Git tag security

Дополнительные сведения о тегах Git см. в блоге Microsoft DevOps.Read more about Git tags at the Microsoft DevOps blog.

Автоматическое завершение рабочих элементов при выполнении запросов на включение внесенных изменений Automatically complete work items when completing pull requests

Поддержание актуального состояния всех элементов при связывании рабочих элементов с запросами на включение внесенных изменений стало проще.If you’re linking work items to your PRs, keeping everything up to date just got simpler. Теперь при завершении запроса на вытягивание вы можете автоматически завершить связанные рабочие элементы после успешного объединения запроса (рис. 29).Now, when you complete a PR, you’ll have the option to automatically complete the linked work items after the PR has been merged successfully (Figure 29). Если вы используете политики и настроили автозавершение запросов на включение внесенных изменений, вам также доступна эта функция.If you’re using policies and set PRs to auto-complete, you’ll see the same option. Вам больше не нужно возвращаться к рабочим элементам, чтобы изменить их состояние после завершения запроса.No more remembering to revisit work items to update the state once the PR has completed. Это будет сделано автоматически.This will be done for you automatically.

Complete linked work items
(Рисунок 29) Завершение связанных рабочих элементов(Figure 29) Complete linked work items

Сброс голосов при отправке или новой итерацииReset votes on push/new iteration

Команды, которым требуется более строгий рабочий процесс утверждения в запросах на вытягивание, теперь могут использовать сброс голосов при отправке новых изменений (рис. 30).Teams opting for a more strict approval workflow in PRs can now opt-in to reset votes when new changes are pushed (Figure 30). Новый параметр представляет собой один из вариантов политики Требовать минимальное число рецензентов.The new setting is an option under the policy to Require a minimum number of reviewers.

Reset votes setting
(Рисунок 30) Параметр сброса голосов(Figure 30) Reset votes setting

Если этот режим задан, все голоса всех рецензентов будут сбрасываться каждый раз, когда изменяется исходная ветвь запроса на включение внесенных изменений.When set, this option will cause all votes from all reviewers to be reset any time the source branch of the PR is updated. Благодаря этому параметру на временной шкале запроса на вытягивание в момент сброса голосов будет создаваться запись (рис. 31).The PR timeline will record an entry any time the votes are reset as a result of this option (Figure 31).

Reset votes in timeline
(Рисунок 31) Сброс голосов на временной шкале(Figure 31) Reset votes in timeline

Фильтрация дерева запросов на включение внесенных изменений по имени файлаFilter pull request tree by file name

Найти конкретный файл в запросе на включение внесенных изменений теперь стало гораздо проще.Finding a specific file in a pull request is easier than ever. Новое поле фильтра в представлении Файлы позволяет пользователям фильтровать список файлов в представлении в виде дерева (рис. 32).The new filter box in the Files view lets users filter down the list of files in the tree view (Figure 32).

Find file or folder in pull request
(Рисунок 32) Поиск файла или папки в запросе на вытягивание(Figure 32) Find file or folder in pull request

Фильтр выполняет сопоставление по любой части пути к файлам в запросе на вытягивание, позволяя вам выполнять поиск по именам папок, неполным путям, именам файлов и расширениям (рис. 33).The filter matches any part of the path of the files in the pull request, so you can search by folder names, partial paths, file names, or extensions (Figure 33).

Find results
(Рисунок 33) Поиск результатов(Figure 33) Find results

Дополнительные параметры фильтрации комментариев к запросу на включение внесенных измененийMore pull request comments filtering options

Комментарии в обзоре запроса на вытягивание и в представлении файлов теперь имеют одинаковые параметры (рис. 34).Comments in both the pull request overview and the files view now have the same options (Figure 34). Также можно применить фильтр для просмотра только тех обсуждений, в которых вы участвовали.You can also filter to see only the discussions you participated in.

PR comment filtering
(Рисунок 34) Фильтрация комментариев к запросу на вытягивание(Figure 34) PR comment filtering

Просмотр различий с исходным вариантом для комментариев к коду в сведениях о запросе на включение внесенных измененийView original diff for code comments in pull request details

Иногда бывает трудно понять смысл комментария к запросу на вытягивание после изменения кода, на который он ссылается, особенно когда запрошенное изменение уже внесено (рис. 35).Sometimes, it’s hard to make sense out of a PR comment after the code it’s referencing has changed (many times, when a requested change has been made) (Figure 35).

View original diff
(Рисунок 35) Просмотр исходного несовпадения(Figure 35) View original diff

В этом случае теперь отображается значок с номером изменения. Вы можете щелкнуть его и увидеть, как выглядел код на момент создания комментария (рис. 36).When this happens, you’ll now see a badge with an update number that you can click to see what the code looked like at the time the comment was originally created (Figure 36).

Update badge
(Рисунок 36) Значок изменения(Figure 36) Update badge

Свертываемые комментарии к запросу на включение внесенных измененийCollapsible pull request comments

Проверка кода — это важнейшая часть работы с запросом на включение внесенных изменений, поэтому мы добавили новые функции, помогающие рецензентам сосредоточить внимание на коде.Reviewing code is a critical part of the pull request experience, so we’ve added new features to make it easier for reviewers to focus on the code. Рецензенты кода могут легко скрывать комментарии, чтобы они не мешали при просмотре кода в первый раз (рис. 37).Code reviewers can easily hide comments to get them out of the way when reviewing new code for the first time (Figure 37).

Hide comments
(Рисунок 37) Скрытие комментариев(Figure 37) Hide comments

Функция скрытия комментариев (рис. 38) скрывает их из представления в виде дерева и сворачивает цепочки комментариев в представлении файлов:Hiding comments (Figure 38) hides them from the tree view and collapses the comment threads in the file view:

Collapsed comments
(Рисунок 38) Свернутые комментарии(Figure 38) Collapsed comments

Чтобы развернуть свернутые комментарии, щелкните значок в поле. Чтобы снова свернуть их, щелкните значок еще раз.When comments are collapsed, they can be expanded easily by clicking the icon in the margin, and then collapsed again with another click. Подсказки (рис. 39) позволяют легко посмотреть комментарий, не просматривая всю цепочку.Tooltips (Figure 39) make it easy to peek at a comment without seeing the entire thread.

Collapsed comment tooltip
(Рисунок 39) Подсказка свернутого комментария(Figure 39) Collapsed comment tooltip

Списки задач в описаниях и комментариях к запросу на включение внесенных измененийTask lists in pull request descriptions and comments

При подготовке запроса на включение внесенных изменений или создании комментариев у вас, как правило, есть короткий список аспектов, которые требуется отслеживать, но в конце концов приходится редактировать текст или добавлять несколько комментариев.When preparing a PR or commenting you sometimes have a short list of things that you want to track but then end up editing the text or adding multiple comments. Упрощенные списки задач — это отличный способ отслеживания хода выполнения для списка задач в качестве автора или рецензента запроса на вытягивание в описании или отдельном, объединенном комментарии.Lightweight task lists are a great way to track progress on a list of to-dos as either a PR creator or reviewer in the description or a single, consolidated comment. Щелкните панель инструментов Markdown, чтобы приступить к работе или применить формат к выделенному тексту (рис. 40).Click on the Markdown toolbar to get started or apply the format to selected text (Figure 40).

Task list toolbar
(Рисунок 40) Панель инструментов списка задач(Figure 40) Task list toolbar

После добавления списка задач (рис. 41) вы можете помечать элементы как завершенные, просто устанавливая флажки.Once you’ve added a task list (Figure 41), you can simply check the boxes to mark items as completed. Они выражаются и хранятся в комментарии как [ ] и [x] в файле Markdown.These are expressed and stored within the comment as [ ] and [x] in Markdown. Дополнительные сведения см. в статье Markdown guidance (Руководство по Markdown).See Markdown guidance for more information.

Task list
(Рисунок 41) Список задач(Figure 41) Task list

Возможность поставить отметку "Нравится" для комментариев в запросах на включение внесенных измененийAbility to “Like” comments in pull requests

Поддержите комментарий к запросу на вытягивание, нажав кнопку Нравится (рис. 42).Show your support for a PR comment with a single click on the like button (Figure 42). Если вы наведете указатель мыши на эту кнопку, вы увидите список всех пользователей, которым понравился комментарий.You can see the list of all people that liked the comment by hovering over the button.

Like pull request comments
(Рисунок 42) Отметка "Нравится" для комментариев к запросу на вытягивание(Figure 42) Like pull request comments

Улучшенный рабочий процесс при утверждении с предложениямиImproved workflow when approving with suggestions

Использование функции автозавершения (рис. 43) с запросами на вытягивание — это отличный способ повысить эффективность работы, но оно не должно заменять активное обсуждение при проверке кода.Using the auto-complete option (Figure 43) with pull requests is a great way to improve your productivity, but it shouldn’t cut short any active discussions with code reviewers. Чтобы дополнительно повысить эффективность такого обсуждения, для запросов, для которых настроено автозавершение, теперь отображается вариант голосования утвердить с предложениями.To better facilitate those discussions, the Approve with suggestions vote will now prompt when a pull request is set to complete automatically. Пользователь будет иметь возможность отменить автоматическое завершение, чтобы можно было прочитать его отзыв, или подтвердить его и разрешить автоматическое завершение запроса на включение внесенных изменений, когда будут выполнены все требования политик.The user will have the option to cancel the auto-complete so that their feedback can be read, or keep the auto-complete set and allow the pull request to be completed automatically when all policies are fulfilled.

Cancel auto-complete dialog
(Рисунок 43) Диалоговое окно отмены автозавершения(Figure 43) Cancel auto-complete dialog

Поддержка фильтрации по пути для уведомлений GitPath filtering support for Git notifications

Вместо получения уведомлений для всех папок в репозитории теперь можно настроить получение уведомлений при создании участниками команды запросов на включение внесенных изменений или при отправке кода только в те папки, которые вас интересует.Instead of getting notifications for all folders in a repo, you can now choose to get notified when team members create pull requests or push code in only the folders that you care about. При создании настраиваемых подписок на уведомления по электронной почте для запросов на отправку или вытягивание вы увидите новый параметр, позволяющий фильтровать эти уведомления по пути к папке (рис. 44).When creating custom Git push or Git pull requests email notification subscriptions, you will see a new option to filter these notifications by folder path (Figure 44).

Path filtering for notifications
(Рисунок 44) Фильтрация уведомлений по пути(Figure 44) Path filtering for notifications

Обновлены шаблоны электронной почты для рабочих процессов запросов на вытягивание.Updated email templates for pull request workflows

Мы обновили оповещения по электронной почте для запросов на вытягивание, сделав их более краткими, понятными и содержащими конкретные действия (рис. 45).Pull request email alerts have been refreshed to make them clear, concise, and actionable (Figure 45). Строка темы начинается с названия запроса и дополнительной информации, такой как имя репозитория, тогда как идентификатор указывается в конце.The subject line will begin with the PR title and secondary information, like the repo name, and ID will be deferred to the end. Имя автора было добавлено в тему, чтобы упростить применение правил и фильтров, основанных на имени пользователя, создавшего запрос.The name of the author has been added to the subject to make it simpler to apply rules and filters based on the person that created the PR.

Шаблон текста писем с оповещениями также обновлен: сначала кратко сообщается о том, почему отправлено оповещение, затем приводятся важные метаданные (название, имена ветвей и описания) и основная кнопка призыва к действию.The body of the alert emails has a refreshed template that first summarizes why the alert was sent, followed by the critical metadata (title, branch names, and description), and a main call-to-action button. Дополнительные сведения, такие как рецензенты, файлы и фиксации, содержатся в сообщении ниже.Additional details like the reviewers, files, and commits are included further down the email.

Improved email template
(Рисунок 45) Улучшенный шаблон электронной почты(Figure 45) Improved email template

Для большинства оповещений призывом к действию (рис. 46) будет предложение просмотреть запрос на вытягивание в Интернете.For most alerts, the call-to-action (Figure 46) will be to view the pull request in the web. Тем не менее, при получении уведомления о конкретном комментарии призывом к действию будет прямая ссылка на этот комментарий, позволяющая быстро найти код и предыдущее обсуждение для определения контекста.However, when you’re notified about a specific comment, the call-to-action will link directly to that comment so you can easily find the code and prior conversation for context.

Email call-to-action
(Рисунок 46) Призыв к действию в сообщении(Figure 46) Email call-to-action

Обновленные шаблоны электронной почты для push-уведомленийUpdated email templates for push notifications

Push-уведомления были обновлены в соответствии с новыми шаблонами электронной почты, которые стали более понятными, краткими и полезными в практическом плане (рис. 47).Push notifications have been updated to match the new email templates that are optimized to be clear, concise, and actionable (Figure 47). Строка темы позволяет легко различать сообщения об отправке и определять ветвь, репозиторий и автора. В ней также указывается общее число фиксаций, включенных в отправку.The subject line helps you clearly distinguish push emails, identify the branch, repo, and author, and summarize the number of commits included in the push. Кроме того, благодаря этим изменениям стало проще создавать правила и фильтры для управления уведомлениями по электронной почте.These changes also make it easier to create rules and filters to help manage these email notifications.

Текст сообщения согласован с другими сообщениями. В нем указывается, по какой причине было отправлено сообщение, кто инициировал действие и что именно произошло.The email body is consistent with other emails, emphasizing why the email was sent, who initiated the action, and exactly what happened. В оповещения об отправке включаются сведения о репозитории, ветви, файлах и фиксациях, благодаря которым получатели могут оценить объем изменений.Specific to push alerts, the details about the repo, branch, files, and commits are all included to help inform the recipients about the scope of the changes. Основной призыв к действию в случае push-уведомлений — Просмотреть push-уведомление. При выполнении этого действия открывается представление инициированного push-уведомления.The main call-to-action for push alerts is View Push, which will open the pushes view for the specific push that generated the alert.

Push template
(Рисунок 47) Шаблон push-уведомления(Figure 47) Push template

Вики-сайт Wiki

Все проекты теперь поддерживают собственные вики-сайты (рис. 48).Each project now supports its own Wiki (Figure 48). Теперь вы можете создавать страницы, которые помогут участникам вашей команды получить представление о проекте, использовать его и участвовать в нем.Now you can conveniently write pages that help your team members understand, use, and contribute to your project.

Wiki page
(Рисунок 48) Вики-страница запроса на вытягивание(Figure 48) PR Wiki page

Ниже перечислены некоторые основные функции новых вики-сайтов.Some of the key features of the new Wiki include:

  • Упрощенный интерфейс редактирования с помощью синтаксиса Markdown.Simplified editing experience using markdown syntax.
  • На новой странице можно указать название и добавить содержимое.The new page allows you to specify a title and add content. (Рис. 49)(Figure 49)
Title Wiki
(Рисунок 49) Заглавная вики-страница шаблона на вытягивание(Figure 49) PR Title Wiki
  • Поддержка HTML-тегов в Markdown (рис. 50).Support for HTML tags in markdown (Figure 50).
Wiki HTML tags
(Рисунок 50) HTML-теги Wiki-страницы на вытягивание(Figure 50) PR Wiki HTML tags
  • Удобное изменение размеров изображения в папке Markdown (рис. 51).Conveniently resize images in the markdown folder (Figure 51).
Image resize
(Рисунок 51) Изменение размера изображения запроса на вытягивание(Figure 51) PR Image resize
  • Многофункциональная панель управления страницами, которая позволяет менять их порядок, переподчинять страницы и управлять ими.Powerful page management pane that allows you to reorder, re-parent, and manage pages.
  • Возможность фильтрации страниц по названию для больших вики-сайтов (рис. 52).Ability to filter pages by title for large Wikis (Figure 52).
Wiki menu
(Рисунок 52) Меню вики-страницы запроса на вытягивание(Figure 52) PR Wiki menu

Дополнительные сведения о начале работы с вики-сайтом.Learn more about getting started with Wiki.

  • Чем дольше вы используете вики-сайт, тем больше вероятность сохранения нежелательных изменений.As you use Wiki more, there is a chance you’ll save unintended changes. Теперь вы можете вернуть вики-страницу к предыдущей редакции. Для этого перейдите к сведениям о редакции и нажмите кнопку Отменить изменения (рис. 53).Now you can revert a revision to a Wiki page by going to the revision details and clicking on the Revert button (Figure 53).
Wiki revert button
(Рисунок 53) Кнопка "Отменить изменения" вики-страницы запроса на вытягивание(Figure 53) PR Wiki revert button

Во время создания вики-страницы содержание включало несуществующие ссылки (рис. 54).We observed a pattern during Wiki creation where a table of contents on a Wiki page included non-existent links (Figure 54). Пользователи щелкали эти ссылки, пытаясь создать фактическую страницу.Users would click on these links in an attempt to create an actual page. Ранее мы решали такую ситуацию, выводя предупреждения о том, что ссылка не работает или страница не существует.We previously handled this scenario by giving a warning suggesting that the link was broken, or that the page did not exist. Теперь этот сценарий признан обычным для вики-сайтов, и создание страниц таким образом разрешено.Now, we are handling this as a mainstream scenario for Wiki, by allowing you to create pages instead.

Create wiki page
(Рисунок 54) Создание вики-страницы запроса на вытягивание(Figure 54) PR Create Wiki page

Создание глубинных ссылок на вики-страницеWiki page deep linking

Вики-сайт теперь поддерживает создание глубинных ссылок на разделы в пределах страницы или между страницами, что очень полезно при создании оглавлений.Wiki now supports deep linking sections within a page and across pages, which is really useful for creating a table of contents. Создать ссылку на заголовок на той же или другой странице можно с помощью приведенного ниже синтаксиса.You can reference a heading in the same page or another page by using the following syntax:

  • На той же странице: [text to display](#section-name)Same page: [text to display](#section-name)
  • На другой странице: [text to display](/page-name#section-name)Another page: [text to display](/page-name#section-name)

Расширение "Вики-сайт" на сайте Marketplace признано нерекомендуемым.The Wiki extension on the Marketplace is now deprecated. Если вы уже используете расширение "Вики-сайт", то можете перенести свои вики-страницы на новый вики-сайт с помощью этого средства миграции.If you are an existing Wiki extension user, then you can migrate your Wiki pages to the new Wiki using this migration tool. Дополнительные сведения о переносе существующих вики-страниц на новый вики-сайт.Learn more about how to migrate your existing Wiki pages to the new Wiki.

Управление пакетами Package Management

Обновления интерфейса управления пакетамиPackage Management experience updates

URL-адреса пакетов теперь поддерживают имя и версию пакета вместо использования идентификатора GUID.Package URLs now work with the package name and version, rather than using GUIDs. Это упрощает самостоятельное создание URL-адресов пакетов (рис. 55).This makes it easier to hand-craft package URLs (Figure 55). Формат: \<tfsserverurl\>/\<project|team\>/_packaging?feed=\<feed\>&package=\<package\>&version=\<version\>&protocolType=\<NuGet|Npm|Maven\>&_a=package.The format is: \<tfsserverurl\>/\<project|team\>/_packaging?feed=\<feed\>&package=\<package\>&version=\<version\>&protocolType=\<NuGet|Npm|Maven\>&_a=package.

Package URL
(Рисунок 55) URL-адрес пакета запроса на вытягивание(Figure 55) PR Package URL

Теперь вы можете скрывать удаленные версии пакетов (рис. 56) от всех пользователей веб-канала (больше никаких зачеркнутых пакетов). Эта возможность реализована в ответ на это предложение UserVoice.You can now hide deleted package versions (Figure 56) from all feed users (no more strikethrough packages!), in response to this UserVoice suggestion.

Hide deleted packages
(Рисунок 56) Скрытие удаленных пакетов(Figure 56) Hide deleted packages

Любое действие, которое можно было выполнить на странице сведений о пакете, теперь можно выполнить из контекстного меню в списке пакетов.Any action that you could perform on the package details page can now be performed from the context menu in the list of packages.

Список пакетов содержит новый столбец Последняя принудительная отправка (рис. 57) с удобными для восприятия датами, позволяющими легко найти недавно обновленные пакеты.The package list contains a new Last pushed column (Figure 57) with humanized dates so you can easily find recently-updated packages.

Last pushed column
(Рисунок 57) Столбец "Последняя принудительная отправка"(Figure 57) Last pushed column

Пакеты Maven Maven packages

Мы реализовали поддержку размещения артефактов Maven в TFS 2018 (рис. 58).We’ve launched support for hosting Maven artifacts in TFS 2018 (Figure 58). Артефакты Maven позволяют разработчикам Java совместно использовать код и компоненты.Maven artifacts enable Java developers to easily share code and components. Ознакомьтесь с руководством по началу работы, в котором описано предоставление совместного доступа к артефактам Maven с помощью управления пакетами.Check out our getting started guide for how to share Maven artifacts using Package Management.

Maven packages
(Рисунок 58) Пакеты Maven(Figure 58) Maven packages

Новая унифицированная задача NuGetNew unified NuGet task

Мы объединили задачи Восстановление NuGet, Упаковщик NuGet и Издатель NuGet в одну задачу сборки NuGet, чтобы обеспечить дополнительное согласование с остальной библиотекой задач сборки; новая задача использует NuGet 4.0.0 по умолчанию.We’ve combined the NuGet Restore, NuGet Packager, and NuGet Publisher task into a unified NuGet build task to align better with the rest of the build task library; the new task uses NuGet 4.0.0 by default. Соответственно, старые задачи признаны нерекомендуемыми, и мы советуем вам перейти на новую задачу NuGet в любое удобное время.Accordingly, we’ve deprecated the old tasks, and we recommend moving to the new NuGet task as you have time. Это изменение совпадает с волной улучшений, описанных ниже. Доступ к ним можно будет получить только с помощью объединенной задачи.This change coincides with a wave of improvements outlined below that you’ll only be able to access by using the combined task.

В рамках этого проекта мы также выпустили новую задачу Установщик NuGet, которая управляет версией NuGet, доступной по ПУТИ и используемой новой задачей NuGet.As part of this work, we’ve also released a new NuGet Tool Installer task that controls the version of NuGet available on the PATH and used by the new NuGet task. Таким образом, чтобы использовать новейшую версию NuGet, просто добавьте задачу Программа установки средства NuGet в начале сборки (рис. 59).So, to use a newer version of NuGet, just add a NuGet Tool Installer task at the beginning of your build (Figure 59).

Nuget task
(Рисунок 59) Задача NuGet(Figure 59) NuGet task

См. дополнительные сведения об использовании в вашей сборке новейших версий NuGet в блоге Microsoft DevOps.Read more about using the latest NuGet in your build on Microsoft DevOps Blog.

Параметр NuGet "Разрешить пропуск дубликатов"NuGet “Allow duplicates to be skipped” option

Мы получили от пользователей NuGet много отзывов о том, что они создают наборы пакетов, только некоторые из которых могут иметь обновления (и, следовательно, измененные номера версий).We heard from many NuGet customers that they generate a set of packages, only some of which may have updates (and therefore updated version numbers). Задача сборки __NuGet__включает новый параметр Разрешить пропуск дубликатов, который позволяет продолжить выполнение задачи при попытке принудительной отправки пакетов в веб-канал VSTS/TFS, где эта версия уже используется.The NuGet build task has a new Allow duplicates to be skipped option that will enable the task to continue if it tries to push packages to a VSTS/TFS feed where the version is already in use.

Обновления задач сборки npmnpm build task updates

При создании проекта npm в Windows, Linux или Mac новая задача сборки NPM будет работать одинаково эффективно.Whether you’re building your npm project on Windows, Linux, or Mac, the new NPM build task will work seamlessly. Мы также реорганизовали задачу, чтобы упростить установку npm и публикацию npm.We have also reorganized the task to make both npm install and npm publish easier. Для режимов установки и публикации мы упростили получение учетных данных, чтобы учетные данные для реестров, перечисленных в .npmrc-файле проекта, можно было безопасно хранить в конечной точке службы.For install and publish, we have simplified credential acquisition so that credentials for registries listed in your project’s .npmrc file can be safely stored in a service endpoint. Кроме того, при использовании веб-канала VSTS или TFS вы можете выбрать веб-канал, после чего будет создан .npmrc с необходимыми учетными данными, которые используются агентом сборки.Alternatively, if you’re using a VSTS/TFS feed, we have a picker that will let you select a feed, and then we will generate a .npmrc with requisite credentials that are used by the build agent.

Maven теперь поддерживает каналы с проверкой подлинностиMaven now supports authenticated feeds

В отличие от NuGet и npm, задача сборки Maven ранее не поддерживала каналы с проверкой подлинности.Unlike NuGet and npm, the Maven build task did not previously work with authenticated feeds. Мы обновили задачу Maven, чтобы вы могли легко работать с веб-каналами VSTS и TFS (рис. 60).We’ve updated the Maven task so you can work easily with VSTS/TFS feeds (Figure 60).

dotnet task
(Рисунок 60) Задача dotnet(Figure 60) dotnet task

Задача dotnet поддерживает каналы с проверкой подлинности и веб-проектыdotnet task supports authenticated feeds, web projects

В следующей основной версии задачи dotnet (2.x) представлены решения для многих запросов из ваших отзывов и устранен ряд ошибок, которые мы отслеживали на протяжении некоторого времени.The next major version of the dotnet task (2.x) addresses many of your feedback requests and fixes a set of bugs we’ve tracked for a while.

  1. Во-первых, задача dotnet теперь поддерживает источники пакетов с проверкой подлинности, такие как управление пакетами, поэтому вам больше не требуется использовать задачу NuGet для восстановления пакетов из частных источников пакетов.First, dotnet now supports authenticated package sources like Package Management, so you don’t need to use the NuGet task anymore to restore packages from private package sources.
  2. Поведение поля Путь к проекту изменилось в версии 2.0.The behavior of Path to project(s) field has changed in the 2.0 version of the task. В предыдущих версиях задачи, если не удавалось найти файл проекта, соответствующий указанному шаблону, задача записывала в журнал предупреждение, а затем успешно выполнялась.In previous versions of the task, if the project file(s) matching the specified pattern were not found, the task used to log a warning and then succeed. В таких случаях иногда может быть сложно понять, почему сборка выполнена успешно при этом зависимости не восстановлены.In such scenarios it can sometimes be challenging to understand why the build succeeded but dependencies were not restored. Теперь задача завершается ошибкой, если не удается найти файлы проектов, соответствующие указанному шаблону.Now the task will fail if the project file(s) matching the specified pattern are not found. Это согласуется с поведением других задач и упрощает понимание и использование.This is in line with the behavior of other tasks and is easy to understand and use.
  3. В предыдущих версиях команды публикации задачи задача изменяла выходной путь, помещая все файлы в папку, которой присваивалось имя, соответствующее имени файла проекта, даже в том случае если был передан явный выходной путь.In previous versions of the task’s publish command, the task modified the output path by putting all the files in a folder that was named after the project file name, even when you passed an explicit output path. Это затрудняло создание цепочки команд.This makes it hard to chain commands together. Теперь вы можете контролировать выходной путь к файлу.Now you have control over the output path file.

Мы также выпустили новую задачу Установщик dotnet, которая управляет версией dotnet, доступной по ПУТИ и используемой новой задачей dotnet.We’ve also released a new dotnet Tool Installer task that controls the version of dotnet available on the PATH and used by the new dotnet task. Таким образом, чтобы использовать более новую версию dotnet, просто добавьте задачу Установщик dotnet в начало сборки.So, to use a newer version of dotnet, just add a dotnet Tool Installer task at the beginning of your build.

Работа вне учетной записи или коллекцииWorking outside your account/collection

Теперь стало проще работать с веб-каналами (рис. 61) за пределами вашего сервера TFS или учетной записи VSTS, будь то каналы системы управления пакетами в других учетных записях VSTS или серверах TFS или каналы, не относящиеся к управлению пакетами, такие как NuGet.org/npmjs.com, Artifactory или MyGet (рис. 60).It’s now easier to work with feeds (Figure 61) outside your TFS server or VSTS account, whether they’re Package Management feeds in another VSTS account or TFS server or non-Package Management feeds like NuGet.org/npmjs.com, Artifactory, or MyGet (Figure 60). Выделенные типы конечной точки службы для NuGet и npm упрощают ввод правильных учетных данных и позволяют задаче сборки эффективно работать в операциях загрузки и отправки пакетов.Dedicated Service Endpoint types for NuGet and npm make it easy to enter the correct credentials and enable the build tasks to work seamlessly across package download and package push operations.

Feeds to use
(Рисунок 61) Используемый веб-канал(Figure 61) Feed to use

Средство выбора веб-канала для каналов VSTS/TFSFeed picker for VSTS/TFS feeds

Мы всегда рекомендуем выполнять возврат в файл конфигурации (например, NuGet.Config, NPMRC и т. д.), чтобы в репозитории источников создавалась запись о происхождения пакетов.We always recommend checking in a configuration file (e.g. NuGet.Config, .npmrc, etc.) so that your source repository has a record of where your packages came from. Тем не менее мы знаем, что существуют ситуации, когда такое решение не является оптимальным. Поэтому мы добавили новый параметр Использовать пакеты из этого веб-канала VSTS или TFS, который позволяет выбрать веб-канал и автоматически создать файл конфигурации для этого шага сборки (рис. 62).However, we’ve heard a set of scenarios where this isn’t ideal, so we’ve added a new Use packages from this VSTS/TFS feed option that allows you to select a feed and automatically generate a configuration file that will be used for that build step (Figure 62).

Feed picker
(Рисунок 62) Средство выбора веб-канала(Figure 62) Feed picker

Сборка и выпуск Build and Release

Сборки XAML XAML Builds

В Team Foundation Server 2015 была представлена кроссплатформенная система сборок.In TFS 2015, we introduced a web-based, cross-platform build system. Сборки XAML не поддерживаются в TFS 2018 RTW или обновлении 1, но они повторно включены в TFS 2018 с обновлением 2.XAML builds are not supported in TFS 2018 RTW or Update 1, but we have re-enabled XAML builds in TFS 2018 Update 2. Мы рекомендуем выполнить перенос сборок XAML.We encourage you to migrate your XAML builds. Если вы еще не готовы к миграции и вам нужно по-прежнему использовать сборки XAML, перейдите на TFS 2018 с обновлением 2.If you're not yet ready to migrate and need to continue using XAML builds, please upgrade to TFS 2018 Update 2.

При обновлении до TFS 2018 RTW или обновления 1 происходит следующее.When you upgrade to TFS 2018 RTW or Update 1:

  • Если в коллекции командных проектов есть данные сборок XAML, вы получите предупреждение об удалении компонентов сборки XAML.If you have any XAML build data in your team project collection, you'll get a warning about the removal of XAML build features.

  • Вы сможете просматривать завершенные сборки XAML, но не сможете добавлять новые сборки в очередь.You'll be able to view completed XAML builds, but you won't be able to queue new ones.

  • В TFS 2018 не появится новая версия контроллера или агента сборки XAML.There's no new version of the XAML build controller or agent in TFS 2018.

При обновлении до TFS 2018 с обновлением 2 происходит следующее.When you upgrade to TFS 2018 Update 2:

  • Если в коллекции командных проектов есть данные сборок XAML, вы получите предупреждение о нерекомендуемых компонентах сборки XAML.If you have any XAML build data in your team project collection, you'll get a warning about the deprecation of XAML build features.

  • Чтобы изменить определения сборки XAML или поставить в очередь новые сборки XAML, потребуется использовать Visual Studio или Team Explorer 2017.You will need to use VS or Team Explorer 2017 to edit XAML build definitions or to queue new XAML builds.

  • Если вам нужно создать агенты сборки XAML, потребуется установить их с помощью установщика агента сборки TFS 2015.If you need to create new XAML build agents, you’ll need to install them using the TFS 2015 build agent installer.

Объяснение планового устаревания сборки XAML см. в записи блога Развитие возможностей автоматизации сборки в TFS и Team Services.For an explanation of our XAML build deprecation plan, see the Evolving TFS/Team Services build automation capabilities blog post.

Экспорт и импорт определений сборок Export and import build definitions

Определения сборок реализуются внутренним образом как JSON-файлы, чтобы можно было видеть сведения об изменениях в журнале файла.Build definitions are implemented internally as .json files, so you can see details on changes in the file’s history. Функция клонирования и создания шаблонов на основе определений сборки уже доступна, но многим пользователям требовалась возможность копировать логику сборки CI и повторно использовать ее в других командных проектах.You can already clone and make templates from your build definitions, but many users have wanted to take a copy of their CI build logic and reuse it in another team project. Этот запрос входил в 10 основных запросов на UserVoice.In fact it’s been a top-ten request on UserVoice.

Мы рады сообщить, что теперь это стало возможно (рис. 63 и рис. 64).We’re pleased to announce that this is now possible (Figure 63) and (Figure 64)!

Export build definition
(Рисунок 63) Экспорт определения сборки(Figure 63) Export build definition
Import build definition
(Рисунок 64) Импорт определения сборки(Figure 64) Import build definition

Расширения с шаблонами сборокExtensions with build templates

Шаблоны сборок позволяют создавать базовый план, чтобы приступить к работе с определением процесса сборки.Build templates let you create a baseline for users to get started with defining their build process. Мы предлагаем большое число готовых шаблонов, и хотя можно было отправлять новые шаблоны в свою учетную запись, авторы расширений не могли включить новые шаблоны в расширение.We ship a number of them in the box today and while you could upload new ones to your account, it was never possible for extension authors to include new templates as part of an extension. Теперь вы можете включать шаблоны сборок в свои расширения.You can now include build templates in your extensions. Пример:For example:

{  "id": "Template1", 
   "type": "ms.vss-build.template", 
   "targets": [ "ms.vss-build.templates" ], 
   "properties": { "name": "Template1" } }

Полный пример см. здесь: https://github.com/Microsoft/vsts-extension-samples/tree/master/fabrikam-build-extension.For the full example, see https://github.com/Microsoft/vsts-extension-samples/tree/master/fabrikam-build-extension.

Совет

Эту возможность можно использовать, чтобы предлагать и совместно использовать один и тот же пользовательский шаблон во всех командных проектах.You can use this capability to offer and share the same custom template across all your team projects.

Списание задачи в расширенииDeprecate a task in an extension

Теперь вы можете списать задачу в расширении.You can now deprecate a task in your extension. Для этого необходимо добавить следующую переменную в последнюю версию задачи.To make it work, you must add the following variable to the latest version of your task:

"deprecated": true

При поиске нерекомендуемых задач (рис. 65) эти задачи отображаются в конце списка и группируются в сворачиваемом разделе, который по умолчанию уже свернут.When the user searches for deprecated tasks (Figure 65), we push these tasks to the end and group them under a collapsible section that’s collapsed by default. Если определение уже использует устаревшую задачу, отображается значок устаревшей задачи, чтобы рекомендовать пользователям переключиться на заменяющую ее задачу.If a definition is already using a deprecated task, we show a deprecated task badge to encourage users to switch to the replacement.

Deprecated task badge
(Рисунок 65) Значок нерекомендуемой задачи(Figure 65) Deprecated task badge

Вы можете помочь пользователям получить сведения о заменяющей задаче, упомянув ее в описании задачи (рис. 66).You can help your users learn about the replacement task by mentioning it in the task description (Figure 66). Описание поможет пользователям, работающим с задачей, определить правильное направление из каталога задач и существующих определений сборки или выпуска.The description will then point folks using the task in the right direction from both the task catalog and the existing build/release definitions.

Deprecated task description
(Рисунок 66) Описание нерекомендуемой задачи(Figure 66) Deprecated task description

Опубликованные разделы сборки могут управлять видимостью сборкиLet contributed build sections control section visibility

Ранее при использовании расширения, которое включало задачи сборки и разделы сводки сборки, раздел сводки отображался, даже если вы не использовали задачу в этой сборке.Previously, if you were using an extension that had build tasks and build summary sections, you’d see the build summary section even if you weren’t using the build task in that build. Теперь можно настроить скрытие или отображение этого раздела на странице сводки сборки, добавив следующую строку в код расширения и задав для нее значение true или false.Now, you can choose to hide or show that section in the build summary page by adding the following line in your extension code and setting the value to true or false:

VSS.getConfiguration().setSectionVisibility("$(publisherId).$(extensionId).$(sectionId)", false);

Просмотрите примеры в репозитории Майкрософт vsts-extension-samples.View the sample included in the Microsoft vsts-extension-samples repository.

Поддержка групп переменныхVariable group support

Группы переменных были доступны в определениях выпуска, а теперь их можно использовать и в определениях сборок.Variable groups have been available to use in release definitions, and now they are ready to be used in build definitions, too. Дополнительные сведения о создании группы переменных.Learn more about creating a variable group. Эта возможность разработана и получила высокий приоритет на основе соответствующих предложений по переменным сборки и выпуска уровня проекта и группам переменных в определениях сборки.This has been developed and prioritized based on related suggestions for project-level build/release variables and variable groups in build definitions.

Работа с защищенными файлами, такими как сертификаты AppleWork with secure files such as Apple certificates

Мы добавили библиотеку защищенных файлов общего назначения (рис. 67).We’ve added a general-purpose secure files library (Figure 67).

Secure files library
(Рисунок 67) Библиотека защищенных файлов(Figure 67) Secure files library

Библиотеку защищенных файлов можно использовать для хранения таких файлов, как сертификаты для подписи, профили подготовки Apple, файлы хранилища ключей Android и ключи SSH, на сервере без необходимости их фиксации в исходном репозитории.Use the secure files library to store files such as signing certificates, Apple Provisioning Profiles, Android Keystore files, and SSH keys on the server without needing to commit them to your source repository.

Содержимое защищенных файлов шифруется и может использоваться только во время процессов сборки или выпуска путем ссылки на них из задачи.The contents of secure files are encrypted and can only be used during build or release processes by referencing them from a task. Защищенные файлы доступны в нескольких определениях сборки и выпуска в командном проекте, в соответствии с параметрами безопасности.Secure files are available across multiple build and release definitions in the team project based on security settings. Защищенные файлы следуют модели безопасности библиотеки.Secure files follow the Library security model.

Мы также добавили некоторые задачи Apple, использующие эту новую функцию:We’ve also added some Apple tasks that leverage this new feature:

Приостановка определений сборкиPause build definitions

Теперь можно приостановить или отключить определения сборки.You can now pause or disable build definitions. Если вы планируете вносить изменения в определение сборки и хотите избежать постановки новых сборок в очередь, пока работа не будет завершена, просто отключите определение сборки.If you plan to make changes to your build definition and you want to avoid queuing any new builds until you are done, simply disable the build definition. Аналогичным образом, если вы планируете обновлять компьютеры агентов, то можно приостановить определение сборки. При этом VSTS будет по-прежнему принимать новые запросы на сборку, но они будут помещаться в очередь и не будут выполняться, пока определение не будет возобновлено.Similarly, if you plan to upgrade agent machines, you can choose to pause a build definition, which enables VSTS to still accept new build requests but hold them in queue without running until you resume the definition.

Поддержка проверок входных данных задачTask input validations support

При вводе параметров в задачах определения сборки иногда могут допускаться ошибки.Typing the parameters in build definition tasks can sometimes be error prone. С помощью проверки входных данных задачи ее авторы могут обеспечить правильность указываемых значений.With task input validation, task authors can ensure appropriate values are specified. Выражения проверки имеют стандартный синтаксис выражений, используемый для условий задачи. Помимо общих функций, поддерживаемых условиями задачи, в нем могут применяться любые другие поддерживаемые функции, в том числе URL-адрес, IPV4, адрес электронной почты, диапазон номеров, sha1, длина или совпадение.Validation expressions follow the familiar expression syntax used for task conditions and can use any of the supported functions besides the general functions supported by task conditions, including URL, IPV4, email, number range, sha1, length, or match.

Дополнительные сведения о назначении и использовании проверок см. на странице репозитория vsts-tasks.Read more about the goals and usage on the vsts-tasks repo page.

Новый редактор определений выпуска New Release Definition Editor

Продолжая проект по обновлению среды работы со сборками и выпусками, мы обновили редактор определений выпуска, чтобы сделать его более понятным, исправили некоторые проблемы, а также добавили новые возможности.Continuing on our journey of refreshing the Build and Release experiences, we have re-imagined the release definition editor to provide a more intuitive experience, fix some pain points, and add new capabilities. Одной из наиболее эффективных функций нового редактора является визуализация хода развертывания в ваших окружениях.One of the most powerful features of the new editor is its ability to help you visualize how deployments to your environments would progress. Кроме того, утверждения, свойства среды и параметры развертывания теперь отображаются в контексте, и их можно легко настроить.In addition to this, approvals, environment properties, and deployment settings are now in-context and easily configurable.

Визуализация конвейераVisualization of the pipeline

Конвейер (рис. 68) в редакторе предоставляет графическое представление дальнейшего хода выполнения развертываний в выпуске.The pipeline (Figure 68) in the editor provides a graphical view of how deployments will progress in a release. Артефакты будет использоваться выпуском и развертываться в средах.The artifacts will be consumed by the release and deployed to the environments. Макет и связывание сред отражают параметры триггера, заданные для каждой среды.The layout and linking of the environments reflects the trigger settings defined for each environment.

Pipeline
(Рисунок 68) Конвейер выпуска(Figure 68) Release pipeline
Пользовательский интерфейс конфигурации в контекстеIn context configuration UI

Артефакты, триггеры выпуска, утверждения до и после развертывания, свойства среды и параметры развертывания теперь отображаются в контексте, и их можно легко настроить (рис. 69).Artifacts, release triggers, pre-deployment and post-deployment approvals, environment properties, and deployment settings are now in-context and easily configurable (Figure 69).

Release configuration
(Рисунок 69) Конфигурация выпуска(Figure 69) Release configuration
Начало работы с шаблонами развертыванияGetting started with deployment templates

Все встроенные шаблоны развертывания обладают параметрами обработки, с помощью которых пользователи могут быстро начать работу, указав наиболее важные параметры. При этом им не требуется изучать задачи подробно (рис. 70).All in-built deployment templates are equipped with process parameters which makes it easier for users to get started by specifying the most important parameters without needing to go deep into your tasks (Figure 70).

Deployment templates
(Рисунок 70) Шаблоны развертывания(Figure 70) Deployment templates
Упрощенное управление переменными выпуска и средыSimplified management of release and environment variables

С помощью представления в виде списка можно быстро добавлять переменные выпуска и среды, а с помощью представления в виде сетки — сравнивать переменные, относящиеся к разным областям, и изменять их (рис. 71).Use the List view to quickly add release or environment variables and the Grid view to compare and edit variables across scopes side-by-side (Figure 71). Кроме того, в обоих представлениях можно использовать фильтр и поиск по ключевым словам для управления рабочим набором переменных.Additionally, you can use the filter and keyword search to manage the set of variables to work with in both the views.

Simplified management of variables
(Рисунок 71) Упрощенное управление переменными(Figure 71) Simplified management of variables
Улучшенный редактор задач и этаповImproved task and phase editor

Все усовершенствования в новом редакторе определений сборок теперь также доступны в редакторе определений выпуска (рис. 72).All the enhancements in the new build definition editor are now available in the release definition editor, as well (Figure 72). Находить задачи и добавлять их можно с помощью кнопки Добавить или путем перетаскивания.You can search for tasks and add them by either using the Add button or by using drag/drop. С помощью перетаскивания можно клонировать задачи или изменять их порядок.You can reorder or clone tasks using drag/drop.

Task editor
(Рисунок 72) Редактор задач(Figure 72) Task editor
Группы переменных, хранение и вкладка "Параметры"Variable groups, Retention, and Options tabs

Теперь вы можете добавлять и удалять ссылки на группы переменных (рис. 73), задавать политику хранения для отдельных сред, а также изменять параметры на уровне определений выпуска, например формат номера выпуска, на вкладке Параметры. Кроме того, можно сохранять среды как шаблоны развертывания, задавать разрешения уровня среды и изменять порядок этапов на вкладке Задачи.You can now link/unlink to variable groups (Figure 73), set retention policy for individual environments, and modify release definition-level settings such as release number format from the Options tab. You can also save an environment as a deployment template, set environment level permissions, and re-order phases within the Tasks tab.

Variable groups
(Рисунок 73) Группы переменных(Figure 73) Variable groups

Операции уровня среды можно сохранять как шаблон и использовать их для задания параметров безопасности (рис. 74).Use environment level operations to save as template and set security (Figure 74).

Environment menu
(Рисунок 74) Меню "Среда"(Figure 74) Environment menu

Дополнительные сведения см. в документации по редактору определений выпуска.See the documentation for Release Definition Editor for more information.

Развертывание виртуальных машин с помощью групп развертывания VM Deployment using Deployment Groups

Компонент Release Management теперь поддерживает надежные, готовые функции развертывания нескольких виртуальных машин.Release Management now supports robust out-of-the-box multi-machine deployment. Теперь вы можете управлять развертываниями на нескольких компьютерах и выполнять последовательные обновления с гарантированно высоким уровнем доступности приложений.You can now orchestrate deployments across multiple machines and perform rolling updates while ensuring high availability of the application throughout.

Функция развертывания на основе агентов использует те же агенты сборки и развертывания.Agent-based deployment capability relies on the same build and deployment agents. В отличие от текущего подхода, когда агенты сборки и развертывания устанавливаются для набора прокси-серверов в пуле агентов и развертывания передаются на удаленные целевые серверы, вы можете установить агент на каждом из целевых серверов непосредственно и передавать последовательные развертывания на эти серверы.However, unlike the current approach where you install the build and deployment agents on a set of proxy servers in an agent pool and drive deployments to remote target servers, you install the agent on each of your target servers directly and drive rolling deployments to those servers. Вы можете использовать полный каталог задач на целевых компьютерах.You can use the full task catalog on your target machines.

Группа развертывания (рис. 75) представляет собой логическую группу целевых объектов (компьютеров), на каждом из которых установлены агенты.A deployment group (Figure 75) is a logical group of targets (machines) with agents installed on each of them. Группы развертываний представляют физические среды, такие как отдельная среда разработки (DEV), проверка качества нескольких компьютеров и ферма компьютеров для UAT/PROD. Они также определяют контекст безопасности для физических сред.Deployment groups represent your physical environments, such as single-box Dev, multi-machine QA, and a farm of machines for UAT/Prod. They also specify the security context for your physical environments.

Deployment groups
(Рисунок 75) Группы развертывания(Figure 75) Deployment groups

Их можно использовать для любой виртуальной машины, которая зарегистрирована в агенте.You can use this against any VM that you register our agent with. Кроме того, мы упростили регистрацию в Azure с поддержкой расширения "Виртуальная машина Azure", которое автоматически устанавливает агент при развертывании виртуальной машины.We’ve also made it very easy to register with Azure with support for an Azure VM extension that auto-installs the agent when the VM spins up. Теги для виртуальной машины Azure автоматически наследуются при регистрации.We will automatically inherit the tags on the Azure VM when it’s registered.

Создав группу развертывания, вы можете просто задать необходимые для выполнения в ней операции (рис. 76).Once you have a deployment group, you simply configure what you want us to execute on that deployment group (Figure 76). Вы можете контролировать компоненты, выполняемые на тех или иных виртуальных машинах, с помощью тегов и управлять скоростью развертывания.You can control what gets run on which machines using tags and control how fast or slow the rollout happens.

Configure deployment groups
(Рисунок 76) Настройка групп развертываний(Figure 76) Configure deployment groups

При запуске развертывания ход выполнения для всей целевой группы компьютеров отражается в журналах (рис. 77).When the deployment is run, the logs show the progression across the entire group of machines you are targeting (Figure 77).

Deployment group progress
(Рисунок 77) Ход выполнения групп развертываний(Figure 77) Deployment group progress

Эта функция теперь является неотъемлемой частью системы управления выпусками.This feature is now an integrated part of Release Management. Дополнительные лицензии не требуются.No additional licenses are required.

Улучшенный пользовательский интерфейс групп развертыванияImproved Deployment Groups UI

В продолжение усилий по обновлению среды работы со сборками и выпусками мы обновили страницы групп развертывания, чтобы сделать их более понятными (рис. 78).Continuing our journey of refreshing the Build and Release experiences, we have now re-imagined our deployment groups pages to make it a more clean and intuitive experience (Figure 78). На целевой странице можно просмотреть сведения о работоспособности целевых объектов в группе развертывания.From the landing page, you can view the health of the targets in the deployment group. Кроме того, можно управлять безопасностью отдельной группы развертывания или задавать разрешения по умолчанию для групп развертывания.You can also manage security for an individual deployment group, or set default permissions across deployment groups.

Deployment groups UI
(Рисунок 78) Пользовательский интерфейс групп развертывания(Figure 78) Deployment groups UI

Для целевого объекта в группе развертывания можно просмотреть сводку, последние развертывания и возможности целевого объекта рис. 79.For a target within a deployment group, you can view a summary, recent deployments, and the target’s capabilities (Figure 79). Вы можете задавать теги для целевого объекта и управлять тем, что выполняется в каждом целевом объекте.You can set tags on the target, and control what is run on each target. В ближайших выпусках будет добавлена поддержка фильтров для групп развертывания.We will be adding filter support for deployment groups in upcoming releases.

Deployment groups UI tags
(Рисунок 79) Теги пользовательского интерфейса групп развертывания(Figure 79) Deployment groups UI tags

Ссылки группы задачTask group references

Группы задач позволяют определить набор задач, которые можно добавить в определения сборок и выпусков (рис. 80).Task groups let you define a set of tasks that you can add to your build or release definitions (Figure 80). Это удобно, если необходимо использовать одинаковые группы задач в нескольких сборках или выпусках.This is handy if you need to use the same grouping of tasks in multiple builds or releases. Для эффективного отслеживания объектов-получателей группы задач теперь вы можете просматривать определения сборок, определения выпусков и группы задач, которые ссылаются на вашу группу задач (рис. 79).To help you track the consumers of a task group, you now have a view into the build definitions, release definitions, and task groups that reference your task group (Figure 79).

Task group references
(Рисунок 80) Ссылки группы задач(Figure 80) Task group references

При попытке удалить группу задач, на которую все еще есть ссылки, выводится предупреждение и ссылка на эту страницу.When you try to delete a task group that’s still referenced, we warn you and give you a link to this page.

Управление версиями группы задачTask group versioning

Внесение изменений в группы задач может быть рискованным, так как изменение вступает в силу для всех определений, которые используют эту группу задач.When making changes to task groups, it can feel risky because the change is effective to all definitions that use the task group. Благодаря функции управления версиями группы задач теперь можно создавать черновики и просматривать версии группы задач, сохраняя наиболее стабильные версии для важнейших определений, пока не будет готова новая версия.With task group versioning, now you can draft and preview task group versions while still offering stable versions to your most important definitions until you are ready to switch. Создав несколько черновиков и итераций, можно опубликовать стабильную версию, кроме того, во время публикации, если изменения являются существенными, можно опубликовать группу задач как предварительную версию (новый основной номер версии).After some drafting and iteration, you can publish a stable version and, while publishing, if the changes are breaking in nature, you can choose to publish the task group as preview (a new major version). Вы также можете опубликовать ее непосредственно как обновленную стабильную версию (рис. 81).Alternatively, you can publish it directly as an updated stable version (Figure 81).

Когда будет доступна новая основная (или предварительная) версия этой группы задач, редактор определений проинформирует вас о наличии новой версии.When a new major (or preview) version of the task group is available, the definition editor will advise you that there is a new version. Если эта основная версия находится в режиме предварительной версии, также будет выведено сообщение "Попробуйте".If that major version is preview, you even see a “try it out” message. Когда группа задач переходит из состояния предварительной версии, использующие ее определения автоматически обновляются, продвигаясь в соответствии с основным каналом (рис. 82).When the task group comes out of preview, definitions using it will be auto-updated, sliding along that major channel (Figure 82).

Save as draft
(Рисунок 81) Сохранение группы задач в качестве черновика(Figure 81) Save task group as draft
Publish task group as preview
(Рисунок 82) Публикация группы задач в качестве предварительной версии(Figure 82) Publish task group as preview

Импорт и экспорт группы задачTask group import and export

Хотя группы задач можно было повторно использовать в проекте, процесс повторного создания группы задач для нескольких проектов и учетных записей представлял сложности.Although task groups have enabled reuse within a project, we know that recreating a task group across projects and accounts can be painful. Функции импорта и экспорта группы задач (рис. 83) теперь, как и для определений выпуска, поддерживают экспорт в виде файлов JSON и импорт туда, куда вам нужно.With task group import/export (Figure 83), as we’ve done for release definitions, now you can export as a JSON file and import where you want it. Мы также включили поддержку вложенных групп задач, которые расширяются при их экспорте.We’ve also enabled nested task groups, which first expand when they are exported.

Export task group
(Рисунок 83) Экспорт группы задач(Figure 83) Export task group

Поддержка нескольких конфигураций в задачах на стороне сервера (без агента)Multi Configuration support in Server Side (Agentless) tasks

Указав множители переменных для задач на стороне сервера (без агента, рис. 84), теперь вы можете запускать в ходе этапа один набор задач для множества конфигураций, которые работают параллельно.By specifying variable multipliers for server side (agentless) tasks (Figure 84), you can now run the same set of tasks in a phase on multiple configurations, which run in parallel.

Multi configuration of agentless tasks
(Рисунок 84) Несколько конфигураций задач без агента(Figure 84) Multi configuration of agentless tasks

Поддержка переменных в задаче "Вмешательство вручную"Variables Support in Manual Intervention task

Задача Вмешательство вручную (рис. 85) теперь поддерживает переменные в тексте инструкций, который показывается пользователям при выполнении задачи в точке, где пользователь может возобновить выполнение процесса выпуска или отклонить его.The Manual Intervention task (Figure 85) now supports the use of variables within the instruction text shown to users when the task runs, at the point where the user can resume execution of the release process or reject it. В него можно включать любые переменные, определенные и доступные в выпуске, и их значения будут использоваться в уведомлениях и отправляемых пользователям сообщениях электронной почты (рис. 86).Any variables defined and available in the release can be included, and the values will be used in the notifications as well as in the email sent to users (Figure 86).

Manual intervention task
(Рисунок 85) Задача "Вмешательство вручную"(Figure 85) Manual intervention task
Manual intevention pending dialog
(Рисунок 86) Диалоговое окно "Ожидается вмешательство вручную"(Figure 86) Manual intervention pending dialog

Управление выпусками в среде в зависимости от исходной ветвиControl releases to an environment based on the source branch

Определение выпуска можно настроить для запуска развертывания автоматически при создании нового выпуска, как правило, после успешной сборки источника.A release definition can be configured to trigger a deployment automatically when a new release is created, typically after a build of the source succeeds. Тем не менее, вам может потребоваться развертывать только сборки из определенных ветвей источника, а не при успешном завершении любой сборки.However, you may want to deploy only builds from specific branches of the source, rather than when any build succeeds.

Например, может потребоваться, чтобы все сборки развертывались в средах разработки и тестирования и только некоторые из них — в рабочей среде.For example, you may want all builds to be deployed to Dev and Test environments, but only specific builds deployed to Production. В прежних версиях нужно было поддерживать два конвейера выпуска для этой цели: один для сред разработки и тестирования, а другой — для рабочей среды.Previously you were required to maintain two release pipelines for this purpose, one for the Dev and Test environments and another for the Production environment.

Release Management теперь поддерживает использование фильтров артефактов для каждой среды.Release Management now supports the use of artifact filters for each environment. Это означает, что можно указать выпуски, которые будут развернуты в каждой среде при соблюдении условий триггера развертывания (таких как успешная сборка или создание выпуска).This means you can specify the releases that will be deployed to each environment when the deployment trigger conditions (such as a build succeeding and creating a new release) are met. В разделе Триггер диалогового окна Условия развертывания среды (рис. 87) выберите условия артефакта, такие как исходная ветвь и теги для сборок, которые будут активировать новое развертывание для этой среды.In the Trigger section of the environment Deployment conditions dialog (Figure 87), select the artifact conditions such as the source branch and tags for builds that will trigger a new deployment to that environment.

Deployment conditions dialog
(Рисунок 87) Диалоговое окно "Условия развертывания"(Figure 87) Deployment conditions dialog

Кроме того, страница сводки по выпуску (рис. 88) теперь содержит всплывающую подсказку, которая указывает причину всех "незапущенных" развертываний и предположение о способе и времени запуска развертывания.In addition, the Release Summary page (Figure 88) now contains a pop-up tip that indicates the reason for all “not started” deployments to be in that state, and suggests how or when the deployment will start.

Release summary tip
(Рисунок 88) Подсказка сводки по выпуску(Figure 88) Release summary tip

Триггеры выпуска для репозиториев Git как источник артефактаRelease Triggers for Git repositories as an artifact source

Release Management теперь поддерживает настройку триггера непрерывного развертывания (рис. 89) для репозиториев Git, связанных с определением выпуска в любом из командных проектов одной учетной записи.Release Management now supports configuring a continuous deployment trigger (Figure 89) for Git repositories linked to a release definition in any of the team projects in the same account. Это позволяет автоматически активировать выпуск при создании новой фиксации в репозитории.This lets you trigger a release automatically when a new commit is made to the repository. Можно также указать ветвь в репозитории Git, для которой фиксации будут запускать выпуск.You can also specify a branch in the Git repository for which commits will trigger a release.

Release triggers
(Рисунок 89) Триггеры выпуска(Figure 89) Release triggers

Триггеры выпуска: непрерывное развертывание для изменений, отправленных в репозиторий GitRelease Triggers: Continuous deployment for changes pushed to a Git repository

Компонент Release Management всегда предоставлял возможность настроить непрерывное развертывание после завершения сборки.Release Management has always provided the capability to configure continuous deployment when a build completes. Но теперь непрерывное развертывание можно также настроить для команды Git Push.However, now you can also configure continuous deployment on Git Push. Это означает, что можно связать репозитории Git GitHub и Team Foundation в качестве источников артефактов для определения выпуска, а затем автоматически активировать выпуски для приложений, таких как Node.JS и PHP, которые не создаются на основе сборки и не требуют действия сборки для непрерывного развертывания.This means that you can link GitHub and Team Foundation Git repositories as artifact sources to a release definition, and then trigger releases automatically for applications such as Node.JS and PHP that are not generated from a build and so do not need a build action for continuous deployment.

Фильтры ветвей в триггерах средыBranch filters in environment triggers

В новом редакторе определений выпуска можно указывать условия артефактов для определенной среды.In the new release definition editor you can now specify artifact conditions for a particular environment. С помощью этих условий можно более детально управлять тем, какие артефакты должны развертываться в определенной среде.Using these artifact conditions, you will have more granular control on which artifacts should be deployed to a specific environment. Например, в рабочей среде может быть необходимо развертывать только сборки, созданные в главной ветви.For example, for a production environment you may want to make sure that builds generated only from the master branch are deployed. Этот фильтр нужно задать для всех артефактов, которые, по вашему мнению, должны отвечать условию.This filter needs to be set for all artifacts that you think should meet this criterion.

Вы также можете добавить несколько фильтров для каждого артефакта, связанного с определением выпуска (рис. 90).You can also add multiple filters for each artifact that is linked to the release definition (Figure 90). Развертывание в среде будет инициироваться, только если соблюдены все условия артефактов.Deployment will be triggered to this environment only if all the artifact conditions are successfully met.

Branch filters
(Рисунок 90) Фильтры ветвей(Figure 90) Branch filters

Усовершенствования для задач на стороне сервераEnhancements to server-side tasks

Мы внесли несколько улучшений в задачи на стороне сервера (задачи, которые выполняются на этапе сервера).We have made two enhancements to server-side tasks (tasks that run within a server phase).

Мы добавили новую задачу, которую можно использовать для вызова любого универсального интерфейса REST API с HTTP (рис. 91) в составе автоматического конвейера.We have added a new task that can be used to invoke any generic HTTP REST API (Figure 91) as part of the automated pipeline. Например, ее можно использовать для вызова определенной обработки с помощью функции Azure и ожидания ее завершения.For example, it can be used to invoke specific processing with an Azure function, and wait for it to be completed.

REST API task
(Рисунок 91) Задача API REST(Figure 91) REST API task

Мы также добавили раздел Параметры управления (рис. 92) для всех задач на стороне сервера.We have also added a Control options (Figure 92) section to all server-side tasks. Поведение задачи теперь включает настройку параметров Включено, Продолжать при ошибке, Всегда запускать и Время ожидания.Task behavior now includes setting the Enabled, Continue on error, Always run, and Timeout options.

Task control options
(Рисунок 92) Параметры управления задачами(Figure 92) Task control options

Значок состояния выпуска в центре кодаRelease status badge in Code hub

До сих пор, если вы хотели узнать, развернута ли фиксация в рабочей среде клиента, сначала необходимо было определить, какая сборка использует фиксацию, а затем проверить все среды выпусков, в которых развернута эта сборка.Today, if you want to know whether a commit is deployed to your customer production environment, you first identify which build consumes the commit and then check all the release environments where this build is deployed. Теперь этот процесс стал гораздо проще благодаря интеграции состояния развертывания в значок состояния центра кода, который отображает список сред, в которых развертывается код.Now this experience is much easier with the integration of the deployment status in the Code hub status badge to show the list of environments that your code is deployed to. При каждом развертывании состояние отправляется в последнюю фиксацию, которая была частью развертывания.For every deployment, status is posted to the latest commit that was part of the deployment. Если фиксация развертывается в нескольких определениях выпуска (с несколькими средами), каждый выпуск содержит на значке запись и для каждой среды отображается состояние (рис. 93).If a commit is deployed to multiple release definitions (with multiple environments) then each has an entry in the badge, with status shown for each environment (Figure 93). Это повышает эффективность отслеживания фиксаций кода в развертываниях.This improves the traceability of code commit to deployments.

Release status badge
(Рисунок 93) Значок состояния выпуска(Figure 93) Release status badge

По умолчанию при создании определения выпуска состояние развертывания публикуется для всех сред.By default, when you create a release definition, deployment status is posted for all environments. Но вы можете сами выбрать среды, состояние развертывания которых должно отображаться на значке состояния, например только рабочие среды (рис. 94).However, you can selectively choose the environments whose deployment status should be displayed in the status badge (e.g. only show production environments) (Figure 94).

Deployment options dialog
(Рисунок 94) Диалоговое окно параметров развертывания(Figure 94) Deployment options dialog

Усовершенствования в меню определения сборки при добавлении артефактовEnhancements to Build definition menu when adding artifacts

При добавлении артефактов сборки в определение выпуска теперь вы можете просматривать определения со сведениями об организации папок, что упрощает выбор нужного определения (рис. 95).When adding build artifacts to a release definition, you can now view the definitions with their folder organization information and simplify choosing the desired definition (Figure 95). Это позволяет легко различать определения сборки с одним именем, но в разных папках.This makes it easy to differentiate the same build definition name but in different folders.

Add artifact
(Рисунок 95) Добавление артефакта(Figure 95) Add artifact

Список определений фильтруется: выводятся те определения, которые содержат условие фильтра.The list of definitions is filtered based on those that contain the filter term.

Возврат определения выпуска к старой версииRevert your release definition to older version

До сих пор при обновлении определения выпуска нельзя было вернуться к предыдущей версии напрямую.Today, if a release definition is updated, you can’t directly revert to a previous version. Единственным способом было изучение журнала определения выпуска для поиска разницы изменений и последующее изменение определения выпуска вручную.The only way is to look into the release definition history to find the diff of the changes, and then manually edit the release definition. Теперь с помощью функции Отменить определение (рис. 96) вы можете выбрать и восстановить любую предыдущую версию определения выпуска на вкладке Журнал.Now, using the Revert Definition feature (Figure 96), you can choose, and revert back to any older version of a release definition from the release definition History tab.

Revert release definition
(Рисунок 96) Отмена изменений в определении выпуска(Figure 96) Revert release definition

Персонализированные уведомления для выпусковPersonalized notifications for releases

Уведомления о выпусках теперь включены в интерфейс для настройки параметров уведомлений Visual Studio Team Services.Release notifications are now integrated with the VSTS notification settings experience. Те, кто управляет выпусками, теперь автоматически оповещаются об ожидающих выполнения действиях (утверждениях или вмешательствах вручную) и важных сбоях развертывания.Those managing releases are now automatically notified of pending actions (approvals or manual interventions) and important deployment failures. Вы можете отключить эти уведомления, перейдя к параметрам Уведомление в меню профиля и отключив подписки на выпуски.You can turn off these notifications by navigating to the Notification settings under the profile menu and switching off Release Subscriptions. Кроме того, можно подписаться на дополнительные уведомления, создав пользовательские подписки.You can also subscribe to additional notifications by creating custom subscriptions. Администраторы могут управлять подписками для команд и групп на странице параметров Уведомление в разделах Команда и Учетная запись.Admins can control subscriptions for teams and groups from the Notification settings under Team and Account settings.

Авторам определения выпуска больше не нужно вручную отправлять сообщения электронной почты для утверждения и завершения развертывания.Release definition authors will no longer need to manually send emails for approvals and deployment completions.

Это особенно полезно в случае с большими организациями, в которых с выпусками связано много заинтересованных лиц и где нужно уведомлять других лиц, помимо утверждающего, создателя выпуска и владельца среды (рис. 97).This is especially useful for large accounts that have multiple stakeholders for releases, and for those other than the approver, release creator, and environment owner that might want to be notified (Figure 97).

Release notifications
(Рисунок 97) Уведомления о выпусках(Figure 97) Release notifications

Дополнительные сведения см. в записи об управлении уведомлениями о выпусках.See the post for managing release notifications for more information.

Тестирование Testing

Прекращена поддержка центра лабораторий и потоков автоматического тестирования в Microsoft Test Manager Removing support for Lab Center and automated testing flows in Microsoft Test Manager

По мере развития системы управления выпусками и сборками поддержка сборок XAML прекращена в TFS 2018, соответственно, мы обновляем поддержку Microsoft Test Manager (MTM) в Team Foundation Server.With the evolution of Build and Release Management, XAML builds are no longer supported in TFS 2018 and consequently we are updating support for using Microsoft Test Manager (MTM) with TFS. Использование центра тестирования и центра лабораторий в Microsoft Test Manager для выполнения автоматических тестов больше не поддерживается в TFS начиная с TFS 2018.Using Test Center/Lab Center in MTM for automated testing is no longer supported by TFS, starting with TFS 2018. Если вы не готовы к отказу от сборок XAML и центра лабораторий, не выполняйте обновление до TFS 2018.If you are not ready to migrate away from XAML builds and Lab Center, you should not upgrade to TFS 2018.

Влияние обновления на TFS 2018 см. ниже.Please see the impact of upgrading to TFS 2018 below:

Центр лабораторийLab Center:
  • Больше не поддерживается.No longer supported:
    • Контроллеры Test Controller нельзя зарегистрировать в Team Foundation Server для создания лабораторных сред и управления ими.Test Controllers cannot be registered with TFS for creating and managing Lab environments.
    • Все существующие контроллеры Test Controller, зарегистрированные в Team Foundation Server, будут отключены и существующие лабораторные среды будут отображаться как неготовые.Any existing Test Controllers registered with TFS will go offline and existing Lab environments will appear as 'Not Ready'.
  • Рекомендуемое альтернативное решениеRecommended alternative:
Автоматическое тестированиеAutomated Testing:
Тестирование вручнуюManual Testing:
  • Все сценарии тестирования вручную по-прежнему полностью поддерживаются.All manual testing scenarios continue to be fully supported. Хотя ручные тесты можно выполнять с помощью MTM в TFS 2018, лабораторные среды нельзя использовать для выполнения ручных тестов.While manual tests can be run using MTM with TFS 2018, Lab Environments cannot be used to run manual tests.
  • Для всех сценариев тестирования вручную мы настоятельно рекомендуем использовать центр тестирования в веб-интерфейсе TFS.For all manual testing scenarios, we strongly recommend using the Test hub in TFS web access.

Основываясь на отзывах, которые мы получили от команд, использующих произвольное тестирование, мы улучшаем прослеживаемость ссылок при регистрации ошибок, задач и тестовых случаев из расширения "Тестирование и обратная связь".Based on the feedback we received from teams doing exploratory testing, we are improving traceability links while filing bugs, tasks, or test cases from the Test & Feedback extension. Ошибки и задачи, созданные при просмотре требований, теперь будут создаваться с использованием тех же пути к области и итерации, что и в требовании, вместо значений команды по умолчанию.Bugs and tasks created while exploring requirements will now be created with the same area path and iteration as that of the requirement instead of team defaults. Тестовые случаи, созданные при просмотре требований, теперь будут связываться с помощью ссылки Тесты <-> Тест выполнил, а не ссылки Родительский объект <-> Дочерний объект. Это позволит автоматически добавлять связанные тестовые случаи в наборы тестов на основе требований.Test cases created while exploring requirements will now be linked with a Tests <-> Tested By link instead of the Parent <-> Child link so that the test cases you create are automatically added to requirement based test suites. И наконец, рабочие элементы, созданные не при просмотре какого-либо требования, будут регистрироваться в итерации команды по умолчанию вместо текущей итерации, чтобы новые рабочие элементы не поступали в текущую итерацию после завершения планирования спринта.Finally, work items created while not specifically exploring any requirement will be filed in the team’s default iteration instead of the current iteration so that no new work items come into the current iteration after the sprint planning is complete.

Фильтры для рабочих элементов тестового случая в планах тестирования и наборах тестов в центре тестированияFilters for Test Case work items in Test Plans and Suites in Test Hub

Помимо фильтров в полях Тест, таких как Результат, Конфигурация и Тест-инженер, теперь доступна фильтрация по полям рабочих элементов в тестовых случаях, таких как Название, Состояние и Кому назначено (рис. 98).In addition to the filters on Test fields like Outcome, Configuration, and Tester, you can now filter on Test Case work item fields like Title, State, and Assigned To (Figure 98).

Test case filters
(Рисунок 98) Фильтры тестовых случаев(Figure 98) Test case filters

Диаграммы тренда тестирования для сред выпуска и тестовых запусковTest trend charts for Release Environments and Test Runs

Мы добавили поддержку сред выпуска в мини-приложение Тренд результатов тестирования (рис. 99), чтобы вы могли отслеживать состояние сред тестирования на панелях мониторинга VSTS.We are adding support for Release Environments in the Test Result Trend widget (Figure 99) so that you can track status of test environments on VSTS dashboards. Аналогично функциям, доступным для результатов тестирования в разделе Сборка, теперь можно создавать диаграммы тренда, показывающие долю пройденных тестов, общее число тестов, число пройденных или непройденных тестов и длительность теста для сред выпуска.Like the way you to do for test results in Build, you can now create trend charts showing test pass rate, count of total, passed or failed tests, and test duration for Release Environments. Кроме того, диаграммы можно фильтровать по конкретному тестовому запуску в среде, используя фильтр по названию Тестовый запуск.You can also filter the charts to a specific test run within an environment with the Test Run title filter.

Test trend chart
(Рисунок 99) Диаграмма тренда тестирования(Figure 99) Test trend chart

Поддержка форматирования разметки Markdown для комментариев "Тестовый запуск" и "Результат теста"Markdown formatting support for Test Run and Test Result comments

Мы добавили поддержку форматирования комментариев Тестовый запуск и Результат теста с синтаксисом Markdown.We are adding support for formatting Test Run and Test Result comments with markdown syntax. Эту функцию можно использовать, чтобы создать форматированный текст или быстрые ссылки на URL-адреса в комментариях.You can use this feature to create formatted text or quick links to URLs in your comments. Комментарии Результат теста можно изменить на странице Сводка результатов с помощью комментариев Анализ обновления и Тестовый запуск на странице Сводка запуска с помощью кнопки Обновить комментарии в центре тестирования.You can update Test Result comments in the Result Summary page with Update analysis and Test Run comments in the Run Summary page with Update comments in Test hub.

Во время анализа результатов тестирования на сводной странице Сборка или Выпуск, а также в центре тестирования теперь можно связать существующую ошибку с непройденным тестом.While analyzing the test result in the Build or Release summary page or in the Test hub, you can now associate an existing bug to a failed test. Это удобно в тех случаях, когда сбой теста происходит по известной причине, ошибка для которой уже зарегистрирована.This is helpful when a test is failing for a known reason that has a bug already filed.

Отправка вложений к тестовым запускам и результатам тестовUpload attachments to test runs and test results

В тестовые запуски или результаты тестов теперь в качестве дополнительной информации можно вкладывать файлы, например снимки экрана и файлы журналов.You can now attach files such as screenshots and log files to test runs or test results as additional information. До сих пор эта возможность была доступна только в клиенте Microsoft Test Manager (MTM), из-за чего приходилось переключаться между центром тестирования в Visual Studio Team Services или Team Foundation Server и клиентом MTM.Up to this point, this capability was only available through the Microsoft Test Manager (MTM) client, forcing you to switch context between the Test hub in VSTS/TFS and the MTM client.

Пакетная обработка тестовTest batching

В области управления сборками и выпусками для задачи теста Visual Studio доступны параметры, с помощью которых можно управлять тем, как должны группироваться (объединяться в пакеты) тесты для эффективного выполнения.In the Visual Studio test task in Build/Release management, options are available to control how tests should be grouped (batched) for efficient execution. Тесты можно группировать двумя способами:Tests can be grouped in two ways:

  1. в соответствии с числом тестов и агентов, участвующих в запуске; при этом тесты просто объединяются в несколько пакетов определенного размера;Based on the number of tests and agents participating in the run, which simply groups tests into a number of batches of a specified size.
  2. в соответствии с временем предыдущего выполнения тестов; при этом пакеты тестов формируются так, чтобы каждый пакет имел приблизительно одинаковое время выполнения (рис. 100).Based on past running time of tests, which considers past running time to create batches of tests such that each batch has approximately equal running time (Figure 100). Быстро и долго выполняющиеся тесты объединяются в разные пакеты.Quick running tests get batched together while longer running tests may belong to a separate batch. Чтобы свести общее время тестирования к минимуму, этот параметр можно применять в сочетании с настройкой, подразумевающей этап использования нескольких агентов.This option can be combined with the multi-agent phase setting to reduce the total test time to a minimum.
Test batching
(Рисунок 100) Пакетная обработка тестов(Figure 100) Test batching

Выполнение веб-тестов с помощью задачи VSTestRun webtests using the VSTest task

С помощью задачи теста Visual Studio веб-тесты, также называемые веб-тестами производительности, теперь можно выполнять в рамках конвейера непрерывной интеграции и непрерывного развертывания.Using the Visual Studio test task, webtests, also known as web performance tests, can now be run in the CI/CD pipeline. Для выполнения веб-тестов их можно указать во входных данных сборки задачи.Webtests can be run by specifying the tests to run in the task assembly input. Любой рабочий элемент тестового случая, связанная автоматизация которого связана с веб-тестом, можно также выполнить, выбрав в задаче план тестирования или набор тестов (рис. 101).Any test case work item that has an “associated automation” linked to a webtest, can also be run by selecting the test plan/test suite in the task (Figure 101).

Test selection
(Рисунок 101) Выбор тестов(Figure 101) Test selection

Результаты веб-теста будут доступны в виде вложения в результаты теста (рис. 102).Webtest results will be available as an attachment to the test result (Figure 102). Их можно скачать для автономного анализа в Visual Studio.This can be downloaded for offline analysis in Visual Studio.

Test summary
(Рисунок 102) Сводка теста(Figure 102) Test summary

Эта возможность зависит от изменений в платформе тестирования Visual Studio и требует установки Visual Studio 2017 с обновлением 4 в агенте сборки или выпуска.This capability is dependent on changes in the Visual Studio test platform and requires that Visual Studio 2017 Update 4 be installed on the build/release agent. Веб-тесты нельзя выполнять с помощью предыдущих версий Visual Studio.Webtests cannot be run using prior versions of Visual Studio.

Аналогичным образом, веб-тесты можно выполнять с помощью задачи запуска функционального теста.Similarly, webtests can be run using the Run Functional Test task. Эта возможность зависит от изменений в агенте тестирования, который будет доступен в составе Visual Studio 2017 с обновлением 5.This capability is dependent on changes in the Test Agent, that will be available with the Visual Studio 2017 Update 5.

Пример использования этой возможности с нагрузочным тестированием см. в кратком руководстве по нагрузочному тестированию приложения в облаке с помощью Visual Studio и Visual Studio Team Services.See the Load test your app in the cloud using Visual Studio and VSTS quickstart as an example of how you can use this together with load testing.

Мини-приложение диаграмм для планов тестирования и наборов тестовChart widget for test plans and test suites

Ранее вы могли создавать диаграммы для планов тестирования и наборов тестов в центре тестирования, а затем закреплять их на панели мониторинга.Previously, you could create charts for test plans and suites in Test hub and pin them to dashboard. Мы добавили мини-приложение, которое позволяет создавать диаграммы для планов тестирования и наборов тестов из каталога мини-приложений на панели мониторинга.We have now added a widget that enables creating charts for test plans and suites from the widget catalog on the dashboard. Вы можете создавать диаграммы, отражающие состояние разработки или выполнения тестов.You can create charts for test authoring status or test execution status. Кроме того, с помощью мини-приложения можно создавать более крупные диаграммы, содержащие больший объем данных рис. 103.Moreover, adding charts from the widget allows you to create larger charts when you have more data to be shown on a chart (Figure 103).

Chart widget
(Рисунок 103) Мини-приложение диаграмм(Figure 103) Chart widget

Поддержка снимков экрана и заметок для классических приложений в браузере Chrome при выполнении ручных тестовScreenshot and annotation support for desktop apps with Chrome browser for manual tests

Мы добавили поддержку одной из самых востребованных функций ручного тестирования — создания снимков экрана с классическими приложениями из средства выполнения веб-тестов в центре тестирования.We are adding support for one of the top suggestions from manual testing - capturing screenshots of desktop applications from the Web Test Runner in Test hub. До сих пор для создания снимков экрана с классическими приложениями приходилось использовать средство выполнения тестов в Microsoft Test Manager.Until now, you had to use Test Runner in Microsoft Test Manager to capture screenshots of desktop apps. Для использования этой функции необходимо установить расширение тестирования и обратной связи.You need to install the Test & Feedback extension to use this functionality. Сейчас реализуется поддержка браузера Chrome, а в скором времени появится поддержка Firefox.We are rolling out support for the Chrome browser, and Firefox will follow shortly thereafter.

Прекращение поддержки расширения TFS для SharePoint Discontinuing TFS Extension for SharePoint

В TFS 2018 и более поздних версиях прекращается поддержка расширение TFS для SharePoint.TFS 2018 and later versions will no longer support the TFS Extension for SharePoint. Кроме того, экраны, используемые для настройки интеграции между сервером TFS и сервером SharePoint, удалены из консоли администрирования Team Foundation.Additionally, the screens used to configure integration between a TFS Server and a SharePoint server have been removed from the Team Foundation Administration Console.

Примечание

Если вы обновляете предыдущую версию, для которой настроена интеграция с SharePoint, до Team Foundation Server 2018, необходимо отключить интеграцию с SharePoint после обновления. В противном случае сайты SharePoint Team Foundation Server не смогут загружаться.If you are upgrading to TFS 2018 from a previous version configured to integrate with SharePoint, you will need to disable the SharePoint integration after upgrade, or your TFS SharePoint sites will fail to load.

Мы создали решение, позволяющее отключить интеграцию на сервере SharePoint.We have created a solution that allows you to disable integration on the SharePoint server. Дополнительные сведения см. в записи о дальнейшем развитии интеграции Team Foundation Server с SharePoint.For more information, please see the post on the future of our TFS/SharePoint Integration.

Прекращение поддержки комнат команд Discontinuing Team Rooms

Современные команды разработчиков сильно зависят от совместной работы.Modern development teams heavily depend on collaboration. Людям требуется место для отслеживания активности (уведомлений) и обсуждения (чаты).People want (and need) a place to monitor activity (notifications) and talk about it (chat). Несколько лет назад мы обратили внимание на эту тенденцию и приступили к созданию комнат команд для поддержки таких сценариев.A few years back, we recognized this trend and set out to build the Team Room to support these scenarios. С того времени на рынке появилось много решений для совместной работы.Since that time, we have seen more solutions to collaborate emerge in the market. Прежде всего, следует отметить успех решения Slack.Most notably, the rise of Slack. Кроме того, недавно было объявлено о выпуске Microsoft Teams.And more recently, the announcement of Microsoft Teams.

Учитывая наличие большого числа хороших решений, которые отлично интегрируются с Team Foundation Server и Visual Studio Team Services, в январе мы объявили о планах по удалению компонента "Комната команды" из TFS 2018 и Visual Studio Team Services.With so many good solutions available that integrate well with TFS and Visual Studio Team Services, we announced in January the plans to remove our Team Room feature from both TFS 2018 and Visual Studio Team Services.


К началу страницы
Top of Page