Never a Wrong (Semantic) Version Again! - Ferry Huberts
-
Upload
mfrancis -
Category
Technology
-
view
511 -
download
2
description
Transcript of Never a Wrong (Semantic) Version Again! - Ferry Huberts
Never A Wrong
(Semantic) Version Again!
bndtools
2/14
About Me
● Ferry Huberts M.Sc.● Open Source Entrepreneur (pelagic.nl)
● Member of the bnd / bndtools team● Contributor in several other projects
– Like olsrd, cgit
3/14
Meaning of Semantic
se·man·ticadjective \si- man-tik\ˈ
Origin of SEMANTIC
Greek sēmantikos significant, from sēmainein to signify, mean, from sēma sign, token
* From http://www.merriam-webster.com/dictionary.
4/14
Meaning of Version
ver·sionnoun \ v r-zh n, -sh n\ˈ ə ə ə
Origin of VERSION
Middle French, from Medieval Latin version-, versio act of turning, change, from Latin vertere to turn — more at worth
* From http://www.merriam-webster.com/dictionary.
5/14
Meaning of Semantic Version
A Semantic Version
isA change with (strict) meaning
6/14
Semantic Versioning Schemes
● OSGihttp://www.osgi.org/wiki/uploads/Links/SemanticVersioning.pdf
● SemVer.orghttp://semver.org/
● Eclipsehttp://wiki.eclipse.org/Version_Numbering
7/14
Semantic Versioning
● OSGihttp://www.osgi.org/wiki/uploads/Links/SemanticVersioning.pdf
8/14
Premise
Semantic Versions
are all about
(Backward) Compatibility
9/14
Major.Minor.Micro.Qualifier*
● Major: incompatible change for providersand consumers
● Minor: incompatible change for providers● Micro: compatible change● Qualifier: anything (e.g. build identity)
* Major, Minor and Micro are numbers, Qualifier is a string
Semantic Version
10/14
API
Coherent setof
exported classes
11/14
Hands-On
bndtoolsThe easy, powerful and productive way to develop with OSGi.
Based on bnd and Eclipse.
12/14
Rocket Example
rocket.control.apirocket.control
rocket.blackbox
API
rocket.control.api.RocketControlListener
Provider
Consumerbndtools
13/14
Summary
● Semantic Versions:– Theory:
● conceptually easy
– Reality:● not so easy● easy to forget to update the multiple places
– There are some subtleties
● bndtools can handle* it for you● Never Stop Thinking
* except for semantic changes not detectable by a machine, like kph to mph renames
14/14
Contact
bndtools: http://bndtools.org/https://github.com/bndtools/bndtoolsmailto:[email protected]
bnd: http://www.aqute.biz/Bnd/Bnd https://github.com/bndtools/bndmailto:[email protected]
Ferry Huberts <[email protected]>