Auto: [RFC] ๋ ˆ์ด๋ธ” ๊ตฌ์„ฑ ๊ฐ„์†Œํ™”

์— ๋งŒ๋“  2019๋…„ 07์›” 06์ผ  ยท  17์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: intuit/auto

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

autobot ์„ ์ž‘์—…ํ•˜๋Š” ๊ณผ์ •์—์„œ ์ €๋Š” auto์˜ ๋ ˆ์ด๋ธ” ๊ตฌ์„ฑ ์„ค์ •์„ ์ฒ˜๋ฆฌ/๋ถ„์„/grokingํ•˜๋Š” ๋ฐ ์–ด๋ ค์›€์„ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค.

auto๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์„ ๋•Œ์—๋„ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋™์ž‘์„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ตฌ์„ฑ์— ๋งคํ•‘ํ•˜๋Š” ๊ฒƒ์ด ์•ฝ๊ฐ„ ๊นŒ๋‹ค๋กœ์› ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜์—์„œ ํ•„์š”ํ•œ ๊ฒƒ๋ณด๋‹ค ๋” ๋ณต์žกํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ๋™์ž‘์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ ˆ์ด๋ธ” ์ •์˜๋Š” ๋ฌธ์ž์—ด ๋˜๋Š” ๊ฐœ์ฒด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์†๊ธฐ์—๋Š” ๋„์›€์ด ๋˜์ง€๋งŒ ์ •์‹ ์ ์œผ๋กœ ๋งคํ•‘(๋ฐ ๋„๊ตฌ ์ œ์ž‘)ํ•˜๊ธฐ๊ฐ€ ์กฐ๊ธˆ ๋” ์–ด๋ ค์›Œ์ง‘๋‹ˆ๋‹ค. ๊ฐ์ฒด๋Š” ์ด๋ฆ„์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค(์ •์˜๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ํ‚ค์—์„œ ๊ฐ€์ ธ์˜ด). ์ด๊ฒƒ์€ ๋„๊ตฌ๋ฅผ ์กฐ๊ธˆ ๋” ์–ด๋ ต๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • labels ๋ฐ skipReleaseLabels ์žˆ์Šต๋‹ˆ๋‹ค. skipReleaseLabels ์—๋„ ์žˆ๋Š” labels ์˜ ๋ ˆ์ด๋ธ”์€ ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฆด๋ฆฌ์Šค๋ฅผ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š” ๋ฌธ์„œ ๋ ˆ์ด๋ธ”์„ ์›ํ•˜๋Š” ๊ฒฝ์šฐ ๋‘ ์œ„์น˜์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ skipReleaseLabels ์„น์…˜์— major , minor ๋˜๋Š” patch ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ฉ๋‹ˆ๊นŒ? ๊ทธ๋ฆฌ๊ณ  skipReleaseLabels ์™€ ๋‹ค๋ฅธ skip-release ๋ ˆ์ด๋ธ”์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • Changelog ์ œ๋ชฉ์€ ๋ ˆ์ด๋ธ”์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์šฐ์„  ์ˆœ์œ„๊ฐ€ ์–ด๋–ค ์ˆœ์„œ์ธ์ง€ ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. minor ๋ฐ documentation ๋ ˆ์ด๋ธ”์ด ๋ชจ๋‘ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ์–ด๋–ค ๋ณ€๊ฒฝ ๋กœ๊ทธ ์ œ๋ชฉ์ด ์šฐ์„  ์ ์šฉ๋ฉ๋‹ˆ๊นŒ?

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

๋ ˆ์ด๋ธ” ์ •์˜๋ฅผ ํฌ๊ฒŒ ๋‹จ์ˆœํ™”ํ•˜๊ณ  ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ๋ฌธ์„œํ™”ํ•  ๊ฒƒ์„ ์ œ์•ˆํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ•˜๋‚˜์˜ ์ œ์•ˆ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

{
  labels: [
    {
      name: 'Breaking change',
      releaseType: 'major',
      description: 'A non-backwards compatible change'
      changelogTitle: 'Breaking changes',
      color: '#FFF000'
    },
    {
      name: 'Feature',
      releaseType: 'minor',
      description: 'A new capability'
      changelogTitle: 'Improvements',
      color: '#FAA00A'
    }, 
    {
      name: 'Bug fix',
      releaseType: 'patch',
      description: 'A bug fix'
      changelogTitle: 'Bug fixes',
      color: '#FAA00A'
    },
    {
      name: 'Skip Release',
      releaseType: 'skip',
      description: "Ensures a release doesn't happen",
      // changelog title not valid for skip releases
      // changelogTitle: '',
      color: '#FAA00A'
    },
    {
      name: 'Documentation',
      releaseType: 'none',
      description: 'Used to denote documentation changes',
      changelogTitle: 'Documentation updates',
      color: '#C8C8C8'
    }
  ]
}

๋…ผ๋ฆฌ

  • name ๋ฐ releaseType ๋Š” ํ•„์ˆ˜ ํ•ญ๋ชฉ์ž…๋‹ˆ๋‹ค.
  • releaseType ๋Š” major | minor | patch | skip | none ๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค. semver | skip | none ์„ธ ๊ฐ€์ง€ ๋ฒ”์ฃผ๋กœ ๋” ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ semver ๋ ˆ์ด๋ธ”๋งŒ ์กด์žฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • none ๊ฐ€ ๋‹ฌ๋ฆฌ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ํ•œ semver ๋ ˆ์ด๋ธ”์ด _๋ฐ˜๋“œ์‹œ_ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • skip ๋ ˆ์ด๋ธ”์€ semver ๋ ˆ์ด๋ธ”๊ณผ ์Œ์„ ์ด๋ฃจ๋Š” ๊ฒฝ์šฐ์—๋งŒ ์œ ํšจํ•˜๋ฉฐ ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • none ์œ ํ˜•์€ ์ž์ฒด์ ์œผ๋กœ ๋ฆด๋ฆฌ์Šค๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์ง€๋งŒ ์ถ”๊ฐ€ ๋ณ€๊ฒฝ ๋กœ๊ทธ ํ•ญ๋ชฉ์„ ํฌํ•จํ•˜๊ธฐ ์œ„ํ•ด semver ๋ ˆ์ด๋ธ”๊ณผ ํ•จ๊ป˜ ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • none ๋ฆด๋ฆฌ์Šค๋Š” semver ๋ ˆ์ด๋ธ”์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ฑด๋„ˆ๋›ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์—ฌ๋Ÿฌ none ๋ ˆ์ด๋ธ”์„ ํฌํ•จํ•˜์—ฌ ๋ณ€๊ฒฝ ๋กœ๊ทธ์˜ ๋‹ค๋ฅธ ์„น์…˜ ์•„๋ž˜์— PR์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด ์ œ์•ˆ์—๋Š” ์ž„์˜์˜ ๋ ˆ์ด๋ธ”์ด ์—†์Šต๋‹ˆ๋‹ค. ํฌํ•จ๋œ ๋ชจ๋“  ๋ ˆ์ด๋ธ”์€ ๋ฆด๋ฆฌ์Šค์— ์•ฝ๊ฐ„์˜ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

๊ณ ๋ คํ•œ ๋Œ€์•ˆ์„ ๊ธฐ์ˆ ํ•˜์‹ญ์‹œ์˜ค

์ด๊ฒƒ์€ ๋ถ„๋ช…ํžˆ ์—ฌ์ „ํžˆ ๋ณต์žกํ•˜๊ณ  ํ™•์‹คํžˆ ๋” ์žฅํ™ฉํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์•ˆ(ํ˜„์žฌ ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ๊ณผ ์•ฝ๊ฐ„์˜ ํƒ€ํ˜‘)์€ semver ๋ ˆ์ด๋ธ”์„ ๋‹ค๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

{
  labels: {
    major: "Version: Major",
    minor: {
      name: "Version: Minor",
      changelogTitle: "Bug fixes"
    },
    patch: "Version: Patch",
    other: [
      {
        name: 'Skip release',
        skipRelease: true
      },
      {
        name: 'Documentation',
        changelogTitle: 'Documentation updates'
      }
    ]
  }
}

์ด ๋ฒ„์ „์—์„œ major , minor ๋ฐ patch ๋Š” ํ˜„์žฌ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•œ API๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๋ณธ์งˆ์ ์œผ๋กœ ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ๋กœ ์ทจ๊ธ‰๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  ๋ ˆ์ด๋ธ”์€ ์ด other ๋ฒ„ํ‚ท(๋” ๋‚˜์€ ์ด๋ฆ„์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ)์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

์ด ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ:

  • ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ semver ๋งŒ ์กด์žฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • skipRelease: true ๋Š” other ๋ ˆ์ด๋ธ”์— ํฌํ•จ๋˜์–ด ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • changelogTitle ๋Š” other ๋ ˆ์ด๋ธ”์— ํฌํ•จ๋˜์–ด ๋ณ€๊ฒฝ ๋กœ๊ทธ ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ์ด๊ฒƒ์€ ๋‹ค๋ฅธ ํ•ญ๋ชฉ๊ณผ ์ค‘๋ณต๋ฉ๋‹ˆ๋‹ค).
  • skipRelease ๋˜๋Š” changelogTitle ๊ฐ€ ์—†์œผ๋ฉด ๋ ˆ์ด๋ธ”์ด no-op ์ž„์˜ ๋ ˆ์ด๋ธ”์ด ๋ฉ๋‹ˆ๋‹ค(์˜ค๋Š˜๋‚  ์ž„์˜ ๋ ˆ์ด๋ธ” ์ง€์›์„ ์œ ์ง€ํ•จ).

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

enhancement major released

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

์ถ”๊ฐ€ labels ๋˜๋Š” skipReleaseLabels ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ƒˆ ํ˜•์‹์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

https://intuit.github.io/auto/pages/autorc.html#label - ์‚ฌ์šฉ์ž ์ •์˜

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

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

์ด ๋ฐฉ๋ฒ•์€ ๋Œ€๋ถ€๋ถ„์˜ ์†๊ธฐ๋ฅผ ์ œ๊ฑฐํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ ๋ช‡ ๊ฐ€์ง€๋ฅผ ์ง€์›ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ์€ ๊ธฐ๋ณธ major ๋ ˆ์ด๋ธ”์„ ์žฌ์ •์˜ํ•˜์ง€๋งŒ ์„ค๋ช… ๋ฐ changelogTitle๋„ ์ƒ์†ํ•ฉ๋‹ˆ๋‹ค.

{
  labels: [
    {
      name: 'Breaking change',
      releaseType: 'major'
    }
  ]
}

๋˜๋Š” ์ œ๋ชฉ ์ˆ˜์ •

{
  labels: [
    {
      releaseType: 'major',
      changelogTitle: 'Super Big Changes'
    }
  ]
}

skip ๋Š” ๋ฆด๋ฆฌ์Šค๋ฅผ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. none ๋Š” ๋ ˆ์ด๋ธ”์ด ๋ฆด๋ฆฌ์Šค์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค... ๊ทธ๋ž˜์„œ ๋‹ค๋ฅธ ๋ ˆ์ด๋ธ”์˜ ์กด์žฌ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋ฆด๋ฆฌ์Šค๋  ์ˆ˜๋„ ์žˆ๊ณ  ๋ฆด๋ฆฌ์Šค๋˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋” ๋‚˜์€ ์ด๋ฆ„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๊ท€ํ•˜์˜ ์ œ์•ˆ์— ๋”ฐ๋ผ ๋ ˆ์ด๋ธ”์—๋Š” releaseType ๊ฐ€ ๋ฌด์—‡์ธ์ง€์— ๋”ฐ๋ผ ๊ธฐ๋ณธ ํด๋ฐฑ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์˜๋ฏธ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๊ท€ํ•˜์˜ ์ œ์•ˆ์— ๋”ฐ๋ผ ๋ ˆ์ด๋ธ”์—๋Š” ์–ด๋–ค releaseType์ด ์žˆ๋Š”์ง€์— ๋”ฐ๋ผ ๊ธฐ๋ณธ ํด๋ฐฑ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์˜๋ฏธ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์‘

@zephraph ๋” ๋‚˜์€ ์ด๋ฆ„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋Œ€๋‹จํ•œ ๊ฒƒ ๊ฐ™์•„์š”. "๋ฆด๋ฆฌ์Šค ํ”„๋กœ์„ธ์Šค์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ฌด ๊ฒƒ๋„ ์•„๋‹™๋‹ˆ๋‹ค(์˜ˆ: ์žก์ผ/์ข…์†์„ฑ/๋ฌด์—‡์ด๋“ )"๋ผ๊ณ  ๋งํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ์ข‹์€ ๊ฒƒ์€ ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์ด ์˜๋ฏธ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹ญ์‹œ์˜ค.

๋„ค, ์™„์ „ํžˆ.

์ œ์•ˆ์€ ๊ต‰์žฅํ•ฉ๋‹ˆ๋‹ค.
name ๋ฐ chagelogTitle ๋‘˜ ๋‹ค releaseType ๊ธฐ๋ฐ˜์˜ ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ง€๊ธˆ ์ด๊ฒƒ์„ ์œ„ํ•ด PR์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋‹ค์Œ์„ ๋‹ค๋ฃจ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  1. Changelog ์ œ๋ชฉ์€ ๋ ˆ์ด๋ธ”์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์šฐ์„  ์ˆœ์œ„๊ฐ€ ์–ด๋–ค ์ˆœ์„œ์ธ์ง€ ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ถ€ ๋ฐ ๋ฌธ์„œ ๋ ˆ์ด๋ธ”์ด ๋ชจ๋‘ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ์–ด๋–ค ๋ณ€๊ฒฝ ๋กœ๊ทธ ์ œ๋ชฉ์ด ์šฐ์„ ํ•ฉ๋‹ˆ๊นŒ?

  2. Logic ์—ฌ๊ธฐ์— ์„ค๋ช…๋œ ๋Œ€๋ถ€๋ถ„์˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋Š” ์•„๋งˆ๋„ autobot์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ž๋™ ์ž์ฒด๊ฐ€ ์ด๊ฒƒ์„ ๊ฐ•์ œํ•ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  3. (1 ๊ด€๋ จ) > ๋ณ€๊ฒฝ ๋กœ๊ทธ์˜ ๋‹ค๋ฅธ ์„น์…˜ ์•„๋ž˜์— PR์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์—†์Œ ๋ ˆ์ด๋ธ”์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ๋‹ค. ์–ด๋–ป๊ฒŒ _"๊ฑด๋„ˆ๋›ฐ๊ธฐ ๋ ˆ์ด๋ธ”์€ semver ๋ ˆ์ด๋ธ”๊ณผ ์ง์„ ์ด๋ฃฐ ๋•Œ๋งŒ ์œ ํšจํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด no-op์ž…๋‹ˆ๋‹ค."_ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? deps ๋ ˆ์ด๋ธ” ๋˜๋Š” infra ๊ฒฝ์šฐ ์œ ํ˜•์€ skip ์ด๊ณ  ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ฑด๋„ˆ๋›ฐ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์™œ semver ๋ ˆ์ด๋ธ”๋„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ๊ทธ๋Ÿฌ๋ฉด none ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์€๋ฐ, ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด semver ๋ ˆ์ด๋ธ”๋„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ... WAT?! :๋””

ํ˜„์žฌ ๋‚˜๋Š”

    "skipReleaseLabels": [
      "documentation",
      "skip-release",
      "devDeps",
      "infra"
    ],
    "labels": {
      "deps": {
        "name": "deps",
        "title": "๐Ÿ”ฉ Dependency Updates"
      },
      "devDeps": {
        "name": "devDeps",
        "title": "๐Ÿ”ฉ Dependency Updates"
      },
      "documentation": {
        "name": "documentation",
        "title": "๐Ÿ—’๏ธ Documentation"
      },
      "core": {
        "name": "core",
        "title": "๐Ÿ“ฆ Core"
      }
    },

๋ฌธ์„œ, skip-release, devDeps ๋ฐ ์ธํ”„๋ผ๋ฅผ ๊ฑด๋„ˆ๋›ฐ๊ณ  ์‹ถ์ง€๋งŒ ์˜ˆ๋ฅผ ๋“ค์–ด deps ๋Š” ๊ฑด๋„ˆ๋›ฐ๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” renovate๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ  fix(deps) ์— ํŒจ์น˜ ๋ฆด๋ฆฌ์Šค๋ฅผ ์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ์–ด์จŒ๋“  onlyPublishWithReleaseLabel ํ™œ์„ฑํ™”ํ–ˆ์œผ๋ฏ€๋กœ ํฐ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ํ•œ ๊ฐ€์ง€ ๋”, next dist-tag์— changelogTitle ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? PR์— ๋‚˜์™€ ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์„ค๋ช…์„ ์š”์ฒญํ•˜๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค.

@tunnckoCore ์ƒˆ๋กœ์šด ๋ฐฉ์‹์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณด์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

{
  "labels": [
    {
      "name": "deps",
      "title": "๐Ÿ”ฉ Dependency Updates",
      // when deps are merged create a patch release
      "releaseType": "patch"
    },
    {
      "name": "devDeps",
      "title": "๐Ÿ”ฉ Dependency Updates",
      "releaseType": "none"
    },
    {
      "name": "documentation",
      "title": "๐Ÿ—’๏ธ Documentation",
      "releaseType": "none"
    },
    {
      "name": "core",
      "title": "๐Ÿ“ฆ Core",
      "releaseType": "patch"
    }
  ]
}

none ์€ ํšจ๊ณผ์ ์œผ๋กœ skip ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ devDep ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฆด๋ฆฌ์Šคํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ patch ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฆด๋ฆฌ์Šค๊ฐ€ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ skip ๋ ˆ์ด๋ธ”์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๊ณผ ๋‹ค๋ฅธ๋ฐ, ์ด๋Š” ๋‹ค๋ฅธ ๋ ˆ์ด๋ธ”์— ๊ด€๊ณ„์—†์ด ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค.

๋ณ€๊ฒฝ ๋กœ๊ทธ ์ œ๋ชฉ

๋‚˜๋Š” ์ด๊ฒƒ๋„ ํ•˜์ง€ ์•Š์•˜๋‹ค. ์•„์ง๊นŒ์ง€๋Š” ์ œ๋ชฉ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ๋ฆฌํŒฉํ„ฐ๋ง์„ ์œ„ํ•œ ๋‚ด PR์— ์ถ”๊ฐ€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค (์•„์ง ๋‹ค์Œ์—๋Š” ์—†์Šต๋‹ˆ๋‹ค. changelogTitle ํ›„์— ๊ทธ๊ฒƒ์„ ์–ป์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค)

์˜ค๋ฅธ์ชฝ. ์ข‹์•„์š”, ์ข‹์•„์š” :)

๋ฌธ์ œ๋Š” v8.0.0-next.8์—์„œ ๋ฆด๋ฆฌ์Šค๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ์ด์•ผ? prerelease ๊ฐ€ next ์— ๊ฒŒ์‹œ๋œ ๊ฒƒ

ํŽธ์ง‘: ๊ทธ๋ฆฌ๊ณ  title/changelogTitle ๋ˆ„๋ฝ

@tunnckoCore ๋ฆด๋ฆฌ์Šคํ•˜๋Š” ๋ฒ„์ „์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ ๋กœ๊ทธ ์ œ๋ชฉ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์„ฑ์—์„œ ์ถ”๊ฐ€ํ•˜๊ณ  semver์— ๋Œ€ํ•œ ๊ฒƒ์ด ์•„๋‹Œ ๋‹ค๋ฅธ "์‚ฌ์šฉ์ž ์ •์˜ ๋ ˆ์ด๋ธ”"์— ๋Œ€ํ•ด ๋ฌป๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ๋ชฉ์ด ์—†๋Š” infra ๋ ˆ์ด๋ธ”์ด ์žˆ์œผ๋ฉด ์ถ”๊ฐ€๋˜์ง€ ์•Š๊ฒ ์ฃ ? ๊ทธ๋ฆฌ๊ณ  devDeps์™€ ๊ฐ™์ด ์ œ๋ชฉ์ด ์žˆ์œผ๋ฉด ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.


:rocket: v8.0.0์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฆด๋ฆฌ์Šค๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@adierkens , ์ด ๋ฌธ์ œ๊ฐ€ v8 Major rev์˜ ์ฃผ์š” ์›๋™๋ ฅ์ธ ๊ฒƒ ๊ฐ™์•„์„œ ์—ฌ๊ธฐ์— ์งˆ๋ฌธ์„

์ถ”๊ฐ€ labels ๋˜๋Š” skipReleaseLabels ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ƒˆ ํ˜•์‹์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

https://intuit.github.io/auto/pages/autorc.html#label - ์‚ฌ์šฉ์ž ์ •์˜

์šฐํ›—! :tada: ์ฃผ๋ง์— ํ•ด๋ด์•ผ๊ฒ ์Šต๋‹ˆ๋‹ค.

๋จผ์ € v8์˜ ๋ฉ‹์ง„ ๋ณ€๊ฒฝ ์‚ฌํ•ญ!


์— ๊ด€ํ•˜์—ฌ

Changelog ์ œ๋ชฉ์€ ๋ ˆ์ด๋ธ”์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์šฐ์„  ์ˆœ์œ„๊ฐ€ ์–ด๋–ค ์ˆœ์„œ์ธ์ง€ ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ถ€ ๋ฐ ๋ฌธ์„œ ๋ ˆ์ด๋ธ”์ด ๋ชจ๋‘ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ์–ด๋–ค ๋ณ€๊ฒฝ ๋กœ๊ทธ ์ œ๋ชฉ์ด ์šฐ์„ ํ•ฉ๋‹ˆ๊นŒ?

๋กœ์ปฌ ํ…Œ์ŠคํŠธ์—์„œ ํ˜„์žฌ ๋™์ž‘์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • truthy์™€ ์ œ ๋ผ๋ฒจ PR ์ฃผ์–ด์ง„ ใ„ฑ ํ• ๋‹น changelogTitle ์˜ ์šฐ์„  ์ˆœ์œ„์— releaseType ( major , minor , patch , ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค๋ฅธ ๋ชจ๋“ )
  • PR์— ์œ„์˜ ๋™์ผํ•œ releaseType ์šฐ์„  ์ˆœ์œ„์™€ ์—ฐ๊ฒฐ๋œ ์—ฌ๋Ÿฌ ๋ ˆ์ด๋ธ”์ด ์žˆ๋Š” ๊ฒฝ์šฐ PR์€ ๋จผ์ € ๊ตฌ์„ฑ์— ์ •์˜๋œ ๋ ˆ์ด๋ธ” ์„น์…˜์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค(๊ธฐ๋ณธ ๋ ˆ์ด๋ธ”์ด ๋‹ค๋ฅธ ๋ ˆ์ด๋ธ”๋ณด๋‹ค ์šฐ์„ ํ•จ)

๋‹ค์Œ์€ ๋ช‡ ๊ฐ€์ง€ ์˜ˆ์ž…๋‹ˆ๋‹ค.


(1): ๋ฏธ์„ฑ๋…„์ž ๋ฐ ์—†์Œ ๋ ˆ์ด๋ธ”
๊ตฌ์„ฑ:

"labels": [
  { "name": "typescript", "changelogTitle": "Typescript Change", "releaseType": "none" },
  { "name": "minor", "changelogTitle": "Enhancement", "releaseType": "minor" }
]

PR ๋ผ๋ฒจ:

minor

๋ณ€๊ฒฝ ๋กœ๊ทธ ๋ ˆ์ด๋ธ” ์„น์…˜: minor

  • minor releaseType ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋” ๋†’๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

(2): ์—ฌ๋Ÿฌ ํŒจ์น˜ ๋ ˆ์ด๋ธ”
๊ตฌ์„ฑ:

"labels": [
  { "name": "typescript", "changelogTitle": "Typescript Change", "releaseType": "patch" },
  { "name": "core", "changelogTitle": "Core Change", "releaseType": "patch" }
]

PR ๋ผ๋ฒจ:

core

๋ณ€๊ฒฝ ๋กœ๊ทธ ๋ ˆ์ด๋ธ” ์„น์…˜: typescript

  • typescript ๋ ˆ์ด๋ธ”์ด core ์•ž์— ๊ตฌ์„ฑ์— ๋‚˜ํƒ€๋‚˜๊ธฐ ๋•Œ๋ฌธ์—

(3): ๋ ˆ์ด๋ธ” ์—†์Œ ๋ฐ ๊ธฐ๋ณธ ๋ ˆ์ด๋ธ” ์—†์Œ
๊ตฌ์„ฑ:

"labels": [
  { "name": "typescript", "changelogTitle": "Typescript Change", "releaseType": "none" }
]

PR ๋ผ๋ฒจ:

internal

๋ณ€๊ฒฝ ๋กœ๊ทธ ๋ ˆ์ด๋ธ” ์„น์…˜: internal

  • internal ๋ ˆ์ด๋ธ”์ด ๊ตฌ์„ฑ์—์„œ typescript ์ด์ „์— ๋‚˜ํƒ€๋‚˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค(์ด๋Š” ๋™์ผํ•œ releaseType ์‚ฌ์ด์—์„œ ๊ฐ€์žฅ ๋†’์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ–๋Š” ๊ธฐ๋ณธ ๊ตฌ์„ฑ์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

@hipstersmoothie , ์œ„์˜ ๋™์ž‘/์šฐ์„  ์ˆœ์œ„๊ฐ€ ์˜๋„๋œ ๊ฒƒ์ž…๋‹ˆ๊นŒ?

๊ทธ๋ ‡๋‹ค๋ฉด ๋ณ€๊ฒฝ ๋กœ๊ทธ ๋ ˆ์ด๋ธ” ์„น์…˜์ด ์ƒ์„ฑ๋˜๋Š” ๋ฐฉ์‹๊ณผ ์„น์…˜์˜ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ๋ฌธ์„œ์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค(ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Œ).

๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ด ๋ฌธ์ œ ๋˜๋Š” ๋‹ค๋ฅธ ๋ฌธ์ œ์˜ ์ผ๋ถ€๋กœ ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ํŠน๋ณ„ํ•˜๊ฑฐ๋‚˜ ์ž˜๋ชป๋œ ๊ฒƒ์œผ๋กœ ๋ณด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ถฉ๋ถ„ํžˆ ์ง๊ด€์ ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์œ ์ผํ•œ ์ค‘์š”ํ•œ ๊ฒƒ์€ major , minor ๋ฐ patch ๊ฐ€ ์ผ์ข…์˜ ํ‘œ์ค€์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€๊ฒฝ ๋กœ๊ทธ์—์„œ ํ•ญ์ƒ ์ฒซ ๋ฒˆ์งธ ํ•ญ๋ชฉ์ด ๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ˆœ์„œ๊ฐ€ ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•˜๋”๋ผ๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

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