Fork

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania

Fork – sytuacja, w której rozwój projektu nie prowadzi już jedną drogą, ale rozwidla się na dwie lub więcej gałęzi.

Eksperyment (łac. experimentum - doświadczenie, badanie) – w naukach przyrodniczych i społecznych zbiór działań wzbudzających w obiektach materialnych określone reakcje i zjawiska w warunkach pozwalających kontrolować wszelkie istotne czynniki, które poddaje się dokładnej obserwacji.Beryl – otwarty menedżer okien i kompozycji dla środowiska graficznego X Window System. Jest odgałęzieniem projektu Compiz, a obecnie znów się z nim scalił, tworząc projekt Compiz Fusion.

Podział forków ze względu na powód dla którego powstały:

  • Jedna grupa forków dotyczy projektów, których zasięg stał się z praktycznego punktu widzenia za duży. Przykładowo na potrzeby projektu GIMP powstał zbiór widżetów, który został oddzielony od GIMP-a i przeniesiony do GTK+. GTK+ ulegało potem dalszym podziałom, odłączyły się od niego m.in. GLib i Pango.
  • Inną grupą są specjalne wersje projektu, rozwijane jednak we współpracy z „główną gałęzią”, np. wersje Apache, jądra Linuksa używane w różnych dystrybucjach czy też CinePaint (dawniej Film Gimp), który odłączył się od GIMP-a.
  • Trzecią grupę stanowią sytuacje, kiedy wskutek konfliktów, co do właściwego kierunku rozwoju projektu powstaje kilka różnych gałęzi. Zwykle jedna z gałęzi powstałych po rozpadzie szybko ginie, np. EGCS odłączyło się od GCC, po czym stało się jedyną oficjalną wersją, gdyż programiści GCC przeszli do projektu EGCS (który od tego czasu ponownie nosi nazwę GCC). Czasem różne gałęzie istnieją obok siebie przez bardzo długi czas, pozostając ze sobą w różnych stosunkach. Tak jak np. XEmacs i GNU Emacs, czy różne wersje systemu BSDFreeBSD, OpenBSD, NetBSD itp.
  • Podobna sytuacja miała miejsce w znanym menedżerze okien do Linuksa – od projektu Compiz odłączyła się gałąź eksperymentalnaBeryl. W drugiej połowie roku 2007 liderzy grup programistycznych dwóch gałęzi postanowili połączyć swoje projekty w jeden – Compiz Fusion.
  • Termin „fork” nie jest stosowany konsekwentnie i bywa często używany w stosunku do innych rodzajów projektów pochodnych (które w sensie ścisłym forkami nie są). I tak, według pracy Gonzalesa i González-Barahony można wyróżnić następujące rodzaje takich projektów pochodnych lub powiązanych w pewien sposób:

    XEmacs - edytor tekstu, który jest oparty na edytorze GNU Emacs. Poprzez zastosowanie GUI w X Window jest on bardziej przyjazny dla użytkownika od swego poprzednika. Jednak od wersji 22 również GNU Emacs posiada GUI, które oparte jest na bibliotece GTK. Istnieje wiele wersji edytora XEmacs na różne odmiany UNIX-a, a także na platformę Windows oraz Mac OS X.OpenBSD – wolnodostępny system operacyjny typu UNIX z rodziny BSD zgodny z normą POSIX. Projekt powstał w 1995 roku jako efekt rozłamu w zespole NetBSD, jego inicjatorem był kanadyjski programista Theo de Raadt.
  • klony (ang. clones) – projekty, w których „skopiowany” jest inny projekt pod kątem jego funkcjonalności;
  • odgałęzienia (ang. branches) – skopiowanie kodu i następujący po tym rozwój wybranych funkcji projektu, często w celu dołączenia i przetestowania nowych funkcji;
  • rozwidlenia / forki (ang. forks) – rozpoczęcie zupełnie niezależnego (od gałęzi pierwotnej) projektu, która często występuje pod własną nazwą i charakteryzuje się innymi „atrybutami niezależności”;
  • system pochodny (ang. derivation) – system, który jest w dużej mierze podobny i kompatybilny z systemem pierwotnym, lecz widoczne też są wyraźne różnice;
  • mod (ang. mod) – modyfikacja systemu polegająca na rozszerzeniu możliwości systemu (np. dodaniu nowych poziomów do gry), robiona głównie przez entuzjastów systemu.
  • Przypisy[ | edytuj kod]

    1. Gregorio Robles, Jesús González-Barahona, Imed Hammouda, Björn Lundell, Tommi Mikkonen: A Comprehensive Study of Software Forks: Dates, Reasons and Outcomes. T. Open Source Systems: Long-Term Sustainability. Springer Berlin Heidelberg, 2012, s. 1–14. (ang.)
    Apache – otwarty serwer HTTP dostępny dla wielu systemów operacyjnych (m.in. UNIX, GNU/Linux, BSD, OS X, Microsoft Windows).NetBSD – wysoce przenośny, dostępny na wiele architektur system operacyjny z rodziny BSD (Unix), zgodny z normą POSIX.




    Warto wiedzieć że... beta

    Pango jest biblioteką udostępnianą na zasadach Wolnego i Otwartego Oprogramowania, odpowiedzialną za wygląd i renderowanie tekstu. Biblioteka Pango wykorzystywana jest głównie w środowisku graficznym GNOME w powiązaniu z biblioteką GTK+.
    EGCS (Experimental/Enhanced GNU Compiler System) – fork projektu GCC powstały w roku 1997. Projekt EGCS był odpowiedzią części twórców GCC na wolne tempo rozwoju tego projektu i utrudnienia związane z przyjmowaniem nowego kodu do jego oficjalnej wersji, stał się więc miejscem na początkowo eksperymentalne ulepszenia i modyfikacje tegoż kompilatora. W skład EGCS weszły inne forki takie jak Pentium-optimised GCC oraz wersje GCC dla nowych architektur komputerów i nowych języków programowania (między innymi Fortran) i zostały złączone w jednym miejscu.
    FreeBSD — system operacyjny z rodziny Unix. Do wersji 2.0 wywodził się z systemu 4.3BSD, kolejne wersje wywodziły się z 4.4BSD Lite2; obu stworzonych przez Computer Systems Research Group (CSRG) na Uniwersytecie Kalifornijskim w Berkeley. Podobnie jak NetBSD, jest bezpośrednią pochodną 386BSD – systemu będącego pierwszą próbą przeportowania systemu Unix z gałęzi BSD na architekturę IA-32.Początkowo znany pod nazwą Unofficial 386BSD Patchkit.
    GIMP (ang. GNU Image Manipulation Program) – bezpłatny, otwartoźródłowy program do edycji grafiki rastrowej. Pozwala na operacje takie jak m.in. retusz, skalowanie, rysowanie, dodawanie tekstu, umożliwiając pracę na warstwach i kanałach, dostosowywanie interfejsu czy tworzenie skryptów automatyzujących niektóre czynności.
    BSD (ang. Berkeley Software Distribution, czasami nazywany Berkeley Unix) – odmiana systemu operacyjnego Unix wywodząca się ze stworzonych na Uniwersytecie Kalifornijskim Berkeley rozszerzeń dla systemu rozwijanego przez firmę AT&T. Także potoczna nazwa licencji BSD, na której te systemy są wydawane oraz pokrewnych licencji tego typu (np. licencja MIT).
    Menedżer okien — w graficznym interfejsie użytkownika jest to program zarządzający rozmieszczeniem, zachowaniem i rysowaniem okien w obrębie systemu okien. Większość menedżerów okien jest elementem kompletnego środowiska graficznego dla systemu operacyjnego. Są przeważnie napisane z wykorzystaniem jednej z istniejących bibliotek kontrolek (np. Qt, GTK+).
    GCC (ang. GNU Compiler Collection) - zestaw kompilatorów do różnych języków programowania rozwijany w ramach projektu GNU i udostępniany na licencji GPL oraz LGPL.

    Reklama