Auto: ํ”Œ๋Ÿฌ๊ทธ์ธ: ์‹œ๋งจํ‹ฑ ๋ฆด๋ฆฌ์Šค ์Šคํƒ€์ผ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ PR ๋ ˆ์ด๋ธ” ์ ์šฉ

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

https://github.com/intuit/auto-release/issues/176 ์—์„œ ์ด๋™

@aleclarson ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งํ–ˆ์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ ๋‹น์žฅ ํ•„์š”ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

semantic-release ์Šคํƒ€์ผ ์ ‘๋‘์‚ฌ(์˜ˆ: fix: , feat: , BREAKING )์— ๋Œ€ํ•œ PR์˜ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์ ์ ˆํ•œ patch ๋ฅผ ์ž๋™์œผ๋กœ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. PR์— minor / major ๋ ˆ์ด๋ธ”์„ ๋ถ™์ž…๋‹ˆ๋‹ค.
์ด ํŠธ์œ„ํ„ฐ ์Šค๋ ˆ๋“œ์—์„œ ์˜๊ฐ์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ ๊ณต์‹์ ์œผ๋กœ ์ง€์›๋˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@hipstersmoothie ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งํ–ˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ, ์ข‹์€ ํ”Œ๋Ÿฌ๊ทธ์ธ์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค! ๊ณต์‹์ ์ด๋ผ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ์ด ๋™์ž‘์„ ์œ„ํ•ด ํ•œ๋‘ ๊ฐœ์˜ ์ถ”๊ฐ€ ํ›„ํฌ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ

์ด๋ฆ„์ด parseCommit ์ธ ํ›„ํฌ๋Š” ์—ฌ๊ธฐ์—์„œ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

https://github.com/intuit/auto-release/blob/5220097f4ce075f4097d62492cd08b6e9551fca2/src/log-parse.ts#L141

@aleclarson ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งํ–ˆ์Šต๋‹ˆ๋‹ค.

parse-commit-message ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋ฐ‹ ์—์„œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋™์•ˆ ์ถฉ๋ถ„ํžˆ ๊ท€์ฐฎ๊ฒŒ ํ•˜๋Š” ๊ฒฝ์šฐ ์ด๋ฅผ ํฌํฌํ•˜๊ณ  esm ์ข…์†์„ฑ์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํฌํฌํ•˜์ง€ ์•Š๋”๋ผ๋„ semantic-release ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์—ฌ์ „ํžˆ ~6๋ฐฐ ์ž‘ ์Šต๋‹ˆ๋‹ค.

enhancement

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

@aleclarson ํฌ๊ธฐ๊ฐ€ ์™œ ๊ทธ๋ ‡๊ฒŒ ํฐ ๋ฌธ์ œ์ž…๋‹ˆ๊นŒ? ๋…ธ๋“œ ๋žœ๋“œ์—์„œ๋„ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋Š” ์ด๋ฏธ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•  ๋งŒํผ ๋˜‘๋˜‘ํ•ฉ๋‹ˆ๋‹ค.

์ค‘๋ณต ์˜์กด์„ฑ์„ ์šฐ๋ คํ•œ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋ถ€ํ’€๋ ค์ง„ ๋„๊ตฌ๋ฅผ ์กฐ์‹ฌํ•  ๋ฟ์ž…๋‹ˆ๋‹ค. "๊ฐ€๋ฒผ์šธ์ˆ˜๋ก ์ข‹๋‹ค"๋Š” ๋‚˜์˜ ๊ฒฝํ—˜ ๋ฒ•์น™์ด์ง€๋งŒ, ๊ฐ์ž์˜ ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์— ๋Œ€ํ•ด ํ† ๋ก ํ•˜๋Š” ๋ฐ ๋ณ„๋กœ ๊ด€์‹ฌ์ด ์—†์Šต๋‹ˆ๋‹ค. :)

Btw, ํŒŒํ‹ฐ์— ์ฐธ์—ฌํ•ฉ๋‹ˆ๋‹ค. git-commits-since ๋ฐ detect-next-version ๊ฐ€ ์—ฌ๊ธฐ์— ๋” ๋„์›€์ด ๋ ๊นŒ์š”?

๋‚˜๋Š” parse-commit-message ํŒจํ‚ค์ง€๊ฐ€ ์ด๋ฏธ auto-release ์— ์กด์žฌํ•˜๋Š” ๋กœ์ง์„ ๋ณต์ œํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— parse-commit-message ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•˜์ง€๋งŒ @hipstersmoothie ๋Š” ์œ ์ง€ ๊ด€๋ฆฌ ๋ถ€๋‹ด์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ๊ธฐ์กด ๋กœ์ง์„ ํ•ด๋‹น ํŒจํ‚ค์ง€๋กœ ๊ต์ฒดํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

ESM์— ์˜์กดํ•˜๋Š” ๋ฐฉ์‹์ด ์ƒ๋‹นํžˆ ์ด์ƒํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ๋•์…˜์ด ์•„๋‹Œ ๋นŒ๋“œ์— esm์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋นŒ๋“œํ•˜๊ณ  dist ํด๋”๋ฅผ ๊ฒŒ์‹œํ•˜๋Š” ๋Œ€์‹  babel-register๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ €๋„ ์ฒ˜์Œ์—๋Š” ๊ฐ™์€ ์ƒ๊ฐ์„ ํ–ˆ์ง€๋งŒ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ๋‹ค๋ฅด๊ฒŒ ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘: ์˜ค nvm, ๊ฒŒ์‹œํ•˜๊ธฐ ์ „์— esm ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ง์”€ํ•˜์…จ์Šต๋‹ˆ๋‹ค. PR์„ ๋ณด๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ข‹์€ ๋ชจ๋“ˆ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ์ฐฉํ•˜๊ณ  ๋งˆ๋ฅธ

esm ๊ฐ€ ์ปดํŒŒ์ผ์šฉ์œผ๋กœ ๋งŒ๋“ค์–ด์ง€์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค: https://github.com/standard-things/esm/issues/13#issuecomment -321710199

์ง€๊ธˆ์€ ๋ถ„๊ธฐํ•˜๊ณ  import ๋ฐ export ๊ตฌ๋ฌธ์„ CommonJS๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

ํ  ์˜ˆ, ๋ฐฉ๊ธˆ readme๋ฅผ ์ฝ๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์ž˜๋ชป ์ดํ•ดํ•œ๋“ฏ

esm์€ 65kb๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค ๐Ÿ˜ฎ

https://packagephobia.now.sh/result?p=parse-commit-message
https://bundlephobia.com/[email protected]

https://github.com/developit/microbundle ๋กœ ์ „ํ™˜ํ•˜๋Š” ํ™๋ณด๋ฅผ ๋งŒ๋“ค๊ณ  ์•„๋งˆ๋„ ์ถ”๊ฐ€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋Œ€์‹  https://github.com/egoist/bili ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„ค์น˜ ํฌ๊ธฐ๋Š” ์ ˆ๋ฐ˜์ด์ง€๋งŒ ๋‹ค๋ฅธ ์ ˆ์ถฉ ์‚ฌํ•ญ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ™•์‹คํ•˜์ง€ ์•Š๋‹ค.

Btw, ํŒŒํ‹ฐ์— ์ฐธ์—ฌํ•ฉ๋‹ˆ๋‹ค. git-commits-since ๋ฐ detect-next-version ๊ฐ€ ์—ฌ๊ธฐ์— ๋” ๋„์›€์ด ๋ ๊นŒ์š”?

๋ณด์žฅ๊ณผ ๋…ธ๋“œ์˜ esm ๊ธฐ๋Šฅ ํ”Œ๋ž˜๊ทธ ๋’ค์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— esm ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ascjs ๋‚˜ rewrite-imports ์™€ ๊ฐ™์€ ์œ ์‚ฌํ•œ ๊ฒƒ์„ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ esm ๋Š” ๊ฐ€์ ธ์˜ค๊ธฐ/๋‚ด๋ณด๋‚ด๊ธฐ๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋งŽ์€ ๊ฒƒ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ €๋Š” ๋นŒ๋“œ ๋‹จ๊ณ„๋‚˜ ๋‹ค๋ฅธ ๊ฒƒ์„ _์•„๋ฌด__ ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ๋Ÿฌ๋„ˆ์— ๋Œ€ํ•œ ํ›„ํฌ๋กœ๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด ascjs ๋˜๋Š” asbundle ๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@aleclarson ํฌ๊ธฐ๊ฐ€ ์™œ ๊ทธ๋ ‡๊ฒŒ ํฐ ๋ฌธ์ œ์ž…๋‹ˆ๊นŒ? ๋…ธ๋“œ ๋žœ๋“œ์—์„œ๋„ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋Š” ์ด๋ฏธ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•  ๋งŒํผ ๋˜‘๋˜‘ํ•ฉ๋‹ˆ๋‹ค.

@aleclarson ํฌ๊ธฐ๊ฐ€ ์™œ ๊ทธ๋ ‡๊ฒŒ ํฐ ๋ฌธ์ œ์ž…๋‹ˆ๊นŒ? ๋…ธ๋“œ ๋žœ๋“œ์—์„œ๋„ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋Š” ์ด๋ฏธ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•  ๋งŒํผ ๋˜‘๋˜‘ํ•ฉ๋‹ˆ๋‹ค.

์ค‘๋ณต ์˜์กด์„ฑ์„ ์šฐ๋ คํ•œ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋ถ€ํ’€๋ ค์ง„ ๋„๊ตฌ๋ฅผ ์กฐ์‹ฌํ•  ๋ฟ์ž…๋‹ˆ๋‹ค. "๊ฐ€๋ฒผ์šธ์ˆ˜๋ก ์ข‹๋‹ค"๋Š” ๋‚˜์˜ ๊ฒฝํ—˜ ๋ฒ•์น™์ด์ง€๋งŒ, ๊ฐ์ž์˜ ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์— ๋Œ€ํ•ด ํ† ๋ก ํ•˜๋Š” ๋ฐ ๋ณ„๋กœ ๊ด€์‹ฌ์ด ์—†์Šต๋‹ˆ๋‹ค. :)

Btw, ํŒŒํ‹ฐ์— ์ฐธ์—ฌํ•ฉ๋‹ˆ๋‹ค. git-commits-since ๋ฐ detect-next-version ๊ฐ€ ์—ฌ๊ธฐ์— ๋” ๋„์›€์ด ๋ ๊นŒ์š”?

๋‚˜๋Š” parse-commit-message ํŒจํ‚ค์ง€๊ฐ€ ์ด๋ฏธ auto-release ์— ์กด์žฌํ•˜๋Š” ๋กœ์ง์„ ๋ณต์ œํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— parse-commit-message ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•˜์ง€๋งŒ @hipstersmoothie ๋Š” ์œ ์ง€ ๊ด€๋ฆฌ ๋ถ€๋‹ด์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ๊ธฐ์กด ๋กœ์ง์„ ํ•ด๋‹น ํŒจํ‚ค์ง€๋กœ ๊ต์ฒดํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.


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

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