-
Notifications
You must be signed in to change notification settings - Fork 51
Contribute
이 문서는 Bezier React에 기여하는 개발자를 위한 가이드를 제공합니다.
우리는 모든 기여자가 기여자 행동 강령 규약을 준수하길 기대합니다.
이 프로젝트는 채널코퍼레이션에서 관리하고 있지만, 오픈 소스 라이선스 하에 공개되어 있습니다. 이는 외부 기여자들도 프로젝트에 참여할 수 있음을 의미합니다. 우리는 외부인의 기여를 환영합니다! 실제로 다양한 관점과 경험은 프로젝트를 더욱 성장시키는 데 큰 도움이 됩니다.
이 프로젝트는 Apache 2.0 라이선스를 따릅니다. 이 라이선스 하에, 어떠한 형태로든 코드를 사용, 수정, 배포할 수 있습니다.
우리는 사용자에게 안정적이고 예측 가능한 업데이트를 제공하기 위해 유의적 버전 명세(SemVer)를 따르고 있습니다. 명세에 따라 버전은 다음과 같은 규칙을 따라 증가합니다.
주.부.수 (ex: 1.0.0)
- 수(패치) 버전은 기존 버전과 호환되는 버그 수정에 따라 증가합니다.
- 부(마이너) 버전은 기존 버전과 호환되는 새로운 기능 추가에 따라 증가합니다.
- 주(메이저) 버전은 기존 버전과 호환되지 않는 변경 사항이 있을 때 증가합니다.
아래는 어떤 버전이 어떤 경우에 증가하는지에 대한 대표적인 예시입니다.
- 컴포넌트 제거
- 컴포넌트의 속성 제거
- 기존 속성의 호환되지 않는 타입 변경
- 공개된 함수 및 믹스인의 호환되지 않는 변경
- 새로운 컴포넌트 추가
- 컴포넌트에 새로운 속성 추가
- 기존 속성의 타입 확장
- 컴포넌트, 속성, 공개된 함수, 믹스인 등의 지원 중지(deprecated) 처리
- 컴포넌트가 생성하는 HTML의 변경(클래스 추가, 제거, 이름 변경 등)
- 공개된 API에 영향을 주지 않는 변경
- 비공개된 함수 및 믹스인의 호환되지 않는 변경
호환되지 않는 변경은 필수불가결합니다. 하지만 호환되지 않는 변경사항이 있을 때마다 주 버전을 증가시키는 건 버전 관리에 있어서 좋지 않습니다. 의존하는 프로젝트가 업그레이드를 하는 데 드는 비용이 너무 크기 때문입니다.
우리는 먼저 지원 중지 처리를 하고, 다음 주 버전에서 실제 변경사항을 적용하는 방식을 사용하고 있습니다. 호환되지 않는 변경사항을 처리하고, 지원 중지 하는 과정에 대한 자세한 가이드는 지원 중지 가이드라인을 참고해주세요.
이슈를 통해 메인테이너 및 다른 기여자들과 의견을 공유할 수 있습니다. 개발하기 이전에 먼저 이슈를 검색해주세요. 이미 해당 이슈가 존재한다면, 해당 이슈에서 논의를 진행해주세요. 존재하지 않는다면, 새로운 이슈를 생성해주세요.
템플릿을 통해 이슈를 제출해주세요.
템플릿을 통해 이슈를 제출해주세요.
- 기본적으로 단일 기본 브랜치(
main
) 하나만 운영합니다. 이 브랜치에서 안정된 버전 배포가 이루어집니다. 이 브랜치에서 새로운 브랜치를 생성하고, PR을 보내는 방식으로 개발이 진행됩니다. - 필요한 경우
alpha
나next
같은 브랜치가 추가되어 개발이 진행될 수 있습니다.
테스트 작성법은 테스트 가이드를 참고해주세요.
PR이 생성되면 1. 프로젝트 메인테이너와 2. 해당 변경사항에 영향을 받는 코드의 코드 오너가 코드 리뷰를 진행합니다. 모든 테스트를 통과하고, 리뷰어의 승인을 받으면 변경 사항을 머지할 수 있습니다.
머지는 Squash and merge 전략을 사용하여 진행합니다. 각 PR이 하나의 커밋으로 표현되기 때문에, 커밋 히스토리가 깔끔해지는 장점이 있습니다.
릴리즈 방식은 릴리즈 가이드를 참고해주세요.