Contribution documentation
Authors
- pzajaczkowski
- fdrazba
- bciereszynski
Attempt 2 - NATS
NATS is a lightweight and high-performance messaging system designed for asynchronous communication among
different software components, with modern clustering, security and persistence streaming support
out of the box, in a single compact binary with no dependencies, available for any modern
platform, enabling a vast variety of deployment options from edge, IoT, Kubernetes to bare-metal.
What has been done:
-
- Reading project documentation
- Setting up local environment
- Getting familiar with code base and used conventions
- Trying to understand problem and NATS infrastructure
- First code changes
- Asking for details of some expected behaviour of the method to implement
- Created pull request with solution

- Pull request accepted and changes merged to main 馃帀

-
- Research about Lame Duck Mode topic
- Looking how does LDM looks in code
- Brainstorm about best solution and its architecture
- Session of pair programming with Filip and Bartosz
- First solution with trigger method
- Second solution with setter
- Decision to go with second solution
- Created pull request

- Fixed 2 problems mentioned in PR conversations
- Ask for help with feature with no public documentation
- Change test to work with multiple enviroments (i.e. work with windows)
- Pull Request merged 馃帀

Attempt 1 (Failed) - Nuclear
At first, we planned to contribute to an open-source streaming music player. Unfortunately,
due to safety concerns regarding this program and its repository, we decided to contribute
to a different project (NATS). Even though we switched our contribution project, we still
spent some time on the previous one.
Here is what we have done for Nuclear:
Opis planowanych zada艅:
- Projekt zmian w UI
- Celem jest stworzenie konkretnego projektu dotycz膮cego wy艣wietlania CD.
- Projekt powinien by膰 inspirowany dostarczonymi zrzutami ekran贸w z innych aplikacji oraz dostosowany do estetyki naszej aplikacji.
- Implementacja adaptera
- Adapter to klasa odpowiedzialna za przechwytywanie odpowiedzi na zapytania i przekszta艂canie ich w jednolite dane do wy艣wietlenia przez GUI.
- Istnieje ju偶 kilka adapter贸w w kodzie, dlatego zadanie polega na dostosowaniu istniej膮cych klas lub ewentualnym dodaniu nowej klasy na podstawie istniej膮cego kodu.
- Wprowadzenie zmian do kodu obs艂uguj膮cego UI
- Na podstawie projektu oraz danych dostarczonych przez adapter nale偶y wprowadzi膰 zmiany w klasie odpowiedzialnej za wy艣wietlanie tablicy utwor贸w.
- Zmiany te powinny by膰 stosunkowo proste, ale wymagaj膮 wcze艣niejszego zako艅czenia implementacji adaptera lub ustalenia interfejsu komunikacyjnego.
- Zmiany b臋d膮 skupione na klasach GridTrackTable oraz GridTrackTableRow.
- Utworzenie test贸w jednostkowych
- Zwi臋kszenie pokrycia testami jest wymogiem zgodnym z naszymi zasadami wk艂adu: pokrycie powinno przynajmniej pozosta膰 na tym samym poziomie, aby PR m贸g艂 zosta膰 scalony.
- Przyk艂ady test贸w jednostkowych s膮 dost臋pne w dokumentacji.
- Dodanie test贸w UI
- W repozytorium, obok standardowych test贸w jednostkowych, znajduj膮 si臋 testy graficzne zwane testami snapshot.
- Przyk艂ady test贸w snapshot s膮 dost臋pne w dokumentacji.
- Zadanie to obejmuje zrozumienie tych test贸w oraz dodanie ich w kontek艣cie wprowadzanych zmian, je偶eli b臋dzie to mo偶liwe.
Roadmap

Diagram aktywno艣ci

Projekty zmian w UI