BuildSrc와 함께 어떻게든 라이브러리를 쉽게 관리하기 위해서 이것저것 찾다가
Renovate라는 라이브러리를 자동으로 관리해주는 Bot을 발견했다.
꽤 오래전부터 있던 거 같은데, 이제야 존재를 알게 됐다.
그런데 아쉽게도 BuildSrc는 지원해주지 않고, version Catalog에 대한 처리만 제공하고 있다.
비슷한 기능을 제공하는 dependabot 도 BuildSrc는 지원하지 않는다.
Renovate를 적용하려고 versionCatalog로 싹 갈아엎었고,
이제 Renovate를 적용해보겠다.
1. Renovate
해당 봇은 깃허브의 마켓플레이스를 통해서 연결이 가능하고, 너무나 고맙게도 무료로 사용이 가능하다.
설치하는 튜토리얼은 잘 설명되어 있으니 링크를 보자
2. PR을 받을 시간
설치를 하고 잠시 기다리면 Renovate 가 pr과 이슈를 만들기 시작한다.
개인 프로젝트에서 pr 받을 일이 없는데, 설치하고 나면 원 없이 pr을 날려준다.
pr을 보면 굉장히 상세하게 잘 알려준다.
age : 해당 라이브러리가 나온 지 얼마나 됐는지
adoption : Renovate 유저 중에 이 버전을 얼마나 쓰는지
passing : 테스트가 얼마나 통과됐는지 ( 이 라이브러리를 적용한 레포들이 테스트를 돌았을 때 실패한 비율인 듯 )
confidence : 신뢰도
해당 라이브러리에 포함된 내용도 보여주기는 하는데, 이건 라이브러리에 ChangeLog에서 긁어 오는 거 같다.
ReleaseNote에 있는 내용도 보여주면 좋을 텐데, 그건 안 되는 거 같다. 케바케인듯
이슈 내용도 밑에 처럼 깔끔하게 보여준다.
versionCatalog에 bundle로 묶어 놓은 라이브러리들 ( compose ) 은 이슈에서 보는 것처럼 묶어서 표시해준다.
여기서 체크 표시를 하면 해당 라이브러리를 업데이트한 pr을 날려준다. 딜레이는 좀 있다.
가만 두면 알아서 하나씩 pr을 날려준다.
업데이트하기 싫은 라이브러리가 있는 경우 만들어진 pr을 닫아버리면 이렇게 이슈 화면에서 표시해주고, 더 이상 해당 라이브러리는 자동으로 pr을 날리지 않는다.
3. 커스텀 옵션들
아래는 쓸만한 옵션 몇 가지이다.
"packageRules": [
{
"matchUpdateTypes": ["minor", "patch"],
"automerge": true
}
]
모든 라이브러리를 수동으로 머지하려면 손이 많이 가니, 자동으로 머지할 수 있다.
위 설정은 minor, patch 인 경우에는 자동으로 머지하도록 한다.
다만, automerge는 최소 하나 이상의 테스트가 있어야 하고, 모든 테스트가 통과해야 동작한다.
"prConcurrentLimit" : 3,
pr의 최대 개수를 지정할 수 있다. 너무 많은 pr 이 오면 힘들다.
"ignoreTests" : true,
automerge 조건인 테스트를 무시한다. automerge 가 동작하도록 하고 싶은데 테스트는 없는 경우 쓰면 된다.
"ignoreDeps": [
"androidx.palette:palette-ktx"
]
특정 라이브러리에 대한 업데이트를 확인하지 않도록 만들어 준다.
'안드로이드' 카테고리의 다른 글
context receivers - 확장함수의 확장함수? (0) | 2023.01.10 |
---|---|
KotlinDl - Android 물건탐지, 동작탐지 등등 (0) | 2022.12.19 |
Android - BuildSrc + Version Catalog ( 안드로이드 버전 관리하기 ) (0) | 2022.11.15 |
Android - Module Graph 그리기 (0) | 2022.11.13 |
Compose - Modifier.Node ( composed 상위호환 ) (0) | 2022.11.08 |