Auto: ๋ฒ ํƒ€ ๋ฒ„์ „์ด ์žˆ๋Š” monorepo์˜ "์ž๋™ ์นด๋‚˜๋ฆฌ์•„"๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค

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

๋ฒ„๊ทธ ์„ค๋ช…

Lerna monorepo์—์„œ auto canary ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์—ฌ๋Ÿฌ ๋ฌธ์ œ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

  1. ๋ฒ„์ „์€ 9.0.0-canary... ์ด์–ด์•ผ ํ•˜์ง€๋งŒ 9.0.0-beta.33 ์—์„œ 9.0.1-canary.809.1.1a2be58f.0 9.0.0-canary... ๋ฉ๋‹ˆ๋‹ค.

  2. ์‹œ์ž‘ ๋ถ€๋ถ„์— Error: Running command 'npx' failed ๋ผ๊ณ  ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.

  3. You cannot publish over the previously published versions: 9.0.0-beta.33 ๋ผ๊ณ  npm์— ๊ฒŒ์‹œํ•˜๋Š” ๋ฐ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

๊ฒŒ์‹œํ•˜๋ ค๋Š” PR์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://github.com/react-spring/react-spring/pull/809

์žฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด

๋‚˜๋Š” ์•„์ง ์ตœ์†Œํ•œ์˜ ์žฌํ˜„์ด ์—†์Šต๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒฝ์šฐ LMK.

์˜ˆ์ƒ๋˜๋Š” ํ–‰๋™

๋ชจ๋“  ํŒจํ‚ค์ง€๊ฐ€ 9.0.0-canary.809.1.1a2be58f.0 ๋ฒ„์ „์œผ๋กœ ๊ฒŒ์‹œ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์Šคํฌํƒ‘(๋‹ค์Œ ์ •๋ณด๋ฅผ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค):

  • ์šด์˜ ์ฒด์ œ: macOS v10.14.5
  • ๋ธŒ๋ผ์šฐ์ €: ํ•ด๋‹น ์—†์Œ
  • ๋ฒ„์ „: v7.6.0

์ถ”๊ฐ€ ์ปจํ…์ŠคํŠธ

GH_TOKEN="xxx" auto canary --build 1 --pr 809
Error: Running command 'npx' failed


Changes:
 - @react-spring/addons: 9.0.0-beta.33 => 9.0.1-canary.809.1.1a2be58f.0
 - @react-spring/animated: 9.0.0-beta.33 => 9.0.1-canary.809.1.1a2be58f.0
 - @react-spring/core: 9.0.0-beta.33 => 9.0.1-canary.809.1.1a2be58f.0
 - react-spring: 9.0.0-beta.34 => 9.0.1-canary.809.1.1a2be58f.0
 - @react-spring/shared: 9.0.0-beta.33 => 9.0.1-canary.809.1.1a2be58f.0
 - @react-spring/konva: 9.0.0-beta.33 => 9.0.1-canary.809.1.1a2be58f.0
 - @react-spring/native: 9.0.0-beta.33 => 9.0.1-canary.809.1.1a2be58f.0
 - @react-spring/three: 9.0.0-beta.33 => 9.0.1-canary.809.1.1a2be58f.0
 - @react-spring/web: 9.0.0-beta.34 => 9.0.1-canary.809.1.1a2be58f.0
 - @react-spring/zdog: 9.0.0-beta.33 => 9.0.1-canary.809.1.1a2be58f.0



lerna notice cli v3.15.0
lerna info current version 9.0.0-beta.34
lerna WARN force-publish all packages
lerna info Assuming all packages changed
lerna WARN version Skipping working tree validation, proceed at your own risk
lerna info auto-confirmed 
lerna info execute Skipping git tag/commit
lerna info execute Skipping git push
lerna info execute Skipping releases
lerna info publish Publishing packages to npm...
lerna notice Skipping all user and access validation due to third-party registry
lerna notice Make sure you're authenticated properly ยฏ\_(ใƒ„)_/ยฏ
lerna http fetch PUT 403 https://registry.npmjs.org/@react-spring%2fshared 1475ms
lerna ERR! E403 You cannot publish over the previously published versions: 9.0.0-beta.33.

    at ChildProcess.<anonymous> (~/.nvm/versions/node/v11.10.1/pnpm-global/3/node_modules/.pnpm/registry.npmjs.org/@auto-it/core/7.6.1/node_modules/@auto-it/core/dist/utils/exec-promise.js:98:36)
    at ChildProcess.emit (events.js:197:13)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:254:12)

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

๋˜ํ•œ ๊ฐ ํŒจํ‚ค์ง€์˜ package.json ์žˆ๋Š” publishConfig.directory ํ•„๋“œ๊ฐ€ ์กด์ค‘๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ ์ข€ ๋ณผ๊ฒŒ์š”!

  1. ๋ฒ„์ „์€ 9.0.0-canary... ๋Œ€์‹  9.0.0-beta.33์—์„œ 9.0.1-canary.809.1.1a2be58f.0์œผ๋กœ ๋ณ€๊ฒฝ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฑฐ๊ธฐ์— ์žˆ๋Š” ์—ฌ๋ถ„์˜ ํ•ด์‹œ๋ฅผ ์—†์• ๊ธฐ ์œ„ํ•ด #609๋ฅผ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „์˜ .0 ๋ถ€๋ถ„์€ --preid ํ”Œ๋ž˜๊ทธ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์ด ์ •๋ง๋กœ ์‚ฌ๋ผ์งˆ ์ˆ˜ ์—†๋„๋ก ๋‚˜๋จธ์ง€ ๋ฒ„์ „์— ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

@hipstersmoothie ์˜ค, ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๋ถˆํ‰ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ํ•ด์‹œ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ๋“ค์ด๊ณ  ์‹ถ์ง€ ์•Š์•˜์„ ๋ฟ์ž…๋‹ˆ๋‹ค. ๐Ÿ˜† ์ด ๋ฌธ์žฅ์€ ์‹ค์ œ๋กœ 9.0.0 ์ด์–ด์•ผ ํ•˜๋Š”๋ฐ 9.0.1 ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€ ์ง€์ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์•„, ์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์˜ˆ์ƒ๋˜๋Š” ๋™์ž‘์ž…๋‹ˆ๋‹ค. ์นด๋‚˜๋ฆฌ์•„ ๋ฒ„์ „์€ ์‹œ๋ฎฌ๋ ˆ์ด์…˜๋œ "๋‹ค์Œ" ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด:

PR์—๋Š” major ๋ ˆ์ด๋ธ”์ด ์žˆ์Šต๋‹ˆ๋‹ค. => ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ๋Š” ์นด๋‚˜๋ฆฌ์•„์—๋Š” ์ด๋Ÿฌํ•œ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ ์ƒˆ ์ฃผ์š” ๋ฒ„์ „์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

9.0.1 ๋กœ ์ด๋™ํ•œ ์ด์œ ๋Š” ๋ ˆ์ด๋ธ”์„ ์ฐพ์„ ์ˆ˜ ์—†์„ ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ patch ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์˜ค ๊ทธ๋ž˜. latest ํƒœ๊ทธ๋Š” ํ˜„์žฌ 8.0.27 ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ์œผ๋ฏ€๋กœ auto canary ๊ฐ€ ์–ด์จŒ๋“  9.0.1 ์„ ์‚ฌ์šฉํ•  ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 9.0.0-beta.33 ์˜ ์กด์žฌ๋กœ ์ธํ•ด ํ˜ผ๋ž€์Šค๋Ÿฌ์› ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฒ„์ „์„ 9.0.0 ๋กœ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

ํ˜„์žฌ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์€ "์ตœ์‹  ๋ฆด๋ฆฌ์Šค"์™€ ๋กœ์ปฌ ๋ฒ„์ „์„ ๋ณด๊ณ  ๋” ๋†’์€ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ๊ฒฝ์šฐ 9.0.0-beta.33 ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฒ„์ „์„ 9.0.0์œผ๋กœ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚ด๊ฐ€ ๊ฐ€์ง„ lerna ์‹คํ–‰ ๋กœ์ปฌ ๊ฒฝ์šฐ prerelease ๋Œ€์‹  preminor ๋ฒ„์ „์ด ์—†์Šต๋‹ˆ๋‹ค ์ฆ๊ฐ€ํ•œ๋‹ค. prerelease ๋ฅผ canary ๋ช…๋ น์— ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ prerelease ๋ ˆ์ด๋ธ”์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ธฐ๋Šฅ์€ ์ž๋™์ด ์•„๋‹™๋‹ˆ๋‹ค.

์ด์ „์— ๊ฒŒ์‹œ๋œ ๋ฒ„์ „: 9.0.0-beta.33 ์œ„์— ๊ฒŒ์‹œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ npm์— ๊ฒŒ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ package.json ๊ฐ€ dist ํด๋”๋กœ ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ๋œ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. prepare ๋‹จ๊ณ„๋Š” auto๊ฐ€ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— ์‹คํ–‰๋˜๋ฏ€๋กœ ๋ฒ„์ „์€ ์ฒ˜์Œ์— ์žˆ๋˜ ๊ฒƒ์ด ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ "9.0.0-beta.33"

lerna๊ฐ€ ์‹คํ–‰๋˜๋ฉด ์ด๋ฏธ ๊ฒŒ์‹œ๋œ ๋ฒ„์ „์ด ํฌํ•จ๋œ package.json ์˜ ์˜ค๋ž˜๋œ ๋ฒ„์ „์„ ์„ ํƒํ•˜๊ณ  ๋‹ค์‹œ ๊ฒŒ์‹œ๋ฅผ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๊ฐ€์ง„ lerna ์‹คํ–‰ ๋กœ์ปฌ ๊ฒฝ์šฐ prerelease ๋Œ€์‹  preminor ๋ฒ„์ „์ด ์—†์Šต๋‹ˆ๋‹ค ์ฆ๊ฐ€ํ•œ๋‹ค. prerelease ๋ฅผ canary ๋ช…๋ น์— ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ prerelease ๋ ˆ์ด๋ธ”์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ธฐ๋Šฅ์€ ์ž๋™์ด ์•„๋‹™๋‹ˆ๋‹ค.

๊ทธ ์ •๋„๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. " beta / next ๋ฒ„์ „์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๋ถ„๊ธฐ์—์„œ ๋กœ์ปฌ๋กœ auto canary ์‹คํ–‰"์„ ๊ทน๋‹จ์ ์ธ ๊ฒฝ์šฐ๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ? ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์—ฌ๊ธฐ์— ์ž๋™ ์ง€์›์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ CI์—์„œ auto canary ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์—ฌ์ „ํžˆ ์ด ๊ทน๋‹จ์ ์ธ ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ?

lerna๊ฐ€ ์‹คํ–‰๋˜๋ฉด ์ด๋ฏธ ๊ฒŒ์‹œ๋œ ๋ฒ„์ „์ด ํฌํ•จ๋œ package.json ์˜ ์˜ค๋ž˜๋œ ๋ฒ„์ „์„ ์„ ํƒํ•˜๊ณ  ๋‹ค์‹œ ๊ฒŒ์‹œ๋ฅผ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

Lerna๋Š” publishConfig.directory ( ์—ฌ๊ธฐ ์ฐธ์กฐ)๋ฅผ ์ง€์›ํ•˜์ง€๋งŒ Lerna์™€์˜ ํ†ตํ•ฉ์œผ๋กœ ์ธํ•ด ํ•ด๋‹น ์ฝ”๋“œ ๊ฒฝ๋กœ๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ”๋กœ ์ด ๋ผ์ธ ์ด ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

๋‹น์‹ ์€ ๋‹ค์Œ์˜ dist ํด๋”๋กœ ๋“ฑ๋“ฑ package.json, ์ถ”๊ฐ€ ์ •๋ณด,์„ ๋ณต์‚ฌํ•˜๊ณ ์ด ์ผ์„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์ง€ ์šฐ๋ฆฌ๊ฐ€ ์‹คํ–‰ํ•ด์•ผํ•˜๋Š” ๊ฒŒ์‹œ prepare ๋งค์šฐ ํŠน์ • ์‹œ๊ฐ„์— ์Šคํฌ๋ฆฝํŠธ๋ฅผ :

  1. lerna version - package.json์„ ์นด๋‚˜๋ฆฌ์•„ ๋ฒ„์ „์œผ๋กœ ๋ณ€๊ฒฝ
  2. prepare - dist ํด๋”์— ์žˆ๋Š” ์ตœ์ข… ํŒจํ‚ค์ง€
  3. lerna publish - ํŒจํ‚ค์ง€ dist ํด๋”๋ฅผ ์˜ฌ๋ฐ”๋ฅธ ๋ฒ„์ „์œผ๋กœ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ์ด ์›Œํฌ ํ”Œ๋กœ์— ๋Œ€ํ•œ ๋‹น์‹ ์€ ๋ผ์ดํ”„ ์‚ฌ์ดํด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋กํ•ด์•ผํ•˜๋ฉฐ, ignoreScripts (์ „ํ˜€ ๋˜๋Š” ๊ทธ๋ƒฅ) false๋กœ ์„ค์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

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

beta/next ์ง€์›์€ ์•„์ง ๋‚ด์žฅ๋˜์–ด ์žˆ์ง€ ์•Š์ง€๋งŒ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์ด ๋ฌธ์ œ๋กœ ๋‹ค์‹œ ๋Œ์•„์˜ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Lerna์™€์˜ ํ†ตํ•ฉ์œผ๋กœ ์ธํ•ด ๊ทธ ์ฝ”๋“œ ๊ฒฝ๋กœ๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ์„์ง€๋„ ๋ชจ๋ฆ…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” lerna ์‚ฌ์šฉ์— ๋Œ€ํ•ด ์–ด๋– ํ•œ ๊ฐ€์ •๋„ ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ด๊ฒƒ์€ ์‹ค์ œ๋กœ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ์—์„œ ์šฐ๋ฆฌ๊ฐ€ ๋ชจ๋“  ๋ฌด๊ฑฐ์šด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด lerna ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@aleclarson ignoreScripts ์ œ๊ฑฐํ•œ ํ›„ ์นด๋‚˜๋ฆฌ์•„๋ฅผ ๊ฒŒ์‹œํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์˜ ๋ชจ๋“  ๊ฒƒ์„ ํ•ด๊ฒฐํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์žˆ์œผ๋ฉด ๋‹ซ์œผ์‹ญ์‹œ์˜ค!

์ข‹์•„ ๋‹ฌ์ฝคํ•ด! ํ˜„์žฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์œผ๋ฏ€๋กœ ๊ณง ํ™•์ธํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‹ค์‹œ ๋„์ „ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ๊ผญ ๋‹ค์‹œ ์—ด๊ฒ ์Šต๋‹ˆ๋‹ค. ;)

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