43 lines
1.7 KiB
Markdown
43 lines
1.7 KiB
Markdown
---
|
|
domain: tools
|
|
last_rule_review_commit: 34692aec1891b5042867daf29479e478861954ed
|
|
last_rule_updated_at: 2026-05-21
|
|
---
|
|
|
|
# tools
|
|
|
|
## 목적 / 책임
|
|
|
|
Proto 생성·동기화 스크립트를 담당한다. 현재 Dart/Go proto 바인딩 생성과 Go/Kotlin proto 스키마 동기화 검증 도구를 관리한다.
|
|
|
|
## 포함 경로
|
|
|
|
- `tools/` — proto 생성/검증 스크립트
|
|
- `PORTING_GUIDE.md` — 새 언어 구현 절차 가이드
|
|
|
|
## 제외 경로
|
|
|
|
- `*/crosstest/` — 각 언어 구현체 도메인에 속함
|
|
- `dart/lib/`, `go/*.go`, `kotlin/src/`, `python/proto_socket/`, `typescript/src/` — 각 언어 구현체 또는 protocol 도메인
|
|
- `proto/`, `*/packets/`, `kotlin/src/main/proto/` — protocol 도메인
|
|
|
|
## 주요 구성 요소
|
|
|
|
- `tools/generate_proto.sh` — Dart/Go proto 바인딩 생성 후 동기화 검사 실행
|
|
- `tools/check_proto_sync.sh` — `proto/message_common.proto`와 Go/Kotlin proto 복사본의 스키마 동기화 검증
|
|
|
|
## 유지할 패턴
|
|
|
|
- proto 변경 후 항상 generate → check_sync 순서로 실행
|
|
- Bash 스크립트는 `set -euo pipefail`과 repo root 기준 경로 계산 패턴을 유지
|
|
- 동기화 검사는 언어별 option 차이를 normalize한 뒤 schema 차이만 비교
|
|
|
|
## 다른 도메인과의 경계
|
|
|
|
- **protocol**: 스크립트가 proto 파일을 읽지만, proto 파일 자체는 protocol 도메인
|
|
- **dart/go/kotlin/python/typescript**: crosstest 코드는 각 언어 도메인에 속함. tools 도메인은 `tools/` 스크립트만 담당
|
|
|
|
## 금지 사항
|
|
|
|
- `check_proto_sync.sh` 실패를 무시하고 다음 단계로 진행하지 않는다
|
|
- tools 스크립트에 언어별 런타임 구현 로직을 넣지 않는다
|