Nơi để lưu trữ Dự án nguồn mở: CodePlex, Google Code, SourceForge? [đóng cửa]


165

Tôi đã đọc qua các hồ sơ tồn đọng của các câu hỏi đã trả lời về SO liên quan đến "Cách quảng bá một dự án nguồn mở". Không có gì đáng ngạc nhiên, nhiều câu trả lời đã hướng mọi người đến SoureForge / FreshMeat và các trang web khác, v.v. cũng như viết blog và không có gì. Điều này bắt đầu cho tôi nghĩ đâu là nơi tốt nhất để tổ chức một dự án và tại sao?

Vì dự án đầu tiên của tôi hiện đang được lưu trữ trên CodePlex, tôi bắt đầu lội qua các kết quả tìm kiếm của Google để thu thập thông tin về ưu / nhược điểm của từng dự án; tuy nhiên, so sánh mà tôi thấy là khá cũ (hơn 2 tuổi).

http://www.stum.de/2008/12/13/sourceforge-vs-codeplex/
http://www.developmentnow.com/blog/2006/11/codeplex-vs-sourceforge/
http: // www. spaceocket.com/forum/thread-6654.html
vv ...

Vì vậy, câu hỏi tiếp theo trở thành "Tôi có nên lưu trữ dự án của mình trên nhiều trang web không" mà bài đăng sau đây cung cấp câu trả lời mong đợi (rất may! Vì đó sẽ là một nỗi đau để duy trì).

Lưu trữ một dự án nguồn mở tại một số trang web

Dựa trên trạng thái hiện tại của các trang web lưu trữ Nguồn mở khác nhau như CodePlex, GitHub, Google Code, SourceForge, v.v., có bất kỳ ưu / nhược điểm đáng chú ý nào của một trang web này không? tức là, tôi có nên gắn bó với CodePlex hay tôi đang bỏ lỡ bằng cách không sử dụng một trong những lựa chọn thay thế? Một người sẽ mang lại nhiều lưu lượng truy cập hơn cho một dự án mới và chưa biết?

Tôi dự định khám phá từng trang web chi tiết hơn để xem tất cả những gì họ cung cấp, nhưng được cung cấp kiến ​​thức rộng lớn về những người tốt về SO, hình dung tôi sẽ bắt đầu với câu hỏi này trước tiên.

CẬP NHẬT

Theo câu trả lời erjiang dưới đây ... Tôi hiện đang sử dụng Mercurial để kiểm soát phiên bản và tôi mở cho mọi thứ khác ngoài TFS. Ngoài ra, dự án hiện tại của tôi chỉ có tôi phát triển, nhưng các dự án trong tương lai có thể hợp tác rất đáng để xem xét ...


55
Đóng câu hỏi này là IMO hoàn toàn không cần thiết. Tôi phải tự hỏi những gì đã đạt được gần? Câu hỏi có rất nhiều câu trả lời (vì vậy rõ ràng mọi người tìm thấy nó quan tâm), nó có câu trả lời được đánh giá cao (vì vậy câu hỏi này rõ ràng rất hữu ích) và đó là wiki cộng đồng (vì vậy ngay cả khi nó hỏi ý kiến ​​chủ quan hoặc đề xuất sản phẩm, không ai có thể đã thu được lợi nhuận đơn giản để tài trợ cho sản phẩm mới nhất và tốt nhất).
stakx - không còn đóng góp vào

12
Đây là loại câu hỏi nên được đóng lại trước khi nó nhận được rất nhiều câu trả lời, vì nó không thực sự là một loại thích hợp. Tuy nhiên, bây giờ nó đã nhận được rất nhiều phản hồi, việc đóng cửa là phản tác dụng và coi thường những đóng góp đã được thực hiện.
Chris Stratton

4
Một điều đạt được bằng cách đóng câu hỏi này @stakx là bảo vệ nó khỏi những câu trả lời mới. Bây giờ nó chắc chắn sẽ chìm vào không liên quan.
Bob Stein

@ BobStein-VisiBone chìm xuống không liên quan? Tôi chỉ đánh vào câu hỏi này hơn sáu năm sau khi nó được hỏi ban đầu.
wonea

2
@wonea Tôi đang trong tâm trạng mỉa mai. Tôi thất vọng khi những câu hỏi có liên quan, hữu ích và có thể trả lời như thế này bị vướng mắc. Vì thế, nếu các cơ hội mới để lưu trữ nguồn mở xuất hiện thì trang này bị hạn chế một cách giả tạo để chỉnh sửa chúng thành một câu trả lời hiện có. Câu hỏi cơ hội đặc biệt cần phòng để phát triển. Tôi hy vọng nó sẽ trở nên cũ hơn mỗi năm. Stackoverflow là tuyệt vời, nhưng nó cũng nhiều rác là tuyệt vời.
Bob Stein

Câu trả lời:


127

Chỉnh sửa 2015-08-01: Câu trả lời này vẫn nhận được lượt xem và lượt bình chọn. Nó còn hơn cả cổ xưa và tôi muốn xóa nó đi, nhưng vì đó là câu trả lời được chấp nhận, tôi không thể làm điều đó. Sau đó, một lần nữa, đó là wiki cộng đồng và cộng đồng đã cập nhật nó - cảm ơn bạn vì điều đó!

SourceForge đã vượt qua mặt tối, tiếp quản dự án và kết hợp chúng với Phần mềm quảng cáo (Phần mềm quảng cáo Google GIMP Sourceforge ). Tránh bằng mọi giá. GitHub cho đến nay vẫn là ứng dụng phổ biến nhất, mặc dù có những lựa chọn thay thế (ví dụ: BitBucket cung cấp repos riêng không giới hạn miễn phí cho tối đa 5 người dùng.)

Thật điên rồ khi phong cảnh thay đổi trong vài năm qua và nếu bạn đọc nó trong tương lai, có lẽ GitHub không còn là sản phẩm tuyệt vời nữa. Điểm mấu chốt là: Có rất nhiều tùy chọn tuyệt vời cho bất kỳ hệ thống kiểm soát nguồn nào bạn muốn sử dụng.

Thông tin cũ năm 2010 dưới đây vì lợi ích của lịch sử

Chỉnh sửa: Câu trả lời này là cổ xưa. Trong 2 năm qua, GitHub đã nổi lên như là nơi lưu trữ Code Code chính và bất cứ khi nào tôi phải tạo một dự án OSS mới, tôi không có dấu vết của một nghi ngờ sẽ đi đến đâu. Để lại dưới đây để tham khảo.

Thật vậy, bài viết của tôi đã gần 2 năm rồi (2008) và không hoàn toàn chính xác nữa.

Tại sao?

Bởi vì tôi nghĩ rằng SourceForge hiện không đáng kể đối với các dự án nguồn mở. Được rồi, điều này sẽ khiến tôi gặp nhiều rắc rối, vì vậy hãy để tôi làm rõ:

Tôi hoàn toàn tin tưởng rằng các dự án Nguồn mở nên được chạy trên DVCS, tốt nhất là git hoặc đồng bóng vì chúng phổ biến nhất - không có gì chống lại Bazaar, nhưng tôi nghĩ nó hơi mơ hồ. ( Chỉnh sửa: SourceForge hiện cung cấp Mercurial và Bazaar, do đó, tranh luận không còn tồn tại nữa. Tuy nhiên, sau hai lần thiết kế lại tôi nghĩ rằng hình ảnh của SF không quá tuyệt vời. Để so sánh chúng với hình ảnh của các công ty: Trong khi GitHub là Apple, SF là IBM. Rock rắn, nhưng hơi bụi)

Vì vậy, nếu tôi viết bài đăng này một lần nữa, đó sẽ là CodePlex so với GitHub so với BitBucket , với GitHub là Người chiến thắng. Nhưng đó là một tuyên bố chăn, vì vậy hãy để tôi thêm chi tiết. +/- không hoàn toàn Pro / Con, nó làm nổi bật hơn những triết lý khác nhau.

CodePlex

+ Real Mercurial / Git Hosting - không có lỗi trên TFS, bạn có
Wiki tích hợp Mercurial / Git + cho phép thêm tài liệu phong phú và các trang tìm kiếm đẹp mắt
+ Bao gồm các diễn đàn thảo luận và theo dõi lỗi
- Trình duyệt mã nguồn không tuyệt vời - Diffs xuất hiện trong một cửa sổ bật lên và chỉ 'cảm thấy' phức tạp
- Fork and Pull Requests 'không dễ dàng' - UI có thể sử dụng một số công việc

Nhìn chung, CodePlex vẫn rất tuyệt nhưng tôi cảm thấy nó phù hợp hơn cho các nhà phát triển đơn lẻ hoặc các nhóm rất nhỏ vì trọng tâm của trang web là trên Wiki thay vì mã nguồn. Đó là một xuất bản hơn là một nền tảng cộng tác. Về mặt lý thuyết bạn không cần trang chủ dự án, dự án CodePlex của bạn có thể là cửa hàng một cửa của bạn.

GitHub

+ Git Hosting, hỗ trợ SSL / SSH
+ Biểu đồ mạng cho phép xem các nhánh và những gì được hợp nhất vào khi nào
+ Khả năng 'xem' các dự án - trang tài khoản của bạn giống như một bức tường Facebook với các đăng ký mới
+ Trình xem khác biệt siêu tốt với khả năng nhận xét trên các thay đổi một dòng - xem tại đây
+ Forking là một quá trình 2 lần nhấp và do đó, việc gửi yêu cầu kéo
+ GitHub hiện có công cụ GUI GitHub cho Windows
- Trang chính không 'đẹp' cho Người không phát triển. Nếu bạn có Readme trong dự án của bạn (hỗ trợ một số ngôn ngữ đánh dấu như Markdown hoặc HTML) thì nó được hiển thị, nhưng trang ban đầu là mã nguồn
- Wiki không tuyệt vời - đó là Markdown, nhưng đôi khi định dạng cảm thấy hơi phức tạp.

GitHub có một triết lý khác với CodePlex: đó là tất cả về mã nguồn và về sự hợp tác giữa các nhà phát triển. Trang dự án chính là mã nguồn cập nhật nhất. Có một Wiki riêng, nhưng đó là dành cho Tài liệu hơn là trình bày dự án của bạn. Biểu đồ mạng là tuyệt vời, mặc dù nó có thể gây nhầm lẫn một khi có hơn 20 dĩa (thường là khi một dự án cấu hình cao được thông báo cho tất cả mọi người và con chó của họ đang giả mạo nó, nhưng hầu hết các dĩa đều chết nhanh chóng). GitHub quy mô rất tốt cho bất kỳ kích thước.

Trên thực tế, GitHub giúp tôi dễ dàng rẽ nhánh một dự án, áp dụng bản sửa lỗi / bản vá, cam kết nó với ngã ba của tôi và gửi yêu cầu kéo cho tác giả. Cùng với biểu đồ Mạng, thật dễ dàng để thấy cam kết.

Nhưng rất có thể bạn cần một trang chủ riêng để trình bày dự án của mình cho người dùng cuối và để cung cấp các bản tải xuống, vì các cơ sở tải xuống GitHub không tuyệt vời như vậy.

Cai Xô nhỏ

+ Git / Mercurial
+ Cho phép kho riêng tư miễn phí, tối đa 5 người dùng

Tôi chưa sử dụng BitBucket đủ để đưa ra nhận xét thực sự. Một tính năng khác biệt là lưu trữ riêng là miễn phí, trong khi phí GitHub và Codeplex hoàn toàn không cung cấp tính năng này.

Mã Google

Google Code không phải là một lựa chọn nữa.

- Việc tạo dự án bị vô hiệu hóa kể từ tháng 3 năm 2015 và dịch vụ Google sẽ đóng cửa vĩnh viễn vào ngày 25 tháng 1 năm 2016 , vì các dịch vụ cạnh tranh đơn giản là tốt hơn.
- Thật xấu xí và quá phức tạp để duyệt mã nguồn (liên kết có phần bị chôn vùi)

Tôi đã không sử dụng nó vì vậy tôi không muốn nói rằng nó xấu - không phải vậy. Rất nhiều dự án sử dụng nó và nó rất ổn định và mạnh mẽ, chưa từng nghe nhiều điều tồi tệ từ bất kỳ nhà phát triển nào. Tuy nhiên, như một vấn đề cá nhân, ý kiến ​​chủ quan , "thiết kế" khiến tôi thất vọng.

SVN so với Git / Mercurial

Để nhắc lại nhận xét của tôi ở trên về việc SourceForge bị lỗi thời: Điều đó tất nhiên là hơi khắc nghiệt. Tuy nhiên tôi tin rằng SVN gây bất lợi cho các dự án nguồn mở. Trước hết, yêu cầu siêu dữ liệu kỳ lạ để bỏ qua các tập tin. Trên Git hoặc mercurial, bạn có một tệp có tên .gitignore hoặc .hgignore trong thư mục gốc của cây nguồn bao gồm danh sách các tệp / thư mục / mẫu cần bỏ qua. Không có phép thuật svn: bỏ qua siêu dữ liệu trong thư mục .svn. Điều này một mình thổi SVN ra khỏi nước cho tôi. Nếu tôi bắt đầu một dự án Visual Studio mới, tôi cần phải áp dụng siêu dữ liệu ma thuật đó, trong khi với Git / mercurial, tôi chỉ cần sao chép qua một tệp và được thực hiện với nó.

Sau đó, khả năng rẽ nhánh, vá và gửi yêu cầu kéo là tuyệt vời, đặc biệt là đối với các bản vá nhỏ / một lần.

Cuối cùng nhưng không kém phần quan trọng, SourceForge vẫn còn CÁCH quá phức tạp đối với sở thích của tôi. Nó không phải là một máy chủ xấu, nhưng nó thực sự cho thấy tuổi IMHO. Điều đó đang được nói, nó vẫn mạnh mẽ và có nhiều gương trên toàn thế giới. Ngoài ra Bug Tracker phức tạp hơn nhiều so với những cái khác.

Ngoài ra, nếu dự án của bạn vì một số lý do đòi hỏi các quy tắc đóng góp nghiêm ngặt (có thể có ý nghĩa, ví dụ như bảo vệ pháp lý để đảm bảo mã cam kết thực sự được đóng góp hợp pháp) thì một hệ thống truyền thống như SVN được lưu trữ trên SourceForge có thể hoạt động.

Chỉnh sửa: Không biết rằng SF cuối cùng đã phân phối lưu trữ. Như đã nói ở trên, nó mạnh mẽ nhưng không còn là 'đứa trẻ ngầu' nữa, và tôi thấy nó quá phức tạp.

TL; DR

Đối với bất kỳ dự án vừa và nhỏ nào, tôi đều giới thiệu GitHub, cho các dự án nhỏ nơi bạn muốn có một trang web đẹp cũng như tôi đi với CodePlex và cho các dự án riêng tư tôi sẽ đi với BitBucket. Đối với các dự án lớn yêu cầu trình theo dõi lỗi rất tinh vi, hàng tấn các tính năng bổ sung và trang web 'thực', hãy xem xét Source Forge.


3
Tôi không thể đồng ý về Google Code, tôi nghĩ rằng nó dễ dàng, trực quan và gọn nhẹ (và trang web rất nhanh ! So sánh với CodePlex đi!) Và sẽ là lựa chọn số 1 của tôi mỗi lần. Nhưng phần còn lại là một đọc thú vị.
Konrad Rudolph

2
@Konrad Đúng như đã nói, đó là chuyện cá nhân. Có lẽ cách tiếp cận tối giản đang đưa tôi ra. Tôi chưa nghe thấy gì xấu về mặt chức năng của nó, nhưng tôi chưa bao giờ tổ chức một dự án ở đó.
Michael Stum

2
Câu trả lời tuyệt vời, rất chi tiết! Cung cấp một giải thích tuyệt vời về sự khác biệt giữa các trang web lớn (tốt, CodePlex và GitHub) mà tôi tò mò nhất. Cũng thú vị khi bạn xác định SourceForge là không đáng kể ở giai đoạn này; chắc chắn là một sự thay đổi trong quan điểm từ các bài viết cũ. Cảm ơn!
Chris Baxter

4
Cũng có những yếu tố đặc biệt với loại dự án bạn đang chạy. Ví dụ: với các dự án .Net, CodePlex hỗ trợ triển khai ClickOnce, trong khi Google Code thì không.
dbkk

1
@MichaelStum Có lẽ bạn có thể thêm dịch vụ Trang GitHub. Điểm vào cho bất kỳ dự án nào được lưu trữ trên GitHub phải là một trang.
Máy hút ẩm Matías

8

Chà, bạn chưa nói bạn sử dụng hệ thống kiểm soát nguồn nào, điều này ảnh hưởng lớn đến sự lựa chọn của bạn.

(không toàn diện)

  • Git -> GitHub hoặc Gitorious là những lựa chọn rõ ràng
  • Mercurial -> BitBucket
  • SVN -> Savannah, SF.net
  • Chợ -> Launchpad
  • CVS -> nâng cấp lên hệ thống kiểm soát nguồn mới hơn

Tôi là một người hâm mộ Git, nhưng Mercurial cũng khá tuyệt vời. Cá nhân tôi sử dụng GitHub cho các tính năng cộng tác tuyệt vời của nó, như dễ dàng yêu cầu kéo và kéo.

Tôi muốn thêm rằng CodePlex không phổ biến lắm trong hệ sinh thái nguồn mở bên ngoài trại của Microsoft và điều đó dễ thấy từ danh sách được tải xuống nhiều nhất của họ. Đây có lẽ là sự kết hợp giữa việc Microsoft làm trung tâm một cách tự nhiên và cũng từ những kỳ thị trong quá khứ. Nếu bạn đang phát triển riêng cho .NET hoặc một cái gì đó tương tự, thì điều đó sẽ thay đổi quan điểm.

Chỉnh sửa: Ngoài ra, tôi sẽ lập luận rằng các nhà phát triển thường không duyệt ngẫu nhiên các dự án thú vị. Bạn có cùng khả năng đi không được chú ý trên GitHub như bạn đang ở trên CodePlex, nhưng nếu ai đó không phát hiện ra dự án của bạn, họ sẽ có nhiều khả năng gửi tin nhắn / lỗi tập tin / đóng góp nếu họ đã có một tài khoản trên trang web đó.


2
Tôi hiện đang sử dụng Mercurial (sẽ không chạm vào TFS với cực 10ft)
Chris Baxter

2
Có gì đó không đúng với cụm từ dễ dàng
Marko

2
Đối với bất kỳ ai tò mò, trên GitHub, thay vì từ bỏ một sự phân chia không thể đảo ngược của một dự án, đó là cách tốt nhất để sửa đổi một dự án hiện có. Sau khi bạn thực hiện các sửa đổi cá nhân của mình, bạn có thể gửi "dự án kéo" dự án ban đầu đó tới các thay đổi từ ngã ba của bạn.
erjiang

Tôi đồng ý rằng CodePlex chỉ nhắm mục tiêu vào Microsoft Development; điều đó xảy ra với tôi ... ấn tượng tôi nhận được là nếu nguồn mở chung ... GitHub; nếu .NET Tập trung và nhóm CodePlex đơn / nhỏ hơn. Cũng giống như chỉnh sửa về nhận thức ... đó sẽ là trận chiến tiếp theo. Cảm ơn!
Chris Baxter

1
@marko: Dễ dàng rèn là một điều tốt
Nicolas Raoul

4

Vì Github đang phát triển khá nhanh và dường như là nổi bật nhất trong số các dự án tôi thấy những ngày này. Nó sẽ nhận được phiếu bầu của tôi.

Nhưng tôi nghĩ người ta không có nghĩa là bạn không thể sử dụng người khác. Tôi thấy nhiều dự án sử dụng Github cho nguồn và Google Code cho các tài liệu. Và bên cạnh đó, một liên kết Sourceforge cũng như vậy.

Việc bạn sử dụng như một máy chủ chính thực sự không quan trọng, nhưng tôi khuyên bạn nên thêm các dự án của mình trên các trang web khác để dễ dàng tìm thấy nó.


Điều thú vị là bạn sẽ khuyên bạn nên lưu trữ trên nhiều trang web. Suy nghĩ ban đầu của tôi sẽ là đồng ý với các tài liệu tham khảo Câu trả lời SO được liên kết ở trên ... suy nghĩ của bạn về chủ đề đó là gì?
Chris Baxter

@ Trình mã hóa: Tôi không nói cụ thể về lưu trữ, nhưng liên kết nhiều hơn. Tôi đã ngừng sử dụng Sourceforge nhiều năm trước vì sự thay đổi thiết kế chậm chạp và khủng khiếp. Nhưng việc tạo dự án tại sourceforge và liên kết đến trang web github của bạn (hoặc bất cứ điều gì) có thể giúp làm cho dự án của bạn dễ dàng được tìm thấy hơn. Đối với tài liệu tôi thấy wiki Google Code dễ hơn wiki Github, vì vậy đó là lý do tại sao tôi thích điều đó. Tôi thích giao diện Github và các tùy chọn forking vì vậy tôi nghĩ đó là một lựa chọn tốt cho nguồn của bạn. Để xem lại mã tôi thấy launchpad rất đẹp.
Wolph

4

Câu hỏi này có vẻ như là một bản sao của câu hỏi này: /programming/10490/best-open-source-project-hosting-site

Đây là câu trả lời của tôi cho câu hỏi đó: /programming/10490/best-open-source-project-hosting-site 43233969#3433969

Nói chung, tôi nghĩ rằng những ưu / nhược điểm quan trọng nhất liên quan đáng kể đến các tính năng phát triển được cung cấp và đối tượng chính của mỗi trang web, trong câu trả lời trên tôi đã tìm hiểu về bốn trang web phổ biến nhất.


1
Cảm ơn liên kết, tôi đã cố gắng không lặp lại một câu hỏi, nhưng tôi đã bỏ lỡ câu hỏi đó.
Chris Baxter

1
@CachearyCoder ít nhất bạn có thể đã nâng cấp, vì bạn đã dành thời gian để cảm ơn anh ấy. Nvm, tôi đã làm điều đó cho bạn ;-)
Mawg nói rằng phục hồi Monica

Các liên kết này dường như đã chết bây giờ.
pbible
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.