Semantic Versioning

1,805 views

Published on

Semantic Versioning - How to give a components the right version?

Published in: Technology

Semantic Versioning

  1. 1. Semantic VersioningSEITENBAU LIGHTNING TALKS Christian Baranowski
  2. 2. Version Syntax1 . 0 . 0 . b1major minor micro qualifier
  3. 3. Semantic Versioning Version=1.0.0 Application Consumer API ProviderVersion=1.0.0 Version=1.0.0
  4. 4. Semantic Versioning Version=1.0.1 Version=1.0.0 Application Consumer API Provider 1 Version=1.0.0 Version=1.0.0 Version=1.0.11 API Bugfix (in Exported Packages). E.g. JavaDoc change, Method parameter rename, …
  5. 5. Semantic Versioning Version=1.0.2 Version=1.0.0 Application Consumer API Provider 1 Version=1.0.0 Version=1.0.1 Version=1.0.21 Provider internal change. E.g. bugfix in the class ServiceImpl.
  6. 6. Semantic Versioning Version=1.0.3 Version=1.0.2 Application Consumer API Provider 1 Version=1.0.0 Version=1.0.2 Version=1.0.11 Consumer internal change. E.g. bugfix in the class MyListener.
  7. 7. Semantic Versioning Version=1.1.0 Version=1.0.3 Application Consumer API Provider 1 Version=1.0.1 Version=1.0.2 Version=1.1.01 API backward compatible change. E.g. add a method to service class.
  8. 8. Semantic Versioning Version=2.0.0 Version=1.0.3 Application Consumer API Provider 1 Version=1.0.1 Version=1.1.0 Version=1.0.2 Version=2.0.01 API not backward compatible e.g. add a method to the Listener class.
  9. 9. Semantic Versioning• Major Must be increase if the changes effects providers as well as consumers.• Minor Must be increase if the changes are backward compatible for the consumers, but not backward compatible for the providers.• Micro A difference in micro part does not signal any backward compatibility issues.• Qualifier The qualifier is used to indicate a build.For more details see the “ OSGi Technical Whitepaper about SemanticVersioning”
  10. 10. Tools• Bnd / Bndtools Semantic Versioning for OSGi based Applications http://bndtools.org/• Semantic Versioning for Jars and Maven https://github.com/jeluard/semantic- versioning
  11. 11. Links• OSGi Technical Whitepaper Semantic Versioning http://www.osgi.org/wiki/uploads/Links/Sem anticVersioning.pdf• Semantic Versioning Specification (SemVer) http://semver.org/

×