Представлен (https://about.gitlab.com/2015/08/22/gitlab-7-14-released/) релиз платформы для организации совместной работы с Git-репозиториями GitLab 7.14 (http://www.gitlab.com), которая по своим возможностям напоминает GitHub, но не привязана к конкретному сервису, распространяется в исходных текстах под свободной лицензией и позволяет развернуть web-сервис управления проектом на своём подконтрольном сервере. Одновременно доступен (https://gitlab.com/gitlab-org/gitlab-ci/commits/v7.14.0) релиз развиваемого проектом сервера непрерывной интеграции GitLab CI 7.14 (https://gitlab.com/gitlab-org/gitlab-ci), который можно использовать совместно с GitLab для автоматизации тестирования и постоянного контроля за качеством кодовой базы, в том числе обеспечивая проверку пересборкой для каждого вносимого изменения.
Код проекта написан на языке Ruby с использованием фреймворка Ruby on Rails и распространяется (https://gitlab.com/groups/gitlab-org) под свободной лицензией Expat (вариант лицензии MIT). Начиная с выпуска GitLab 6 кроме бесплатной Community-версии распространяется коммерческий продукт GitLab Enterprise Edition, который включает дополнительные возможности (https://about.gitlab.com/features/#compare), полезные при развёртывания в крупных организациях. Изначально, GitLab Enterprise Edition развивался как проприетарный продукт с открытым (https://gitlab.com/gitlab-org/gitlab-ee) для просмотра кодом, но c закрытым процессом разработки и отслеживания ошибок. В начале августа анонсированы (https://about.gitlab.com/2015/08/03/almost-everything-we-do-.../) намерения перейти к полностью открытой модели разработки, при которой любой желающий сможет участвовать в обсуждениях, обработке ошибок и работе над новыми выпусками.
Для хранения данных в GitLab поддерживается связка Redis с MySQL или PostgreSQL. GitLab наиболее востребован для организации командной разработки в корпоративных проектах, так как позволяет без привязки к облачному вендору развернуть инструментарий, похожий на Github Enterprise и Gitorious. Web-интерфейс GitLab во многом напоминает (http://demo.gitlabhq.com/) GitHub, но, тем не менее, не копирует его, а лишь повторяет наиболее удачные принципы. GitLab поддерживает (http://blog.gitlab.com/about-the-gitlab-project/) создание отдельных проектов, отслеживание ошибок, обработку запросов на добавление кода (рабочий процесс основан на обработке merge-запросов), навигацию по веткам и тегам, контроль за изменениями, рецензирование кода, многоуровневое управление доступом, Wiki, обмен небольшими кусками кода, наглядный анализ различий между версиями кода, средства визуализации ветвления репозитория и многое другое.
Наиболее важные улучшения GitLab 7.14:
- В состав включён новый экспериментальный http-сервер gitlab-git-http-server (https://gitlab.com/gitlab-org/gitlab-git-http-server), позволяющий организовать эффективное выполнение длительных push/pull запросов с использованием протокола HTTPS (ранее, для занимающих длительное время операций push/pull рекомендовалось использовать в качестве транспорта SSH). Ранее применяемый http-сервер Unicorn (http://unicorn.bogomips.org/) не был рассчитан на обработку большого числа длительно выполняемых параллельных запросов, что приводило к обрывам соединений по таймауту. Новый сервер написан на языке Go (Unicorn был на Ruby) и работает в виде обособленного http-сервера, рассчитанного на эффективную обработку запросов от Git-клиентов. В выпуске GitLab 7.14 новый сервер пока отключен по умолчанию (для включения можно указать gitlab_git_http_server['enable'] = true) и запланирован для замены старого сервера в GitLab 8.0;
- Улучшение системы подсветки синтаксиса с возможностью подключения в качестве движка для подсветки библиотеки
Rouge (http://rouge.jneen.net/), в которой реализована поддержка 72 языков программирования и разметки;
- Обеспечен показ имени участника, отредактировавшего комментарий (например, при правке администратором проекта);
<center><a href="https://about.gitlab.com/images/7_14/comment_edit.png"&... src="http://www.opennet.me/opennews/pics_base/0_1440317374.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>
- В GitLab EE улучшены средства управления группами в LDAP;
- В GitLab CI обеспечена возможность определения переменных в файле
.gitlab-ci.yml, которые будут переданы в систему сборки;
- В GitLab CI представлен Build Triggers API, позволяющий инициировать пересборку определённой ветки или тега через обращение к API;
<center><a href="https://about.gitlab.com/images/7_14/ci_triggers.png"&g... src="http://www.opennet.me/opennews/pics_base/0_1440317654.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>
- В web-интерфейсе GitLab CI добавлена возможность изменения настроек;
<center><a href="https://about.gitlab.com/images/7_14/ci_settings.png"&g... src="http://www.opennet.me/opennews/pics_base/0_1440317713.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>
- В GitLab CI улучшена поддержка пропуска сборок через привязку к коммиту тега "[ci skip]".
<center><a href="https://about.gitlab.com/images/7_14/ci_skipped.png">... src="http://www.opennet.me/opennews/pics_base/0_1440317949.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>
- В экспериментальном режиме в пакет Omnibus интегрирован (https://about.gitlab.com/2015/08/18/gitlab-loves-mattermost/) модуль Mattermost (http://www.mattermost.org/), предоставляющий средства для обмена сообщениями между разработчиками.
Mattermost позиционируется как открытая альтернатива системе организации командных коммуникаций Slack (https://ru.wikipedia.org/wiki/Slack) и позволяет получать и отправлять сообщения/файлы, отслеживать их историю и получать уведомления на смартфоне или ПК.
<center><a href="https://about.gitlab.com/images/mattermost/mattermost.png&qu... src="http://www.opennet.me/opennews/pics_base/0_1440318136.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>
URL: https://about.gitlab.com/2015/08/22/gitlab-7-14-released/
Новость: http://www.opennet.me/opennews/art.shtml?num=42840