오픈소스 프로젝트, 기여에 대한 기준

Page content

내가 ‘오픈소스에 기여했다’ 로 치는 것들을 적어놓으려고 한다. 이상한 논리로 접근하는 사람이 좀 많아서.

그리고 혹시 이것 때문인가 싶어서 적는 건데 내가 말하는 오픈소스 프로젝트에 기여한다는 말은 영어의 Contributing을 의미한다.

내 기준

내가 중요하게 여기는 건 의도와 투자이다. 잠재적인 것도 포함인데, 예를 들어 잠재적인 시간 투자도 의도적이라면 기여로 본다. 의도와 투자에 대한 설명이 없어도 이해할 수 있을 거라 생각해서 필요한 경우를 제외하고 항목들에 의도나 투자에 대한 내용을 적진 않을 것이다.

알만한 것들

일반적으로 CONTRIBUTING.md나 구글에 Contributing to open source 검색해서 나오는 그런 흔한 것들은 굳이 적지 않겠다.

이슈 제보

난 모든 이슈 제보를 기여로 보지는 않는다. 오픈소스 프로젝트 관리해보면 이해가 갈 것이다. 디버깅이 가능할만큼의 정보는 제공해야 의미가 있는건데, 안 그런 경우도 많다. 디버깅에 필요한 정보를 충분히 제공하거나 프로젝트 메인테이너가 그 이슈 관련해서 부탁한 걸 시도해는 경우는 기여라고 본다.

디버깅이 불가능하면 프로젝트 개선이 불가능하므로 의미가 없다. 오히려 프로젝트에 관심이 많아서 관련 업데이트를 받아보는 Watcher 들에게 스팸에 가까운 무언가를 보내는 건 프로젝트를 방해하는 것에 더 가깝다는 게 내 생각이다.

불안정 버전 사용

이것도 목적에 따라 다르다고 본다. 특정 기능이 불안정 버전에만 존재하는데 그 기능이 필요해서 사용하는 건 기여가 아니라고 보고, 버그 찾는 걸 돕기 위한 건 기여로 본다.

난 러스트 nightly 버전을 쓰는데, 내가 rust 언어 자체에 기여를 하고있다곤 생각하지 않는다. RFC를 작성한 것도 아니고, 그냥 나한테 필요하고 무료니까 rustc라는 제품의 nightly 버전을 쓰는 건데 마침 그게 오픈소스였던 것뿐이다.

문서화

첫번째 항목이랑 겹치는 얘기긴 한데, PR이라고 얘기하니까 메인 코드베익스만 카리키는 걸로 오해하는 사람이 있었다. 본격적인 오픈소스 프로젝트를 안 해봤으면 오해할만한 것 같아서 적는다.

직접적 오픈소스 사용 (X)

이건 의도에 따라 갈리긴 하지만, 대부분의 경우 기여가 아니라고 본다. 오픈소스 프로젝트도 제품이다. 소스코드가 공개되어 있을 뿐이지. 제품을 쓰는 건 기여가 아니다.

물론 제품을 쓰는 건 제품 개선엔 도움이 된다. 근데 그건 자기의 편익을 위해서 하는 행동의 부수효과일뿐, 결국 개선 작업은 해당 프로젝트의 개발자들이 해야한다.

간접적 오픈소스 사용 (X)

애초에 이게 논란이 되는 것도 이상한데, 자기가 파이어폭스를 쓰거나 openssl을 사용하는 유료 프로그램을 구매하는 게 openssl에 기여하는 것이라 생각하는 사람이 있을까? 물론 간접적으로 기여가 될 가능성은 있다.

근데 난 이걸 openssl에 대한 기여로 볼 수는 없다고 생각한다. 의도도 그렇고 투자도 프로젝트를 위한 게 아니라서이다. 파이어폭스를 통해 openssl에 기여를 했다면 openssl에 기여한 건 파이어폭스 개발자들이지, 사용자가 아니다.

그리고 이 논리대로면 선진국 국민 대다수가 openssl에 기여했다는 건데, 그렇게 주장할 사람이 과연 있을까 싶다.


하나 첨언하자면 오픈소스 프로젝트를 진행해보면 시간이 정말 모자라기 때문에 PR이 제일 도움이 된다. 전 글에서 기부를 언급하긴 했지만 난 30년 안에 기부는 유의미한 수준이 될 수 없다고 본다. 바벨처럼 엄청나게 쓰이는 프로젝트도 자금난에 시달리는데…

그리고 이 글은 나중에 시간 날 떄 내용을 좀 더 추가할 생각이다.