2 điểm bởi GN⁺ 2024-08-21 | 1 bình luận | Chia sẻ qua WhatsApp
  • Vào giữa năm 2019, trong quá trình tìm việc, tác giả đã phải chọn giữa Google Goteam và Sourcegraph
  • Lý do chọn Sourcegraph là vì văn hóa có thể xây dựng mọi thứ một cách công khai
  • Mọi tài liệu mặc định đều công khai, và các RFC kỹ thuật/sản phẩm, PR/FAQ, v.v. được lưu trong các thư mục Google Drive công khai
  • Toàn bộ việc triển khai sản phẩm được thực hiện trong kho GitHub công khai
  • Hiện tại, kho sourcegraph/sourcegraph đã được chuyển sang chế độ riêng tư
  • Đây là một quyết định đã phá hủy nét văn hóa hấp dẫn của Sourcegraph
  • Sourcegraph đã để lại một bản chụp công khai có tên sourcegraph/sourcegraph-public-snapshot

Giữ lại các tham chiếu

  • Trong thời gian làm việc tại Sourcegraph, tác giả đã viết nhiều bài trên blog kỹ thuật
  • Nhiều bài trong số đó dùng liên kết đến mã nguồn công khai liên quan làm tham chiếu
  • Giờ đây tất cả các liên kết đó đều đã bị hỏng
  • Có câu nói rằng "URI đẹp không thay đổi"
  • Tác giả đang cố gắng hết sức để bảo tồn thông tin để các liên kết không đột ngột bị hỏng
  • Tác giả đã fork sourcegraph/sourcegraph thành efritz/sourcegraph
  • Fork không kế thừa pull request, và các commit không được tham chiếu trực tiếp bởi branch sẽ không hiển thị
  • Theo tài liệu GitHub, ngay cả khi một kho công khai được chuyển sang riêng tư, các fork vẫn tiếp tục tồn tại
  • Tuy nhiên, khi kho gốc bị chuyển sang riêng tư, các commit ngoài branch main có thể biến mất

Thu thập các commit liên quan

  • Tác giả đã chạy một chương trình Go để tìm tất cả commit
  • Chương trình này đã tạo ra 2.645 tệp metadata pull request
  • Tác giả dùng jq để đọc payload JSON và trích xuất dữ liệu
  • Đã tạo các tệp pr_ids.txt, commits.txt, replace_pairs.txt
  • Tác giả chạy chương trình thứ hai để liệt kê các commit chưa được merge của từng pull request
  • Chương trình này đã thêm các commit vào tệp commits.txt

Đưa commit vào một mạng lưới kho mới

  • Tác giả đã đưa chúng vào fork bằng cách tạo branch chứa từng SHA liên quan
  • Một script Bash được dùng để thực hiện tuần tự các thao tác git

Viết lại các tham chiếu

  • Giờ đây có thể liên kết từng tham chiếu tới đích tương ứng trong fork
  • Tác giả đã dùng xargs để triển khai quy trình tự động hóa
  • Các tham chiếu commit trực tiếp được viết lại sang fork, còn tham chiếu pull request được viết lại sang commit merge

Tóm tắt của GN⁺

  • Việc Sourcegraph chuyển sang riêng tư đã gây ảnh hưởng lớn đến văn hóa mã nguồn mở
  • Nhiều liên kết tham chiếu trong blog kỹ thuật đã bị hỏng, và cần rất nhiều nỗ lực để bảo tồn chúng
  • Tác giả đã dùng fork GitHub và script để viết lại các tham chiếu và bảo tồn commit
  • Bài viết này nhấn mạnh tính bền vững của các dự án mã nguồn mở và tầm quan trọng của các liên kết tham chiếu

1 bình luận

 
GN⁺ 2024-08-21
Ý kiến trên Hacker News
  • Ý kiến của CEO Sourcegraph:

    • Lý do chuyển codebase nội bộ sang riêng tư là để tập trung hơn
    • Việc duy trì mã nguồn mở và trạng thái công khai tạo ra nhiều công việc bổ sung và rủi ro
    • Cần tập trung vào việc xây dựng sản phẩm tìm kiếm/thông minh mã nguồn xuất sắc cho khách hàng
    • Công ty vẫn đang làm nhiều việc cho nhà phát triển và cộng đồng OSS
      • Cung cấp dịch vụ tìm kiếm mã nguồn công khai phổ biến
      • Duy trì nhiều mã nguồn mở
    • Nếu các nhà sáng lập khác đang cân nhắc có nên công khai mã nguồn hay không, ông sẵn sàng trao đổi
  • Ý kiến của người dùng khác:

    • Sourcegraph từng được xem là công ty hiểu rất rõ văn hóa lập trình viên, nhưng những thay đổi gần đây khiến họ thấy tiếc nuối
    • Đã cố tìm lộ trình công khai nhưng phần lớn tài liệu đã bị chuyển sang chế độ riêng tư
    • Cuốn handbook từng công khai trước đây đã chuyển sang Notion, và hầu hết các phần quan trọng đều dẫn tới tài liệu Google riêng tư
  • Ý kiến của một người dùng khác:

    • Chỉ mục tìm kiếm công khai của Sourcegraph gần đây đã biến mất
    • Trước khi tính năng tìm kiếm của GitHub được cải thiện, họ đã sử dụng Sourcegraph rất nhiều
    • Giờ đây các kho GitLab và nhiều kho GitHub đã biến mất khỏi chỉ mục
    • Vì chức năng tìm kiếm không còn đáng tin cậy, họ buộc phải quay lại GitHub
  • Ý kiến của người dùng khác:

    • Đã fork phiên bản mã nguồn mở để loại bỏ telemetry, vô hiệu hóa cập nhật, gỡ mã độc quyền, tạo image Docker và triển khai xác thực Oauth2 gọn nhẹ
    • Có kế hoạch tiếp tục chạy nó lâu dài phía sau Oauth2-Proxy
    • Đây là phần mềm rất đáng tin cậy
  • Ý kiến của một người dùng khác:

    • Đã sử dụng Sourcegraph rất nhiều cho công việc reverse engineering trên macOS
    • Nhờ khả năng tìm kiếm của Sourcegraph mà nhiều dự án đã tồn tại
    • Hy vọng tính năng tìm kiếm sẽ không biến mất trong tương lai
  • Ý kiến của một người dùng khác:

    • Việc biến toàn bộ công việc phát triển thành riêng tư là điều kỳ lạ và gây bối rối
    • Chỉ với các hạn chế giấy phép có lẽ cũng đủ đạt mục tiêu kinh doanh, nên họ thắc mắc vì sao lại chuyển sang riêng tư
  • Ý kiến của người dùng khác:

    • Đã dùng Sourcegraph rất nhiều nhưng tự hỏi có bao nhiêu người thực sự trả tiền cho nó
    • Vận hành một công ty mã nguồn mở là việc khó khăn
    • Khi công ty trưởng thành hơn, họ hiểu rằng có những thứ không thể tiếp tục cung cấp miễn phí
  • Ý kiến của người dùng khác:

    • Dự án Software Heritage đã lưu trữ phần lớn các kho của Sourcegraph
    • Lần thu thập cuối cùng là vào giữa tháng 7 năm 2024
  • Ý kiến của một người dùng khác:

    • Nhắc đến một sự việc trước đây rằng Sourcegraph không còn là mã nguồn mở nữa
  • Ý kiến của người dùng khác:

    • Đã trích dẫn và giới thiệu Sourcegraph rất nhiều nhưng chưa từng thực sự trả tiền cho nó
    • Họ tò mò về lý do từ bỏ mã nguồn mở, nhưng không thấy quá bất ngờ