Witam wszystkich ponownie.
Projekt nie został zarzuconyPytacie, czy nie przerosły mnie problemy nad programem.. Tak przerosły mnie, te domowe..
jak rozwiązałeś problem zależności jednych pakietów od drugich i jaką zaplanowałeś ich strukturę (jedna duża paczka zawierająca wszystko vs podział na małe, atomowe części)?
Wszystko zależy od twórcy dodatku. Moze bez problemów spakować pojedyńczo każdy semafor, lub równie dobrze "wsadzić" je wszystkie w jedna paczke.
- jak planujesz rozwiązać temat wersjonowania (trasa A wersja 1, 2, itd) - zwłaszcza w konteście ew. zależności?
To zależy od autora wersji tras, a nie od tego co zaplanuje autor instalatora.
Musze jednak potwierdzić, że zależy to jednak ode mnie.
Na razie opracowalem taki system identyfikacji pakietów:
ID_AUT.ID_PACZ.ID_WER.ID_WYD.ID_BUD.KONTROLA
gdzie odpowiednio:
ID_AUT - liczbowy identyfikator autora (np. 6243523)
ID_PACZ - liczbowy identyfikator paczki (np. 9040)
ID_WER - wersja danej paczki (np. 2)
ID_WYD - identyfikator wydania (np. 4)
ID_BUD - identyfikator budowy (np. 415)
KONTROLA - pojedyncza cyfra kontroli
wszystkie liczby oddzielone są od siebie separatorem, w postaci kropki "."
przykładowy identyfikator paczki:
"6243523.9040.2.4.415.9"
- jaka jest struktura pliku z pakietem (to jakiś proste archiwum z XMLem z metadanymi w roocie, czy coś bardziej złożonego)?
Tak, plik paczki jest to proste archiwóm zip. Jest w nim spakowana cała struktura paczki (dokładnie taka sama jak w katalogu symulatora), oraz plik manifestu (ze wszystkimi informacjami potrzebnymi do instalacji.
Instalacja "paczki" to po prostu kontrolowane rozpakowanie zawartości paczki do katalogu symulatora, oraz dodanie odpowiedniego wpisu do bazy danych.
- czy dopuszczasz możliwość współistnienia różnych wersji pliku o tej samej nazwie (czytałem wypowiedzi w wątku, ale mimo to zadam pytanie) w kontekście sytacji trasa A wymaga 1. wersje pliku, trasa B wymaga 2. wersje pliku a obie są niekompatybilne?
Tak. Informacje o wymaganych do instalacji pakietach są zapisywane w pliku manifestu paczki, w sekcji "zależności". Instalator nie zainstaluje paczki do chwili, gdy wszystkie paczki zależnie od niej nie zostaną zainstalowane.