Team Foundation Server 2017 с обновлением 1

Last Update: 01.09.2017

Последние обновления см. на странице Заметки о выпуске на английском языке.

Дата выпуска: 7 марта 2017 г.

Мы с радостью сообщаем о выпуске Team Foundation Server 2017 с обновлением 1. Этот новый выпуск включает последние улучшенные и принципиально новые функциональные возможности. Сведения о требованиях можно найти на странице Требования к Team Foundation Server и совместимость.

Скачать: Team Foundation Server 2017 с обновлением 1

Дополнительные сведения о связанных загружаемых файлах см. на странице Загрузки.

Новые возможности в TFS 2017 с обновлением 1


Известные проблемы


Новые возможности

Более персонализированные возможности работы

Домашняя страница персонализированной коллекции

В этом выпуске очень легко получить доступ к самым важным для вас артефактам. Обновленная страница коллекции (рис. 1) теперь отображает самые важные для вас проекты, избранное, рабочие элементы и запросы на включение внесенных изменений. На ней очень удобно начать работу. Все необходимое легко найти в одном месте. Дополнительные сведения см. в статье о домашних страницах учетной записи.

<img src="media/tfsrc1_18-2.png" "Redesigned collection page" width="650" height="376" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 1. Обновленная страница коллекции

Проект получает идентификатор

Теперь общие сведения о проекте можно получить в одном месте. На новой странице проекта можно легко просматривать и редактировать описание проекта, просматривать и добавлять участников, а также проверять последние действия по проекту. Начинать работу с новыми проектами и пользоваться всеми встроенными функциями DevOps в TFS стало еще проще.

Усовершенствования управления версиями

Изменения разрешений для администратора репозитория

В репозиториях Git мы разделили разрешение Администрирование на несколько более детализированных разрешений. Это обеспечит дополнительную гибкость, чтобы вы могли решить, кто может выполнять отдельные действия. Например, вы можете разрешить всем в учетной записи создавать репозитории, но запретить удалять их, удалять пользователей из репозитория или добавлять их в него. Новые разрешения

  • Управление разрешениями: добавление и удаление пользователей и разрешений.
  • Создание: создание репозитория.
  • Удаление: удаление репозитория.
  • Переименование: переименование репозитория.
  • Изменение политик: настройка политик ветвей.
  • Удаление блокировок других пользователей: удаление блокировок ветви, заданных другим пользователем.

Эти разрешения можно применять как к отдельным репозиториям, так и ко всем в проекте.

Улучшения политики ветвей

В разделе Политики (рис. 2) обязательные и необязательные политики теперь группируются в разделы. Это позволяет точно узнать, какие политики необходимы для завершения запроса на включение внесенных изменений. Необходимые рецензенты также объединены в разделе требований и будут отмечены как допустимые только после утверждения всех требуемых рецензентов.

<img src="media/tfsrc2_01.png" "Policies section" width="306" height="197" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 2. Раздел "Политики"

Если вы хотите обойти политики (и у вас есть нужные разрешения), теперь для этого доступны новые функции в диалоговом окне Завершить (рис. 3). Все невыполненные политики будут указаны в сообщении с предупреждением, и будет доступен новый параметр явного соглашения на переопределение политик. Установка флажка переопределения позволит использовать действие Переопределить и завершить, которое завершит PR, переопределив политики со сбоями.

<img src="media/tfsrc2_02.png" "Complete dialog" width="421" height="412" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 3. Диалоговое окно "Завершить"

Поддержка исключений файлов в требуемой политике рецензентов

Указывая необходимых рецензентов для определенных путей к файлам, можно исключить пути с помощью префикса "!". Например, его можно использовать для исключения папки "docs" из необходимого вам стандартного утверждения (рис. 4).

<img src="media/tfsrc1_31.png" "File exclusion support" width="823" height="103" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 4. Поддержка исключения файлов

Импорт репозитория

Теперь вы можете импортировать репозиторий Git из GitHub, BitBucket, GitLab и других расположений. Импортировать данные можно в новый или существующий пустой репозиторий. Дополнительные сведения см. в статье Import a Git repo (Импорт репозитория Git).

Добавление файла .gitignore во время создания репозитория

При создании репозитория Git теперь можно добавить и связать с репозиторием файл .gitignore. Файл .gitignore указывает файлы, которые следует игнорировать Git при выполнении фиксации.

В диалоговом окне можно выбрать один из множества доступных шаблонов .gitignore (рис. 5).

<img src="media/tfsrc1_26-2.png" "Add .gitignore during repo creation" width="400" height="260" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 5. Добавление файла .gitignore при создании репозитория

Выборочный отбор и отмена изменений

Мы добавили две новых функции, упрощающие перенос или возврат изменений с веб-портала: выборочный отбор и отмена изменений.

Команда выборочного отбора используется для переноса изменений в запросе на включение внесенных изменений в несколько ветвей. Распространенным вариантом является необходимость исправления ошибки, причем сделать это требуется и в основной программе. После создания запроса на включение внесенных изменений, содержащего исправление для ветви исправления, можно без труда отобрать это исправление и скопировать его в главную ветвь. Дополнительные сведения см. в статье Copy changes with cherry-pick (Копирование изменений с помощью выборочного отбора).

Можно отменить изменения по выполненному запросу на включение внесенных изменений. Найдите запрос на включение внесенных изменений с неверным изменением, нажмите Revert (Отменить изменения) и выполните действия по созданию запроса на включение внесенных изменений, в котором нежелательные изменения будут удалены. Дополнительные сведения см. в статье Undo Changes with Git (Отмена изменений в Git).

Настраиваемая сравниваемая ветвь

Теперь для сравниваемой ветви можно задать значение, отличное от ветви по умолчанию. Этот параметр будет храниться на уровне каждого пользователя. В основе запросов на включение внесенных изменений и ветвей, созданных на странице Branches (Ветви), будет находиться ветвь, заданная в качестве сравниваемой. Дополнительные сведения см. в статье Manage your branches (Управление ветвями).

Поиск файла или папки

На странице Code (Код) в проекте Team Services можно быстро найти файл или папку в репозитории. В списке результатов будут отображены элементы из текущей папки с указанием файлов и папок в репозитории.

Чтобы найти в любом репозитории Git файлы или папки, перейдите в поле пути (рис. 6) и начните ввод с клавиатуры.

<img src="media/tfsrc1_04-2.png" "Find a file or folder" width="400" height="184" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 6. Поиск файла или папки

Подтверждение при удалении репозиториев

Чтобы исключить случайные удаления репозиториев, для подтверждения удаления необходимо ввести имя соответствующего репозитория.

избранные репозитории

Теперь вы можете включить часто используемые репозитории в список "Избранное". В средстве выбора репозитория (рис. 7) вы увидите вкладки Все репозитории и Избранное. Щелкните значок звездочки, чтобы добавить репозиторий в список "Избранное".

<img src="media/tfsrc1_05-2.png" "Repo favorites" width="171" height="171" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 7. Избранные репозитории

Поиск файла или папки в журнале фиксации

Теперь вы можете искать в репозитории файлы и папки так же, как и на вкладке "Файлы", и просматривать по ним журнал фиксаций. Чтобы найти в любом репозитории Git журналы по файлам или папкам, перейдите на вкладке "Журнал" в поле пути (рис. 8) и начните ввод с клавиатуры.

<img src="media/tfsrc1_27-2.png" "Commit history" width="410" height="261" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 8. Журнал фиксаций

Улучшения страницы фиксаций

Мы оптимизировали страницу сведений о фиксации и страницу журнала фиксаций, сделав информацию на них более актуальной, а работу с ними — более удобной. Теперь вы можете быстро получить здесь всю ключевую информацию о фиксации и перейти к необходимым действиям.

Пример страницы сведений о фиксации (рис. 9):

<img src="media/tfsrc1_22-2.png" "Commit details" width="700" height="177" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 9. Сведения о фиксации

Пример страницы журнала фиксаций (рис. 10):

<img src="media/tfsrc1_23-2.png" "Commit history" width="700" height="160" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 10. Журнал фиксаций

Поиск фиксаций в ветвях

Теперь вы можете искать фиксации в указанной ветви или теге. Для этого на странице сведений о фиксациях нажмите кнопку Искать в ветвях (рис. 11).

<img src="media/tfsrc1_24-2.png" "Commit search" width="700" height="113" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 11. Поиск фиксации

В окне можно выбирать для просмотра теги и ветви, даже если они не содержат искомую фиксацию (рис. 12).

<img src="media/tfsrc1_25-2.png" "Commit search dialog" width="700" height="365" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 12. Диалоговое окно поиска фиксации

Панель инструментов для управления обсуждением

Markdown — это многофункциональный инструмент для добавления комментариев в запросы на включение внесенных изменений, но его синтаксис сложно запомнить. Чтобы облегчить эту задачу, мы добавили в элемент управления обсуждением специальную панель инструментов (рис. 13). Она позволяет вставить нужный синтаксис Markdown для типичного форматирования. Заголовки, полужирный шрифт, курсив, ссылки, код, списки и такие функции, как @ и упоминания через #, можно добавить с помощью новых элементов управления панели инструментов. Используйте сочетания клавиш, чтобы применить жирный шрифт (CTRL+B), курсив (CTRL+I) и создавать ссылки (CTRL+K).

<img src="media/tfsrc2_03-2.png" "Discussion toolbar" width="700" height="157" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 13. Панель инструментов обсуждения

Улучшения комментирования PR

Чтобы вам было проще видеть новые комментарии в запросах на включение внесенных изменений, мы добавили дополнительное оформление в новые ответы в существующих беседах. Представление комментариев в файлах также выделяет беседы с новыми комментариями (рис. 14).

<img src="media/tfsrc2_04-2.png" "PR comment" width="590" height="469" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 14. Усовершенствования для комментариев к запросам на включение внесенных изменений

Просмотр PR для фиксации

Теперь вы можете просмотреть все связанные запросы на включение внесенных изменений для фиксации на странице Сведения о фиксации. На изображении (рис. 15) можно увидеть следующее:

  • В связанном раскрывающемся списке запросов на включение внесенных изменений есть два запроса, связанных с этой фиксацией.
  • Запрос на включение внесенных изменений №2 перенес эту фиксацию в мастер-копию.
  • Та же фиксация была внесена в ветвь 4 с помощью запроса на включение внесенных изменений №1.

<img src="media/tfsrc2_05-2.png" "PR in commits" width="700" height="223" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 15. Запросы на включение внесенных изменений в фиксациях

Отслеживание запроса на включение внесенных изменений

Вы можете отслеживать запрос на получение внесенных изменений и получать уведомления о любых изменениях с помощью оповещений по электронной почте. Для этого предназначена команда Следовать (рис. 16) в контекстном меню.

<img src="media/tfsrc1_28.png" "Follow a pull request" width="194" height="209" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 16. Отслеживание запроса на включение внесенных изменений

Перезапуск слияния запросов на включение внесенных изменений

Добавлен параметр для выполнения повторной попытки слияния запроса на включение внесенных изменений в случае обновления конечной ветви. Параметр Restart merge (Перезапустить слияние) полезен, если необходимо убедиться, что последние изменения конечной ветви не вызвали конфликтов или нарушили сборку запроса.

Выполнение заблокированных или отклоненных запросов на включение внесенных изменений

Ветви, для которых задана политика проверки кода, покажут, что запрос на включение внесенных изменений не может быть выполнен, если он отклонен одним или несколькими рецензентами. Многие из вас всегда ожидали именно такого поведения, поэтому мы изменили поведение по умолчанию. Для команд специалистов, которым требуется исходное поведение, доступен новый параметр на странице параметров политики ветви (рис. 17).

<img src="media/tfsrc1_29-2.png" "Code review policy" width="400" height="114" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 17. Политика проверки кода

Форматирование Markdown в описании запроса на включение внесенных изменений

Оживите описание запроса на включение внесенных изменений с помощью Markdown. Хорошо знакомая вам поддержка Markdown в запросах на включение внесенных изменений теперь доступна в описаниях запросов на включение внесенных изменений.

Вложения в обсуждениях запросов на включение внесенных изменений

Теперь в комментарии к запросу на включение внесенных изменений можно добавлять вложения (рис. 18). Для этого используются функции перетаскивания или обзора. Чтобы вложить изображения, просто вставьте нужную картинку из буфера обмена. При добавлении вложения комментарий автоматически обновляется и включает ссылку Markdown на новое вложение.

<img src="media/tfsrc1_30-2.png" "Attachments in PR discussions" width="700" height="233" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 18. Вложения в обсуждениях запросов на включение внесенных изменений

Выделение запросов на включение внесенных изменений с обновлениями

Теперь отслеживание обновлений в запроса на включение внесенных изменений стало еще проще. В представлении списка (рис. 19) запросы, имеющие изменения с момента их последнего просмотра, отображаются с новым столбцом, где показана сводка обновлений.

<img src="media/tfsrc1_32-2.png" "PR updated files" width="700" height="212" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 19. Обновленные запросы на включение внесенных изменений

При просмотре запроса с изменениями вы увидите похожее сводное сообщение в разделе обзора. Новые цепочки уведомлений и комментариев выделены синим цветом (рис. 20). Перейдя по ссылке Просмотреть обновления кода, вы попадете в представление Файлы, в котором отображаются новые изменения, появившиеся с момента последнего просмотра запроса на включение внесенных изменений. Эта функция упрощает отслеживание запросов, в которые автор внес изменения в ответ на отзывы.

<img src="media/tfsrc1_33-2.png" "PR summary" width="700" height="212" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 20. Сводка по запросу на включение внесенных изменений

Политика ветвей для стратегии слияния запросов на включение внесенных изменений

Мы добавили для ветвей новую политику (рис. 21), которая позволяет задавать стратегию слияния запросов на включение внесенных изменений для каждой ветви. В прошлом решение о слиянии или сжатом слиянии принималось при завершении запроса на включение внесенных изменений. Если политика включена, она переопределит ваши настройки и применит свое требование.

<img src="media/tfsrc1_34.png" "Branch policy" width="421" height="111" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 21. Политика для ветвей

Отображение сведений о конфликтах слияния

Если в запросе на включение внесенных изменений имеются файлы с конфликтами, сведения об этих конфликтах будут отображаться в разделе обзора (рис. 22). Каждый конфликтующий файл будет представлен в списке с краткими сведениями о типе конфликта между исходной и целевой ветвями.

<img src="media/tfsrc1_35-2-2.png" "Merge conflicts" width="700" height="256" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 22. Конфликты слияния

Кнопка предварительного просмотра Markdown

При просмотре отличий файла markdown в фиксации или запросе на включение внесенных изменений можно легко выбирать нужное результирующее представление.

Усовершенствования отслеживания рабочих элементов

Улучшенные возможности поиска ограниченных полей идентификации

В этом выпуске мы изменили поведение средства выбора удостоверения для ограниченных полей идентификации, то есть тех, которые позволяют делать назначения только определенной группе пользователей. По новой схеме в списке последних выбиравшихся файлов и результатах поиска будут возвращены только элементы заданной группы, а не результаты по всем допустимым пользователям коллекции.

Усовершенствования сборок

Откат определений сборок

Определение сборки можно откатить к предыдущей версии. Это можно сделать при редактировании определения сборки на вкладке Журнал.

Отключение синхронизации и извлечение источников в сборке

При необходимости можно отключить автоматическую синхронизацию и извлечение источников в Git. Это позволит обрабатывать операции с источниками в задаче или скрипте, а не полагаться на встроенное поведение агента. Все стандартные связанные с источником переменные, такие как Source.Version, Source.Branch и Build.SourcesDirectory, установлены.

Пустой клон Git и git-lfs (хранилище для больших файлов)

Теперь агент сборки поддерживает пустой клон Git и git-lfs (хранилище для больших файлов). Дополнительные сведения см. в разделе Страница репозитория определения сборки.

Управление версиями задач для определений сборки и выпуска

Вы можете контролировать основной номер версии задачи, выполняемой в сборке или выпуске. Это изменение позволит уменьшить количество непредвиденных ошибок, которые возникали при автоматическом обновлении версии задачи и агента. Основной номер версии задачи можно указать на вкладке Build (Сборка) определения или на вкладке Environments (Среды) определения выпуска.

При выходе дополнительного номера версии (например, с 1.2 по 1.3) в сборке автоматически появится соответствующее изменение. Но в случае выхода нового основного номера версии (например, 2.0) сборка будет заблокирована на версии 1.3 до тех пор, пока вы не измените определение и вручную не укажете новый основной номер версии. Новый основной номер версии будет обозначен флагом в определении сборки.

Оплата, необходимая для управления пакетами

Чтобы и далее использовать управление пакетами, вам нужна подписка Visual Studio Enterprise или лицензия на управление пакетами, приобретенная в Marketplace. Дополнительные сведения о лицензиях на управление пакетами см. в этой статье.

Усовершенствования пакетов

Представления выпусков в управлении пакетами

В службу управления пакетами добавлена новая возможность — представления выпуска (рис. 23). Представления выпусков — это подмножество версий пакетов в веб-канале, которые были повышены до уровня представления выпуска. Создавая представление выпуска и предоставляя потребителям пакета общий доступ к нему, вы можете контролировать версии, от которых они зависят. Это особенно полезно в сценариях непрерывной интеграции, когда вы часто публикуете версии обновленных пакетов, но можете не объявлять или поддерживать каждую опубликованную версию.

Чтобы приступить к работе, перейдите на панель быстрого запуска в Web Access или ознакомьтесь со сведениями о представлениях выпуска для пакета CI/CD.

<img src="media/tfsrc2_12-2.png" "Release views in Package Management" width="500" height="264" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 23. Представления выпуска

npm в управление пакетами

Теперь веб-каналы управления пакетами поддерживают пакеты npm для разработки на Node.js и JavaScript. Кроме того, веб-канал npm поддерживает npmjs.com в качестве вышестоящего источника с кэшированием. Эта возможность позволяет веб-каналу прозрачно использовать прокси-сервер и кэшировать пакеты с npmjs.com (дополнительные сведения см. в статье Использование пакетов с npmjs.com). Это означает, что достаточно только один раз получить определенный пакет package@version с npmjs.com, и последующие запросы к этому пакету будут выполняться напрямую с сервера TFS. При удалении пакета из npmjs.com вы по-прежнему сможете получить его кэшированную версию из TFS.

Чтобы приступить к работе, найдите новый параметр "npm" в диалоговом окне Подключение к веб-каналу (рис. 24).

<img src="media/tfsrc2_11-2.png" "npm in Package Management" width="700" height="327" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 24. "npm" в службе управления пакетами

Кроссплатформенные улучшения

Форматирование xcpretty задачи сборки Xcode

Теперь выходные данные сборки xcode можно форматировать с помощью xcpretty (рис. 25). Кроме того, xcodebuild позволяет публиковать результаты теста JUnit в Team Services. Раньше в качестве средства сборки для публикации результатов тестов нужно было применять xctool. Сейчас чтобы включить xcpretty, установите флажок Использовать xcpretty и снимите флажок Использовать xctool в разделе Дополнительно задачи Xcode.

<img src="media/tfsrc1_19-2.png" "Xcode Build formatting" width="700" height="364" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 25. Форматирование xcpretty

Публикация результатов теста Jenkins и покрытия кода

Задача сборки и выпуска Задание в очереди Jenkins теперь может получать результаты теста и покрытия кода из задания Jenkins или конвейера. Для этого требуется установить подключаемый модуль TFS для Jenkins 5.2.0 или более поздней версии на сервере Jenkins и настроить действие Сбор результатов для TFS и Team Services, выполняемое после сборки. Результаты, полученные из Jenkins, можно опубликовать с помощью задач сборки Публиковать результаты теста или Публиковать покрытие кода.

Подписывание и экспорт Xcode 8 в задаче сборки Xcode

Теперь задача Xcode поддерживает сборку ваших проектов с использованием автоматического подписывания Xcode 8 (рис. 26). Вы можете вручную установить сертификаты и профили подготовки на сервере сборки или запустить задачу по их установке, указав параметры Содержимое файла.

<img src="media/tfsrc1_20-2.png" "Xcode automatic signing" width="675" height="180" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 26. Автоматическое подписывание Xcode

При экспорте пакета приложения (IPA) из архива (.xcarchive) Xcode 8 требует указать файл параметров (.plist) экспорта (рис. 27). Если используется Xcode 8 или Xcode 7, задача Xcode автоматически определит метод экспорта. Можно указать метод экспорта или указать пользовательский файл PSLIST из задачи Xcode. При использовании версии Xcode, предшествующей Xcode 7, задача пытается использовать для создания пакета приложения старое средство (xcrun).

<img src="media/tfsrc1_21-2.png" "Xcode export options" width="675" height="212" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 27. Параметры экспорта Xcode

Усовершенствования тестов

Запуск тестов, созданных в Visual Studio 2017

Задачи Развертывание агента тестирования и Запуск функциональных тестов в процессе непрерывной интеграции и развертывания (рис. 28) теперь позволяют установить агенты тестирования для Visual Studio 2017 и запускать созданные с помощью Visual Studio 2017 тесты.

<img src="media/tfsrc2_06-2.png" "Run tests" width="700" height="389" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 28. Запуск тестов

Проверка ошибок из рабочего элемента

Теперь вы можете проверить ошибку, повторно запустив тесты, в которых она была выявлена (рис. 29). Параметр Проверить находится в рабочем элементе ошибки в контекстном меню и используется для запуска соответствующего тестового случая в средстве Web Runner. В веб-средстве выполнения можно выполнить нужную вам проверку и непосредственно изменить рабочий элемент с ошибкой.

<img src="media/tfsrc1_01-2.png" "Verify bugs from work item" width="700" height="327" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 29. Проверка ошибок из рабочего элемента

Вспомогательные методы клиента REST для шагов теста

Теперь вы сможете создавать, изменять и удалять шаги теста (и их вложения) в рабочих элементах тестового случая. Для этого воспользуйтесь вспомогательными классами, которые мы добавили в клиент REST (см. RestApi-Sample).

Обновление существующих ошибок из Web Runner

Веб-средство выполнения теперь позволяет не только создавать новые ошибки, но и обновлять сведения об уже существующих (рис. 30). В существующую ошибку автоматически добавляются все собранные диагностические данные, шаги для воспроизведения и ссылки для отслеживания из текущего сеанса.

<img src="media/tfsrc1_07-2.png" "Test runner" width="700" height="282" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 30. Обновление сведений о существующей ошибке

Описание тестового случая в Web Runner

Поле описания тестового случая часто использовалось для записи необходимых условий перед запуском тестового случая. В текущем обновлении вы можете просмотреть описание тестового случая в веб-средстве выполнения, выбрав Показать описание (рис. 31).

<img src="media/tfsrc1_06-2.png" "Test case description" width="700" height="309" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 31. Описание тестового случая

Точка добавления: вкладка "Тест"

На страницу План тестирования была добавлена новая точка вклада ("ms.vss-test-web.test-plan-pivot-tabs") (рис. 32). Она позволяет разработчикам писать расширения в виде сводной вкладки, отображаемой рядом с вкладками Тесты и Диаграммы.

<img src="media/tfsrc1_08-2.png" "Contribution point" width="400" height="250" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 32. Точка вклада

Удаление артефактов теста

В предыдущих выпусках удалять можно было только рабочие элементы. В рамках этого обновления вы можете полностью удалять артефакты теста: планы тестирования, наборы тестов, тестовые случаи, общие параметры и общие шаги. Это можно делать как в центре Тест, так и в центре Работа. Для этого нужно выбрать команду Удалить окончательно (рис. 33) в контекстном меню рабочего элемента.

<img src="media/tfsrc1_12-2.png" "Delete test artifacts" width="700" height="463" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 33. Удаление артефактов теста

Избранное для планов тестирования

Теперь часто используемые планы тестирования можно включить в список "Избранное". В средстве, где выбираются Планы тестирования, вы сможете просматривать свои планы на вкладках Все или Избранное (рис. 34). Щелкните значок звездочки, чтобы добавить план тестирования в список "Избранное". Избранные планы тестирования, доступны в соответствующем средстве выбора и на вкладке Избранное на новой домашней странице учетной записи. Вы также можете отфильтровать планы тестирования, воспользовавшись поиском в поле заголовка (рис. 35).

<img src="media/tfsrc1_16-2.png" "Test plans" width="300" height="236" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 34. Планы тестирования

<img src="media/tfsrc1_17-2.png" "Test favorites" width="600" height="216" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 35. Избранное тестирование

Анализ влияния на тесты для управляемых автоматических тестов

Функция "Анализ влияния на тесты для управляемых автоматических тестов" теперь доступна в виде флажка в предварительной версии 2.* задачи VSTest (рис. 36).

<img src="media/tfsrc1_36-2.png" "Test impact analysis" width="700" height="554" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 36. Анализ влияния на тесты

Если функция включена, будет запущен только тот набор управляемых автоматических тестов, который необходим для проверки заданного изменения кода. Для работы функции анализа влияния на тесты требуется последняя версия Visual Studio. Сейчас эта возможность поддерживается в CI для управляемых автоматических тестов.

Поддержка Firefox для расширения Test & Feedback

Мы рады объявить о широкой доступности расширения Test & Feedback для Firefox. Надстройку для Firefox можно скачать на сайте marketplace.

Примечание. Идет работа над поддержкой браузера Edge — следите за обновлениями.

Усовершенствования управления выпусками

Поддержка групп переменных в выпуске

Группы переменных используются для объединения переменных и их значений, чтобы предоставить их в нескольких определениях выпуска. Вы также можете управлять безопасностью групп переменных и выбрать, кто сможет просматривать, изменять и использовать переменные в определениях выпуска.

Откройте вкладку Библиотека в центре Сборка и выпуск и выберите + Группа переменных на панели инструментов (рис. 37). Сейчас группы переменных можно использовать только в определениях выпуска. Дополнительные сведения о группах переменных см. в статье Определения выпуска в Microsoft Release Management.

Создайте (рис. 37), а затем отредактируйте (рис. 38) группу переменных:

<img src="media/tfsrc2_08-2.png" "Create variable group" width="700" height="358" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 37. Создание группы переменных

<img src="media/tfsrc2_09-2.png" "Edit variable group" width="700" height="434" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 38. Редактирование группы переменных

Несколько расписаний в выпусках

Хотите запланировать создание выпусков несколько раз в день? Теперь в определении выпуска можно настроить несколько запланированных триггеров (рис. 39).

<img src="media/tfsrc1_09-2.png" "Release schedule" width="700" height="389" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 39. Расписание выпусков

Встроенные подключения к службам в сборке и выпуске

С помощью этой функции можно создавать подключения к службам непосредственно в определении сборки и выпуска, не переходя на вкладку Службы. Она будет автоматически включена для всех декларативно определенных расширений, таких как Docker, Jenkins, VMWare и SCVMM.

До настоящего момента определения выпуска могли связывать источники артефактов только из текущего проекта. Теперь можно связывать артефакты сборки (рис. 40) из другого проекта. При связывании артефакта в раскрывающемся списке проекта будут перечислены все проекты в учетной записи.

<img src="media/tfsrc1_13-2.png" "Link build artifacts" width="400" height="271" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 40. Связывание артефактов сборки

Улучшения группы ресурсов Azure

В предыдущих выпусках задача группы ресурсов Azure не могла проверить синтаксис шаблона ARM, либо шаблон принимался, но развертывания ресурсов фактически не происходило. В новом выпуске вы можете использовать новый режим развертывания Validation Only (Только проверка). Он позволяет вам выявлять проблемы с созданием шаблона до фактического создания ресурсов Azure.

Другим усовершенствованием задачи группы ресурсов Azure является возможность выбора между инкрементным или полным развертыванием (рис. 41). В прошлом задача развертывала шаблоны ARM в инкрементном режиме. Но она не изменяла имевшиеся в группе ресурсы, которые не были указаны в шаблоне. Полный режим удаляет ресурсы, которые отсутствуют в шаблоне. По умолчанию используется инкрементный режим.

<img src="media/tfsrc1_10-2.png" "Azure resource groups" width="700" height="278" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 41. Группы ресурсов Azure

Задача Azure CLI

Новая задача Azure CLI (рис. 42) поддерживает выполнение команд Azure CLI на кроссплатформенных агентах, таких как Windows, Linux и Mac. Задача поддерживает классические подписки и подписки ARM. Она поддерживает два режима предоставления скриптов: один как связанный артефакт, а другой — как встроенный скрипт.

<img src="media/tfsrc1_11-2.png" "Azure CLI task" width="700" height="135" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 42. Задача Azure CLI

Обновление службы поиска кода

В TFS 2017 с обновлением 1 в службу поиска кода входит Elasticsearch версии 2.4.1. Если служба поиска кода настроена на сервере TFS 2017, она будет обновлена в процессе обновления TFS. Если служба поиска кода настроена на удаленном сервере, скопируйте содержимое Пакета службы поиска, предоставленного с установщиком, на удаленный компьютер и следуйте инструкциям в файле сведений по обновлению службы поиска вручную.

Улучшение анализа кода

Задачи SonarQube для MSBuild

Теперь задачи SonarQube для MSBuild доступны из предоставляемого SonarSource расширения. Дополнительные сведения см. в статье SonarSource have announced their own SonarQube Team Services / TFS integration.

Улучшения администрирования

Новые возможности настройки уведомлений

Уведомления помогают вам и вашим командам быть в курсе всех работ по проектам Team Services. Это обновление упрощает управление получаемыми уведомлениями.

Теперь в меню профиля вам доступны собственные функции управления уведомлениями на уровне учетной записи (рис. 43).

<img src="media/tfsrc1_14.png" "Notification settings" width="330" height="194" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 43. Параметры уведомлений

В этом представлении вы можете управлять созданными личными подписками (рис. 44). Здесь также отображаются подписки, созданные администраторами команд для всех проектов в учетной записи.

<img src="media/tfsrc1_15-2.png" "Manage personal subscriptions" width="800" height="382" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 44. Управление личными подписками

Узнайте больше об управлении параметрами личных уведомлений.

addProjectReports теперь находится в TfsConfig.

Теперь вы можете использовать команду addProjectReports для добавления отчетов в командные проекты. Ранее это была команда Power Tool, а теперь она является частью команды TfsConfig.exe. Подробнее см. в разделе Загрузка отчетов в командный проект.

Недопустимость использования комнаты команды

Так как сейчас доступен целый ряд эффективных решений, поддерживающих интеграцию с Team Foundation Server и Team Services, таких как Slack и Microsoft Teams, мы решили отказаться в Team Foundation Server и Team Services от функции "Комната команды". При работе в Team Services вы увидите новый желтый баннер, информирующий о нашем плане. В этом году мы планируем полностью отключить комнату команды.

Вам будет доступно несколько альтернативных решений. Комната команды используется в центре уведомлений и в чате. TFS и Team Services уже взаимодействуют со многими другими продуктами для совместной работы, включая Microsoft Teams, Slack, HipChat, Campfire и Flowdock. Можно также использовать Zapier для создания собственных связанных средств или получения очень четкого контроля над получаемыми уведомлениями.

Дополнительные сведения об устаревании комнат команд в Team Services см. в этой статье.

Форматирование Markdown больше не поддерживает ссылки на файлы

Начиная с обновления 1 на страницах приветствия в мини-приложении Markdown на панелях мониторинга команд и в определениях готовности на канбан-досках больше не поддерживаются ссылки на файлы в разметке Markdown. Обойти это ограничение можно, включив ссылку на файл в виде текста в Markdown. Дополнительные сведения см. в статье Markdown guidance (Руководство по Markdown).

Объявление о редакторе шаблонов процессов

Мы выпустили расширение Редактор шаблонов процессов для Visual Studio 2017. Это расширение предоставляет удобный способ просмотра и обновления шаблонов процессов, а также инструменты для обновления глобальных списков и рабочих элементов и просмотра атрибутов полей рабочих элементов. Оно доступно для серверов TFS 2017 и TFS 2017 с обновлением 1.


Известные проблемы

Сборка не работает при обновлении до TFS 2017 с обновлением 1 (сборка 15.112.26301.0) из TFS 2013 или более ранней версии.

  • Проблема.

    Обратите внимание, что эта проблема возникает только при обновлении до TFS 2017 с обновлением 1 (сборка 15.112.26301.0), которое было выпущено 7 марта 2017 года. При обновлении до сборки 15.112.26307.0, выпущенной 9 марта, этой проблемы не возникает.

    После обновления с TFS 2013 (RTM или любого обновления) или более ранней версии в сборке отображается ошибка "Счетчик с именем TaskReferenceId не существует".

  • Решение

    Запустите следующий сценарий для обновленной коллекции базы данных:

    INSERT  tbl_Counter (PartitionId, DataspaceId, CounterName, CounterValue)
    SELECT  DISTINCT
              dpm.PartitionId,
              ds.DataspaceId,
              N'TaskReferenceId',
              1
      FROM    tbl_DatabasePartitionMap dpm
      INNER LOOP JOIN Task.tbl_Hub h
      ON      h.PartitionId = dpm.PartitionId
      INNER LOOP JOIN tbl_Dataspace ds
      ON      ds.PartitionId = dpm.PartitionId
              AND ds.DataspaceCategory = h.DataspaceCategory
              AND ds.DataspaceIdentifier <> '00000000-0000-0000-0000-000000000000'
      WHERE   dpm.PartitionId > 0
              AND dpm.HostType = 4
              AND NOT EXISTS (
                  SELECT  *
                  FROM    tbl_Counter c
                  WHERE   c.PartitionId = dpm.PartitionId
                          AND c.DataspaceId = ds.DataspaceId
                          AND c.CounterName = N'TaskReferenceId'
              ) 
    

Клиенты должны обновить версию LFS Git до 1.3.1 или более поздней версии

  • Проблема.

    Версии LFS Git до 1.3.1 больше не поддерживаются.

  • Инструкции по решению:

    Если вы используете Git LFS, обновите Git LFS до 1.3.1 или более поздней версии. Более старые версии клиента LFS не совместимы с изменениями в аутентификации в этой версии TFS.

Формы рабочих элементов отображаются неправильно

  • Проблема.

    Если в формах рабочих элементов используется устаревший пользовательский элемент управления, такой как устаревший элемент управления с несколькими значениями, они могут отображаться неправильно.

  • Решение

    Потребуется выполнить обновление до последней версии элемента управления. Последнюю версию элемента управления с несколькими значениями для TFS 2017 с обновлением 1 можно найти здесь.

Формы рабочих элементов отображаются в веб-клиенте неправильно.

  • Проблема.

    Если у вас есть пользовательский элемент управления, например элемент управления с несколькими значениями, установленный для клиента Visual Studio, но не для веб-клиента, формы рабочих элементов в веб-клиенте не будут отображаться.

  • Решение

    Вы можете добавить веб-макет, который не содержит неотображаемый элемент управления. Вы можете создать разные макеты, предназначенные для Visual Studio и веб-клиента. Дополнительные сведения о макете: https://www.visualstudio.com/ru-ru/docs/work/reference/all-form-xml-elements-reference#attributes-that-are-used-to-format-form-elements.

Формы рабочих элементов не скрывают поля только для чтения.

  • Проблема.

    Если вы используете старую форму рабочих элементов со свойством HideReadonlyEmptyFields, имеющим значение True в макете, в форме не будут скрываться поля только для чтения и пустые поля.

  • Решение

    Сейчас для этой проблемы не существует обходного решения. Эта проблема будет устранена в TFS 2017 с обновлением 2.

Формы рабочих элементов отображаются при просмотре как "грязные"

  • Проблема.

    Эта проблема характерна для IE 11 в TFS 2017 с обновлением 1 при выборе новой формы рабочего элемента. Если в вашем профиле заданы французский, корейский, русский, турецкий, японский или китайский языки и рабочий элемент назначен любому идентификатору, при просмотре рабочего элемента вы увидите форму рабочего элемента как "грязную". Когда вы сохраняете рабочий элемент, в поле "Кому назначено" будет указано значение "Не назначено".

  • Инструкции по решению:

    Используйте другой браузер помимо IE11. Если вы используете IE11, нажмите кнопку отмены или обновления на панели инструментов рабочего элемента, чтобы восстановить правильное значение в поле "Назначено".

Сбой кэшрования вышестоящих пакетов NPM

  • Проблема.

    Если сервер TFS находится за прокси-сервером, кэширование вышестоящих пакетов NPM завершится ошибкой.

  • Решение

    Если сервер TFS находится за корпоративным прокси-сервером, внесите следующие изменения в файлаweb.config сервера TFS (т. е. %ProgramFiles%\Microsoft Team Foundation Server 15.0\Application Tier\Web Services\web.config).

    Замените этот блок конфигурации:

      <!-- ASP.NET Proxy Usage for HttpWebRequests 
            "usesystemdefault" 
               false - stops the server using the default proxy configuration or proxy
                     auto-detection. 
            "bypassonlocal"
               true - this tells all requests to a local address to ignore configured proxies.
        -->
      <defaultProxy>
        <proxy usesystemdefault="False" bypassonlocal="True" />
      </defaultProxy>
    

    На следующий код:

      <defaultProxy useDefaultCredentials="true" />
    

Раскрывающееся меню "Код" отображает неправильные страницы управления версиями.

  • #### Проблема. Если вы перейдете на страницу администрирования в репозитории Git, как показано на рисунке ниже (рис. 45), и щелкните центр Код, вы увидите ссылки Наборы изменений и Наборы отложенных изменений, вместо ссылки Журнал.

<img src="media/tfsrc2_10.png" "Code dropdown menu" width="412" height="230" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 45. Раскрывающееся меню "Код"

  • #### Инструкции по решению: Выйдите со страницы администрирования в репозитории git, и вы увидите правильные ссылки.

Расширения не обновляются автоматически.

  • Проблема.

    Если вы обновляете предыдущую версию TFS до TFS 2017 и работаете с TFS 2017 в подключенном режиме, расширения не обновляются автоматически, как это должно быть.

  • Решение

    Сейчас для этой проблемы не существует обходного решения. Эта проблема устранена. Возможность автоматического обновления будет доступна в TFS 2017 с обновлением 2. Если по какой-либо причине вы не можете дождаться обновления 2, обратитесь к нам через канал поддержки, и мы предоставим вам исправление раньше.

Если не задан правильный общедоступный URL-адрес, вы не сможете скачать расширения или они будут работать неправильно.

  • Проблема.

    Получение расширения из Visual Studio Marketplace завершается с ошибкой.

    Уже полученные расширения, вероятно, не работают должным образом.

  • Инструкции по решению:

    Проблема устранена в обновлении 2 для Team Foundation Server 2017. Рекомендуем установить его. Чтобы эта функция работала в обновлении 1, измените "Общедоступный URL-адрес" в консоли администратора Team Foundation Server на URL-адрес, доступный с другой системы в корпоративной среде (рис. 46).

<img src="media/adminconsole-2.png" "Code menu" width="700" height="471" style="border:2px solid Silver; display: block; margin: auto;">

Рис. 46. Меню "Код"