Sealcode to przede wszystkim społeczność programistów chcąca się rozwijać w webdevie i wzajemnie się w tym wspierać. Aby stać się częścią Sealcode'u, wystarczy założyć konto na forum:
https://hub.sealcode.org/w/sealcode_wiki/forum/
oraz na Telegramie:
https://hub.sealcode.org/w/sealcode_wiki/telegram/
i zrobione! Witamy w Sealcode ;)
Aby wdrożyć się w program mentoringowy, trzeba:
0. Przedstawić się na forum!
1. uzyskać dostęp do naszego systemu zarządzania taskami;
2. uzyskać dostęp do odpowiednich grup na Forum;
3. dowiedzieć się, jakie projekty realizujemy;
4. postawić sobie środowisko developerskie;
5. przydzielić się do projektu/projektów;
6. wybrać sobie taska;
7. przyswoić treść taska;
8. wykonać taska ;)
Poniżej opiszemy, jak to zrobić :)
Jeżeli masz problem z którymkolwiek z kroków, pisz na forum! W razie wątpliwości odnośnie tego, jak korzystać z forum, ten poradnik może być przydatny: https://forum.sealcode.org/t/kategorie-tagi-jak-jest-zorganizowane-nasze-forum/445?u=kuba-orlik
# 0. Przedstawienie się na forum
Upewnij się, że masz założone konto na [Forum](https://forum.sealcode.org);
A następnie napisz kilka słów o sobie :)
https://forum.sealcode.org/t/hello-sealcode-przedstawmy-sie-sobie/267
# 1. i 2. Pozyskanie dostępów
Upewnij się, że masz już założone konto na [Sealhubie](https://hub.sealcode.org/)
Napisz do Kuby Orlika na Telegramie z prośbą o dopisanie do odpowiednich grup. W Telegramie możesz wejść w chat grupowy, następnie w listę osób z chatu i tam wybrać osobę do PW.
Poczekaj na odpowiedź ;)
# 3. Jakie projekty realizujemy?
Po prawidłowym ustawieniu dostępów masz uprawnienia do zapoznania się z treścią tego dokumentu:
https://hub.sealcode.org/w/program-mentoringowy/nasze-projekty/
# 4. Postawienie środowiska deweloperskiego
## System operacyjny
Najmniej problemów sprawi GNU/Linux - polecamy w szczególności dystrybucję [Manjaro](https://manjaro.org/).
Najnowszy OSX i Windows 10 Pro też dadzą radę, ale nie obejdzie się bez przeszkód. Windows 10 Home odpada, ponieważ nie działa na nim Docker, wymagany do uruchamiania naszych apek. Jeżeli masz tę wersję Windowsa, to musisz albo postawić Linuksa w maszynie wirtualnej, albo zainstalować Linuksa obok Windowsa. Jeżeli nie wiesz, jak to zrobić - zapytaj na forum! Pomożemy ;)
## Klucz SSH
Wykonaj instrukcje z tego tutoriala:
https://hub.sealcode.org/w/sealhub_workflow/narzedzia/klucz-ssh/
## Programy developerskie
Będą potrzebne:
* edytor kodu dla programistów - Twój ulubiony. Jeżeli nie masz ulubionego, spróbuj [VSCodium](https://github.com/VSCodium/vscodium)
* [docker oraz docker-compose](https://hub.sealcode.org/w/sealhub_workflow/narzedzia/docker_i_docker-compose/)
* GNU Make (domyślnie zainstalowany na MacOS oraz na GNU/Linux, na Windowsie trzeba go [doinstalować](http://gnuwin32.sourceforge.net/packages/make.htm)
* git (na Windowsie potrzebny jest także Git Bash)
* Node.js - polecamy instalację za pomocą [`nvm`](https://github.com/creationix/nvm) na wspieranych systemach. Na Windowsie można po prostu skorzystać z instalki na stronie https://nodejs.org/en/)
# 5. Przydzielenie się do projektów.
Zapoznaj się z listą aktualnych projektów:
https://hub.sealcode.org/project/query/QOuVi6oZQgk6/
Znajdź interesujący Cię projekt - lub kilka! - i dopisz się do niego używając opcji "join project":
{F43900}
{F43902}
# 6. Wybór taska
Wejdź na stronę projektu, aby wyświetlić listę odblokowanych tasków do wzięcia:
{F43904}
## "Odblokowane" taski?
Task jest "zablokowany", jeżeli jest jakiś inny task/taski, które muszą być wykonane, zanim może być rozpoczęta praca nad danym taskiem. Mówimy, że task X "blokuje" task Y - wtedy task X powinniśmy zrobić najpierw, a po jego wylądowaniu możemy dopiero robić task Y.
Informacje o tym, który task blokuje który umożliwiają stworzenie grafu zależności:
{F43906}
W tym grafie task gdy dwa węzły są połączone kreską, to znaczy, że ten na dole blokuje tego u góry. Phabricator porządkuje te taski tak, że te znajdujące się na samym dole trzeba realizować najwcześniej, a tymi na górze można zajmować się najpóźniej.
Jednak przy wyborze taska nie musimy wiedzieć, jak wygląda ten graf zależności wszystkich tasków w projekcie - wystarczy wiedzieć, jakie taski aktualnie są odblokowane, tzn: wszystkie blokujące je taski są już wylądowane. Dlatego też w dashboardach projektu, takich jak [ten](https://hub.sealcode.org/tag/strona_evolver/) umieszczamy panel "odblokowane taski"
## Priorytety tasków
Taski są sortowane wg priorytetów - od najwyższego do najniższego.
**Priorytety są bardzo ważne!** Musimy brać je pod uwagę przy wybieraniu sobie taska.
**Przy wyborze priorytetu kluczowa jest Wasza aktualna dostępność**.
* Nie macie aktualnie czasu, bo np. uczelnia jest przytłaczająca? **Nie bierzcie tasków!** Zajmijcie się ze spokojem sprawami z Waszego życia tak, aby Sealcode Was nie przytłaczał.
* Macie trochę czasu? Bierzcie taski o najniższych priorytetach.
* Macie dużo czasu? Bierzcie taski o wysokich priorytetach.
# 7. Przyswojenie treści taska
Przeczytaj uważnie opis taska, który wybrałeś. Jeżeli nie jest jasne, co należy zrobić - pytaj! Napisz swoje pytania w komentarzu pod taskiem i daj znać na telegramie.
# 8. Wykonywanie taska - Sealhub workflow
Przypisz taska do siebie ("assign/claim") oraz ustaw mu stan na Doing - to sygnał dla innych programistów, że Ty zajmujesz się tym zadaniem.
Pracujemy głównie w trybie Review. Opisany jest szczegółowo tutaj:
https://hub.sealcode.org/w/sealhub_workflow/audyt-i-review/teoria/
https://hub.sealcode.org/w/sealhub_workflow/audyt-i-review/review-workflow/
Sklonuj repozytorium projektu, i postępuj wg Review Workflow. Powodzenia! 💪