Jednym z wymagań konkursu „Daj się poznać” jest podanie repozytorium konkursowego. Jednego… W moim przypadku okazało się to nieco problematyczne, gdyż lubię porządek w projektach a także lubię automatyzację – a obie te rzeczy niezbyt lubią jedno, wielkie, wszystko mające repozytorium, toteż postanowiłem utworzyć wiele repozytoriów i połączyć je w jedno meta-repozytorium przy użyciu funkcjonalności git submodule.
Na czym to polega?
Tworzymy główne repozytorium – w moim przypadku główne repozytorium znajduje się tutaj.
Następnie do repozytorium podpinam inne repozytoria, zawierające konkretne projekty botów lub bibliotek nugetowych, przy użyciu polecenia:
git submodule add https://github.com/tomaszkiewicz/BotFramework.git Tomaszkiewicz.BotFramework
Po tej operacji kod źródłowy z ze wskazanego repozytorium jest pobierany do podkatalogu, dodatkowo submoduł jest rejestrowany w pliku .gitmodules. Z punktu widzenia potencjalnego nowego programisty, który chciałby się zapoznać z moim kodem, konieczne jest dodanie flagi –recursive do standardowego polecenia git clone:
git clone --recursive https://github.com/tomaszkiewicz/ChatbotLabs.git
Tyle technikaliów, jeśli czujecie niedosyt polecam ten artykuł. Pora omówić co jest w moim repo.
„Mięso”, czyli zawartość repozytorium
W poszczególnych repozytoriach znajdziecie projekty botów, biblioteki publikowane na NuGeta a także szablony:
- SmogBot – pierwszy z moich botów realizowanych w ramach konkursu. Więcej informacji znajdziesz tutaj.
- BotFramework.Templates.ProactiveBot – szablon projektu typu proactive bot z użyciem Azure Functions, który działa poprawnie w Visual Studio 2017.
- Tomaszkiewicz.DapperExtensions – kilka pomocniczych klas do łatwiejszego i przyjemniejszego używania Dappera.
- GiosAirPollutionClient – biblioteka z klientem do pobierania danych nt. zanieczyszczenia powietrza ze stron GIOŚ.
- Tomaszkiewicz.BotFramework – rozszerzenia, dialogi i narzędzia ułatwiające pracę z Microsoft Bot Framework, wspólne dla wszystkich botów.
Taki podział sprawia, że poszczególne projekty mogą być budowane niezależnie od siebie – i tak też się dzieje, a o tym jak skonfigurować automatyczne budowanie projektów przy użyciu AppVeyora będzie w jednym z najbliższych wpisów.
Zapraszam więc do śledzenia tego bloga, czy to przez kanał RSS, czy też poprzez stronę na Facebooku.
Dodaj komentarz