„Co” i „dlaczego” oprogramowania typu open source

Więc myślisz o rozpoczęciu pracy z oprogramowaniem typu open source? Gratulacje! Świat docenia twój wkład. Porozmawiajmy o tym, czym jest open source i dlaczego ludzie to robią.

Co oznacza „open source”?

To znaczy, gdy projekt jest open source każdy może swobodnie korzystać, studiować, modyfikować i rozpowszechniać Twój projekt w dowolnym celu. Uprawnienia te są egzekwowane poprzez licencję typu open source.

Open source jest potężny, ponieważ obniża bariery adopcji i współpracy, umożliwiając ludziom szybkie rozprzestrzenianie i ulepszanie projektów. Również dlatego, że daje użytkownikom możliwość kontrolowania własnego przetwarzania w odniesieniu do zamkniętego źródła. Na przykład firma korzystająca z oprogramowania typu open source ma możliwość zatrudnienia kogoś, kto wprowadzi niestandardowe ulepszenia oprogramowania, zamiast polegać wyłącznie na decyzjach dostawcy zamkniętego źródła.

Wolne oprogramowanie odnosi się do tego samego zestawu projektów, co otwarte źródło. Czasami zobaczysz również niniejsze warunki w połączeniu jako „bezpłatne i otwarte oprogramowanie” (FOSS) lub „wolne, darmowe i otwarte oprogramowanie” (OPLĄT). Free i libre odnoszą się do wolności, nie ceny.

Dlaczego ludzie open source-ują swoją pracę?

Jest wiele powodów dlaczego osoba lub organizacja chciałaby otworzyć projekt. Niektóre przykłady obejmują:

  • Współpraca: Projekty open source mogą akceptować zmiany od każdego na świecie. Exercism, na przykład, jest platformą ćwiczeń programistycznych z ponad 350 uczestnikami.

  • Adopcja i remiksowanie: projekty open source mogą być wykorzystywane przez każdego do prawie dowolnego celu. Ludzie mogą nawet używać go do budowania innych rzeczy. WordPress, na przykład, zaczął się jako rozwidlenie istniejącego projektu o nazwie b2.

  • Transparentność: Każdy może sprawdzić projekt open source pod kątem błędów lub niespójności. Przejrzystość ma znaczenie dla rządów takich jak Bułgaria lub Stany Zjednoczone, regulowane branże, takie jak bankowość lub opieka zdrowotna, oraz oprogramowanie zabezpieczające, takie jak Let’s Encrypt.

Open source to nie tylko oprogramowanie. Możesz otworzyć wszystko, od zbiorów danych po książki. Sprawdź GitHub Explore, aby uzyskać pomysły na to, co jeszcze możesz otworzyć.

Czy open source oznacza bezpłatnie

Jednym z największych losowań open source jest to, że nie kosztuje. „Bezpłatny” jest jednak produktem ubocznym ogólnej wartości open source.

Ponieważ wymaga licencji typu open source że każdy może używać, modyfikować i udostępniać Twój projekt do prawie dowolnego celu, same projekty są zazwyczaj bezpłatne. Jeśli korzystanie z projektu kosztuje, każdy może legalnie wykonać kopię i zamiast tego skorzystać z darmowej wersji.

W rezultacie większość projektów typu open source jest darmowa, ale „bezpłatnie” nie jest częścią definicji open source. Istnieją sposoby pobierania opłat za projekty typu open source pośrednio poprzez podwójne licencjonowanie lub ograniczone funkcje, przy jednoczesnym zachowaniu zgodności z oficjalną definicją open source.

Czy powinienem uruchomić własny projekt open source?

Krótka odpowiedź brzmi „tak”, ponieważ bez względu na wynik uruchomienie własnego projektu to świetny sposób, aby dowiedzieć się, jak działa open source.

Jeśli nigdy wcześniej nie korzystałeś z projektu, możesz być zdenerwowany tym, co powiedzą ludzie lub czy ktoś w ogóle to zauważy. Jeśli to brzmi jak ty, nie jesteś sam!

Praca open source jest jak każde inne działanie twórcze, czy to pisanie, czy malowanie. Dzielenie się pracą ze światem może być przerażające, ale jedynym sposobem na poprawę jest ćwiczenie - nawet jeśli nie masz publiczności.

Jeśli nie jesteś jeszcze przekonany, poświęć chwilę, aby pomyśleć o swoich celach.

Wyznaczanie celów

Cele mogą pomóc Ci dowiedzieć się, nad czym pracować, w czym powiedzieć „nie” i gdzie potrzebujesz pomocy od innych. Zacznij od zadania sobie pytania: dlaczego jestem otwarty na pozyskiwanie tego projektu?

Nie ma jednej właściwej odpowiedzi na to pytanie. Możesz mieć wiele celów dla jednego projektu lub różnych projektów o różnych celach.

Jeśli Twoim jedynym celem jest pochwalenie się swoją pracą, możesz nawet nie chcieć wkładów, a nawet powiedzieć to w swoim README. Z drugiej strony, jeśli chcesz współpracowników, zainwestujesz czas w przejrzystą dokumentację i sprawi, że nowicjusze będą mile widziani.

W miarę rozwoju projektu Twoja społeczność może potrzebować czegoś więcej niż tylko kodu. Odpowiadanie na problemy, przeglądanie kodu i ewangelizacja projektu to ważne zadania w projekcie typu open source.

Chociaż ilość czasu poświęcanego na zadania niekodujące będzie zależeć od wielkości i zakresu projektu, powinieneś być przygotowany jako opiekun, aby zająć się nimi samodzielnie lub znaleźć kogoś, kto ci pomoże.

Jeśli jesteś częścią firmy, która pozyskuje projekt, upewnij się, że Twój projekt ma wewnętrzne zasoby potrzebne do rozwoju. Będziesz chciał określić, kto jest odpowiedzialny za utrzymanie projektu po uruchomieniu i jak udostępnisz te zadania swojej społeczności.

Jeśli potrzebujesz specjalnego budżetu lub personelu na promocję, operacje i utrzymanie projektu, rozpocznij te rozmowy wcześniej.

Wkład w inne projekty

Jeśli Twoim celem jest nauczenie się, jak współpracować z innymi lub zrozumieć, jak działa open source, rozważ przyczynienie się do istniejącego projektu. Zacznij od projektu, którego już używasz i który kochasz. Wkład w projekt może być tak prosty, jak poprawianie literówek lub aktualizacja dokumentacji.

Jeśli nie masz pewności, jak rozpocząć pracę jako współpracownik, zapoznaj się z naszym Jak przyczynić się do tworzenia otwartego oprogramowania.

Uruchomienie własnego projektu open source

Nie ma idealnego czasu na otwarcie swojej pracy. Możesz otworzyć pomysł, projekt w toku lub po latach zamkniętego źródła.

Ogólnie rzecz biorąc, powinieneś otworzyć swój projekt, gdy czujesz się dobrze, gdy inni oglądają twoją pracę i wyrażają opinie na jej temat.

Bez względu na to, na jakim etapie zdecydujesz się na otwarcie projektu, każdy projekt powinien zawierać następującą dokumentację:

Jako opiekun, te komponenty pomogą ci komunikować oczekiwania, zarządzać składkami i chronić prawa wszystkich osób (w tym własnych). Znacząco zwiększają twoje szanse na pozytywne doświadczenie.

Jeśli Twój projekt jest w GitHub, umieszczenie tych plików w katalogu głównym z zalecanymi nazwami plików pomoże GitHub rozpoznać i automatycznie udostępnić je czytelnikom.

Wybór licencji

Licencja typu open source gwarantuje, że inni mogą używać, kopiować, modyfikować i wnosić wkład w projekt bez żadnych konsekwencji. Chroni również przed trudnymi sytuacjami prawnymi. Musisz dołączyć licencję podczas uruchamiania projektu typu open source.

Legalna praca to nie zabawa. Dobrą wiadomością jest to, że możesz skopiować i wkleić istniejącą licencję do swojego repozytorium. Ochrona twojej ciężkiej pracy zajmie tylko chwilę.

MIT, Apache 2.0, i GPLv3 są najpopularniejszymi licencjami typu open source, ale istnieją inne opcje do wyboru.

Podczas tworzenia nowego projektu w GitHub masz możliwość wybrania licencji. Dołączenie licencji open source sprawi, że Twój projekt GitHub stanie się open source.

Pick a license

Jeśli masz inne pytania lub wątpliwości związane z aspektami prawnymi zarządzania projektem typu open source, zapewniamy Ci ochronę.

Pisanie README

Pliki README nie tylko wyjaśniają, jak korzystać z projektu. Wyjaśniają również, dlaczego Twój projekt ma znaczenie i co użytkownicy mogą z nim zrobić.

W README spróbuj odpowiedzieć na następujące pytania:

  • Co robi ten projekt?
  • Dlaczego ten projekt jest przydatny?
  • Jak zacząć?
  • Gdzie mogę uzyskać dodatkową pomoc, jeśli jej potrzebuję?

Możesz użyć swojego README, aby odpowiedzieć na inne pytania, takie jak sposób obsługi wkładów, jakie są cele projektu oraz informacje na temat licencji i atrybucji. Jeśli nie chcesz przyjmować datków lub twój projekt nie jest jeszcze gotowy do produkcji, zapisz te informacje.

Czasami ludzie unikają pisania pliku README, ponieważ uważają, że projekt jest niedokończony lub nie chcą wkładów. Są to bardzo dobre powody, aby napisać jeden.

Aby uzyskać więcej inspiracji, spróbuj użyć przewodnika @dguo ‘Make README’ lub @PurpleBooth w szablon README napisać kompletny plik README.

Po dołączeniu pliku README do katalogu głównego GitHub automatycznie wyświetli go na stronie głównej repozytorium.

Pisanie swoich wytycznych

Plik CONTRIBUTING mówi odbiorcom, jak wziąć udział w projekcie. Na przykład możesz podać informacje o:

Oprócz szczegółów technicznych plik CONTRIBUTING jest także okazją do wyrażenia swoich oczekiwań dotyczących wkładów, takich jak:

  • Rodzaje składek, których szukasz
  • Twoja mapa drogowa lub wizja projektu
  • W jaki sposób współpracownicy powinni (lub nie powinni) się z Tobą skontaktować

Używanie ciepłego, przyjaznego tonu i oferowanie konkretnych sugestii dotyczących wkładu (takich jak pisanie dokumentacji lub tworzenie strony internetowej) może znacznie przyczynić się do tego, że nowo przybyli poczują się mile widziani i podekscytowani uczestnictwem.

Na przykład Active Admin uruchamia swój przewodnik pomocniczy z:

Po pierwsze, dziękuję za rozważenie włączenia się w Active Admin. Ludzie tacy jak Ty sprawiają, że Active Admin jest tak doskonałym narzędziem.

Na najwcześniejszych etapach projektu plik WKŁADU może być prosty. Zawsze powinieneś wyjaśniać, jak zgłaszać błędy lub problemy z plikami, a także wszelkie wymagania techniczne (takie jak testy), aby wnieść swój wkład.

Z czasem możesz dodawać inne często zadawane pytania do pliku WKŁAD. Zapisanie tych informacji oznacza, że coraz mniej osób będzie zadawać ci te same pytania w kółko.

Aby uzyskać więcej pomocy w pisaniu pliku WKŁAD, sprawdź @nayafia contributing guide template lub @mozilla “How to Build a CONTRIBUTING.md”.

Link do pliku CONTRIBUTING z README, dzięki czemu więcej osób go zobaczy. Jeśli umieścisz plik CONTRIBUTING w repozytorium swojego projektu, GitHub automatycznie doda link do Twojego pliku, gdy współtwórca utworzy problem lub otworzy żądanie ściągnięcia.

Contributing guidelines

Ustanowienie kodeksu postępowania

Wreszcie kodeks postępowania pomaga ustalić podstawowe zasady postępowania dla uczestników projektu. Jest to szczególnie cenne, jeśli uruchamiasz projekt open source dla społeczności lub firmy. Kodeks postępowania umożliwia ci zdrowe, konstruktywne zachowanie społeczności, które zmniejszy stres jako opiekuna.

Aby uzyskać więcej informacji, zapoznaj się z naszym Przewodnikiem Kodeksu Postępowania.

Oprócz informowania, w jaki sposób oczekuje się, że uczestnicy będą się zachowywać, kodeks postępowania ma również na celu opisanie, do kogo odnoszą się te oczekiwania, kiedy mają zastosowanie, i co zrobić, gdy nastąpi naruszenie.

Podobnie jak licencje typu open source, pojawiają się również nowe standardy kodeksów postępowania, więc nie musisz pisać własnych. Porozumienie dla współautorów to rozwijany kodeks postępowania używany przez ponad 40 000 projektów open source, w tym Kubernetes, Rails i Swift. Bez względu na to, jakiego tekstu użyjesz, powinieneś być przygotowany do egzekwowania swojego kodeksu postępowania, jeśli to konieczne.

Wklej tekst bezpośrednio do pliku CODE_OF_CONDUCT w repozytorium. Zachowaj plik w katalogu głównym projektu, aby łatwo go znaleźć i połączyć go z README.

Nazewnictwo i branding twojego projektu

Branding to coś więcej niż efektowne logo lub chwytliwa nazwa projektu. Chodzi o to, jak mówisz o swoim projekcie i do kogo docierasz z przesłaniem.

Wybór właściwej nazwy

Wybierz nazwę, która jest łatwa do zapamiętania i najlepiej daje wyobrażenie o tym, co robi projekt. Na przykład:

  • Sentry monitoruje aplikacje pod kątem zgłaszania awarii
  • Thin to szybki i prosty serwer internetowy Ruby

Jeśli bazujesz na istniejącym projekcie, użycie ich nazwy jako prefiksu może pomóc wyjaśnić, co robi twój projekt (na przykład, node-fetch przynosi window.fetch do Node.js).

Rozważ przede wszystkim przejrzystość. Kalambury są zabawne, ale pamiętaj, że niektóre żarty mogą nie przekładać się na inne kultury lub osoby z różnymi doświadczeniami. Niektórzy z potencjalnych użytkowników mogą być pracownikami firmy: nie chcesz, aby czuli się niekomfortowo, gdy muszą wyjaśniać Twój projekt w pracy!

Unikanie konfliktów nazw

Sprawdź projekty open source o podobnej nazwie, szczególnie jeśli korzystasz z tego samego języka lub ekosystemu. Jeśli twoje imię pokrywa się z popularnym istniejącym projektem, możesz pomylić odbiorców.

Jeśli chcesz, aby witryna internetowa, uchwyt na Twitterze lub inne właściwości reprezentowały Twój projekt, upewnij się, że możesz uzyskać odpowiednie nazwy. Najlepiej jest zarezerwować teraz te nazwy dla spokoju ducha, nawet jeśli jeszcze nie zamierzasz ich używać.

Upewnij się, że nazwa twojego projektu nie narusza żadnych znaków towarowych. Firma może poprosić cię o późniejsze wycofanie projektu, a nawet podjęcie kroków prawnych przeciwko tobie. To po prostu nie jest warte ryzyka.

Możesz sprawdzić WIPO Global Brand Database pod kątem konfliktów znaków towarowych. Jeśli pracujesz w firmie, jest to jedna z rzeczy, w których zespół prawny może ci pomóc.

Na koniec wykonaj szybkie wyszukiwanie w Google nazwy swojego projektu. Czy ludzie będą mogli łatwo znaleźć Twój projekt? Czy w wynikach wyszukiwania pojawia się coś jeszcze, czego nie chciałbyś, żeby zobaczyli?

To, jak piszesz (i kodujesz), wpływa również na twoją markę!

Przez cały czas trwania projektu będziesz dużo pisać: CZYTELNIKI, samouczki, dokumenty społeczności, odpowiadanie na problemy, może nawet biuletyny i listy mailingowe.

Niezależnie od tego, czy jest to oficjalna dokumentacja, czy zwykły e-mail, styl pisania jest częścią marki Twojego projektu. Zastanów się, w jaki sposób możesz dotrzeć do odbiorców i czy to jest ton, który chcesz przekazać.

Używanie ciepłego, inkluzywnego języka (takiego jak „je”, nawet w odniesieniu do jednej osoby) może znacznie przyczynić się do tego, aby Twój projekt był przyjemny dla nowych współpracowników. Trzymaj się prostego języka, ponieważ wielu czytelników może nie być rodzimym językiem angielskim.

Poza tym, jak piszesz słowa, twój styl kodowania może również stać się częścią marki twojego projektu. Angular i jQuery to dwa przykłady projektów z rygorystycznymi stylami kodowania i wytycznymi.

Nie musisz pisać przewodnika po stylu dla swojego projektu, gdy dopiero zaczynasz, i może się okazać, że lubisz włączać różne style kodowania do swojego projektu. Ale powinieneś przewidzieć, w jaki sposób Twój styl pisania i kodowania może przyciągać lub zniechęcać różne typy ludzi. Najwcześniejsze etapy projektu to okazja do ustanowienia precedensu, który chcesz zobaczyć.

Twoja lista kontrolna przed uruchomieniem

Gotowy do otwarcia twojego projektu? Oto lista kontrolna, która pomoże. Zaznacz wszystkie pola? Jesteś gotowy! Kliknij „opublikuj” i poklep się po plecach.

Dokumentacja

Kod

Ludzie

Jeśli jesteś osobą fizyczną:

Jeśli jesteś firmą lub organizacją:

Zrobiłeś to!

Gratulujemy otwartego zaopatrzenia pierwszego projektu. Bez względu na wynik, praca publiczna jest darem dla społeczności. Z każdym żądaniem zatwierdzenia, komentarza i wyciągnięcia tworzysz możliwości dla siebie i innych do nauki i rozwoju.