Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions REPORT.md
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,25 @@
# REPORT

## [2026-09-04] 형제 repo 파리티 락 필요성 조사 — 둘 다 «조건부 필요», 검사기는 포팅 불가 (rustjava-dod-ci-parity-sibling-repo-survey)
- 무엇을: 채택 제안 `2026-09-04-dod-ci-parity-lock#p1` 에 대한 ★**읽기 전용 조사 + 판정**이다.
`wie`·`qts` 의 **DoD 정본 위치 · CI 검사 집합 · 대칭차**를 각각 실측하고, ★**이력으로 실익까지** 쟀다.
★**형제 repo 변경 0**(`git`·PR·파일 수정 전부 0 — `gh api /contents` 로만 읽었다) · 구현 **0**.
- 왜: ★**같은 처방이 그대로 맞는지 «먼저» 재라**는 것이 제안 문면이었고, 재보니 ★**맞지 않았다.**
`wie` 는 DoD 정본이 **`AGENTS.md`** 이고 CI 의 4번째 게이트(`cargo test`)가 ★**`if:` 로 갈린 2 step + 블록 스칼라**라
우리 파서의 「조건부 = OS 축 = 제외」 규칙이 ★**거짓 red** 를 만든다. `qts` 는 DoD 가 ★**`make` 타깃 이름**이라
Makefile 간접층이 있고, ★**toolchain 매트릭스가 없어 축 B 가 성립하지 않으며**, `gitleaks` 는 ★**action 이라 못 본다**.
- 사용자 영향: **없다**(이 repo 무변경). ★**형제 repo 에 «측정된» 개선 경로 둘이 생겼다** —
`wie` 이력 **9/34(26%)** · `qts` 이력 **10/60(17%)** 이 각각 «한 줄»로 로컬에 들어온다.
- 검증: `wie` `rust.yml` 최근 200 run(성공 166 · 실패 34) **실패 전수 분해** — stable-only clippy 24 ·
★**beta-only clippy 9** · windows test 1. `qts` `ci.yml` 최근 실패 **60건 전수 분해** —
`ruff format --check` 포함 38 · ★**그것만 10** · `ruff check` 7 · phase0-only 0.
★문서 실측: 문자열 `beta` 가 `wie` 규범 문서에 **0건** · 문자열 `format` 이 `qts` 규범 문서에 **0건**.
- ★★**일반 사실 하나**: 세 repo 가 **전부** 이 어긋남을 갖고 있었고 ★**어긋난 자리가 전부 규범 문서에 «적혀 있지 않았다»**
⇒ ★**「사람이 문서를 최신으로 유지한다」가 세 repo에서 «각각» 실패했다** — 기계 대조의 일반 근거다.
- ★**후속 추천**: ⑴`wie` four gates 에 `cargo +beta clippy --all -- -D warnings` ⑵`qts` `make lint` 에
`uv run ruff format --check .` ⑶★**락 포팅은 그 «뒤»**(락은 어긋남을 «막는» 것이지 «고치는» 것이 아니다).
★셋 다 **그 repo 레인 소관**이라 여기서 고치지 않았다 — 축과 합격선만 워크로그에 적었다.

## [2026-09-04] 파리티 락 «교차곱» 확장 판정 — 넓히지 않는다 (rustjava-dod-ci-parity-cross-product-decision)
- 무엇을: 채택 제안 `2026-09-04-dod-ci-parity-lock#p0` 에 대한 **판정**이다. ★**결론: 교차곱으로 넓히지 «않는다»**
(부분 확장 `fmt@beta` 만도 기각). ★**검사기 로직 변경 0 · `.rs` 0줄 · `rust.yml` 무접촉 · DoD 블록 무접촉** —
Expand Down
19 changes: 19 additions & 0 deletions STATE.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -23,6 +23,25 @@
(25번째 run, 앞선 24건 전부 red). **PR 대기 — 게이트③ 미착지.**

## 완료
- [rustjava-dod-ci-parity-sibling-repo-survey] ★★**형제 repo(`wie`·`qts`) 파리티 락 필요성 «조사+판정» — 둘 다 «⒞ 조건부 필요».**
채택 제안 `2026-09-04-dod-ci-parity-lock#p1`. ★**읽기 전용**(형제 repo `git`·PR·파일 수정 **0** · `gh api /contents` 로만 읽었다) · 구현 **0**.
★★**검사기는 «포팅 불가»다** — `wie` 는 DoD 정본이 **`AGENTS.md`** 이고 4번째 게이트(`cargo test`)가
★**`if:` 로 갈린 2 step + 블록 스칼라**라 우리 파서의 「조건부 = 제외」가 ★**거짓 red** 를 만든다 ·
`qts` 는 DoD 가 **`make` 타깃 이름**(Makefile 간접층)이고 ★**toolchain 매트릭스가 없어 축 B 가 성립하지 않으며**
`gitleaks` 는 ★**action 이라 어떤 `run:` 파서도 못 본다**.
★★**그런데 어긋남은 «둘 다 실재»한다 — 이력으로 쟀다**: `wie` `rust.yml` 실패 **34건 전수** 중
★**beta 셀에서만 실패한 clippy 9건(26%)** 인데 four gates 에 `cargo +beta` 가 **없다**(문자열 `beta` 규범 문서 **0건**) ·
`qts` `ci.yml` 최근 실패 **60건 전수** 중 ★**`uv run ruff format --check .` «만» 실패 10건(17%)** 인데 `make lint` 는 안 친다
(문자열 `format` 규범 문서 **0건**).
⇒ ★**먼저 할 일은 락이 아니라 «각 한 줄»** — 그 다음이 포팅이다. 다음 티켓 3건(T1·T2·T3)의 **축과 합격선**만 적었다(발권은 총괄 몫).
★★**일반 사실**: 세 repo 가 전부 이 어긋남을 갖고 있었고 **어긋난 자리가 전부 규범 문서에 없었다** —
「사람이 문서를 최신으로 유지한다」가 **세 repo에서 각각 실패**했다.
★이 repo 검사기·`rust.yml`·DoD 블록 **무접촉** · `.rs` **0줄**.
★게이트③ 완료: PR #28 — ★★**`--merge` 착지**(★`--squash` 아님 · 등재 repo). 머지커밋 sha 는 회신 `merged:` 참조.
★**부모 #27 착지로 `CONFLICTING` 이 됐고 «해소 회차»가 별도로 돌았다** — 충돌 `STATE.md` 1건 ·
★**판단 필요 hunk 0**(두 판본 16줄 중 15줄 바이트 동일 · 차이는 «착지 상태»뿐) · 승인 내용 무접촉 ·
★★**검사 «1건 → 10건» 전건 성공**(충돌 중에는 `pull_request` 트리거가 «구조적으로» 못 돈다 — 그 기전이 해소로 확증됐다).
★**재검은 총괄이 «건너뛴다»로 판정**(원 게이트② 핀 `5c2ed7bc` · 해소 후 head `8ab6bb16`).
- [rustjava-dod-ci-parity-cross-product-decision] ★★**파리티 락 «교차곱» 확장 «판정» — 결론: 넓히지 «않는다».**
채택 제안 `2026-09-04-dod-ci-parity-lock#p0`. ★**검사기 로직 변경 0 · `.rs` 0줄 · `rust.yml` 무접촉 · DoD 블록 무접촉.**
★**비용을 «먼저» 쟀다(추정 0)**: 무변경 재실행 **19s → 38s = 2.00×** ↔ ★**소스 1줄 편집 후 89s → 326s = 3.66×**.
Expand Down
18 changes: 18 additions & 0 deletions docs/upstream-sync-approach.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -411,6 +411,24 @@ gh run list --repo Jun025/RustJava --workflow=rust.yml --status=failure --limit
위 비용표를 **다시 재라** — 이 표의 수는 그때의 값이다.
※★**「비용이 싸졌다」는 재개 사유가 «아니다»** — 실익이 0 인 동안에는 싸도 넣지 않는다.

### ★[2026-09-04 조사] 형제 repo(`wie`·`qts`)에도 같은 락이 필요한가 — ★**둘 다 «조건부 필요» · 검사기는 «포팅 불가»**

★**다음 RustJava 회차가 같은 조사를 반복하지 않도록 결과만 남긴다** — 전문은
`docs/worklog/2026-09-04-parity-sibling-repo-survey.{md,json}`. ★**형제 repo 는 다른 레인 소관이라 이 저장소가 고치지 않는다.**

- ★**구조가 같지 않다**: `wie` 의 DoD 정본은 ★**`AGENTS.md`**(우리는 `CLAUDE.md`)이고 CI 의 4번째 게이트
(`cargo test`)가 ★**`if:` 로 갈린 2 step + 블록 스칼라**라, 우리 파서의 「조건부 = OS 축 = 제외」 규칙이
★**거짓 red** 를 만든다. `qts` 는 DoD 가 ★**`make` 타깃 이름**(Makefile 간접층)이고 ★**toolchain 매트릭스가 없어
축 B 자체가 성립하지 않으며**, `gitleaks` 는 ★**action 이라 어떤 `run:` 파서도 못 본다**.
- ★**그런데 어긋남은 «둘 다 실재»한다(이력 실측)**: `wie` 는 `rust.yml` 실패 **34건 중 9건(26%)** 이
★**beta 셀에서만** 실패한 clippy 인데 four gates 에 `cargo +beta` 가 **없다**(문자열 `beta` 가 규범 문서에 **0건**) ·
`qts` 는 최근 실패 **60건 중 10건(17%)** 이 ★**`uv run ruff format --check .` «만»** 실패인데 `make lint` 는 그것을 **안 친다**.
- ⇒ ★★**먼저 할 일은 락이 아니라 «각 한 줄»이다** — `wie`: four gates 에 `cargo +beta clippy --all -- -D warnings` ·
`qts`: `make lint` 에 `uv run ruff format --check .`. ★**락은 그 «다음»이다**(락은 어긋남을 «막는» 것이지 «고치는» 것이 아니다).
- ★★**일반 사실 하나** — 세 repo 가 전부 이 어긋남을 갖고 있었고 ★**어긋난 자리가 전부 규범 문서에 «적혀 있지 않았다»**
(우리 = wasm32 줄 + beta 축 · `wie` = beta 축 · `qts` = `ruff format --check`).
⇒ ★**「사람이 문서를 최신으로 유지한다」가 세 repo에서 «각각» 실패했다** — 그것이 기계 대조의 일반 근거다.

## 5. 단계 분할 — ★**커밋 수로 자르지 마라. 충돌은 앞쪽 7커밋에 몰려 있다**

각 컷 지점에서 `git merge-tree --write-tree --name-only origin/main <cut>` 을 돌린 실측:
Expand Down
Loading