GN⁺: Sourcegraph Repo가 비공개로 전환됨
(eric-fritz.com)- 2019년 중반 구직 활동 중 Google Goteam과 Sourcegraph 중 선택해야 했음
- Sourcegraph를 선택한 이유는 모든 것을 공개적으로 구축할 수 있는 문화 때문이었음
- 모든 문서가 기본적으로 공개되었고, 기술 및 제품 RFC, PR/FAQ 등이 공개 Google Drive 폴더에 저장되었음
- 모든 제품 구현이 공개 GitHub 저장소에서 이루어졌음
- 현재
sourcegraph/sourcegraph
저장소가 비공개로 전환되었음 - 이는 Sourcegraph의 매력적인 문화를 파괴하는 결정이었음
- Sourcegraph는
sourcegraph/sourcegraph-public-snapshot
이라는 공개 스냅샷을 남겨두었음
참조 유지
- Sourcegraph에서 근무하는 동안 엔지니어링 블로그에 많은 글을 작성했음
- 많은 글이 관련 공개 코드에 대한 링크를 참조로 사용했음
- 이제 이러한 링크가 모두 깨졌음
- "멋진 URI는 변하지 않는다"는 말이 있음
- 링크가 갑자기 깨지지 않도록 최대한 정보를 보존하려고 노력 중임
-
sourcegraph/sourcegraph
를efritz/sourcegraph
로 포크했음 - 포크는 풀 리퀘스트를 상속받지 않으며, 브랜치에 직접 참조되지 않은 커밋은 보이지 않음
- GitHub 문서에 따르면, 공개 저장소가 비공개로 전환되더라도 포크는 계속 존재함
- 그러나 원본 저장소가 비공개로 전환되면
main
브랜치 외의 커밋이 사라질 수 있음
관련 커밋 스크래핑
- 모든 커밋을 찾기 위해 Go 프로그램을 실행했음
- 이 프로그램은 2,645개의 풀 리퀘스트 메타데이터 파일을 생성했음
-
jq
를 사용하여 JSON 페이로드를 읽고 데이터를 추출했음 -
pr_ids.txt
,commits.txt
,replace_pairs.txt
파일을 생성했음 - 두 번째 프로그램을 실행하여 각 풀 리퀘스트의 비병합 커밋을 나열했음
- 이 프로그램은
commits.txt
파일에 커밋을 추가했음
새로운 저장소 네트워크로 커밋 가져오기
- 각 관련 SHA를 포함하는 브랜치를 생성하여 포크에 가져왔음
- Bash 스크립트를 사용하여 git 작업을 순차적으로 수행했음
참조 재작성
- 이제 각 참조를 포크의 대상에 링크할 수 있게 되었음
-
xargs
를 사용하여 자동화 프로세스를 구현했음 - 직접 커밋 참조를 포크로 재작성하고, 풀 리퀘스트 참조를 병합 커밋으로 재작성했음
GN⁺의 정리
- Sourcegraph의 비공개 전환은 오픈 소스 문화에 큰 영향을 미쳤음
- 엔지니어링 블로그의 많은 참조 링크가 깨졌으며, 이를 보존하기 위해 많은 노력이 필요했음
- GitHub 포크와 스크립트를 사용하여 참조를 재작성하고 커밋을 보존했음
- 이 기사는 오픈 소스 프로젝트의 지속 가능성과 참조 링크의 중요성을 강조함
Hacker News 의견
-
Sourcegraph CEO의 의견:
- 내부 코드베이스를 비공개로 전환한 이유는 집중을 위해서임
- 오픈 소스와 공개 상태로 유지하는 것이 많은 추가 작업과 위험을 초래함
- 고객을 위한 훌륭한 코드 검색/지능 제품을 만드는 데 집중해야 함
- 여전히 개발자와 OSS 커뮤니티를 위해 많은 일을 하고 있음
- 인기 있는 공개 코드 검색 서비스 제공
- 많은 오픈 소스 코드 유지
- 다른 창업자들이 코드 공개 여부를 고민 중이라면 상담 가능
-
다른 사용자의 의견:
- Sourcegraph가 개발자 문화를 잘 이해하는 회사로 여겨졌으나, 최근 변화가 아쉬움
- 공개 로드맵을 찾으려 했으나 대부분의 문서가 비공개로 전환됨
- 이전에 공개된 핸드북이 Notion으로 이동하고, 대부분의 중요한 부분이 비공개 Google 문서로 링크됨
-
또 다른 사용자의 의견:
- 최근에 Sourcegraph의 공개 검색 인덱스가 사라짐
- GitHub의 검색 기능이 개선되기 전까지 Sourcegraph를 많이 사용했음
- 이제 GitLab 저장소와 많은 GitHub 저장소가 인덱스에서 사라짐
- 신뢰할 수 없는 검색 기능 때문에 GitHub로 돌아갈 수밖에 없음
-
다른 사용자의 의견:
- 오픈 소스 버전을 포크하여 텔레메트리 제거, 업데이트 비활성화, 독점 코드 제거, Docker 이미지 생성, 경량 Oauth2 인증 구현
- 오랫동안 Oauth2-Proxy 뒤에서 실행할 계획
- 매우 신뢰할 수 있는 소프트웨어임
-
또 다른 사용자의 의견:
- macOS 역공학 작업에 Sourcegraph를 많이 사용함
- Sourcegraph 검색 덕분에 많은 프로젝트가 존재함
- 앞으로 검색 기능이 사라지지 않기를 바람
-
또 다른 사용자의 의견:
- 모든 개발 작업을 비공개로 만드는 것은 이상하고 당황스러움
- 라이선스 제한만으로도 충분히 사업 목표를 달성할 수 있을 텐데 왜 비공개로 전환했는지 의문
-
다른 사용자의 의견:
- Sourcegraph를 많이 사용했지만 실제로 비용을 지불한 사람은 얼마나 될지 궁금함
- 오픈 소스 회사를 운영하는 것은 어려운 일임
- 회사가 성숙해지면서 무료로 제공할 수 없는 것들이 있다는 것을 이해하게 됨
-
다른 사용자의 의견:
- Software Heritage 프로젝트가 대부분의 Sourcegraph 저장소를 아카이브함
- 마지막 크롤링은 2024년 7월 중순임
-
또 다른 사용자의 의견:
- Sourcegraph가 더 이상 오픈 소스가 아니라는 이전 에피소드를 언급함
-
다른 사용자의 의견:
- Sourcegraph를 많이 인용하고 추천했지만 실제로 비용을 지불한 적은 없음
- 오픈 소스를 포기한 이유가 궁금하지만 놀랍지는 않음