Release Management
We gebruiken 'semantic versioning' Major.Minor.Patch => 1.8.3
Beleid
Iedere maand een patch. Eventueel ook iedere maand een minor.
Alleen geteste versies uitrollen.Dis eventueel niet iedere maand.
Versie beheer
Gebruik Git met tags en branches Gebruik Joomla JED voor distributie van nieuwe versie van de module.
Mutaties in beeld houden
Belangrijk is de samenhang tussen module en database wordt beheerd.
Iedere maand verschil-analyse maken op:
- Django: migrations bekijken.
- Python: SQL code updates
- PHP: XML settings
Ad 1.
Migrations toepassen op centrale database en de tabel django_migrations gebruiken voor de stand van zaken.
Gebruik hiervoor optie 'Get Django Migrations from Central Database' in de Python tool.
Dit houdt wel in dat de centrale database gebruikt wordt als ontwikkel-database. Is dat een goed plan?
Ad 2. Voorals nog gaat dat door bestanden te vergelijken in Visual Code Belangrijk is dat sql-code specifiek voor een klant een naam heeft met de naam van de klant erin.
Ad 3. Vergelijken in Visual Code van de xml-bestanden van de module van de huidige en vorige versie van de module.
Ontwikkelen module
We ontwikkelen bij één actuele klant met de development version van de module. Bij alle klanten implementeren we met de vorige versie.
Muteren database schema
Verschillen scenario's (voor de centrale database):
- Toevoegen van nieuwe tabellen (applicatie) of velden aan bestaande tabellen.
- Verwijderen van een bestaande tabellen (applicatie) of velden uit bestaande tabellen.
- Hernoemen van een bestaande tabellen (applicatie) of van velden in bestaande tabellen.
Ad 1. Geen probleem. Kan zonder meer.
Ad 2. en 3. Kan alleen als de samenhangen zijn onderzocht. Voor de zekerheid en snelheid kan er beter voor worden gekozen om de tabellen en velden te behouden en te markeren als deprecated.
Stand van zaken
Klant databases
In centrale database: Moubis, VAP, Schuurman, Karis Met eigen database: Corpuls, MMR
Moubis, VAP en Karis moeten nog migreren naar centrale database.
Verstoringen
Wat als er zich een spoedgeval voordoet? Alleen voor de specifieke klant oplossen en integreren in volgende patch. Tenzij de patch natuurlijk voor alle klanten problemen oplevert.