Skip to content

Latest commit

 

History

History
59 lines (38 loc) · 3.32 KB

CONTRIBUTING.md

File metadata and controls

59 lines (38 loc) · 3.32 KB

1. Chciałbyś zgłosić błąd lub zaproponować nową funkcjonalność?

Wpierw sprawdź czy już ktoś wcześniej nie zgłosił podobnego rozwiązania.

Jeżeli nie, to śmiało, stwórz nowe issue!

2. Fork i tworzenie brancha

Jeżeli jest coś co chciałbyś poprawić/dodać to zrób forka Poli oraz stwórz branch'a z opisową nazwą.

Do nazewnictwa brancha zastosuj prefixowanie fix/ lub feature/ wraz z numerem issues'a i krótkim opisem (najlepiej po angielsku), przykładowo:

git checkout -b feature/423_added_new_feature

3. Konfiguracja aplikacji

Wykorzystujemy CocoaPods jako narzędzie do pobierania i konfigurowania zależności. Do uruchamiana testów i linterów na CI oraz lokalnie używamy fastlane. W testach wykorzystywane jest porównywanie snapshotów z uzyciem biblioteki SnapshotTesting. Obrazy referencyjne nagrane są na symulatorze urządzenia iPhone 8 z systemem iOS 14. Ze względu na zmiany w symulatorze od Xcode'a 10 związanym z rendenerowaniem obrazu symulatora na GPU, obraz nagrany na różnych komputerach mac może nieznacznie się różnić. W celu uniknięcia tego problemu można użyć Github Actions i workflow Snapshot, który na danym branchu nagrywa obraz referencyjny i pushuje do repozytoriun W przypadku niepowodzenia testów snapshoty ze wskazaniem różnicy przechowywane są w artefaktach Github Actions w pliku xcresults razem z całym przebiegiem testów.

4. Stwórz Pull Request'a

Preferujemy metodę rebase & squash przed samym stworzeniem PR. Oznacza to, że branch na którym pracujesz powinien mieć jak najmniej commitów (przy małych zmianach tylko jeden) oraz powinien odchodzić od najnowszego commita na masterze.

Gdy już masz to gotowe stwórz PR

5. Merge PR (tylko opiekunowie)

PR może być tylko zmergowany gdy:

  • Został zaakceptowany przez opiekuna.
  • Wszystkie komentarze zostały zamknięte/zakończone.
  • Branch odchodzi od najnowszego master.
  • Zmiany zostały pomyślnie zbudowane i przetestowane przez serwer CI.

6. Wydawanie aplikacji (tylko opiekunowie)

Automatyczne

Uruchamiamy workflow deploy z odpowiednim parametrem wersji

Ręczne

Przed zbudowaniem aplikacji do wydania należy:

  • Ustawić odpowiednią wersję:

    • Uruchamiamy workflow Bump version z odpowiednim parametrem wersji
  • Skonfigurować Firebase:

    • Pobieramy plik GoogleService-Info.plist dla projektu Pola z konsoli Firebase.
    • Edytujemy plik zmieniając wartość dla klucza IS_ANALYTICS_ENABLED na YES.
    • Podmieniamy istniejący plik w projekcie na pobrany.
    • Pliku, ani powyższych zmian nie dodajemy do repozytorium!
  • Ściągnąć wymagane certyfikaty przy pomocy komendy bundle exec fastlane match