라이브러리 v1.0 배포 준비#9
Merged
Merged
Conversation
Owner
berrypjh
commented
May 16, 2026
- 공통 설정 패키지 4종 신설
- Nx release + 자동 major bump
- ui-core 보편 계약 surface 정비
- react-ui wrap 패턴 일관화
- 컴포넌트 품질 개선
- 직전 v* tag 이후 commit 본문에 BREAKING CHANGE: footer가 있으면 releaseVersion specifier를 major로 강제 - nx release conventionalCommits scope 매칭이 full npm name을 요구하지만 우리는 short scope를 사용 → 자동 매칭 실패를 release script에서 보정 - --beta prerelease 모드에선 미적용 (기존 분기 우선)
- 기존 루트 commitlint.config.js 규칙을 @berrypjh/commitlint-config로 추출 - no-header-bang, type-enum, conventional preset extends 유지 - nx-release-publish target 포함, MIT 라이선스로 공개
- 기존 루트 .prettierrc 규칙을 @berrypjh/prettier-config로 추출 (printWidth 100, singleQuote 등 동일) - *.md/*.mdx proseWrap, *.yml/*.yaml singleQuote override 포함 - nx-release-publish target 포함, MIT 라이선스로 공개
- base.json(공통 strict 옵션), library.json(nodenext), next.json(bundler+composite+emitDeclarationOnly) 3종 제공 - README에 시나리오별 베이스 매핑과 사용 예시 포함 - nx-release-publish target 포함, MIT 라이선스로 공개
- base(nx flat base/ts/js + import-sort + unused-imports + no-explicit-any), nx(enforce-module-boundaries), react(nx flat/react + jsx-a11y recommended) 3 export 제공 - @nx/eslint-plugin/eslint는 peerDependencies로 두어 consumer 버전과 정렬 - nx-release-publish target 포함, MIT 라이선스로 공개
- .prettierrc 삭제 + package.json의 prettier/devDeps에 4개 워크스페이스 패키지 연결
- 루트 eslint.config.mjs를 @berrypjh/eslint-config/{base,nx,react}로 슬림화 (인라인 룰 제거)
- tsconfig.base.json은 @berrypjh/tsconfig/base.json extends + module/moduleResolution: bundler 명시, nx.json release.projects에 신규 4개 추가
…flat/react] 제거 - nx flat/react는 이제 루트 eslint.config.mjs가 @berrypjh/eslint-config/react를 통해 제공 - 빈 rules 블록과 @nx/eslint-plugin import 제거로 단순화
…t/react] 제거 - nx flat/react는 이제 루트 eslint.config.mjs가 @berrypjh/eslint-config/react를 통해 제공 - 빈 rules 블록과 @nx/eslint-plugin import 제거로 단순화
…igs[flat/react] 제거 - nx flat/react는 이제 루트 eslint.config.mjs가 @berrypjh/eslint-config/react를 통해 제공 - 빈 rules 블록과 @nx/eslint-plugin import 제거로 단순화
…t/react] 제거 - nx flat/react는 이제 루트 eslint.config.mjs가 @berrypjh/eslint-config/react를 통해 제공 - 빈 rules 블록과 @nx/eslint-plugin import 제거로 단순화
- package.json name 필드를 ui-source → shared-stack으로 변경 - README 상단 제목을 신규 패키지명에 맞춰 동기화
- HomePage View on GitHub 버튼의 외부 링크를 신규 저장소(berrypjh/shared-stack)로 업데이트
- bubble-button 폴더(7파일) 삭제 및 components/styles index에서 export 제거 - README, AGENTS.consumer 문서의 BubbleButton 표기 정리 - 사용처가 it-tech-blog/main-web 한 곳뿐이라 해당 앱 로컬로 이동
- BubbleButtonPage 삭제 및 app.tsx 라우트 제거 - Layout 사이드바 네비에서 BubbleButton 항목 제거 - react-ui에서 BubbleButton이 빠진 데 따른 후속 정리
- text.disable: ne400 → ne500, text.error: er600 → er700, text.light: ne500 → ne600 - axe color-contrast 위반 해소를 위한 토큰 darkening - 다른 테마(dark/sepia)는 이미 충족
- InputBase: aria-label/aria-labelledby/aria-invalid를 wrapper div가 아닌 input/textarea로 forward - 6개 Input 계열 stories의 a11y disable + TODO 제거, aria-label/aria-hidden 정리 - SearchField endAdornment placeholder 텍스트를 실제 search SVG 아이콘으로 교체
- Button에 loading/loadingPosition + ButtonLoadingPosition 타입 추가 - InputFieldProps에 autoFocus 추가, multiline을 TextFieldProps에서 이동 - Fab/IconButton/MenuItem contracts 신설 (FabShape, IconButtonEdge 포함)
- Button/ButtonBase: ui-core loading/loadingPosition을 Pick·Omit으로 분담 - Fab, IconButton, MenuItem: 신규 ui-core contracts를 wrap (hand-roll 제거) - InputBase, TextField, Select, InputLabel, FormHelperText: FieldProps 계열 인터페이스를 실제 소비
- private 패키지라 npm 외부 소비자 없음 → dist/AGENTS.md가 dead surface - genAgents.ts 삭제 및 build.ts의 writeAgents 호출 제거 - 개발자용 root AGENTS.md는 그대로 유지
- private 패키지라 npm 외부 소비자 없음 → consumer 문서 dead surface - AGENTS.consumer.md 삭제 - project.json build target의 dist 복사 명령 제거
- form/option/value 처리 11개 함수를 react-ui 내부 utils에서 ui-core/utils로 이전 - 플랫폼·DOM·React 의존 없는 순수 로직 — RN/Vue도 동일 import로 재사용 - React 특화 유틸(getNodeText, assignRef)은 react-ui/utils/react/에 잔류 BREAKING CHANGE: 이번 브랜치의 contracts 재구성 누적 — 외부에서 ui-core 타입을 직접 wrap하던 코드는 아래 변경에 맞춰 조정 필요. - ButtonProps에 loading/loadingPosition + ButtonLoadingPosition 타입 추가 - TextFieldProps의 multiline이 InputFieldProps로 이동 (상속으로 backward-compat) - Fab/IconButton/MenuItem contracts 신설 (FabShape, IconButtonEdge 포함) - ui-core utils에 form-navigation/form-selection/form-value/input-value 추가
- src/utils/form/, src/utils/input/ 폴더와 index 제거 - 소비처 6곳(FormControl, InputBase, SearchField, Select 등) import 경로 갱신 - React 특화 유틸(react/)만 src/utils에 잔류
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.