Skip to content

[global] Maven Central 배포 전환 (3.0.1) - #17

Merged
ZaMan0806 merged 4 commits into
mainfrom
update/maven-central
Oct 26, 2026
Merged

ZaMan0806 merged 4 commits into
mainfrom
update/maven-central

Conversation

@ZaMan0806

@ZaMan0806 ZaMan0806 commented Oct 26, 2026 •

Copy link
Copy Markdown
Collaborator

Description

SDK 배포처를 GitHub Packages에서 Maven Central로 전환하고 버전을 3.0.1로 올립니다.

GitHub Packages는 공개 패키지도 내려받을 때 토큰이 필요해서, 사용자가 PAT를 발급하고 SDK·datagsm-server 두 저장소를 등록해야 했습니다. 같은 이유로 JitPack 빌드도 datagsm-shared를 받지 못해 401로 실패했습니다. 이제 mavenCentral()만 있으면 SDK와 shared를 함께 받을 수 있습니다.

shared는 themoment-team/datagsm-server#464 배포로 Maven Central에 공개된 20261026-53을 사용합니다.

Changes

  • 좌표 변경: team.themoment.datagsm.sdk:openapi → io.github.themoment-team:datagsm-openapi-sdk-java:3.0.1. Java 패키지(import)는 그대로입니다.
  • 배포 설정 (build.gradle.kts)
    • maven-publish 수동 설정을 com.vanniktech.maven.publish 0.37.0으로 교체하고, Central 필수 요건(sources·javadoc jar, pom 정보, 서명)을 맞췄습니다.
    • GitHub Packages 저장소와 gpr.user/gpr.token 인증 설정을 모두 제거했습니다.
    • shared 의존성을 io.github.themoment-team:datagsm-shared:20261026-53으로 변경했습니다. 생성된 타입은 기존 20261017-50과 동일하고, kotlinx-datetime이 compile 범위로 노출됩니다.
    • 서명은 signingInMemoryKey가 있을 때만 합니다. 키 없이도 publishToMavenLocal로 로컬 검증이 가능하고, 서명 없이 Central에 올리면 Portal 검증에서 거부됩니다.
  • CD (CD.yml)
    • 태그 push 시 publishToMavenCentral로 업로드합니다. 공개는 Central Portal에서 직접 누릅니다.
    • 태그와 build.gradle.kts의 version이 다르면 배포 전에 실패하도록 검사를 추가했습니다.
    • 인증은 org 시크릿 4개(MAVEN_CENTRAL_USERNAME, MAVEN_CENTRAL_PASSWORD, SIGNING_KEY, SIGNING_KEY_PASSWORD)를 사용하고, packages: write 권한을 제거했습니다.
  • CI (CI.yml): 더 이상 필요 없는 GITHUB_ACTOR/GITHUB_TOKEN 환경 변수를 제거했습니다.
  • README: 설치 방법을 mavenCentral() 기준(Gradle Kotlin/Groovy, Maven)으로 다시 쓰고, 3.0.0 → 3.0.1 마이그레이션 안내를 추가했습니다.

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update
  • Refactoring
  • Test update

Breaking change는 의존성 좌표 변경입니다. 코드 API는 바뀌지 않았습니다.

Checklist

  • 코드가 정상적으로 빌드됩니다
  • 관련 테스트를 추가하거나 업데이트했습니다 (빌드 설정 변경이라 해당 없음)
  • 문서를 업데이트했습니다 (필요한 경우)
  • Breaking change가 있다면 마이그레이션 가이드를 작성했습니다

검증

  • Maven Central에서 받은 shared 20261026-53으로 캐시 없이 다시 빌드했고, 기존 테스트 50개가 모두 통과했습니다.
  • SDK 의존성 한 줄만 둔 별도 사용자 프로젝트에서 shared가 함께 받아지고, 실제 HTTP 응답(프로젝트 카테고리, 급식 날짜) 파싱까지 동작하는 것을 확인했습니다. Gradle 모듈 메타데이터와 pom만 쓰는 경우(Maven 사용자 조건) 모두 통과했습니다.
  • publishToMavenLocal로 jar, sources jar, javadoc jar, pom, module이 생성되고, 서명 키가 있을 때 5개 파일 모두 서명이 검증되는 것을 확인했습니다. 키가 없을 때는 서명 없이 정상 배포됩니다.
  • pom에 Central 필수 항목이 모두 있고, 바이트코드 타깃은 기존과 같은 Java 17입니다.
  • 빈 Gradle 홈(CI와 같은 조건)에서도 플러그인을 받아 빌드되고, actionlint가 통과했습니다.

Related Issues

@ZaMan0806 ZaMan0806 added the enhancement New feature or request label Oct 26, 2026
@ZaMan0806 ZaMan0806 self-assigned this Oct 26, 2026
@ZaMan0806
ZaMan0806 marked this pull request as ready for review October 26, 2026 12:03
@pr-agent-demo

pr-agent-demo Bot commented Oct 26, 2026

Copy link
Copy Markdown

⚠️ Auto-review failed: Summary generation failed: summary generation failed: 401 Invalid API key.. Inline review failed: review agent stream failed: 401 Invalid API key.. Retry with /review.

@ZaMan0806
ZaMan0806 merged commit 32a81b0 into main Oct 26, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants