Skip to content
/ rasa Public
forked from RasaHQ/rasa

๐Ÿ’ฌ Open source machine learning framework to automate text- and voice-based conversations: NLU, dialogue management, connect to Slack, Facebook, and more - Create chatbots and voice assistants

License

Notifications You must be signed in to change notification settings

suhyunie/rasa

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Rasa Open Source

Join the chat on Rasa Community Forum PyPI version Supported Python Versions Build Status Coverage Status Documentation Status Documentation Build FOSSA Status PRs Welcome

An image with Sara, the Rasa mascot, standing next to a roadmap with future Rasa milestones: identifying unsuccessful conversations at scale, continuous model evaluation, controllable NLG and breaking free from intents. Are you excited about these milestones? Help us make these ideas become reality - we're hiring!


๐Ÿ’ก Rasa ์˜คํ”ˆ ์†Œ์Šค 3.0์ด ์ถœ์‹œ๋ฉ๋‹ˆ๋‹ค! ๐Ÿ’ก

3.0์˜ ์•„ํ‚คํ…์ฒ˜ ๋ณ€๊ฒฝ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋™์•ˆ ๋งˆ์ด๋„ˆ ๋ฆด๋ฆฌ์ฆˆ๋ฅผ ์ž ์‹œ ์ค‘๋‹จํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— 2.8์€ 2.x ์‹œ๋ฆฌ์ฆˆ์˜ ๋งˆ์ง€๋ง‰ ๋งˆ์ด๋„ˆ ๋ฒ„์ „์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹น์‹ ์€ 3.0๊ณผ ํ•จ๊ป˜ ์ถœ์‹œํ•  ์˜ˆ์ •์ธ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ๊ฐœ์„  ์‚ฌํ•ญ์— ๊ณ„์† ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปจํŠธ๋ฆฌ๋ทฐํ„ฐ ๊ฐ€์ด๋“œ๋ผ์ธ์— ๋Œ€ํ•ด์„œ ์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š”.

๋น ๋ฅธ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๊ธฐ ์œ„ํ•ด ์•ž์œผ๋กœ ๋ช‡ ๋‹ฌ ๋™์•ˆ ์•ŒํŒŒ ๋ฆด๋ฆฌ์ฆˆ์™€ ๋ฆด๋ฆฌ์ฆˆ ํ›„๋ณด๋ฅผ ์ถœ์‹œํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค. ๊ณ„์† ์ง€์ผœ๋ด ์ฃผ์„ธ์š”!


An image of Sara, the Rasa mascot bird, holding a flag that reads Open Source with one wing, and a wrench in the other

Rasa๋Š” ํ…์ŠคํŠธ ๋ฐ ์Œ์„ฑ ๊ธฐ๋ฐ˜ ๋Œ€ํ™”๋ฅผ ์ž๋™ํ™”ํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค ๋จธ์‹ ๋Ÿฌ๋‹ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. Rasa๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ƒํ™ฉ๋ณ„ ๊ธฐ๋Šฅ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

- ํŽ˜์ด์Šค๋ถ ๋ฉ”์‹ ์ €(Facebook Messenger)
- ์Šฌ๋ž™(Slack)
- ๊ตฌ๊ธ€ ํ–‰์•„์›ƒ(Google Hangouts)
- ์›น์—‘์Šค ํŒ€์ฆˆ (Webex Teams)
- ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ๋ด‡ ํ”„๋ ˆ์ž„์›Œํฌ(Microsoft Bot Framework)
- ๋กœ์ผ“์ฑ—(Rocket.chat)
- ๋งคํ„ฐ๋ชจ์ŠคํŠธ(Mattermost)
- ํ…”๋ ˆ๊ทธ๋žจ(Telegram)
- ํŠธ์œŒ๋ฆฌ์˜ค(Twilio)
- ๋‚˜๋งŒ์˜ ๋งž์ถค ๋Œ€ํ™” ์ฑ„๋„

๋˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์Œ์„ฑ ๋น„์„œ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  • ์•Œ๋ ‰์‚ฌ ์Šคํ‚ฌ(Alexa Skills)
  • ๊ตฌ๊ธ€ ํ™ˆ ์•ก์…˜(Google Home Actions)

Rasa๋Š” ๋งŽ์€ ๋Œ€ํ™”๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ๋ณ„ ์–ด์‹œ์Šคํ„ดํŠธ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.์‚ฌ๋žŒ์ด ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋น„์„œ์™€ ์˜๋ฏธ ์žˆ๋Š” ๊ตํ™˜์„ ํ•˜๋ ค๋ฉด ๋น„์„œ๊ฐ€ ์ƒํ™ฉ์„ ์ด์šฉํ•˜์—ฌ ์ด์ „์— ๋…ผ์˜๋œ ๋‚ด์šฉ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Rasa๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๋ฐฉ์‹์œผ๋กœ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋น„์„œ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์—๋Š” ๋” ๋งŽ์€ ๋ฐฐ๊ฒฝ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.



๋„์›€์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ณณ

Rasa Docs.์—๋Š” ๊ด‘๋ฒ”์œ„ํ•œ ๋ฌธ์„œ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์„ค์น˜ํ•œ ๋ฒ„์ „์— ๋Œ€ํ•œ ๋ฌธ์„œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ์˜ฌ๋ฐ”๋ฅธ ๋ฒ„์ „์„ ์„ ํƒํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋น ๋ฅธ ๋‹ต๋ณ€์€ Rasa ์ปค๋ฎค๋‹ˆํ‹ฐ ํฌ๋Ÿผ์„ ์ด์šฉํ•ด์ฃผ์„ธ์š”.

README ๋‚ด์šฉ:

how-to-contribute

์šฐ๋ฆฌ๋Š” ๊ท€ํ•˜์˜ ๊ธฐ์—ฌ๋ฅผ ์ด ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— mergeํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์–ด ๋งค์šฐ ๊ธฐ์ฉ๋‹ˆ๋‹ค!

pull ์š”์ฒญ์„ ํ†ตํ•ด ๊ธฐ์—ฌํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”:

  1. ์ž‘์—…ํ•˜๋ ค๋Š” ๊ธฐ๋Šฅ์„ ์„ค๋ช…ํ•˜๋Š” issue๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค (๋˜๋Š” ์ปจํŠธ๋ฆฌ๋ทฐํ„ฐ ๋ณด๋“œ์„ ์ฐธ์กฐํ•˜์„ธ์š”.)
  2. ์ฝ”๋“œ, ํ…Œ์ŠคํŠธ ๋ฐ ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  black์œผ๋กœ ํ˜•์‹์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค
  3. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์„ค๋ช…ํ•˜๋Š” pull request๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค

์ฝ”๋“œ๋ฅผ ๊ธฐ์—ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ง€์นจ์€ ์ฝ”๋“œ ์ปจํŠธ๋ฆฌ๋ทฐํ„ฐ ๊ฐ€์ด๋“œ๋ผ์ธ์„ ํ™•์ธํ•˜์„ธ์š”.

์ €ํฌ ์›น์‚ฌ์ดํŠธ์—์„œ Rasa์— ๊ธฐ์—ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ( ๋‹ค๋ฅธ ๋งŽ์€ ๋ฐฉ๋ฒ•๋“ค๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค!)

๊ท€ํ•˜์˜ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ์— ๋Œ€ํ•œ ๊ฒ€ํ† ๋Š” ์œ ์ง€ ๋ณด์ˆ˜ ๋‹ด๋‹น์ž๊ฐ€ ์ง„ํ–‰ํ•˜๋ฉฐ, ๋‹ด๋‹น์ž๊ฐ€ ํ•„์š”ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด๋‚˜ ์งˆ๋ฌธ์— ๋Œ€ํ•ด ํšŒ์‹ ํ•ด ๋“œ๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์ปจํŠธ๋ฆฌ๋ทฐํ„ฐ ๋ผ์ด์„ผ์Šค ๊ณ„์•ฝ์— ๊ท€ํ•˜์˜ ์„œ๋ช…์„ ์š”์ฒญํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Development Internals

Poetry ์„ค์น˜

Rasa๋Š” ํŒจํ‚ค์ง•๊ณผ ์˜์กด์„ฑ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด Poetry๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์›๋ณธ์—์„œ ๋นŒ๋“œํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ๋จผ์ € Poetry๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„ค์น˜ ๋ฐฉ๋ฒ•:

curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python

Poetry๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์˜ต์…˜์„ ๋ณด๋ ค๋ฉด ๊ณต์‹ ๊ฐ€์ด๋“œ๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

ํ™˜๊ฒฝ ๊ด€๋ฆฌ

๊ณต์‹ Poetry ๊ฐ€์ด๋“œ์—์„œ๋Š” ํŒŒ์ด์ฌ ๋ฒ„์ „ ๊ฐ„์— ์‰ฝ๊ฒŒ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋„๋ก pyenv ๋˜๋Š” ๋‹ค๋ฅธ ๋น„์Šทํ•œ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. ์„ค์น˜ ๋ฐฉ๋ฒ•:

pyenv install 3.7.9
pyenv local 3.7.9  # ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด ํŒŒ์ด์ฌ 3.7.9 ํ™œ์„ฑํ™”

์ฃผ์˜: ํŠน์ • ๋ฒ„์ „์˜ ํŒŒ์ด์ฌ์„ ์„ค์น˜ํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ง€์›๋˜๋Š” ๋‹ค๋ฅธ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

๊ธฐ๋ณธ์ ์œผ๋กœ, Poetry๋Š” ํ˜„์žฌ ํ™œ์„ฑํ™”๋œ ํŒŒ์ด์ฌ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์˜ ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๋ ค๊ณ  ์‹œ๋„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์ˆ˜๋™์œผ๋กœ ๋งŒ๋“ค๊ณ  ํ™œ์„ฑํ™”ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. โ€” ์ด ๊ฒฝ์šฐ, Poetry๋Š” ๊ทธ๊ฒƒ์„ dependencies๋ฅผ ์„ค์น˜ํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด:

python -m venv .venv
source .venv/bin/activate

์‹คํ–‰์„ ํ†ตํ•ด ํ™˜๊ฒฝ์ด ์„ ํƒ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

poetry env info

์›๋ณธ์—์„œ ๋นŒ๋“œ

ํŽธ์ง‘ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“œ์—์„œ dependencies์™€ rasa๋ฅผ ์„ค์น˜ํ•˜๋ ค๋ฉด

make install

macOS ์œ ์ €๋ผ๋ฉด: macOS Big Sur์— dependencies์— ๋Œ€ํ•œ ๋ช‡๊ฐ€์ง€ ์ปดํŒŒ์ผ๋Ÿฌ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. . ์„ค์น˜ ์ „์— export SYSTEM_VERSION_COMPAT=1 ์‚ฌ์šฉํ•˜๋ฉด ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

documentation ์‹คํ–‰ ๋ฐ ๋ณ€๊ฒฝ

๋จผ์ €, ํ•„์š”ํ•œ ๋ชจ๋“  dependencies๋ฅผ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค:

make install install-docs

์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์„œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

make livedocs

๋ธŒ๋ผ์šฐ์ €์— ์žˆ๋Š” ๋ฌธ์„œ์˜ ๋กœ์ปฌ ๋ฒ„์ „์œผ๋กœ ์ƒˆ ํƒญ์„ ์—ด์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค; ์—ด์ง€ ๋ชปํ–ˆ๋‹ค๋ฉด, ๋ธŒ๋ผ์šฐ์ €์—์„œ http://localhost:3000 ์— ์ ‘์†ํ•˜์‹ญ์‹œ์˜ค. ์ด์ œ ๋ฌธ์„œ๋ฅผ ๋กœ์ปฌ์—์„œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์›น ํŽ˜์ด์ง€๊ฐ€ ์ž๋™์œผ๋กœ ๋กœ๋“œ๋˜์–ด ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ์‹คํ–‰

ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด, ๋จผ์ € ๊ฐœ๋ฐœ ์š”๊ตฌ ์‚ฌํ•ญ์ด ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค:

make prepare-tests-ubuntu # Ubuntu, Debian based systems์—์„œ๋งŒ
make prepare-tests-macos  # macOS์—์„œ๋งŒ

๊ทธ๋ฆฌ๊ณ , ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”:

make test

์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์ž‘์—…์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

JOBS=[n] make test

[n]์€ ์›ํ•˜๋Š” ์ž‘์—…์˜ ๊ฐœ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ƒ๋žตํ•  ๊ฒฝ์šฐ, [n]์€ pytest๋ฅผ ํ†ตํ•ด ์ž๋™์œผ๋กœ ์„ ํƒ๋ฉ๋‹ˆ๋‹ค.

ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ์‹คํ–‰

ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด, ๊ฐœ๋ฐœ ์š”๊ตฌ ์‚ฌํ•ญ์ด ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

make prepare-tests-ubuntu # Ubuntu, Debian based systems์—์„œ๋งŒ
make prepare-tests-macos  # macOS์—์„œ๋งŒ

๊ทธ๋Ÿฐ ๋‹ค์Œ, Docker Compose๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค์Œ ๋ช…๋ น์œผ๋กœ ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

make run-integration-containers

๋งˆ์ง€๋ง‰์œผ๋กœ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

make test-integration

๋ณ‘ํ•ฉ ์ถฉ๋Œ ํ•ด๊ฒฐ

Poetry์—๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ž ๊ธˆ ํŒŒ์ผ poetry.lock์˜ ๋ณ‘ํ•ฉ ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์†”๋ฃจ์…˜์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, poetry-merge-lock๋ผ๋Š” ์ข‹์€ ๋„๊ตฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ค์น˜ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค:

pip install poetry-merge-lock

poetry.lock์—์„œ ๋ณ‘ํ•ฉ ์ถฉ๋Œ์„ ์ž๋™์œผ๋กœ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์ด ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค:

poetry-merge-lock

๋„์ปค ์ด๋ฏธ์ง€ ๋กœ์ปฌ ์ž‘์„ฑ

๋กœ์ปฌ ์ปดํ“จํ„ฐ์— ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ์ž‘์„ฑํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค:

make build-docker

๋„์ปค ์ด๋ฏธ์ง€๋Š” ๋กœ์ปฌ ์ปดํ“จํ„ฐ์—์„œ rasa:localdev๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ ์Šคํƒ€์ผ

ํ‘œ์ค€ํ™”๋œ ์ฝ”๋“œ ์Šคํƒ€์ผ์„ ์œ„ํ•ด ํฌ๋งทํ„ฐ black์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์œ ํ˜• ์ฃผ์„์ด ์˜ฌ๋ฐ”๋ฅธ์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด pytype์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์˜ ์ฝ”๋“œ๊ฐ€ ์ œ๋Œ€๋กœ ํฌ๋งท๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ Check๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด, GitHub๊ฐ€ ๋นŒ๋“œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์„œ์‹ ์„ค์ •

๋ชจ๋“  ์ปค๋ฐ‹์—์„œ ์ฝ”๋“œ๋ฅผ ์ž๋™์œผ๋กœ ํฌ๋งทํ•˜๋ ค๋ฉด pre-commit์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. pip install pre-commit์„ ํ†ตํ•ด ์„ค์น˜ํ•˜๊ณ  ๋ฃจํŠธ ํด๋”์—์„œ pre-commit install์„ ์‹คํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ชจ๋“  ์ปค๋ฐ‹์—์„œ ํŒŒ์ผ์„ ์žฌ๊ตฌ์„ฑํ•˜๋Š” ํ›„ํฌ๊ฐ€ ์ €์žฅ์†Œ์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

์ˆ˜๋™์œผ๋กœ ์„ค์ •ํ•˜๋ ค๋ฉด poetry install์„ ํ†ตํ•ด black์„ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค. ํŒŒ์ผ์„ ๋‹ค์‹œ ํฌ๋งทํ•˜๋ ค๋ฉด ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.

make formatter

์œ ํ˜• ํ™•์ธ

์ฝ”๋“œ๋ฒ ์ด์Šค์—์„œ ํƒ€์ž…์„ ํ™•์ธํ•˜๋ ค๋ฉด poetry install์„ ์‚ฌ์šฉํ•˜์—ฌ mypy์„ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค. ํƒ€์ž…์„ ํ™•์ธํ•˜๋ ค๋ฉด ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.

make types

๋ฌธ์„œ ์—…๋ฐ์ดํŠธ ๋ฐฐํฌ

์šฐ๋ฆฌ๋Š” Docusaurus v2๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํƒœ๊ทธ๊ฐ€ ์ง€์ •๋œ ๋ฒ„์ „๊ณผ main ๋ธŒ๋žœ์น˜์— ๋Œ€ํ•œ ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋นŒ๋“œ๋˜๋Š” ์ •์  ์‚ฌ์ดํŠธ๋Š” ์ด ์ €์žฅ์†Œ์˜ documentation ๋ธŒ๋žœ์น˜๋กœ ํ‘ธ์‹œ๋ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” netlify๋กœ ์‚ฌ์ดํŠธ๋ฅผ ์ฃผ์ตœํ•ฉ๋‹ˆ๋‹ค. main ๋ธŒ๋žœ์น˜ ๋นŒ๋“œ์—์„œ (.github/workflows/documentation.yml๋ฅผ ํ™•์ธํ•˜์„ธ์š”), ์šฐ๋ฆฌ๋Š” ๋นŒ๋“œ๋œ ๋ฌธ์„œ๋ฅผ documentation ๋ธŒ๋žœ์น˜๋กœ ํ‘ธ์‹œํ•ฉ๋‹ˆ๋‹ค. Netlify๋Š” ํ•ด๋‹น ๋ธŒ๋žœ์น˜๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ์ž๋™์œผ๋กœ ๋ฌธ์„œ ํŽ˜์ด์ง€๋ฅผ ๋‹ค์‹œ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค

Releases

Minor Releases๋ฅผ ์œ„ํ•œ Release ์‹œ๊ฐ„ํ‘œ

Rasa ์˜คํ”ˆ ์†Œ์Šค์˜ ๊ฒฝ์šฐ ์ผ๋ฐ˜์ ์œผ๋กœ ์‹œ๊ฐ„ ๊ธฐ๋ฐ˜ Release ํŠนํžˆ ์›”๊ฐ„ Release๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํŠน์ • ๋‚ ์งœ์— ํŠน์ • ๋ฒ„์ „์˜ Rasa Open Source๋ฅผ release ํ•˜๊ฒ ๋‹ค๊ณ  ๋ฏธ๋ฆฌ ์•ฝ์†ํ•˜๊ณ , ์ผ๋ถ€ ๊ธฐ๋Šฅ์ด ์ค€๋น„๋˜์ง€ ์•Š์•˜์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— release์—์„œ ๋ฌด์—‡์„ ์ˆ˜ํ–‰ํ• ์ง€ 100% ํ™•์‹ ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๊ฐ ๋ถ„๊ธฐ ์ดˆ์— Rasa ํŒ€์€ ๋ชจ๋“  ์ œํ’ˆ์˜ ์˜ˆ์ƒ Release ๋‚ ์งœ๋ฅผ ๊ฒ€ํ† ํ•˜๊ณ  ํ•ด๋‹น ๋ถ„๊ธฐ์— ๊ณ„ํš๋œ ์˜ˆ์ƒ ์ž‘์—…๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ œํ’ˆ ์ „๋ฐ˜์— ๊ฑธ์ณ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋‚ ์งœ๊ฐ€ ์ •ํ•ด์ง€๋ฉด ๊ฐ ๋งˆ์ผ์Šคํ†ค์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

major release / minor release cutting

release ์ผ์ฃผ์ผ ์ „

  1. ๋งˆ์ผ์Šคํ†ค์ด ์ด๋ฏธ ์กด์žฌํ•˜๋Š”์ง€, ์ •ํ™•ํ•œ ๋‚ ์งœ์— ์˜ˆ์•ฝ๋˜์—ˆ๋Š”์ง€ ๊ฒ€ํ† ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋งˆ์ผ์Šคํ†ค์˜ issues ์™€ PR์„ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค: ์šฐ๋ฆฌ๊ฐ€ ์˜ฎ๊ธธ ์˜ˆ์ •์ธ Release Highlights์— ์ ํ•ฉํ•ด ๋ณด์ด๋‚˜์š”? ๋ญ”๊ฐ€ ๋†“์น˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋‚˜์š”? ๋ชจ๋“  PR์„ ์ธ์‹ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ž ์‹œ ๋™์•ˆ ๋งˆ์ผ์Šคํ†ค์„ ํ‰๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  3. Engineering Slack ์ฑ„๋„์— ๋ฉ”์‹œ์ง€๋ฅผ ๊ฒŒ์‹œํ•˜์—ฌ, Rasa ํŒ€์—๊ฒŒ ๋‹ค์Œ release์— ๋Œ€ํ•ด ์ปทํŒ…ํ•˜๊ณ  ์žˆ์Œ์„ ์•Œ๋ฆฌ๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์•Œ๋ ค ์ฃผ์‹ญ์‹œ์˜ค:
    1. ์ ์ ˆํ•œ ๋งˆ์ผ์Šคํ†ค์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    2. ๋ชจ๋“  ์‚ฌ์šฉ์ž์—๊ฒŒ issue์™€ PR์„ ๊ฒ€ํ† ํ•˜๊ณ  ๋งˆ์ผ์Šคํ†ค์— ํ• ๋‹นํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
    3. ๋ชจ๋“  ์‚ฌ์šฉ์ž์—๊ฒŒ ์˜ˆ์ƒ Release ๋‚ ์งœ๋ฅผ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.

Release ํ•˜๋ฃจ ์ „

  1. ๋งˆ์ผ์Šคํ†ค์„ ๊ฒ€ํ† ํ•˜๊ณ  ์ง„ํ–‰ ์ค‘์ธ PR ๋ณ‘ํ•ฉ์˜ ์ƒํƒœ๋ฅผ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„๊ทธ์™€ ์ˆ˜์ • ์‚ฌํ•ญ์— ๋Œ€ํ•œ ํ›„์† ์กฐ์น˜๋ฅผ ์ทจํ•ฉ๋‹ˆ๋‹ค. ๋ฆด๋ฆฌ์Šค์—์„œ ์ œ๋•Œ์— ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๋Š” ์ƒˆ๋กœ์šด ๋ฒ„๊ทธ๋‚˜ ํ‡ด๋ณด๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ, Slack์—์„œ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋…ผ์˜ํ•˜๊ณ  ์•ž์œผ๋กœ ๋‚˜์•„๊ฐˆ ๋ฐฉ๋ฒ•์„ ๊ฒฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ณ‘ํ•ฉํ•  ์ค€๋น„๊ฐ€ ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋งˆ์ผ์Šคํ†ค์—์„œ issue/PR์„ ์ œ๊ฑฐํ•˜๊ณ  Slack์— ์žˆ๋Š” PR ์†Œ์œ ์ž์™€ ์ œํ’ˆ ๊ด€๋ฆฌ์ž์—๊ฒŒ ํ†ต๋ณดํ•ฉ๋‹ˆ๋‹ค. issue/PR ์†Œ์œ ์ž๋Š” Release์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ์ „๋‹ฌํ•  ์ฑ…์ž„์ด ์žˆ์Šต๋‹ˆ๋‹ค. Release ์—ฐ๊ธฐ๋Š” edge case ์‹œ๋‚˜๋ฆฌ์˜ค๋กœ์„œ ๊ณ ๋ ค๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Release ๋‹น์ผ! ๐Ÿš€

  1. ํ•˜๋ฃจ๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ, Slack์— ๋ฆด๋ฆฌ์Šค ๋‹น์ผ์ด๋ผ๊ณ  ์•Œ๋ฆฌ๋Š” ๊ฐ„๋‹จํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ์˜ฌ๋ฆฌ์‹ญ์‹œ์˜ค! release ์ฒ˜๋ฆฌ ๋ฐ release ์‹œ์ž‘ ์‹œ๊ฐ„(๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์ง€์—ฐ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์˜คํ›„ 4์‹œ ์ด์ „๊นŒ์ง€)์— ๋Œ€ํ•ด ์•Œ๋ ค ์ฃผ์‹ญ์‹œ์˜ค. ์ด ๋ฉ”์‹œ์ง€๋Š” ์ด๋ฅธ ์•„์นจ ๊ทธ๋ฆฌ๊ณ  Release ๋‹จ๊ณ„๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ ์ „์— ๊ฒŒ์‹œ๋˜์–ด์•ผ ํ•˜๋ฉฐ, ์‚ฌ๋žŒ๋“ค์ด ๊ทธ๋“ค์˜ PR์™€ issue๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์ถฉ๋ถ„ํ•œ ์‹œ๊ฐ„์„ ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•ด์•ผ ๊ทธ๋“ค์€ ๋‚จ์€ ์ผ์„ ๊ณ„ํšํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.Slack ๋ฉ”์‹œ์ง€์˜ ํ˜•์‹์€ ์—ฌ๊ธฐ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. release ์‹œ๊ฐ„์€ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ํ•ญ์ƒ ํ•„์š”ํ•œ ๋‹จ๊ณ„๋ฅผ ๊ทธ์— ๋”ฐ๋ผ ๊ณ„ํšํ•  ์ˆ˜ ์žˆ๋„๋ก ํˆฌ๋ช…ํ•˜๊ฒŒ ์ „๋‹ฌ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋” ํฐ ๋ณ€ํ™”๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ์ด๋ฅผ ์ „๋‹ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  2. ๋งˆ์ผ์Šคํ†ค์ด ๋น„์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š” (๋ชจ๋“  ํ•ญ๋ชฉ์ด ๋ณ‘ํ•ฉ๋˜์—ˆ๊ฑฐ๋‚˜ ๋‹ค์Œ ๋งˆ์ผ์Šคํ†ค์œผ๋กœ ์ด๋™๋˜์—ˆ๋Š”์ง€)

  3. ๋งˆ์ผ์Šคํ†ค์˜ ๋ชจ๋“  ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด Slack์— Release ๊ณผ์ •์„ ์‹œ์ž‘ํ•œ๋‹ค๋Š” ๊ฐ„๋‹จํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค (์–ด๋–ค ๊ฒƒ์ด๋“  ๋ˆ„๋ฝ๋œ ๊ฒฝ์šฐ)

  4. ์ด์ œ ๋‹น์‹ ์€ Rasa ์˜คํ”ˆ์†Œ์Šค README์— ์„ค๋ช…๋œ ์ง€์นจ์„ ๋”ฐ๋ผ release ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

Major rlease ์ดํ›„

major release๊ฐ€ ์™„๋ฃŒ๋œ ํ›„ ๋ฌธ์„œ ์—…๋ฐ์ดํŠธ๋ฅผ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•œ ์ง€์นจ์„ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค.

์ƒˆ๋กœ์šด ๋ฒ„์ „์„ releaseํ•˜๋Š” ๋‹จ๊ณ„

ํŒจํ‚ค์ง€๊ฐ€ GitHub Actions์— ์˜ํ•ด ๋นŒ๋“œ๋˜๊ณ  ๋ฐฐํฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ๋กœ์šด ๋ฒ„์ „์„ release ํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

Terminology:

  • micro release (๋ฒ„์ „์˜ ์„ธ๋ฒˆ์งธ ๋ถ€๋ถ„ ์ฆ๊ฐ€): 1.1.2 -> 1.1.3.
  • minor release (๋ฒ„์ „์˜ ๋‘๋ฒˆ์งธ ๋ถ€๋ถ„ ์ฆ๊ฐ€): 1.1.3 -> 1.2.0
  • major release (๋ฒ„์ „์˜ ์ฒซ๋ฒˆ์งธ ๋ถ€๋ถ„ ์ฆ๊ฐ€): 1.2.0 -> 2.0.0

Release ๋‹จ๊ณ„:

  1. ๋ชจ๋“  ์ข…์†์„ฑ์ด ์ตœ์‹  ์ƒํƒœ์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค (ํŠนํžˆ Rasa SDK)

    • Rasa SDK์˜ ๊ฒฝ์šฐ ๋จผ์ € ์ƒˆ๋กœ์šด Rasa SDK release๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค(์ƒˆ Rasa SDK release์™€ Rasa SDK release ๊ฐ„์˜ ๋ฒ„์ „ ๋ฒˆํ˜ธ๊ฐ€ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค)
    • ์ƒˆ๋กœ์šด Rasa SDK release๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํƒœ๊ทธ๋ฅผ ํ‘ธ์‹œํ•˜๊ณ  ํŒจํ‚ค์ง€๊ฐ€ pypi๋กœ ๋‚˜ํƒ€๋‚˜๋ฉด Rasa ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ ์ข…์†์„ฑ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์•„๋ž˜ ์ฐธ์กฐ).
  2. minor release์ธ ๊ฒฝ์šฐ ์ƒˆ๋กœ์šด release์— ํ•ด๋‹นํ•˜๋Š” ์ƒˆ๋กœ์šด branch๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. eg.

     git checkout -b 1.2.x
     git push origin 1.2.x
  3. ์ปทํŒ…์„ ์›ํ•˜๋Š” branch๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค (major์ธ ๊ฒฝ์šฐ main, minors์™€ micros๋ฅผ ์œ„ํ•œ ๋ธŒ๋žœ์น˜์ธ ๊ฒฝ์šฐ <major>.<minor>.x)

    • pyproject.toml์˜ rasa-sdk ํ•ญ๋ชฉ์„ ์ƒˆ release ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ณ  poetry update๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ชจ๋“  ์ข…์†์„ฑ์ด ํ•ด๊ฒฐ๋œ ์ƒˆ poetry.lock ํŒŒ์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
    • git commit -am "bump rasa-sdk dependency" ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๋˜ push๋Š” ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋‹ค์Œ ๋‹จ๊ณ„์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ํ”ฝ์—…๋ฉ๋‹ˆ๋‹ค.
  4. ๋งŒ์•ฝ ์ด ๋ฒ„์ „์ด major release์ธ ๊ฒฝ์šฐ README ๋ฐ ๋ฌธ์„œ์—์„œ ํ˜„์žฌ ์œ ์ง€ ๊ด€๋ฆฌ ์ค‘์ธ ๋ฒ„์ „ ๋ชฉ๋ก์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

  5. make release๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  6. release branch์— ๋Œ€ํ•œ PR์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค (e.g. 1.2.x)

  7. PR์ด merge๋˜๋ฉด ์ƒˆ release์— ํƒœ๊ทธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. (์ด๋Š” ํ•ญ์ƒ release ๋ธŒ๋žœ์น˜์—์„œ ์ง„ํ–‰๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค) eg. using

    git checkout 1.2.x
    git pull origin 1.2.x
    git tag 1.2.0 -m "next release"
    git push origin 1.2.0

    GitHub๋Š” ์ด ํƒœ๊ทธ๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ๋นŒ๋“œ ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ๊ฒŒ์‹œํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  8. ๋ชจ๋“  ๋‹จ๊ณ„๊ฐ€ ์™„๋ฃŒ๋˜๊ณ  ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ์ง„ํ–‰๋˜๋ฉด ์šฐ๋ฆฌ๋Š” ํšŒ์‚ฌ์˜ Slack (product channel) ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๊ฐ€ ์ž๋™์œผ๋กœ ๊ฒŒ์‹œ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  9. ์ฑ„๋„์— ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์œผ๋ฉด ๋‹ค์Œ ์‚ฌํ•ญ๋“ค์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

    • Github Actions์—์„œ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ํ™•์ธํ•˜๊ณ  ํ˜„์žฌ release์˜ merge๋œ PR์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. PR์„ ์‰ฝ๊ฒŒ ์ฐพ์œผ๋ ค๋ฉด event: push ๋ฐ branch: <version number> ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (release 2.4์˜ ์˜ˆ๋Š” ์—ฌ๊ธฐ์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)
    • ์›Œํฌํ”Œ๋กœ์šฐ๊ฐ€ ์™„๋ฃŒ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์„ธ์š”
    • ๋ฌธ์ œ๊ฐ€ ์ง€์†๋˜๋ฉด ๋กœ๊ทธ ํŒŒ์ผ๋„ ํ™•์ธํ•˜๊ณ  ๋ฌธ์ œ์˜ ๊ทผ๋ณธ ์›์ธ์„ ์ฐพ์•„๋ณด์„ธ์š”
    • ๊ทธ๋ž˜๋„ ์—ฌ์ „ํžˆ ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ, ์กฐ์‚ฌ๋ฅผ ํ†ตํ•ด ์œ ์šฉํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์ธํ”„๋ผ ํŒ€์— ๋ฌธ์˜ํ•˜์„ธ์š”
  10. ๋ฉ”์‹œ์ง€๊ฐ€ product ์ฑ„๋„์— ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ฒŒ์‹œ๋œ ํ›„ product-engineering-alerts ์ฑ„๋„์—์„œ๋„ ์ด์™€ ๊ฐ™์€ Rasa Open Source release์™€ ๊ด€๋ จ๋œ ๊ฒฝ๊ณ ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

Cutting a Micro release

Micro release๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •๋งŒ ํฌํ•จํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ปทํŒ…์ด ๋” ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

Micro release๋ฅผ ์ž๋ฅด๊ธฐ ์œ„ํ•ด ํ•ด์•ผ ํ•  ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ๋ˆ„๊ตฐ๊ฐ€ ์ถ”๊ฐ€ํ•ด์•ผ ํ•  ์ค‘์š”ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ Slack์˜ ์—”์ง€๋‹ˆ์–ด๋ง ํŒ€์— micro ์ปทํŒ…์„ ๊ณ„ํšํ•˜๊ณ  ์žˆ์Œ์„ ์•Œ๋ฆฝ๋‹ˆ๋‹ค.
  2. ์‚ฌ์šฉํ•  release ๋ธŒ๋žœ์น˜์— ๋ฒ„๊ทธ ์ˆ˜์ •์ด ํ•„์š”ํ•œ์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. (์˜ˆ: 2.0.4 ๋งˆ์ดํฌ๋กœ๋ฅผ ์ปทํŒ…ํ•˜๋Š” ๊ฒฝ์šฐ, ์ˆ˜์ •์‚ฌํ•ญ์ด 2.0.x release ๋ธŒ๋žœ์น˜์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.) ๋ชจ๋“  micro๋Š” .x์—์„œ ๊ฐ€์ ธ์™€์•ผํ•ฉ๋‹ˆ๋‹ค!
  3. Rasa Open Source micro๋ฅผ releaseํ•  ์ค€๋น„๊ฐ€ ๋˜๋ฉด ๋ธŒ๋žœ์น˜๋ฅผ ํ™•์ธํ•˜๊ณ  make release๋ฅผ ์‹คํ–‰ํ•˜๊ณ , ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด๊ณ  PR์„ mergeํ•ฉ๋‹ˆ๋‹ค.
  4. PR์ด ๋“ค์–ด์˜ค๋ฉด .x ๋ธŒ๋žœ์น˜๋ฅผ ๋‹ค์‹œ pullํ•˜๊ณ  ํƒœ๊ทธ๋ฅผ pushํ•ฉ๋‹ˆ๋‹ค!

๋Šฅ๋™์ ์œผ๋กœ ์œ ์ง€๊ด€๋ฆฌ๋˜๋Š” ๋ฒ„์ „

์šฐ๋ฆฌ๋Š” ์ตœ์‹  major release์˜ ๋ชจ๋“  minor ๋ฒ„์ „๊ณผ ์ด์ „ major release์˜ ์ตœ์‹  minor ๋ฒ„์ „์„ ์ ๊ทน์ ์œผ๋กœ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์ด๋Š” ๋‹ค์Œ minor ๋ฒ„์ „์ด ๋ฒ„๊ทธ ์ˆ˜์ • ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฐ›์„ ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค:

  • 1.10
  • 2.x์˜ ๋ชจ๋“  minor ๋ฒ„์ „

License

Apache ๋ผ์ด์„ผ์Šค ๋ฒ„์ „ 2.0์— ๋”ฐ๋ผ ๋ผ์ด์„ผ์Šค๊ฐ€ ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค. ์ €์ž‘๊ถŒ 2021 Rasa Technologies GmbH. Copy of the license.

ํ”„๋กœ์ ํŠธ ์ข…์†์„ฑ์˜ ๋ผ์ด์„ผ์Šค ๋ชฉ๋ก์€ ํ•˜๋‹จ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Libraries Summary.

About

๐Ÿ’ฌ Open source machine learning framework to automate text- and voice-based conversations: NLU, dialogue management, connect to Slack, Facebook, and more - Create chatbots and voice assistants

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.3%
  • Makefile 0.2%
  • Dockerfile 0.2%
  • Shell 0.1%
  • HCL 0.1%
  • HTML 0.1%