Contributor ์ฌ๋ฌ๋ถ ์๋ ํ์ธ์!! pyconkr-api contribution์ ์ ์ถํ ๋์๋ ๋ฐ๋์ ๋ค์ ๊ฐ์ด๋๋ผ์ธ์ ๋ฐ๋ผ์ฃผ์ธ์.
ํ์ด์ฝ ํ๊ตญ Webpage๋ frontend์ backend๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
- Frontend ๋ React ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์๊ฐ ๋ณด๋ ํ๋ฉด์ ๊ตฌ์กฐ๋ฅผ ์์ฑํฉ๋๋ค.
- Backend ๋ django ํ๋ ์์ํฌ์ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐํฉ๋๋ค.
- ๋์ ์ธ ๋ฐ์ดํฐ๋ GraphQL ์ ํตํด ์กฐํํ์ฌ ํด๋ผ์ด์ธํธ ๋ธ๋ผ์ฐ์ ธ์์ ์์ฑํ๋๋ก ํฉ๋๋ค.
- SSR(Server Side Rendered) ๋ฅผ ์ํด NEXT.js ๋ฅผ ์ฌ์ฉํฉ๋๋ค. (์์ ํ์)
develop
- contribution์ ํ ๋์๋
develop
์์ ๊ด๋ จ branch๋ฅผ ์์ฑํด์ ์์ ์ ํด์ฃผ์ธ์. - ๊ด๋ จ branch ์ด๋ฆ์ ๋ค์ ๊ท์น์ ๋ฐ๋ฅผ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
- ๊ธฐ๋ฅ ์ถ๊ฐ/๊ฐ์ : feature/*
- ๋ฒ๊ทธ ํฝ์ค: bugfix/*
- ๋ฌธ์ ๊ฐ์ : doc/*
- contribution์ ํ ๋์๋
master
- ๊ด๋ฆฌ์ ์ธ์๋ master์ mergeํ๋ PR์ ๋ง๋ค์ง ๋ง์์ฃผ์ธ์
- master branch์๋ ๋ฐฐํฌ ๊ฐ๋ฅํ ์์ ๋ snapshot์ด ๋ค์ด๊ฐ์ผ ํฉ๋๋ค.
release
- ๊ด๋ฆฌ์ ์ธ์๋ release์ mergeํ๋ PR์ ๋ง๋ค์ง ๋ง์์ฃผ์ธ์
- release branch๋ 2019๋ ํฐ์ณ ํ์ด์ง๋ฅผ ์คํํ ๋์ ์์ฑํ ์์ ์ ๋๋ค.
- ์ด branch์ ๋ณํ๊ฐ ์๊ธฐ๋ฉด ๋ชจ๋ ๊ณต๊ฐ ํ์ด์ง์ ๋ฐ์๋ฉ๋๋ค.
๋ค์ ์ฌํญ๋ค์ ํ์ธํ๊ณ ์ฝ๋๋ฅผ ์ปค๋ฐํด์ฃผ์ธ์.
- pylint๋ฅผ ์ค์ํ๋์ง ์ฌ๋ถ
- ์ฌ๋ฌ๋ถ์ด pylint ๊ด๋ จ ํ๋ฌ๊ทธ์ธ์ด ์๋ IDE๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ์ธ์ด๋ธํ ๋๋ง๋ค ์๋ฌ๋ฅผ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ํ์ธํ ์ ์์ต๋๋ค.
- ์ถ๊ฐํ ๊ธฐ๋ฅ์ ํ
์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ๋์ง ์ฌ๋ถ
- ์๋ํ๋ ํ ์คํธ๋ ์๋ํ๋ ๋ฒ ํฌ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค :)
- ์ฝ๋๋ฅผ ์ญ์ ํ์ง ์๊ณ ์ฃผ์์ผ๋ก ์ฒ๋ฆฌํด๋์ง ์์๋์ง
- ๊ผญ ํ์ํ ์ฝ๋์๋ค๋ฉด VCS์ ๊ธฐ๋ฅ์ ํ์ฉํ๋ ๊ฒ์ด ๋ ์ข์ต๋๋ค.
- ์ค์นํ ํจํค์ง๋ฅผ
requirements.txt
์ ๋ฐ์ํ๋์ง- ์ถ๊ฐํ์ง ์์ผ๋ฉด CI๋ ๋ฒ ํฌ ํ๊ฒฝ์์ ์๋ฌ๊ฐ ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค.
$ pip freeze > requirements.txt
- GraphQL
- ํ์ด์ค๋ถ์ด ๋ฐํํ ๋ฐ์ดํฐ ์ง์์ด
- GraphQL ๊ณต์ ํ์ด์ง : https://graphql.org
- GraphQL + django : http://docs.graphene-python.org/projects/django/en/latest/