Tworzenie wolnego oprogramowania to skomplikowany proces, wymagający współpracy wielu osób zaangażowanych w produkt: programistów, grafików, webmasterów czy tłumaczy. Pracują oni w różnych porach dnia i w różnych miejscach, więc nie dziwi fakt, iż zarządzanie tego typu projektami nie jest sprawą łatwą. Z pomocą przychodzą wyspecjalizowane serwisy internetowe, udostępniające bezpłatne narzędzia, skutecznie wspomagające pracę w grupie.
Największy z serwisów udostępniających
bezpłatne narzędzia skutecznie wspomagające
pracę w grupie, SourceForge.net
(http://www.SourceForge.net), w chwili obecnej
hostuje blisko 150 tysięcy projektów open source,
mając jednocześnie zarejestrowanych 1,5 miliona
użytkowników. Z serwisu aktywnie korzystają twórcy
tak popularnych aplikacji jak phpBB, phpMyAdmin
czy SquirrelMail. Co więc serwisy podobne do
SF.net mają do zaoferowania?
Oferowane usługi
Idea działalności tego typu rozwiązań jest prosta
– odciążenie twórców wolnego oprogramowania
od podstawowych spraw dotyczących każdego
projektu, takich jak: stworzenie strony internetowej,
hosting plików, komunikacja z użytkownikami
(wiadomości, zgłaszanie błędów i propozycji, fora
dyskusyjne etc.) czy usprawnienie pracy w grupie.
Ogromna popularność tych serwisów potwierdza
fakt, iż są one w stanie skutecznie wspomóc proces
powstawania projektu.
Podstawową oferowaną usługą jest stworzenie
i utrzymywanie na serwerze strony internetowej
projektu. Dostajesz również możliwość wgrywania
na serwer plików (kolejnych wersji pisanej aplikacji),
których lista automatycznie umieszczana jest
na stronie WWW, zawierającej także odnośniki do
wszystkich powiązanych narzędzi, których wachlarz
zależy od konkretnego usługodawcy.
Serwisy SourceForge.net oraz BerliOS.de
(http://www.berlios.de) udostępniają podstawowy
szablon witryny, który jest wspólny dla wszystkich
projektów. Zarządzanie witryną ogranicza się więc
do uzupełnienia podstawowych informacji o projekcie,
dodawania aktualności, plików oraz nadania
odpowiednich uprawnień członkom projektu.
Nieco inną drogę wybrały takie firmy jak Novell
i Google, oferujące odpowiednio rozwiązania
Novell Forge (http://forge.novell.com) oraz Google
Project Hosting (http://code.google.com/hosting)
– zarządzanie witryną przypomina tu systemy typu
Wiki. Google stworzyło swoją własną Wiki, z kolei
Novell zastosował oprogramowanie MediaWiki,
na którym bazuje również popularna encyklopedia
sieciowa – Wikipedia (http://pl.wikipedia.org).
Wprowadzenie tych rozwiązań pozwoliło
twórcom projektów na pisanie i uporządkowanie
dowolnych tekstów na witrynie, a nie tylko stosowanie
się do z góry przyjętego schematu.
Jeszcze
dalej poszedł serwis Dotsrc.org (http://dotsrc.org),
który przyznaje użytkownikom dostęp do FTP i daje
pełną dowolność co do wyglądu i zawartości stron
internetowych. Brak standaryzacji okazał się tutaj
jednak wadą dla użytkowników końcowych, którzy
nie mogą w prosty sposób porównać wybranych
projektów.
Każdy z opisywanych serwisów udostępnia programistom
system kontroli wersji kodu. Stosowane
są dwa rozwiązania: CVS (ang. Concurrent Versions
System) bądź Subversion (SVN), obydwa pracujące
w architekturze klient/serwer.
Polega to na tym, że kod aplikacji umieszczany
jest w centralnym repozytorium, do którego każdy
programista ma dostęp za pomocą własnego loginu
i hasła. Chcąc dodać bądź zmienić coś w kodzie,
programista pobiera aktualny kod z repozytorium,
następnie lokalnie nanosi poprawki, po czym
zatwierdza zmiany, wysyłając na serwer zmienione
pliki. System kontroli wersji automatycznie oznacza
nową wersję, zapamiętuje zmiany (dając możliwość
ich cofnięcia), a także pomaga w sytuacji,
kiedy kilku programistów edytowało ten sam plik.
Zarówno CVS, jak i SVN są popularnymi, darmowymi
aplikacjami do wspomagania pracy grupowej,
jednak bardzo mało firm hostingowych oferuje do
nich dostęp – stąd ich obecność w opisywanych
serwisach na pewno stanowi ich bardzo duży atut.
W projektach opartych o ideę open source
bardzo dużą rolę odgrywa społeczność użytkowników.
Stanowi ona niezastąpione źródło pomysłów
i propozycji, pomaga w wyszukiwaniu błędów,
często także aktywnie włącza się w rozwój projektu,
promując go, tworząc dodatki etc. W zapewnieniu
odpowiedniej komunikacji między twórcami
a odbiorcami pomagają takie narzędzia, jak fora
dyskusyjne, listy mailingowe, ankiety, serwery
news (grup dyskusyjnych) czy IRC.
Większość z opisywanych serwisów udostępnia
również narzędzie o nazwie \”Tracker\” (bądź \”Issues\”
w przypadku Google Project Hosting) – jest
to interfejs zamieszczony na stronie internetowej,
poprzez który użytkownicy mogą zgłaszać błędy
bądź propozycje nowych funkcji pisanej przez nas
aplikacji. Każdemu zgłoszeniu możesz przydzielić
osobę za nie odpowiedzialną, priorytet, status
(otwarte/w trakcie realizacji/zamknięte), kategorię
czy też prowadzić dyskusję na jego temat (np.
poprosić o dodatkowe informacje o błędzie).
Twórcom projektów oferowany jest również
szereg innych usług – dostęp do shella (SSH),
gotowy interfejs do przyjmowania dotacji od
użytkowników (najczęściej via PayPal), dostęp do
bazy danych (MySQL, ew. PostgreSQL), możliwość
wykonywania kopii zapasowych czy miejsce na
składowanie dokumentacji. Dostępność tych usług
zależy od wybranego serwisu, szczegółowe informacje
zamieszczone są w dalszej części artykułu
i oczywiście na stronach internetowych konkretnych
usługodawców.
Wypromuj projekt
Korzystanie z usług opisywanych serwisów internetowych
niesie również ze sobą niezastąpioną
zaletę – pomoc w promocji naszego projektu. Już w
momencie rejestracji pokazujesz swoje dzieło kilku
milionom użytkowników, gdyż trafiasz na stronę
główną, gdzie widnieje informacja o nowych przedsięwzięciach.
Odnotowywane są tam również nowe
aktualności czy świeżo dodane pliki.
Warto więc poświęcić trochę czasu – zwłaszcza
na początku – na dobry opis tworzonego przez
nas oprogramowania czy informowanie na bieżąco
o postępach w pracy. Większość serwisów bada
również wskaźnik aktywności projektów, określany
na podstawie liczby zmian w repozytorium kodu
czy dodanych zgłoszeń błędów bądź propozycji
usprawnień. W przypadku dużej aktywności projektu
trafia on na listę rankingową, co pozwala na
znaczne zwiększenie liczby odwiedzin naszej strony.
W przypadku SourceForge.net wybierany jest
również \”Projekt miesiąca\”, który przez następny
miesiąc jest dodatkowo promowany – prezentowane
są sylwetki twórców oraz wywiad z nimi.
Bardzo ciekawą funkcjonalnością, udostępnianą
przez SF.net, BerliOS oraz Novell, jest
tzw. \”Help wanted\”, czyli prośba o pomoc. Jeśli
poszukujemy np. dodatkowego programisty czy
grafika, możemy zamieścić (oczywiście bezpłatnie)
ogłoszenie o tym fakcie, które prezentowane
będzie na specjalnej podstronie. Jest to również
przydatne dla osób chcących włączyć się w rozwój
projektu, a niemających ciekawego pomysłu na
własną aplikację.
Zdecydowany? No to startujemy!
Jeśli masz zamiar stworzyć własny projekt oparty
na jednej z licencji open source – nie powinieneś
mieć problemu z dostaniem konta na którymś
z serwisów.
Najłatwiej założyć projekt na Google Project
Hosting – wystarczy do tego konto (Google
Account), które jest wspólne dla wszystkich usług
Google (jak np. Gmail). Jeśli już takie posiadasz,
wystarczy wejść na stronę http://code.google.com/
hosting/createProject i wypełnić formularz – podając
nazwę projektu, jego opis, wybraną licencję
i kilka etykiet (tagów), najlepiej go opisujących. Po
wypełnieniu formularza automatycznie zostanie
ci przyznane konto wraz z wszelkimi usługami
towarzyszącymi.
Nieco trudniej jest otrzymać miejsce na SF.net,
BerliOS czy Novell Forge – tutaj najpierw należy
założyć konto w tych serwisach (o ile go oczywiście
jeszcze nie masz), a następnie wypełnić nieco dłuższy
– niż w przypadku Google – formularz. Musisz
w nim określić takie rzeczy, jak używany język
programowania, platformy, na które aplikacja jest
przeznaczona, język interfejsu aplikacji, kategorię
projektu etc. Zgłoszenie jest następnie sprawdzane
przez pracowników serwisu, po czym może zostać
zaakceptowane bądź odrzucone. Na szczęście
odpowiedź przychodzi zazwyczaj w ciągu kilku dni,
najczęściej pozytywna – o ile starannie wypełniono
wniosek.
Najwięcej problemów sprawia wybór licencji,
na której dostępna będzie nasza aplikacja. Przykładowo,
SourceForge.net udostępnia ponad 50 licencji,
z których każda zatwierdzona jest przez Open
Source Initiative – taki wybór może przyprawić
o ból głowy. Zauważyli to twórcy Google Project
Hosting, którzy ograniczyli liczbę licencji do siedmiu
najczęściej wybieranych przez użytkowników. Aby
ułatwić ci wybór właściwej licencji, w ramkach na
następnych stronach prezentujemy krótki opis tych
najpopularniejszych, przedstawiając ich podstawowe
charakterystyki.
Czy warto?
Z usług opisanych serwisów korzystają najpopularniejsze
na świecie aplikacje open source,
tworzone przez dziesiątki osób. Już sam ten fakt
stanowi olbrzymią rekomendację dla tego typu
usług.
Ciężko wskazać wady takiego rozwiązania
– nie musimy się martwić o miejsce na serwerze,
dostajemy szereg dodatkowych usług, łatwiej też
wypromować projekt czy znaleźć chętne osoby do
pomocy – i to wszystko zupełnie za darmo. Zdecydowanie
warto!
Rodzaje licencji
Open Source Initiative na swojej stronie zamieściło
blisko 60 licencji zgodnych z definicją Open
Source. Lista i treść wszystkich licencji dostępna
jest na stronach OSI: http://www.opensource.org/licenses. Do najpopularniejszych stosowanych
rozwiązań należą:
1. GNU General Public License (GPL)
Najpopularniejsza z licencji, obecnie trwają
prace nad jej 3. wersją, która ma zastąpić
obowiązującą od 1991 roku wersję 2. Licencja
pozwala użytkownikowi na korzystanie z programu
w dowolnym celu, jego udostępnianie,
kopiowanie i dokonywanie modyfikacji.
Niezwykle istotny jest fakt, że wszystkie programy
bazujące na kodzie objętym GNU GPL muszą
również być udostępniane na tej licencji. Twórca
aplikacji, wybierając GPL, ma więc pewność, że
efekt jego pracy nie zostanie włączony w zamknięte
oprogramowanie.
2. GNU Lesser General Public License
(LGPL)
Pochodna licencji GPL, jednak nieco mniej
restrykcyjna. Obecna wersja istnieje od 1999
roku i pozwala na na włączanie kodu opartego
na GNU LGPL do zewnętrznych programów,
które mogą być rozpowszechniane na dowolnej
licencji – stąd licencja ta często stosowana jest
do bibliotek.
3. Berkeley Software Distribution
License (BSDL)
Stworzona na Uniwersytecie Kalifornijskim
w Berkeley, skąd pochodzi jej nazwa. Licencja
BSD jest bardzo liberalna, pozwala na na modyfikację
i rozprowadzanie kodu, również w postaci
binarnej (bez źródeł) i w ramach zamkniętego
oprogramowania. Jedyny warunek to załączenie
do programu informacji o autorach kodu i treści
licencji. Na licencji BSD udostępniane są systemy
operacyjne z rodziny BSD.
4. Licencja X11
Często określana jako Licencja MIT, od
miejsca jej stworzenia – znanego uniwersytetu
Massachusetts Institute of Technology.
Jej założenia są bardzo podobne do licencji
BSD, pozwala ona bowiem użytkownikom na
nieograniczone użytkowanie, kopiowanie, modyfikowanie
i rozpowszechnianie kodu, zarówno
w postaci binarnej, jak i źródłowej. Niezbędnym
warunkiem jest jedynie zamieszczenie informacji
o autorze i dołączenie treści oryginalnej licencji.
5. Mozilla Public License (MPL)
Obecna wersja (1.1) została stworzona
przez Mozilla Fundation i wykorzystywana
jest w takich produktach, jak Firefox czy Thunderbird.
MPL jest niejako połączeniem licencji BSD
i GNU GPL – kod źródłowy może zostać skopiowany
bądź zmodyfikowany, musi jednak zostać
zachowany na licencji MPL. W przeciwieństwie
do GPL, można kod wykorzystać w zamkniętym
oprogramowaniu, które może być udostępnione
na kilku licencjach.
SourceForge.net
Największa na świecie witryna
związana z tworzeniem aplikacji
open source. SourceForge.net utrzymuje
blisko 150 tysięcy projektów,
wśród nich m.in. aplikacje p2p: eMule,
Azureus, BitTorrent, edytor grafiki
wektorowej Inkspace, klienta FTP FileZilla,
komunikator Gaim, webmaila
Squirrelmail, forum dyskusyjne phpBB
i aplikację do zarządzania bazą
MySQL – phpMyAdmin.
Standardowo
oferowane jest 100MB miejsca na
każdy projekt, jednak przestrzeń dyskową
można zwiększyć, uzasadniając
swoje zapotrzebowanie na większą
pojemność konta.
Założycielem SF.net jest Open
Source Technology Group (OSTG),
która jest również właścicielem tak
popularnych serwisów z dziedziny
IT jak:
- Slashdot (http://slashdot.org),
- Linux.com, NewsForge (http://www.newsforge.com),
- DevChannel ( http://www.devchannel.org),
- ThinkGeek (http://www.thinkgeek.com)
- FreshMeat (http://freshmeat.net).
Ten ostatni to serwis
podobny do SF.net, lecz nastawiony
głównie na aplikacje dla
systemów operacyjnych typu UNIX.
Istnieje również komercyjna
wersja platformy o nazwie
SourceForge Enterprise Edition,
przeznaczona dla biznesu i będąca
urozmaiconą i bardziej skalowalną
wersją aplikacji używanej na
SourceForge.net.
Forge.Novell.com
Novell, jedna z największych firm
wspierających ruch wolnego oprogramowania,
w ramach serwisu Forge
Novell utrzymuje 850 projektów.
Wykorzystywane do tego celu jest
darmowe oprogramowanie, oparte
o język PHP, bazę danych MySQL,
serwer Apache, system raportowania
błędów Bugzilla, MediaWiki
oraz aplikacja XoopsForge – klon
SourceForge, oparty na popularnym
systemie CMS – Xoops.
Wśród hostowanych projektów
znajdują się m.in.: Aurora CMS, klient
poczty Evolution, MonoProject (implementacja
.NET Framework), a także
szereg innych projektów, w dużej
mierze związanych z Novellem.
Google Project Hosting
http://code.google.com/hosting
Usługa \”Google Project Hosting\”
została uruchomiona stosunkowo niedawno,
jednak już teraz korzysta z niej
kilka tysięcy użytkowników. Na uwagę
zasługują własne rozwiązania Google,
mocno różniące się od konkurencji.
Warto wymienić chociażby integrację
z Google Account, a także możliwość
łączonego korzystania z Google Groups
czy Google Page Creator.
Znana marka, olbrzymia popularność,
łatwość zakładania konta – to
na pewno silne atuty tego serwisu.
Co ciekawe, na stronach projektów
nie są wyświetlane żadne reklamy,
nawet Google Adsense.
Do wad należy z pewnością
zaliczyć fakt, iż początkowo na
własne pliki otrzymujemy jedynie
10MB, jednak wielkość ta może ulec
zwiększeniu po napisaniu odpowiedniego
wniosku. Liczba oferowanych
usług również jest skromniejsza niż
u konkurencji, choć Google zapewnia,
że projekt jest dopiero w fazie
rozwoju i nie jest to jeszcze jego
finalna wersja.
Dotsrc.org
Najmniej znany spośród prezentowanych
serwisów, obecnie obsługuje
około 150 projektów. Stworzony
w Danii, w porównaniu do konkurencji
charakteryzuje się wysoką skalowalnością.
Twórcy Dotsrc sami wręcz
zapraszają do skorzystania z innych
tego typu serwisów, o ile nie masz
żadnych specjalnych wymagań.
Wymagania, jakie musi spełnić
twórca projektu, to: witryna w języku
angielskim bądź duńskim (język
polski jest dozwolony, ale pod
warunkiem, że strona jest dostępna
także po angielsku), brak reklam
komercyjnych oraz wstawienie logo
Dotsrc. Aby otrzymać nowe konto,
należy wysłać e-mailem opis tworzonego
projektu.
Duńczycy utrzymują również
własny serwer IRC, serwer grup dyskusyjnych,
a także mirrory (serwery
lustrzane) popularnych aplikacji open
source. Wśród hostowanych projektów
możemy znaleźć m.in. popularny
sklep on-line osCommerce (część
projektu) i klienta poczty Sylpheed-
-Claws. Z usług Dotsrc.org korzystał
również projekt MozillaPL.
BerliOS.de
BerliOS utrzymuje na swoich
serwerach około 5 tysięcy projektów,
w tym 61 stworzonych w języku
polskim. Sama witryna również
dostępna jest w naszym języku,
choć oczywiście nie dotyczy to danych
projektów, którymi zarządzają
poszczególni deweloperzy. BerliOS
skupia zarejestrowanych ponad 30
tysięcy użytkowników, jest również
jednym z najbardziej znanych tego
typu usługodawców.
Serwis tworzony jest przez 5
osób z niemieckiej firmy FOKUS. Od
strony technologicznej, BerliOS zbliżony
jest do SF.net, korzysta nawet
z tego samego oprogramowania,
przerobionego jednak na własne
potrzeby – oferuje m.in. dostęp do
SVN oraz możliwość skierowania
własnej domeny na stronę projektu
umieszczoną na serwerach BerliOS.
Najbardziej znane projekty utrzymywane
na niemieckich serwerach to
wieloplatformowy klient p2p aMule,
windowsowy klient SVN – Tortoise-
SVN, klient p2p StrongDC++ oraz
komunikator internetowy Sim IM.
The Trac Project
Dla osób tworzących oprogramowanie
i dysponujących własnym serwerem stworzono
bezpłatny projekt Trac, który w krótkim czasie
zdobył sobie olbrzymią popularność. Stanowi
on połączenie systemu CMS i środowiska do
zarządzania projektem, udostępniając przy tym
wiele ciekawych funkcji.
Trac napisany jest w Pythonie, stąd musi być
obsługiwany na posiadanym serwerze. Wymagany
jest również dostęp do jednej z trzech baz
danych (MySQL, PostgreSQL bądź SQLite) oraz
– opcjonalnie – Subversion, czyli system kontroli
wersji, z którym Trac jest w stanie współpracować.
Instalacja i podstawowa administracja
odbywają się z linii komend, stąd konieczny jest
również dostęp do powłoki serwera.
Po instalacji i dodaniu projektu, tworzona jest
jego strona internetowa. Na szczęście udostępniony
gotowy szablon jest bardzo profesjonalny
i czytelny. Zarządzanie witryną odbywa się
w oparciu o system Wiki,
dostępnych jest jednak kilka
dodatkowych funkcji.
W Tracu znajdziemy
zintegrowany system
obsługi zgłoszeń (Tickets),
a także specjalne podstrony
\”Roadmap\” oraz \”Timeline\”.
Pierwsza z nich służy do
określania dalszego planu
rozwoju projektu, pozwalając
opisać kolejne wydania wraz
ze zmianami w nich dostępnymi.
Druga opcja tworzy
niejako dziennik rozwoju
aplikacji, grupując wg dnia
wszelkie zmiany – nowe
fragmenty kodu (na podstawie zmian w repozytorium),
zamknięte/otwarte zgłoszenia, modyfikacje
na stronie etc. Wszystkie te elementy są ze sobą
ściśle powiązane, dzięki czemu użytkownik ma
dostęp do pełnej i dokładnej informacji na temat
postępów w ramach projektu.
System w dużym stopniu odciąża programistów,
zdejmując z nich obowiązek opisywania każdorazowo
wszystkich dokonanych zmian – dzieje się to
automatycznie. Witryna wygenerowana przez Traca
zawiera również wyszukiwarkę oraz możliwość
przeglądania kodu aplikacji na stronie WWW
– poprzez wbudowanego klienta SVN.
Liczba firm hostingowych, oferujących możliwość
hostowania projektów w ramach oprogramowania
Trac, stale rośnie. Wśród z nich znajdziemy
również propozycje bezpłatne: TracOS Project
(http://tracos.org) oraz WebFaction (http://www.webfaction.com/freetrac), który udostępnia darmowy
hosting dla aplikacji tworzonych w Pythonie.