Miło jest mi poinformować, że kod naszego forum jest już dostępny dla każdego. Każdy może więc pomóc w rozwoju forum, dopisać coś od siebie czy poprawić – wszystko w miarę chęci i możliwości.
Link do repozytorium z maszyną deweloperską forum:
https://github.com/CodersCommunity/forum.pasja-informatyki.local
Małe FAQ z najważniejszymi pytaniami jakie przyszły mi do głowy.
- Przecież kod Question2Answer jest od zawsze dostępny na GitHubie, po co udostępniać jeszcze raz to samo?
Tak, kod Q2A jest dostępny w tym miejscu, ale kod działający aktualnie na forum posiada sporo naszych zmian i poprawek. Dlatego dużo wygodniej jest pracować bezpośrednio na właściwym kodzie.
- Czy ja też mogę wprowadzić swoją zmianę?
Oczywiście, że tak. Możesz wprowadzić dowolną zmianę. Warto jednak, abyś najpierw zapytał co sądzą o tym inni – czy to przez issue w repozytorium, czy na IRC, czy nawet mnie w wiadomości prywatnej. Jakkolwiek, ale zasięgnij opinii innych, abyś nie napracował się nad zmianą na darmo. Z różnych względów nie każda zmiana może być wprowadzona.
- Czy to jest bezpieczne? Czy ktoś to kontroluje?
Tak, wszystko jest w pełni bezpieczne. Wrzucanie kodu na główną gałąź master jest zablokowane, każdy pracuje na swojej gałęzi i główny kod nie zostanie zmodyfikowany przez niepowołane osoby. Dodatkowo każda zmiana jest sprawdzana przez kilka osób, prowadzimy dyskusję o kodzie danej zmiany i dopiero zmiana przesyłana jest na serwer produkcyjny forum – wprowadzenie do źródła forum nieporządnego kodu jest więc wręcz niemożliwe.
- Co trzeba umieć, aby móc wprowadzać zmiany?
Skrypt naszego forum napisany jest głównie w PHP. Rzecz jasna używany jest też HTML, CSS, JavaScript i trochę SQLa do operacji na bazie danych MySQL. Dodatkowo należy znać przynajmniej podstawy Gita i GitHuba, aby możliwa była współpraca z innymi. Przydają się też podstawy Vagranta, aby móc zainstalować maszynę z kodem forum.
- Jak pobrać i uruchomić aktualną wersję forum?
Ze względu na wygodę i łatwość pracy została przygotowana specjalna maszyna wirtualna z użyciem oprogramowania Vagrant, która automatycznie instaluje całe potrzebne oprogramowanie (m.in. Apache, PHP, MySQL) i wgrywa bazę danych. Po zainstalowaniu wszystkiego raz maszyna z całą konfiguracją forum uruchamia się jednym poleceniem. Pełna instrukcja instalacji dostępna jest tutaj.
- Nie mam możliwości użycia Vagranta/Nie umiem go zainstalować/Nie udaje mi się instalacja. Czy to już koniec, nie mogę pomóc przy zmianach na forum?
Stanowczo zalecamy, aby użyć Vagranta – jest to szybki sposób na skonfigurowanie całego środowiska. Jeśli jednak bardzo nie chcesz/nie możesz go użyć, możesz wgrać normalnie pliki forum (folder forum/ z repozytorium) do Twojego serwera lokalnego oraz zaimportować bazę danych (z pliku dump/forum.sql). Krótką instrukcję wykonania instalacji w taki sposób przygotował użytkownik Krzycho92. Pamiętaj jednak, polecamy dokonać instalacji przy użyciu Vagranta.
- Jak dodać własną zmianę w kodzie forum?
Zacznij od pobrania kodu i przygotowania środowiska. Później stwórz gałąź z nazwą opisującą wprowadzaną zmianę – dla każdej zmiany zrób nową gałąź, aby zachować porządek. Gdy będziesz gotowy wrzuć gałąź ze zmianami do repozytorium. Na koniec należy założyć pull request (prośbę o połączenie z główną gałęzią). Po sprawdzeniu Twojego kodu zostanie on dołączony do gałęzi master i gotowe.
Jak już wspominałem wcześniej – warto jednak najpierw lub w międzyczasie zapytać innych co sądzą o danym pomyśle – np. przez issue. Nie ma sensu, abyś robił daną zmianę, gdy nie będzie ona mogła być wprowadzona. Co ważne, aby móc wrzucić swoją poprawkę należy być członkiem grupy CodersCommunity na GitHubie – jeśli nim nie jesteś, możesz poprosić o zaproszenie podając np. mi swój nick z GitHuba. Inną opcją jest zrobienie forka repozytorium i to na nim nanoszenia swoich zmian, które później zostaną dołączone do naszego kodu.
Mam nadzieję, że w ten sposób wyjaśniłem wszystkie kwestie. Już z tego miejsca dziękuję każdemu za każdą, nawet najmniejszą, wprowadzoną poprawkę. Dziękuję też Mirosławowi Zelentowi, za to, że zgodził się na publiczne udostępnienie kodu. Zapewniam wszystkich, że ma to na celu tylko dobry rozwój forum.
Zapraszam wszystkich do wspólnej pracy nad naszym forum :)