ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 첫 오픈소스 기여
    잡담 2017. 12. 25. 00:29

    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

    댓글

Designed by Tistory.