업스트림에 PR을 올리는 대신 특정 아키텍처를 타겟으로 하는 수많은 하드 포크들이 우려됩니다
I am concerned about all these disparate hard forks that target specific architectures instead of opening a PR against upstream
핵심 요약
llama.cpp의 무분별한 하드 포크 현상에 대한 의문과 오픈소스 생태계 내 포크의 정당성에 관한 논의입니다.
- 포크의 정당성 — 오픈소스 라이선스 하에서 자유로운 포크는 생태계의 건강한 일부임
- 업스트림 기여의 어려움 — 엄격한 표준과 호환성 요구사항으로 인해 PR 병합 과정이 매우 까다로움
- 기술적 현실 — 특정 하드웨어 최적화나 실험적 기능은 범용 프로젝트인 업스트림에 통합하기 부적합함
- 포크의 목적 — 저품질의 홍보용 포크도 존재하지만, 대부분은 개인적 필요나 특정 유스케이스를 위한 것임
뻔한 자기 홍보 말고, 내가 모르는 실질적인 이유가 따로 있는 거냐? llamacpp 포크가 수십 개씩 쏟아져 나오는데, 이름도 웃긴 것들이 특정 GPU에 "최적화"됐다고 주장하면서 정작 업스트림에 병합할 생각은 전혀 없어 보이더라. 내가 이런 현상이 왜 이렇게 자주 일어나는지 진짜 이유를 놓치고 있는 건가? 도대체 왜 다들 이렇게 하는 걸 아무렇지도 않게 생각하는 거지? 내가 겪어본 오픈소스 커뮤니티에서는 보통 이런 짓을 좋게 안 보거든.
이런 거 보면 나만 유독 거부감 느끼는 건지 모르겠다. 난 보통 PR 피드백 받는 거 고마워하고 내가 올리는 코드도 엄청 신경 쓰는 편이야. 해당 프로젝트 기준을 충족하거나 그 이상 되는 고퀄리티 코드를 올리는 걸 자부심으로 삼거든. 물론 하드 포크를 하거나 협업 과정이 귀찮아서 지름길로 가는 게 윤리적으로 잘못된 건 아니지. 근데 나라면 그런 식으로 할 거면 굳이 내 포크를 홍보하지는 않을 것 같아. 하물며 레딧에 공지 글까지 올리면서 커스텀 브랜딩까지 입히는 건 더더욱 안 하지. 그럴 정성이면 차라리 기여자 기준에 맞게 코드를 짜는 게 낫지 않나? 근데 정작 이런 포크 만든 놈들은 자기들이 리브랜딩한 포크를 남들이 실무에 갖다 쓰라고 아주 안달이 나 있더라고. 뭔가 크게 어긋난 것 같은데, 잘 모르겠다.
수정: 이 스레드에서 좋은 토론이 많이 오갔네, 답변해 준 사람들 다 고맙다. (뻔한 어그로성 저퀄리티 포크는 제외하고) 베이스 프로젝트는 호환성 요구사항을 다 맞춰야 하지만, 다운스트림 프로젝트는 특정 목적에만 집중할 수 있다는 의견이 지배적이네. 아주 좋은 지적이야.

