๐ก Rasa ์คํ ์์ค 3.0์ด ์ถ์๋ฉ๋๋ค! ๐ก
3.0์ ์ํคํ ์ฒ ๋ณ๊ฒฝ ์์ ์ ์ํํ๋ ๋์ ๋ง์ด๋ ๋ฆด๋ฆฌ์ฆ๋ฅผ ์ ์ ์ค๋จํด์ผ ํ๊ธฐ ๋๋ฌธ์ 2.8์ 2.x ์๋ฆฌ์ฆ์ ๋ง์ง๋ง ๋ง์ด๋ ๋ฒ์ ์ด ๋ ๊ฒ์ ๋๋ค. ๋น์ ์ 3.0๊ณผ ํจ๊ป ์ถ์ํ ์์ ์ธ ์๋ก์ด ๊ธฐ๋ฅ๊ณผ ๊ฐ์ ์ฌํญ์ ๊ณ์ ๊ธฐ์ฌํ ์ ์์ต๋๋ค. ์ปจํธ๋ฆฌ๋ทฐํฐ ๊ฐ์ด๋๋ผ์ธ์ ๋ํด์ ์์ธํ ์์๋ณด์ธ์.
๋น ๋ฅธ ํผ๋๋ฐฑ์ ๋ฐ๊ธฐ ์ํด ์์ผ๋ก ๋ช ๋ฌ ๋์ ์ํ ๋ฆด๋ฆฌ์ฆ์ ๋ฆด๋ฆฌ์ฆ ํ๋ณด๋ฅผ ์ถ์ํ ๊ณํ์ ๋๋ค. ๊ณ์ ์ง์ผ๋ด ์ฃผ์ธ์!
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๋ ๋ฌด์์ ํ๋์? ๐ค ์ฐ๋ฆฌ ์น์ฌ์ดํธ๋ฅผ ํ์ธํ์ธ์
-
๋๋ Rasa๋ฅผ ์ฒ์ ์ฌ์ฉํฉ๋๋ค ๐ Rasa ์์ํ๊ธฐ
-
์์ธํ ๋ฌธ์๋ฅผ ์ฝ์ด๋ณด๊ณ ์ถ์ต๋๋ค ๐ค ๋ฌธ์ ์ฝ์ด๋ณด๊ธฐ
-
Rasa๋ฅผ ์ค์นํ ์ค๋น๊ฐ ๋์์ต๋๋ค ๐ ์ค์น
-
Rasa ์ฌ์ฉ๋ฒ์ ๋ฐฐ์ฐ๊ณ ์ถ์ด์ ๐ ํํ ๋ฆฌ์ผ
-
์ง๋ฌธ์ด ์์ด์ โ Rasa ์ปค๋ฎค๋ํฐ ํฌ๋ผ
-
๊ธฐ์ฌํ๊ณ ์ถ์ด์ ๐ค ๊ธฐ์ฌ ๋ฐฉ๋ฒ
Rasa Docs.์๋ ๊ด๋ฒ์ํ ๋ฌธ์๋ค์ด ์์ต๋๋ค. ์ค์นํ ๋ฒ์ ์ ๋ํ ๋ฌธ์๋ฅผ ๋ณผ ์ ์๋๋ก ์ฌ๋ฐ๋ฅธ ๋ฒ์ ์ ์ ํํ๋์ง ํ์ธํ์ธ์.
์ง๋ฌธ์ ๋ํ ๋น ๋ฅธ ๋ต๋ณ์ Rasa ์ปค๋ฎค๋ํฐ ํฌ๋ผ์ ์ด์ฉํด์ฃผ์ธ์.
์ฐ๋ฆฌ๋ ๊ทํ์ ๊ธฐ์ฌ๋ฅผ ์ด ๋ ํฌ์งํ ๋ฆฌ์ mergeํ ์ ์๊ฒ ๋์ด ๋งค์ฐ ๊ธฐ์ฉ๋๋ค!
pull ์์ฒญ์ ํตํด ๊ธฐ์ฌํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์:
- ์์ ํ๋ ค๋ ๊ธฐ๋ฅ์ ์ค๋ช ํ๋ issue๋ฅผ ๋ง๋ญ๋๋ค (๋๋ ์ปจํธ๋ฆฌ๋ทฐํฐ ๋ณด๋์ ์ฐธ์กฐํ์ธ์.)
- ์ฝ๋, ํ
์คํธ ๋ฐ ๋ฌธ์๋ฅผ ์์ฑํ๊ณ
black
์ผ๋ก ํ์์ ์ง์ ํฉ๋๋ค - ๋ณ๊ฒฝ ์ฌํญ์ ์ค๋ช ํ๋ pull request๋ฅผ ์์ฑํฉ๋๋ค
์ฝ๋๋ฅผ ๊ธฐ์ฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ์ง์นจ์ ์ฝ๋ ์ปจํธ๋ฆฌ๋ทฐํฐ ๊ฐ์ด๋๋ผ์ธ์ ํ์ธํ์ธ์.
์ ํฌ ์น์ฌ์ดํธ์์ Rasa์ ๊ธฐ์ฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ์ ๋ณด๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ( ๋ค๋ฅธ ๋ง์ ๋ฐฉ๋ฒ๋ค๋ ๊ฐ๋ฅํฉ๋๋ค!)
๊ทํ์ ํ ๋ฆฌํ์คํธ์ ๋ํ ๊ฒํ ๋ ์ ์ง ๋ณด์ ๋ด๋น์๊ฐ ์งํํ๋ฉฐ, ๋ด๋น์๊ฐ ํ์ํ ๋ณ๊ฒฝ ์ฌํญ์ด๋ ์ง๋ฌธ์ ๋ํด ํ์ ํด ๋๋ฆด ๊ฒ์ ๋๋ค. ๋ํ ์ปจํธ๋ฆฌ๋ทฐํฐ ๋ผ์ด์ผ์ค ๊ณ์ฝ์ ๊ทํ์ ์๋ช ์ ์์ฒญํ ๊ฒ์ ๋๋ค.
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
์ฌ์ฉํ๋ฉด ๋์์ด ๋ ๊ฒ์
๋๋ค.
๋จผ์ , ํ์ํ ๋ชจ๋ 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๋ ํด๋น ๋ธ๋์น๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ์๋์ผ๋ก ๋ฌธ์ ํ์ด์ง๋ฅผ ๋ค์ ๋ฐฐํฌํฉ๋๋ค
Rasa ์คํ ์์ค์ ๊ฒฝ์ฐ ์ผ๋ฐ์ ์ผ๋ก ์๊ฐ ๊ธฐ๋ฐ Release ํนํ ์๊ฐ Release๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๋ ํน์ ๋ ์ง์ ํน์ ๋ฒ์ ์ Rasa Open Source๋ฅผ release ํ๊ฒ ๋ค๊ณ ๋ฏธ๋ฆฌ ์ฝ์ํ๊ณ , ์ผ๋ถ ๊ธฐ๋ฅ์ด ์ค๋น๋์ง ์์์ ์ ์๊ธฐ ๋๋ฌธ์ release์์ ๋ฌด์์ ์ํํ ์ง 100% ํ์ ํ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
๊ฐ ๋ถ๊ธฐ ์ด์ Rasa ํ์ ๋ชจ๋ ์ ํ์ ์์ Release ๋ ์ง๋ฅผ ๊ฒํ ํ๊ณ ํด๋น ๋ถ๊ธฐ์ ๊ณํ๋ ์์ ์์ ๋ฟ๋ง ์๋๋ผ ์ ํ ์ ๋ฐ์ ๊ฑธ์ณ ์์ ์ ์ํํ๋์ง ํ์ธํฉ๋๋ค.
๋ ์ง๊ฐ ์ ํด์ง๋ฉด ๊ฐ ๋ง์ผ์คํค์ ์ ๋ฐ์ดํธํฉ๋๋ค.
- ๋ง์ผ์คํค์ด ์ด๋ฏธ ์กด์ฌํ๋์ง, ์ ํํ ๋ ์ง์ ์์ฝ๋์๋์ง ๊ฒํ ํฉ๋๋ค.
- ๋ง์ผ์คํค์ issues ์ PR์ ์ดํด๋ด ๋๋ค: ์ฐ๋ฆฌ๊ฐ ์ฎ๊ธธ ์์ ์ธ Release Highlights์ ์ ํฉํด ๋ณด์ด๋์? ๋ญ๊ฐ ๋์น๊ณ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋์? ๋ชจ๋ PR์ ์ธ์ํ๋ ๊ฒ์ ๋ํด ๊ฑฑ์ ํ์ง ์์๋ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์ ์ ๋์ ๋ง์ผ์คํค์ ํ๊ฐํ๋ ๊ฒ์ด ์ ์ฉํฉ๋๋ค.
- Engineering Slack ์ฑ๋์ ๋ฉ์์ง๋ฅผ ๊ฒ์ํ์ฌ, Rasa ํ์๊ฒ ๋ค์ release์ ๋ํด ์ปทํ
ํ๊ณ ์์์ ์๋ฆฌ๊ณ ๋ค์๊ณผ ๊ฐ์ด ์๋ ค ์ฃผ์ญ์์ค:
- ์ ์ ํ ๋ง์ผ์คํค์ ๋ํ ๋งํฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ๋ชจ๋ ์ฌ์ฉ์์๊ฒ issue์ PR์ ๊ฒํ ํ๊ณ ๋ง์ผ์คํค์ ํ ๋นํ๋๋ก ์ง์ํฉ๋๋ค.
- ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ์์ Release ๋ ์ง๋ฅผ ์๋ ค์ค๋๋ค.
- ๋ง์ผ์คํค์ ๊ฒํ ํ๊ณ ์งํ ์ค์ธ PR ๋ณํฉ์ ์ํ๋ฅผ ํ๊ฐํฉ๋๋ค. ๋ฒ๊ทธ์ ์์ ์ฌํญ์ ๋ํ ํ์ ์กฐ์น๋ฅผ ์ทจํฉ๋๋ค. ๋ฆด๋ฆฌ์ค์์ ์ ๋์ ์์ ํ ์ ์๋ ์๋ก์ด ๋ฒ๊ทธ๋ ํด๋ณด๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ, Slack์์ ์ด ๋ฌธ์ ์ ๋ํด ๋ ผ์ํ๊ณ ์์ผ๋ก ๋์๊ฐ ๋ฐฉ๋ฒ์ ๊ฒฐ์ ํด์ผ ํฉ๋๋ค. ๋ณํฉํ ์ค๋น๊ฐ ๋์ง ์์ ๊ฒฝ์ฐ ๋ง์ผ์คํค์์ issue/PR์ ์ ๊ฑฐํ๊ณ Slack์ ์๋ PR ์์ ์์ ์ ํ ๊ด๋ฆฌ์์๊ฒ ํต๋ณดํฉ๋๋ค. issue/PR ์์ ์๋ Release์ ๊ด๋ จ๋ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ์ ๋ฌํ ์ฑ ์์ด ์์ต๋๋ค. Release ์ฐ๊ธฐ๋ edge case ์๋๋ฆฌ์ค๋ก์ ๊ณ ๋ ค๋์ด์ผ ํฉ๋๋ค.
-
ํ๋ฃจ๋ฅผ ์์ํ ๋, Slack์ ๋ฆด๋ฆฌ์ค ๋น์ผ์ด๋ผ๊ณ ์๋ฆฌ๋ ๊ฐ๋จํ ๋ฉ์์ง๋ฅผ ์ฌ๋ฆฌ์ญ์์ค! release ์ฒ๋ฆฌ ๋ฐ release ์์ ์๊ฐ(๋ฌธ์ ๊ฐ ๋ฐ์ํ์ฌ ์ง์ฐ๋ ์ ์์ผ๋ฏ๋ก ์คํ 4์ ์ด์ ๊น์ง)์ ๋ํด ์๋ ค ์ฃผ์ญ์์ค. ์ด ๋ฉ์์ง๋ ์ด๋ฅธ ์์นจ ๊ทธ๋ฆฌ๊ณ Release ๋จ๊ณ๋ฅผ ์งํํ๊ธฐ ์ ์ ๊ฒ์๋์ด์ผ ํ๋ฉฐ, ์ฌ๋๋ค์ด ๊ทธ๋ค์ PR์ issue๋ฅผ ํ์ธํ ์ ์๋ ์ถฉ๋ถํ ์๊ฐ์ ์ฃผ์ด์ผ ํฉ๋๋ค. ๊ทธ๋ ๊ฒ ํด์ผ ๊ทธ๋ค์ ๋จ์ ์ผ์ ๊ณํํ ์ ์์ต๋๋ค.Slack ๋ฉ์์ง์ ํ์์ ์ฌ๊ธฐ์์ ์ฐพ์ ์ ์์ต๋๋ค. release ์๊ฐ์ ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ํญ์ ํ์ํ ๋จ๊ณ๋ฅผ ๊ทธ์ ๋ฐ๋ผ ๊ณํํ ์ ์๋๋ก ํฌ๋ช ํ๊ฒ ์ ๋ฌ๋์ด์ผ ํฉ๋๋ค. ๋ ํฐ ๋ณํ๊ฐ ์์ ๊ฒฝ์ฐ ์ด๋ฅผ ์ ๋ฌํด์ผ ํฉ๋๋ค.
-
๋ง์ผ์คํค์ด ๋น์ด ์๋์ง ํ์ธํ์ธ์ (๋ชจ๋ ํญ๋ชฉ์ด ๋ณํฉ๋์๊ฑฐ๋ ๋ค์ ๋ง์ผ์คํค์ผ๋ก ์ด๋๋์๋์ง)
-
๋ง์ผ์คํค์ ๋ชจ๋ ์์ ์ด ์๋ฃ๋๋ฉด Slack์ Release ๊ณผ์ ์ ์์ํ๋ค๋ ๊ฐ๋จํ ๋ฉ์์ง๋ฅผ ๊ฒ์ํฉ๋๋ค (์ด๋ค ๊ฒ์ด๋ ๋๋ฝ๋ ๊ฒฝ์ฐ)
-
์ด์ ๋น์ ์ Rasa ์คํ์์ค README์ ์ค๋ช ๋ ์ง์นจ์ ๋ฐ๋ผ release ํ ์ ์์ต๋๋ค!
major 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 ๋จ๊ณ:
-
๋ชจ๋ ์ข ์์ฑ์ด ์ต์ ์ํ์ธ์ง ํ์ธํฉ๋๋ค (ํนํ Rasa SDK)
- Rasa SDK์ ๊ฒฝ์ฐ ๋จผ์ ์๋ก์ด Rasa SDK release๋ฅผ ๋ง๋ญ๋๋ค(์ Rasa SDK release์ Rasa SDK release ๊ฐ์ ๋ฒ์ ๋ฒํธ๊ฐ ์ผ์นํ๋์ง ํ์ธํ์ญ์์ค)
- ์๋ก์ด Rasa SDK release๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ทธ๋ฅผ ํธ์ํ๊ณ ํจํค์ง๊ฐ pypi๋ก ๋ํ๋๋ฉด Rasa ๋ ํฌ์งํ ๋ฆฌ์ ์ข ์์ฑ์ ํด๊ฒฐํ ์ ์์ต๋๋ค(์๋ ์ฐธ์กฐ).
-
minor release์ธ ๊ฒฝ์ฐ ์๋ก์ด release์ ํด๋นํ๋ ์๋ก์ด branch๋ฅผ ๋ง๋ญ๋๋ค. eg.
git checkout -b 1.2.x git push origin 1.2.x
-
์ปทํ ์ ์ํ๋ 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๋ ํ์ง ๋ง์ญ์์ค. ๋ค์ ๋จ๊ณ์ ๋ฐ๋ผ ์๋์ผ๋ก ํฝ์ ๋ฉ๋๋ค.
-
๋ง์ฝ ์ด ๋ฒ์ ์ด major release์ธ ๊ฒฝ์ฐ README ๋ฐ ๋ฌธ์์์ ํ์ฌ ์ ์ง ๊ด๋ฆฌ ์ค์ธ ๋ฒ์ ๋ชฉ๋ก์ ์ ๋ฐ์ดํธํฉ๋๋ค.
-
make release
๋ฅผ ์คํํฉ๋๋ค. -
release branch์ ๋ํ PR์ ์์ฑํฉ๋๋ค (e.g.
1.2.x
) -
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๋ ์ด ํ๊ทธ๋ฅผ ๋น๋ํ๊ณ ๋น๋ ์ํฐํฉํธ๋ฅผ ๊ฒ์ํ ๊ฒ์ ๋๋ค.
-
๋ชจ๋ ๋จ๊ณ๊ฐ ์๋ฃ๋๊ณ ๋ชจ๋ ๊ฒ์ด ์ ์งํ๋๋ฉด ์ฐ๋ฆฌ๋ ํ์ฌ์ Slack (
product
channel) ์ ๋ค์๊ณผ ๊ฐ์ ๋ฉ์์ง๊ฐ ์๋์ผ๋ก ๊ฒ์๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. -
์ฑ๋์ ๋ฉ์์ง๊ฐ ํ์๋์ง ์์ผ๋ฉด ๋ค์ ์ฌํญ๋ค์ ํ์ธํ ์ ์์ต๋๋ค:
- Github Actions์์ ์ํฌํ๋ก์ฐ๋ฅผ ํ์ธํ๊ณ ํ์ฌ release์ merge๋ PR์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋์๋์ง ํ์ธํฉ๋๋ค. PR์ ์ฝ๊ฒ ์ฐพ์ผ๋ ค๋ฉด
event: push
๋ฐbranch: <version number>
ํํฐ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. (release 2.4์ ์๋ ์ฌ๊ธฐ์์ ๋ณผ ์ ์์ต๋๋ค.) - ์ํฌํ๋ก์ฐ๊ฐ ์๋ฃ๋์ง ์์ ๊ฒฝ์ฐ, ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋๋ก ์ํฌํ๋ก์ฐ๋ฅผ ๋ค์ ์คํํ์ธ์
- ๋ฌธ์ ๊ฐ ์ง์๋๋ฉด ๋ก๊ทธ ํ์ผ๋ ํ์ธํ๊ณ ๋ฌธ์ ์ ๊ทผ๋ณธ ์์ธ์ ์ฐพ์๋ณด์ธ์
- ๊ทธ๋๋ ์ฌ์ ํ ์ค๋ฅ๋ฅผ ํด๊ฒฐํ ์ ์๋ ๊ฒฝ์ฐ, ์กฐ์ฌ๋ฅผ ํตํด ์ ์ฉํ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ฌ ์ธํ๋ผ ํ์ ๋ฌธ์ํ์ธ์
- Github Actions์์ ์ํฌํ๋ก์ฐ๋ฅผ ํ์ธํ๊ณ ํ์ฌ release์ merge๋ PR์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋์๋์ง ํ์ธํฉ๋๋ค. PR์ ์ฝ๊ฒ ์ฐพ์ผ๋ ค๋ฉด
-
๋ฉ์์ง๊ฐ
product
์ฑ๋์ ์ฌ๋ฐ๋ฅด๊ฒ ๊ฒ์๋ ํproduct-engineering-alerts
์ฑ๋์์๋ ์ด์ ๊ฐ์ Rasa Open Source release์ ๊ด๋ จ๋ ๊ฒฝ๊ณ ๊ฐ ์๋์ง ํ์ธํฉ๋๋ค.
Micro release๋ ๋ฒ๊ทธ ์์ ๋ง ํฌํจํ๊ธฐ ๋๋ฌธ์ ์ปทํ ์ด ๋ ๊ฐ๋จํฉ๋๋ค.
Micro release๋ฅผ ์๋ฅด๊ธฐ ์ํด ํด์ผ ํ ์ผ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋๊ตฐ๊ฐ ์ถ๊ฐํด์ผ ํ ์ค์ํ ์์ ์ฌํญ์ด ์๋ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ Slack์ ์์ง๋์ด๋ง ํ์ micro ์ปทํ ์ ๊ณํํ๊ณ ์์์ ์๋ฆฝ๋๋ค.
- ์ฌ์ฉํ release ๋ธ๋์น์ ๋ฒ๊ทธ ์์ ์ด ํ์ํ์ง ํ์ธํ์ญ์์ค. (์:
2.0.4
๋ง์ดํฌ๋ก๋ฅผ ์ปทํ ํ๋ ๊ฒฝ์ฐ, ์์ ์ฌํญ์ด2.0.x
release ๋ธ๋์น์ ์์ด์ผ ํฉ๋๋ค.) ๋ชจ๋ micro๋.x
์์ ๊ฐ์ ธ์์ผํฉ๋๋ค! - Rasa Open Source micro๋ฅผ releaseํ ์ค๋น๊ฐ ๋๋ฉด ๋ธ๋์น๋ฅผ ํ์ธํ๊ณ
make release
๋ฅผ ์คํํ๊ณ , ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด๊ณ PR์ mergeํฉ๋๋ค. - PR์ด ๋ค์ด์ค๋ฉด
.x
๋ธ๋์น๋ฅผ ๋ค์ pullํ๊ณ ํ๊ทธ๋ฅผ pushํฉ๋๋ค!
์ฐ๋ฆฌ๋ ์ต์ major release์ ๋ชจ๋ minor ๋ฒ์ ๊ณผ ์ด์ major release์ ์ต์ minor ๋ฒ์ ์ ์ ๊ทน์ ์ผ๋ก ์ ์ง ๊ด๋ฆฌํ๊ณ ์์ต๋๋ค. ํ์ฌ ์ด๋ ๋ค์ minor ๋ฒ์ ์ด ๋ฒ๊ทธ ์์ ์ ๋ฐ์ดํธ๋ฅผ ๋ฐ์ ๊ฒ์ ์๋ฏธํฉ๋๋ค:
- 1.10
- 2.x์ ๋ชจ๋ minor ๋ฒ์
Apache ๋ผ์ด์ผ์ค ๋ฒ์ 2.0์ ๋ฐ๋ผ ๋ผ์ด์ผ์ค๊ฐ ๋ถ์ฌ๋ฉ๋๋ค. ์ ์๊ถ 2021 Rasa Technologies GmbH. Copy of the license.
ํ๋ก์ ํธ ์ข ์์ฑ์ ๋ผ์ด์ผ์ค ๋ชฉ๋ก์ ํ๋จ์์ ์ฐพ์ ์ ์์ต๋๋ค. Libraries Summary.