repoguard

21
Remidi09 > 2009-07-13 Slide 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

Upload: mlegenhausen

Post on 13-Jan-2015

1.592 views

Category:

Technology


0 download

DESCRIPTION

Overview Prasentation of RepoGuard on the ICGSE Conference.

TRANSCRIPT

Page 1: RepoGuard

Remidi09 > 2009-07-13

Slide 1

RepoGuardValidation Framework for Version Control Systems

Remidi09 (2009-07-13, Limerick)

Malte Legenhausen, Stefan Pielicke

German Aerospace Center (DLR), Cologne

http://www.dlr.de/sc

Page 2: RepoGuard

Remidi 09 > 13 July 2009

Slide 2

Outline

Software development at the DLR

• Facts, Scientific Software Development

Problems

• Motivation

RepoGuard

• Architecture, Workflow, Configuration

Conclusion

• Benefits, Q&A

Page 3: RepoGuard

Remidi 09 > 13 July 2009

Slide 3

DLRGerman Aerospace Center

Research InstitutionSpace AgencyProject Management Agency

Page 4: RepoGuard

Remidi 09 > 13 July 2009

Slide 4

Koeln

Lampoldshausen

Stuttgart

Oberpfaffenhofen

Braunschweig

Goettingen

Berlin-

Bonn

Trauen

Hamburg

Neustrelitz

Weilheim

Bremen-

Locations and employees

6000 employees across 29 research institutes and facilities at

13 sites.

Offices in Brussels, Paris and Washington.

Page 5: RepoGuard

Remidi 09 > 13 July 2009

Slide 5

Distributed Systems and Component SoftwareAbout 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

Page 6: RepoGuard

Remidi 09 > 13 July 2009

Slide 6

Scientific Software DevelopmentDaily 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

Page 7: RepoGuard

Remidi 09 > 13 July 2009

Slide 7

MotivationDifferent 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

Page 8: RepoGuard

Remidi 09 > 13 July 2009

Slide 8

MotivationLoosely coupled Development Tools

IDE Repository Browser

Wiki

Bug Tracker

E-MailContinuous Integration

RepoGuardVCS

All Tools are…

Open Source Replaceable

Page 9: RepoGuard

Remidi 09 > 13 July 2009

Slide 9

Automatic Server Side Transaction CheckWhat does RepoGuard do?

Commits

VCS

Feedback

Developer

Checks

RepoGuardPre-commit

execution

Writes code

Check failed

The Tao of Source Control:

“If it’s not in the repository, it doesn’t exist.”

The Tao of Source Control:

“If it’s not in the repository, it doesn’t exist.”

Page 10: RepoGuard

Remidi 09 > 13 July 2009

Slide 10

RepoGuardWhat 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

Page 11: RepoGuard

Remidi 09 > 13 July 2009

Slide 11

Architecture

RepoGuardRepoGuard

Editor

Transaction

Checks

Code Analysis

Access Rights

Handler

Mail

RSS

Exit-Code

●●●

●●●

Version Control System

Version Control System

Hook ScriptHook Script

ExternalTools

Project -Configuration

Result

Positive

Negative

●●●

ExternalTools

Checkstyle

Page 12: RepoGuard

Remidi 09 > 13 July 2009

Slide 12

ChecksWhat 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

Page 13: RepoGuard

Remidi 09 > 13 July 2009

Slide 13

HandlerWhat is possible…

Handler as reporter

E-Mail

Log File

Console

Database

Bug Tracking System

RSS Feeds

Blog post

Twitter

Handler as trigger

Hudson

ViewVC

Page 14: RepoGuard

Remidi 09 > 13 July 2009

Slide 14

Modularized ArchitectureIntegrate 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

Page 15: RepoGuard

Remidi 09 > 13 July 2009

Slide 15

Order of Check ExecutionsThings 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

Page 16: RepoGuard

Remidi 09 > 13 July 2009

Slide 16

Console

E-Mail

Log File

Mantis

IDEe.g. Eclipse

WorkflowExecution of Checks and Handlers

Keywords Checkstyle

E-Mail

Hudson

Mantis

Warnung

AccessRights

RepoGuard

Error ErrorSuccess Warning DelayedError Error

Commit message:

MANTIS ID 42Something to commit

Keywords set for Remidi09.java:

IdLastChangedRevision

Access Rights for Remidi09.java:

Permission denied

Content of Remidi09.java:

class Remidi09 { static void main(){}}

Succes-Handler Error-Handler

Page 17: RepoGuard

Remidi 09 > 13 July 2009

Slide 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

Page 18: RepoGuard

Remidi 09 > 13 July 2009

Slide 18

Command Line ToolEasy 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

Page 19: RepoGuard

Remidi 09 > 13 July 2009

Slide 19

Benefits of RepoGuardWhy 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

Page 20: RepoGuard

Remidi 09 > 13 July 2009

Slide 20

ConclusionWhere can I get it?

Availability

Open-Source (Apache License V2.0)

More information and download at…

http://repoguard.tigris.org

Contact

[email protected], [email protected]

Page 21: RepoGuard

Remidi 09 > 13 July 2009

Slide 21

Q&AQuestions and maybe Answers