Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

RepoGuard

2,212 views

Published on

Overview Prasentation of RepoGuard on the ICGSE Conference.

Published in: Technology, Business

RepoGuard

  1. 1. RepoGuard Validation Framework for Version Control Systems Remidi09 (2009-07-13, Limerick) Malte Legenhausen, Stefan Pielicke German Aerospace Center (DLR), Cologne http://www.dlr.de/sc Slide 1 Remidi09 > 2009-07-13
  2. 2. Outline Software development at the DLR • Facts, Scientific Software Development Problems Motivation RepoGuard • Architecture, Workflow, Configuration Conclusion Benefits, Q&A Slide 2 Remidi 09 > 13 July 2009
  3. 3. DLR German Aerospace Center Research Institution Space Agency Project Management Agency Slide 3 Remidi 09 > 13 July 2009
  4. 4. Locations and employees 6000 employees across  Hamburg 29 research institutes and Bremen-   Neustrelitz Trauen  facilities at Berlin-  Braunschweig   13 sites.  Goettingen Offices in Brussels, Paris and Washington.  Koeln  Bonn  Lampoldshausen  Stuttgart  Oberpfaffenhofen Weilheim  Slide 4 Remidi 09 > 13 July 2009
  5. 5. Distributed Systems and Component Software About Us Main Departement for Software Engineering Grid-Computing Development of Grid-enabled applications Grid security … Management Tools for scientific data Expert systems for computational fluid dynamics Data management tool DataFinder … Software Engineering … Provide Infrastructure for Software Engineering Slide 5 Remidi 09 > 13 July 2009
  6. 6. Scientific Software Development Daily Observations in Research Institutions… Lots of scientists work on large/critical software Mathematicians, physicists, engineers Main Goal: Fast implementation of ideas into running code Knowledge about Software Engineering varies a lot Use of archaic tools and procedures Typical situation: Small scripts grow large Very different team sizes From 1 student to >50 developers Slide 6 Remidi 09 > 13 July 2009
  7. 7. Motivation Different Approaches to Change the Situation First: Training Knowing how to do it right BUT: Developers are like cats Second Approach: Force Need to do it right Slide 7 Remidi 09 > 13 July 2009
  8. 8. Motivation Loosely coupled Development Tools IDE Repository Wiki Browser VCS RepoGuard Bug Tracker All Tools are… Open Source Continuous E-Mail Replaceable Integration Slide 8 Remidi 09 > 13 July 2009
  9. 9. Automatic Server Side Transaction Check What does RepoGuard do? Writes code Commits  The Tao of Source Control: Developer Check failed VCS “If it’s not in the repository, it doesn’t exist.” RepoGuard Feedback Pre-commit execution Checks Slide 9 Remidi 09 > 13 July 2009
  10. 10. RepoGuard What is RepoGuard exactly? Validation framework for VCS Validation before storing changes Provides a unified interface for validation and reporting Easy access to the transaction and external tools Links everything to your VCS Most developer tools are loosely coupled Written in Python Easy and powerful Slide 10 Remidi 09 > 13 July 2009
  11. 11. Architecture Version Control Project - Editor System Configuration Hook Script Transaction Exit-Code RepoGuard Checks Result Handler Code Analysis Positive Mail Access Rights Negative RSS External ● ● ● External ● ● ● Tools ● ● ● Tools Checkstyle Slide 11 Remidi 09 > 13 July 2009
  12. 12. Checks What can be checked… Everything that is related to a transaction Validate Transactional Content Coding Style: Pylint, Checkstyle, ASCII Encoded, … Source Code Analysis: Findbugs, QA C/C++, … XML, HTML, … Validate External Information Bug/Issue Ids Extending VCS Access Rights Slide 12 Remidi 09 > 13 July 2009
  13. 13. Handler What is possible… Handler as reporter E-Mail Log File Console Database Bug Tracking System RSS Feeds Blog post Twitter Handler as trigger Hudson ViewVC Slide 13 Remidi 09 > 13 July 2009
  14. 14. Modularized Architecture Integrate whatever you want… Checks Create your own validation routines Handlers Create your own reporting or trigger routines Bug Tracking Systems Specialized interface for BTS integration Version Control Systems No special VCS required Support of VCS extensible Slide 14 Remidi 09 > 13 July 2009
  15. 15. Order of Check Executions Things you should know in advance Checks are linked as a workflow Results of the check can be “Success” or “Error” and a message “Error” check results can be translated to… Warning: Check is optional Delayed Error: Continue workflow execution Error: Abort workflow execution All results stored in a protocol Final result of the protocol determines whether the transaction is accepted or rejected Final result handled by „Success“ or „Error“ Handlers Slide 15 Remidi 09 > 13 July 2009
  16. 16. Workflow Execution of Checks andContent of Remidi09.java: Rights for Remidi09.java: Handlers forAccess Commit message: Keywords set Remidi09.java: MANTIS ID 42 Remidi09 Permissionvoid main(){}} class Id { static denied IDE RepoGuardLastChangedRevision Something to commit e.g. Eclipse Mantis Keywords AccessRights Checkstyle Error Success Warnung Error Warning DelayedError Error Succes-Handler Error-Handler Mantis Console E-Mail E-Mail Hudson Log File Slide 16 Remidi 09 > 13 July 2009
  17. 17. Configuration Configuration of the Workflow, Checks and Handlers All in one rich property file Key-Value-Pairs arranged in groups and subgroups Validation of Configuration Validation before using in a productive environment Configuration Templates Reduce your overhead between configurations Configuration hierarchy Inheritance mechanism Slide 17 Remidi 09 > 13 July 2009
  18. 18. Command Line Tool Easy Use of RepoGuard Administration Easy installation and removal of RepoGuard in repositories Validation of Configuration Validate your configuration file before using in a productive environment Configuration support Extensible Command Line Tool Integrate new functionality for RepoGuard configuration Slide 18 Remidi 09 > 13 July 2009
  19. 19. Benefits of RepoGuard Why you should use it! Better integration of Version Control in the development process Especially the connectivity to the Bug Tracking System Stay informed about what happens in your Repository Reporting over all communication channels possible Keeping your repository under surveillance Detection and rejection of mistakes Increase of the overall source code quality Turn your developers into well-behaved cats Slide 19 Remidi 09 > 13 July 2009
  20. 20. Conclusion Where can I get it? Availability Open-Source (Apache License V2.0) More information and download at… http://repoguard.tigris.org Contact Malte.Legenhausen@dlr.de, Stefan.Pielicke@dlr.de Slide 20 Remidi 09 > 13 July 2009
  21. 21. Q&A Questions and maybe Answers Slide 21 Remidi 09 > 13 July 2009

×