Skip to content

fix: remove deprecated plugin API and refresh CI - #3

Merged
Seongbin-Choo merged 2 commits into
mainfrom
chore/plugin-maintenance
Sep 8, 2026
Merged

Seongbin-Choo merged 2 commits into
mainfrom
chore/plugin-maintenance

Conversation

@Seongbin-Choo

Copy link
Copy Markdown
Owner

문제

  • Marketplace의 1.0.2 검증은 호환 판정을 받았지만 DynamicBundle(String) 폐기 API 사용 1건을 보고했습니다.
  • README의 수동 설치 경로와 검증 결과가 여전히 v1.0.0을 가리켜 공개된 v1.0.2와 어긋났습니다.
  • CI가 Node.js 20 기반의 구형 GitHub Actions 메이저를 사용해 실행 경고를 남겼습니다.

판단

메시지 번들

JetBrains가 폐기 사유에 명시한 대로 DynamicBundle 상속을 제거하고, 번들 소유 클래스를 전달하는 DynamicBundle(Class<?>, String) 인스턴스에 위임했습니다. 정적 message() API는 유지해 호출부와 번들 키 계약을 바꾸지 않았습니다.

Release 문서

README 설치 링크를 실제 공개한 v1.0.2 GitHub Release 자산으로 갱신했습니다. 해당 ZIP은 Marketplace 승인 배포본이지만 작성자 서명을 별도로 검증한 파일은 아니므로 signed 표현은 사용하지 않았습니다. 또한 공개 1.0.2에는 경고가 남아 있고 현재 소스에서만 제거됐다는 점을 구분했습니다.

CI 런타임

2026-09-08 기준 공식 최신 메이저인 checkout@v7, setup-java@v6, upload-artifact@v7로 갱신했습니다. 기존 JDK 25, Gradle 캐시, 검증 명령, 아티팩트 경로는 그대로 유지했습니다.

버린 선택지

  • 폐기 경고가 호환성을 막지 않는다는 이유로 방치: 향후 API 제거 시 소스·바이너리 호환성 문제가 되므로 작은 변경으로 미리 제거했습니다.
  • 기존 DynamicBundle(String) 상속을 억제 주석으로 숨김: JetBrains가 제공한 대체 API로 옮기는 편이 의도가 명확합니다.
  • v1.0.2 ZIP을 signed로 표기: Marketplace 승인은 확인했지만 작성자 서명 검증 근거와는 다른 개념이라 제외했습니다.

검증

  • Temurin JDK 25.0.4.1
  • ./gradlew --no-daemon test verifyPluginProjectConfiguration verifyPluginStructure verifyPlugin buildPlugin -x buildSearchableOptions
  • 자동 테스트 35개 통과
  • IntelliJ IDEA 2026.2.1 (IU-262.9437.185) Plugin Verifier: Compatible
  • git diff --check
  • GitHub 공식 저장소에서 Actions 태그 존재 확인

로컬의 비영어 로케일에서는 기존에 문서화된 searchable-options 생성기 오류(Locale must be default)가 있어 해당 작업을 제외했습니다. GitHub Actions에서는 기존과 동일하게 전체 명령을 실행합니다.

배포 메모

이미 공개된 v1.0.2 ZIP은 변경되지 않습니다. 폐기 API 제거는 다음 플러그인 버전에 포함됩니다.

public final class ErrorPurifierBundle {
public static final String BUNDLE = "messages.ErrorPurifierBundle";
private static final ErrorPurifierBundle INSTANCE = new ErrorPurifierBundle();
private static final DynamicBundle INSTANCE = new DynamicBundle(ErrorPurifierBundle.class, BUNDLE);

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

JetBrains가 DynamicBundle(String)에 명시한 대체 경로를 그대로 적용했습니다. 번들 클래스와 경로를 함께 넘겨 리소스 탐색 기준을 유지하고, 외부 호출부는 기존 정적 message() API를 계속 사용합니다.

@Seongbin-Choo
Seongbin-Choo merged commit 31b5461 into main Sep 8, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant