SourceGraph ngừng các tính năng mã nguồn mở
(github.com/sourcegraph)- Sourcegraph đã chuyển sang monorepo riêng tư
- Kho lưu trữ này (
sourcegraph/sourcegraph-public-snapshot) là bản sao công khai của khosourcegraph/sourcegraphngay trước thời điểm chuyển đổi
1 bình luận
Ý kiến trên Hacker News
Cody vẫn là mã nguồn mở theo giấy phép Apache 2 trong thư mục
client/cody*của kho lưu trữ, và sắp tới sẽ được tách ra thành một kho riêng 100% mã nguồn mởNguyên tắc cấp phép là cung cấp công cụ cho lập trình viên cá nhân dưới dạng mã nguồn mở và tính phí các công ty
Biến thể mã nguồn mở với tính năng giới hạn của tìm kiếm mã hầu như không được cả lập trình viên cá nhân lẫn công ty sử dụng, và mức sử dụng tìm kiếm mã Sourcegraph nghiêng về bản dựng chính thức không mã nguồn mở còn nhiều hơn cả các trường hợp như Google Chrome so với Chromium, hay VS Code so với VSCodium
Việc duy trì hai biến thể là gánh nặng cho đội ngũ kỹ sư trong khi lợi ích mang lại cho người dùng là rất nhỏ
Giải thích chi tiết hơn có tại https://github.com/sourcegraph/sourcegraph/issues/53528#issu...
Các thay đổi đã được thông báo trong changelog và PR, và mọi hoạt động phát triển đều diễn ra công khai
Theo kế hoạch, sau khi tách kho đơn khối lớn này thành kho 100% mã nguồn mở cho Cody và kho không mã nguồn mở cho tìm kiếm mã, công ty sẽ đăng một bài blog trong tuần này
Đối với mã công khai, có thể tiếp tục dùng miễn phí tìm kiếm mã Sourcegraph tại https://sourcegraph.com, còn với mã riêng tư thì có thể dùng miễn phí trong gói free tier tự lưu trữ
Tức là lập trình viên cá nhân vẫn có thể chạy tìm kiếm mã Sourcegraph hoàn toàn miễn phí, và khách hàng sẽ không bị ảnh hưởng
Chỉ cần tìm issue vài phút là ra khá nhiều kết quả liên quan: https://github.com/sourcegraph/sourcegraph/issues/43231, https://github.com/sourcegraph/sourcegraph/issues/43203, https://github.com/sourcegraph/sourcegraph/issues/6790, https://github.com/sourcegraph/sourcegraph/issues/6783
Nếu chỉ có ít người có thể build, và ngay cả khi build thành công thì cứ vài bản phát hành lại bị hỏng, thì chuyện phiên bản mã nguồn mở có mức sử dụng thấp là điều dễ hiểu
VS Code và Chromium nhờ tính chất và độ phổ biến của chúng nên dễ build và có thể tìm thấy bản dựng sẵn ở nhiều nơi
Tôi có thể cài một bản build Chromium “không chính thức” trong kho của bản phân phối, nhưng sẽ không đưa mã của mình vào một bản build Sourcegraph không chính thức do người lạ trên GitHub tạo ra
So sánh hai bên như vậy là khá thiếu công bằng, và còn có những vấn đề khác đã cản trở việc tiếp nhận mã nguồn mở
Trong một thời gian, image Docker chính thức của Sourcegraph có kèm giấy phép miễn phí 10 ghế, đủ dùng với nhiều người, nên họ không tìm đến các lựa chọn thay thế như bản build mã nguồn mở
Việc thông báo thay đổi giấy phép và đóng sản phẩm bằng một khối nhỏ trong file changelog, hoặc khi ai đó nhắc đến vấn đề trong GitHub Issues, không thể xem là thông báo đầy đủ cho những thay đổi như thế này
Không theo nguyên tắc open-first, giới hạn sản phẩm bằng các plugin chỉ dành cho enterprise như người khác đã nói dưới bài này, không cung cấp bản build mã nguồn mở, và thay đổi giấy phép mà không báo trước, trong khi trước đó lại hưởng lợi từ kiểu marketing miễn phí dễ chịu dựa trên các thuật ngữ mã nguồn mở, là điều khá chua chát
Đặc biệt là vì hiện nay có quá nhiều công ty làm như vậy do lãi suất
Tôi không cho rằng nhận định của Sourcegraph rằng phiên bản mã nguồn mở đã không thành công là sai, và rõ ràng đóng mã nguồn thì dễ hơn nhiều
Nhưng rốt cuộc đây là phép tính rằng công sức để giữ mở kênh tiếp cận đó không đáng giá bằng số người đi vào qua kênh đó, nên một kênh tiếp cận đang bị đóng lại
Cũng có khả năng khác. Tôi thiên về việc kênh tiếp cận đó ngay từ đầu đã không được mở đủ rộng để có cơ hội thành công
Đặt ra những hạn chế như vậy thì không còn là mã nguồn mở, và khá dễ thấy là không trung thực
Giấy phép kiểu này không được OSI phê duyệt
Khó khăn của Sourcegraph là nó khó tiếp cận với các lập trình viên làm dự án cá nhân
Không có gói hosting, và các dự án của tôi không thể dễ dàng công khai thành mã nguồn mở vì lý do từ phía công ty tuyển dụng
Khi Sourcegraph App ra mắt, tôi thực sự hào hứng vì có thể thử Sourcegraph trên các dự án của mình mà không cần cấu hình tự lưu trữ phức tạp
Tôi đã làm cho
scip-clangchạy được trên dự án dùng Bazel, và cũng thử cấu hìnhdocker-composetrong homelabGiờ tìm kiếm mã đã bị gỡ khỏi ứng dụng, lại còn có thêm thay đổi này, nên tôi lo rằng sắp tới sẽ không thể dùng Sourcegraph cho các dự án cá nhân nữa
Đây là một cơ hội bị bỏ lỡ
Những lập trình viên cá nhân dùng sản phẩm cho dự án riêng có thể trở thành những người ủng hộ rất mạnh, và chính họ cũng có thể thuyết phục công ty của mình mua sản phẩm
Nếu có thể thì tôi sẵn sàng trả tiền, nhưng với một cá nhân thì 5.000 USD mỗi năm là khó có thể biện minh
Nếu muốn tiếp tục thảo luận sau khi bài đã rời khỏi trang đầu HN, hãy vào Discord https://discord.gg/rDPqBejz93
Nếu muốn trực tiếp chia sẻ phản hồi hoặc bất mãn, hãy cho tôi biết. Nếu không phiền, cũng có thể công khai bản ghi âm
Nếu đang tìm một công cụ tìm kiếm mã nguồn open source có thể grep với tốc độ điên rồ trên nhiều kho lưu trữ hoặc một monorepo lớn, thì tôi rất khuyên dùng livegrep: https://github.com/livegrep/livegrep
Bản demo ở https://livegrep.com/search/linux
Nó từng được dùng ở Stripe và khá phổ biến; ngay cả khi chỉ tìm trong một kho duy nhất thì nhiều khi livegrep vẫn nhanh hơn
ripgrepchạy cục bộBài viết đánh giá: https://www.alexdebrie.com/posts/faster-code-search-livegrep...
Hồi tưởng về ảnh hưởng của tác giả nelhage: https://blog.nelhage.com/post/reflections-on-performance/, bài viết về kiến trúc: https://blog.nelhage.com/2015/02/regular-expression-search-w...
Miễn là không quá lớn thì nó cũng hoạt động tốt trên nhiều kho lưu trữ
Nhưng rõ ràng nó không phải là thứ có thể thay thế Sourcegraph trong việc thực sự hiểu code nền, lần theo đường đi của code và tìm kiếm tham chiếu
Không nên xây startup với giả định rằng sản phẩm của người khác sẽ mãi mãi thiếu sót
Với đợt cải tổ tìm kiếm gần đây của GitHub, có khả năng Sourcegraph đã mất đi tính liên quan
Tìm kiếm GitHub ngày xưa dùng một thuật toán gần như tệ nhất có thể
Nó vứt bỏ mọi dấu câu và khoảng trắng, chỉ tìm trên định danh, không hỗ trợ pattern, không tìm bằng dấu ngoặc kép, và gần như meta-argument duy nhất dùng được là
filename:xyzGiờ GitHub đã cải thiện tính năng tìm kiếm cơ bản nên Sourcegraph có thể gặp rủi ro
Tôi từng dùng Sourcegraph ở Lyft, mà hồi đó Lyft gần như có ngân sách vô hạn để đốt vào công cụ phần mềm; còn ở Databricks thì chúng tôi cài bản open source nhưng chẳng ai quan tâm
Tôi khá chán việc giải pháp chỉ dành cho GitHub lại được tâng bốc như “tiêu chuẩn ngành”
Các vendor chỉ tung ra tích hợp với những sản phẩm chỉ chạy trên GitHub cũng vậy
Git là một giao thức phi tập trung, nên làm ơn hãy đối xử với nó như thế
grepGitHub không miễn phí, đặc biệt là với các tổ chức riêng tư lớn, và khả năng tìm kiếm của Sourcegraph tốt hơn GitHub rất nhiều
Theo tôi hiểu thì GitHub bản on-premise không có kế hoạch đưa tính năng tìm kiếm code mới vào
Tôi cũng tò mò không biết có ai thực sự dùng bản mở hay không
Tôi nhớ mang máng đã xem qua nó 2~3 năm trước, và tất cả những tính năng thật sự thú vị đều đã bị lược bỏ
Giá enterprise khi đó vào khoảng 100 USD mỗi nhà phát triển mỗi tháng, hoàn toàn vô lý, và rõ ràng là họ chỉ nhắm đến những khách hàng lớn có ngân sách vô hạn
Có vẻ giờ giá đã đổi và “Enterprise Starter” là từ 5.000 USD mỗi năm, nhưng dù có rất nhiều mục liệt kê thì những giới hạn thực tế là gì vẫn cực kỳ mơ hồ
Tôi thực sự quan tâm đến sản phẩm này và nó có thể là một bổ sung tốt cho bộ công cụ của chúng tôi, nên thật đáng tiếc khi giá cả lại thiếu minh bạch như vậy
Họ từng hứa 1~2 năm trước là sẽ sửa hoặc cung cấp image open source chính thức, nhưng điều đó đã không xảy ra
Cuối cùng có một người đã tạo một release train hoạt động trên GitHub và phân phối container open source, và trên Docker Hub đã ghi nhận hơn 10 nghìn lượt pull
Với một image không chính thức thì đó là con số khá lớn
Nếu một công cụ bên thứ ba không phải hạ tầng cốt lõi mà lại bắt phải liên hệ sales, tôi thường sẽ tránh
Đừng bắt người ta lãng phí thời gian công ty để làm việc với sales chỉ vì vài giấy phép; cứ đưa ô nhập số lượng và nút mua là được
Mức độ tin tưởng của tôi vào Sourcegraph cũng giảm đi phần nào, vì có vẻ như họ thay đổi định hướng, giá cả và quy tắc nhiều lần trong một năm
Tôi áp dụng vài bản vá để hỗ trợ OAuth2 proxy và cũng gỡ telemetry
Phần mềm tự thân thì rất tốt, rất nhanh và hoạt động đúng như mong đợi
Vài tháng sau số người dùng đăng ký lên đến 70, nhưng tổng cộng chỉ có 3 người thực sự dùng thử vài lần
Rất kỳ quặc
Ngân sách của tôi khá hạn chế mà tôi vẫn trả nhiều hơn thế cho nhiều sản phẩm khác
Nếu đó là công cụ giúp tăng năng suất hoặc hỗ trợ kinh doanh thì hoàn toàn đáng để trả tiền
Giấy phép thực ra đã thay đổi gần 3 tuần trước, nhưng bài blog phát hành 5.1.0 lại không nhắc gì đến việc này
Vẫn chưa có thông báo chính thức nào
Có vẻ tác giả container open source của Sourcegraph đã thông báo rằng release train của mình giờ đã kết thúc: https://github.com/jensim/sourcegraph-release-train/
Phần hỗ trợ trong giai đoạn demo khá tệ, hỗ trợ C++ cũng thiếu, không tích hợp tốt với các hệ thống build C++ hiện đại, và giá thì vô lý
Họ cứ tiếp tục thúc đẩy tính năng “campaign”, nhưng đó là một công cụ tự động refactor quá phức tạp, thậm chí còn không hỗ trợ nổi hệ thống build không độc quyền và khá phổ biến của chúng tôi
Thay vì trả phí license đó, chúng tôi thuê hai lập trình viên để refactor code, và sau đó họ còn tạo ra các công cụ khác nữa, đồng thời chúng tôi cũng không cần phải thuê riêng ai đó chỉ để xử lý việc tích hợp dịch vụ tệ hại
Khi nói chuyện với chúng tôi, khó mà nói rằng họ đã tìm được một thị trường ngách
Có thể bây giờ mọi thứ đã khá hơn
Từ đó đến nay đã thay đổi rất nhiều
Gần đây họ đã phát hành indexer mới
scip-clang(https://about.sourcegraph.com/blog/announcing-scip-clang), và đã dùng thành công để index các codebase lớn như ChromiumIndexer này phụ thuộc vào JSON compilation database, giống như indexer cũ
lsif-clang, và có thể tạo khá dễ từ CMake, Bazel, Meson, Make, v.v.Gần đây họ cũng đã hỗ trợ điều hướng mã xuyên kho cho C++: https://about.sourcegraph.com/blog/c-cpp-cross-repo
Tôi cứ nghĩ giờ đây JSON compilation database đã có thể được tạo ra khá ổn
Ví dụ nó cũng được dùng trong language server của VS Code
https://github.com/sourcegraph/sourcegraph/issues/53528#issu... có vẻ là bình luận từ phía dự án tổng hợp lý do vì sao họ thay đổi
Sourcegraph cho biết họ sẽ tiếp tục cam kết với Zoekt, công cụ tìm kiếm mã nguồn mở, và sẽ tiếp tục upstream các thay đổi: https://github.com/sourcegraph/zoekt
Mã nguồn sẽ tiếp tục ở trạng thái công khai
Các lập trình viên cá nhân vẫn có thể tiếp tục dùng Sourcegraph miễn phí cho mã công khai trên sourcegraph.com và mã riêng tư trong free tier tự host
Theo họ, có rất ít lập trình viên cá nhân hoặc công ty dùng biến thể tìm kiếm mã hạn chế từng là mã nguồn mở, còn đại đa số tuyệt đối, trên 99,9%, dùng sản phẩm enterprise
Việc tiếp tục duy trì cả hai biến thể về sau là gánh nặng lớn cho đội ngũ kỹ thuật trong khi lợi ích mang lại cho người dùng là rất nhỏ
Họ cũng nói có cung cấp bản tự host miễn phí cho cá nhân, nhưng tôi không tìm thấy trên website
Nhìn chung tôi chưa bao giờ thích sản phẩm open core
Với tư cách là người tạo ra thứ gì đó, việc đặt rào cản trước mặt người dùng và giới hạn phạm vi họ có thể sử dụng thành quả của mình khiến tôi thấy thiếu tinh thần nghề nghiệp
Những quyết định cố tình cản trở cách mọi người dùng sản phẩm đôi khi còn khiến tôi cảm thấy đó đơn thuần là lòng tham
Nếu hình dung một thế giới nơi Sourcegraph hoàn toàn là phần mềm tự do, thì khách hàng enterprise vẫn rất có thể sẽ trả tiền để host Sourcegraph on-premise một cách an toàn
Chỉ là họ sẽ không thể tính phí theo số ghế
Họ sẽ phải giữ giá sản phẩm đủ thấp để khách hàng không tiết kiệm được quá nhiều tiền bằng cách thuê kỹ sư tự duy trì Sourcegraph on-premise
Tôi tò mò không biết Sourcegraph hay bất kỳ doanh nghiệp open core nào khác có từng ước tính sẽ mất bao nhiêu khách hàng và doanh thu nếu chuyển hẳn sang phần mềm tự do hoàn toàn hay chưa
Việc tạo ra phần mềm tự do và thu phí hosting có thể là nền tảng cho một doanh nghiệp bền vững, nhưng có lẽ khó đem lại mức kết quả mà venture capital kỳ vọng ở một khoản đầu tư thành công
Thành thật mà nói, tôi thấy hạ tầng là phần mềm đóng độc quyền cũng không sao
Vì nếu bạn đang viết một chương trình nhạy cảm về bảo mật, việc công khai tự do mã hạ tầng có thể cung cấp rất nhiều đạn dược cho kẻ tấn công
Nếu bạn tin vào sức mạnh của tự động hóa và việc xây dựng phần mềm chất lượng cao, bạn có thể tạo ra phần mềm tự do mà vẫn dễ dàng và an toàn để triển khai, vận hành trên hạ tầng của khách hàng, với gánh nặng vận hành rất nhỏ từ phía bên host, trong khi mã hạ tầng vẫn là độc quyền
Cách làm này có thể dẫn tới một doanh nghiệp rất vững chắc
Tôi tự hỏi vì sao không thấy nhiều doanh nghiệp như vậy hơn
Có thêm một chút thông tin trong https://github.com/sourcegraph/sourcegraph/commit/3cd931ef54..., nhưng cũng không nhiều
Mình đang thắc mắc hệ thống tìm kiếm mã nguồn mở nào tốt để kết nối khoảng 100 kho Git có thể dùng trên web
Tìm kiếm của GitHub thì quá rộng và không thể bao gồm các kho như GitLab, nên không phù hợp
Trước đây mình từng xem Debian code search https://github.com/Debian/dcs nhưng cảm giác sẽ cần khá nhiều công sức nên chưa tìm hiểu đến cùng
Tuy vậy, https://github.com/Debian/dcs/blob/main/howto/building.md có vẻ khá dễ tiếp cận
Cũng có Zoekt mà Sourcegraph nhắc tới https://github.com/sourcegraph/zoekt nhưng mình chưa chắc nó dùng ổn đến mức nào
Nếu nó thật sự tốt như vậy thì mình cũng tò mò vì sao phiên bản mã nguồn mở của Sourcegraph lại từng tồn tại
Nhìn vào các thảo luận về việc phiên bản mã nguồn mở của Sourcegraph đã tụt lại khá xa trong vài năm qua, có vẻ họ không định fork một cách nghiêm túc
Bản phát hành GCS https://github.com/google/codesearch có vẻ đã được mã nguồn mở hóa mà không có frontend
Ở trên cũng có người đề xuất Livegrep https://github.com/livegrep/livegrep và OpenGrok https://oracle.github.io/opengrok/
Mình khá háo hức muốn thử, nhưng nếu có sẵn một cấu hình Docker Compose đang chạy được thì sẽ rất hữu ích để bắt đầu
Cũng có Eureka https://github.com/Rajeev-K/eureka
Nó có vẻ kém mạnh hơn, nhưng triển khai thì có vẻ dễ hơn
Livegrep(https://github.com/livegrep/livegrep) được lấy cảm hứng từ đó và dùng khá ổn
Zoekt cũng vốn là một dự án mã nguồn mở của Google, nhưng đã bị ngừng bảo trì và sau đó Sourcegraph tiếp quản
Nó vận hành phần lớn tìm kiếm regex/literal mặc định của Sourcegraph
Mã nguồn của Mozilla có thể được tìm kiếm trên Searchfox(https://searchfox.org/); dịch vụ này kết hợp bộ lập chỉ mục của Livegrep, bộ lập chỉ mục Git riêng và cơ sở dữ liệu tham chiếu chéo theo từng ngôn ngữ
OpenGrok(https://github.com/oracle/opengrok) cũng khá nổi tiếng, nhưng mình thấy UI của nó hơi tệ hơn một chút so với các lựa chọn khác
cs: https://github.com/boyter/cs