Celery: ์…€๋Ÿฌ๋ฆฌ ๋ฒ„์ „ 4.3 ์ถœ์‹œ

์— ๋งŒ๋“  2018๋…„ 11์›” 16์ผ  ยท  102์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: celery/celery

@thedrow @georgepsarakis 12์›” 1์ผ๊นŒ์ง€ 4.3 ๋ฒ ํƒ€ ๋ฒ„์ „์„ ์ถœ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ ์ „์— py-amqp๋ฅผ ๋ฆด๋ฆฌ์Šคํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. kombu ๋ฐ ๊ธฐํƒ€ ์ข…์†์„ฑ ๋จผ์ €. ๋ถ€๋“œ๋Ÿฌ์šด ์•Œ๋ฆผ์ž…๋‹ˆ๋‹ค

๊ธฐ์—ฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ฐจ๋‹จ ๋ชฉ๋ก์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹น์‹ ์ด ์ƒ์šฉ ์ œํ’ˆ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์…€๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ์šฐ๋ฆฌ๊ฐ€๋˜๋Š” ๊ณ ๋ คํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค ํ›„์›์ž ๋˜๋Š” ์šฐ๋ฆฌ์˜ ์Šคํฐ์„œ ์…€๋Ÿฌ๋ฆฌ์˜ ๋ฏธ๋ž˜๋ฅผ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

Project Governance

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

์ถœ์‹œ ๋œ! :ํƒ€๋‹ค:

์—ฌ๋Ÿฌ๋ถ„์˜ ๋…ธ๋ ฅ, ์‹œ๊ฐ„, ๊ธฐ์ˆ ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๋‹ค์Œ ๋ฒ„์ „์ธ Celery 5๋Š” ๋งค์šฐ ๊ธฐ๋Œ€๋ฉ๋‹ˆ๋‹ค.

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

@auvipy @thedrow @georgepsarakis redis ์ œํ•œ์„ ์œ„ํ•ด 4.2.2๋ฅผ ๋น ๋ฅด๊ฒŒ ๋ฆด๋ฆฌ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ํ˜„์žฌ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ๋Š” ์ตœ์‹  redis์™€ ์ถฉ๋Œํ•˜๋ฏ€๋กœ

์‹œ๊ฐ„์ด ์žˆ์„์ง€ ๋ชจ๋ฅด๊ฒ ๋„ค์š”. ๊ทธ๋ ‡๊ฒŒ ํ•˜๋„๋ก ๋…ธ๋ ฅํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด๋ฒˆ์—๋Š” ํ•ด์ œํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ช…ํ™•ํ•œ ์ง€์นจ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

Redis ์ข…์†์„ฑ ์ˆ˜์ •์„ ํฌํ•จํ•˜์—ฌ 4.2.2๋ฅผ ์–ป๋Š” ๊ฒƒ์€ ์‹ค์ œ๋กœ gr8์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฏธ ๋ฌธ์ œ์˜ ์›์ธ์„ ์ฐพ๋Š” ๋ฐ ๋„ˆ๋ฌด ๋งŽ์€ ์‹œ๊ฐ„์„ ๋ณด๋ƒˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ์— ๋›ฐ์–ด๋“œ๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค!

์ด ์ƒˆ๋กœ์šด ๋ฆด๋ฆฌ์Šค๋Š” python 3.7์„ ์ง€์›ํ•ฉ๋‹ˆ๊นŒ?

์˜ˆ

์ด ์ƒˆ ๋ฆด๋ฆฌ์Šค๋Š” redis 3.0.1์„ ์ง€์›ํ•ฉ๋‹ˆ๊นŒ?

์˜ˆ

@auvipy , @thedrow , ์ด๋ฒˆ ๋ฆด๋ฆฌ์Šค์—์„œ ์ œ๊ฐ€ ๋„์šธ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋ฌธ์ œ #5212๋Š” ๋ฆด๋ฆฌ์Šค์— ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ Python 3.7๋กœ Celery๋ฅผ ํ…Œ์ŠคํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@thedrow Kombu ๋ฆด๋ฆฌ์Šค๋ฅผ ํ•˜๋ฉด #5212๊ฐ€ ์ˆ˜์ •๋œ ๊ฒƒ
๋งž๋‹ค๋ฉด CI์— 3.7 ํ…Œ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ผ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

py-amqp ๋ฐ kombu ๋ฆด๋ฆฌ์Šค๋Š” ์‚ฌ์ „ ์š”๊ตฌ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ๊ทธ ํ›„ 3.7 ์ง€์›์„ ์œ„ํ•ด pr์„ ์—ฐ๋งˆํ•˜์—ฌ ๋ณ‘ํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@auvipy ๋‹น์‹ ์€ ์ด PR์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค: https://github.com/celery/celery/pull/4859 ?

ํ•ด๋‹น ์ˆ˜์ • ์‚ฌํ•ญ๋งŒ ํฌํ•จํ•˜์—ฌ Kombu 4.2.2๋ฅผ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด์ œ ๋นŒ๋“œ๊ฐ€ ํ†ต๊ณผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฒ„์ „์ด ์ถœ์‹œ๋  ETA์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์•„์ง ํ•  ์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. Kombu์˜ ๋นŒ๋“œ๋„ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋‚˜๋จธ์ง€ ๋ฌธ์ œ๋ฅผ ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค.

@thedrow ๋‚ด๊ฐ€ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?
์•„๋‹ˆ๋ฉด ์—ฌ๊ธฐ์— ๋‚จ์€ ๋ฌธ์ œ๋ฅผ ๋‚˜์—ดํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@xirdneh ์ด์ •ํ‘œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค https://github.com/celery/celery/milestone/20 .

๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ด ์ด์ •ํ‘œ์—์„œ non-blockers๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋จธ์ง€ ๋ฌธ์ œ๋ฅผ ๊ธฐ๋Œ€ํ•˜์‹ญ์‹œ์˜ค. ์…€๋Ÿฌ๋ฆฌ 4.3 rc1์—์„œ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด py-amqp ๋ฐ ๊ด€๋ จ ํŒจํ‚ค์ง€ ์ถœ์‹œ

ํ˜„์žฌ ๋งˆ์Šคํ„ฐ์šฉ ๋นŒ๋“œ๋Š” Python 3.7์—์„œ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.
https://travis-ci.org/celery/celery/jobs/473236382๋ฅผ ์ฐธ์กฐ

@thedrow ์ œ ์ƒ๊ฐ์— ์ด๊ฒƒ์€ Python 3.7์ด ์ƒ์„ฑ๊ธฐ์—์„œ ๋ฐœ์ƒํ•œ StopIteration ์˜ˆ์™ธ๋ฅผ RuntimeError ์˜ˆ์™ธ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ๋ฅผ ์ฐธ์กฐ

๋‚ด ์ œ์•ˆ์€ RuntimeError ์˜ ํŠน์ • ์œ ํ˜•์„ ๊ฐ์ง€ํ•˜๋Š” ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ถ„๊ธฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
https://github.com/celery/kombu/blob/e4dc1688a2bfe422813ffc79d9db50c06f38fbaf/kombu/asynchronous/hub.py#L348 -L359

except RuntimeError as e:
  if e.args != ('generator raised StopIteration',):
      raise e

์œ„์˜ ๋‚ด์šฉ์€ ๋‹ค์†Œ ์•ฝํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ ์˜ˆ์™ธ ๋ณ€ํ™˜์„ ์‹๋ณ„ํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๋‹น ์ˆ˜์ • ์‚ฌํ•ญ์€ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
https://github.com/celery/celery/blob/master/t/unit/worker/test_loops.py#L386 ์ฐธ์กฐ
PEP 479์— ๋”ฐ๋ฅด๋ฉด ๋ฐœ์ „๊ธฐ๋Š” ๋” ์ด์ƒ StopIterator ๋ชจ๊ธˆํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ #5263์—์„œ ์ˆ˜์ •๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ œ ์ƒ๊ฐ์—๋Š” ์ฐจ๋‹จ๊ธฐ์ธ ๋” ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
https://travis-ci.org/celery/celery/jobs/473900629#L3204 ์ฐธ์กฐ

https://github.com/celery/kombu/pull/972์—์„œ ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

kombu์šฉ ๋นŒ๋“œ๊ฐ€ ์†์ƒ๋˜์–ด ์ „์ฒด ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
https://travis-ci.org/celery/kombu/jobs/472712374#L1215๋ฅผ ์ฐธ์กฐ

kombu์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์‹คํŒจ๋ฅผ ๋กœ์ปฌ๋กœ ์žฌํ˜„ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@thedrow ์‹คํŒจํ•œ kombu ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค - PR https://github.com/celery/kombu/pull/978์„ ์ฐธ์กฐ https://github.com/celery/py-amqp/pull/221์„ ๊นจ๋œจ๋ ธ์Šต๋‹ˆ๋‹ค

์•„๋งˆ๋„ ๋‚ฎ์€ ๊ต์ˆ˜ํ˜• ๊ณผ์ผ์€ ๋ถ€๋ถ€๋ฅผ ๊ณ ์น  ๊ฒƒ์ž…๋‹ˆ๋‹ค DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working

py-amqp 2.4.0์ด ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ ์ฐจ๋ก€๋Š” ๋‹ค์‹œ๋งˆ์ž…๋‹ˆ๋‹ค.

@thedrow 4.3 ๋ฆด๋ฆฌ์Šค์—์„œ ๋น ์ง„ ๊ฒƒ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? Kombu PR์€ ์ด๋ฏธ ๋ณ‘ํ•ฉ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. Kombu์˜ ์ƒˆ ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? https://github.com/celery/celery/milestone/20 ์—์„œ ๋ชจ๋“  ๊ฒƒ์— ๋Œ€ํ•œ ์ˆ˜์ •์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ 

๋‚ด๊ฐ€ ๋„์šธ ์ˆ˜ ์žˆ๋Š” ๊ณณ์„ ์ฐพ์œผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

Kombu 4.3์— ์ค‘์š”ํ•œ ๋ฌธ์ œ๋ฅผ ๋ถ„๋ฅ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
https://github.com/celery/celery/issues?q=is%3Aopen+label%3A%22Status%3A+Needs+Test+Coverage+%E2%9C%98%22+milestone%3Av4.3 ๋˜๋Š” https://github.com/celery/kombu/pull/911 ์ด ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ Kombu์˜ ์ถœ์‹œ์— ๋Œ€ํ•ด ๊ฑฐ์˜ ์ค€๋น„๊ฐ€ ๋˜์–ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ํ™•์ธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ ์‚ฌ์ด์— ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ ์ž‘์—…์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

#5259์˜ ๋ถ„์Ÿ์„ ํ•ด๊ฒฐํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๊นŒ?

celery/kombu#911์„ ํŽธ์ง‘ํ•  ์ˆ˜ ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ PR์„ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค. https://github.com/celery/kombu/pull/991

#5206๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. #5289๋ฅผ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค.

StopIteration : Kombu์—์„œ๋Š” ValueError ๋ฅผ StopIteration ๋กœ "๋ณ€ํ™˜"ํ•˜์ง€ ์•Š๋„๋ก ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. https://github.com/celery/kombu/pull/972/ ํŒŒ์ผ

๊ทธ๋Ÿฌ๋‚˜ ์…€๋Ÿฌ๋ฆฌ worker.loops.asynloop ์—์„œ StopIteration ์˜ค๋ฅ˜๊ฐ€ ํฌ์ฐฉ๋˜๊ณ  ์ด ๊ฒฝ์šฐ ์ƒˆ ๋ฃจํ”„๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์…€๋Ÿฌ๋ฆฌ๋ฅผ ๋ฐ”๊พธ์ง€ ์•Š๊ณ  ๋‹ค์‹œ๋งˆ๋งŒ ๋ฐ”๊พธ๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์„๊นŒ์š”? ์ด์ œ ์ƒˆ ๋ฃจํ”„๋ฅผ ๋งŒ๋“œ๋Š” ๋Œ€์‹  ๊ธฐ์กด(๊ทธ๋Ÿฌ๋‚˜ ๋Š์–ด์ง„?) ๋ฃจํ”„๊ฐ€ ๊ณ„์† ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์—?

https://github.com/celery/celery/blob/c1d0bfea9ad98477cbc1def99157fe5109555500/celery/worker/loops.py#L92

@larsrinn ์ด ๋ฌธ์ œ๋ฅผ ์กฐ์‚ฌํ•˜๋Š” ๊ฒƒ์„ ์žŠ์ง€ ์•Š๋„๋ก ๋ฌธ์ œ๋ฅผ ์—ด์–ด์ฃผ์„ธ์š”.

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

def len_generator(max_):
    a = 0

    while True:
        yield a
        a += 1
        if a == max_:
            return


g = len_generator(2)
print(next(g))  # 0
print(next(g))  # 1
print(next(g))  # raises StopIteration

Python 3.7์šฉ CI์— ๋Œ€ํ•œ ์‹คํŒจํ•œ ํ…Œ์ŠคํŠธ๋Š” kombu ๋งˆ์Šคํ„ฐ ๋ถ„๊ธฐ์— ๋Œ€ํ•ด ์‹คํ–‰๋˜๋Š” ๊ฒฝ์šฐ์—๋„ ํ†ต๊ณผํ•ฉ๋‹ˆ๋‹ค. ์ ์–ด๋„ ๋‚˜์—๊ฒŒ๋Š” ํ˜„์ง€์—์„œ. ๋”ฐ๋ผ์„œ kombu์˜ ์ƒˆ ๋ฒ„์ „์ด ์ถœ์‹œ๋˜๋ฉด ์ด ์ž‘์—…์—์„œ ์‹คํŒจํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. https://travis-ci.org/celery/celery/jobs/482062153

์—ฌ๊ธฐ์—๋Š” ๋น„๋™๊ธฐ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ˆ˜์ •์ด ํฌํ•จ๋ฉ๋‹ˆ๊นŒ?
์ด๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ์ถœ์‹œ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋„ค ์ €๋„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ์…€๋Ÿฌ๋ฆฌ์˜ ๋ฏธ๋ž˜์— ๋Œ€ํ•ด ์•ฝ๊ฐ„ ๋‘๋ ค์›Œํ•œ๋‹ค๊ณ  ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Python 3.7์€ ์ด๋ฏธ 7๊ฐœ์›” ๋™์•ˆ ์ถœ์‹œ๋˜์—ˆ์ง€๋งŒ ์•„์ง ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด ํ”„๋กœ์ ํŠธ๊ฐ€ ๋‹ค๋ฅธ ํ•  ์ผ์ด ๋งŽ์€ ์ž์› ๋ด‰์‚ฌ์ž์— ์˜ํ•ด ์šด์˜๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ €๋Š” ์ง€๋‚œ ๋ช‡ ์ฃผ ๋™์•ˆ ๋Œ€๋ถ€๋ถ„ ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  CI๋ฅผ ํ†ต๊ณผํ•˜๋„๋ก ํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ PR์— ๊ธฐ์—ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ณ‘ํ•ฉ์€ ๊ณ ์‚ฌํ•˜๊ณ  ๊ทธ๋“ค ์ค‘ ๋ˆ„๊ตฌ๋„ ๊ฒ€ํ† ํ•˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ชจ๋‘ ์•„์ฃผ ์‚ฌ์†Œํ•˜๋”๋ผ๋„ ๋ช‡ ์ดˆ๋Š” ์•„๋‹ˆ๋”๋ผ๋„ ๋ช‡ ๋ถ„ ์•ˆ์— ๊ฒ€ํ† ๊ฐ€ ๊ฐ€๋Šฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ƒ๋‹นํžˆ ์‹ค๋ง์Šค๋Ÿฌ์šด ๊ธฐ์—ฌ ๊ฒฝํ—˜์ž…๋‹ˆ๋‹ค.

ํ›จ์”ฌ ๋” ์ž‘์€ ๋ฆด๋ฆฌ์Šค๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์€ ํ”„๋กœ์ ํŠธ๋ฅผ ํฌ๊ฒŒ ๊ฐœ์„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. 4.3์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์ž‘์—…์ด ํ•„์š”ํ•œ ๋Œ€๊ทœ๋ชจ ๋ฆด๋ฆฌ์Šค์ด๋ฉฐ, ๊ทธ ๋™์•ˆ ๋งŽ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์‹ฌ๊ฐํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ์™€ ๊ฐ™์€ ์ค‘์š”ํ•œ ๋ฌธ์ œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” 4.2.X ๋ฆด๋ฆฌ์Šค์—์„œ ๋น ๋ฅด๊ฒŒ ์ˆ˜์ •๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน์ • ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์กฐ์ฐจ ๋ช‡ ๋‹ฌ ๋™์•ˆ ๋ฆด๋ฆฌ์Šค๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋‹ค์ง€ ์œ ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@larsrinn ์‹œ๊ฐ„์ด ๋˜๋ฉด PR์„ ๊ฒ€ํ† ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ›จ์”ฌ ๋” ์ž‘์€ ๋ฆด๋ฆฌ์Šค๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์€ ํ”„๋กœ์ ํŠธ๋ฅผ ํฌ๊ฒŒ ๊ฐœ์„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. 4.3์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์ž‘์—…์ด ํ•„์š”ํ•œ ๋Œ€๊ทœ๋ชจ ๋ฆด๋ฆฌ์Šค์ด๋ฉฐ, ๊ทธ ๋™์•ˆ ๋งŽ์€ ์‚ฌ์šฉ์ž๊ฐ€ 4.2.X ๋ฆด๋ฆฌ์Šค์—์„œ ๋น ๋ฅด๊ฒŒ ์ˆ˜์ •๋  ์ˆ˜ ์žˆ๋Š” ์‹ฌ๊ฐํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜์™€ ๊ฐ™์€ ์ค‘์š”ํ•œ ๋ฌธ์ œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน์ • ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์กฐ์ฐจ ๋ช‡ ๋‹ฌ ๋™์•ˆ ๋ฆด๋ฆฌ์Šค๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋‹ค์ง€ ์œ ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

๋‚˜๋Š” ์œ„์˜ ์ง„์ˆ ์— ํ™•์‹คํžˆ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. Python 3.7 ์ง€์›์€ ์ง€๊ธˆ ๋‚˜์—๊ฒŒ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์œ ์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ œ๊ฐ€ ์ง€๋‚œ 9๋…„ ๋™์•ˆ ์ผํ•œ ๋Œ€๋ถ€๋ถ„์˜ ํšŒ์‚ฌ๋Š” ์–ด๋–ค ์‹์œผ๋กœ๋“  Celery๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ ๋ฒ„์ „์—์„œ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฉ”์ธ์ŠคํŠธ๋ฆผ ๋ธŒ๋žœ์น˜์—์„œ ์ˆ˜์ •๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•„์š”ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ž์ฒด ํฌํฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ์ƒ๊ฐ์— ์ด ํ”„๋กœ์ ํŠธ๋Š” Django์™€ DRF์ฒ˜๋Ÿผ ํ›„์› ํ”„๋กœ๊ทธ๋žจ์„ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋†€๋ผ์šด ํ”„๋กœ์ ํŠธ ๋•๋ถ„์— ํšŒ์‚ฌ๊ฐ€ ๋ฒŒ์–ด๋“ค์ด๋Š” ๋ชจ๋“  ์ด์ต์„ ์ง€๋ถˆํ•˜๊ฒŒ ํ•˜๊ณ  ๊ทธ ๋ˆ์„ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ฃผ์–ด ๊ทธ๋“ค์ด ์ด ์ผ์— ํ’€ํƒ€์ž„์œผ๋กœ ์ผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์‹ญ์‹œ์˜ค.

Celery๋Š” ํ˜„์žฌ pytest(๋˜ ๋‹ค๋ฅธ ์ธ๊ธฐ ์žˆ๋Š” ๋ชจ๋“ˆ)์— ๋Œ€ํ•ด ์•ฝ๊ฐ„ ์†์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. #5271์€ ๋ฌธ์ œ๋ฅผ ์„ค๋ช…ํ•˜๊ณ  #5097์€ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. 4.3 ๋ฆด๋ฆฌ์Šค๊ฐ€ ๋„ˆ๋ฌด ์–ด๋ ค์›Œ์ง€๋ฉด 4.2.2๋กœ ๋งˆ์ด๋„ˆ ๋ฒ„์ „์„ ์˜ฌ๋ฆฌ๋ฉด ๋ช‡ ๊ฐ€์ง€ ์ž‘์€ ์ˆ˜์ • ์‚ฌํ•ญ(#5271 ๋ฐ ๊ธฐํƒ€ ๋ฒ„๊ทธ ์ˆ˜์ •)์ด ๋กค์—…๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ์ด๊ฒƒ์ด ๋ง์ฒ˜๋Ÿผ ์‰ฝ์ง€๋งŒ 4.3์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ ์šฐ๋ฆฌ ์ž์‹ ์˜ ํฌํฌ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋Œ€์‹  ๋ฆด๋ฆฌ์Šค ์ฃผ๊ธฐ์— ๋‹ค์‹œ ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ›Œ๋ฅญํ•œ ๋ชจ๋“ˆ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์–ด๋–ค ํšŒ์‚ฌ๊ฐ€ ์šฐ๋ฆฌ ์ž‘์—…์„ ํ›„์›ํ•  ๊ฒƒ์ž…๋‹ˆ๊นŒ? ๊ด€์‹ฌ ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ์ƒ๋Ÿฌ๋ฆฌ ํŒŒํŠธ ํƒ€์ž„/ํ’€ ํƒ€์ž„์œผ๋กœ ์ผํ•˜๋Š” ์‹œ๊ฐ„์„ ์ผ๋ถ€ ํšŒ์‚ฌ์—์„œ ์ง€์›ํ•˜๋Š” ๋ฐ ๋งค์šฐ ๊ด€์‹ฌ์ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค!

์ •๊ธฐ์ ์ธ ๊ธฐ๋ถ€์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ์„ค์ •์ด ์žˆ์—ˆ๋‹ค๋ฉด ํšŒ์‚ฌ์—์„œ ์›”๋ณ„ ์ง€์›์— ๊ฐ€์ž…ํ•˜๊ณ  ์žŠ์–ด ๋ฒ„๋ฆฌ๋Š” ๊ฒƒ์ด ๋” ์‰ฌ์› ์„ ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹จ์ˆœํ•œ ํŽ˜์ดํŒ” ์ผํšŒ์„ฑ ๊ธฐ๋ถ€ ๋ฒ„ํŠผ๋ณด๋‹ค ๋” ์•ˆ์ •์ ์ธ ์ˆ˜์ž…์›์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ•œ ๋ฒˆ์— ๋งŽ์€ ๊ฒƒ์„ ๊ธฐ๋ถ€ํ•˜๊ฑฐ๋‚˜ ์ˆ˜๋™ ์ •๊ธฐ ๊ธฐ๋ถ€๋ฅผ ๊ธฐ์–ตํ•˜๋„๋ก ์š”์ฒญํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์‰ฝ๊ฒŒ โ€‹โ€‹ํšŒ์‚ฌ๋ฅผ ์„ค๋“ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ ์…€๋Ÿฌ๋ฆฌ๊ฐ€ Python 3.7๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๋Š” ์œ ์ผํ•œ ์ฐจ๋‹จ๊ธฐ๋ผ๊ณ  ๋ง๋ถ™์ž…๋‹ˆ๋‹ค.

๊ด€๋ จ ๋งํฌ: https://tidelift.com/

ํ›„์› ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ๋†’๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ, ์‚ฌ๋žŒ๋“ค์˜ ๋จธ๋ฆฌ ์†์— ๊ทธ ์•„์ด๋””์–ด๋ฅผ ์‹ฌ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ด ์Šค๋ ˆ๋“œ ์™ธ๋ถ€์—์„œ๋Š” ์•„๋ฌด๋„ ์ด ํ”„๋กœ์ ํŠธ์— ์ง€์›์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์…€๋Ÿฌ๋ฆฌ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์„ค์น˜ํ•˜๊ณ  "์กด์žฌ"ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๊ธˆ์„ ์‹œ์ž‘ํ–ˆ๋‹ค๋ฉด ๋งŽ์€ ๊ธฐ์—…๋“ค์ด ๊ธฐ๋ถ€๋ฅผ ํ–ˆ์„ ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
README์—์„œ ๊ธฐ๋ถ€ ๋งํฌ๋ฅผ ๋ณด๊ณ  ๊ฐœ์ธ ๊ณ„์ •์—์„œ ์•ฝ๊ฐ„์˜ ๊ธฐ๋ถ€๋ฅผ ํ–ˆ์ง€๋งŒ ํšŒ์‚ฌ์—์„œ ์•Œ์•„์ฐจ๋ฆฌ๊ธฐ์—๋Š” ์—ฌ์ „ํžˆ ๋„ˆ๋ฌด ๋ชจํ˜ธํ•ฉ๋‹ˆ๋‹ค. (์ ์–ด๋„ ๋ชจ๋“  ์†Œ์…œ ๋„คํŠธ์›Œํฌ์—์„œ) ๋ฐ”๋กœ ์•ž์— ์žˆ์–ด์•ผ ํ•˜๋ฉฐ ์ ์ ˆํ•œ ํด๋ฆญ ์œ ๋„๋ฌธ์•ˆ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ท€ํ•˜๊ฐ€ ๊ฐœ๋ฐœ์ž์ด๊ณ  ๊ท€ํ•˜์˜ ํšŒ์‚ฌ๊ฐ€ ์ƒ๋Ÿฌ๋ฆฌ์— ์˜์กดํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด ๊ด€๋ฆฌ์ž์—๊ฒŒ ๊ธฐ๋ถ€๋ฅผ ์š”์ฒญํ•˜์‹ญ์‹œ์˜ค.
์ €๋Š” ์ œ๊ฐ€ ์ข‹์•„ํ•˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์—์„œ ์กฐ์ง์ ์ธ ๋ชจ๊ธˆ ํ–‰์‚ฌ๋ฅผ ๋ณผ ๋•Œ๋งˆ๋‹ค ํ•ญ์ƒ ์†Œ์…œ ๋ฏธ๋””์–ด ์บ ํŽ˜์ธ์„ ๊ธฐ๋ถ€ํ•˜๊ฑฐ๋‚˜ ์ตœ์†Œํ•œ ํผ๋œจ๋ฆฌ๋ ค๊ณ  ๋…ธ๋ ฅํ•œ๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๊ฐ™์€ ์ผ์„ ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.

ํŽ€๋”ฉ์„ ์ง„ํ–‰ํ–ˆ๋Š”๋ฐ ๋Œ€์‹คํŒจ!! readme์— opencollective ๋ฐ ์กฐ์ˆ˜ ๋ฆฌํ”„ํŠธ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€์‹ฌ ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์€ ๊ทธ๊ณณ์— ๊ธฐ๋ถ€/ํ›„์›ํ•˜๊ฑฐ๋‚˜ ๋‚ด ์ด๋ฉ”์ผ๋กœ ์ง์ ‘ ํ•‘์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@auvipy 4.3 ์ด์ •ํ‘œ์˜ ๋Œ€๋ถ€๋ถ„์˜ ๋ฌธ์ œ๊ฐ€ ์ง€๊ธˆ ์ด๋™๋˜๊ฑฐ๋‚˜ ์ข…๋ฃŒ๋œ ๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค.
๊ณง 4.3 ๋ฆด๋ฆฌ์Šค๋ฅผ ํ•  ๊ณ„ํš์ž…๋‹ˆ๊นŒ?

์˜ˆ!!! ์˜ค๋žœ๋งŒ์ด๋‹ˆ๊นŒ!!

์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ณง RC๋ฅผ ๊ธฐ๋Œ€ํ•˜์„ธ์š”.

ํŽ€๋”ฉ์„ ์ง„ํ–‰ํ–ˆ๋Š”๋ฐ ๋Œ€์‹คํŒจ!! readme์— opencollective ๋ฐ ์กฐ์ˆ˜ ๋ฆฌํ”„ํŠธ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€์‹ฌ ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์€ ๊ทธ๊ณณ์— ๊ธฐ๋ถ€/ํ›„์›ํ•˜๊ฑฐ๋‚˜ ๋‚ด ์ด๋ฉ”์ผ๋กœ ์ง์ ‘ ํ•‘์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์…€๋Ÿฌ๋ฆฌ ์ž‘๊ฐ€. ์ €๋Š” https://opencollective.com/celery์—์„œ ํ›„์›์ž๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์˜ ๋ฉ‹์ง„ ๋„๊ตฌ๋ฅผ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์˜ ๋„๊ตฌ๋Š” ์ €์—๊ฒŒ ๋งŽ์€ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค :)

๋Œ€ํ™ฉ ์œผ๋กœ ์ฝ”๋“œ๋ช… 4.3์— ๋ฐ˜๋Œ€ํ•˜๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?
Selected Ambient Works II์—์„œ ๋‚ด๊ฐ€ ๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ํŠธ๋ž™ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์ œ์•ˆ ์‚ฌํ•ญ์ด ์žˆ์œผ๋ฉด ์—ฌ๊ธฐ์— ๋ฉ”๋ชจํ•ด ๋‘์‹ญ์‹œ์˜ค.

์ข‹์•„์š” :)

Kombu 4.3์ด ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!

๋ˆ„๊ตฐ๊ฐ€ ์šฐ๋ฆฌ์˜ Windows ๋นŒ๋“œ๋ฅผ ๋ด์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?
์ผ๋ถ€ ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํŒจํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ ์ผ๋ถ€ Python ๋ฒ„์ „์ด ๋ˆ„๋ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๋‹จ, ์ฐจ๋‹จ๊ธฐ๋Š” ์•„๋‹˜).

@thedrow Windows ๋นŒ๋“œ๋Š” ์–ด๋””์—์„œ ์‹คํ–‰๋˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์•ฑ๋ฒ ์ด์–ด?

๋ˆ„๊ตฐ๊ฐ€ ์šฐ๋ฆฌ์˜ Windows ๋นŒ๋“œ๋ฅผ ๋ด์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?
์ผ๋ถ€ ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํŒจํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ ์ผ๋ถ€ Python ๋ฒ„์ „์ด ๋ˆ„๋ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๋‹จ, ์ฐจ๋‹จ๊ธฐ๋Š” ์•„๋‹˜).

์—ฌ๊ธฐ ํ™๋ณด https://github.com/celery/celery/pull/5329

๊ทธ๋Ÿผ 4.3์€ ์ด์ œ ๊ฐ€๋„ ๋ ๊นŒ์š”?

์•ˆ๋…•ํ•˜์„ธ์š”! ์ด ๋ฌธ์ œ๋ฅผ ์ข…๋ฃŒํ–ˆ์ง€๋งŒ pypi์˜ ๋ฒ„์ „์€ ์—ฌ์ „ํžˆ โ€‹โ€‹4.2.1์ž…๋‹ˆ๋‹ค. pypi์—์„œ ๋ฆด๋ฆฌ์Šค๋ฅผ ์ถ”์ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๊ฐ์‚ฌ ํ•ด์š”.

์•ˆ๋…• ์—ฌ๋Ÿฌ๋ถ„,

@seirl ์ด ๋ฌธ์ œ๋Š” #5329์— ๋Œ€ํ•œ ์„ค๋ช…์œผ๋กœ ์ธํ•ด Fixes #5180 ํ…์ŠคํŠธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์–ด ์‹ค์ˆ˜๋กœ ์ข…๋ฃŒ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@auvipy 4.3 ๊ฐ€ ์‹ค์ œ๋กœ ์ถœ์‹œ๋˜์ง€ ์•Š์„ ๋•Œ๊นŒ์ง€ ์ด ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์—ด์–ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?
๊ฐ์‚ฌ ํ•ด์š”!

๋‚ด ๋‚˜์œ, ๋‚˜๋Š” ์ž๋™ ๋‹ซ๊ธฐ๊ฐ€ ํ’€๋ฆฌ์˜ ์˜ต์…˜ ์ผ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ GitHub์— ์˜ํ•ด ์ž๋™์œผ๋กœ ๋‹ซํ˜”์Šต๋‹ˆ๋‹ค!!!

@xirdneh ๋„ค .

Changelog๋ฅผ ๊ฑฐ์˜ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„์ง ์ผ๋ถ€ ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์„ค๋ช…ํ•ด์•ผ ํ•˜๊ณ  ์•„์ง ์–ป์ง€ ๋ชปํ•œ ๋‚˜๋จธ์ง€ ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•˜๋Š” ์ž‘์—…์„ ์™„๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์„น์…˜์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋Œ€๋ถ€๋ถ„ ๋ถˆ์™„์ „ํ•ฉ๋‹ˆ๋‹ค.

์–ด๋–ค ์‹์œผ๋กœ๋“  ์ž์œ ๋กญ๊ฒŒ ๋„์™€์ฃผ์„ธ์š”.

GA์— ๋Œ€ํ•œ ์ž ์žฌ์  ์ฐจ๋‹จ๊ธฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค: https://github.com/celery/kombu/issues/1006
RC๋Š” ๊ณ„ํš๋Œ€๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.
FreeBSD ์„ค์น˜์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์ด๊ฒƒ์„ ๋””๋ฒ„๊ทธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์—ฌ๋Ÿฌ๋ถ„, ์•ˆ๋…•ํ•˜์„ธ์š”. ๋„์ฐฉ ์˜ˆ์ • ์‹œ๊ฐ„์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋ฐฉ๊ธˆ ์ฒซ ๋ฒˆ์งธ RC์— ๋Œ€ํ•œ ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ๋ฅผ ๋งˆ์ณค์Šต๋‹ˆ๋‹ค.
์˜ค๋Š˜ ๋ฐœ๋งค๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

์•ˆ์ •์ ์ธ ์ถœ์‹œ๋ฅผ ์œ„ํ•œ ETA๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์ด ๋ช‡ ์ฃผ ๋™์•ˆ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ์‹œ๋„๋˜๋ฉด GA๋ฅผ ์„ ์–ธํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๊ฐ€๊นŒ์šด ์‹œ์ผ ๋‚ด์— ๋ฆด๋ฆฌ์Šค ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐœ์„ ํ•˜๊ณ  ๋ฌธ์„œํ™”ํ•˜์—ฌ ๋ชจ๋“  ๊ฒƒ์ด ๋” ๋ช…ํ™•ํ•ด์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

RC1์ด ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. :ํƒ€๋‹ค:
์Šคํ…Œ์ด์ง• ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•ด ๋ณด์‹ญ์‹œ์˜ค.

ํ•œํŽธ, ๋ˆ„๊ตฐ๊ฐ€ https://github.com/celery/kombu/issues/1006 , https://github.com/celery/kombu/issues/1007 ๋ฐ https://github๋ฅผ ์ž์„ธํžˆ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ๋‹ค๋ฉด

https://github.com/celery/kombu/pull/1009 ์—์„œ https://github.com/celery/kombu/issues/1007์— ๋Œ€ํ•œ ์ž ์žฌ์ ์ธ ์ˆ˜์ • ์‚ฌํ•ญ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

https://github.com/celery/kombu/issues/1004 ๊ฐ€ ๊ฐ™์€ ์˜์—ญ์— ์žˆ๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ์ด์— ๋Œ€ํ•œ ์ˆ˜์ •๋„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. https://github.com/celery/kombu/pull/1010

์ด์ œ ๋‘˜ ๋‹ค ๋ณ‘ํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@lithammer ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ด๊ฒƒ์ด ๋„ˆ๋ฌด ์žฌ๋ฏธ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋งˆ์ง€๋ง‰ ๋ฌธ์ œ์— ๋Œ€ํ•ด ํ•˜๋‚˜๊ฐ€ ์•„๋‹ˆ๋ผ ๋‘ ๊ฐ€์ง€ ์†”๋ฃจ์…˜ ์ œ์•ˆ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค(https://github.com/celery/kombu/issues/1006).

https://github.com/celery/py-amqp/pull/258 ์„ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ์—์„œ ์ž ์‹œ ํœด์‹์„ ์ทจํ–ˆ์Šต๋‹ˆ๋‹ค
์ƒˆ๋กœ์šด ๋ฌธ์„œ๋ฅผ ๊ณ„์† ์ง„ํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Kombu 4.4์™€ Celery 4.3.0RC2๋ฅผ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด์˜๋‚˜ ์ค‘์š”ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์—†๋Š” ํ•œ ์ด๊ฒƒ์ด ๋งˆ์ง€๋ง‰ RC๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฐฉ๊ธˆ py-amqp 2.4.3๋„ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.
๋‘ ๊ฐ€์ง€ ์‹ฌ๊ฐํ•œ ์—ญ์ง๋ ฌํ™” ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ”„๋กœ๋•์…˜์—์„œ ๊ทธ๋“ค์— ๋Œ€ํ•ด ์•„๋ฌด๊ฒƒ๋„ ๋“ฃ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
AMQP ํ”„๋กœํ† ์ฝœ์— ๋‘ ๊ฐœ์˜ ๊ฒฐ๊ณผ ๋น„ํŠธ๋งต์ด ์žˆ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Celery๊ฐ€ ์ถฉ๋Œํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์™„์ „ํ•˜๊ฒŒ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

@thedrow์˜ ํ›Œ๋ฅญํ•œ ์ž‘์—…์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

GA์— ๋Œ€ํ•œ ์ž ์žฌ์  ์ฐจ๋‹จ: https://github.com/celery/celery/issues/5371

@thedrow ์ด๋ฒˆ ์ฃผ์— ์ด๋ฅผ ํ™•์ธํ•  ์‹œ๊ฐ„์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ๋ฌธ์ œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@xirdneh ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š์œผ๋ฉด ์—…๋ฐ์ดํŠธํ•ด ์ฃผ์‹œ๋ฉด ์ฒ˜๋ฆฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@lithammer ๋” ๊ธฐ์—ฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ปค๋ฐ‹ ๊ถŒํ•œ๋„ ๋ถ€์—ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค :)

GA์— ๋Œ€ํ•œ ํ™•์‹คํ•œ ์ฐจ๋‹จ๊ธฐ: #5377

์ด ๋ฆด๋ฆฌ์Šค ์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๋ฌธ์„œ ๋ฅผ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์„ ๊ฒ€ํ† ํ•˜๊ณ  ๋‚ด๊ฐ€ ๋†“์นœ ๊ฒƒ์ด ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

@thedrow ๋Š” ๋งค์šฐ ์ฒ ์ €ํ•˜๊ณ 

์•„์ง ๊ธฐ์—ฌ ๋ชฉ๋ก์„ ์ƒ์„ฑํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
GA ์ง์ „์— ๊ทธ๋ ‡๊ฒŒ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ ๋ฆด๋ฆฌ์Šค ์ฐจ๋‹จ๊ธฐ ๋ชฉ๋ก์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ž ์žฌ์  ์ฐจ๋‹จ์ œ:

@thedrow https://github.com/celery/celery/issues/5383 ๋„ ์œ ํšจํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋ฐฉ๊ธˆ Celery 4.3.0rc3์„ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์—๋Š” ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์ผ๋ถ€ ํ•ด๊ฒฐ๋œ ์ฐจ๋‹จ๊ธฐ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์ •์‹ ๋ฒ„์ „์ด ์–ธ์ œ ์ œ๊ณต๋˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์šฐ๋ฆฌ๊ฐ€ ๋ชจ๋“  ์ฐจ๋‹จ๊ธฐ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์„ ๋งˆ์น˜๋ฉด.

์ฐจ๋‹จ๊ธฐ ํ•˜๋‚˜๋งŒ ๋‚จ์•˜๊ณ  ์ตœ์ข… ๋ฌธ์„œ ์ž‘์—…๋งŒ ๋‚จ์•˜์Šต๋‹ˆ๋‹ค.

@thedrow ๋Š” celery/kombu#1014๊ฐ€ ๋˜๋Œ๋ฆฌ๊ธฐ ๊ธฐ๋ฐ˜ PR์— ์˜ํ•ด ํ์‡„๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์— ์™„์ „ํ•œ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. unique ํ‚ค์›Œ๋“œ๊ฐ€ ์•„์ง ์ง€์›๋˜์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆ์™„์ „ํ•ฉ๋‹ˆ๊นŒ?

์˜ˆ. ๋‚ด์ผ ์ตœ์ข… ๋ฌธ์„œํ™” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ถœ์‹œ ๋œ! :ํƒ€๋‹ค:

์—ฌ๋Ÿฌ๋ถ„์˜ ๋…ธ๋ ฅ, ์‹œ๊ฐ„, ๊ธฐ์ˆ ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๋‹ค์Œ ๋ฒ„์ „์ธ Celery 5๋Š” ๋งค์šฐ ๊ธฐ๋Œ€๋ฉ๋‹ˆ๋‹ค.

๋งˆ์Šคํ„ฐ์—์„œ python2 ์ œ๊ฑฐ๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

Celery 5๊ฐ€ ์–ธ์ œ ์ถœ์‹œ๋˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์–ด ์ •๋ง ๊ธฐ์ฉ๋‹ˆ๋‹ค.

์•„๋งˆ๋„ ํฌ๋ฆฌ์Šค๋งˆ์Šค ์ „์— ๋ช‡ ๋ฒˆ :)

@auvipy 4.3์— ๋Œ€ํ•œ ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์„ ๋ฐœํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์˜ˆ, ๋ฌผ๋ก  kast ng=ight๋ฅผ ์‹œ์ž‘ํ–ˆ์ง€๋งŒ ๋ฐ”๋นด์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜๊นŒ์ง€ ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

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