Code Versioning - Versioning scheme

Card Puncher Data Processing

About

The different scheme on the version number of a release of a module.

The argument it's just a number with versioning goes right out the window the moment that number is in a file path. Implications multiply.

After four hours of investigation it turned out that someone had made a breaking API change in a Java library, and had forgotten to bump up the version number — so when a dependent object tried to call into that library, the dispatch failed.

List

Content versioning

The one true way to address something — content-based shas. See Version Control - Commit Hash - Content Versioning

Common versioning scheme

common versioning scheme: major.minor[.revision[.build]]

  • The minor number is incremented when compatibility is broken.
  • The revision number is incremented for bug fixes or enhancements.

Semantic Versioning

See Semantic Versioning 2.0.0

Version format of X.Y.Z (Major.Minor.Patch).

Calendar Versioning Scheme

See: http://calver.org/

Custom

Major.Minor[.Bugfix|-rc-number|-SNAPSHOT]

where:

  • Major Releases.
    • Start of a new Development Cycle.
    • The release contains non-backward compatible changes compared with the previous major release number
    • Features Deprecation are applied
  • Minor Releases:
    • The release is 100% backward compatible within the major release.
    • New features must not introduce non backward compatible changes.
  • Bugfix Releases
    • The release contains only bug fixes
    • The release is 100% backward compatible. It's always recommended to upgrade as soon as possible since the bug fixes can contain security fixes.
  • Release Candidate Releases (a.k.a RC Releases):
    • Candidates for the Minor release.
    • Generally 1 or 2 before the Minor release in order to test it by the community
  • Snapshot Releases (continuous x.y-SNAPSHOT, or timestamped x.y-20110131.125707-122, or revision numbered x.y-SNAPSHOT.34017)
    • Snapshots builds happen every time there's a code commit
    • Snapshots are performed by a Continuous Integration tool.

Documentation / Reference





Discover More
Card Puncher Data Processing
Code - Version

Versions don’t really work linearly. Commits can and sometime must be reverted. later does not necessarily mean better. If A comes later than B, it does not imply that: A has more features than...
Death Stars Architecture Diagram
Code Shipping - Dependency (Coupling)

in code. A (module|package|library) often requires other (packages|module) to be installed to function correctly. Such a relation is called a dependency. Coupling or dependency is the degree to which...
Card Puncher Data Processing
Code Versioning

Versioning permits to tell which code is newer than another. Every versioning schema will then tell which version is newer than the other one. Code is: versioned by making commit to a repository....
Card Puncher Data Processing
Code Versioning - Release

A release is packaging your application under a version in a format that is suitable for the distribution channel. If you publish your application to: a package manager, you should create your application...
Git - Tag

This page is tagging in git Git has the ability to tag specific points in history as being important. Typically this functionality is used to mark release points (v1.0, and so on). Git uses two main...
Javascript Package - Package.json

Package.json is used by npm to store metadata for projects published as package. The package.json files: * serves as documentation for what packages your project depends on. * allows you to specify...
Card Puncher Data Processing
PySpark - Version

version in PySpark. All information PySpark version and its components. The version of PySpark on which Python version it's support can be found in the Release History: ...
Card Puncher Data Processing
Python Packaging - Version / Release

and in Python This naming convention of compiled files allows compiled modules from different releases of Python to coexist. All below properties of a build. ie: alias...
The versions of HTTP

An article that lists the version of HTTP and where you can retrieve them.



Share this page:
Follow us:
Task Runner