Contribute Guide

먼저 기여에 관심을 가져주셔서 정말 기쁩니다. 기여를 제출하기 전에 잠시 시간을 내어 다음 지침을 읽어보시기 바랍니다. 우선 각 팀이 실무 프로젝트를 진행하면 마일스톤을 생성하여, 해당프로젝트에서 발견된 이슈들을 개선할 수 있도록 합니다.

Setup

Getting started 문서를 참고하여 개발 환경을 설정합니다.

Caution

  • hotfix를 제외하고, 모든 작업은 dev 브랜치에서 파생된 브랜치를 생성하여 작업합니다.

Issue Report

이슈 프로세스에 대해 설명합니다.

  • 이슈를 생성하기 전, 같은 내용의 이슈가 없는지 검색을 통해 확인 해보세요.
  • 이슈 티켓을 생성해주세요.
    • Title Format: : [{ issue type }] { title }
    • Example: ✨feat(editor): 복사하기 버튼 기능 추가
  • 이슈에 대한 브랜치를 생성 (create branch) 해주세요.
    • 브랜치 이름은 kebab case 를 준수한다.
    • [{issue number}]-[{issue type}]-[{issue name}]
  • Remote 저장소에 자동 생성된 브랜치로 switch 혹은 checkout 해주세요.
  • 로컬 저장소에서 코드 수정 하시고, 커밋을 진행해주세요.
  • 원격 저장소에 병합전, Git rebase 로 로컬 작업 결과를 최신화 해주세요.
  • 병합 대상 브랜치로 Merge Request를 생성를 생성해주세요.
  • 병합을 확인하고 자신의 원격 브랜치가 삭제 되었는지 확인해주세요!.

Discussion

Discussion 에서 궁금한 사항을 질문하고 기획할 수 있습니다.

Add Feature

  • 어떤 문제를 해결하기 위한 기능인지 설명해주세요
  • 기능을 구현하기 위한 방법을 설명해주세요
  • 영향을 받게 될 기존 코드에 대한 설명을 해주세요
  • 기능을 구현하기 위한 최소한의 코드를 제공해주세요
  • 어떠한 이점을 볼 수 있는지 설명해주세요
  • 관련 문서를 제공하면 좋습니다.
  • 기능 완료에 대한 기준과 테스트 방법을 설명해주세요

Report Bug

  • 최신 버전에서 오류가 재현되는지 확인하세요.
  • Bug Report issue template 을 사용하여 오류를 설명하세요.
  • 오류를 재현할 수 있는 최소한의 코드를 제공하세요.

Pull Request

  • 어떤 이슈로 부터 생성된 PR인지 명시해주세요.
  • PR을 생성하기 전에 최신 버전의 코드를 pull 받아주세요.
  • PR을 생성하기 전에 코드를 정리해주세요.
  • 어떤 테스트를 진행했는지 알려주세요

Git Convention

Commit type

  • feat: 특정 애플리케이션에 추가하는 새로운 기능
  • enhanced: 기존 존재하는 기능에서 향상 될 경우
  • fix : 버그 또는 에러 수정
    • issue type에서는 경우: Bug로 사용합니다.
  • hotfix: 이미 배포된 버전에 문제가 생긴경우
    • 파생된 브랜치로 PR을 통해 병합 되어야 합니다.
    • 핫픽스를 생성하기 전에 원격 저장소에서 fetch를 통하여 최신 상태로 유지해주는 것이 좋습니다.
  • style : 코드 포맷팅, 코드 오타, 함수명 수정 등 스타일 수정
  • refactor : 코드 리팩토링(똑같은 기능인데 코드만 개선)
  • file(페이지 경로 또는 컴포넌트): 파일 이동 또는 제거, 파일명 변경
  • comment: 주석 수정 및 삭제
  • docs : 문서와 관련된 모든 것
  • chore : 정기적인 코드 유지 관리

Commit format

  • format: {Commit Type}(Summary): { Detail Content }
  • url: https://github.com/vuejs/core/blob/main/.github/commit-convention.md

예시

  • 컴포넌트는 대문자로 시작
    • 🎨design(Login): padding bottom 추가
  • 페이지는 소문자로 시작
    • ✨feat(editor): 복사하기 버튼 기능 추가
  • store, function 등 소문자로 시작
    • ✨feat(goToSelectedTab): 유틸 함수 추가

참고자료