-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
51 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
--- | ||
title: Mend Renovate | ||
ring: trial | ||
quadrant: utilities | ||
tags: [] | ||
|
||
--- | ||
|
||
[Docs](https://docs.renovatebot.com/) | [Sources](https://github.com/renovatebot/renovate) | ||
|
||
Renovate — это инструмент для автоматизации обновления зависимостей. | ||
При этом он не ограничивается только библиотеками, а умеет проверять версии Gradle, Docker-образов, GitHub Action'ов и т.д. | ||
|
||
Возможности: | ||
|
||
- Создание MR'ов с обновлениями (с возможностью автоматического влива) | ||
- Дашборд зависимостей, где видно все доступные обновления для проекта | ||
- Гибкая конфигурация. | ||
Важно сказать, что Renovate из коробки работает даже без настройки. | ||
Есть возможность тонко настроить всё начиная с именования коммитов, заканчивая логикой сколько дней должна "настояться" зависимость прежде чем на неё можно обновляться | ||
- В GitHub можно использовать официальный [Renovate GitHub App][renovate-app], а для других систем управления репозиториями поднять self-hosted вариант | ||
|
||
## Какую проблему решаем | ||
|
||
Важно непрерывно поддерживать свежесть зависимостей, чтобы получать свежие фиксы ~~и баги~~. | ||
|
||
Задача обновления зависимостей часто откладывается как не самая важная, а чем дольше она откладывается, тем больше болезненных изменений накапливается. | ||
Ещё одна возможная причина откладывания — на проекте нет человека, который бы отслеживал обновления, поэтому обновления происходят по принципу "когда уже совсем прижало". | ||
|
||
Renovate может решить обе эти проблемы. | ||
Обновления будут приходить небольшими порциями и их будет проще влить, а за обнаружение новых версий будет отвечать робот, а не человек. | ||
|
||
## Возможные альтернативы | ||
|
||
**[Dependabot](https://github.com/dependabot)** — бот для обнаружения новых версий зависимости, встроенный в GitHub. | ||
Его преимущество является так же и недостатком — он встроен в GitHub, а значит использовать в GitLab или других уже не получится. | ||
В доке Renovate есть [сравнение Renovate с Dependabot][renovate-comparsion]. | ||
|
||
**[ben-manes/gradle-versions-plugin](https://github.com/ben-manes/gradle-versions-plugin)** — Gradle-плагин для обнаружения новых версий подключенных зависимостей. | ||
Исправно выполняет свою функцию по поиску обновлений. | ||
Если нужно не только искать новые версии, а ещё и выстроить процесс автоматического обновления (как минимум создавать MRы с обновлениями), проще использовать Renovate. | ||
|
||
## Опыт применения | ||
|
||
Renovate успешно показал себя в [проекте versions-каталогов][rmr-catalogs], где особенно важно сохранять зависимости свежими. | ||
Следующим шагом хочется [поднять self-hosted][renovate-self-hosted] вариант и опробовать его на проекте. | ||
|
||
[renovate-app]: https://github.com/apps/renovate | ||
[renovate-comparsion]: https://docs.renovatebot.com/bot-comparison/ | ||
[renovate-self-hosted]: https://docs.renovatebot.com/examples/self-hosting/ | ||
[rmr-catalogs]: https://github.com/RedMadRobot/gradle-version-catalogs |