2P by neo 3달전 | favorite | 댓글 1개
  • 2019년 중반 구직 활동 중 Google Goteam과 Sourcegraph 중 선택해야 했음
  • Sourcegraph를 선택한 이유는 모든 것을 공개적으로 구축할 수 있는 문화 때문이었음
  • 모든 문서가 기본적으로 공개되었고, 기술 및 제품 RFC, PR/FAQ 등이 공개 Google Drive 폴더에 저장되었음
  • 모든 제품 구현이 공개 GitHub 저장소에서 이루어졌음
  • 현재 sourcegraph/sourcegraph 저장소가 비공개로 전환되었음
  • 이는 Sourcegraph의 매력적인 문화를 파괴하는 결정이었음
  • Sourcegraph는 sourcegraph/sourcegraph-public-snapshot이라는 공개 스냅샷을 남겨두었음

참조 유지

  • Sourcegraph에서 근무하는 동안 엔지니어링 블로그에 많은 글을 작성했음
  • 많은 글이 관련 공개 코드에 대한 링크를 참조로 사용했음
  • 이제 이러한 링크가 모두 깨졌음
  • "멋진 URI는 변하지 않는다"는 말이 있음
  • 링크가 갑자기 깨지지 않도록 최대한 정보를 보존하려고 노력 중임
  • sourcegraph/sourcegraphefritz/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를 많이 인용하고 추천했지만 실제로 비용을 지불한 적은 없음
    • 오픈 소스를 포기한 이유가 궁금하지만 놀랍지는 않음