Skip to content

Commit

Permalink
Add page with Renovate
Browse files Browse the repository at this point in the history
  • Loading branch information
osipxd committed Apr 18, 2024
1 parent 76e3c1d commit cb74ae5
Showing 1 changed file with 51 additions and 0 deletions.
51 changes: 51 additions & 0 deletions radar/2024-04-03/renovate.md
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

0 comments on commit cb74ae5

Please sign in to comment.