콘텐츠로 이동

버전 거버넌스

bluetape4k-dependencies는 조직 전체의 공유 dependency version을 정의하는 기준입니다.

하위 repository는 중앙 BOM과 generated shared-version catalog update를 사용해야 합니다. 중앙에서 관리되는 library를 각 repository의 Dependabot bump에 맡기지 않습니다.

범위Maven coordinateVersion
애플리케이션 dependency governanceio.github.bluetape4k:bluetape4k-dependencies1.4.0

bluetape4k-dependenciesimplementation(platform(...))으로 한 번만 가져옵니다. 그다음 서비스에 필요한 bluetape4k module을 version 없이 추가합니다.

애플리케이션에서는 bluetape4k-dependencies의 배포 버전만 정하면 됩니다. projects, exposed, aws 같은 저장소별 BOM 버전은 중앙 BOM이 알맞게 조합하므로, 사용자가 따로 맞출 필요가 없습니다.

매뉴얼 상단의 Bluetape4k 문서 1.11 같은 표시는 문서가 설명하는 저장소의 릴리스 계열입니다. 애플리케이션에 입력할 dependency 버전이 아닙니다. bluetape4k-aws처럼 저장소가 0.x 버전을 사용하더라도 같은 원칙을 적용합니다.

저장소별 정확한 버전 조합은 장애 재현이나 dependency 충돌 분석처럼 세부 정보가 필요한 경우에만 확인합니다. 일반적인 설치 안내에서는 중앙 BOM 외의 버전 표를 노출하지 않습니다.

  • Kotlin, kotlinx, Dokka, Kover
  • Spring Boot 3/4, Spring dependency management, Jackson 2/3
  • JetBrains Exposed, Ktor, Reactor, R2DBC driver
  • AWS SDK, Redis client, Kafka, Testcontainers
  • 여러 bluetape4k repository에서 공통으로 사용하는 build/runtime library
  1. 중앙 BOM에서 공유 version을 변경합니다.
  2. 각 repository가 중앙 BOM을 platform(...)으로 먼저 가져옵니다.
  3. bluetape4k module dependency는 version 없이 선언합니다.
  4. compileTestKotlin과 focused test로 영향 범위를 검증합니다.

bluetape4k repository들은 같은 Kotlin, Spring Boot, Exposed, Jackson, Ktor version을 기대합니다. Version drift가 생기면 example, workshop, downstream service가 서로 다른 dependency graph로 검증됩니다.

중앙 거버넌스는 dependency upgrade를 느리게 만들려는 장치가 아니라, upgrade를 한 번에 이해하고 검증하기 위한 장치입니다.