Skip to content

Contributing Guide

Ari edited this page Nov 29, 2022 · 3 revisions

Contributor๋กœ์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ง€์นจ์„ ์ค€์ˆ˜ํ•ด์ฃผ์„ธ์š”.

ย 

Submission Guidelines

ย 

๐Ÿ“Œ Issue ์ œ์ถœํ•˜๊ธฐ

๋งŒ์•ฝ ๋‹น์‹ ์ด ์•„์ด๋””์–ด๋‚˜ ๋ฒ„๊ทธ๋ฅผ ์•Œ๊ณ ์žˆ๋‹ค๋ฉด, ๋‹ค์Œ ์‚ฌํ•ญ์„ ๋”ฐ๋ผ ์•Œ๋ ค์ฃผ์„ธ์š”:

  1. Issue๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  2. Assignee๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  3. ๊ด€๋ จ์žˆ๋Š” Label๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  4. ํ…œํ”Œ๋ฆฟ ์ปจ๋ฒค์…˜์„ ์ค€์ˆ˜ํ•˜์—ฌ ์ œ์ถœํ•ด์ฃผ์„ธ์š”.

ย 

๐Ÿ“Œ Pull Request ์ œ์ถœํ•˜๊ธฐ

๋‹น์‹ ์˜ Pull Request๋ฅผ ์ œ์ถœํ•˜๊ธฐ ์ „์— ๋‹ค์Œ ์‚ฌํ•ญ์„ ๋”ฐ๋ผ์ฃผ์„ธ์š”:

  1. ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ํ•˜๋‚˜์˜ Issue๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ธ์ง€ ํ™•์ธํ•ด์ฃผ์„ธ์š”.

  2. ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์œผ๋ฉด git-flow ์ „๋žต ๋ธŒ๋žœ์น˜๋ฅผ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค.

    2-1. git-flow ์ „๋žต

    master : ๊ธฐ์ค€์ด ๋˜๋Š” ๋ธŒ๋žœ์น˜๋กœ ์ œํ’ˆ์„ ๋ฐฐํฌํ•˜๋Š” ๋ธŒ๋žœ์น˜

    develop : ๊ฐœ๋ฐœ ๋ธŒ๋žœ์น˜๋กœ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ด ๋ธŒ๋žœ์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ฐ์ž ์ž‘์—…ํ•œ ๊ธฐ๋Šฅ๋“ค์„ Merge

    feature : ๋‹จ์œ„ ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ธŒ๋žœ์น˜๋กœ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์ด ์™„๋ฃŒ๋˜๋ฉด develop ๋ธŒ๋žœ์น˜์— Merge

    release : ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด master ๋ธŒ๋žœ์น˜๋กœ ๋ณด๋‚ด๊ธฐ ์ „์— ๋จผ์ € QA(ํ’ˆ์งˆ๊ฒ€์‚ฌ)๋ฅผ ํ•˜๊ธฐ์œ„ํ•œ ๋ธŒ๋žœ์น˜

    hotfix : master ๋ธŒ๋žœ์น˜๋กœ ๋ฐฐํฌ๋ฅผ ํ–ˆ๋Š”๋ฐ ๋ฒ„๊ทธ๊ฐ€ ์ƒ๊ฒผ์„ ๋–„ ๊ธด๊ธ‰ ์ˆ˜์ •ํ•˜๋Š” ๋ธŒ๋žœ์น˜

  3. ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ํ•ด๋‹น Issue๋ฅผ ํ•ด๊ฒฐํ•ด์ฃผ์„ธ์š”.

  4. Git Commit Message Convention ๊ทœ์น™์„ ๋”ฐ๋ฅด๋Š” ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋ฐ‹ํ•ด์ฃผ์„ธ์š”.

  5. ํ•ด๋‹น ๋ธŒ๋žœ์น˜์— pushํ•ด์ฃผ์„ธ์š”.

  6. Github์—์„œ ํ…œํ”Œ๋ฆฟ ์ปจ๋ฒค์…˜์„ ์ค€์ˆ˜ํ•˜์—ฌ Pull Request๋ฅผ ์ œ์ถœํ•ด์ฃผ์„ธ์š”.

ย 

๐Ÿ“Œ Pull Request ๋ฆฌ๋ทฐํ•˜๊ธฐ

PR์˜ reivewer๋ผ๋ฉด ๋‹ค์Œ ์‚ฌํ•ญ์„ ๋”ฐ๋ผ์ฃผ์„ธ์š”:

  1. ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋Š” ๋ฑ…ํฌ์ƒ๋Ÿฌ๋“œ์˜ Pn๋ฃฐ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

    1-1. Pn๋ฃฐ

    • P1: ๊ผญ ๋ฐ˜์˜ํ•ด์ฃผ์„ธ์š” (Request changes)

      ๋ฆฌ๋ทฐ์–ด๋Š” PR์˜ ๋‚ด์šฉ์ด ์„œ๋น„์Šค์— ์ค‘๋Œ€ํ•œ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์„ ์ž ์žฌํ•˜๊ณ  ์žˆ๋Š” ๋“ฑ ์ค‘๋Œ€ํ•œ ์ฝ”๋“œ ์ˆ˜์ •์ด ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•˜๋‹ค๊ณ  ํŒ๋‹จ๋˜๋Š” ๊ฒฝ์šฐ, P1 ํƒœ๊ทธ๋ฅผ ํ†ตํ•ด ๋ฆฌ๋ทฐ ์š”์ฒญ์ž์—๊ฒŒ ์ˆ˜์ •์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ๋ทฐ ์š”์ฒญ์ž๋Š” p1 ํƒœ๊ทธ์— ๋Œ€ํ•ด ๋ฆฌ๋ทฐ์–ด์˜ ์š”์ฒญ์„ ๋ฐ˜์˜ํ•˜๊ฑฐ๋‚˜, ๋ฐ˜์˜ํ•  ์ˆ˜ ์—†๋Š” ํ•ฉ๋ฆฌ์ ์ธ ์˜๊ฒฌ์„ ํ†ตํ•ด ๋ฆฌ๋ทฐ์–ด๋ฅผ ์„ค๋“ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    • P2: ์ ๊ทน์ ์œผ๋กœ ๊ณ ๋ คํ•ด์ฃผ์„ธ์š” (Request changes)

      ์ž‘์„ฑ์ž๋Š” P2์— ๋Œ€ํ•ด ์ˆ˜์šฉํ•˜๊ฑฐ๋‚˜ ๋งŒ์•ฝ ์ˆ˜์šฉํ•  ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด ์ ํ•ฉํ•œ ์˜๊ฒฌ์„ ๋“ค์–ด ํ† ๋ก ํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

    • P3: ์›ฌ๋งŒํ•˜๋ฉด ๋ฐ˜์˜ํ•ด ์ฃผ์„ธ์š” (Comment)

      ์ž‘์„ฑ์ž๋Š” P3์— ๋Œ€ํ•ด ์ˆ˜์šฉํ•˜๊ฑฐ๋‚˜ ๋งŒ์•ฝ ์ˆ˜์šฉํ•  ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด ๋ฐ˜์˜ํ•  ์ˆ˜ ์—†๋Š” ์ด์œ ๋ฅผ ๋“ค์–ด ์„ค๋ช…ํ•˜๊ฑฐ๋‚˜ ๋‹ค์Œ์— ๋ฐ˜์˜ํ•  ๊ณ„ํš์„ ๋ช…์‹œ์ ์œผ๋กœ(JIRA ํ‹ฐ์ผ“ ๋“ฑ์œผ๋กœ) ํ‘œํ˜„ํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. Request changes ๊ฐ€ ์•„๋‹Œ Comment ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

    • P4: ๋ฐ˜์˜ํ•ด๋„ ์ข‹๊ณ  ๋„˜์–ด๊ฐ€๋„ ์ข‹์Šต๋‹ˆ๋‹ค (Approve)

      ์ž‘์„ฑ์ž๋Š” P4์— ๋Œ€ํ•ด์„œ๋Š” ์•„๋ฌด๋Ÿฐ ์˜๊ฒฌ์„ ๋‹ฌ์ง€ ์•Š๊ณ  ๋ฌด์‹œํ•ด๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์˜๊ฒฌ์„ ๋ฐ˜์˜ํ•˜๋Š” ๊ฒŒ ์ข‹์„์ง€ ๊ณ ๋ฏผํ•ด ๋ณด๋Š” ์ •๋„๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

    • P5: ๊ทธ๋ƒฅ ์‚ฌ์†Œํ•œ ์˜๊ฒฌ์ž…๋‹ˆ๋‹ค (Approve)

      ์ž‘์„ฑ์ž๋Š” P5์— ๋Œ€ํ•ด ์•„๋ฌด๋Ÿฐ ์˜๊ฒฌ์„ ๋‹ฌ์ง€ ์•Š๊ณ  ๋ฌด์‹œํ•ด๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

  2. ์ฝ”๋“œ๋ฅผ ๋ฆฌ๋ทฐํ•˜์—ฌ Comment / Approve / Request changes ๋ฅผ ๋‚จ๊น๋‹ˆ๋‹ค.

  3. ํ•ด๋‹น PR reviewer๊ฐ€ Approve๋ฅผ ํ•˜๋ฉด ๋จธ์ง€๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ย  ย 

Git Commit Message Convention

ย 

๐Ÿ“Œ Commit Message Header

<์ด๋ชจ์ง€> <ํƒ€์ž…>: <์ œ๋ชฉ>
         โ”‚ ย  ย  ย  โ”‚
         โ”‚ ย  ย  ย  โ”‚
         โ”‚ ย  ย  ย  โ”‚
         โ”‚ ย  ย  ย  โ””โ”€โซธ ํ•œ๊ธ€ ๋ช…๋ น๋ฌธ์œผ๋กœ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ๋์— ๋งˆ์นจํ‘œ๋ฅผ ๋นผ์ฃผ์„ธ์š”.
         โ”‚
         โ””โ”€โซธ Commit Type

ํƒ€์ž…

๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

โœจ [feat] ย   : ๊ธฐ๋Šฅ ์ถ”๊ฐ€
๐Ÿ› [fix] ย  ย  : ๋ฒ„๊ทธ ์ˆ˜์ •
โ™ป๏ธ [refactor]: ๋ฆฌํŒฉํ† ๋ง (ํ•จ์ˆ˜ ๋ถ„๋ฆฌ/์ด๋ฆ„์ˆ˜์ • ๋“ฑ ์‹คํ–‰ ๊ฒฐ๊ณผ์˜ ๋ณ€๊ฒฝ ์—†์ด ์ฝ”๋“œ ๊ตฌ์กฐ๋ฅผ ์žฌ์กฐ์ •)
๐Ÿšš [style] ย  : ํŒŒ์ผ ํ˜•์‹/๋„ค์ด๋ฐ, ํด๋” ๊ตฌ์กฐ/๋„ค์ด๋ฐ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์˜ฎ๊ธฐ๋Š” ์ž‘์—… ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ๋ณ€๊ฒฝ ์—†์Œ
๐Ÿ’„ [style] ย  : ์Šคํƒ€์ผ (UI ์Šคํƒ€์ผ ๋ณ€๊ฒฝ) ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ๋ณ€๊ฒฝ ์—†์Œ
๐Ÿ“ [docs] ย   : ๋ฌธ์„œ (README ๋“ฑ ๋ฌธ์„œ ์ถ”๊ฐ€/์ˆ˜์ •/์‚ญ์ œ)
โœ… [test] ย   : ํ…Œ์ŠคํŠธ (ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€/์ˆ˜์ •/์‚ญ์ œ: ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ๋ณ€๊ฒฝ ์—†์Œ)
๐Ÿ”ง [chore] ย  : ๊ธฐํƒ€ ์‚ฌ์†Œํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ (๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ ์ˆ˜์ • ๋“ฑ)
๐Ÿ’ก [comment] : ํ•„์š”ํ•œ ์ฃผ์„ ์ถ”๊ฐ€ ๋ฐ ๋ณ€๊ฒฝ
๐Ÿ”ฅ [remove]  : ํŒŒ์ผ, ํด๋” ์‚ญ์ œ ์ž‘์—…

์ œ๋ชฉ

๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์„ค๋ช…์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ์ œ๋ชฉ์€ ๋ช…๋ น๋ฌธ ํ•œ๊ธ€๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ๋์—๋Š” ๋งˆ์นจํ‘œ (.)๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

ย 

๐Ÿ“Œ Commit Message Body

์–ด๋–ป๊ฒŒ ๋ณ€๊ฒฝํ–ˆ๋Š”์ง€ ๋ณด๋‹ค ๋ฌด์—‡์„ ๋ณ€๊ฒฝํ–ˆ๋Š”์ง€ ๋˜๋Š” ์™œ ๋ณ€๊ฒฝํ–ˆ๋Š”์ง€๋ฅผ ์ตœ๋Œ€ํ•œ ์ƒ์„ธํžˆ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

  • ํ•œ๊ธ€๋กœ ํ˜„์žฌ ์‹œ์ œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ํ•œ ์ค„ ๋‹น 72์ž ๋‚ด๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ์—ฌ๋Ÿฌ ์ค„์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ž‘์„ฑํ•  ๋• "-"๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

ย 

๐Ÿ“Œ Commit Message Footer

ํ˜„์žฌ ์ปค๋ฐ‹๊ณผ ๊ด€๋ จ๋œ ์ด์Šˆ ๋ฒˆํ˜ธ๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • ex) #์ด์Šˆ๋ฒˆํ˜ธ

ย 

PR Merge Type

  • Create a merge commit type์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.