Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
224 commits
Select commit Hold shift + click to select a range
6a3e5c3
chore: 버전 1.7.3으로 업데이트
manNomi Nov 4, 2024
2d01bf2
feat: GitHub Actions 자동 버전 증가 기능 추가
manNomi Nov 4, 2024
5fdae4c
fix: 버전 타입 없을 때 patch 버전 자동 증가
manNomi Nov 4, 2024
aec8fe6
chore: 버전 1.7.4 업데이트
github-actions[bot] Nov 4, 2024
d32b950
fix: SWC 성능 문제 문서화 및 기본값 Babel로 변경
manNomi Nov 4, 2024
8e4ee10
docs: SWC AST 변환 문제 주석 추가
manNomi Nov 4, 2024
1bfde43
docs: SWC 성능 문제 분석 문서 추가
manNomi Nov 4, 2024
a245cad
feat: add dual-parser support with i18n-wrapper-swc command
manNomi Nov 5, 2024
a18cd18
refactor: SWC 성능 로그 메시지 정리
manNomi Nov 5, 2024
6164421
chore: 버전 번호를 1.7.1로 갱신
manNomi Nov 5, 2024
7cfcd20
chore: RSC hook selection 병합
manNomi Nov 5, 2024
1f7ff1a
fix: parser를 parserType으로 수정하여 타입 오류 해결
manNomi Nov 5, 2024
86b939d
fix: ScriptConfig에 parserType 추가 및 파서 선택 로직 구현
manNomi Nov 5, 2024
7a0d032
fix: package.json에 i18n-wrapper-swc bin 명령어 추가
manNomi Nov 4, 2024
3b828d2
refactor: 상수 분석 로직 제거 및 성능 측정 간소화
manNomi Nov 5, 2024
f6913ed
refactor: t-wrapper를 폴더 구조로 변경
manNomi Nov 5, 2024
18cb185
refactor: constantPatterns 기능 제거
manNomi Nov 6, 2024
902c502
refactor: DEFAULT_CONFIG 중앙화
manNomi Nov 6, 2024
78e3e9e
refactor: 공용 파일들을 common 폴더로 이동
manNomi Nov 6, 2024
7d1f9cf
refactor: printCompletionReport 함수 분리
manNomi Nov 6, 2024
115af74
refactor: TranslationWrapper 클래스 분리
manNomi Nov 6, 2024
a896709
refactor: printCompletionReport를 common으로 이동
manNomi Nov 6, 2024
9c126ad
refactor: AST 헬퍼 함수들을 별도 파일로 분리
manNomi Nov 6, 2024
594977f
refactor: Import 관리 로직 분리
manNomi Nov 6, 2024
b191b4b
refactor: 파서/코드 생성 로직을 common으로 이동
manNomi Nov 7, 2024
c42da93
refactor: AST 변환 로직 분리
manNomi Nov 7, 2024
8e9929c
test: default-config 테스트 추가
manNomi Nov 7, 2024
8853352
test: parser-utils 테스트 추가
manNomi Nov 7, 2024
28f84b1
chore: Jest 설정 업데이트 및 의존성 확인
manNomi Nov 7, 2024
1207c15
fix: tsconfig.json types 중복 제거
manNomi Nov 7, 2024
cc747d4
chore: translation-wrapper.ts 포맷팅 정리
manNomi Nov 7, 2024
9d78c41
refactor: extractor에서 constant 관련 코드 제거
manNomi Nov 8, 2024
dba48a5
refactor: extractor 유틸리티 함수 분리
manNomi Nov 8, 2024
cafb21a
refactor: extractor 키 추출 로직 분리
manNomi Nov 8, 2024
8370034
refactor: extractor 출력 생성 로직 분리
manNomi Nov 8, 2024
44ee58a
refactor: extractor를 index.ts로 이동 및 parser 설정 공통화
manNomi Nov 8, 2024
83fe236
test: parseWithBabel 테스트 제거
manNomi Nov 9, 2024
b68cac3
test: 불필요한 테스트 제거
manNomi Nov 9, 2024
0795839
test: parser-utils 테스트 완전 제거 및 테스트 가이드라인 추가
manNomi Nov 9, 2024
271cd25
chore: testing-guidelines.md를 gitignore에 추가
manNomi Nov 9, 2024
2868276
test: extractor-utils 테스트 추가
manNomi Nov 9, 2024
39bf542
test: ast-helpers 테스트 추가
manNomi Nov 9, 2024
f63b9f6
test: key-extractor 테스트 추가
manNomi Nov 9, 2024
31bcb3c
test: ast-transformers 테스트 추가
manNomi Nov 10, 2024
d823a88
test: output-generator 테스트 추가
manNomi Nov 10, 2024
058288c
test: import-manager 테스트 추가
manNomi Nov 10, 2024
4e65174
test: translation-wrapper 테스트 추가
manNomi Nov 10, 2024
4f576fd
test: 불필요한 테스트 케이스 제거
manNomi Nov 10, 2024
b523bbd
chore: 빌드 시 테스트 파일 제외 설정 추가
manNomi Nov 10, 2024
d8dd238
docs: 개발자용 문서 정리
manNomi Nov 10, 2024
a58aa12
refactor: t-wrapper 상수 분리 및 Object.freeze 적용
manNomi Nov 11, 2024
470f482
chore: console 출력 최소화 (에러만)
manNomi Nov 11, 2024
281976a
refactor: extractor 상수 분리 및 console 출력 최소화
manNomi Nov 11, 2024
5b4b251
test: t-wrapper E2E 테스트 추가
manNomi Nov 12, 2024
d569cf7
test: extractor E2E 테스트 추가
manNomi Nov 12, 2024
fd54c6b
feat: t-wrapper-rust 초기 작업 셋팅
manNomi Nov 13, 2024
a5961d0
test: t-wrapper-rust 초기 테스트 코드 셋업
manNomi Nov 13, 2024
ad5ff47
refactor: t-wrapper-rust를 TypeScript 구조로 재구성
manNomi Nov 13, 2024
c329de4
fix: t-wrapper-rust 컴파일 에러 수정
manNomi Nov 13, 2024
f76087f
test: t-wrapper-rust 테스트 파일 업데이트
manNomi Nov 13, 2024
8e53bd1
test: t-wrapper 불필요한 테스트 제거
manNomi Nov 13, 2024
3b5b5d1
docs: 문서 정리 및 릴리즈 노트 추가
manNomi Nov 13, 2024
ba638d0
docs: 릴리즈 노트 업데이트
manNomi Nov 13, 2024
00f782a
docs: 학습가이드 1 (시작하기) 보강
manNomi Nov 16, 2025
5fedcc8
docs: learning 제외 및 커밋메시지 가이드 추가
manNomi Nov 16, 2025
7ba668e
chore: 버전 1.7.5으로 업데이트 [skip ci]
github-actions[bot] Nov 16, 2025
2c4a737
t-wrapper 개선 방향성 문서 추가 (AS-IS → TO-BE)
manNomi Nov 16, 2025
99bc125
t-wrapper 처리 시퀀스(조건 포함) 추가
manNomi Nov 16, 2025
3d879d8
불필요 문서 삭제 및 config에 mode 옵션 추가
manNomi Nov 16, 2025
8f98d7e
t-wrapper: USE_CLIENT_DIRECTIVE 상수 추가
manNomi Nov 16, 2025
8fffdcb
t-wrapper: mode(client/server) 처리 로직 추가
manNomi Nov 16, 2025
1cc6fea
mode 기반 변환 로직 반영 (client/server)
manNomi Nov 16, 2025
6048c91
config: serverTranslationFunction 설정 추가 및 적용
manNomi Nov 16, 2025
0e020e8
test: 모드(client/server) 및 커스텀 서버 함수 e2e 추가
manNomi Nov 16, 2025
6461064
lint: 타입 정의 확장 및 테스트 정리
manNomi Nov 16, 2025
a532aec
t-wrapper-rust 테스트 스켈레톤 및 구조 매핑 추가
manNomi Nov 16, 2025
ee2b3b7
docs(rust): 구조 매핑/체크리스트를 구현 메모 톤으로 정리
manNomi Nov 16, 2025
6d875b2
test: translation-wrapper 모드/커스텀 서버 함수 테스트 추가
manNomi Nov 16, 2025
e023d77
test(rust): ast_helpers 입력→아웃풋 검증 추가
manNomi Nov 16, 2025
ea316e0
refactor(ast-helpers): isServerComponent 함수 제거
manNomi Nov 17, 2025
100c466
test(ast-helpers): isServerComponent 테스트 제거
manNomi Nov 17, 2025
9c05c9e
refactor(translation-wrapper): mode 기반 변환 로직으로 단순화
manNomi Nov 17, 2025
c8d3e47
test(translation-wrapper): 서버 컴포넌트 스킵 테스트 제거
manNomi Nov 17, 2025
8c7634f
refactor(rust): is_server_component 함수 제거
manNomi Nov 17, 2025
905c008
test(rust): is_server_component 테스트 제거
manNomi Nov 17, 2025
baf8999
docs(nextjs): mode 옵션 기반 변환 가이드 업데이트
manNomi Nov 17, 2025
7491c92
docs(cli): mode 옵션 및 Hook Injection 섹션 업데이트
manNomi Nov 17, 2025
4255e8b
docs(config): mode 및 serverTranslationFunction 옵션 추가
manNomi Nov 17, 2025
f9f88d8
docs(rust): 구현 상태 및 남은 작업 정리
manNomi Nov 17, 2025
a917a27
feat(rust): parser 모듈 파일 생성
manNomi Nov 17, 2025
622a376
feat(rust): ParseOptions 구조체 추가
manNomi Nov 17, 2025
8806394
feat(rust): parser 모듈을 lib.rs에 등록
manNomi Nov 17, 2025
ee2b4f6
feat(rust): parse_file 함수 기본 구현 추가
manNomi Nov 17, 2025
8b89676
fix(rust): lib.rs에서 parser 모듈 중복 선언 제거
manNomi Nov 17, 2025
c49624f
fix(rust): FileName을 Lrc로 변환하도록 수정
manNomi Nov 17, 2025
5ab21f6
fix(rust): StringInput 생성 시 BytePos 사용하도록 수정
manNomi Nov 17, 2025
094f019
fix(rust): Lrc와 SmallPos import 경로 수정
manNomi Nov 17, 2025
b08c2b1
fix(rust): Lexer를 사용하여 Parser 생성하도록 수정
manNomi Nov 17, 2025
5e56b64
fix(rust): new_source_file에서 code.into() 제거
manNomi Nov 17, 2025
2ddff13
fix(rust): 라이프타임 문제 해결을 위해 code를 String으로 변환
manNomi Nov 17, 2025
bca2d56
test(rust): parser 기본 테스트 추가
manNomi Nov 17, 2025
94ea82b
chore: 학습 노트 파일 gitignore에 추가
manNomi Nov 17, 2025
d3bea91
test(rust): 파싱 에러 메시지 출력 추가
manNomi Nov 17, 2025
0d84a44
fix(rust): TsxConfig 제거하고 기본 설정으로 복원
manNomi Nov 17, 2025
f685561
feat(rust): swc 고수준 API 크레이트 추가
manNomi Nov 17, 2025
fccc021
refactor(rust): parser 모듈에 swc 고수준 API import 추가
manNomi Nov 17, 2025
3fa4700
refactor(rust): parse_file를 고수준 API로 전환
manNomi Nov 17, 2025
058117d
fix(rust): Handler::with_emitter 사용하도록 수정
manNomi Nov 17, 2025
ab7337c
fix(rust): Handler와 Syntax 설정 간소화
manNomi Nov 17, 2025
b08a7c4
fix(rust): Handler와 FileName 인자 수정
manNomi Nov 17, 2025
a4416bd
fix(rust): Handler 생성과 parse_js 반환 타입 수정
manNomi Nov 17, 2025
e9b59eb
fix(rust): Program에서 Module 추출하도록 수정
manNomi Nov 17, 2025
7828359
fix(rust): Handler::with_emitter 인자 순서 수정
manNomi Nov 17, 2025
0537c44
fix(rust): 타입 추론 문제 해결
manNomi Nov 17, 2025
822029f
chore(rust): 사용하지 않는 ColorConfig import 제거
manNomi Nov 17, 2025
1b04d90
fix(rust): TsConfig로 JSX 파싱 활성화
manNomi Nov 17, 2025
f910ac2
fix(rust): TsConfig import 제거하고 Default 사용
manNomi Nov 17, 2025
40fb8fe
refactor(rust): parser 테스트 코드를 tests 폴더로 이동
manNomi Nov 17, 2025
29930ff
refactor(rust): ast_helpers 테스트 코드를 tests 폴더로 이동
manNomi Nov 17, 2025
f9b45a9
refactor(rust): ast_transformers 테스트 코드를 tests 폴더로 이동
manNomi Nov 17, 2025
d589be8
refactor(rust): import_manager 테스트 코드를 tests 폴더로 이동
manNomi Nov 17, 2025
338975e
refactor(rust): translation_wrapper 테스트 코드를 tests 폴더로 이동
manNomi Nov 17, 2025
1a36cd0
refactor(rust): src 폴더의 모든 테스트 코드 제거
manNomi Nov 17, 2025
e54d7e9
test(rust): TypeScript 테스트와 1:1 매칭하는 테스트 코드 작성 (ast_helpers, ast_tran…
manNomi Nov 17, 2025
351b62d
feat(rust): ScriptConfig에 mode와 server_translation_function 필드 추가
manNomi Nov 17, 2025
b37523d
test(rust): translation_wrapper와 E2E 테스트 작성 (TypeScript 1:1 매칭)
manNomi Nov 17, 2025
6860384
feat(rust): ast_transformers에 SWC AST Visitor 패턴 기본 구조 추가
manNomi Nov 17, 2025
acbbfd0
fix(rust): 사용하지 않는 import 제거
manNomi Nov 17, 2025
2c8939c
fix(rust): create_t_call 함수 시그니처 수정
manNomi Nov 17, 2025
059d1b0
fix(rust): SWC AST 타입 에러 수정
manNomi Nov 17, 2025
4d03d3a
fix(rust): Atom 타입 문자열 변환 수정
manNomi Nov 17, 2025
b306b01
fix(rust): Atom 타입을 as_ref()로 변환
manNomi Nov 17, 2025
aee4f8f
fix(rust): Atom 타입 역참조로 문자열 접근
manNomi Nov 17, 2025
7425fc3
fix(rust): Wtf8Atom을 to_string()으로 변환
manNomi Nov 17, 2025
b6ceb64
fix(rust): Wtf8Atom 처리 임시로 소스코드 직접 검사로 변경
manNomi Nov 17, 2025
b168683
feat(rust): import_manager 기본 구조 추가
manNomi Nov 17, 2025
e6a2546
fix(rust): import_manager 타입 에러 수정
manNomi Nov 17, 2025
7b81242
fix(rust): Wtf8Atom 처리 임시로 주석 처리하고 TODO 추가
manNomi Nov 17, 2025
aa967b3
docs: 불필요한 마크다운 문서 삭제
manNomi Nov 18, 2025
c0bd3e0
test: ast-helpers 테스트 코드 TypeScript와 1:1 매칭
manNomi Nov 18, 2025
4dcd56f
feat: ast-helpers TypeScript 코드를 Rust로 이식
manNomi Nov 18, 2025
a3400d0
test: ast-transformers 테스트 코드 TypeScript와 1:1 매칭
manNomi Nov 18, 2025
7e25cd2
feat: ast-transformers TypeScript 코드를 Rust로 이식
manNomi Nov 18, 2025
237dd07
fix: ast-transformers 테스트에서 parse_file 호출 제거
manNomi Nov 18, 2025
fd1dc84
test: import-manager 테스트 코드 TypeScript와 1:1 매칭
manNomi Nov 18, 2025
6867897
feat: import-manager TypeScript 코드를 Rust로 이식
manNomi Nov 18, 2025
2458608
test: translation-wrapper 테스트 코드 TypeScript와 1:1 매칭
manNomi Nov 18, 2025
a902d58
feat: translation-wrapper TypeScript 코드를 Rust로 이식
manNomi Nov 18, 2025
5ad088c
fix: translation-wrapper 컴파일 에러 수정
manNomi Nov 18, 2025
8174dce
feat: index.ts (main) TypeScript 코드를 Rust로 이식
manNomi Nov 18, 2025
a55c1ef
test: framework 옵션에 따른 use client 디렉티브 테스트 추가
manNomi Nov 18, 2025
69ceb53
test: E2E 테스트에 framework 옵션 검증 추가
manNomi Nov 18, 2025
1970a96
feat: framework 옵션 추가하여 use client 디렉티브 조건 명확화
manNomi Nov 18, 2025
5f93b06
fix: Next.js 환경에서만 use client 디렉티브 추가하도록 수정
manNomi Nov 18, 2025
bcdaa28
feat: config-loader에 framework 옵션 추가
manNomi Nov 18, 2025
29f3b54
test: Rust 테스트에 framework 옵션 검증 추가
manNomi Nov 18, 2025
74b56fc
feat: Rust ScriptConfig에 framework 옵션 추가
manNomi Nov 18, 2025
084bcdb
test: Rust E2E 테스트에 framework 옵션 검증 추가
manNomi Nov 18, 2025
96ddc83
feat: SWC 코드 생성 기능 추가
manNomi Nov 18, 2025
4cc79fb
fix: SWC 코드 생성 Config 구조체 수정
manNomi Nov 18, 2025
407ac9e
feat: 실제 파일 파싱 및 코드 생성 워크플로우 구현
manNomi Nov 18, 2025
7c7459e
fix: TSX 파싱을 위한 TsConfig 명시적 설정
manNomi Nov 18, 2025
b09bfb6
fix: TsConfig import 제거하고 기본 Syntax 사용
manNomi Nov 18, 2025
946a8fb
fix: JSX 없는 코드로 파서 테스트 수정
manNomi Nov 18, 2025
a25323f
fix: JSX 없는 코드로 translation_wrapper 테스트 수정
manNomi Nov 18, 2025
877c5c0
feat: StringLiteral을 t() 호출로 실제 변환 구현
manNomi Nov 18, 2025
5ddf949
fix: Wtf8Atom 변환 문제로 임시 소스코드 검사 방식 사용
manNomi Nov 18, 2025
8052263
fix: visit_mut_expr 무한 재귀 방지
manNomi Nov 18, 2025
b168691
feat: useTranslation 훅 AST 노드 생성 구현
manNomi Nov 18, 2025
9871715
fix: Wtf8Atom 변환 최신 API로 개선 및 문서 통합
manNomi Nov 20, 2025
225c6b8
fix: 테스트 실패 수정 및 t-wrapper flow 문서 추가
manNomi Nov 20, 2025
a59be9c
refactor: TranslationWrapper 필드를 public으로 변경하고 래퍼 메서드 제거
manNomi Nov 21, 2025
f591ece
refactor: server/client 모드의 t 바인딩 추가 로직 통합
manNomi Nov 21, 2025
65a67d1
feat: namespace별 자동 시트 업로드 지원
github-actions[bot] Nov 21, 2025
b013cc9
fix: dryRun 옵션 제거
manNomi Nov 21, 2025
7c81d88
chore: 버전 1.7.7으로 업데이트 [skip ci]
github-actions[bot] Nov 21, 2025
57e8e66
feat: 네임스페이스 자동화 및 도메인 우선 구조 지원
manNomi Nov 21, 2025
a26b6d8
fix: extractor 주석 수정 및 namespacing 기본값 명시
manNomi Nov 21, 2025
d8affe7
chore: 버전 1.7.8으로 업데이트 [skip ci]
github-actions[bot] Nov 21, 2025
59d4a00
refactor: deprecated 함수 제거 및 import 플래그 로직 개선
manNomi Nov 21, 2025
a5fbe88
refactor: addImportIfNeeded deprecated 함수 제거
manNomi Nov 21, 2025
d4a088d
chore: 불필요한 예제 워크플로우 파일 제거
manNomi Nov 21, 2025
e3721fb
feat: CI 워크플로우 추가 및 테스트 검증 강화
manNomi Nov 21, 2025
4c4be73
refactor: ensureUseClientDirective를 import-manager로 분리
manNomi Nov 22, 2025
2e038c8
refactor: 컴포넌트 처리 로직 중복 제거
manNomi Nov 22, 2025
f6b5698
refactor: processComponent를 private 메서드로 분리
manNomi Nov 22, 2025
a73b8aa
refactor: 불필요한 JSDoc 타입 주석 제거
manNomi Nov 22, 2025
c781083
refactor: isFileModifiedRef 객체 제거하고 반환값으로 처리
manNomi Nov 22, 2025
b7ed595
refactor: 번역 바인딩 적용 로직을 applyTranslationsToFile 메서드로 분리
manNomi Nov 22, 2025
d053afc
refactor: 테스트 코드에 파일 I/O 유틸리티 함수 추가
manNomi Nov 22, 2025
80708f1
refactor: 테스트 파일의 모든 fs 관련 코드를 test-utils로 통합
manNomi Nov 22, 2025
1812cc8
refactor: t-wrapper의 모든 fs 사용을 fs-utils로 통일
manNomi Nov 22, 2025
212ff28
refactor: flush 관련 코드 제거
manNomi Nov 22, 2025
3852e42
refactor: 불필요한 test-utils.ts 제거
manNomi Nov 22, 2025
5d15ba8
refactor: 성능 리포트 로직을 processFiles 내부로 이동
manNomi Nov 22, 2025
fa0620d
refactor: 중복된 try-catch 제거 및 에러 처리 정리
manNomi Nov 22, 2025
a9c7baf
refactor: 하위 호환성 re-export 제거
manNomi Nov 22, 2025
de6a5d2
refactor: processComponent가 path만 받고 내부에서 componentName 추출
manNomi Nov 22, 2025
ee1e0fe
refactor: 불필요한 주석 제거
manNomi Nov 22, 2025
576b281
refactor: 성능 모니터 제거하여 코드 단순화
manNomi Nov 22, 2025
2dd443e
refactor: 성능 모니터 제거하고 실행 시간만 측정
manNomi Nov 22, 2025
36c4e74
refactor: 클래스를 함수형으로 전환
manNomi Nov 22, 2025
554265b
refactor: processComponent를 tryTransformComponent로 변경
manNomi Nov 22, 2025
c19c22a
refactor: componentName을 functionName으로 변경
manNomi Nov 22, 2025
7956f11
refactor: tryTransformComponent를 별도 파일로 분리하고 테스트 추가
manNomi Nov 22, 2025
1879099
refactor: applyTranslationsToFile을 분리하여 테스트 용이성 향상
manNomi Nov 22, 2025
4c3d869
refactor: translation-applier.test.ts 제거 (순수성 부족 및 E2E 테스트로 충분)
manNomi Nov 22, 2025
d5450e7
refactor: t-wrapper 폴더 구조 개선 (역할별 분리)
manNomi Nov 22, 2025
08252ac
refactor: processFiles를 wrapTranslations로 변경하고 파일명 수정
manNomi Nov 22, 2025
c9c18e7
refactor: GET_SERVER_TRANSLATION 기본값을 getTranslations로 변경
manNomi Nov 22, 2025
c8c02c3
refactor: parseWithSwc 제거하고 parseWithBabel만 사용
manNomi Nov 22, 2025
e769c80
refactor: isReactComponentOrHook 함수 제거
manNomi Nov 22, 2025
519ec2b
test: 멤버 표현식(user.name) 변환 검증 테스트 추가
manNomi Nov 22, 2025
e34113d
test: 변환 여부만 검증하도록 테스트 단순화
manNomi Nov 22, 2025
daee307
refactor: 중복 파일 translation-wrapper.ts 제거
manNomi Nov 22, 2025
7171772
refactor: t-wrapper-rust 폴더 구조를 t-wrapper와 동일하게 재구성
manNomi Nov 22, 2025
404fb34
refactor: t-wrapper-rust 내부 로직을 TypeScript 버전과 동일하게 재구성
manNomi Nov 22, 2025
13286ba
refactor: match를 if let으로 변경
manNomi Nov 22, 2025
9c84e3e
refactor: config를 common 모듈로 분리
manNomi Nov 22, 2025
f3750f6
perf: rayon을 사용한 병렬 처리 적용
manNomi Nov 22, 2025
bb5efb2
rayon 문서 추가 및 테스트 코드 정리
manNomi Nov 23, 2025
3ec4f38
swc 패키지 제거 및 저수준 API 직접 사용
manNomi Nov 23, 2025
0b6da79
feat: TemplateLiteral과 JSXText 변환 로직 구현
manNomi Nov 24, 2025
2637840
chore: 버전 1.7.9으로 업데이트 [skip ci]
github-actions[bot] Nov 24, 2025
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
54 changes: 39 additions & 15 deletions .github/DEPLOYMENT_SETUP.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,36 +63,60 @@ GitHub Release 생성

## 📦 배포 방법

### 방법 1: 버전 업데이트 후 자동 배포 (권장)
### 방법 1: 커밋 메시지로 자동 버전 증가 (권장) ⭐

커밋 메시지에 버전 타입을 포함하면 자동으로 버전이 올라갑니다:

```bash
# 1. 버전 업데이트
npm version patch # 1.5.7 → 1.5.8
npm version minor # 1.5.7 → 1.6.0
npm version major # 1.5.7 → 2.0.0
# Patch 버전 증가 (1.5.7 → 1.5.8)
git commit -m "fix: 버그 수정 [patch]"
git push origin main

# 또는
git commit -m "fix: 버그 수정 release: patch"
git push origin main

# 2. main 브랜치에 push
# Minor 버전 증가 (1.5.7 → 1.6.0)
git commit -m "feat: 새 기능 추가 [minor]"
git push origin main

# ✅ 자동으로 npm에 배포됨
# Major 버전 증가 (1.5.7 → 2.0.0)
git commit -m "feat: breaking change [major]"
git push origin main
```

### 방법 2: 수동 버전 수정 후 배포
**커밋 메시지 형식:**
- `[patch]` 또는 `release: patch` → 1.5.7 → 1.5.8
- `[minor]` 또는 `release: minor` → 1.5.7 → 1.6.0
- `[major]` 또는 `release: major` → 1.5.7 → 2.0.0

```bash
# 1. package.json의 version 수동 수정
# "version": "1.5.8"
### 방법 2: GitHub Actions에서 수동 실행

# 2. CHANGELOG.md 업데이트
1. GitHub 저장소 → **Actions** 탭
2. **Publish to npm** 워크플로우 선택
3. **Run workflow** 클릭
4. **Version bump type** 선택:
- 빈 값: 현재 버전 그대로 사용
- `patch`: 1.5.7 → 1.5.8
- `minor`: 1.5.7 → 1.6.0
- `major`: 1.5.7 → 2.0.0
5. **Run workflow** 클릭

### 방법 3: 버전 타입 없이 커밋 (자동 patch 증가)

버전 타입을 지정하지 않으면 **자동으로 patch 버전이 증가**합니다:

# 3. commit & push
```bash
# 버전 타입 없이 커밋하면 자동으로 patch 증가 (1.5.7 → 1.5.8)
git add .
git commit -m "Release v1.5.8"
git commit -m "fix: 버그 수정"
git push origin main

# ✅ 자동으로 npm에 배포됨
# ✅ 자동으로 patch 버전 증가 후 npm에 배포됨
```

**주의**: 코드 변경이 있으면 항상 새 버전으로 배포되어 사용자 혼동을 방지합니다.

## 🔍 배포 확인

### GitHub Actions에서 확인
Expand Down
31 changes: 31 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: CI

on:
pull_request:
branches: [main]
push:
branches: [main]

jobs:
test:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "npm"

- name: Install dependencies
run: npm ci

- name: Build
run: npm run build

- name: Run tests
run: npm test

49 changes: 0 additions & 49 deletions .github/workflows/i18n-download-direct.yml

This file was deleted.

78 changes: 0 additions & 78 deletions .github/workflows/i18n-download.yml

This file was deleted.

88 changes: 84 additions & 4 deletions .github/workflows/npm-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,17 @@ on:
- "docs/**"
- "test-*.tsx"
- "src/test-*.tsx"
workflow_dispatch:
inputs:
version_type:
description: 'Version bump type (leave empty to use current version)'
required: false
type: choice
options:
- ''
- patch
- minor
- major

jobs:
publish:
Expand All @@ -22,16 +33,86 @@ jobs:
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
registry-url: "https://registry.npmjs.org"

- name: Configure Git
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"

- name: Determine version bump type
id: version-bump
run: |
if [ "${{ github.event_name }}" == "workflow_dispatch" ] && [ -n "${{ github.event.inputs.version_type }}" ]; then
echo "type=${{ github.event.inputs.version_type }}" >> $GITHUB_OUTPUT
echo "should_bump=true" >> $GITHUB_OUTPUT
else
# 커밋 메시지에서 버전 타입 추출
COMMIT_MSG="${{ github.event.head_commit.message }}"
if echo "$COMMIT_MSG" | grep -qiE "release:\s*(major|minor|patch)"; then
TYPE=$(echo "$COMMIT_MSG" | grep -oiE "release:\s*(major|minor|patch)" | awk '{print $2}' | tr '[:upper:]' '[:lower:]')
echo "type=$TYPE" >> $GITHUB_OUTPUT
echo "should_bump=true" >> $GITHUB_OUTPUT
elif echo "$COMMIT_MSG" | grep -qiE "\[major\]|\[minor\]|\[patch\]"; then
TYPE=$(echo "$COMMIT_MSG" | grep -oiE "\[(major|minor|patch)\]" | tr -d '[]' | tr '[:upper:]' '[:lower:]')
echo "type=$TYPE" >> $GITHUB_OUTPUT
echo "should_bump=true" >> $GITHUB_OUTPUT
else
# 버전 타입이 없으면 기본값으로 patch 사용 (사용자 혼동 방지)
echo "type=patch" >> $GITHUB_OUTPUT
echo "should_bump=true" >> $GITHUB_OUTPUT
echo "⚠️ No version type specified in commit message, defaulting to patch"
fi
fi
if [ "$(cat $GITHUB_OUTPUT | grep '^should_bump=' | cut -d'=' -f2)" == "true" ]; then
echo "Version bump type: $(cat $GITHUB_OUTPUT | grep '^type=' | cut -d'=' -f2)"
else
echo "No version bump needed, using current version"
fi

- name: Get current version
id: current-version
run: |
CURRENT_VERSION=$(node -p "require('./package.json').version")
echo "version=$CURRENT_VERSION" >> $GITHUB_OUTPUT
echo "Current version: $CURRENT_VERSION"

- name: Bump version
if: steps.version-bump.outputs.should_bump == 'true'
id: new-version
run: |
BUMP_TYPE="${{ steps.version-bump.outputs.type }}"
CURRENT_VERSION="${{ steps.current-version.outputs.version }}"

# 버전 증가
npm version $BUMP_TYPE --no-git-tag-version

NEW_VERSION=$(node -p "require('./package.json').version")
echo "version=$NEW_VERSION" >> $GITHUB_OUTPUT
echo "New version: $NEW_VERSION (bumped from $CURRENT_VERSION)"

- name: Commit version bump
if: steps.version-bump.outputs.should_bump == 'true'
run: |
git add package.json
git commit -m "chore: 버전 ${{ steps.new-version.outputs.version }}으로 업데이트 [skip ci]"
git push origin main

- name: Get package version
id: package-version
run: echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
run: |
if [ "${{ steps.version-bump.outputs.should_bump }}" == "true" ]; then
echo "version=${{ steps.new-version.outputs.version }}" >> $GITHUB_OUTPUT
else
echo "version=${{ steps.current-version.outputs.version }}" >> $GITHUB_OUTPUT
fi
echo "Using version: $(cat $GITHUB_OUTPUT | grep '^version=' | cut -d'=' -f2)"

- name: Check if version exists on npm
id: check-version
Expand All @@ -53,10 +134,9 @@ jobs:
if: steps.check-version.outputs.exists != 'true'
run: npm run build

- name: Run tests (if available)
- name: Run tests
if: steps.check-version.outputs.exists != 'true'
run: npm test --if-present
continue-on-error: true
run: npm test

- name: Publish to npm
if: steps.check-version.outputs.exists != 'true'
Expand Down
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,10 @@ RUST_*.md
SENTRY_PERFORMANCE_GUIDE.md
DEPLOYMENT_NOTES.md
MIGRATION_SEPARATION_COMPLETE.md

# Learning guides (개인 학습 자료는 배포 제외)
docs/learning/
scripts/t-wrapper-rust/STEP_*_LEARNINGS.md

# Planning documents (기획 문서)
ignore/
Loading