6.1. Přehled vývoje QWAT

6.1.1. Předpoklady

Za účelem rozvoje pro QWAT mohou být požadovány následující dovednosti:

  • Dobré obecné znalosti o GIS

  • Dobré obecné znalosti o QGIS

  • Znalosti v relačních databázích a konkrétně PostgreSQL / PostGIS

  • Dovednosti v Pythonu

6.1.2. Prostředí

  • Budete muset nainstalovat a nakonfigurovat Git a GitHub <https://help.github.com/articles/set-up-git/> _

  • Nainstalujte si python 3 jako výchozí python. Pokud tomu tak není, použijte virtuální prostředí <https://docs.python.org/3/library/venv.html> _

  • má bash shell

  • mít práva administrátora pro vytváření a odstranění databází PostgreSQL

6.1.3. Architektura QWAT

  • Popište zde různé části QWAT

  • Popište vztah k jiným projektům (pluginy, qgis core)

6.1.4. Role

  • Commiters mají přístup k úložištím kódů QWAT a mohou tam odesílat push požadavky. To znamená, že mají pod kontrolou vývoj softwaru

  • přispěvatelé mohou poskytnout informace, kód, dokumentaci k projektu. Nemají přímý přístup k úpravám a musí projít komitery, aby získali své úpravy. Další informace a procesy naleznete v části [[Contributors_guide]].

  • Správce verzí má na starosti rozhodování o vydání nové verze softwaru a vydání tohoto vydání. Aktuální správce vydání je Régis Haubourg (OSLANDIA) <https://github.com/haubourg> _ jménem skupiny QWAT.

6.1.5. Cykly a verze vydání

Nové verze pro QWAT jsou vydávány pravidelně, ale v nepravidelné frekvenci Správce vydání rozhodne, kdy bude zveřejněna nová verze.

Číslo nainstalované verze najdete v datovém modelu v tabulce qwat_sys.info.

6.1.5.1. Pravidla správy a vydávání verzí

  • Čísla verzí se řídí přístupem `sémantického verzování <http://semver.org> `_.

  • Plán verzí pro nové funkce musí být sdílen na trackeru a s generálním výborem. Problémy musí být otevřeny a označeny štítky (1.4, 1.5).

  • Nevytvářejte verzi pro každou změnu kódu.

  • Verze budou shromažďovat různé změny kódu a musí být projednány se správcem vydání.

  • Je možné mít více rozdílových souborů Delta pro jednu verzi-vydání Příklad: delta_1.3.2_0001_one_change, delta_1.3.2_0002_another_change

  • Každá nová verze bude systematicky vydána. Vydání se projeví pomocí značky git

  • travis-CI automaticky uvolní vydání když přijde čas a testy jsou úspěšné

  • Správci dat nesmí NIKDY pracovat na hlavní větvi, ale používat vydání. Důvodem je to, že nejnovější verze hlavní větve se až do vydání mění, takže nejde o spolehlivou značku verze. To pro uživatele git znamená, že mají načíst vzdálené značky a provést kontrolu do požadovaného vydání pomocí git checkout tag_number

6.1.6. Proces vydání

Proces vydávání pro QWAT je následující:

  • Problémy jsou tříděny s milníky do dalších verzí

  • Správce vydání rozhodne, kdy bude uvolněno další vydání, v souladu s potřebami komunity

  • Oznámí předpokládané datum vydání v předstihu (nejméně 1 týden)

  • Problémy jsou přezkoumány a datum může být přesunuto podle toho, jak probíhá práce

  • CHANGES.md je zaškrtnuto, zda obsahuje popis změn pro tuto verzi

  • Když je připraveno (všechny plánované tikety jsou uzavřeny), správce vydání přidá verzi projektu metadata a označí projekty (verze), které budou uvolněny (datový model, projekt QWAT) s novou verzí,

  • Správce vydání oznamuje novou verzi (seznamy adres, IRC, twitter…)

6.1.7. Další závislost

Projekt QWAT má několik závislostí na různých submodulech

  • Načítání jejich obsahu je dosaženo pomocí konkrétního příkazu git

6.1.8. Verzování rozšíření

Před datovým modelem QWAT 1.3.0 byla verze sledována v qwat_sys.versions, které museli přispěvatelé udržovat ručně. Poté se modul PUM postará o automatické zvyšování a sledování verzí pomocí konvencí pojmenování souborů jádra delta. Doporučujeme však použít pouze jeden skript SQL pro přizpůsobení, bez verze v názvu. Můžete jej verzovat v samostatném úložišti git nebo SVN, ale smíchání lokální a základní verze může vést k velmi složitému systému.

6.1.9. Vypracování základního datového modelu

Abychom udrželi řízený proces nad verzí, máme následující systém:

  • Soubory SQL, které odpovídají vytvoření základního datového modelu

  • Soubory SQL odpovídající změnám od verze X do verze X+1 („diff SQL“)

Rozdílové soubory jsou umístěny v úložišti v adresáři „delta“. Jejich název má tuto konvenci, kterou používá modul PUM:

  • delta_1.3.2_0001_one_change.sql

Nasazení modelu pro konkrétní verzi a postupné použití souborů diff k dosažení jiné verze by mělo vést k přesně stejnému modelu jako nasazení této poslední verze. Projekt QWAT bude mít nástroje pro testování této shody.

Doporučuje se psát diff soubory současně s modifikací modelu, ale to není povinné. Diff soubory musí být kompletní a aktuální při vydání nové verze modelu. Před uvolněním nové modelové verze by měly být diff soubory analyzovány a dokončeny. Některý kód může být také refaktorován na zjednodušené diff soubory (např. Více úprav do stejného pole mezi dvěma verzemi)

Některé soubory delta jsou jednoduché, jako nové tabulky a pohledy. Některé jsou složitější, protože jsou vystaveny prostřednictvím pohledů. Většina pohledů v QWAT je automaticky generována modulem metaprojektu. To znamená, že přidání uživatelských polí (například do elementů nebo trubek), bude vyžadovat další instrukce pro zrušení a opětovné vytvoření pohledů před / po použití souboru delta. PUM umožňuje přidat pre a post soubory, buď v pythonu nebo sql pro každou aktualizaci, příklady viz delta.1.2.8.

V důsledku toho při vývoji základního datového modelu byste měli:

  • Vložte modifikace do základních modelů souborů SQL

  • Přidejte své úpravy do správného diff souboru.

Požadavek pull by měl být doplněn těmito prvky, nebo musíte být před samotným vydáním připraveni přezkoušet diff SQL soubory, abyste se ujistili, že diff je aktuální.

6.1.10. Rozvíjení projektu QGIS

  • Jak upravit výchozí projekt nebo vytvořit nový

  • Jak tyto změny sdílet

6.1.11. Přidání nových funkcí do QWAT

  • viz doprovodná příručka pro diskusní proces a správu problémů

  • vytvoření konkrétního pluginu

  • přispívat do QGIS core