Auto: ํ•ซํ”ฝ์Šค - ์ด์ „ ๋ฏธ์„ฑ๋…„์ž ๋ฐ ํŒจ์น˜์— ๋Œ€ํ•œ ํŒจ์น˜ ์ง€์›

์— ๋งŒ๋“  2020๋…„ 03์›” 11์ผ  ยท  25์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: intuit/auto

๊ธฐ๋Šฅ ์š”์ฒญ์ด ๋ฌธ์ œ์™€ ๊ด€๋ จ๋˜์–ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” ์˜ค๋ž˜๋œ ๋ฏธ์„ฑ๋…„์ž๋ฅผ ์œ„ํ•œ ํŒจ์น˜๋ฅผ ์ถœ์‹œํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค

์›ํ•˜๋Š” ์†”๋ฃจ์…˜ ์„ค๋ช…

  1. ํƒœ๊ทธ๋กœ ๋ณ‘ํ•ฉํ•˜๋ฉด ์ด๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ํŒจ์น˜/๋งˆ์ด๋„ˆ ๋ฆด๋ฆฌ์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  2. ์ด ๋ฆด๋ฆฌ์Šค ๋ฒˆํ˜ธ๋Š” ๋ถ€/ํŒจ์น˜์šฉ semver์˜ ๋นŒ๋“œ ๋ถ€๋ถ„์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  3. ์ฃผ ๋ฒ„์ „ ํƒœ๊ทธ๋Š” ๋ฒ„์ „ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ •์ƒ์ ์œผ๋กœ ๋ฒ„์ „์ด ์ง€์ •๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
enhancement

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‚˜๋Š” ๋งค์šฐ ๊ด€์‹ฌ์ด์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค!

๋ชจ๋“  25 ๋Œ“๊ธ€

@hipstersmoothie
์ด๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„๋˜๋Š”์ง€ / ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ๋ณด์ผ์ง€์— ๋Œ€ํ•œ ์„ธ๋ถ€ ์ •๋ณด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๋˜ํ•œ merge into a tag ์˜๋ฏธํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค... ์ž ์žฌ์ ์œผ๋กœ ๋ช…ํ™•ํžˆ ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚ด ์ดํ•ด๋Š” ์ง€์ ์„ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” PR๋งŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•„๋‹ˆ์š”, ๋‚˜๋Š” ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋„ˆ๋ฌด ๋งŽ์ด ์ƒ๊ฐํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ํƒœ๊ทธ์— ๋ณ‘ํ•ฉ์ด ์˜๋ฏธํ•˜๋Š” ๋ฐ”๋ฅผ ์ดํ•ดํ•˜๊ณ  ์žˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

UI๋ฅผ ํ†ตํ•ด ํƒœ๊ทธ๋กœ ๋ณ‘ํ•ฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ฏฟ๊ฒŒ ๋˜์—ˆ์ง€๋งŒ ์ถ”๊ฐ€ ๊ฒ€ํ† ๋ฅผ ํ†ตํ•ด ์ด๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ด๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์กฐ๊ธˆ ์ƒ๊ฐํ•ด๋ณด๋ฉด ์ด๋Ÿฐ ์ƒ๊ฐ์ด ๋“ค๋”๊ตฐ์š”.

  1. ํƒœ๊ทธ 1.2.3์ด ์กด์žฌํ•˜๋ฉฐ ํ˜„์žฌ ๋ฒ„์ „์€ 2.0์ž…๋‹ˆ๋‹ค.
  2. PR์€ ํƒœ๊ทธ 1.2.3์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๊ณ  1.2.3-0์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค(0์€ semver์˜ ๋นŒ๋“œ ๋ถ€๋ถ„์ž„).

์ข‹์•„, semver์˜ ๋นŒ๋“œ ๋ถ€๋ถ„์„ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์€ ํ™•์‹คํžˆ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ‘

ํƒœ๊ทธ์— ์ง์ ‘ PR์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์ด ํ๋ฆ„์€ ์ €์žฅ์†Œ ์†Œ์œ ์ž๊ฐ€ ์—…์ŠคํŠธ๋ฆผ ๋ธŒ๋žœ์น˜(PR ๋Œ€์ƒ ๋ธŒ๋žœ์น˜)์˜ ํƒœ๊ทธ์—์„œ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ์š”๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ฝ๊ฐ„ ์„ฑ๊ฐ€์‹œ๊ฒ ์ง€๋งŒ ๋” ๋‚˜์€ ๋Œ€์•ˆ์ด ์žˆ์„์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ ๋ฆด๋ฆฌ์Šค๋Š” ์ผ๋ฐ˜์ ์ด์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ดœ์ฐฎ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ „ ์ฃผ์š” ์ง€์›( versionBranches )์— ๋Œ€ํ•œ ์œ ์‚ฌํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ๊ตฌ์„ฑ์—์„œ ๋ถ„๊ธฐ ์ ‘๋‘์‚ฌ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ํ•ซํ”ฝ์Šค ์œ ํ˜• ๋ฆด๋ฆฌ์Šค๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ตฌ์„ฑ์„ ์ด์ „ ์ฃผ์š” ์ง€์›๊ณผ ๋ณ„๋„๋กœ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜๋‚˜์š”?


์˜ˆ์‹œ ํ๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ์ž๋Š” ์ž๋™ ๊ตฌ์„ฑ์—์„œ hotfix- ์ ‘๋‘์‚ฌ๊ฐ€ ์žˆ๋Š” ๋ถ„๊ธฐ์— ๋Œ€ํ•œ ๋นŒ๋“œ ์‹๋ณ„์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œํ•˜๋„๋ก ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ์กด ์ปค๋ฐ‹ ๋กœ๊ทธ
    <ul> <li>(tag: v2.0.0) (master)<br /> |</li> <li>(tag: v1.2.0)<br /> |</li> <li>(tag: v1.1.0)<br /> |</li> <li>(tag: v1.0.0)<br />

  • repo ์†Œ์œ ์ž๋Š” ํ•ซํ”ฝ์Šค๊ฐ€ ํ•„์š”ํ•œ ๊ธฐ์กด ํƒœ๊ทธ์— ๋Œ€ํ•œ ์ƒˆ ๋ถ„๊ธฐ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
    <ul> <li>(tag: v2.0.0) (master)<br /> |</li> <li>(tag: v1.2.0)<br /> |</li> <li>(tag: v1.1.0) (hotfix-feature)<br /> |</li> <li>(tag: v1.0.0)<br />

  • ์—…์ŠคํŠธ๋ฆผ/ํ•ซํ”ฝ์Šค ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์ƒ์„ฑ๋˜๊ณ  ๋ณ‘ํ•ฉ๋œ PR(ํƒœ๊ทธ + ๋นŒ๋“œ ์‹๋ณ„์ž๋กœ ํƒœ๊ทธ๊ฐ€ ์ง€์ •๋œ ๋ณ‘ํ•ฉ ์ปค๋ฐ‹)
    <ul> <li>(tag: v2.0.0) (master)<br /> | </li> <li>(tag: v1.2.0)<br /> |<br /> | * (tag: v1.1.0+1)<br /> | /</li> <li>(tag: v1.1.0) (hotfix-feature)<br /> |</li> <li>(tag: v1.0.0)<br />

  • ๊ตฌ์„ฑ์—์„œ ๋ถ„๊ธฐ ์ ‘๋‘์‚ฌ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ์ด์ „ ์ฃผ์š” ์ง€์›(versionBranches)์— ๋Œ€ํ•œ ์œ ์‚ฌํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์•„์ด๋””์–ด๋Š” ๋งˆ์Œ์— ๋“ค์ง€๋งŒ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ทธ๋ ‡๊ฒŒ ์žฌ๋ฏธ์žˆ์ง€๋Š” ์•Š์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. auto ๋Š” ๋งŽ์€ ๊ฒƒ์„ ๋ฆด๋ฆฌ์Šคํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฏธ์นœ ์ˆ˜์˜ ๋ถ„๊ธฐ๋กœ ๋๋‚  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    ํƒœ๊ทธ์— ์ง์ ‘ PR์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์ด ํ๋ฆ„์€ ์ €์žฅ์†Œ ์†Œ์œ ์ž๊ฐ€ ์—…์ŠคํŠธ๋ฆผ ๋ธŒ๋žœ์น˜(PR ๋Œ€์ƒ ๋ธŒ๋žœ์น˜)์˜ ํƒœ๊ทธ์—์„œ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ์š”๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ฝ๊ฐ„ ์„ฑ๊ฐ€์‹œ๊ฒ ์ง€๋งŒ ๋” ๋‚˜์€ ๋Œ€์•ˆ์ด ์žˆ์„์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ ๋ฆด๋ฆฌ์Šค๋Š” ์ผ๋ฐ˜์ ์ด์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ดœ์ฐฎ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋‚˜๋Š” ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์ •์ƒ์ ์ด์ง€ ์•Š๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ž๋™ํ™”๋œ ๋ถ„๊ธฐ ์ƒ์„ฑ์„ ๋œ ์œ ์šฉํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๋งŽ์ด ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ๋งŽ์€ ๋…ธ์ด์ฆˆ(๋” ๋งŽ์€ ๋ถ„๊ธฐ)๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


    ์œ„์—์„œ ์ œ์•ˆํ•œ ํ๋ฆ„์€ ์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ PR์„ ํƒœ๊ทธ๋กœ ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์€ ์œ ๊ฐ์ž…๋‹ˆ๋‹ค! ์ด ์›Œํฌํ”Œ๋กœ๋ฅผ ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ด์— ๋Œ€ํ•ด ์ƒ๊ฐํ•ด๋ณด๋ฉด ์ด ๊ธฐ๋Šฅ์ด ์™„์ „ํžˆ ๊ตฌ์ฒดํ™”๋˜๋ ค๋ฉด auto ์— ๋ช‡ ๊ฐ€์ง€ ์‚ฌํ•ญ์ด ํ•„์š”ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    1. ์ƒˆ ๋ช…๋ น auto hotfix : ์‹คํ–‰ ์‹œ ๋ถ„๊ธฐ์˜ ์ตœ์‹  ํƒœ๊ทธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์ƒˆ ํ•ซํ”ฝ์Šค ๋ฒ„์ „์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฆด๋ฆฌ์Šคํ•ฉ๋‹ˆ๋‹ค.
    2. auto shipit ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ: hotfixBranch ์— ์žˆ๋Š”์ง€ ๊ฐ์ง€ํ•˜๊ณ  auto hotfix

    auto hotfix ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์— ๊ด€ํ•ด์„œ๋Š” ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    1. next or canary => ํ•ซํ”ฝ์Šค๊ฐ€ ์ง€์›๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ”Œ๋Ÿฌ๊ทธ์ธ์—์„œ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ํ›„ํฌ
    2. version ๋ฐ publish ํ›„ํฌ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๊ณ  build semver๋ฅผ ํ•ด์ œํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

    ๋‘ ๊ฐ€์ง€ ์˜ต์…˜ ์ค‘ version ๋ฐ pubish ํ›„ํฌ๋ฅผ ์ƒˆ๋กœ์šด ๋ฐฉ์‹์œผ๋กœ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์€ ํš๊ธฐ์ ์ธ ๋ณ€๊ฒฝ์œผ๋กœ ๊ฐ„์ฃผ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— 1 ์ชฝ์œผ๋กœ ๊ธฐ์šธ๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ ์€ ์ผ๋ถ€ ํ›„ํฌ๊ฐ€ afterVersion ๋กœ ํ˜ธ์ถœ๋˜์ง€ ์•Š์•„ ์ผ๋ถ€ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ˜„์žฌ canary ๋ฐ next ๋ชจ๋‘์— ๋Œ€ํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๊ทธ ํ›„ํฌ๋ฅผ ๋ถ€๋ฅด์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—. ๋”ฐ๋ผ์„œ ์ฆ‰์‹œ ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    ์ด๊ฒƒ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

    ์•„์ด๋””์–ด๋Š” ๋งˆ์Œ์— ๋“ค์ง€๋งŒ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ทธ๋ ‡๊ฒŒ ์žฌ๋ฏธ์žˆ์ง€๋Š” ์•Š์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. auto๊ฐ€ ๋งŽ์ด ๋ฆด๋ฆฌ์Šค๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฏธ์นœ ์ˆ˜์˜ ๋ถ„๊ธฐ๋กœ ๋๋‚  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋ถ„๊ธฐ ์ ‘๋‘์‚ฌ ๊ตฌ์„ฑ์ด ์žˆ๋‹ค๋Š” ์ ์—์„œ ์ด์ „ ์ฃผ์š” ์ง€์›๊ณผ ์œ ์‚ฌํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ถ„๊ธฐ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๋ฉด ํŠนํžˆ ์ž์ฃผ ๋ฆด๋ฆฌ์Šคํ•  ๋•Œ ๋„ˆ๋ฌด ๋งŽ์€ ์†Œ์Œ์ด ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ˜†

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

    1. ์ƒˆ ๋ช…๋ น ์ž๋™ ํ•ซํ”ฝ์Šค: ์‹คํ–‰ ์‹œ ๋ถ„๊ธฐ์˜ ์ตœ์‹  ํƒœ๊ทธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์ƒˆ ํ•ซํ”ฝ์Šค ๋ฒ„์ „์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฆด๋ฆฌ์Šคํ•ฉ๋‹ˆ๋‹ค.
    2. auto shipit์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ: hotfixBranch์— ์žˆ๋Š”์ง€ ๊ฐ์ง€ํ•˜๊ณ  ์ž๋™ ํ•ซํ”ฝ์Šค๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    ๋„ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ํ•„์š”ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํฌ๊ฒŒ ์š”์•ฝ ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

    ์ž๋™ ํ•ซํ”ฝ์Šค๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์— ๊ด€ํ•ด์„œ๋Š” ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    1. ๋‹ค์Œ ๋˜๋Š” ์นด๋‚˜๋ฆฌ์•„์˜ ๋ฐฉ๋ฒ• => ํ•ซํ”ฝ์Šค๊ฐ€ ์ง€์›๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ๋ฆด๋ฆฌ์Šคํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ํ›„ํฌ
    2. ๋ฒ„์ „์„ ์žฌ์‚ฌ์šฉํ•˜๊ณ  ํ›„ํฌ๋ฅผ ๊ฒŒ์‹œํ•˜๊ณ  ๋นŒ๋“œ semver๋ฅผ ๋ฆด๋ฆฌ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

    ๋‘ ๊ฐ€์ง€ ์˜ต์…˜ ์ค‘ 1์— ๊ธฐ๋Œ€๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ƒˆ๋กœ์šด ๋ฐฉ์‹์œผ๋กœ ๋ฒ„์ „ ๋ฐ ๊ฒŒ์‹œ ํ›„ํฌ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ด ํš๊ธฐ์ ์ธ ๋ณ€๊ฒฝ์œผ๋กœ ๊ฐ„์ฃผ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋‹จ์ ์€ ์ผ๋ถ€ ํ›„ํฌ๊ฐ€ afterVersion์œผ๋กœ ํ˜ธ์ถœ๋˜์ง€ ์•Š์•„ ์ผ๋ถ€ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ˜„์žฌ canary์™€ next ๋ชจ๋‘์— ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๊ทธ ํ›„ํฌ๋ฅผ ๋ถ€๋ฅด์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—. ๋”ฐ๋ผ์„œ ์ฆ‰์‹œ ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    ๋†’์€ ์ˆ˜์ค€, ๋‚˜๋Š” 1๋„ ์˜๋ฏธ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ํ›„ํฌ๊ฐ€ ์–ด๋–ค ๋ช…๋ น์— ๋Œ€ํ•ด ํ˜ธ์ถœ๋˜๋Š”์ง€ ๋” ์ž˜ ์ดํ•ดํ•˜๋ ค๋ฉด ์ฝ”๋“œ๋ฅผ ์ถ”์ ํ•ด์•ผ ํ•˜์ง€๋งŒ next , canary , & hotfix ๋ชจ๋‘ ์œ ์‚ฌํ•œ ํŒจํ„ด์„ ๋”ฐ๋ฅด๋Š” ๊ฒฝ์šฐ ๊ทธ๋Ÿฌ๋ฉด ๋‚˜์ค‘์— ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ๊ฐ€ ๋” ์‰ฌ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.


    ์ด๊ฒƒ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

    ๋ฌผ๋ก ์ž…๋‹ˆ๋‹ค ๐Ÿ‘, ๊ธฐ๊บผ์ด ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
    ์•„๋งˆ ๋‹ค์Œ ์ฃผ๊นŒ์ง€ ์ด์— ๋Œ€ํ•œ ๊ตฌํ˜„์„ ์‚ดํŽด๋ณผ ์ˆ˜ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฌธ์ œ๊ฐ€ 3์›” ์ดํ›„ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ดœ์ฐฎ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ถ”์ธกํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

    ์—„์ฒญ๋‚œ! ์ด ์ž‘์—…์— ๋Œ€ํ•œ ๊ณ„ํš๋œ ์ž‘์—…์ด ์—†์œผ๋ฏ€๋กœ ๋ชจ๋‘ ๊ท€ํ•˜์ž…๋‹ˆ๋‹ค.

    FWIW - version-MAJOR-MINOR ๋ถ„๊ธฐ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ์—ด๋“ฑํ•œ ์„ ํƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ ๊ฒƒ๊ณผ ์ •ํ™•ํžˆ ์ผ์น˜ํ•˜์—ฌ ์ด๊ฒƒ์„ ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ ๊ตฌ์„ฑํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค์ธ TBH์— ๋Œ€ํ•ด ๋„ˆ๋ฌด ๋งŽ์€ ์†Œ์Œ์ฒ˜๋Ÿผ ๋Š๊ปด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ๊ฐ ๋ฆด๋ฆฌ์Šค ๋ผ์ธ์— ๋Œ€ํ•œ ๋ถ„๊ธฐ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    ํ˜„์žฌ versionBranches ์˜ ์ฃผ์š” ๋ถ€๋ถ„์€ ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์ž…๋‹ˆ๋‹ค .

        this.hooks.beforeCommitChangelog.tapPromise(
          "Old Version Branches",
          async ({ bump }) => {
            if (bump === SEMVER.major && this.config?.versionBranches) {
              const branch = `${this.config.versionBranches}${major(
                await this.hooks.getPreviousVersion.promise()
              )}`;
    
              await execPromise("git", [
                "branch",
                await this.git?.getLatestTagInBranch(),
              ]);
              await execPromise("git", ["push", this.remote, branch]);
            }
          }
        );
    

    SEMVER.minor ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ๊ฐ„๋‹จํ•ด ๋ณด์ด์ง€๋งŒ auto์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์—์„œ ๋ณ€๊ฒฝํ•ด์•ผ ํ•  ๋ถ€๋ถ„์ด ๋ฌด์—‡์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

    ๊ทธ๊ฒƒ์€ ์ด์ „ ๋ฆด๋ฆฌ์Šค์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ผ์˜ ์ผ๋ถ€์ด์ง€๋งŒ shipit ์—์„œ ์ด ํ™•์ธ๋„ ํ†ต๊ณผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    https://github.com/intuit/auto/blob/f37945b45b7fef6ffdb00ffa0250de449e02b883/packages/core/src/auto.ts#L1442

    ๊ทธ๋Ÿฐ ๋‹ค์Œ ์—ฌ๊ธฐ๋กœ ์ด๋™ํ•˜๊ณ  ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฆด๋ฆฌ์Šค ๊ณ„์‚ฐ์„ ์‹œ์ž‘ํ•  ์œ„์น˜๋ฅผ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

    https://github.com/intuit/auto/blob/f37945b45b7fef6ffdb00ffa0250de449e02b883/packages/core/src/auto.ts#L1509

    ๋ฉ”์ด์ €๊ฐ€ ์•„๋‹Œ ์˜ค๋ž˜๋œ ๋งˆ์ด๋„ˆ/ํŒจ์น˜์— ๋Œ€ํ•ด ๊ณ ๋ คํ•ด์•ผ ํ•  ํ•œ ๊ฐ€์ง€ ๊ณ ๋ ค ์‚ฌํ•ญ์€ ์ž ์žฌ์ ์ธ ๋ฒ„์ „ ๋ถˆ์ผ์น˜์ž…๋‹ˆ๋‹ค. ๋ฏธ์„ฑ๋…„์ž์˜ ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ๋œํ•˜์ง€๋งŒ

    *  (tag: v2.0.0) (master)
    | 
    *  (tag: v1.1.1)
    |
    |  *  (tag: v1.1.2) <- Need to add logic to find an available tag 
    | /
    *  (tag: v1.1.0) (hotfix-feature)
    |
    *  (tag: v1.0.0)
    

    ๋”ฐ๋ผ์„œ hotfix ๋ช…๋ น์ด ํ•„์š”ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ๊ณ ์œ ํ•œ ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์— ๋Œ€ํ•œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๊ทœ์น™ :

    1. ์ด์ „ ๋งˆ์ด๋„ˆ/ํŒจ์น˜ ๋ฆด๋ฆฌ์Šค ๋ถ„๊ธฐ์—์„œ ๋ฉ”์ด์ €๋ฅผ ๋ฆด๋ฆฌ์Šคํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค(ํ•„์ˆ˜).
    2. ์ด์ „ ํŒจ์น˜ ๋ฆด๋ฆฌ์Šค ๋ถ„๊ธฐ์—์„œ ๋งˆ์ด๋„ˆ๋ฅผ ๋ฆด๋ฆฌ์Šคํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค(ํ•„์š”ํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Œ).

    @hipstersmoothie
    ๋‹ค์Œ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์ด์ „ ํƒœ๊ทธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ci ์„ค์ •์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๊ธฐ๋ณธ ๋™์ž‘์ด ๋ฌด์—‡์ธ์ง€ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

    ๋‚ด ์ถ”์ธก์œผ๋กœ๋Š” ์ด ์˜ค๋ฅ˜๊ฐ€ ์–ด๋””์—์„œ ๋ฐœ์ƒํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ(์•„๋งˆ๋„ ํƒœ๊ทธ ํ‘ธ์‹œ ์‹œ?) ์‹คํŒจ๊ฐ€ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    ์ฆ‰:

    *  (tag: v2.0.0) (master)
    | 
    *  (tag: v1.1.1)
    |
    |  *   <- what is current behavior if I try to release this commit
    | /
    *  (tag: v1.1.0) 
    |
    *  (tag: v1.0.0)
    

    @hipstersmoothie๊ฐ€ ์ง€์ •ํ•œ ๊ทœ์น™์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ ์™ธ์—๋„ try to unique version number ์ „๋žต/๊ตฌํ˜„์— ๋Œ€ํ•œ ์ž ์žฌ์ ์ธ ๋ฌธ์ œ/ํ˜ผ๋ˆ์ด ํ•˜๋‚˜ ์žˆ์Šต๋‹ˆ๋‹ค. @hipstersmoothie์˜ ์˜ˆ์—์„œ v1.1.2 ๋Š” v1.1.1 ์˜ ํŒจ์น˜ ๋ฆด๋ฆฌ์Šค๋กœ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋ณผ ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฐœ๋ฐœ์ด ์„ ํ˜•์ ์ด์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์ด ๋ณด์žฅ๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. v1.1.2 v1.1.1 ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์—†์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๊ธฐ ๋•Œ๋ฌธ์— v1.1.1 ์—์„œ v1.1.2 ๋กœ ์ด์ „ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ณ ์œ  ๋ฒ„์ „์ด v1.1.0 ์—์„œ ๋” ๋จผ ๊ฑฐ๋ฆฌ์— ์žˆ๋Š” ๊ฒฝ์šฐ(์ฆ‰, ๋‹ค์Œ ๊ณ ์œ  ๋ฒ„์ „์ด v1.1.100 ๊ฒฝ์šฐ) ์ด๋Š” ์•…ํ™”๋˜๊ณ  ๋” ํ˜ผ๋ž€์Šค๋Ÿฌ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    semver์˜ ๋นŒ๋“œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ถ€๋ถ„์„ ํ™œ์šฉํ•˜๋ฉด semver ์‚ฌ์–‘์— ๋”ฐ๋ผ ๋ฒ„์ „ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ ๋ฌด์‹œ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ํ˜ผ๋ž€์„ ์ œํ•œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋นŒ๋“œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ฒˆํ˜ธ๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๊ฒฝ์šฐ ์ฆ๊ฐ€ํ•˜๋Š” ๋ฒˆํ˜ธ ๋Œ€์‹  commit sha๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ผ๋ฐ˜์ ์œผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ด ๋ฐ˜๋“œ์‹œ ์„ ํ˜•์ ์ธ ๊ฒƒ์€ ์•„๋‹ˆ๋ฏ€๋กœ ์ตœ์ƒ์˜ ๊ตฌํ˜„์ด ์žˆ๋Š”์ง€ ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.


    ์ผ๋ฐ˜ํ™”ํ•˜๋ ค๋ฉด ๋ถ„๊ธฐ์— ๊ด€๊ณ„์—†์ด ์œ„์˜ ์ „๋žต์„ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•ด ์ผ์ข…์˜ ๊ตฌ์„ฑ ๋˜๋Š” ํ›„ํฌ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋˜๋Š” ๋ถ„๊ธฐ๊ฐ€ ํ›„ํฌ์— ๋Œ€ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜์ผ ์ˆ˜ ์žˆ์Œ).
    ์ด๋Ÿฐ ์‹์œผ๋กœ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด ๋‹ค๋ฅธ ๊ตฌํ˜„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋‹ค์Œ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์ด์ „ ํƒœ๊ทธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ci ์„ค์ •์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๊ธฐ๋ณธ ๋™์ž‘์ด ๋ฌด์—‡์ธ์ง€ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

    ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€์— [skip ci] ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜์ ์œผ๋กœ ํƒœ๊ทธ๊ฐ€ ๋นŒ๋“œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    ๋‹ค์Œ ๊ณ ์œ  ๋ฒ„์ „์ด v1.1.0์—์„œ ๋” ๋ฉ€๋ฆฌ ๋–จ์–ด์ ธ ์žˆ๋Š” ๊ฒฝ์šฐ ์ด๋Š” ์•…ํ™”๋˜๊ณ  ๋” ํ˜ผ๋ž€์Šค๋Ÿฌ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ด๊ฒƒ์€ ์ข‹์€ ์ ์ž…๋‹ˆ๋‹ค. ํ™•์‹คํžˆ ๋ฒ„์ „์˜ ๋นŒ๋“œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ถ€๋ถ„์„ ์˜ฌ๋ฐ”๋ฅธ ์ „๋žต์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    ์ผ๋ฐ˜ํ™”ํ•˜๋ ค๋ฉด ๋ถ„๊ธฐ์— ๊ด€๊ณ„์—†์ด ์œ„์˜ ์ „๋žต์„ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•ด ์ผ์ข…์˜ ๊ตฌ์„ฑ ๋˜๋Š” ํ›„ํฌ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋˜๋Š” ๋ถ„๊ธฐ๊ฐ€ ํ›„ํฌ์— ๋Œ€ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜์ผ ์ˆ˜ ์žˆ์Œ).
    ์ด๋Ÿฐ ์‹์œผ๋กœ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด ๋‹ค๋ฅธ ๊ตฌํ˜„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๊ท€ํ•˜์˜ ๊ฒŒ์‹œ๋ฌผ์€ ๊ณ ์œ ํ•œ ํƒœ๊ทธ๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ํ˜ผ๋ž€์Šค๋Ÿฌ์šด ๊ณ„ํš์ด๋ฉฐ ์šฐ๋ฆฌ๋Š” ์•„๋งˆ ๊ทธ๋ ‡๊ฒŒ ํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค๊ณ  ํ™•์‹ ํ–ˆ์Šต๋‹ˆ๋‹ค.

    ์–ด์ฉŒ๋ฉด ์šฐ๋ฆฌ๊ฐ€ ๋ฏน์Šค๋ฅผ ํ•˜๋ฉด ํšจ๊ณผ๊ฐ€ ์žˆ์„์ง€๋„ ๋ชจ๋ฆ…๋‹ˆ๋‹ค. ํŒจ์น˜์™€ ์˜ค๋ž˜๋œ ๋งˆ์ด๋„ˆ๋Š” ์‰ฌ์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ „๊ณต์— ๋Œ€ํ•œ oldVersionBranches์™€ ๋˜‘๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    *  (tag: v2.0.0) (master)
    | 
    *  (tag: v1.2.0)
    |
    |  *  (tag: v1.1.5) <- Can merge patched into old minor branch, maybe error when PR has `minor`
    | /
    *  (tag: v1.1.4) <- branch: version-1.1
    |
    *  (tag: v1.0.0)
    

    ๊ทธ๋Ÿฐ ๋‹ค์Œ ํŒจ์น˜ ํŒจ์น˜๋ฅผ ์œ„ํ•œ ๋นŒ๋“œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ถ€๋ถ„๋งŒ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

    from ๋ฐ useVerion ์˜ต์…˜์ด ๋ณ‘ํ•ฉ๋œ ์ƒํƒœ์—์„œ ํ•ซํ”ฝ์Šค๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ธฐ๋ณธ ์ œ๊ณต ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ์˜ค๋Š˜ ํ•˜๋‚˜๋ฅผ ๋งŒ๋“ค์–ด์•ผํ–ˆ๊ณ  ๊ณ ํ†ต์Šค๋Ÿฝ๊ฒŒ ์ˆ˜๋™์œผ๋กœํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

    ์ปจํ…์ŠคํŠธ๋ฅผ ์œ„ํ•ด ๋‚ด ํ”„๋กœ์ ํŠธ๋Š” 7.7์— ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์˜ ์ฃผ์š” ์†Œ๋น„์ž๋Š” ํ˜„์žฌ 7.5์— ์žˆ๋Š” ๋ฒ„์ „์„ ์ถœ์‹œํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์œผ๋ฉฐ 7.5.1์ด ํ•„์š”ํ•˜๋ฏ€๋กœ ์ถœ์‹œ ์ค‘๊ฐ„์— ๋ชจ๋“  ๊ฒƒ์„ ๋‹ค์‹œ QAํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ตœ์ ์€ ์•„๋‹ˆ์ง€๋งŒ ๊ฐ€๋” ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

    ์ˆ˜๋™ ๊ฐœ์ž… ์—†์ด๋Š” ๋‚ด๊ฐ€ ์•„๋Š” ํ•œ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ intuit ๋‚ด๋ถ€์˜ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ฒฐ๊ตญ ์ด๊ฒƒ์„ ์ถ”๊ฐ€ํ•  ๊ณ„ํš์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด ์ž๋™์—์„œ ๋งค์šฐ ๋ถ€์กฑํ•œ ๊ธฐ๋Šฅ์ด๋ผ๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

    ๊ต‰์žฅํ•ด! ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ๐Ÿ™

    ์šฐ๋ฆฌ(์ €์™€ @10hendersonm)๋Š” ์ด์— ๋Œ€ํ•œ ์†”๋ฃจ์…˜์„ ๊ฐœ๋ฐœํ–ˆ์ง€๋งŒ
    ๊ด€๋ จ๋œ. ๊ทธ๋Ÿฌ๋‚˜ ์ž๋™ ๋ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค!

    PR๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ์˜ 7.2.1, 8.1.1 ๋ฐ 8.2.2๋ฅผ ํ•ซํ”ฝ์Šคํ–ˆ์Šต๋‹ˆ๋‹ค.
    (๋งค์šฐ ์‹ ์ค‘ํ•˜๊ฒŒ).

    ์‚ฌ๋žŒ๋“ค์ด ๊ด€์‹ฌ์„ ๊ฐ€์งˆ ๊ฒฝ์šฐ ์ด๋ฅผ ๊ณต์œ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์กฐ์‚ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

    2021๋…„ 1์›” 14์ผ ๋ชฉ์š”์ผ ์˜คํ›„ 7:27 Matt Felten [email protected]์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

    ๊ต‰์žฅํ•ด! ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ๐Ÿ™

    โ€”
    ๋‹น์‹ ์ด ๋Œ“๊ธ€์„ ๋‹ฌ์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
    ์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
    https://github.com/intuit/auto/issues/1054#issuecomment-760583830 ๋˜๋Š”
    ๊ตฌ๋… ์ทจ์†Œ
    https://github.com/notifications/unsubscribe-auth/AACI3Q6RKDONYJVH6UWUPFLSZ6KZNANCNFSM4LFJ4ULQ
    .

    ๋‚˜๋Š” ๋งค์šฐ ๊ด€์‹ฌ์ด์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค!

    ๋ชจ๋‘๋“ค ์•ˆ๋…•! ๋‚˜๋Š” ์ด๊ฒƒ์„ ๊ธฐ์—ฌํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์ œ์•ˆ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    1. ์ผ๋ฐ˜์ ์œผ๋กœ auto ๋Š” ๋ชจ๋“  version-* ๋ถ„๊ธฐ๋ฅผ ์กด์ค‘ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ถ„๊ธฐ์—์„œ version-1.1.4 ๋กœ ํŒจ์น˜๋ฅผ ๋ณ‘ํ•ฉํ•˜๋ฉด 1.1.5 ๋ฒ„์ „์˜ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ฒ„์ „์ด ์ด๋ฏธ ์ƒ์„ฑ๋œ ๊ฒฝ์šฐ NPM ๋ฆด๋ฆฌ์Šค ๋˜๋Š” Git ํƒœ๊ทธ๊ฐ€ ์‹คํŒจํ•˜์ง€๋งŒ ์ด๋Š” ์ •์ƒ์ ์ด๊ณ  ์˜ˆ์ƒ๋˜๋Š” ์˜ค๋ฅ˜ ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค.
    2. ์šฐ๋ฆฌ๋Š” ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค versionBranches ๋ฐ›์•„ ๋“ค์ผ "major" | "minor" | "patch" ๊ฐ€ ์ง€์ •ํ•œ ๋‚ด์šฉ์— ๋”ฐ๋ผ ์ž ์žฌ์  ํ•ซํ”ฝ์Šค ์ง€์ ์„ ์ƒ์„ฑ ํ•  ๊ฒƒ์ด๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด version-* ๋ถ„๊ธฐ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ƒ์„ฑํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ๊ณผ ์ˆ˜์ •์ด ํ•„์š”ํ•˜์ง€ ์•Š์„ ๋•Œ ์œ ์ง€ํ•ด์•ผ ํ•  ๋„ˆ๋ฌด ๋งŽ์€ ๋ถ„๊ธฐ๊ฐ€ ์ƒ๊ธฐ๋Š” ๊ฒƒ ์‚ฌ์ด์—์„œ ์ ˆ์ถฉ์•ˆ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ƒ๊ฐ?

    ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Š” ์ •์ƒ์ ์ด๋ฉฐ ์˜ˆ์ƒ๋˜๋Š” ์˜ค๋ฅ˜ ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค.\

    ๋‚˜๋Š” ์—ฌ์ „ํžˆ ์ด๊ฒƒ์ด ์–ด๋–ค ์œ ํ˜•์˜ ๋ฒ„์ „์„ ๋งŒ๋“ค ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ๋‹ค๋ฅธ ๊ฒƒ์„ ๊ฐ€์ ธ์˜ค์ง€ ์•Š๊ธฐ ์œ„ํ•ด ํŠน์ • ์ปค๋ฐ‹์—์„œ ํ•ซํ”ฝ์Šค๋ฅผ ๋ฆด๋ฆฌ์Šคํ•˜๋ ค๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์œ„์˜ ๋Œ€ํ™”์—์„œ semver์˜ ๋นŒ๋“œ ๋ถ€๋ถ„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

    "major"๋ฅผ ํ—ˆ์šฉํ•˜๋„๋ก versionBranches๋ฅผ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. | "์‚ฌ์†Œํ•œ" | "๋ฐ˜์ "

    ํ˜„์žฌ ๊ตฌ์„ฑ์€ true ์ด๊ฑฐ๋‚˜ ์ฃผ์š” ๋ถ„๊ธฐ์— ์ ‘๋‘์‚ฌ๋ฅผ ๋ถ™์ผ ๋ฌธ์ž์—ด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๊ตฌ์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

    {
      "versionBranches": {
          "branchPrefix": "version-",
          "types": ["major", "minor"] // defaults to just major   
       }
    }
    

    ๋Œ€๋‹ตํ•  ๋งˆ์ง€๋ง‰ ์งˆ๋ฌธ์€ ์—ฌ์ „ํžˆ ํ•ซํ”ฝ์Šค ํ›„ํฌ ๋˜๋Š” ํ˜ธ์ถœ ๋ฒ„์ „+๊ฒŒ์‹œ ํ›„ํฌ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์˜ต์…˜ 2๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋ฒ„์ „+๊ฒŒ์‹œ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค(์ด๋Š” ์‹ค์ˆ˜๋กœ ์ตœ์‹  ํƒœ๊ทธ์— ๊ฒŒ์‹œํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค).

    @lshadler ์šฐ๋ฆฌ๋Š” ์ตœ๊ณ ์˜ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ฐพ๊ธฐ ์œ„ํ•ด ์ž ์‹œ ๋™์•ˆ ์ด๊ฒƒ๊ณผ ์ง์„

    @bmuenzenmeyer ์ ‘๊ทผ ๋ฐฉ์‹์— ๋Œ€ํ•œ ๊ฐœ์š”๋ฅผ ์•Œ๋ ค

    ๊ตฌํ˜„์— ๋Œ€ํ•ด ๋” ๋งŽ์ด ์ƒ๊ฐํ• ์ˆ˜๋ก v11์ด ํ•„์š”ํ•˜๊ณ  ๋ฒ„์ „ ๋ฐ ๊ฒŒ์‹œ ๋ช…๋ น์— ๋” ๋งŽ์€ ์ปจํ…์ŠคํŠธ๊ฐ€ ์ถ”๊ฐ€๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

    ์ด์ „ ๋ฆด๋ฆฌ์Šค์˜ ๊ฒฝ์šฐ changelog, afterVersion ๋ฐ ์ตœ์‹  ๋ฆด๋ฆฌ์Šค ์ค‘์— ํ˜ธ์ถœ๋œ ๋ชจ๋“  ๋˜๋Š” ํ•ด๋‹น ํ›„ํฌ์™€ ํ•จ๊ป˜ ์‹คํ–‰ํ•  ์ „์ฒด ์ตœ์‹  ํŒŒ์ดํ”„๋ผ์ธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

    ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค์—๋Š” afterVersion ๊ฒŒ์‹œ ์ดํ›„์— ๊ฒŒ์‹œ ํ๋ฆ„์ด ์ตœ์‹  ๋ฒ„์ „๊ณผ ๋™์ผํ•œ ๋ฒ„์ „์ด ๋˜๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ๋„ v11์˜ ์ผ๋ถ€๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ ์‚ฌํ•œ ์ž๋™ํ™”๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ตœ์‹  ์›Œํฌํ”Œ๋กœ์™€ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ์นด๋‚˜๋ฆฌ์•„์— ๋Œ€ํ•ด ์ปค๋ฐ‹๋œ ๊ฒƒ์ด ์—†์œผ๋ฉฐ ์ด๋ฏธ ์นด๋‚˜๋ฆฌ์•„ ํ›„ํฌ๋ฅผ ํƒญํ•˜์—ฌ ๋” ๋งŽ์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์นด๋‚˜๋ฆฌ์•„ ์›Œํฌํ”Œ๋กœ๋Š” ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„, ์ž‘๋…„์˜ ๋ฏธ์นœ ์ผ๋กœ ๋ถˆํ–‰ํžˆ๋„์ด ๋ฌธ์ œ๋Š” ์ €์—๊ฒŒ์„œ ๋ฉ€์–ด์กŒ์Šต๋‹ˆ๋‹ค.

    ๋‹ค์–‘ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹๊ณผ ๊ด€๋ จํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์ด ํ•ด๊ฒฐํ•˜๋Š” ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ๊ณ ๋ คํ•˜๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ œ ์ƒ๊ฐ์—๋Š” 2๊ฐ€์ง€ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • (1) ์ด์ „ ๋ธŒ๋žœ์น˜์— ๋Œ€ํ•œ ์žฅ๊ธฐ ์ง€์›(์˜ˆ: ์ด์ „ ์ฃผ์š” ๋ฒ„์ „)
    • (2) ํŠน์ • ๋ฒ„์ „์— ๋Œ€ํ•œ ๋‹จ๊ธฐ ์ง€์›(์˜ˆ: ํ•ซํ”ฝ์Šค)

    ์ด ๋Œ€ํ™”๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ฐ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋Œ€ํ•ด ๊ณ ์œ ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ๊ฐ–๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

    (1) ๋ธŒ๋žœ์น˜/๋ฆด๋ฆฌ์Šค ํŠธ๋ž™์˜ ์žฅ๊ธฐ์ ์ธ ์ง€์›์„ ์œ„ํ•ด์„œ๋Š” versionBranches ๊ฐ€ ํ•ด๊ฒฐ๋  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ด๋„ˆ ๋ฒ„์ „์— ๋Œ€ํ•ด ์ด ๋™์ž‘์„ ํ™•์žฅํ•˜๋ ค๋Š” ๊ฒฝ์šฐ(๋ช‡๋ช‡์ด ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ) ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ํ–ฅ์ƒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    (2) ๋‹จ๊ธฐ ์ง€์›/ํ•ซํ”ฝ์Šค์˜ ๊ฒฝ์šฐ ์œ„์˜ ์Šค๋ ˆ๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ํ•ญ์ƒ semver์˜ ๋นŒ๋“œ ๋ถ€๋ถ„์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ซํ”ฝ์Šค ๋ฆด๋ฆฌ์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํ‘œ์ค€ ๋ฐฉ๋ฒ•์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ฝ”๋“œ ์†Œ์œ ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๊ณ  ๋ช‡ ๊ฐ€์ง€ ๋ณต์žกํ•œ ์ฝ”๋„ˆ ์ผ€์ด์Šค ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ๋Š” ์ผ๊ด€๋œ ๋™์ž‘์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ƒˆ๋กœ์šด ํ•ซํ”ฝ์Šค ๋ช…๋ น๊ณผ ํ›„ํฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋šœ๋ ทํ•œ ํ–ฅ์ƒ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์†Œ๋น„์ž๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์ตœ์‹  ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋„๋ก ๊ถŒ์žฅํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ด ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ๋น„๊ต์  ๋“œ๋ฌผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    edit _(๋‹จ๊ธฐ ์‚ฌ์šฉ ์‚ฌ๋ก€์˜ ๊ฒฝ์šฐ ์ž ์žฌ์ ์œผ๋กœ versionBranches ๊ตฌ์„ฑ์„ ํ™•์žฅํ•˜์—ฌ version- ๋ถ„๊ธฐ์— ๋Œ€ํ•œ semver ๋ ˆ์ด๋ธ”์„ ์ค€์ˆ˜ํ• ์ง€ ๋˜๋Š” ํ•ญ์ƒ ํ™œ์šฉํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜/ํ† ๊ธ€/ํ”Œ๋ž˜๊ทธ๋ฅผ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. semver์˜ ์ผ๋ถ€๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ํ•ด๋‹น ๋ถ„๊ธฐ์— ๋Œ€ํ•œ ๋ ˆ์ด๋ธ”์„ ๋ฌด์‹œ)_


    ์ด 2๊ฐ€์ง€ ์™ธ์— ๊ณ ๋ คํ•ด์•ผ ํ•  ๋‹ค๋ฅธ ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

    ๋‹ค๋ฅธ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

    (๋˜ํ•œ, ๋‚˜๋Š” ์—ฌ์ „ํžˆ ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ค‘ ์ผ๋ถ€๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ด์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ฑ„ํƒํ•˜๋Š” ๊ฒƒ์„ ์ฐจ๋‹จํ•˜๊ณ  ์‹ถ์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค)

    ๋˜ํ•œ ๋ถ„๊ธฐ ํŒจํ„ด์— ๋Œ€ํ•œ ์ ‘์„ ์  ์‚ฌ๊ณ :

    auto๋Š” ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•œ git ํƒœ๊ทธ(๋ฆด๋ฆฌ์Šค)๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์œ ํšจํ•œ git ref๊ฐ€ github์— ํ‘ธ์‹œ๋˜์—ˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋‹จ๊ธฐ ์ง€์›(์˜ˆ: ๋‹จ๊ธฐ ๋ถ„๊ธฐ/ํ•ซํ”ฝ์Šค ๋ถ„๊ธฐ) ์‚ฌ์šฉ ์‚ฌ๋ก€์˜ ๊ฒฝ์šฐ ๋ฆด๋ฆฌ์Šค/git ํƒœ๊ทธ๊ฐ€ ํ‘ธ์‹œ๋œ ํ›„ ์‚ฌ์šฉ์ž๊ฐ€ ๋‹จ๊ธฐ ๋ถ„๊ธฐ๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

    ์ฆ‰ (์˜ˆ์‹œ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๋ณด๋ ค๋ฉด ์—ฌ๊ธฐ๋ฅผ ํด๋ฆญํ•˜์‹ญ์‹œ์˜ค)

    • ๋‹ค์Œ ํƒœ๊ทธ๊ฐ€ ์žˆ๋Š” ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.
      <ul> <li>(tag: v1.3.0) (master)<br /> | </li> <li>(tag: v1.2.3)<br />

  • ํŠน์ • ์ปค๋ฐ‹(์˜ˆ: hotfix-1.2.3 )์—์„œ ์ˆ˜๋ช…์ด ์งง์€ ์ƒˆ ๋ถ„๊ธฐ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
    <ul> <li>(tag: v1.3.0) (master)<br /> | </li> <li>(tag: v1.2.3) (hotfix-1.2.3)<br />

  • ๋ณ€๊ฒฝ ์‚ฌํ•ญ ํ‘ธ์‹œ/PR์„ ์ˆ˜๋ช…์ด ์งง์€ ๋ถ„๊ธฐ์— ๋ณ‘ํ•ฉ
    <ul> <li>(tag: v1.3.0) (master)<br /> |<br /> | * (hotfix-1.2.3)<br /> | /</li> <li>(tag: v1.2.3)<br />

  • PR ๋ณ‘ํ•ฉ ์‹œ ์ƒˆ ๋ฆด๋ฆฌ์Šค/ํƒœ๊ทธ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    <ul> <li>(tag: v1.3.0) (master)<br /> |<br /> | * (tag: v1.2.3+1) (hotfix-1.2.3)<br /> | /</li> <li>(tag: v1.2.3)<br />

  • ์ƒˆ ํƒœ๊ทธ๋Š” github์—์„œ ์ถ”์ ํ•˜๋Š” ์œ ํšจํ•œ git ref์ด๋ฏ€๋กœ ์ฝ”๋“œ ์†Œ์œ ์ž๋Š” ์ˆ˜๋ช…์ด ์งง์€ ๋ถ„๊ธฐ๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๊ณ  ํƒœ๊ทธ( v1.2.3+1 )๋ฅผ ํ†ตํ•ด ์ƒˆ ์ปค๋ฐ‹/๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ๊ณ„์† ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    <ul> <li>(tag: v1.3.0) (master)<br /> |<br /> | * (tag: v1.2.3+1)<br /> | /</li> <li>(tag: v1.2.3)<br />

  • ์ˆ˜๋ช…์ด ์งง์€ ๋ถ„๊ธฐ์˜ ๊ฒฝ์šฐ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ๋•Œ ๋ถ„๊ธฐ ํŒจํ„ด ์œ„์— ๋ฌธ์„œํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋‹น์‹ ์ด ๋ธŒ๋žœ์น˜๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๊ณ  ์—ฌ์ „ํžˆ ์ƒˆ๋กœ์šด ์ปค๋ฐ‹์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ์ง€ ๋ชปํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์—์„œ ์ˆ˜๋ช…์ด ์งง์€ ๋ธŒ๋žœ์น˜์˜ ํ˜ผ๋ž€์„ ์ค„์ด๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ €๋Š” ์ตœ๊ทผ์— semver์˜ ๋นŒ๋“œ ๋ถ€๋ถ„์„ ํ™œ์šฉํ•˜์—ฌ ๋นŒ๋“œ๋ฅผ ๋งŒ๋“œ๋Š” ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ๋†€๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•˜๋Š” ๋™์•ˆ ์ตœ์‹  github ๋ฆด๋ฆฌ์Šค๊ฐ€ ๋ฐ˜๋“œ์‹œ ์ตœ์‹ /์ตœ๊ณ  ์‹œ๋งจํ‹ฑ ๋ฒ„์ „์ด ์•„๋‹Œ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

    ์˜ˆ๋ฅผ ๋“ค์–ด, https://github.com/intuit/auto/issues/1054#issuecomment -780286683์— ์–ธ๊ธ‰๋œ ์˜ˆ์—์„œ ์ตœ์‹  github ๋ฆด๋ฆฌ์Šค๋Š” ์ตœ๊ณ  ์ดํ›„์— ์ผ์‹œ์ ์œผ๋กœ ์ƒ์„ฑ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— v1.2.3+1 ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋ฒ„์ „ ์˜๋ฏธ ๋ฒ„์ „: v1.3.0 .

    ์ฝ”๋“œ ์ฐธ์กฐ getLatestRelease ๊ฝค ๋งŽ์€ ๋ถ€๋ถ„์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํŒŒ์ดํ”„๋ผ์ธ์ด from ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๋‹ค์–‘ํ•œ ๋™์ž‘์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰:

    • ๋ฆด๋ฆฌ์Šค ์ •๋ณด์— ํฌํ•จ๋œ ๋‚ด์šฉ
    • ์ด์ „ ๋ฒ„์ „์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.
    • HEAD ์ปค๋ฐ‹์—์„œ ์ตœ์‹  github ๋ฆด๋ฆฌ์Šค์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์ž ์žฌ์ ์œผ๋กœ ๊ธฐ๋Šฅ์ด ์ค‘๋‹จ๋จ

    ํ…Œ์ŠคํŠธํ•˜์ง€๋Š” ์•Š์•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ๊ธฐ์กด versionBranches ๋™์ž‘์„ ํ†ตํ•ด์„œ๋„ ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด git ํƒœ๊ทธ/github ๋ฆด๋ฆฌ์Šค๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•˜๋Š” ํ๋ฆ„์— ๋Œ€ํ•œ ์ฃผ์„๊ณผ ๊ด€๋ จ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

    ๋Œ€๋‹ตํ•  ๋งˆ์ง€๋ง‰ ์งˆ๋ฌธ์€ ์—ฌ์ „ํžˆ ํ•ซํ”ฝ์Šค ํ›„ํฌ ๋˜๋Š” ํ˜ธ์ถœ ๋ฒ„์ „+๊ฒŒ์‹œ ํ›„ํฌ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์˜ต์…˜ 2๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋ฒ„์ „+๊ฒŒ์‹œ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค(์ด๋Š” ์‹ค์ˆ˜๋กœ ์ตœ์‹  ํƒœ๊ทธ์— ๊ฒŒ์‹œํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค).


    ํ•ด๊ฒฐ ์ธก๋ฉด์—์„œ ์ด ๋ฌธ์ œ๋Š” getLatestRelease ๋…ผ๋ฆฌ๋ฅผ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋กœ ๋Œ€์ฒดํ•˜์—ฌ ํ›„ํฌ ๋ฆฌํŒฉํ† ๋ง๊ณผ ๋…๋ฆฝ์ ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • (1) listReleases ์‚ฌ์šฉํ•˜์—ฌ github ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ฐ€์ ธ์˜จ ๋‹ค์Œ ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๋†’์€ ๋ฆด๋ฆฌ์Šค ๋ฒ„์ „(ํ”„๋ฆฌ๋ฆด๋ฆฌ์ฆˆ ๋˜๋Š” ๋นŒ๋“œ ํŒŒํŠธ ์—†์Œ)์„ ์ฐพ๊ธฐ ์œ„ํ•ด ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.
    • (2) ๋˜๋Š” git ํƒœ๊ทธ๋ฅผ ๊ฐ€์ ธ์˜จ ๋‹ค์Œ ๋„๋‹ฌ ๊ฐ€๋Šฅํ•œ ๊ฐ€์žฅ ๋†’์€ ๋ฆด๋ฆฌ์Šค ๋ฒ„์ „(์‹œํ—˜ํŒ ๋˜๋Š” ๋นŒ๋“œ ๋ถ€ํ’ˆ ์—†์Œ)์„ ์ฐพ๊ธฐ ์œ„ํ•ด ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.

    ์—ฌ๊ธฐ์„œ ์ฐจ์ด์ ์€ auto ์ด ํ† ๋ก  https://github.com/intuit/auto/discussions/1867#discussioncomment -684192์™€ ๊ด€๋ จ๋œ github ๋ฆด๋ฆฌ์Šค ๋˜๋Š” git ํƒœ๊ทธ๋ฅผ ์ง„์‹ค์˜ ์†Œ์Šค๋กœ ๋ณด๋Š”์ง€ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค.

    ๋‚˜๋Š” ์ฒ˜์Œ์— (2) ์ชฝ์œผ๋กœ ๊ธฐ์šธ๊ณ ,

    • (a) ์šฐ๋ฆฌ๋Š” ๊ถ๊ทน์ ์œผ๋กœ git ref(ํƒœ๊ทธ) ๋’ค์— ์žˆ์œผ๋ฉฐ github ๋ฆด๋ฆฌ์Šค์˜ ๋‹ค๋ฅธ ์š”์†Œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.
    • (b) ๋„คํŠธ์›Œํฌ ํ˜ธ์ถœ ์ˆ˜๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค.

    @ํž™์Šคํ„ฐ์Šค๋ฌด๋”” ,
    getLatestRelease ๋กœ์ง์„ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ (1) github ๋ฆด๋ฆฌ์Šค ์‚ฌ์šฉ vs (2) git ํƒœ๊ทธ ์‚ฌ์šฉ vs (3) ๋‹ค๋ฅธ ๊ฒƒ์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ?

    ์˜ˆ, ๋‹ค์ค‘ ํŒจํ‚ค์ง€ ์ž๋™์ด ์ž‘๋™ํ•˜๋ ค๋ฉด ๋ชจ๋“  ์ตœ์‹  GitHub ๋ฆด๋ฆฌ์Šค ํ•ญ๋ชฉ์„ ํƒœ๊ทธ๋กœ ๋ฆฌํŒฉํ„ฐ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 2 ๋Š” ์ด ์ž‘์—…์„ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

    ์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
    0 / 5 - 0 ๋“ฑ๊ธ‰