SlideShare uma empresa Scribd logo
1 de 21
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
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
DLR
German Aerospace Center




   Research Institution
   Space Agency
   Project Management Agency




                                              Slide 3
                               Remidi 09 > 13 July 2009
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Q&A
Questions and maybe Answers




                                           Slide 21
                              Remidi 09 > 13 July 2009

Mais conteúdo relacionado

Semelhante a RepoGuard

Codecoon - A technical Case Study
Codecoon - A technical Case StudyCodecoon - A technical Case Study
Codecoon - A technical Case StudyMichael Lihs
 
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ...
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ..."Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ...
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ...Fwdays
 
Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0Jasmine Conseil
 
Prometheus for Monitoring Metrics (Fermilab 2018)
Prometheus for Monitoring Metrics (Fermilab 2018)Prometheus for Monitoring Metrics (Fermilab 2018)
Prometheus for Monitoring Metrics (Fermilab 2018)Brian Brazil
 
ABN AMRO DevSecOps Journey
ABN AMRO DevSecOps JourneyABN AMRO DevSecOps Journey
ABN AMRO DevSecOps JourneyDerek E. Weeks
 
Monitoring Your AWS Cloud Infrastructure
Monitoring Your AWS Cloud InfrastructureMonitoring Your AWS Cloud Infrastructure
Monitoring Your AWS Cloud InfrastructureNewvewm
 
SDLC & DevOps Transformation with Agile
SDLC & DevOps Transformation with AgileSDLC & DevOps Transformation with Agile
SDLC & DevOps Transformation with AgileAbdel Moneim Emad
 
Continuous Integration using Cruise Control
Continuous Integration using Cruise ControlContinuous Integration using Cruise Control
Continuous Integration using Cruise Controlelliando dias
 
Continuous Delivery for Python Developers – PyCon Otto
Continuous Delivery for Python Developers – PyCon OttoContinuous Delivery for Python Developers – PyCon Otto
Continuous Delivery for Python Developers – PyCon OttoPeter Bittner
 
Dev ops essentials v2
Dev ops essentials v2Dev ops essentials v2
Dev ops essentials v2Anand Rao
 
Ship code like a keptn
Ship code like a keptnShip code like a keptn
Ship code like a keptnRob Jahn
 
Ci tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepinsCi tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepinsLinards Liep
 
Code instrumentation
Code instrumentationCode instrumentation
Code instrumentationMennan Tekbir
 
Continuous testing - GUERLAIS ARGOT - Air France KLM Sogeti- Soirée du Test L...
Continuous testing - GUERLAIS ARGOT - Air France KLM Sogeti- Soirée du Test L...Continuous testing - GUERLAIS ARGOT - Air France KLM Sogeti- Soirée du Test L...
Continuous testing - GUERLAIS ARGOT - Air France KLM Sogeti- Soirée du Test L...TelecomValley
 
Cloud Native Development
Cloud Native DevelopmentCloud Native Development
Cloud Native DevelopmentManuel Garcia
 
Webcast Automação Implantação de Aplicações (DevOps)
Webcast Automação Implantação de Aplicações (DevOps)Webcast Automação Implantação de Aplicações (DevOps)
Webcast Automação Implantação de Aplicações (DevOps)Felipe Freire
 
Continuous Delivery (Internet-Briefing 2012-04-03)
Continuous Delivery (Internet-Briefing 2012-04-03)Continuous Delivery (Internet-Briefing 2012-04-03)
Continuous Delivery (Internet-Briefing 2012-04-03)Netcetera
 

Semelhante a RepoGuard (20)

Codecoon - A technical Case Study
Codecoon - A technical Case StudyCodecoon - A technical Case Study
Codecoon - A technical Case Study
 
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ...
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ..."Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ...
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ...
 
Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0
 
Mdsd slides
Mdsd slidesMdsd slides
Mdsd slides
 
Prometheus for Monitoring Metrics (Fermilab 2018)
Prometheus for Monitoring Metrics (Fermilab 2018)Prometheus for Monitoring Metrics (Fermilab 2018)
Prometheus for Monitoring Metrics (Fermilab 2018)
 
ABN AMRO DevSecOps Journey
ABN AMRO DevSecOps JourneyABN AMRO DevSecOps Journey
ABN AMRO DevSecOps Journey
 
Monitoring Your AWS Cloud Infrastructure
Monitoring Your AWS Cloud InfrastructureMonitoring Your AWS Cloud Infrastructure
Monitoring Your AWS Cloud Infrastructure
 
SDLC & DevOps Transformation with Agile
SDLC & DevOps Transformation with AgileSDLC & DevOps Transformation with Agile
SDLC & DevOps Transformation with Agile
 
Continuous Integration using Cruise Control
Continuous Integration using Cruise ControlContinuous Integration using Cruise Control
Continuous Integration using Cruise Control
 
Continuous Delivery for Python Developers – PyCon Otto
Continuous Delivery for Python Developers – PyCon OttoContinuous Delivery for Python Developers – PyCon Otto
Continuous Delivery for Python Developers – PyCon Otto
 
Dev ops essentials v2
Dev ops essentials v2Dev ops essentials v2
Dev ops essentials v2
 
Ship code like a keptn
Ship code like a keptnShip code like a keptn
Ship code like a keptn
 
vinay-mittal-new
vinay-mittal-newvinay-mittal-new
vinay-mittal-new
 
Ci tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepinsCi tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepins
 
Code instrumentation
Code instrumentationCode instrumentation
Code instrumentation
 
Continuous testing - GUERLAIS ARGOT - Air France KLM Sogeti- Soirée du Test L...
Continuous testing - GUERLAIS ARGOT - Air France KLM Sogeti- Soirée du Test L...Continuous testing - GUERLAIS ARGOT - Air France KLM Sogeti- Soirée du Test L...
Continuous testing - GUERLAIS ARGOT - Air France KLM Sogeti- Soirée du Test L...
 
Cloud Native Development
Cloud Native DevelopmentCloud Native Development
Cloud Native Development
 
Webcast Automação Implantação de Aplicações (DevOps)
Webcast Automação Implantação de Aplicações (DevOps)Webcast Automação Implantação de Aplicações (DevOps)
Webcast Automação Implantação de Aplicações (DevOps)
 
Continuous Delivery (Internet-Briefing 2012-04-03)
Continuous Delivery (Internet-Briefing 2012-04-03)Continuous Delivery (Internet-Briefing 2012-04-03)
Continuous Delivery (Internet-Briefing 2012-04-03)
 
Coding Naked
Coding NakedCoding Naked
Coding Naked
 

Último

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 

Último (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 

RepoGuard

  • 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. 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. DLR German Aerospace Center Research Institution Space Agency Project Management Agency Slide 3 Remidi 09 > 13 July 2009
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Q&A Questions and maybe Answers Slide 21 Remidi 09 > 13 July 2009