Finite Property Sources 56e KO - teamswyg/laya-tools GitHub Wiki

์‹ค์ œ ๊ณต๊ฐœ ์›์ฒœ์œผ๋กœ ๋„“ํžˆ๋Š” ๋‹ค์Œ ๋‹จ๊ณ„

56e์˜ ์œ ํ•œ quoted ๊ฐ€์กฑ๋งŒ ๋ฐ˜๋ณตํ•ด๋„ ๋ฐ์ดํ„ฐ ๋‹ค์–‘์„ฑ์€ ๋Š˜์ง€ ์•Š๋Š”๋‹ค. ๋‹ค์Œ์€ ๋‹ค๋ฅธ ์›์ฒœ์˜ ์˜๋ฏธ ๊ณ„์•ฝ์„ ์‹ค์ œ๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ์กฐ์‚ฌ๋‹ค. GitHub API์—์„œ ๊ณ ์ • revision์˜ root tree, ๋ผ์ด์„ ์Šค์™€ ๊ตฌํ˜„ ํŒŒ์ผ์„ ์ฝ์—ˆ๋‹ค. ์ƒˆ ๊ฐœ๋ฐœ ์š”์ฒญยท๋…๋ฆฝ truthยท๋ชจ๋ธ ๊ฒฐ๊ณผ ํ™•๋ณด๋Š” ์•„์ง0์ด๋ฉฐ ๊ธฐ์กด120๊ฐœ inventory๋ฅผ240๊ฐœ ์™„๋ฃŒ๋กœ ๋ฐ”๊พธ์ง€ ์•Š๋Š”๋‹ค.

์ฝ์€ ๊ณต๊ฐœ ์›์ฒœ ๊ณ ์ • revision ํ™•์ธํ•œ ํŒŒ์ผ ์šฐ์„  ํ–‰๋™
Masterminds/semver v3.4.0 61fc460d28283a91c53be65c2e0f20b494ac8ad9 version.go, root tree, LICENSE.txt ์—„๊ฒฉ parsingยท๋ฒ„์ „ ์šฐ์„ ์ˆœ์œ„ยทmetadata ๋ฌด์‹œ
bmatcuk/doublestar v4.9.1 8b690afa33319b0a1869367f594e53977e38bc99 match.go, root tree, LICENSE ๋””๋ ‰ํ„ฐ๋ฆฌ globยทescapeยท์ž˜๋ชป๋œ pattern ์˜ค๋ฅ˜

๋‘ ๊ณ ์ • LICENSE๋Š” MIT ๋ฌธ๊ตฌ์™€ ์ €์ž‘๊ถŒ ํ‘œ์‹œ๋ฅผ ํฌํ•จํ•œ๋‹ค. ์ดํ›„ ์†Œ์Šค๋ฅผ ์‹ค์ œ๋กœ ๋ณต์‚ฌ/๋ฐฐํฌํ•˜๋ฉด ๊ฐ ์›๋ณธ์˜ ์ €์ž‘๊ถŒ๊ณผ ๋ผ์ด์„ ์Šค ์ „์ฒด๋ฅผ ์œ ์ง€ํ•œ๋‹ค. ํ˜„์žฌ๋Š” ์›๋ฌธ ์ฝ”๋“œ๋ฅผ vendorํ•˜๊ฑฐ๋‚˜ ๊ฐ€์ค‘์น˜์— ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๊ณ , ์ด ์กฐ์‚ฌ๋งŒ์œผ๋กœ ์ „์ฒด dependencyยทํ•™์Šต ์ž์‚ฐ์˜ ๊ถŒ๋ฆฌ ๊ฒ€ํ† ๊ฐ€ ๋๋‚ฌ๋‹ค๊ณ  ํ•˜์ง€ ์•Š๋Š”๋‹ค. ํŒŒ์ผ byte SHA, ๋‹ซํžŒ helper/dependency, compile provenance์™€ NOTICE ์—ฌ๋ถ€๋Š” ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์›์ฒœ manifest ๋‹จ๊ณ„์—์„œ ์ถ”๊ฐ€๋กœ ํ™•์ธํ•œ๋‹ค.

์„œ๋กœ ๋‹ค๋ฅธ ํ–‰๋™์„ ์‹ค์ œ๋กœ ๊ฒ€์‚ฌํ•˜๋Š” ๊ณ„์•ฝ ์ œ์•ˆ

  1. Strict semver parsing: ์œ ํšจํ•œ3๊ฐœ ์ˆซ์ž ๊ตฌ๊ฐ„๋งŒ ํ—ˆ์šฉํ•˜๊ณ , v prefixยท๋น ์ง„ ๊ตฌ๊ฐ„ยท์•ž์ž๋ฆฌ0์„ ๊ฑฐ์ ˆํ•˜๋Š” ์œ ํ•œ ์š”์ฒญ. nil/error identity์™€ ๊ฐ’ ํ•„๋“œ๋ฅผ ๋…๋ฆฝ literal oracle๋กœ ํ™•์ธํ•œ๋‹ค. permissive NewVersion์˜ ์ „์—ญ CoerceNewVersion ์„ค์ •์„ strict ๊ณ„์•ฝ๊ณผ ํ˜ผํ•ฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
  2. Build metadata ๋ฌด์‹œ: ๊ฐ™์€ major/minor/patch/prerelease์—์„œ ๋‹ค๋ฅธ metadata์˜ ๋น„๊ต ๊ฒฐ๊ณผ๋Š”0์ด์–ด์•ผ ํ•œ๋‹ค. ๋ฌธ์ž์—ด ์ž์ฒด์˜ equality์™€ ์˜๋ฏธ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค.
  3. Prerelease ์ˆœ์„œ: ์ˆซ์ž ์‹๋ณ„์ž๋Š” ์ˆ˜์น˜๋กœ ๋น„๊ตํ•˜๊ณ  ์ •์ƒ release๋ณด๋‹ค ๋‚ฎ์œผ๋ฉฐ ์ˆซ์ž์™€ ๋ฌธ์ž ์‹๋ณ„์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ์œ ํ•œ ์ž…๋ ฅ. Compare, LessThan, Equal wrapper๋“ค์€ ๊ฐ™์€ helper ๊ทธ๋ฃน์— ๋ฌถ๊ณ  ๋…๋ฆฝ ์š”์ฒญ์ฒ˜๋Ÿผ ๋ถ€ํ’€๋ฆฌ์ง€ ์•Š๋Š”๋‹ค.
  4. Glob ๋””๋ ‰ํ„ฐ๋ฆฌ: a/*.go์™€ a/**/*.go์˜ ๊ตฌ๋ถ„, zero-directory์™€ nested-directory ์‚ฌ๋ก€๋ฅผ ์›๋ž˜ / separator ๊ณ„์•ฝ์œผ๋กœ ๊ด€์ธกํ•œ๋‹ค. macOS PathMatch์™€ Match๋ฅผ ํ˜ผํ•ฉํ•ด ํ”Œ๋žซํผ ์ฐจ์ด๋ฅผ ์˜๋ฏธ ํ•™์Šต์œผ๋กœ ์„ธ์ง€ ์•Š๋Š”๋‹ค.
  5. Glob escape: escapeํ•œ wildcard์˜ literal ๋™์ž‘๊ณผ ํ•œ ๊ธ€์ž wildcard์˜ separator ์ œ์™ธ๋ฅผ ๋ถ„๋ฆฌํ•œ๋‹ค. ๊ธธ์ด/ASCII ๋ฒ”์œ„๋ฅผ ๋จผ์ € ์ œํ•œํ•˜๊ณ  ํ•ด๋‹น ์ž…๋ ฅ๋งŒ ๊ฒ€์ฆํ•œ๋‹ค.
  6. Bad-pattern error: malformed pattern์€ ErrBadPattern์„ ์ •ํ™•ํžˆ ์š”๊ตฌํ•œ๋‹ค. MatchUnvalidated๊ฐ€ ์˜ค๋ฅ˜๋ฅผ ๋ฒ„๋ฆฌ๋Š” bool wrapper๋ผ๋Š” ์ ์„ ์ˆจ๊ธฐ์ง€ ์•Š๋Š”๋‹ค. false๋งŒ ๋ฐ˜ํ™˜ํ•˜๋ฉด ์˜ค๋ฅ˜ ๊ณ„์•ฝ์˜ ์ •๋‹ต์ด ์•„๋‹ˆ๋‹ค.

์ด ํ–‰๋™์€ upstream์— ์ด๋ฏธ ๊ตฌํ˜„๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ƒˆ ์ฝ”๋”ฉ ๊ณผ์ œ๊ฐ€ ๋ฏธ๊ตฌํ˜„ ์ƒํƒœ๋ผ๋Š” ๋œป์ด ์•„๋‹ˆ๋‹ค. ์šฐ์„ ์€ ๋ชจ๋ธ์˜ ๊ฒ€์ฆ ์ „ ์„ค๋ช…ยทํžŒํŠธ๋ฅผ ์œ„ํ•œ ์ฝ”๋“œ ์˜๋ฏธ ์›์ฒœ์ด๋‹ค. ์‹ค์ œ ์ฝ”๋”ฉ ์™„๋ฃŒ์œจ/๋ชจ๋ธ ๋ผ์šฐํŒ…์šฉ ์š”์ฒญ์€ ๋ณ„๋„ baseline gap๊ณผ ๋…๋ฆฝ ์ˆ˜์šฉ ์กฐ๊ฑด์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.

์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์ˆœ์„œ

์›๋ฌธ byte์™€ ๊ถŒ๋ฆฌ ๊ณ ์ • โ†’ source/helper/alias closureยท๋‹ซํžŒ Go compile โ†’ ์†Œ์Šค ๊ด€์ธก ์ „ ์š”์ฒญ/์„ค๋ช…ยท๋…๋ฆฝ ๊ธฐ๋Œ€๊ฐ’ ์ž‘์„ฑ ๋ฐ ๊ฒ€ํ†  โ†’ ์›์ฒœ์„ ๋ฐ”๊พผ mutation ๋Œ€์กฐ์™€ unknown ์ฒ˜๋ฆฌ โ†’ ๊ด€๊ณ„ ๊ทธ๋ฃน ๊ฐ์‚ฌ โ†’ ๋ณ„๋„ ๊ณต์‹ truth ๋ด‰์ธ/๊ด€์ธก โ†’ ํ›„๋ณด๋ฅผ ๋ชจ๋‘ ๋ณด์กดํ•˜๋Š” ๋น„ํ•™์Šต ํšจ์šฉ ๊ณ„ํš์ด๋‹ค. ์ผ๋ฐ˜ ์›๋ฌธ ํ•จ์ˆ˜๊ฐ€ ๊ฐ€์ง„ ๊ฒฝ๊ณ„๋ฅผ ์ข์€ literal ๊ฒ€์ฆ์œผ๋กœ ์ธ์ฆํ•˜์ง€ ์•Š๋Š”๋‹ค. ์„ธ semver ํ–‰๋™๊ณผ ์„ธ glob ํ–‰๋™์ด ์ž๋™์œผ๋กœ6๋…๋ฆฝ ๊ฐ€์กฑ์ด ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.

๊ทธ ๋’ค120โ†’240์˜ ์‹ค์ œ ์ž๋ฃŒ ์ˆ˜, ์ €์žฅ์†Œยท์–ธ์–ดยท์ž‘์„ฑ ํ๋ฆ„ยทํ–‰๋™ ์ข…๋ฅ˜ ๋ถ„ํฌ๋ฅผ ํ™•์ธํ•œ๋‹ค. ๋ชฉํ‘œ ์ˆซ์ž๋ฅผ ๋นˆ ํ–‰์ด๋‚˜ ๋ฌธ์žฅ ๋ณ€ํ˜•์œผ๋กœ ์ฑ„์šฐ์ง€ ์•Š๋Š”๋‹ค. ์ตœ์†Œ15๊ทธ๋ฃนยทํ•„์š” ํšจ์šฉ5%ยท๋ณ„๋„ ๋„๋ฉ”์ธ๋ณ„ ๊ณ ์œ  ๋ณดํ˜ธ ์ตœ์ข…2400๊ฐœ ๊ธฐ์ค€์„ ์œ ์ง€ํ•œ๋‹ค. ์ƒˆ paid/model callsยทfitยท๊ฐ€์ค‘์น˜ยท๋ณดํ˜ธ ์ตœ์ข… ์ ‘๊ทผ0. ๋ชจ๋ธ ๋ณธ์ฒด๋Š” ์ž๊ฒฉ์„ ๊ฐ–์ถ˜ immutable HF ๋ฐฐํฌ๊ฐ€ ์žˆ์„ ๋•Œ๋งŒ ๊ณต๊ฐœํ•˜๊ณ  Git์—๋Š” ๋„ฃ์ง€ ์•Š๋Š”๋‹ค.