PR 도둑질을 난생 처음 보다

in #kr6 years ago (edited)

왠만해서는 제가 이렇게 공개적으로 누굴 비난하거나 하진 않습니다만,
하도 어처구니가 없어서 이런 글을 쓰게되네요.

저는 최근에 Metamask의 ETC 지원을 손보고 있습니다.
https://github.com/MetaMask/metamask-extension/pull/4516

이미 올려진지 꽤 된 이슈이나, 최근에 Metamask의 개발이 더욱 활기를 띄어지고, 소스 변동이 꽤 심한 편이여서 해당 이슈를 묵혀두면서 조금씩 수정하고 있는 상태입니다.

그런데 몇일전 이 이슈를 가로채어서 EOS Classic 지원을 살짝 추가해서 올리는 난생 처음 보는 PR 도둑질을 경험하게 됩니다.

https://github.com/MetaMask/metamask-extension/pull/4816
이 개발자는 EOS Classic을 개발하는 개발자이며, 한국인으로 알려져있다는 사실 이외에는 공식적으로 거의 알려진 바가 없지요.

https://github.com/ethersocial/go-esn/issues/32 (ESN 프로젝트에 와서 뜬금없이 소스코드를 비난하는 EOS Classic)

사실 저는 EOS Classic 개발자가 제가 고친 소스를 아무런 credit 없이 그냥 가져다 쓴 경우를 봤었기때문에, EOS Classic 개발자를 좋지 않게 생각하고 있는 상태였습니다. 땡글에 이에 대한 의심의 글을 쓰기도 했고요.

그러나 대화한번 하지 않은 일면식이 없는 상태이기도 하거니와, 함부로 남을 비난만 할 수는 없기때문에 유보적인 입장을 취해왔었고요.

그런데 갑자기 난데없이 남의 PR을 도둑질하는 다음의 PR을 보고 아연실색하지 않을 수 없었습니다.
https://github.com/MetaMask/metamask-extension/pull/4816

이 글은 마치 자신이 이 기능을 넣은 것처럼 제가 고쳤다는 내용의 글은 본문에 전혀 언급조차 하고 있지 않습니다. 제가 왜 남의 PR을 카피하느냐는 물음을 남기니, 사과조차 남기지 않고 있었고요. (현재는 슬그머니 PR을 닫은 상태)

몇일전에는 Trezor 버그 수정에 관한 리포트를 했더니 거기에 달았던 댓글도 어처구니 없었습니다.
https://github.com/trezor/trezor-mcu/pull/381

개발자가 제 코드가 "peculiar"하다는 반응을 보이자 EOS Classic은 거기에 저를 조롱하는 답글을 연달아 달았고 해당 댓글은 광속과 같이 삭제되었으며, 이 후에 저의 패치는 Trezor 개발자에 의해 정식으로 받아들여졌지만 사과는 전혀 없었습니다. (이 패치는 Trezor에서 이더리움 소스코드 기반의 chainId 값이 255 이상인 경우에 Trezor가 제대로 작동되지 않던 문제를 펌웨어 레벨에서 수정한 한줄짜리 패치입니다)

광속으로 삭제된 조롱글을 참고로 올립니다. (깃허브의 모든 커맨트는 이메일로 날아옵니다.)

사실 위의 간단한 한 줄 짜리 패치는 약간 지저분한(?) 구석이 있어 보이지만 정확히 작동하는 코드였고 단 한줄만 고치면 2년동안이나 문제가 있는채로 방치되었던 버그를 발견함과 동시에 수정하는 PR이었기 때문에 급하게 제출한 면이 없지는 않습니다만, 이 간단한 패치로 버그가 수정된다고 제가 PR에 추가적인 글을 쓰자, 관리자도 조금 이상한 구석이 있었는지 'peculiar' 하다며 다른 개발자들에게 확인을 요청하였습니다. 저는 이에 제가 확인을 위해 사용한 간단한 rlp 인코딩 테스트 스크립트를 올렸고, 여기저기서 상당히 활동적이던 개발자 jhoenicke는 제 패치에 두개의 if를 더 빼서 줄일 수 있다는 제안을 하며, 이 코드는 이러이러해서 잘 작동한 다는 커멘트를 해주었고, 저는 맞다 그렇다고 맞장구를 쳐주었고, 해당 이슈가 관리자에 의해 받아들여지게 됩니다.

문제의 한줄짜리 패치가 변형되는 과정.

  l = j > 16777215 ? 4: j > 65535 ? 3: j > 255 ? 2: j > 127 ? 1 : 0;
  k = j > 0xffffff ? 4: j > 0xffff ? 3: j > 0xff ? 2: j > 0x7f ? 1 : 0;
  m = j < 0x80 ? 0: j < 0x100 ? 1: j < 0x10000 ? 2: j < 0x1000000 ? 3 : 4;
...

(즉, 위의 세줄은 모두 똑같은 결과를 리턴. 약간 수수께끼같은 맛이 있는 세번째 줄을 패치로 넣었더니 peculiar하다는 반응을 보였던 것.)

국내 오픈소스 개발자가 많아졌으나 저런 어처구니 없는 개발자가 있다는 사실도 사실 놀랍고, 예의 없는 것은 둘째 치고, 한국인이 저런 식으로 국내 오픈소스 / 가상화폐 개발자들에게 누가 되는 것은 아닐지 심히 걱정스럽기도 합니다.

또 다시 이런 류의 글을 쓰지 않기를 바라는 마음으로 이 글을 씁니다.

읽어주셔서 감사합니다~

※변경사항

  • 7/20 - 최초 작성
  • 저에 대한 조롱글이 삭제된 부분을 이메일로 날아온 내용 그대로 인용 (7/21)
Sort:  

같은 국적이라 그러지 말아야 한다는 건 아니지만 ..
그래도 족히 의심이 되는 구석이 있네요..
기분 상하지 마시고 활발한 활동 기대 하고 있습니다 ^^

사자마니님이셨군요~ ^^
덧글 감사합니다~^^ 열심히 하겠습니다~~

어떤 기분일지 100%이상 공감됩니다.

댓글 감사합니다~

들킬 걸 아니까 간 크게 쉽게쉽게하고 싶냐!?
한숨밖에 나오지 않네ㅎ

저에게 말씀하시는 것은 아니시죠?
덧글 및 리스팀 감사합니다~

지들이 이더 클래식처럼 당위성 포크가 아닌 개발자들을 향한 건데 뭐 주어를 까먹어서 죄송하고 요즘 양심파는 분이 많네요ㅎ

EOS Classic은.... 이름만 빌린거죠.. EOS 소스로 만든것도 아니고, 이더리움 소스코드 기반...

뭐죠?!
이 이름만 가져다쓴 혼종은?
ps. 일주일전에 댓글인데 또 댓글달아서 죄송합니다!!!!!

Congratulations @hackyminer! You received a personal award!

1 Year on Steemit

Click here to view your Board of Honor

Support SteemitBoard's project! Vote for its witness and get one more award!

Congratulations @hackyminer! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!