콘텐츠로 이동

버전 거버넌스

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

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

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

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

  • 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를 한 번에 이해하고 검증하기 위한 장치입니다.