Het ontwikkelen van een Repository Tool

Vaststelling

Op de afdeling System Engineering wordt software ontwikkeld, die helpt bij het configureren en beheren van satellietontvangers en -zenders . Zo werden programma’s geschreven die gaan van het controleren op het falen van bepaalde hardwarecomponenten tot het beheren van internettoegang voor klanten.

Probleemstelling

Voorlopig is er geen systeem waar men een overzicht vindt van welke softwareversie waar hoort, welke softwareversie werkt met welke, wie heeft die gemaakt, welke bugs erop bekend zijn, enzovoort. De broncode van verscheidene projecten wordt in CVS (Concurrent Versions System) geplaatst. Afhankelijk van de afdeling, worden sommige software componenten in CVS geplaatst, anderen op een NFS share of nog anderen op een Novell share.

Uitdaging

Succesvol gecreërde software, moet uiteindelijk op een software repository server terechtkomen. Eens de software geüpload is, mag men ze niet meer veranderen. Ze wordt enkel bereikbaar via de webinterface. Het is de bedoeling dat er een soort van grafische webinterface wordt gemaakt die de programmeurs de mogelijkheid biedt om software (onder de vorm van rpm’s, tar files, executables, ...) te kunnen uploaden. Die file(s) moet(en) kunnen worden gelinkt aan een bepaalde release. Releases moeten op hun beurt ook worden beheerd via de webinterface.
De uiteindelijke webinterface zal ook worden gebruikt om software te kunnen downloaden die op de server staat. Met een eenvoudige klik op de juiste release vindt de gebruiker de nodige software.

Vereiste

Wat moet er worden gerealiseerd? - de webinterface moet releases kunnen definiëren en creëren
- er moet een database draaien die bijhoudt welke software bij welke release hoort
- de webinterface moet software pakketten kunnen ontvangen
- software moet ook, na het selecteren van een release, van de server kunnen worden gehaald

HOE DE SITUATIE NU IS

Zo is het nu

Een deveoloper schrijft een bepaald stukje code. Die code wordt via een delivertool (eigenlijk is dat gewoon een soort van automatisch systeem dat de developers helpt tags plaatsen) in de CVS-server gestopt. Een buildtool haalt dan code uit CVS en creërt een uitvoerbaar bestand. Waar de RPM dan naar toe gaat hangt een beetje af van afdeling tot afdeling. Sommige plaatsen de RPM in CVS, andere op een NFS share, en nog andere op Novell share. Maw ... overal en nergens!

HOE DE SITUATIE ZAL ZIJN

Zo zal het zijn

Alles wordt nu op 1 enkele plaats opgeslaan. Er is nu een handige interface voorzien voor het opslaan van de software Dubbele RPM's zullen ook geweerd worden wat de schijfruimte ten goede komt. Het afhalen van de RPM's gebeurt ook heel simpel via de webinterface. Het is ook mogelijk om releases te bekijken.


>Terug