arbit - next generation project tracking - ... · integrating ci 8 / 38 i what does ci mean? i...

61
Arbit - next generation project tracking http://joind.in/1446 Kore Nordmann <[email protected]> @koredn May 14, 2010 http://kore-nordmann.de/portfolio.html Kore Nordmann <[email protected]>

Upload: others

Post on 18-Mar-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Arbit - next generation project trackinghttp://joind.in/1446

Kore Nordmann<[email protected]>

@koredn

May 14, 2010

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 2: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

About me 2 / 38

I Kore Nordmann, <[email protected]>

I Long time PHP developer

I Studies computer science in Dortmund, currently writingthesis

I Currently founding Qafoo ([email protected] / @qafoo)I Active open source developer:

I eZ Components (Graph, WebDav, Document), Arbit,PHPUnit, Torii, PHPillow, KaForkL, Image 3D, WCV, ...

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 3: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Outline 3 / 38

Introduction

Motivation

Current state

Architectural gems

Sub-Projects

The future

QA

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 4: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

What is arbit? 4 / 38

I An issue tracker on steroids.I A “project tracker”

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 5: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

What is arbit? 4 / 38

I An issue tracker on steroids.I A “project tracker”

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 6: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Outline 5 / 38

Introduction

Motivation

Current state

Architectural gems

Sub-Projects

The future

QA

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 7: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Motivation 6 / 38

I Yet another issue tracker - why?I There are already so many out there. . .

I TracI RedmineI MantisI JiraI BugzillaI FlysprayI . . .

I So, why develop another one?I Anybody got an idea?I What do you hate most about them?

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 8: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Motivation 6 / 38

I Yet another issue tracker - why?I There are already so many out there. . .

I TracI RedmineI MantisI JiraI BugzillaI FlysprayI . . .

I So, why develop another one?I Anybody got an idea?I What do you hate most about them?

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 9: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Motivation 6 / 38

I Yet another issue tracker - why?I There are already so many out there. . .

I TracI RedmineI MantisI JiraI BugzillaI FlysprayI . . .

I So, why develop another one?I Anybody got an idea?I What do you hate most about them?

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 10: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Motivation 6 / 38

I Yet another issue tracker - why?I There are already so many out there. . .

I TracI RedmineI MantisI JiraI BugzillaI FlysprayI . . .

I So, why develop another one?I Anybody got an idea?I What do you hate most about them?

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 11: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Initial roadmap 7 / 38

I Started in Februrary 2008I Primary development goals

I Clean extensible PHP codeI Native, easy multi-project supportI Modularized, for custom extensions

I Originally planned feature setI Issue tracker, wiki, source browsing, notifications, . . .I Integrate Continuous Integration (CI) with issue tracking

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 12: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Initial roadmap 7 / 38

I Started in Februrary 2008I Primary development goals

I Clean extensible PHP codeI Native, easy multi-project supportI Modularized, for custom extensions

I Originally planned feature setI Issue tracker, wiki, source browsing, notifications, . . .I Integrate Continuous Integration (CI) with issue tracking

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 13: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Initial roadmap 7 / 38

I Started in Februrary 2008I Primary development goals

I Clean extensible PHP codeI Native, easy multi-project supportI Modularized, for custom extensions

I Originally planned feature setI Issue tracker, wiki, source browsing, notifications, . . .I Integrate Continuous Integration (CI) with issue tracking

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 14: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Initial roadmap 7 / 38

I Started in Februrary 2008I Primary development goals

I Clean extensible PHP codeI Native, easy multi-project supportI Modularized, for custom extensions

I Originally planned feature setI Issue tracker, wiki, source browsing, notifications, . . .I Integrate Continuous Integration (CI) with issue tracking

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 15: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Initial roadmap 7 / 38

I Started in Februrary 2008I Primary development goals

I Clean extensible PHP codeI Native, easy multi-project supportI Modularized, for custom extensions

I Originally planned feature setI Issue tracker, wiki, source browsing, notifications, . . .I Integrate Continuous Integration (CI) with issue tracking

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 16: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Initial roadmap 7 / 38

I Started in Februrary 2008I Primary development goals

I Clean extensible PHP codeI Native, easy multi-project supportI Modularized, for custom extensions

I Originally planned feature setI Issue tracker, wiki, source browsing, notifications, . . .I Integrate Continuous Integration (CI) with issue tracking

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 17: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Initial roadmap 7 / 38

I Started in Februrary 2008I Primary development goals

I Clean extensible PHP codeI Native, easy multi-project supportI Modularized, for custom extensions

I Originally planned feature setI Issue tracker, wiki, source browsing, notifications, . . .I Integrate Continuous Integration (CI) with issue tracking

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 18: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Integrating CI 8 / 38

I What does CI mean?I Running tests on each commit / every hourI Analyze source code for defectsI Build releases on build successI Report failures

I We got all of this in Hudson, phpUnderControl, . . .I Benefits of integration with issue trackers

I Combine knowledge about bug statistics with source metricsI Know “everything” about a project at one glance

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 19: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Integrating CI 8 / 38

I What does CI mean?I Running tests on each commit / every hourI Analyze source code for defectsI Build releases on build successI Report failures

I We got all of this in Hudson, phpUnderControl, . . .I Benefits of integration with issue trackers

I Combine knowledge about bug statistics with source metricsI Know “everything” about a project at one glance

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 20: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Integrating CI 8 / 38

I What does CI mean?I Running tests on each commit / every hourI Analyze source code for defectsI Build releases on build successI Report failures

I We got all of this in Hudson, phpUnderControl, . . .I Benefits of integration with issue trackers

I Combine knowledge about bug statistics with source metricsI Know “everything” about a project at one glance

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 21: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Integrating CI 8 / 38

I What does CI mean?I Running tests on each commit / every hourI Analyze source code for defectsI Build releases on build successI Report failures

I We got all of this in Hudson, phpUnderControl, . . .I Benefits of integration with issue trackers

I Combine knowledge about bug statistics with source metricsI Know “everything” about a project at one glance

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 22: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Integrating CI 8 / 38

I What does CI mean?I Running tests on each commit / every hourI Analyze source code for defectsI Build releases on build successI Report failures

I We got all of this in Hudson, phpUnderControl, . . .I Benefits of integration with issue trackers

I Combine knowledge about bug statistics with source metricsI Know “everything” about a project at one glance

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 23: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Integrating CI 8 / 38

I What does CI mean?I Running tests on each commit / every hourI Analyze source code for defectsI Build releases on build successI Report failures

I We got all of this in Hudson, phpUnderControl, . . .I Benefits of integration with issue trackers

I Combine knowledge about bug statistics with source metricsI Know “everything” about a project at one glance

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 24: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Integrating CI 8 / 38

I What does CI mean?I Running tests on each commit / every hourI Analyze source code for defectsI Build releases on build successI Report failures

I We got all of this in Hudson, phpUnderControl, . . .I Benefits of integration with issue trackers

I Combine knowledge about bug statistics with source metricsI Know “everything” about a project at one glance

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 25: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Dashboard 9 / 38

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 26: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

CI in Arbit 10 / 38

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 27: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Outline 11 / 38

Introduction

Motivation

Current state

Architectural gems

Sub-Projects

The future

QA

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 28: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Dependencies 12 / 38

I PHP 5.3I CouchDB 0.9

I Alternative RDBMS backend (MySQL, PostgreSQL, . . . ) isbeing worked on

I Will probably use Doctrine 2

I InstallationI Download PHAR or archiveI Installation instructions: http://tracker.arbitracker.

org/arbit/documentation/view/InstallationGuide

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 29: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Dependencies 12 / 38

I PHP 5.3I CouchDB 0.9

I Alternative RDBMS backend (MySQL, PostgreSQL, . . . ) isbeing worked on

I Will probably use Doctrine 2

I InstallationI Download PHAR or archiveI Installation instructions: http://tracker.arbitracker.

org/arbit/documentation/view/InstallationGuide

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 30: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Contribute 13 / 38

I Already contributing:I Kore Nordmann (kore)I Jordi Boggiano (seldaek)I Manuel Pichler (mapi)I Arne Nordmann (norro)I Jakob Westhoff (jakob)I Hans-Christian Otto (hco)I Tobias Schlitt (toby)I Tobias Tom (tobias)

I We would love to welcome you in the community around arbit:http://arbitracker.org/arbit/participate.html

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 31: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Already working 14 / 38

I Issue tracker

I Wiki

I Source browser

I Source metrics rendering (phpDepend)

I API documentation renderingI Continuous Integration (CI) (experimental)

I PHPUnitI PHPCodeSnifferI phploc

I Demo!

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 32: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Already working 14 / 38

I Issue tracker

I Wiki

I Source browser

I Source metrics rendering (phpDepend)

I API documentation renderingI Continuous Integration (CI) (experimental)

I PHPUnitI PHPCodeSnifferI phploc

I Demo!

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 33: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Outline 15 / 38

Introduction

Motivation

Current state

Architectural gems

Sub-Projects

The future

QA

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 34: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Arbit basic architecture 16 / 38

Dispatcher

Request Parser

Controller

View

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 35: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Arbit basic architecture 17 / 38

Dispatcher

Request Parser

Controller

View

HTTP

CLI

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 36: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Arbit basic architecture 18 / 38

Dispatcher

Request Parser

Controller

View

Filter Persistent Login

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 37: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Arbit basic architecture 19 / 38

Dispatcher

Request Parser

Controller

View

Issue Model

Wiki Model

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 38: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Arbit basic architecture 20 / 38

Dispatcher

Request Parser

Controller

View

Issue Model

Wiki Model

Facade

CouchDB

RDBMS

PHPillow

Doctrine 2

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 39: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Arbit basic architecture 21 / 38

Dispatcher

Request Parser

Controller

View

View Model

HTML

EMail

XML

JSON

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 40: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Arbit basic architecture 22 / 38

Dispatcher

Request Parser

Controller

View

HTTP

CLI

Filter Persistent Login

Issue Model

Wiki Model

Facade

CouchDB

RDBMS

PHPillow

Doctrine 2View Model

HTML

EMail

XML

JSON

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 41: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Module communication 23 / 38

I How can modules communicate?I No hard dependencies.I New modules should be able to interact with existing ones.

I Signal Slot

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 42: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Module communication 23 / 38

I How can modules communicate?I No hard dependencies.I New modules should be able to interact with existing ones.

I Signal Slot

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 43: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Signal slot 24 / 38

1 <?php2

3 $hand l e r = new a r b i t S i g n a l S l o t ( ) ;4

5 $hand l e r−> r e g i s t e r ( ’ s i g n a lA ’ , ’myModule : : h a n d l e S i g n a l ’) ;

6 $hand l e r−> r e g i s t e r ( ’ s i g n a lA ’ , ’ yourModule : :h a n d l e S i g n a l ’ ) ;

7

8 // In module c9 $hand l e r−>emit ( ’ s i g n a lA ’ , ar ray ( /∗ data ∗/ ) ) ;

10

11 // Now a l l modules r e g i s t e r d f o r t h i s s i g n a l a r e c a l l e dwi th the p r o v i d ed dataa

12

13 ?>

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 44: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Practical example 25 / 38

I Inform other modules about source code updates

1 // modules / s ou r c e / c l a s s e s / c o n t r o l l e r . php +3002 i f ( $checkout−>update ( /∗ . . . ∗/ ) )3 {4 // . . .5 a r b i t S i g n a l S l o t : : emit (6 ’ sourceUpdated ’ ,7 new a rb i t Sou r c eUpda t edS t r u c t ( $checkout )8 ) ;9 }

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 45: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Practical example 26 / 38

I Other modules can specify signals to listen for

1 // modules / phpun i t / d e f i n i t i o n . php2 c l a s s a r b i tModu l ePhpun i tDe f i n t i o n ex t end s

a r b i tModu l eDe f i n t i o n3 {4 // . . .5 p r o t e c t e d $ p r o p e r t i e s = ar ray (6 // . . .7 ’ s l o t s ’ => ar ray (8 ’ sourceUpdated ’ => ’

a r b i tModu l ePhpun i tCon t r o l l e r : :sourceUpdated ’ ,

9 ) ,10 // . . .11 ) ;

I All signals can also be converted into notifications (mail,jabber, ...)

I Signals are sent for “everything”

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 46: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Practical example 26 / 38

I Other modules can specify signals to listen for

1 // modules / phpun i t / d e f i n i t i o n . php2 c l a s s a r b i tModu l ePhpun i tDe f i n t i o n ex t end s

a r b i tModu l eDe f i n t i o n3 {4 // . . .5 p r o t e c t e d $ p r o p e r t i e s = ar ray (6 // . . .7 ’ s l o t s ’ => ar ray (8 ’ sourceUpdated ’ => ’

a r b i tModu l ePhpun i tCon t r o l l e r : :sourceUpdated ’ ,

9 ) ,10 // . . .11 ) ;

I All signals can also be converted into notifications (mail,jabber, ...)

I Signals are sent for “everything”

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 47: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Practical example 26 / 38

I Other modules can specify signals to listen for

1 // modules / phpun i t / d e f i n i t i o n . php2 c l a s s a r b i tModu l ePhpun i tDe f i n t i o n ex t end s

a r b i tModu l eDe f i n t i o n3 {4 // . . .5 p r o t e c t e d $ p r o p e r t i e s = ar ray (6 // . . .7 ’ s l o t s ’ => ar ray (8 ’ sourceUpdated ’ => ’

a r b i tModu l ePhpun i tCon t r o l l e r : :sourceUpdated ’ ,

9 ) ,10 // . . .11 ) ;

I All signals can also be converted into notifications (mail,jabber, ...)

I Signals are sent for “everything”

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 48: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Signal handling of the CI module 27 / 38

Cron Sourcecall

update

CI

update

Cron CIcall

rebuildNewSource

Build $mod

rebuildNewSource

Cron Buildcall $mod

report buildFail

CI

reportbuildFail

(rebuild_on_update = true)

Cron CIcall

source:update

ci:trigger

$mod:trigger

ci:finished

rNS

Legend

Direct call from cron runner

Signal sent through singnal-slot-mechanism

Not shown:Signal ci:forceRebuild, which forces a rebuild in eachmodule without a build failure or source update.

Just any module interes-ted in source updates,if not already triggeredby the build module.

Continuous Integration

Manages and displaysmodule results.

General build module.Executes a ant / phingtasks and reportsaggregated results.

Source management,checking the VCS forsource updates.

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 49: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Outline 28 / 38

Introduction

Motivation

Current state

Architectural gems

Sub-Projects

The future

QA

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 50: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Periodic 29 / 38

I Task runner implemented in PHPI Can parse cron-tables (vixie-cron dialect)I Can handle parallel running cron tasks

I Design document:http://arbitracker.org/periodic/design.html

I Website: http://arbitracker.org/periodic.html

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 51: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

VCS-Wrapper 30 / 38

I Abstraction layer for version control system (VCS) read access

I Implements support for: SVN, CVS, Git, Mercurial, (Archives)I Interfaces reflect which features are supported in which VCSI Supports: History, diffs, blaming, listings, . . .

I Website: http://arbitracker.org/vcs_wrapper.html

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 52: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

PHPillow 31 / 38

I Lightweight PHP CouchDB libraryI Features

I Simple document validation constraintsI Automatic synchronization of viewsI Automatic versioning of documentsI couchdb-python compatible tool for dump and import

I Different connection handlersI PHP HTTP stream wrapperI Custom HTTP protocol implementation

I Website: http://arbitracker.org/phpillow.html

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 53: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

PHPillow 31 / 38

I Lightweight PHP CouchDB libraryI Features

I Simple document validation constraintsI Automatic synchronization of viewsI Automatic versioning of documentsI couchdb-python compatible tool for dump and import

I Different connection handlersI PHP HTTP stream wrapperI Custom HTTP protocol implementation

I Website: http://arbitracker.org/phpillow.html

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 54: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

PHPillow 31 / 38

I Lightweight PHP CouchDB libraryI Features

I Simple document validation constraintsI Automatic synchronization of viewsI Automatic versioning of documentsI couchdb-python compatible tool for dump and import

I Different connection handlersI PHP HTTP stream wrapperI Custom HTTP protocol implementation

I Website: http://arbitracker.org/phpillow.html

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 55: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Arbit installer 32 / 38

I Web installer for PHP projectsI Design phase just finished

I Results at: http://tracker.arbitracker.org/arbit/

development_wiki/view/InstallerI Please check if it would work for your application

I Major feature of next arbit release

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 56: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Outline 33 / 38

Introduction

Motivation

Current state

Architectural gems

Sub-Projects

The future

QA

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 57: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

The future 34 / 38

I Next important tasksI Implement easy-to-use web installerI Refactor and stabilize CI related modulesI Implement a RDBMS backend

I Current roadmap: http://tracker.arbitracker.org/

arbit/issue_tracker/roadmap

I Qafoo will provide commercial support / consulting / trainingfor arbit, once founded

I Will still stay a fully cummunity-driven Open-Source project

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 58: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Arbit feedback 35 / 38

I What would you like to see in arbit?I Special requirementsI Important features

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 59: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Outline 36 / 38

Introduction

Motivation

Current state

Architectural gems

Sub-Projects

The future

QA

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 60: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

Resources 37 / 38

I Website: http://arbitracker.org/news.html

I Issue tracker: http://tracker.arbitracker.org/

I CI: http://tracker.arbitracker.org/arbit/ci

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>

Page 61: Arbit - next generation project tracking - ... · Integrating CI 8 / 38 I What does CI mean? I Running tests on each commit / every hour I Analyze source code for defects I Build

The end 38 / 38

I Open questions?

I Further remarks?I Contact

I Mail: <[email protected]>I Web: http://kore-nordmann.de/ (Slides will be available

here soonish)I Twitter: http://twitter.com/korednI Comment: http://joind.in/1446

http://kore-nordmann.de/portfolio.html

Kore Nordmann <[email protected]>