Blog FOSS by Lê Trung Nghĩa

https://letrungnghia.mangvn.org

Tạo một dự án mới trên Google Code

P { margin-bottom: 0.21cm; }A:link { }

Creating a new Google Code project

By Stuart Yeates and Ross Gardler, Published: 06 March 2007, Reviewed: 11 February 2013

Theo: http://www.oss-watch.ac.uk/resources/googlecode

Bài được đưa lên Internet ngày: 11/02/2013

Lời người dịch: Chúng ta đã làm quen với cách đưa một dự án phần mềm tự do nguồn mở (PMTDNM) lên SourceForge.net, một nơi đặt chỗ với vô số các công cụ giúp triển khai dự án PMTDNM. Bài này cho chúng ta một cách khác, đưa lên Google Code với tất cả những thuận lợi và các rào cản của nó. Ngoài 2 nơi đặt chỗ này ra, còn nhiều nơi đặt chỗ khác như GitHub, Savannah, GNA, BerliOS, TuxFamily, Debian Alioth. Mỗi nhà cung cấp đó đưa ra một tập hợp các dịch vụ và tập hợp các điều kiện khác nhau để sử dụng. Xem thêm: Tạo một dự án trên SourceForge.

Google Code là một website đưa ra các dịch vụ đặt chỗ tự do cho các dự án nguồn mở. Nó cung cấp các cơ sở cốt lõi theo yêu cầu của một dự án nguồn mở do cộng đồng dẫn dắt. Tài liệu này là giới thiệu cơ bản để làm quen với việc đặt chỗ dự án trên Google Code.

Tổng quan về dịch vụ đặt chỗ

Các dịch vụ được Google Code cung cấp gồm:

Xác thực:

Bất kỳ ai với một tài khoản hợp lệ google.com có thể sủ dụng tên và mật khẩu thông thường của họ trên Google để đăng nhập vào Google Code và truy cập tới chức năng đó. Điều này có nghĩa là nếu bạn sử dụng bất kỳ dịch vụ web nào của Google như GMail hoặc Calendar, thì bạn đã có rồi một tài khoản của Google Code. Bạn có thể kiểm soát truy cập tới các tài nguyên dự án của bạn bằng việc bổ sung thêm các thành viên dự án của bạn bằng việc sử dụng tài khoản google.com của họ.

Kiểm soát phiên bản:

Các hệ thống kiểm soát phiên bản được sử dụng để theo dõi các thay đổi đối với các tài nguyên của dự án như tài liệu và mã nguồn. Subversion (thường viết tắt là SVN), Git và Mercurial là sẵn sàng để sử dụng trong các dự án. Hệ thống kiểm soát phiên bản là chìa khóa để quản lý những thay đổi trong các nguồn của dự án qua thời gian, theo dõi các đóng gopsp với lưu ý về quản lý quyền sở hữu trí tuệ IPR và sự cộng tác giữa các lập trình viên.

Truyền thông:

Các danh sách thư và các diễn đàn được sử dụng cho giao tiếp của dự án. Trong khi Google Code không bao gồm những thứ đó, thì chúng có thể được kết nối tới từ dự án. Google Groups, một thành viên khác của họ Google, sử dụng hệ thống xác thực y hệt mà Google Code sử dụng. Điều tuyệt vời về Google Groups là nó có thể được sử dụng như một danh sách thư truyền thống, một diễn đàn trực tuyến hoặc một RSS feed; sự lựa chọn là tùy vào người sử dụng. Tính mềm dẻo làm tối đa hóa các lựa chọn mà bất kỳ người sử dụng nào cũng sẽ đăng ký vào danh sách.

wiki:

Một wiki được cung cấp để làm tài liệu dự án được đơn giản. wiki được cung cấp là đầy đủ chức năng và mềm dẻo, nhưng không cung cấp chức năng rất phức tạp. Nó không thay thế được cho một website đầy đủ thông tin và được quản lý tốt, nhưng nó là tài nguyên tuyệt vời cho lập trình viên ghi chép và là một website cơ bản của dự án. Một trong những ưu thế lớn nhất của wiki của Google Code đối với các giải pháp đặt chỗ dự án khác là bạn có thể soạn sửa nội dung thông qua một trình soạn thảo wiki hoặc thông qua kho của dự án dựa trên web. Điều này làm cho sự truy cập tới và sử dụng các tệp wiki mềm dẻo hơn nhiều.

Theo dõi các vấn đề:

Một trình theo dõi các vấn đề được cung cấp cho phép những người sử dụng báo cáo 'các vấn đề', bất kể chúng là các báo cáo lổi, các yêu cầu tính năng hay các vấn đề cài đặt.

Các bản tải về:

Phần các bản tải về là một khu vực đơn giản cho việc lưu trữ các tệp để tải về. Chúng thường sẽ là các phát hành phần mềm và các gói tài liệu.

Các feed:

RSS và Atom feed toàn diện được cung cấp để tạo thuận lợi cho việc giám sát các dịch vụ và các gadgets có thể được sử dụng trong các trang wiki để giám sát các feed bên ngoài.

Các chức năng quản trị nhóm:

Chúng bao gồm sự quản lý các thành viên dự án và cấu hình của các công cụ có sẵn. Google cũng cung cấp một số dịch vụ khác có thể là hữu dụng cho các dự án được đặt chỗ trên Google Code, hoặc thậm chí ở bất kỳ đâu khác. Không có yêu cầu phải sử dụng chúng, nhưng nó có ý nghĩa nếu bạn cần các tính năng đó, vì các thành viên dự án của bạn được ký rồi trong tài khoản Google của họ và vì thế sẽ hưởng lợi từ hệ thống đăng nhập duy nhất của Google.

Các dịch vụ hữu dụng khác có thể được kết nối tới từ site dự án của bạn gồm:

Lập lịch:

Hữu dụng cho việc giám sát các phát hành của dự án, các cuộc gặp gỡ và điều hành các vấn đề như biểu quyết.

Các tài liệu và bảng tính:

Chia sẻ các tài liệu giữa các thành viên dự án cho sự phát triển cộng tác thực sự là dễ dàng bằng việc sử dụng các ứng dụng văn bản và bảng tính.

Phân tích:

Google Analytics có thể được kích hoạt cho dự ansn để giám sát giao thông web.

Tạo dự án

Việc tạo một dự án trên Google Code được thực hiện bằng việc sử dụng mẫu trực tuyến.

Đáng để lưu ý rằng tên dự án của bạn sẽ hành thành một phần của URL cho site phát triển dự án của bạn, nên hãy chắc chắn rằng tên mà bạn đưa vào là tên bạn muốn.

Google cũng giới hạn số các lựa chọn giấy phép sẵn sàng cho bạn. Trong phần Các câu hỏi đáp thường gặp (FAQ) của họ, họ giải thích quyết định này như sau:

'Cộng đồng nguồn mở từng bị ngập lụt với nhiều giấy phép gần y hệt nhau. Chúng tôi muốn thấy các dự án được tiêu chuẩn hóa trong các giấy phép phổ biến nhất, được kiểm thử qua thời gian. Vì lý do đó, chúng tôi khuyến khích các dự án mà chúng tôi đặt chỗ sử dụng một trong các giấy phép được liệt kê trong trang tạo dự án của chúng tôi. Các giấy phép được chào đưa ra sự đa dạng đủ để đáp ứng được các nhu cầu của lập trình viên, trong khi giảm thiểu sự nở rộ các giấy phép'.

Các giấy phép được Google lựa chọn phần lớn phù hợp với danh sách các giấy phép của Sáng kiến Nguồn Mở (OSI) mà họ tin tưởng sẽ 'được sử dụng một cách phổ biến và rộng rãi với các cộng đồng mạnh'. Cũng có cơ sở lựa chọn để áp dụng một giấy phép riêng rẽ, Creative Commons để bao trùm các tài sản không phải mã trong dự án.

Một khi bạn đã đề nghị các chi tiết, thì một trang dự án mới sẽ xuất hiện trong Google Code ở địa chỉ: http://code.google.com/p/

Ở giai đoạn này, đáng giá đặt ra thêm một chút suy nghĩ trong tóm tắt và mô tả, vì chúng là những điều đầu tiên mà những người sử dụng tiềm năng thấy khi đánh giá một dự án. Mô tả đó nên tỉ mỉ về các mục tiêu của phần mềm và nên bao gồm các thông tin mức cao được viết theo ngôn ngữ phi kỹ thuật sao cho những người mới tới có thể dễ dàng thấy liệu dự án này có khả năng là cuốn hút hay không. Nó cũng nên bao gồm một tổng quan kỹ thuật ngắn gọn, để cho phép những người chuyên nghiệp trong lĩnh vực đó so sánh với vài dự án để thấy dự án nào là phù hợp nhất đối với họ. Cuối cùng, nó nên bao gồm một đánh giá vô tư không thiên vị về tình trạng của dự án. Nếu dự án là đang ở trên bàn thiết kế chứ không phải trong pha phát triển, thì những người sử dụng sẽ đánh giá khi biết rằng điều đó sẽ ở phía trước, trong khi các lập trình iên sẽ nhận thức được họ sẽ tham gia vào từ đầu và vì thế có thể có khả năng gây ảnh hưởng tới các quyết định thiết kế quan trọng.

Tạo các danh sách/nhóm thư

Các danh sách thư là cơ chế giao tiếp quan trọng nhất cho các dự án do cộng đồng dẫn dắt. Bổ sung thêm vào một hoặc nhiều danh sách thư đang có sẵn, Google Code có thể được sử dụng với Google Groups, một họ các ứng dụng khác của Google. Một trong những tính năng phổ biến nhất của Google Groups là những người đăng ký thuê bao (subscribers) có thể sử dụng nó hoặc như một danh sách thư hoặc như một diễn đàn web. Điều này là quan trọng, khi nó cho phép những người đóng góp tham gia vào theo một cách thức mà thuận tiện nhất đối với họ. Tính năng quan trọng khác của Google Groups là nó có thể được sử dụng để cung cấp một giao diện cho một danh sách thư đang tồn tại, nên nếu bạn có một danh sách thư rồi đang hoạt động, thì Google Groups có thể cung cấp một giao diện thuận tiện cho nó, cùng với các khả năng tìm kiếm tuyệt vời của Google.

Nếu bạn có một nhóm hoặc danh sách thư rồi cho dự án của bạn, thì hay vào địa chỉ của một trang web mô tả danh sách đó trong trường 'các nhóm thảo luận' (discussion groups). Điều này sẽ đảm bảo rằng thông tin các danh sách thư được triển khai trong trang Google Code của dự án. Bạn có thể vào nhiều hơn một danh sách thư trong mẫu của admin (quản trị hệ thống); mỗi trong số các mẫu đó sẽ xuất hiện trên trang dự án. Lưu ý rằng trang mà bạn vào phải tồn tại rồi; việc vào thông tin trong trường này không tạo ra danh sách cho bạn.

Bạn cũng nên xem xét đưa ra một địa chỉ danh sách thư để nhận các thông báo hoạt động từ Google Code. Trong trường hợp này bạn vào địa chỉ thư điện tử hơn là một địa chỉ website. Điều này có nghĩa là các bên có quan tâm được thông báo bằng thư điện tử đối với các đề xuất (commit) mới và hoạt động của trình theo dõi các vấn đề. Bất kể bạn gửi các thông báo đó tới cùng danh sách như được mong đợi cho thảo luận hay liệu bạn có thiết lập được các danh sách lựa chọn thay thế thực sự phụ thuộc vào sự điều hành dự án của bạn. Trong các dự án được dẫn dắt bằng sự đồng thuận, như những dự án trong Quỹ Phần mềm Apache, những thông báo sẽ thường đi tới danh sách thư mở của các lập trình viên, trong khi trong các cộng đồng đóng hơn thì chúng sẽ thường được gửi tới một danh sách đóng. Google Code cho phép bạn sử dụng các dánh cách khác nhau cho từng dạng thông báo. Lưu ý rằng đối với những thông báo thư để làm việc với danh sách thư của bạn phải chấp nhận các bài viết từ @googlecode.com.

Trình theo dõi các vấn đề

Trình theo dõi các vấn đề của Google Code cho phép người sử dụng báo cáo 'các vấn đề', bất kể chúng là các báo cáo lỗi, các yêu cầu tính năng hay các vấn đề về cài đặt. Trình theo dõi các vấn đề là một tài nguyên chung và bất kỳ ai viếng thăm site Google Code cũng có khả năng xem xét các vấn đề đang tồn tại. Tuy nhiên, một yếu điểm chính của Google Code là những người sử dụng sẽ cần một tài khoản Google để bổ sung các vấn đề, bổ sung một bình luận cho các vấn đề đang tồn tại, hoặc 'biểu quyết' cho các vấn đề mà họ cảm thấy là quan trọng. Điều này có thể là một rào cản hướng tới những người ở bên ngoài đội dự án ban đầu của bạn để tham gia vào vói dự án thông qua trình theo dõi các vấn đề. Trong bất kỳ trường hợp nào, điều này cũng là một công cụ sống còn cho sự giao tiếp giữa những người sử dụng và các lập trình viên và nên được ứng dụng như một công cụ lên kế hoạch dự án.

Việc sử dụng trình theo dõi cho phép quản lý dự án đặt ưu tiên, lập lịch, chỉ định và làm tài liệu các vấn đề một cách rõ ràng. Đối với nhiều dự án nguồn mở, các trình theo dõi vấn đề đại diện cho bộ nhớ thu thập được các vấn đề nào đã từng xảy ra, từ ai, liệu chúng đã được giải quyết hay chưa, ai đang làm việc về chúng, phát hành nào sẽ bao gồm những thay đổi được yêu cầu và những người sử dụng nhận thức từng vấn đề sẽ là quan trọng thế nào. Thông tin này có một loạt các sử dụng kỹ thuật, pháp lý và hành chính. Được sử dụng tốt, một trình theo dõi các vấn đề là chìa khóa cho một sự quản lý tốt của dự án.

Trình theo dõi các vấn đề trong Google Code không giàu tính năng như một số trên thị trường như có các lựa chọn tùy biến hợp lý. Nếu dự án của bạn có kích thước đáng kể thì có theerr có tranh cãi rằng trình theo dõi của Google là không đủ. Cũng có những lo ngại rằng các dữ liệu trong trình theo dõi đó hiện nay là không có khả năng xuất đi được, nêu nếu bạn chuyển từ Google Code trong tương lai thì bạn có thể thấy nó khó để chuyển đổi nội dung của trình theo dõi các vấn đề của bạn; dù một cơ sở có hạn chế để xuất đi các dữ liệu từ trình theo dõi các vấn đề là có sẵn, thì hiện tại nó dường như bị hạn chế chỉ với thông tin đầu đề, chứ không phải các nội dung của thảo luận. Tuy nhiên, trình theo dõi các vấn đề là nhanh và dễ dàng để thiết lập và, có lẽ quan trọng nhất cho những người sử dụng mới, là nó đơn giản, không có việc làm cho rối vì các tính năng của “người sử dụng mạnh” của một số giải pháp khác. Một rào cản thấp ở lối vào đối với những người sử dụng có mong muốn báo cáo các vấn đề là sống còn để lôi kéo những người sử dụng đó vào công việc của bạn. Trình theo dõi các vấn đề của Google Code làm công việc tốt theo hướng này.

Kiểm soát phiên bản

Google Code đưa ra các hệ thống kiểm soát phiên bản như Subversion, Git và Mercurial. Các hệ thống kiểm soát phiên bản đó hỗ trợ cho sự phát triển phân tán và theo dõi những thay đổi theo từng dòng một đối với từng tệp và tài liệu trong kho, theo dõi ai đã thực hiện thay đổi, khi nào và vì sao. Thông tin này là sống còn trong việc theo dõi các quyền sở hữu trí tuệ (IPR) trong dự án của bạn nhưng cũng cho phép bạn dễ dàng quản lý các phiên bản khác nhau của các đầu ra và sửa các lỗi của bạn một cách dễ dàng.

Sử dụng một hệ thống kiểm soát phiên bản phổ biến là sống còn đối với các dự án nguồn mở mà muốn cam kết với cộng đồng các lập trình viên và những người sử dụng của họ. Chính thông qua hệ thống kiểm soát phiên bản mà những người sử dụng sắc sảo có khả năng có được các phiên bản phát triển mới nhất mã của bạn và đưa ra mã đối với các bản vá nào sẽ được cung cấp.

Là vượt ra khỏi phạm vi của tài liệu này để mô tả sử dụng SVN trong phát triển nguồn mở. Tài liệu chi tiết về sử dụng Subversion có thể được thấy trong Sách Subversion (xem các tài nguyên).

Wiki

Wiki được Google Code cung cấp đôi khi bị hạn chế khi so sánh với một số phần mềm wiki phổ biến có sẵn. Tuy nhiên, nó có một ưu thế đáng kể so với các công cụ wiki khác - nó cho phép nội dung trong wiki soạn sửa được trực tuyến và sau đó được đệ trình thông qua SVN. Điều này có nghĩa là có khả năng suwrr dụng wiki theo một cách thức mềm dẻo hơn nhiều so với nó thường có khả năng chỉ với một giao diện web. Tất nhiên, Google Code cũng cung cấp một giao diện web.

Tích hợp

Google dường như sẽ cải tiến sự tích hợp các công cụ của Google Code. Ví dụ, một cơ chế được ghi thành tài liệu được cung cấp để thực hiện các cập nhật cho trình theo dõi các vấn đề bằng việc nhúng các lệnh vào trong các bình luận kiểm tra đầu vào của kiểm soát phiên bản. Những tính năng như vậy là rất hữu dụng trong việc cung cấp một rãnh kiểm kê trong dự án của bạn. Các tính năng tích hợp khác có xu hướng sẽ được ghi thành tài liệu và sẽ được xem như là bản alpha (như, chúng có thể thay đổi). Ví dụ, các mô tả của trình theo dõi các vấn đề có thể gồm các tham chiếu tới các trang wiki.

Không may, Google không xuất bản một API cho Google Code. Điều này làm cho khó khăn đối với các công cụ của bên thứ 3 để tích hợp vào với sản phẩm. Tuy nhiên, có các dự án làm việc hướng tới việc tạo ra một môi trường phát triển tốt hơn.

Việc cấp phép

Bằng việc đồng ý với các điều khoản dịch vụ mà Google trình bày khi đăng ký vào Google Code, bạn trao cho Googe các quyền để phân phối bất kỳ tư liệu nào bạn tải lên vào dự án Google Code của bạn. Điều này không làm thay đổi quyền sở hữu của tư liệu, mà sẽ vẫn là của bạn (nếu nó đã có trước đó).

Trên trang quản trị dự án có một hộp kéo thả để thay đổi giấy phép được quảng cáo của dự án. Điều này ràng buộc một dự án vào một tập hợp con các giấy phép nguồn mở. Nó cũng cho phép một người áp dụng một giấy phép thứ 2, riêng rẽ cho các tài sản không phải mã trong một dự án. Các dự án nên nhận thức được rằng việc thay đổi một giấy phép dự án không là dễ dàng như việc thay đổi một khoản trong hộp kéo thả một khi có nội dung trong wiki và kho, vì các tư liệu sẽ phải được cấp phép một cách thận trọng. Vì thế, sự xem xét thận trọng giấy phép mà bạn chọn trong quá trình đăng ký là quan trọng. Nếu bạn muốn sự hỗ trợ để chọn một giấy phép, hãy liên hệ với chúng tôi ở OSS Watch.

Các lựa chọn thay thế và các rào cản để sử dụng Google Code

Đầu tiên và trước hết, bạn cần nhận thức được rằng các chính sách về tổ chức của bạn có thể tư vấn chống lại với (hoặc thậm chí cấm) sử dụng các dịch vụ không được phê chuaanrr của các bên thứ 3. Tuy nhiên, nếu bạn có ý định mở nguồn dự án của bạn và bạn muốn làm việc hướng tới tính bền vững thực sự thông qua con đường nguồn mở, thì sau đó điều quan trọng là các đầu ra của bạn là sẵn sàng cho những người sử dụng tiềm năng và các thành viên cộng đồng theo một cách thức liên tục và bền vững, thậm chí vượt ra khỏi việc cấp vốn ban đầu của bạn. Trong nhiều trường hợp, việc sử dụng một cơ sở bên ngoài, như Google Code, sẽ thường là dễ dàng hơn và rẻ hơn so với việc tạo ra các dịch vụ trong nội bộ cho việc đặt chỗ các đầu ra của bạn. OSS Watch sẽ có khả năng liên lạc với những người ra chính sách của tổ chức của bạn để thiết lập một chính sách chấp nhận được và thực tế cho cả dự án và tổ chức của bạn.

Giả thiết rằng không có rào cản tổ chức nào để sử dụng hệ thống của một bên thứ 3, thì một người sau đó phải chọn một dịch vụ để sử dụng. Một dải rộng lớn các dịch vụ thương mại và không vì lợi nhuận đưa ra một tập hợp các dịch vụ so sánh được đối với Google Code. Mỗi nhà cung cấp đó đưa ra một tập hợp các dịch vụ và tập hợp các điều kiện khác nhau để sử dụng. Chúng bao gồm SourceForge, GitHub, Savannah, GNA, BerliOS, TuxFamily, Debian Alioth. OSS Watch sẽ hạnh phúc để giúp cho dự án của bạn quyết định ngôi nhà phù hợp cho các đầu ra đó của bạn.

Nhiều dự án ban đầu có liên quan tới một cơ quan, nó có thể cân nhắc đặt chỗ các dịch vụ đó trong nội bộ. Điều này trao sự lựa chọn tùy biến các công cụ với lưu ý cho các nhu cầu của dự án. Việc đặt chỗ như vậy có tác động bổ sung của việc cung cấp một kết nối rõ ràng giữa dự án và cơ quan đặt chỗ. Một sự liên quan như vậy có thể có lợi hoặc có sự hạn chế, phụ thuộc vào các ý định của dự án. Ví dụ, sự liên quan mạnh với một cơ quan có thể ngăn cản một số những người đóng góp tiềm năng khỏi việc sẽ tham gia vào, hoặc nó có thể là một cơ chế mà theo đó cơ quan cải thiện thương hiệu của nó trong một lĩnh vực được đưa ra. Nó cũng để lại dự án sự tiếc nuối về một sự thay đổi hoàn cảnh trong một tổ chức duy nhất.

Google Code thường là một giải pháp tốt cho các nhu cầu đặt chỗ của bạn. Nó là sạch sẽ, thuận tiện để sử dụng và có trọng tâm. Tuy nhiên, yêu cầu phải có một tài khoản Google để tương tác với trình theo dõi các vấn đề có thể là một rào cản tiềm tàng cho những người cam kết tham gia với dự án. Tuy vậy Google Code nói chung là một giải pháp tốt cho một dự án kích cỡ vừa và nhỏ có mong muốn được thiết lập và nhanh chóng chạy và không muốn bị lẫn lộn với một đống các công cụ không phải lúc nào cũng cần thiết trong một dự án do cộng đồng dẫn dắt.

Lưu ý ngắn gọn của OSS Watch 'Tránh phần mềm bị bỏ rơi: nhận thức để hiểu thấu phương pháp phát triển mở' đưa ra một tổng quan của những thực tiễn tốt nhất có thể được áp dụng khi tiến hành sử dụng các dịch vụ phát triển mở như Google Code.

Google Code is a website which offers free hosting services for open source projects. It provides the core facilities required by a community-led open source project. This document is a basic introduction to getting started with Google Code project hosting.

Hosting service overview

The services provided by Google Code are:

authentication:

anyone with a valid google.com account can use their normal Google username and password to log into Google Code and access the functionality. This means that if you use any existing Google web services such as GMail or Calendar, you already have a Google Code account. You can control access to your project resources by adding members to your project using their google.com account.

version control:

Version control systems are used to track changes to project resources such as documentation and source code. Subversion (often abbreviated to SVN), Git and Mercurial are available for use in projects. The version control system is the key to managing changes in project resources over time, tracking contributions with respect to IPR management and collaboration between developers.

communications:

Mailing lists and forums are used for project communication. While Google Code does not include either, they can be linked to f-rom the project. Google Groups, another member of the Google family, uses the same authentication system that Google Code uses. The great thing about Google Groups is that it can be used as a traditional mailing list, an online forum or an RSS feed; the choice is left up to the user. This flexibility maximises the chances that any given user will subscribe to the list.

wiki:

A wiki is provided for simple project documentation. The wiki provided is functional and flexible, but does not provide very elaborate functionality. It is not a substitute for a well-managed informational website, but it is a great resource for developer notes and a basic project website. One of the biggest advantages of the Google Code wiki over other project-hosting solutions is that you can edit the content via a web-based wiki editor or via the project repository. This makes access to and use of wiki files much more flexible.

issue tracking:

An issue tracker is provided that allows users to report ‘issues’, whether they be bug reports, feature requests, or installation problems.

downloads:

The downloads section is a simple area for storing files for download. These will usually be software releases and documentation packages.

feeds:

Comprehensive RSS and Atom feeds are provided to facilitate monitoring of the services and gadgets can be used in wiki pages to monitor external feeds.

group administration functions:

these include the management of project members and the configuration of the available tools.

Google also provides a number of other services that may be useful to projects hosted on Google Code, or even elsewhe-re. There is no requirement to use them, but it makes sense if you need these features, since your project members will already be signed in to their Google account and will therefore benefit f-rom the Google single sign-on system.

Other useful services that can be linked to f-rom your project site include:

calendar:

useful for tracking project releases, meetings and governance issues such as votes.

docs and spreadsheets:

sharing documents between project members for collaborative development is really easy using the docs and spreadsheets applications.

analytics:

Google Analytics may be enabled for the project in order to monitor web traffic.

Cre-ate the project

Creating a Google Code project is done using the online form.

It is worth noting that your project name will form part of the URL for your project development site, so be sure that the name you enter is the one you want.

Google also limits the number of licence options available to you. In their FAQ, they explain this decision as follows:

‘The open source community has been flooded with lots of nearly identical licenses. We’d like to see projects standardize on the most popular, time-tested ones. For that reason, we encourage projects that we host to use one of the licenses listed on our project creation page. The offered licenses offer enough diversity to meet most developer needs, while minimizing license proliferation.’

The licences se-lected by Google are broadly in line with the Open Source Initiative’s list of licences they believe to be ‘popular and widely used with strong communities’. There is also the optional facility to apply a separate, Creative Commons, licence to cover the non-code assets in the project.

Once you have submitted the details, a new project page will appear in the Google Code site at http://code.google.com/p/

At this stage, it is worth putting a little more thought into the summary and description, since they are the first things potential users see when evaluating a project. The description should elaborate on the aims of the software and should contain high-level information written in non-technical language so that newcomers can easily see whether this project is likely to be of interest. It should also contain a brief technical overview, to allow specialists in the field to compare several projects to see which one is best suited to them. Finally, it should contain a candid evaluation of the state of the project. If the project is on the drawing board rather than in the deployment phase, users will appreciate knowing this up front, while developers will recognise they will be getting in on the ground floor and therefore may be able to influence important design decisions.

Cre-ate the mailing lists/groups

Mailing lists are the most important communication mechanism for community-led projects. In addition to one or more existing mailing lists, Google Code can be used with Google Groups, another of the Google family of applications. One of Google Groups’ most popular features is that subscribers can use it either as a mailing list or as a web forum. This is important, as it allows contributors to participate in a way that is most comfortable for them. Another important feature of Google Groups is that it can be used to provide an interface to an existing mailing list, so if you already have a mailing list in operation, then Google Groups can provide a convenient interface to it, together with Google’s excellent search capabilities.

If you already have a group or mailing list for your project, enter the address of a web page describing the list in the ‘discussion groups’ field. This will ensure that your mailing list information is displayed on your project’s Google Code page. You can enter more than one mailing list in the admin form; each of them will appear on the project page. Note that the page you enter must already exist; entering information into this field does not cre-ate the list for you.

You should also consider providing a mailing list address to receive activity notifications f-rom Google Code. In this case you enter the email address rather than a website address. This means that interested parties are notified by email of new commits and issue tracker activity. Whether you send these notifications to the same list as that intended for discussion or whether you set up al-ternative lists really depends on the governance of your project. In consensus driven projects, such as those in the Apache Software Foundation, notifications will typically go to the open developer mailing list, whe-reas in more closed communities they will typically be sent to a closed list. Google Code allows you to use different lists for each type of notification. Note that for these mail notifications to work your mailing list must accept posts f-rom @googlecode.com.

Issue tracker

The Google Code issue tracker allows users to report ‘issues’, whether they be bug reports, feature requests, or installation problems. The issue tracker is a public resource and anyone visiting the Google Code site is able to examine existing issues. However, a major drawback of Google Code is that users will need a Google account in order to add issues, add a comment to existing issues, or ‘vote’ for ones they feel are important. This may be a barrier towards people outside your initial project team to engage with the project via the issue tracker. In any case, this is a vital tool for communication between users and developers and should be utilised as a project-planning tool.

Using the tracker enables project management to prioritise, schedule, assign and document issues clearly. For many open source projects, issue trackers represent the collective memory of what problems have been encountered, by whom, whether they have been addressed, who is working on them, which future release will contain the changes required and how important users perceive each issue to be. This information has a host of technical, legal and administrative uses. Used well, an issue tracker is key to a project’s good management.

The issue tracker in Google Code is not as feature rich as some in the marketplace but does have reasonable customisation options. If your project is of a considerable size it could be argued that the Google Code tracker is insufficient. There are also concerns that the data in the tracker is not currently exportable, so if you move f-rom Google Code in the future you may find it difficult to migrate your issue tracker content; though a limited facility to export data f-rom the issue tracker is available, at present it seems to be limited just to the header information, not the content of the discussions. However, the issue tracker is quick and easy to set up and, perhaps most importantly for new users, it is simple, with none of the potentially distracting ‘power user’ features of some al-ternatives. A low barrier to entry for users wanting to report issues is vital to involving those users in your work. The Google Code issue tracker does a great job in this respect.

Version control

Google code offers Subversion, Git and Mercurial version control systems. These version control systems support distributed development and track line-by-line changes made to every file and document in the repository, tracking who made the change, when and why. This information is vital in tracking intellectual property rights (IPR) in your project but also allows you to easily manage different versions of your outputs and to correct mistakes easily.

The use of a public revision control system is critical to open source projects that wish to engage their user and developer community. It is through the version control system that cutting-edge users are able to get the latest development versions of your code and provides the code against which patches will be supplied.

It is beyond the scope of this document to describe the use of SVN in open source development. Detailed documentation on the use of Subversion can be found in the Subversion Book (see resources).

Wiki

The wiki provided by Google Code is somewhat limited when compared to some of the popular wiki software available. However, it has one considerable advantage over other wiki tools - it allows content in the wiki to be edited offline and then committed via SVN. This means that it is possible to use the wiki in a much more flexible way than is often possible with a web only interface. Of course, Google Code also provides a web interface.

Integration

Google appears to be improving the integration of Google Code’s tools. For example, a documented mechanism is provided to perform up-dates to the issue tracker by embedding commands in version control check-in comments. Such features are very useful in providing an audit trail in your project.

Other integration features tend to be undocumented and should be considered alpha (i.e. they may change). For example, issue tracker descriptions can contain references to wiki pages.

Unfortunately, Google does not publish an API for Google Code. This makes it difficult for third-party tools to integrate with the product. However, there are projects working towards creating a better development environment.

Licensing

By agreeing to the terms of service that Google presents on sign-up to Google Code, you grant Google rights to distribute any of the material you upload to your Google Code project. This does not change the ownership of the material, which will still be yours (if it was before).

On the project administration page there is a d-rop-down box to change the advertised licence of the project. This constrains a project to a small (but reasonable) subset of open source licences. It also allows one to apply a second, separate licence to the non-code assets in a project. Projects should be aware that changing a project’s licence is not as easy as changing the item in the d-rop-down box once there is content in the wiki and repository, since materials will have to be carefully relicensed. Therefore, careful consideration of the licence you choose during registration is important. If you would like assistance with choosing a licence, contact us at OSS Watch.

Al-ternatives and barriers to Google Code use

First and foremost, you need to be aware that your organisational policies may advise against (or even forbid) the use of non-approved third-party services. However, if you intend to open source your project and you wish to work towards true sustainability via the open source route, then it is important that your outputs are available to potential users and community members in an ongoing and sustainable way, even beyond your initial funding. In many cases, using an external facility, such as Google Code, will often be easier and cheaper than creating in-house services for hosting your outputs. OSS Watch will be able to liaise with your organisational policy makers in order to establish an acceptable and realistic policy for both your project and your organisation.

Assuming that there are no organisational barriers to the use of a third-party system, one must then choose a service to use. A wide range of commercial and not-for-profit services offer a comparable set of services to Google Code. Each offers a different set of services and a different set of conditions on use. They include SourceForge, GitHub, Savannah, GNA, BerliOS, TuxFamily, Debian Alioth. OSS Watch will be happy to help your project decide on the appropriate home for its outputs.

Many projects are initially associated with an institution, which may consider hosting these services internally. This gives the option of customisation of the tools with respect to the project needs. Such hosting has the additional effect of providing a clear link between the project and the host institution. Such an association may be a benefit or a restriction depending on the intentions of the project. For example, strong association with an institution may prevent some potential contributors f-rom becoming involved, or it may be a mechanism by which the institution improves its brand in a given area. It also leaves the project at the mercy of a change of circumstance within the single institution.

Google Code is generally a good solution for your hosting needs. It is clean, comfortable to use and focussed. However, the requirement to have a Google account in order to interact with the project’s issue tracker can potentially be a barrier for people to engage with the project. Notwithstanding that Google Code is in general a good solution for a small to medium sized project that wishes to get up and running quickly and does not want to be confused by a wealth of tools that are not always necessary in a community led project.

The OSS Watch briefing note Avoiding abandon-ware: getting to grips with the open development method provides an overview of best practices that can be applied when undertaking open development using services such as Google Code.

Dịch: Lê Trung Nghĩa

letrungnghia.foss@gmail.com

Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây