๊ธฐ๋ฅ ์์ฒญ์ด ๋ฌธ์ ์ ๊ด๋ จ๋์ด ์์ต๋๊น?
๋๋ ์ค๋๋ ๋ฏธ์ฑ๋ ์๋ฅผ ์ํ ํจ์น๋ฅผ ์ถ์ํ ์ ์๊ธฐ๋ฅผ ์ํฉ๋๋ค
์ํ๋ ์๋ฃจ์ ์ค๋ช
@hipstersmoothie
์ด๊ฒ์ด ์ด๋ป๊ฒ ๊ตฌํ๋๋์ง / ์ค์ ๋ก ์ด๋ป๊ฒ ๋ณด์ผ์ง์ ๋ํ ์ธ๋ถ ์ ๋ณด๊ฐ ์์ต๋๊น?
๋ํ merge into a tag
์๋ฏธํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค... ์ ์ฌ์ ์ผ๋ก ๋ช
ํํ ํด์ฃผ์ค ์ ์์ต๋๊น? ๋ด ์ดํด๋ ์ง์ ์ ๋์์ผ๋ก ํ๋ PR๋ง ๋ง๋ค ์ ์๋ค๋ ๊ฒ์
๋๋ค.
์๋์, ๋๋ ๋ฌธ์ ์ ๋ํด ๋๋ฌด ๋ง์ด ์๊ฐํ์ง ์์์ต๋๋ค.
๋ํ ํ๊ทธ์ ๋ณํฉ์ด ์๋ฏธํ๋ ๋ฐ๋ฅผ ์ดํดํ๊ณ ์๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
UI๋ฅผ ํตํด ํ๊ทธ๋ก ๋ณํฉํ ์ ์๋ค๊ณ ๋ฏฟ๊ฒ ๋์์ง๋ง ์ถ๊ฐ ๊ฒํ ๋ฅผ ํตํด ์ด๊ฒ์ ๋ถ๊ฐ๋ฅํ ๊ฒ ๊ฐ์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ํ ์ ์๋ค๋ฉด ์ด๊ฒ์ด ๊ฐ๋ฅํ๊ฒ ๋ ๊ฒ์ ๋๋ค.
์กฐ๊ธ ์๊ฐํด๋ณด๋ฉด ์ด๋ฐ ์๊ฐ์ด ๋ค๋๊ตฐ์.
์ข์, 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 />
<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 />
<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
์ ๋ช ๊ฐ์ง ์ฌํญ์ด ํ์ํ ๊ฒ์
๋๋ค.
auto hotfix
: ์คํ ์ ๋ถ๊ธฐ์ ์ต์ ํ๊ทธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์ ํซํฝ์ค ๋ฒ์ ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ๋ฆด๋ฆฌ์คํฉ๋๋ค.auto shipit
์๋ก์ด ๊ธฐ๋ฅ: hotfixBranch
์ ์๋์ง ๊ฐ์งํ๊ณ auto hotfix
auto hotfix
์ด ์๋ํ๋ ๋ฐฉ์์ ๊ดํด์๋ ๋ค์ ์ค ํ๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
next
or canary
=> ํซํฝ์ค๊ฐ ์ง์๋๋์ง ์ฌ๋ถ๋ฅผ ํ๋ฌ๊ทธ์ธ์์ ์ ์ดํ ์ ์๋ ์๋ก์ด ํํฌversion
๋ฐ publish
ํํฌ๋ฅผ ์ฌ์ฌ์ฉํ๊ณ build
semver๋ฅผ ํด์ ํ ์ ์๋๋ก ํฉ๋๋ค.๋ ๊ฐ์ง ์ต์
์ค version
๋ฐ pubish
ํํฌ๋ฅผ ์๋ก์ด ๋ฐฉ์์ผ๋ก ํธ์ถํ๋ ๊ฒ์ ํ๊ธฐ์ ์ธ ๋ณ๊ฒฝ์ผ๋ก ๊ฐ์ฃผ๋ ์ ์๊ธฐ ๋๋ฌธ์ 1
์ชฝ์ผ๋ก ๊ธฐ์ธ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋จ์ ์ ์ผ๋ถ ํํฌ๊ฐ afterVersion
๋ก ํธ์ถ๋์ง ์์ ์ผ๋ถ ํ๋ฌ๊ทธ์ธ์ด ์๋ํ์ง ์๋๋ค๋ ๊ฒ์
๋๋ค. ์ด๊ฒ์ ํ์ฌ canary
๋ฐ next
๋ชจ๋์ ๋ํ ๋ฌธ์ ์
๋๋ค. ๊ทธ๋ค์ ๊ทธ ํํฌ๋ฅผ ๋ถ๋ฅด์ง ์๊ธฐ ๋๋ฌธ์. ๋ฐ๋ผ์ ์ฆ์ ๊ฑฑ์ ํ ํ์๊ฐ ์๋ ๊ฒ์
๋๋ค.
์ด๊ฒ์ ์ถ๊ฐํ๋ ๋ฐ ๊ด์ฌ์ด ์์ต๋๊น?
์์ด๋์ด๋ ๋ง์์ ๋ค์ง๋ง ์ค์ ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ๊ทธ๋ ๊ฒ ์ฌ๋ฏธ์์ง๋ ์์ ๊ฒ ๊ฐ์ต๋๋ค. auto๊ฐ ๋ง์ด ๋ฆด๋ฆฌ์ค๋๊ธฐ ๋๋ฌธ์ ๋ฏธ์น ์์ ๋ถ๊ธฐ๋ก ๋๋ ๊ฒ์ ๋๋ค.
์ฃ์กํฉ๋๋ค. ๋ถ๊ธฐ ์ ๋์ฌ ๊ตฌ์ฑ์ด ์๋ค๋ ์ ์์ ์ด์ ์ฃผ์ ์ง์๊ณผ ์ ์ฌํ๋ค๋ ๊ฒ์ ์๋ฏธํ์ต๋๋ค. ๋ถ๊ธฐ๋ฅผ ์๋์ผ๋ก ์์ฑํ๋ฉด ํนํ ์์ฃผ ๋ฆด๋ฆฌ์คํ ๋ ๋๋ฌด ๋ง์ ์์์ด ๋ฐ์ํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ๐
์ด๊ฒ์ ๋ํด ์๊ฐํด๋ณด๋ฉด, ์ด ๊ธฐ๋ฅ์ ์์ ํ ๊ตฌ์ฒดํ๋๊ธฐ ์ํด auto์ ๋ช ๊ฐ์ง๊ฐ ํ์ํ ๊ฒ์ ๋๋ค.
- ์ ๋ช ๋ น ์๋ ํซํฝ์ค: ์คํ ์ ๋ถ๊ธฐ์ ์ต์ ํ๊ทธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์ ํซํฝ์ค ๋ฒ์ ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ๋ฆด๋ฆฌ์คํฉ๋๋ค.
- auto shipit์ ์๋ก์ด ๊ธฐ๋ฅ: hotfixBranch์ ์๋์ง ๊ฐ์งํ๊ณ ์๋ ํซํฝ์ค๋ฅผ ์คํํฉ๋๋ค.
๋ค. ๋๋ ๊ทธ๊ฒ์ด ํ์ํ ๋ณ๊ฒฝ ์ฌํญ์ ํฌ๊ฒ ์์ฝ ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์๋ ํซํฝ์ค๊ฐ ์๋ํ๋ ๋ฐฉ์์ ๊ดํด์๋ ๋ค์ ์ค ํ๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๋ค์ ๋๋ ์นด๋๋ฆฌ์์ ๋ฐฉ๋ฒ => ํซํฝ์ค๊ฐ ์ง์๋๋์ง ์ฌ๋ถ๋ฅผ ํ๋ฌ๊ทธ์ธ์ด ๋ฆด๋ฆฌ์คํ๋ ๋ฐฉ๋ฒ์ ์ ์ดํ ์ ์๋ ์๋ก์ด ํํฌ
- ๋ฒ์ ์ ์ฌ์ฌ์ฉํ๊ณ ํํฌ๋ฅผ ๊ฒ์ํ๊ณ ๋น๋ 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
์์ ์ด ํ์ธ๋ ํต๊ณผํด์ผ ํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ์ฌ๊ธฐ๋ก ์ด๋ํ๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฆด๋ฆฌ์ค ๊ณ์ฐ์ ์์ํ ์์น๋ฅผ ์ฌ์ ์ํฉ๋๋ค.
๋ฉ์ด์ ๊ฐ ์๋ ์ค๋๋ ๋ง์ด๋/ํจ์น์ ๋ํด ๊ณ ๋ คํด์ผ ํ ํ ๊ฐ์ง ๊ณ ๋ ค ์ฌํญ์ ์ ์ฌ์ ์ธ ๋ฒ์ ๋ถ์ผ์น์ ๋๋ค. ๋ฏธ์ฑ๋ ์์ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ๋ํ์ง๋ง
* (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
๋ช
๋ น์ด ํ์ํ์ง ์์ ์ ์์ต๋๋ค. ๋์ ๊ณ ์ ํ ๋ฒ์ ๋ฒํธ๋ฅผ ์๋ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ๋ํ ์ ํจ์ฑ ๊ฒ์ฌ๊ฐ ํ์ํ ์ ์์ต๋๋ค.
๊ท์น :
@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
.
๋๋ ๋งค์ฐ ๊ด์ฌ์ด์์ ๊ฒ์ ๋๋ค!
๋ชจ๋๋ค ์๋ ! ๋๋ ์ด๊ฒ์ ๊ธฐ์ฌํ๋ ๋ฐ ๊ด์ฌ์ด ์์ต๋๋ค. ๋ด ์ ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
auto
๋ ๋ชจ๋ version-*
๋ถ๊ธฐ๋ฅผ ์กด์คํ๋ ค๊ณ ์๋ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ถ๊ธฐ์์ version-1.1.4
๋ก ํจ์น๋ฅผ ๋ณํฉํ๋ฉด 1.1.5
๋ฒ์ ์ ๋ฆด๋ฆฌ์ค๊ฐ ์์ฑ๋ฉ๋๋ค. ํด๋น ๋ฒ์ ์ด ์ด๋ฏธ ์์ฑ๋ ๊ฒฝ์ฐ NPM ๋ฆด๋ฆฌ์ค ๋๋ Git ํ๊ทธ๊ฐ ์คํจํ์ง๋ง ์ด๋ ์ ์์ ์ด๊ณ ์์๋๋ ์ค๋ฅ ์ฌ๋ก์
๋๋ค.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) ๋ธ๋์น/๋ฆด๋ฆฌ์ค ํธ๋์ ์ฅ๊ธฐ์ ์ธ ์ง์์ ์ํด์๋ 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 />
<ul>
<li>(tag: v1.3.0) (master)<br />
|<br />
| * (hotfix-1.2.3)<br />
| /</li>
<li>(tag: v1.2.3)<br />
<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 />
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
๋งค๊ฐ๋ณ์๋ฅผ ๋ช
์์ ์ผ๋ก ์ค์ ํ์ง ์์ผ๋ฉด ๋ค์ํ ๋์์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์ฆ:
ํ
์คํธํ์ง๋ ์์์ง๋ง ์ด๋ฌํ ์ ํ์ ์๋๋ฆฌ์ค๋ ๊ธฐ์กด versionBranches
๋์์ ํตํด์๋ ๋๋ฌํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋๋ ์ด๊ฒ์ด git ํ๊ทธ/github ๋ฆด๋ฆฌ์ค๋ฅผ ์์ฑํด์ผ ํ๋ ํ๋ฆ์ ๋ํ ์ฃผ์๊ณผ ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋๋ตํ ๋ง์ง๋ง ์ง๋ฌธ์ ์ฌ์ ํ ํซํฝ์ค ํํฌ ๋๋ ํธ์ถ ๋ฒ์ +๊ฒ์ ํํฌ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ต์ 2๋ฅผ ์ํํ๊ณ ๋ฒ์ +๊ฒ์๋ฅผ ํธ์ถํฉ๋๋ค(์ด๋ ์ค์๋ก ์ต์ ํ๊ทธ์ ๊ฒ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค).
ํด๊ฒฐ ์ธก๋ฉด์์ ์ด ๋ฌธ์ ๋ getLatestRelease
๋
ผ๋ฆฌ๋ฅผ ๋ค์ ์ค ํ๋๋ก ๋์ฒดํ์ฌ ํํฌ ๋ฆฌํฉํ ๋ง๊ณผ ๋
๋ฆฝ์ ์ผ๋ก ํด๊ฒฐํ ์ ์์ต๋๋ค.
listReleases
์ฌ์ฉํ์ฌ github ๋ฆด๋ฆฌ์ค๋ฅผ ๊ฐ์ ธ์จ ๋ค์ ๋๋ฌํ ์ ์๋ ๊ฐ์ฅ ๋์ ๋ฆด๋ฆฌ์ค ๋ฒ์ (ํ๋ฆฌ๋ฆด๋ฆฌ์ฆ ๋๋ ๋น๋ ํํธ ์์)์ ์ฐพ๊ธฐ ์ํด ์ ๋ ฌํฉ๋๋ค.์ฌ๊ธฐ์ ์ฐจ์ด์ ์ auto
์ด ํ ๋ก https://github.com/intuit/auto/discussions/1867#discussioncomment -684192์ ๊ด๋ จ๋ github ๋ฆด๋ฆฌ์ค ๋๋ git ํ๊ทธ๋ฅผ ์ง์ค์ ์์ค๋ก ๋ณด๋์ง ์ฌ๋ถ์
๋๋ค.
๋๋ ์ฒ์์ (2) ์ชฝ์ผ๋ก ๊ธฐ์ธ๊ณ ,
@ํ์คํฐ์ค๋ฌด๋ ,
getLatestRelease
๋ก์ง์ ์์ ํด์ผ ํ๋ ๊ฒฝ์ฐ (1) github ๋ฆด๋ฆฌ์ค ์ฌ์ฉ vs (2) git ํ๊ทธ ์ฌ์ฉ vs (3) ๋ค๋ฅธ ๊ฒ์ ๋ํด ์ด๋ป๊ฒ ์๊ฐํ์ญ๋๊น?
์, ๋ค์ค ํจํค์ง ์๋์ด ์๋ํ๋ ค๋ฉด ๋ชจ๋ ์ต์ GitHub ๋ฆด๋ฆฌ์ค ํญ๋ชฉ์ ํ๊ทธ๋ก ๋ฆฌํฉํฐ๋งํด์ผ ํฉ๋๋ค. 2
๋ ์ด ์์
์ ์๋ฃํ๊ธฐ ์ํด ์ฌ์ฉํ ์ ์๋ ์ต์
์
๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋๋ ๋งค์ฐ ๊ด์ฌ์ด์์ ๊ฒ์ ๋๋ค!