Continuous Updating
Who I am? 
• Robert Reiz 
• Software Dev since 1998 
• I started VersionEye
What I do? 
• I write crawlers 
• I integrate Package Managers 
• I integrate SCMs
VersionEye 
Dependency Management 
• 445K Open Source Projects 
• 10 Package Managers 
• 3 SCMs
Why 
https://www.versioneye.com/statistics
Why
Why I want to stay 
up-to-date?
100 libraries per 
project in avg.
How do you keep track 
of your Dependencies?
Which Licenses are 
your dependencies 
using?
Are your dependencies 
still alive?
You don’t know ?
Every dependency is a 
risk factor.
15 years ago we used to work with the WATERFALL MODEL 
Requirements 
Analysis 
Design 
Coding 
Testing 
Accepting
But today we are AGILE
Everything the Waterfall Model used 
to execute in one year ... 
! 
... we nowadays execute in 2 weeks!
The way we develop software 
today totally changed!
Being AGILE got us 
CONTINUOUS Testing 
CONTINUOUS Refactoring 
CONTINUOUS Integration 
CONTINUOUS Delivery 
CONTINUOUS Deployment
But what about 
Continuous Updating?
Why should I care about 
Continuous Updating?
Core committers don’t release 
new versions just for fun!
They always have good reasons 
• Bug Fixes 
• Security Fixes 
• Speed & Memory optimization 
• New Features
If you can't fly then run, 
if you can't run then walk, 
if you can't walk then 
crawl, 
but whatever you do 
you have to keep moving 
forward. 
Martin Luther King Jr.
How do you ensure that new 
versions don’t break the system?
Semantic Versioning 
Migration Paths 
Continuous Testing
http://semver.org/
MAJOR.MINOR.PATCH 
1.MAJOR version when you make incompatible API changes 
2.MINOR version when you add functionality in a backwards-compatible manner 
3.PATCH version when you make backwards-compatible bug fixes.
Always follow the 
MIGRATION PATH
Many small steps are 
better than one big step 
! 
You can do SMALL MIGRATIONS on the fly. 
! 
BIG MIGRATIONS are risky and expensive. 
! 
If you miss versions, you miss migration paths, too. 
And that leads to TROUBLE!
Don’t miss migration paths! 
migrate migrate migrate 
1 2 3 4 
big migration … expensive!
Always run your TESTS against new versions
2.245.022 New Releases
New$Releases$ 
Major# Minor/Patch# 
6%# 
94%#
94% of all new releases are 
harmless and you can update 
without doubt.
Another reason for being current
Do you really believe 
those young talents 
wanna work with 
COBOL? 
Or other OLD SHIT?
Tracking versions is a pain!
SOFTWARE LIBRARIES 
are NOT like iPhone 
Apps!
100 libraries per 
project in avg. 
After 2 weeks the first libraries are OUT-DATED!
Developers are missing critical BUG FIXES 
and important UPDATES!
Manually checking for 
updates is no fun! 
! 
It cost TIME & MONEY! 
! 
NOBODY WANTS TO DO IT!
So, how do you wanna solve this 
PROBLEM
You have to 
AUTOMATE
You need a TOOL for that!
GemNotifier Gemnasium VersionEye 
Languages Ruby Ruby, Node.JS, 
Python 22 Languages 
GitHub no yes yes 
Bitbucket no no yes 
File upload no no yes 
URL parsing no no yes 
Changelogs no yes in progress 
Security no yes in progress 
Licenses no no yes 
API no no yes
www.VersionEye.com 
Keeps an eye on more than 445K open source libraries! 
Supports 22 Languages and 10 Package Managers! 
Integrated with GitHub, Bitbucket, Stash. 
Open REST JSON API.
Are your dependencies 
still alive?
KPIs
Heat-map for 
dead / alive 
Dependencies
Tags / Labels
Which Licenses are 
your dependencies 
using?
License Whitelist
DEMO
https://www.versioneye.com/api
M2 
VersionEye 
Enterprise 
VM 
VersionEye.com 
CI 
Intranet 
E-Mail 
data sync 
SCM 
VersionEye Enterprise 
Updates via Docker Containers
Questions? 
@RobertReiz #ContinuousUpdating

Continuous Updating with VersionEye at code.talks 2014