-
1. 사건의 발단
창업팀에서 물류관리 시스템이 필요하길래 만들려는 도중 로그인 과정이 귀찮으니까 팀 메신저로 쓰이는 Slack의 OAuth를 이용하면 어떨까 했다.
마침 django-slack-oauth라는 라이브러리가 있어서 쓰려고 virtualenv로 설치도 하고 migrate를 하려는 찰나!
from django.core.urlresolvers import reverse_lazy
ModuleNotFoundError: No module named 'django.core.urlresolvers'
주) django 2.x에서 django.core.urlresolvers 모듈은 django.urls에 합쳐졌다
아! 이 라이브러리는 아직 django 2.x를 지원을 안하는구나!
Issue를 남겨볼까 하다가 내가 해결할 수 있을 법 한 문제이고 이참에 오픈소스 기여도 해보는게 좋을 것 같아서 직접 Fork 떠서 PR 날려보기로 했다
2. 무엇이 문제인가?
해당 라이브러리에서 2.x 호환 문제를 보이는 부분은 크게 두 경우였다
첫번째로 django.core.urlresolvers 모듈이 django.urls로 이동한 부분
그리고 마지막으로 ForeignKey와 OneToOneField에서 on_delete 옵션이 필수로 변한부분
주) Django 2.0 Release Note: Features Removed in 2.0는 여기에서 확인할 수 있다
파일은
.__init__
.models
.migrations.0001_initial
총 세군데에서 문제가 있었고 .__init__을 제외하고는 모두 on_delete 문제였다
3. Fork & PR & Merged
말 그대로 Fork를 떠서 PR을 날렸다
아마 몇개월 걸릴걸 각오하고 하긴 했는데 몇시간만에 메일이 와서 놀랐다.
결과는 위에도 써있지만 Merged
메일은 아래처럼 왔다
https://i.imgur.com/mGDDeWR.png
(티스토리에 사진을 올리려면 플래시를 써야한다니... 조만간 플랫폼을 옮기는걸 고려해봐야겠다)
4. 느낀점?
사실 머지되고 여기저기 자랑하고 다녔다 ㅎ
https://i.imgur.com/RI4ZOvG.png
아무래도 오픈소스 기여에 대한 막연한 두려움이 없어진게 가장 큰 소득이 아닐까 싶다.
예전엔 뭘 어떻게 해야할지 아무것도 모르고 어려워했다면 이제는 문제를 발견하면 수정을 하고 코멘트라도 받아보자는 마음으로 임할 수 있게 된 것 같다
그러니까 여러분들도 많이 참여해주세요! 꺄륵
아, 참고로 해당 라이브러리에 대한 내용은 여기에서 볼 수 있다
추가) Django 2.0에서 바뀐점을 간단하게 한국어로 정리해놓은 블로그가 있다: http://raccoonyy.github.io/django-2-0-release-note-summary/ 이 글을 미리 봐놔서 문제가 뭔지 알았다
'잡담' 카테고리의 다른 글
산업기능요원 훈련소 뭘 가져가야할까 (0) 2019.04.26 책 집필 문의를 받았다 (0) 2019.01.26