- PVSM.RU - https://www.pvsm.ru -
В GitLab 9.3 мы представляем Code Quality, межпроектные графики конвейеров, индекс совместной разработки, улучшения локализации, описания сниппетов и многое другое!
GitLab представляет собой интегрированный продукт для всего цикла разработки. С выходом каждого ежемесячного релиза мы стремимся добавлять новые аспекты совместного написания кода, непрерывной интеграции, автоматизации релизов и мониторинга. Так, в GitLab 9.3 мы внесли функциональность, позволяющую улучшить качество кода, сократить время цикла разработки, а также упростить управление большими проектами.
В GitLab 9.3 добавлены отчеты Code Quality [1] (качества кода), которые отображаются прямо в виджете мерж-реквеста. Эти отчеты позволяют мгновенно оценить влияние предложенных изменений на состояние вашего кода и проекта в целом. Благодаря этому сокращается время на ревью, а также появляется возможность находить ошибки перед мержем.
Современное production-level ПО, особенно то, что использует архитектуру микро-сервисов, зачастую состоит из множества различных проектов. В таком ПО очень важно понимать взаимодействие проектов. В GitLab 9.3 вы можете увидеть взаимосвязь upstream и downstream конвейеров при помощи межпроектных графиков конвейеров [2].
Также GitLab 9.3 предоставляет возможность оценить, как вы используете каждый элемент GitLab в сравнении с другими людьми. Для этого используется индекс совместной разработки [3]. С помощью данного индекса можно легко оценить насколько эффективно вы используете систему по сравнению с другими пользователями, а также увидеть, какие элементы вашего рабочего процесса вы могли бы улучшить.
Мы создали небольшое видео, позволяющее оценить возможности GitLab и его новую функциональность, а также убедиться в том, что GitLab позволяет уместить весь процесс разработки на одной платформе.
Приглашаем на нашу встречу! [4]
Huang внес значительный вклад в локализацию [7] GitLab на несколько новых языков. Спасибо, Huang!
Сложно переоценить важность правильного код-ревью. При обзоре внесенных изменений важно обращать внимание на качество кода, реализацию, форматирование и многое другое. Даже если ревью проводится качественно, достичь постоянства в этом процессе невозможно без какой-либо оценки качества кода.
Мы создали GitLab Code Quality для того, чтобы ускорить процесс код-ревью и предоставить пользователям возможность проводить сравнительную оценку качества кода и создавать соответствующие отчеты прямо в окне мерж-реквеста. Теперь, если качество вашего кода ухудшится, GitLab укажет вам на это, и вы сможете исправить ситуацию еще до мержа.
Больше информации о GitLab Code Quality в нашей документации [8]
В больших проектах, особенно в тех, что используют архитектуру микро-сервисов [9], конечный продукт зачастую состоит из набора взаимозависимых компонентов. Из-за этого временами нелегко понять, почему произошел запуск определенного конвейера или почему произошла сборка одного проекта после коммита в другом.
В GItLab 9.3 появилась возможность отображения связей upstream и downstream проектов прямо на графиках конвейеров, благодаря чему можно легко увидеть статус всей цепочки в одном окне. Теперь для отображения связей между проектами не нужно использовать переменную $CI_JOB_TOKEN
с триггерами — графики создаются автоматически.
Больше информации о межпроектных графиках конвейеров в нашей документации [10]
В прошлом сентябре мы анонсировали [11] принципы совместной разработки (Conversational Development — ConvDev) [12]. Внедрение этой методологии ускоряет процесс разработки ПО от идеи до внедрения.
В GitLab 9.3 включен индекс совместной разработки, который предоставляет численное отображение использования данной методологии. При помощи этого индекса вы можете оценить вашу производительность по сравнению с другими пользователями GitLab, а также увидеть элементы вашего рабочего процесса, которые вы могли бы улучшить.
В данной версии этот индекс доступен только системным администраторам. Индекс формируется на основе деятельности всех активных пользователей вашего инстанса GitLab.
Больше информации об индексе совместной разработки в нашей документации [13]
Секретные переменные полезны в тех случаях, когда определенную информацию нужно скрыть от внешних пользователей, однако при этом для пользователей с доступом на внесение изменений в проект она открыта. При таком подходе возможны ситуации, когда в среду разработки вносят изменения те пользователи, которые в идеале этого делать не должны; у них даже может не быть доступа на запись в master
.
В GitLab 9.3 с введением защищенных переменных появляется дополнительный уровень безопасности для секретной информации, такой как полномочия развертывания. Теперь в Settings
-> CI/CD Pipelines
можно отметить переменную как «защищенную» (“protected”). Такая переменная будет доступна только для задач, выполняемых на защищенных ветках, благодаря чему доступ к ней будет открыт только для пользователей с соответствующими правами доступа.
Больше информации о защищенных секретных переменных в нашей документации [14]
Множество компаний нуждаются в отчетах изменений прав доступа по ходу всего цикла разработки. В GitLab 9.3 у каждого системного администратора появляется доступ к улучшенному централизованному логу пользовательских действий, в котором содержатся все соответствующие события групп, проектов и действий отдельных пользователей.
Кроме того, в данном логе можно проводить фильтрацию событий по типу и названию, благодаря чему можно легко находить события определенных групп, проектов или пользователей.
Больше информации о логах ревизий в нашей документации [15]
С течением времени мы добавили много новой функциональности и вариантов конфигурации проектов и групп, и, как следствие, количество настроек GitLab значительно увеличилось.
В GitLab 9.3 мы начинаем работу по упрощению страниц настроек [16]. Первым шагом стало улучшение читаемости страницы настроек репозиториев [17].
Мы стремимся улучшить группирование настроек и добавить обзор всех настроек для каждой секции.
В данном релизе мы улучшили настройки интеграции JIRA, что упрощает установку и тестирование соединения между проектом GitLab и сервером JIRA. Также добавлены отдельные поля Web URL и JIRA API URL. Такое разделение полезно в тех случаях, когда JIRA REST API и задачи JIRA находятся на разных адресах.
Больше информации об интеграции JIRA в нашей документации [18]
Пользователи с правами Reporter, Developer, Master и Owner вдобавок к ярлыкам проектов теперь могут создавать и редактировать ярлыки групп. Ранее это могли делать только Master and Owner.
Больше информации о модели прав доступа GitLab в нашей документации [19]
Описание задачи является опорной точкой и главным источником информации при совместной работе нескольких команд. В GitLab 9.3 мы убрали переход на отдельную страницу при редактировании описания задачи. Просто нажмите Edit
, внесите изменения и нажмите Save changes
— все это время вы остаетесь на странице задачи. Поскольку перенаправление на другую страницу теперь отсутствует, во время редактирования вы можете пролистать комментарии к задаче и даже скопировать и вставить в описание текст GFM [20]
Больше информации о задачах GitLab в нашей документации [21]
Мы понимаем, что у различных команд свои подходы к использованию досок задач. Для упрощения взаимодействия с ними мы добавили возможность сворачивать столбцы Backlog и Closed. Также мы внесли изменения в процесс добавления новых задач на доску: при нажатии на +
задача автоматически добавляется в начало списка, что серьезно упрощает работу с длинными списками.
Больше информации о досках задач GitLab в нашей документации [22]
В GitLab 9.2 [23] мы начали процесс локализации [24] с перевода страницы аналитики цикла разработки на немецкий и испанский. В GitLab 9.3 мы перевели самые часто используемые страницы: домашнюю страницу проекта и страницу файлов репозитория.
Сообщество GitLab уже начало добавлять другие языки — китайский, болгарский и бразильский португальский. Вы можете наблюдать за изменениями [7] и взглянуть на их гайдлайны [25], если хотите подключиться.
Узнайте, как построено взаимодействие сообщества по переводу GitLab [25]
Когда вы разворачиваете проект, основанный на Docker, вам нужно подтягивать образ каждый раз, когда окружению нужно его запустить. Поскольку встроенный реестр контейнеров GitLab [26] является очевидным выбором для хранения ваших контейнеров, в GitLab 9.3 вы сможете использовать его и для их распространения.
Создайте токен личного доступа с новой областью read_registry
, и у вас будет постоянный токен развертывания, который смогут использовать внешние сервисы вроде Kubernetes, чтобы при необходимости получить доступ к вашим образам — без ввода всех ваших данных или использования фиктивного пользователя для этой задачи.
Побробнее вы можете узнать в документации о токенах личного доступа [27]
На протяжении ревью кода мерж-реквеста мы постоянно изменяем код и комментируем эти изменения. Зачастую это сложно отследить. В частности, когда мы начинаем комментировать определенную строчку кода, и кто-то другой одновременно вносит туда изменения. Может закончиться тем, что вы обсуждаете что-то, что уже изменили.
В этом релизе мы добавили системную заметку — индикатор того, что строка уже изменилась. Если вы участвуете в обсуждении конкретной строки, вы узнаете, что ее уже изменили, и сможете посмотреть изменения, нажав на нее.
Чтобы извлечь максимум пользы из автоматической отмены лишних конвейеров [28] и сэкономить множество часов разработки, GitLab 9.3 распространяет это поведение на все существующие и новые проекты.
Если вам не нужно отменять лишние конвейеры, вы можете настроить соответствующие параметры [29] под свои нужды.
В рамках предстоящего релиза GitLab 9.4 мы обновим версию nginx, входящую в Omnibus, до новой стабильной версии 1.12. В эту версию включается несколько улучшений предыдущей стабильной версии. Например, появилась возможность фильтровать вывод лога [30].
Для пользователей это обновление должно быть понятным, но если вы изменяли настройки [31] в конфигурации nginx, пожалуйста, после обновления до 1.12 удостоверьтесь, что они работают корректно.
Доступна поддержка последнего релиза Debian 9 [32]. Вы можете скачать официальные пакеты Omnibus для GitLab 9.3 из раздела установки [33].
GitLab 9.3 включает Mattermost 3.10 [34], альтернативу Slack [35] с открытым исходным кодом. В этой версии появилась поддержка турецкого языка, новые горячие клавиши и многое другое.
Подробнее об изменениях GitLab Mattermost читайте в документации [36]
Обновились связанные с ним пакеты Git и PostgreSQL. Git обновился до версии 2.13.0, а Postgres до 9.6.3.
Документация об Omnibus GitLab [37]
У сниппетов теперь есть описания. Это касается только персональных сниппетов, которые мы добавили в предыдущем релизе [38]. Сниппеты — мощный инструмент для быстрой и непринужденной совместной работы над кодом. В этом релизе совместно работать над ними стало так же просто, как и над мерж-реквестами.
Документация о сниппетах GitLab [39]
Мы продолжаем улучшать производительность GitLab с каждым релизом. Это не только сделает каждый инстанс GitLab еще быстрее, но также увеличит производительность инстанса с миллионом пользователей — GitLab.com.
В GitLab 9.3 мы продолжаем ускорять вывод списка проектов, а также в целом улучшаем производительность сервера за счет изменений в том, как мы зеркалируем репозитории. Синтаксическая подсветка файлов теперь кэшируется, это повышает общую производительность и ускоряет отображение коммитов.
В GitLab 9.3 есть еще множество других улучшений производительности [40], которые не только сделают GitLab быстрее, но и снизят влияние на инфраструктуру сервера в целом.
Мы сделали массовое редактирование задач проще и понятнее, чем в последнем релизе. Теперь при одновременном обновлении нескольких задач используется такая же боковая панель, как и во многих других элементах GitLab.
Подробнее в нашей документации о задачах в GitLab [21]
Мы продолжаем постепенно улучшать поиск и фильтрацию. Теперь вы сможете видеть пользовательские аватарки.
Также клик на фильтр вызывает выпадающее меню, позволяющее быстро менять фильтры.
Подробности вы сможете прочитать в документации о поиске по GitLab [41]
В GitLab 9.0 мы добавили подгруппы [42], сделав управление группами и проектами более гибким. С каждым релизом мы продолжаем улучшать эту функциональность: в этот раз мы сделали более понятную навигацию по подгруппам. На странице групп вы сможете увидеть расширяемое дерево со всеми проектами и подгруппами — вместо того, чтобы искать и загружать по странице за раз.
Документация по подгруппам GitLab [43]
При просмотре файлов в репозитории теперь на той же странице автоматически отображается дополнительная информация.
Начиная с версии 9.3 вы сможете видеть, действительны ли файлы .gitlab-ci.yml
или .gitlab/route-map.yml
, а также конкретные ошибки парсинга. Также анализируется файл LICENSE
, что упрощает доступ к информации о конкретной лицензии, если вам нужны дополнительные детали. А чтобы понять, на что опираются проекты, можно изучить системы управления зависимостями, которые теперь тоже отображаются автоматически.
Ах, пакеты, эти драгоценные кусочки мудрости, собранные и готовые к использованию. GitLab теперь автоматически определяет и связывает директории в файловом обозревателе, сохраняя вам клики каждый день. Изящно, правда?
*.gemspec
(Ruby)package.json
(Node.js)composer.json
(PHP)Podfile
(Objective-C)*.podspec
(Objective-C)*.podspec.json
(Objective-C)Cartfile
(Objective-C)Godeps.json
(Go)requirements.txt
(Python)
В GitLab 9.2 мы выпустили конвейеры по расписанию [44], которые можно настраивать с помощью пользовательского интерфейса. В GitLab 9.3 мы также добавили возможность создавать и управлять конвейерами по расписанию через набор API, чтобы сделать интеграцию с другими инструментами проще и эффективнее.
Подробнее в документации об API конвейеров по расписанию [45]
В прошлой версии GitLab мы добавили [46] возможность видеть влияние мерж-реквеста на память прямо на странице мерж-реквеста. В GitLab 9.3 мы решили пойти дальше: теперь мы замеряем изменения в среднем использовании памяти за 30 минут до мержа и через 30 минут после него.
Разработчикам стало проще чем когда-либо знать о влиянии их действий на производительность за счет прямой обратной связи от инструментов, которые они используют каждый день.
Подробнее в документации о мониторинге приложений с помощью Prometheus [47]
Также с этим релизом мы выпустили GitLab Runner 9.3.
GIT_CHECKOUT
, которая контролирует выполнение git checkout (мерж-реквест [48])cpus
в Docker executor (мерж-реквест [50])userns
в Docker executor (мерж-реквест [51])Список всех изменений вы найдете в CHANGELOG [54].
Полная документация о GitLab Runner [55].
В GitLab 9.0 был представлен мониторинг сервиса GitLab с помощью Prometheus [56], с помощью которого можно оценить производительность Redis, PostgreSQL, а также системы в целом.
В рамках GitLab 9.3 мы добавили экспериментальный сервис мониторинга кодовой базы ruby. Пока в нем отображаются только несколько показателей вроде статуса конвейера и авторизаций пользователей. В последующих релизах мы будем добавлять мониторинг и других частей GitLab.
Подробнее в документации о дополнительных метриках [57]
Подробные release notes и инструкции по обновлению/установке можно прочитать в оригинальном англоязычном посте: https://about.gitlab.com/2017/06/22/gitlab-9-3-released/ [58]
Перевод с английского выполнен переводческой артелью «Надмозг и партнеры», http://nadmosq.ru [59]. Над переводом работали rishavant [60] и sgnl_05 [61] .
Автор: aionin
Источник [62]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/open-source/259512
Ссылки в тексте:
[1] Code Quality: #gitlab-code-quality-ees-eep
[2] межпроектных графиков конвейеров: #mezhproektnye-grafiki-konveerov-eep
[3] индекс совместной разработки: #indeks-sovmestnoy-razrabotki-ce-ees-eep
[4] Приглашаем на нашу встречу!: https://about.gitlab.com/events/
[5] MVP: https://about.gitlab.com/mvp/
[6] Huang Tao: https://gitlab.com/htve
[7] локализацию: https://gitlab.com/gitlab-org/gitlab-ce/issues/32951
[8] нашей документации: https://docs.gitlab.com/ee/user/project/merge_requests/code_quality_diff.html
[9] архитектуру микро-сервисов: https://about.gitlab.com/2016/08/16/trends-in-version-control-land-microservices/
[10] нашей документации: https://docs.gitlab.com/ee/ci/pipelines.html#multi-project-pipelines-graphs
[11] В прошлом сентябре мы анонсировали: https://about.gitlab.com/2016/09/14/gitlab-live-event-recap/
[12] совместной разработки (Conversational Development — ConvDev): http://conversationaldevelopment.com
[13] в нашей документации: https://docs.gitlab.com/ee/user/admin_area/monitoring/convdev.html
[14] нашей документации: https://docs.gitlab.com/ee/ci/variables/#protected-secret-variables
[15] нашей документации: https://docs.gitlab.com/ee/administration/audit_events.html#audit-log-admin-only
[16] страниц настроек: https://gitlab.com/gitlab-org/gitlab-ce/issues/28451
[17] страницы настроек репозиториев: https://gitlab.com/gitlab-org/gitlab-ce/issues/30378
[18] нашей документации: https://docs.gitlab.com/ee/user/project/integrations/jira.html
[19] нашей документации: https://docs.gitlab.com/ee/user/permissions.html
[20] текст GFM: https://docs.gitlab.com/ee/user/markdown.html
[21] нашей документации: https://docs.gitlab.com/ee/user/project/issues/index.html
[22] нашей документации: https://about.gitlab.com/features/issueboard/
[23] GitLab 9.2: https://about.gitlab.com/2017/05/22/gitlab-9-2-released/#internationalized-cycle-analytics
[24] локализации: https://gitlab.com/gitlab-org/gitlab-ce/issues/4012
[25] их гайдлайны: https://docs.gitlab.com/ee/development/i18n_guide.html
[26] реестр контейнеров GitLab: https://docs.gitlab.com/ee/user/project/container_registry.html
[27] документации о токенах личного доступа: https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html
[28] автоматической отмены лишних конвейеров: https://about.gitlab.com/2017/04/22/gitlab-9-1-released/#auto-cancel-redundant-pipelines-ce-ees-eep
[29] настроить соответствующие параметры: https://docs.gitlab.com/ee/user/project/pipelines/settings.html#auto-cancel-pending-pipelines
[30] фильтровать вывод лога: https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests/1585
[31] изменяли настройки: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/nginx.md#inserting-custom-nginx-settings-into-the-gitlab-server-block
[32] Debian 9: https://www.debian.org/News/2017/20170617
[33] раздела установки: https://about.gitlab.com/installation
[34] Mattermost 3.10: https://about.mattermost.com/mattermost-3-10
[35] альтернативу Slack: https://about.mattermost.com/
[36] документации: https://docs.gitlab.com/omnibus/gitlab-mattermost/
[37] Документация об Omnibus GitLab: https://docs.gitlab.com/omnibus/
[38] предыдущем релизе: https://about.gitlab.com/2017/05/22/gitlab-9-2-released/
[39] Документация о сниппетах GitLab: https://docs.gitlab.com/ee/user/snippets.html
[40] улучшений производительности: https://gitlab.com/groups/gitlab-org/issues?scope=all&state=opened&utf8=%E2%9C%93&milestone_title=9.3&label_name%5B%5D=performance
[41] документации о поиске по GitLab: https://docs.gitlab.com/ee/user/search/
[42] подгруппы: https://about.gitlab.com/2017/03/22/gitlab-9-0-released/#subgroups-ce-ee
[43] Документация по подгруппам GitLab: https://docs.gitlab.com/ee/user/group/subgroups/
[44] конвейеры по расписанию: https://about.gitlab.com/2017/05/22/gitlab-9-2-released/#pipeline-schedules
[45] документации об API конвейеров по расписанию: https://docs.gitlab.com/ee/api/pipeline_schedules.html
[46] добавили: https://about.gitlab.com/2017/05/22/gitlab-9-2-released/#app-performance-feedback-on-merge-requests
[47] документации о мониторинге приложений с помощью Prometheus: https://docs.gitlab.com/ee/user/project/integrations/prometheus.html#determining-the-performance-impact-of-a-merge
[48] мерж-реквест: https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/585
[49] мерж-реквест: https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/516
[50] мерж-реквест: https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/586
[51] мерж-реквест: https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/553
[52] мерж-реквест: https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/570
[53] мерж-реквест: https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/582
[54] CHANGELOG: https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/blob/v9.3.0/CHANGELOG.md
[55] Полная документация о GitLab Runner: https://docs.gitlab.com/runner/
[56] мониторинг сервиса GitLab с помощью Prometheus: https://about.gitlab.com/2017/03/22/gitlab-9-0-released/#monitoring-gitlab-with-prometheus
[57] документации о дополнительных метриках: https://docs.gitlab.com/ce/administration/monitoring/prometheus/gitlab_metrics.html
[58] https://about.gitlab.com/2017/06/22/gitlab-9-3-released/: https://about.gitlab.com/2017/06/22/gitlab-9-3-released/
[59] http://nadmosq.ru: http://nadmosq.ru
[60] rishavant: https://habrahabr.ru/users/rishavant/
[61] sgnl_05: https://habrahabr.ru/users/sgnl_05/
[62] Источник: https://habrahabr.ru/post/332204/
Нажмите здесь для печати.