From Mageia wiki
Jump to: navigation, search


Inleiding

Bij het testen van een update is de aanbevolen procedure om alleen de pakketten te installeren die in de update-aanvraag (update request) staan. Dit is omdat dit de enige pakketten zijn die naar de updates-media worden gepusht wanneer de update is gevalideerd.

Als een tester de updates_testing-media inschakelt en handmatig de pakketten selecteert die moeten worden bijgewerkt, is er een kans dat andere pakketten die aanwezig zijn in updates_testing automatisch worden geïnstalleerd (vanwege pakketafhankelijkheden). Meestal veroorzaakt dit geen problemen, maar als de update daadwerkelijk een aantal van die extra pakketten vereist, zullen gebruikers problemen ondervinden zodra de update wordt gepusht, omdat die extra pakketten niet noodzakelijkerwijs beschikbaar zullen zijn in de updates-media.

Om dergelijke problemen te helpen voorkomen, is het gereedschap QA Repo gemaakt. Dit gereedschap pakt een lijst met pakketten die door de tester zijn geleverd en maakt een lokale repository (pakketdepot) op de machine van de tester die alleen deze pakketten bevat. Vervolgens schakelt het QA Repo-gereedschap die repository in als een update-medium, zodat wanneer de tester de software-update-GUI (of urpmi –auto-select) uitvoert, die pakketten beschikbaar zijn als updates. Mits de tester nooit de media updates_testing inschakelt, is er geen gevaar dat andere pakketten in updates_testing worden geïnstalleerd.

Om problemen volledig te voorkomen, moeten de bijgewerkte pakketten opnieuw worden gedowngraded, voordat er wordt doorgegaan met het testen van een andere update-aanvraag. Momenteel moet dit nog steeds handmatig worden gedaan, maar het gereedschap QA Repo kan u een opdracht voorstellen om dit te bereiken. Als u test in een virtuele machine, kunt u in plaats daarvan klonen of snapshots gebruiken om de wijzigingen terug te draaien.

Installatie

Het gereedschap QA Repo kan worden geïnstalleerd in het systeem van de tester door het qarepo-pakket te installeren. Let op: als u test in een virtuele machine, moet het pakket worden geïnstalleerd in het gastsysteem.

Meestal draait het gereedschap QA Repo zonder speciale privileges, maar om de lokale repository in of uit te schakelen als updatemedium, zijn root-privileges vereist. QA Repo vraagt ​​alleen om deze privileges wanneer deze nodig zijn, en gebruikt hierbij polkit om de authenticatie uit te voeren (dit is de authenticatiedialoog die u ziet wanneer u andere programma's uitvoert die root-privileges vereisen, zoals het Mageia Control Center MCC).

Omdat de polkit-authenticatie al na een paar minuten verloopt, kunt u ervoor kiezen uzelf toe te voegen aan de qarepo-groep (via de gebruikersbeheertool in de MCC of de opdracht usermod). Dit zorgt ervoor dat polkit automatisch het gereedschap QA Repo autoriseert om de acties uit te voeren die nodig zijn, zonder dat u een wachtwoord hoeft in te voeren, mits de tool door u wordt uitgevoerd als een actieve lokale gebruiker.

Let op:
Voor Mageia 6 is het qarepo pakket beschikbaar in core/backports. Voor Mageia 7 en hoger is het beschikbaar in core/release.

Instructies voor het gebruik

Het gereedschap QA Repo kan worden gestart door deze te selecteren in de Tools sectie van het menu desktop applicaties, of door qarepo in te voeren op de opdrachtregel. Als u het commando uitvoert vanaf de opdrachtregel, ziet u de uitvoer van de opdrachten die QA Repo uitvoert om de lokale repository te maken, wat handig kan zijn om fouten te diagnosticeren als het gereedschap niet doet wat u verwacht.

Zodra u bent begonnen, krijgt u de volgende grafische gebruikersschil (Graphical User Interface, GUI) te zien:

Qarepo.png

Een mirror selecteren

Op de eerste rij van de GUI staat een tekstvak waarmee u de URL van de mirror kunt invoeren die u wilt gebruiken om pakketten te downloaden. Dit kan een http://, ftp:// of rsync:// URL zijn, of een eenvoudig bestandspad (d.w.z. zonder het voorvoegsel file://) naar een mirror op uw lokale bestandssysteem. In alle gevallen moet dit verwijzen naar het hoogste niveau van de distributieboom (de directory met de subdirectory distrib).

De bronmedia selecteren

Op de tweede rij van de GUI staat een tekstvak waarmee u het Mageia-releasenummer kunt invoeren dat u wilt testen en vakjes kunt aanvinken om te selecteren welke mediatypen zijn ingeschakeld (de core-media zijn altijd ingeschakeld). Op de derde rij staat een uitrol-menu waarmee u kunt selecteren welke architectuur u test (i586 of x86_64).

Het gereedschap QA Repo downloadt alleen pakketten uit de secties updates_testing van de geselecteerde media.

De locatie van de lokale repository selecteren

Op de derde rij van de GUI staat een tekstvak waarmee u de locatie van de directory kunt opgeven, die wordt gebruikt om de lokale repository op te slaan die is gemaakt door het gereedschap QA Repo. Dit moet een absoluut pad zijn op uw lokale bestandssysteem. De directory wordt gemaakt als deze nog niet bestaat. De lokale repository wordt gemaakt als een subdirectory van deze directory, vernoemd naar de geselecteerde architectuur.

De te testen pakketten selecteren

Op de vierde rij van de GUI is er een tekstinvoervak ​​waarmee u kunt selecteren welke pakketten moeten worden gedownload en opgeslagen in de lokale repository. Het wordt aanbevolen om de lijst met RPM-namen uit de update-aanvraag (update request) in Bugzilla te kopiëren en te plakken. De packager (verpakker) die de update heeft aangevraagd, zou een complete lijst voor elke architectuur hebben moeten verstrekt, zoals vermeld in het Mageia Herzieningen-beleid. De vermeldingen moeten ten minste de pakketnaam (package name) en het volledige versienummer bevatten; de architectuur en de extensie .rpm worden automatisch gevonden als ze waren weggelaten.

Als u test binnen een VirtualBox-gast, is het handig om deze in te stellen op het gebruik van een bidirectioneel klembord. Hiermee kunt u de bug in de browser van de host oproepen, de pakketlijst uit de bug kopiëren en deze in de QA-repository van de gast plakken.

Synchroniseren en inschakelen van de lokale repository

Wanneer u wijzigingen aanbrengt in de bovenstaande selecties, verandert de knop Enable (inschakelen) in de GUI in een knop Update (bijwerken), en toont de statusregel onder het pakketselectievak Needs Update (bijwerken nodig). Dit geeft aan dat de lokale repository momenteel niet de pakketten bevat die u hebt geselecteerd. Klik op de knop Update om te beginnen met het downloaden van de gevraagde pakketten van de geselecteerde mirror (spiegelserver). Als dit lukt, verandert de knop Update weer in een (grijze) knop Enable; de statusregel luidt nu Enabled. Uw lokale repository is nu ingeschakeld en u kunt beginnen met het installeren van de updates en het testen.

Als u de software media manager (of urpmq –list-media) uitvoert, ziet u uw lokale repository verschijnen als QA Testing (32-bit) of QA Testing (64-bit), afhankelijk van de architectuur die u hebt geselecteerd. Er zijn geen submedia in de lokale repository – alle geselecteerde pakketten worden in één medium opgeslagen, ongeacht van welke media ze zijn gedownload.

Als de synchronisatie mislukt, wordt een pop-up dialoog weergegeven met de reden voor de mislukking en de statusregel toont Update failed. Probeer het probleem te verhelpen (bijvoorbeeld een verkeerd getypte pakketnaam) en klik op de knop Update om het opnieuw te proberen.

De knop Clear biedt een snelle manier om het pakketselectievak te wissen voordat u een nieuwe lijst met pakketten plakt. Let op dat de knop alleen het tekstvak leegmaakt – de lokale repository blijft ongewijzigd totdat u op de knop Update klikt.

Wanneer u op de knop Update klikt, worden alle pakketten die momenteel niet in het pakketselectievakje staan, uit de lokale repository verwijderd.

De lokale repository uitschakelen

Zodra de lokale repository (pakketdepot) is ingeschakeld, is de knop Disable niet langer grijs. Als u op de knop Disable klikt, wordt uw lokale repository uitgeschakeld en verwijderd uit de lijst met bekende softwaremedia, en wordt de statusregel onder het pakketselectievakje Disabled weergegeven. De lokale repository blijft echter intact en kan opnieuw worden ingeschakeld door op de knop Enable te klikken.

Pakketten downgraden na het testen

Zodra u klaar bent met het testen van een bepaalde update, wilt u de wijzigingen die u in uw testsysteem hebt aangebracht terugdraaien, zodat ze geen invloed hebben op latere tests. Als u op de knop Downgrade klikt, verschijnt er een pop-up dialoog met een opdracht die u kunt uitvoeren om automatisch alle pakketten te downgraden die momenteel in het pakketselectievak staan ​​en die op uw systeem zijn geïnstalleerd. Dit schakelt ook automatisch uw lokale repository uit als u dat nog niet hebt gedaan.

De downgrade vervangt de vermelde pakketten met de nieuwste versies die beschikbaar zijn in uw momenteel ingeschakelde urpmi-media. Controleer de lijst met pakketten waarvan urpmi aankondigt dat het op het punt staat ze te vervangen, gewoon om er zeker van te zijn dat urpmi niet iets doet wat het niet zou moeten doen.

Dual architecture testing

Soms wilt u wellicht tegelijkertijd zowel 32-bits als 64-bits pakketten testen. Selecteer hiervoor eerst de i586-architectuur en maak en activeer een lokale repository voor de 32-bits pakketten. Selecteer vervolgens de x86_64-architectuur en maak en activeer een lokale repository voor de 64-bits pakketten. Als u de software media manager (of urpmq –list-media) uitvoert, ziet u zowel QA Testing (32-bit) als QA Testing (64-bit) in de lijst.

U kunt vrij schakelen tussen architecturen in het gereedschap QA Repo. Deze geeft altijd de status van de repository weer voor de momenteel geselecteerde architectuur.

Vergeet niet om de repository voor beide architecturen uit te schakelen wanneer u klaar bent met testen.

Extra controles

Als u updates_testing media hebt ingeschakeld wanneer u op de knoppen Enable, Update of Download klikt, verschijnt er een pop-up dialoog waarin u wordt gevraagd die media uit te schakelen voordat u het opnieuw probeert.

Opgeslagen instellingen

Behalve de lijst met pakketten, worden alle hierboven beschreven selecties opgeslagen in het bestand ~/.qareporc wanneer u het gereedschap QA Repo afsluit; ze worden opnieuw geladen wanneer u QA Repo de volgende keer start. Bij het opnieuw opstarten, als uw lokale repository al bestaat (zelfs als deze is uitgeschakeld), wordt het pakketselectievak gevuld met de huidige inhoud van de repository.

Niet-standaardgebruik

Wanneer een grote update wordt voorbereid (zoals de grote Plasma-update voor Mageia 6), kan er een periode zijn waarin de lijst met te testen pakketten voortdurend verandert (omdat bugs worden gevonden en opgelost); intussen is er geen definitieve lijst in Bugzilla. Om testen in deze omstandigheden te vergemakkelijken, worden de volgende extra functies ondersteund:

1. RPM-namen kunnen eenvoudige jokers bevatten (? en *), waardoor groepen van pakketten met dezelfde naam kunnen worden geselecteerd met één invoer in het pakketselectievak.

2. De optie fuzzy version kan worden ingeschakeld, waardoor het versienummer in een RPM-naam automatisch wordt vervangen door een joker.

3. De optie add deps kan worden ingeschakeld, wat automatisch alle pakketafhankelijkheden toevoegt die kunnen worden gevonden in de updates_testing media.

Geen van deze functies mag worden gebruikt tijdens de laatste test en validatie van een updateverzoek, omdat ze het hoofddoel van de QA Repo tool tenietdoen.