오픈소스 컨트리뷰톤을 마무리하며 - mocha 기여 모음

2020. 9. 13. 18:04행사 참여 기록

오픈소스 컨트리뷰톤( https://www.oss.kr/contributhon ) 이라는 행사를 아시나요? 7월달에 선정되어 기뻐했던데 어제 같은데, 벌써 마무리단계에 접어들어 후기글을 작성해봅니다. 7, 8, 9는 컨트리뷰톤이 아니더라도 회사일도 유독 바빴던 시기인지라 적극적으로 참여하지 못한 아쉬움이 가득 담긴 글이 될 것 같습니다. 선정된 날 부터 오늘까지의 기록을 남겨보겠습니다. 

 


mocha 기여기


 

처음 오픈소스 컨트리뷰톤에 지원했을 당시 경쟁률이 치열할 것만 같은 감이 들었습니다. 발표일날 언제쯤 결과가 나오나 애타했는데 감사하게도 1지망이었던 mocha 쪽에 선발되어 친구들에게도 자랑했던 기억이 납니다. 하지만 선발됨과 동시에 약간 걱정도 있었습니다. 과연 기여를 하나라도 하고 갈 수 있을까. 당시에 저는 mocha의 기초중에 기초만 알고있던지라 더 걱정이 앞섰던 것 같습니다. 따라서 저의 이번 목표는 뭐든 좋으니 머지되는 PR하나 날리고 가기 였습니다. 

 

1. window의 수난

일단 mocha를 포크 하는 정도로만 준비하고, 발대식 이후에서야 기여하기 전 npm start test를 실행해봤습니다. 그리고 놀랍게도, 저는 fail 났습니다. 아직 아무것도 수정 안했는데요. 혹시라도 설정을 잘못했나 싶어 여러번 돌려봤지만 결과는 같았도 fail의 문구도 이해하지 못했습니다. 당황함에 멘토님께 바로 요청드렸고, 결론만 말하자면 아직까지 해결을 하지 못했습니다. (...) 마음같아선 이슈를 올려볼까 싶은데, 또 경우에 따라 아주, 아주 가끔씩 성공이 될 때도 있습니다. 상황을 설명하기도 애매한 상태라 일단 이것만 잡고있음 기여를 하나도 하지 못하고 갈 것 같아 놓아준 에러입니다.

 

아직까지도 이해는 갈 가지 않아서 (...) 물론 기여를 할 때는 큰 문제가 없었습니다. PR을 올렸을 때 문제 없이 잘 머지 되었으니 아마 환경의 문제가 맞는것 같은데, 컨트리뷰톤이 완전히 마무리되면 여유롭게 살펴보거나 아마 어딘가에 질문을 남겨둘 것 같습니다. ( 동지를 찾아서

 

2. 첫 PR과 머지

https://github.com/mochajs/mocha/pull/4411

 

update js reference link (map, assign) in lib/utils.js by wwhurin · Pull Request #4411 · mochajs/mocha

Requirements Filling out the template is required. Any pull request that does not include enough information to be reviewed in a timely manner may be closed at the maintainers' discretion. All...

github.com

위에 적힌 윈도우 문제를 접어두고, 저의 첫 PR을 자랑해봅니다. 사실 PR내용을 보면 알다싶이 주석에 적힌 도큐먼트의 링크가 404 에러가 나 수정해둔 PR이었습니다. 당시의 저는 PR을 하나도 못 날리고 가면 어쩌지, 하는 조바심에 사로잡혀 있었습니다. 거기다 기술적인 스킬이 뒷받쳐주지도 못하는데 거창한 뭔갈 해야하는 부담감에 시달리고 있었죠. 지금 생각해보면 꽤 웃긴 부담감이지만 당시엔 끙끙 앓으며 걱정이 가득했었습니다. 마음에 둔 이슈는 있었는데 mocha코드에 대한 이해도가 떨어져 코드나 살펴보고 있었죠. 

 

그러던 와중에 다른 멘티분께서 주석에 있는 링크가 잘못 연결되어있다는 PR을 봤습니다. 당시 저는 보고 있던 파일에서 혹시나 하고 링크를 눌러봤는데 놀랍게도 404 에러가 나온 겁니다. 사실 mocha의 코드를 살펴보고 있지 않았다면 찾기 어려운 항목이었다고 생각합니다. 위 PR을 날려보며 가벼운것부터 PR을 날려보라는 말을 이해할 수 있었습니다. PR을 하겠다는 강박에 사로잡혀 있을 필요 없이, 여유롭게 프로젝트를 살펴본다면 반드시 기여할게 눈에 보인다는 맥락이 아니였을까 싶습니다. 물론 제 생각이지만요. 확실히 조바심을 보이니 가볍게 PR을 날리고 마음이 편했습니다. 그리고 보고 있던 이슈의 작업을 본격적으로 시작해봤습니다.

 

3. 두번째 PR과 ... 

https://github.com/mochajs/mocha/pull/4434

 

Add speed in -R json option (#4226) by wwhurin · Pull Request #4434 · mochajs/mocha

Requirements Filling out the template is required. Any pull request that does not include enough information to be reviewed in a timely manner may be closed at the maintainers' discretion. All...

github.com

위의 링크는 2번째 PR입니다. 글 작성을 기준으로 12일 전에 PR을 날렸고, commit suggestion을 반영한게 3일 전쯤이니 다음주중엔 머지가 되지 않을까 희망회로를 돌리고 있습니다. 이 이슈 ( https://github.com/mochajs/mocha/issues/4226 ) 를 해결한 PR입니다.

 

사실 이 PR은 멘토님의 도움이 컸습니다. 혼자 엉뚱한 파일을 보고 있었는데 멘토님의 도움으로 reporter의 json파일로 안전하게 착지할 수 있었습니다. reporter의 옵션 중 하나인 json에서 speed가 출력되지 않는다는 이슈였고, 생각보다 간단하게 해결할 수 있었습니다. 결과를 주기 전 clean을 한번 하는데 거기서 speed도 함께 클린하게 사라져서 생긴 결과였고, speed 옵션만 return에 함께 추가해주면 되는 이슈였습니다. 

 

하지만 여기서 끝나면 아쉽죠. reporter들마다 각각의 test가 있는데 json테스트에 speed값을 추가했어야 했던 겁니다. 까짓거 추가만 하면 되는거 아니겠어 했는데, 놀랍게도 test에 speed 결과가 나오지 않아 꽤 오래 헤매게 됐습니다. 저는 어디 객체에서 clean처럼 speed를 없애버리는거 아닌가 싶어 다른곳에서 열심히 삽질을 했고, 놀랍게도 그저 pass 결과가 아니면 speed가 undefined가 되는 거였습니다. 생각해보면 이게 맞는 거였죠. pass되지 않으면 speed가 나올리 없는데 ... 왜 이런 경우를 생각 못했는지 아쉬웠습니다. 이 기회로 생각의 폭을 넓혔다는 마음가짐으로 pass 케이스를 추가해 거기서 speed 옵션을 체크하도록 했습니다. 언디파인을 체크하는 방법도 있었으나 굳이, 라는 생각이 들어라고요. 그래서 pass 케이스를 추가했고 제 코드의 일부 수정할게 생겨 commit suggestion이 달려 수정사항까지 반영해 3일전에 마무리 된 것입니다. ( 사실 끝이 아닐지도 모르죠. ) 

 

추가적으로 json-stream 옵션에서도 speed를 나오게 해달라는 수정사항이 있어 json과 동일하게 해결했습니다. 테스트의 경우 보다 수월하게 넘어갔고요. ( 멘토님의 요청이었는데 너무 반가웠습니다. github에서 보는 멘토님! 😆 ) 

 


 

위PR을 마지막으로 컨트리뷰톤은 이제 최종 보고서 단계로 들어갔습니다. 마지막에 이슈 하나라도 더 봤으면 좋을 것 같은데 생각보다 눈에 들어오는게 없었습니다. 어떤걸 잡아야 할지 감이 안잡히고... 아직 혼자 설 단계는 아닌가 싶지만 자신감 만큼은 잔뜩 얻어간 상태라 PR을 기각당하더라도 꾸준하게 기여해나가지 않을까 싶습니다.

 

컨트리뷰톤에 선발된건 아마 못잊을 기회 중 하나로 남을 것 같습니다. 너무나도 소중한 경험이고, 뽑아주셔서 감사한 마음이 아직도 가득합니다. 언젠가 저도 멘토로 설 수 있길 바라고 있고요. ( 한 5년쯤뒤 ) 아직 1년차 주니어 개발자에겐 너무 좋은 기회였습니다. 회사에서 github을 사용하지 않아 github으로 협업하는 경험을 얻을 수 있는 좋은 기회였다고도 생각합니다. 비록 코로나때문에 만나지 못한 분들이 너무나도 아쉽지만 언젠가 기회가 되면 다같이 모이는 자리가 마련되었음 합니다. mocha팀 모두 수고 많으셨습니다. 😊❤

'행사 참여 기록' 카테고리의 다른 글

[Qiskit] Qiskit Global Hackathon 참여 후기  (0) 2021.01.28
[IBM C:LOUDERS] 활동 회고록  (0) 2020.09.22
JSConf 2020 참여 후기  (0) 2020.09.22
앤젤 핵 해커톤 (2019.06.01)  (0) 2020.02.08