Software Configuration Management Plan GameTrac Versie Datum Auteur(s) Opmerking 0.1 31/10/2010 Tom Strickx Template 0.2 31/10/2010 Tom Strickx First draft 1
Door hieronder te tekenen verklaart u akkoord te zijn met dit document en zijn inhoud. Het team Tom Strickx Brecht Van Laethem Bram Bruyninckx Roeland Matthijssens Gil Moeremans Goedele Van kerkhoven 2
Inhoudsopgave 1 Inleiding 4 1.1 Acroniemen...................................... 4 1.2 Termen......................................... 4 2 Software Configuration Management 4 2.1 Organisatie....................................... 4 2.2 SCM Verantwoordelijkheden.............................. 4 2.2.1 Configuration management.......................... 4 2.2.2 Project Manager................................ 4 2.2.3 Team leden................................... 5 2.3 Toepasbare Regels, Richtlijnen en Procedures..................... 5 3 SCM Activiteiten 5 3.1 Configuration Identificatie............................... 5 3.1.1 Identificeren van Configuration Items..................... 5 3.1.2 Naamgeving van Configuration Items..................... 5 3.1.3 Vergrendeling van Configuration Items.................... 6 3.2 Configuration Control................................. 6 3.2.1 Wijzigingen Aanvragen............................. 6 3.2.2 Wijzigingen evalueren............................. 6 3.2.3 Goedkeuren of afkeuren van wijzigingen.................... 6 3.2.4 Implementatie van wijzigingen......................... 6 3.3 Configuration status boekhouding........................... 6 3.4 Configuration verificatie en verslag.......................... 6 3.5 Interface Control.................................... 6 4 SCM Middelen 7 4.1 Utilities......................................... 7 5 SCM Plan Onderhoud 7 3
1 Inleiding 1.1 Acroniemen CI: configuration item - een object gevolgd door het configuratiesysteem SCM: software configuration management - het proces van data (code en rapporten) van het project te onderhouden CM: configuration manager SCMP: het Sofware Configuration Management Plan (dit document) SE: Software Engineering 1.2 Termen Approved CIs: CIs goedgekeurd door project management Repository clone: Het klonen van een remote repository naar een lokale kopie Repository pull: Een local repository updaten met een nieuwe versie van de remote repository Repository push: Een remote repository updaten met een nieuwe versie van de local repository 2 Software Configuration Management 2.1 Organisatie Een specifiek lid van de Software Engineering groep word aangesteld als de configuration manager voor de duur van het project. 2.2 SCM Verantwoordelijkheden 2.2.1 Configuration management De configuration manager is verantwoordelijk voor het organizeren en onderhouden van het configuration management. Het is zijn job om het team op de hoogte te houden van de status van de repository. Wanneer mogelijk zal de configuratie leider toekomstige plannen voor het SCM voorleggen aan het team, alvorens ze te implementeren. Wanneer er problemen opduiken is het de CM toegestaan onmiddelijk in te grijpen, zonder toestemming van het team. Dit document (SCMP) zal tevens onderhouden worden door de configuration manager. 2.2.2 Project Manager Slechts onder uitzonderlijke omstandigheden zal de project manager de functie van de configuration manager overnemen. Om dit te verzekeren moet de project manager zich bekwamen in de werking van de repository. 4
2.2.3 Team leden Elk teamlid moet zich houden aan de SCM regels, opgelegd door de configuration manager. 2.3 Toepasbare Regels, Richtlijnen en Procedures 1. Alle huidige en vorige uigegeven versies van CIs worden behouden. 2. Slechts leden van de SE groep hebben de mogelijkheid om de CIs aan te passen. Om dit te verzekeren hebben enkel leden van de groep schrijfrechten op de repository. 3. CM wachtwoorden kunnen slechts aangepast worden na toestemming van alle leden. 4. Elk teamlid moet volledige toegang hebben tot alle bestanden, tenzij de implementation manager toestemming heeft gegeven om een bestand te blokkeren. 5. Het GameTrac project zal gebruik maken van Git, een gratis gedistribueerd revisie versie controle systeem, ontworpen en ontwikkeld door Linus Torvalds voor Linux Kernel ontwikkeling 3 SCM Activiteiten 3.1 Configuration Identificatie 3.1.1 Identificeren van Configuration Items Er is een repository beschikbaar: repository. Deze bevat alle documenten en source code voor zowel het project als de website. Code De implementation manager is verantwoordelijk voor het identificeren van nieuwe CIs. Team leden die nieuwe CIs willen toevoegen dienen zijn akkoord te verkrijgen via email of via een andere weg. Indien de implementation manager afwezig is voor meer dan 3 dagen na de email, dan kan het team lid de project manager contacteren. Andere zaken Elk lid kan een ander CI identificeren. Indien een ander lid het hiermee niet eens is, zal dit besproken worden op de volgende vergadering. 3.1.2 Naamgeving van Configuration Items Code Het volgende protocol moet gerespecteerd worden, tenzij het anders vermeld wordt door de implementation manager. html: De html bestanden dienen zich onder repository/src/web/ te bevinden Python: Alle python bestanden verantwoordelijk voor de controle dienen zich onder repository/src/control/ te bevinden. model: De bestanden die instaan voor het database model dienen zich in repository/src/model/ te bevinden. view: De Python bestanden verantwoordelijk voor de view bevinden zich in repository/src/view/. 5
Andere zaken Alle rapporten dienen de juiste naam te dragen in de juiste folder, afhankelijk van het type rapport. 3.1.3 Vergrendeling van Configuration Items Indien een teamlid een configuratie item wenst te vergrendelen, dienen alle team leden hiervan op de hoogte gesteld te worden, en toestemming dient gegeven te worden door de implementation manager. Indien de implementation manager langer afwezig is dan 1 dag, dan kan de configuration manager hiervoor ook toestemming geven. Indien er problemen zijn met bestanden, dan kunnen zowel de configuration manager als de implementation manager de bestanden vergrendelen, zonder het team hiervan op de hoogte te brengen, of toestemming te vragen. 3.2 Configuration Control 3.2.1 Wijzigingen Aanvragen Het staat elk teamlid vrij om code die hijzelf heeft geimplementeerd te wijzigen, indien dit niet het design aanpast. Aanpassingen aan het design dienen besproken te worden met de implementation en design manager. Indien een team lid code wil wijzigen van een ander team lid, dan zal hij/zij hiervoor toestemming moeten vragen aan de schrijver van de code en de implementation manager. 3.2.2 Wijzigingen evalueren Wijzigingen worden nagekeken door de Implementation manager. 3.2.3 Goedkeuren of afkeuren van wijzigingen Nadat wijzigingen zijn gepusht kunnen de implementation manager en of de quality assurance manager je vragen om de implementatie te wijzigen. Dit houdt wijzigingen in design, performantie, syntax en dergelijke in. Andere teamleden kunnen ook wijzigingen aanvragen, wanneer er disussie is over de code, dan heeft de implementation manager hierover het laatste woord. 3.2.4 Implementatie van wijzigingen Nadat wijzigingen gepusht zijn naar de publieke repository, dan moet het verantwoordelijke teamlid de rest van het team verwittigen in verband met de aanpassingen die zijn uitgevoerd. 3.3 Configuration status boekhouding De status van de repository kan steeds nagekeken worden met git status 3.4 Configuration verificatie en verslag Minstens 1 keer per 2 weken moet de CM de repository nakijken, en hierover verslag uitbrengen op de vergadering 3.5 Interface Control Trac is gelinkt aan de repository. De webmaster zorgt ervoor dat de Trac website bereikbaar is. 6
4 SCM Middelen 4.1 Utilities 1 Git repository op de wilma server De Git webinterface via Trac De repo post-update scripts die zorgen voor backups na elke commit De repo post-update scripts dat zorgt voor een notificatie in het irc kanaal. 5 SCM Plan Onderhoud Dit document zal gewijzigd worden als er nieuwe regels worden opgelegd, of wanneer de regels moeten gewijzigd worden. Het team wordt op de hoogte gebracht wanneer wijzigingen worden aangebracht. Wijzigingen kunnen steeds voorgesteld worden op de vergadering. 7