npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@vendys/commitlint-config

v0.1.1

Published

벤디스 가이드라인 기반의 commitlint 설정

Downloads

5

Readme

Commit Message Style Guide

npm version

이 가이드는 벤디스에서 VCS (Version Control System)를 사용하며 변경이력을 작성할 때 기준이 되는 스타일을 설명한다.

코드를 비교하는 diff는 변경된 코드가 무엇인지만 보여줄 뿐 변경이 일어난 배경(context)을 설명하는 것은 커밋 메시지(commit message)다. 그리고 커밋 메시지를 더 쉽게 읽을 수 있도록 작성할 때, 이를 통해 더 나은 정보를 제공할 수 있다.

노트: 이 가이드는 commitlint를 사용한다고 가정한다.

Table of Contents

  1. 원자적 커밋(Atomic Commit)
  2. 커밋 메시지 형식
  3. Header
  4. Body
  5. Footer
  6. 도움이 되는 글

원자적 커밋(Atomic Commit)

"원자적(atomic)" 커밋은 잘못 커밋한 코드를 쉽게 복원(revert)할 수 있는 단위로 커밋하는 것을 의미하며, 하나의 버그 수정 또는 하나의 기능 추가를 중심으로 한 변경이 그 단위가 된다. 따라서 하나의 기능에 대해 여러 번의 수정이 있을 때도 기능을 쉽게 제거할 수 있게 한 번만 커밋하는 것이 좋다. 또, 원자적 커밋은 다른 변경 사항의 반영이나 다른 브랜치와의 통합(merge)를 쉽게 할 수 있도록 돕는다.

  • 각 버그 수정 또는 작업을 독립된 변화로 커밋
  • 업무의 한 덩어리가 완료될 때 커밋
  • UI 레이아웃의 변경은 각각 분리해 커밋
  • 레이아웃 파일, 관련된 코드, 추가된 리소스를 함께 커밋

⬆ 맨 위로

커밋 메시지 형식

  • 2.1 커밋 메시지는 크게 header, body, footer로 구성된다.

    {header}
    
    {body}
    
    {footer}

  • 2.3 body 앞에 빈 줄을 사용한다. commitlint: body-leading-blank

    <!-- 잘못된 예 -->
    
    {header}
    {body}
    
    <!-- 올바른 예 -->
    
    {header}
    ↵
    {body}

  • 2.4 footer 앞에 빈 줄을 사용한다. commitlint: footer-leading-blank

    <!-- 잘못된 예 -->
    
    {header}
    ↵
    {body}
    {footer}
    
    <!-- 올바른 예 -->
    
    {header}
    ↵
    {body}
    ↵
    {footer}

  • 2.5 커밋 메시지의 한 줄이 한글 36자를 넘으면 줄 바꿈을 한다.

    <!-- 잘못된 예 -->
    
    일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십
    
    <!-- 올바른 예 -->
    
    일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육
    칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십

⬆ 맨 위로

Header

  • 3.1 headertype, scope, subject로 구성된다.

    {type}({scope}): {subject}
      
    {body}
      
    {footer}

  • 3.2 type은 반드시 존재해야 한다. commitlint: type-empty, type-min-length

    <!-- 잘못된 예 -->
    
    ({scope}): {subject}
      
    <!-- 올바른 예 -->
      
    {type}({scope}): {subject}

  • 3.3 type은 커밋되는 변경 내용에 따라 다음 중 하나로 명시한다. commitlint: type-enum

    • revert: 기존 커밋으로 복구하는 경우
    • build: 빌드 시스템 또는 외부 의존성과 연관된 변화
    • ci: CI 설정 파일 또는 스크립트와 관련된 변화
    • docs: 문서의 변경만 포함
    • feat: 한 가지 새로운 기능
    • fix: 한 가지 버그 수정
    • perf: 성능을 개선하기 위한 코드 변경
    • refactor: 버그의 수정 또는 기능의 추가가 아닌 코드 수정
    • style: 코드의 의미에 영향을 끼치지 않는 변경
    • test: 누락된 테스트 추가 또는 기존 테스트의 수정
    <!-- 잘못된 예 -->
    
    chore({scope}): {subject}
      
    <!-- 올바른 예 -->
      
    build({scope}): {subject}

  • 3.4 type은 반드시 소문자로 작성한다. commitlint: type-case

    <!-- 잘못된 예 -->
    
    DOCS({scope}): {subject}
      
    <!-- 올바른 예 -->
      
    docs({scope}): {subject}

  • 3.5 scope은 관련된 이슈 식별자로 지정하며, 특정하기 어려운 경우 생략할 수 있다. commitlint: scope-empty, scope-min-length

    <!-- GitHub 이슈의 예 -->
    
    build(#1): {subject}
    
    <!-- Jira 이슈의 예 -->
    
    build(ISSUE-1): {subject}

  • 3.6 scope은 반드시 대문자로 작성한다. commitlint: scope-case

    <!-- 잘못된 예 -->
    
    docs(issue-1): {subject}
      
    <!-- 올바른 예 -->
      
    docs(ISSUE-1): {subject}

  • 3.7 subject는 반드시 존재해야 하며, 변경 내용에 대한 간결한 설명을 포함한다. commitlint: subject-empty, subject-min-length

    <!-- 잘못된 예 -->
    
    docs(ISSUE-1)
      
    <!-- 올바른 예 -->
      
    docs(ISSUE-1): {subject}

  • 3.8 subject는 현재형, 개조식으로 작성하며, 마지막에 마침표를 찍지 않는다. commitlint: subject-full-stop
    typerevert인 경우 subject에는 복원되는 커밋의 SHA 해쉬를 명시한다.

    <!-- 잘못된 예 -->
    
    docs(ISSUE-1): 변경 내용을 반영한다.
      
    <!-- 올바른 예 -->
      
    docs(ISSUE-1): 변경 내용을 반영

⬆ 맨 위로

Body

  • 4.1 body는 변경이 일어난 이유와 기존 동작과의 차이 등을 설명하며, 현재형, 명령형으로 작성한다.

    <!-- 잘못된 예 -->
    
    docs(ISSUE-1): 변경 내용을 반영
    
    문서를 변경했다.
    
    <!-- 올바른 예 -->
    
    docs(ISSUE-1): 변경 내용을 반영
      
    문서의 가독성을 높이기 위해 제목의 스타일을 변경한다.

⬆ 맨 위로

Footer

  • 5.1 footer는 커밋을 통해 종료(close)되는 이슈를 참조한다.

    docs(ISSUE-1): 변경 내용을 반영
      
    문서의 가독성을 높이기 위해 제목의 스타일을 변경한다.
      
    ISSUE-1 #resolve

  • 5.2 하위 호환성을 깨트리는 커밋은 footer에 관련된 정보를 기술해야 하며, 깨진 호환성에 대한 정보는 BREAKING CHANGE:와 하나의 스페이스 또는 두 개의 줄 바꿈으로 시작한다.

    docs(ISSUE-1): 변경 내용을 반영
    
    문서의 가독성을 높이기 위해 제목의 스타일을 변경한다.
    
    BREAKING CHANGE: 기존과 목차가 달라지고, 섹션으로 가기 위한 링크가 변경된다.
    
    ISSUE-1 #resolve

⬆ 맨 위로

도움이 되는 글

⬆ 맨 위로