Skip to content

추출 경고 코드셋 대조가 한 방향만 돈다 — javadoc 만 고치면 CI 가 ai-service 를 안 띄운다 (#613 리뷰 정정) #620

Description

@hd0rable

#613 리뷰에서 제가 「그물이 없다」고 적었는데 틀렸습니다. 그물은 있습니다.

# ai-service/tests/test_manual_source_propagates.py:98
def test_the_server_javadoc_lists_the_same_codes() -> None:
    codes = set(typing.get_args(ExtractionWarning.model_fields["code"].annotation))
    listed = re.search(r"\{@code ExtractionWarning\}\((.*?)\)", text, re.S)   # ← 서버 javadoc
    # 집합으로 같음을 요구한다 — 부분열 통과와 반대 방향 누락을 둘 다 닫았다

제가 server/ 안에서만 찾았습니다. 대조가 python 쪽에 있는데 java 쪽을 뒤졌으니 0건이 나왔습니다.

실측으로 그물이 사는 것도 확인했습니다.

javadoc 목록에서 NARROWING_REFUSED 를 지운다   →  1 failed

❗그런데 한 방향은 안 돌아갑니다 — 트리거입니다

그 대조가 ai-service 스위트에 있고, CI 가 그 모듈이 떴을 때만 돕니다.

ci.yml:181   ai=false; hit '^(ai-service/|contracts/|data/|web/src/lib/survey\.ts$)' && ai=true

실측:

ai-service/app/schemas.py 를 고친다            ai-service=true    → 대조가 돈다   ✅
AiServiceClient.java javadoc 만 고친다          ai-service=FALSE   → 안 돈다      ❗

즉 Literal 을 고치는 쪽은 잡히고, javadoc 을 고치는 쪽은 안 잡힙니다. javadoc 에서 코드 하나를 지우거나 오타를 내면 초록으로 머지되고, 읽는 사람은 낼 수 없는 코드나 아홉 개짜리 목록을 믿습니다. 그 두 벌이 갈릴 뻔한 사건이 이미 있었습니다(#444 리뷰 — 아홉 vs 열).

#521 과 같은 모양입니다 — 문면 표(errorText.ts)를 tsc 가 잡는데 서버만 고치는 사람은 npm run build 를 안 돌려서 웹 빌드만 빨간 채로 머지됐던 그 자리입니다. 여기는 「돌리는 사람」이 아니라 CI 판별이 같은 일을 합니다.

어떻게 고칠까 — 대조를 server 쪽으로 한 벌 옮기는 쪽이 낫다고 봅니다

두 안입니다.

ⓐ ci.yml 의 ai-service 판별에 AiServiceClient.java 를 더한다
   한 줄이다. 대신 그 파일을 고칠 때마다 python 스위트 전체가 돈다 —
   자주 고치는 파일이라 값에 비해 비싸다

ⓑ server 쪽에 대조를 두고 `schemas.py` 를 선언된 입력으로 만든다   ◀ 이쪽
   build.gradle  inputs.file('../ai-service/app/schemas.py')
   ci.yml        server_extra 에 같은 경로  (CiServerFilterMirrorsGradleInputsTest 가 대조)
   → schemas.py 를 고치면 server=true, javadoc 을 고쳐도 server=true — **양방향 다 돈다**

ⓑ 는 이 레포에 이미 있는 모양입니다. scoring_thresholds.yaml·app/rubrics/·survey.ts 가 같은 방식으로 server 스위트에 물려 있습니다.

python 쪽 대조는 지우지 않습니다 — server/ 없이 받은 환경에서 조용히 통과하도록 만들어 둔 갈래가 있어서, 그쪽은 그쪽 조건에서 돕니다.

범위

  • server/src/test/.../AiServiceWarningCodesMirrorTest(가칭) — Literal 목록과 javadoc 목록을 집합으로 대조
  • server/build.gradle — inputs.file('../ai-service/app/schemas.py')
  • .github/workflows/ci.yml — server_extra 에 같은 경로 (안 걸면 CiServerFilterMirrorsGradleInputsTest 가 빨개진다)

#613 이 목록을 10 → 12 로 늘립니다. 그 PR 을 막을 이유는 아니고(그쪽은 양쪽을 같이 고치므로 대조가 도는 방향입니다) 이 일은 그 뒤에 올려 숫자를 맞춥니다.

관련: #613 · #444(두 벌이 갈릴 뻔한 사건) · #521(같은 모양의 트리거 결함) · #285(입력 선언 ↔ ci.yml 대조)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

ai-serviceFastAPI (:8100, 내부망 전용)serverSpring (:8000)인프라CI·배포·실행 환경·개발환경 (인프라 R: 오준서)

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions