Semantic Versioning

When the development scope is being incremented, the complexity of development, Testing & Releases would be more complicated in Continuous Integration & Continuous Delivery pipelines. Downloading dependencies in software packages, and versioning is even more complicated of frequent releases if there is no well defined mechanism. Semantic versioning is one of the solution for reduce this complicated hassle.

Version is more important to developers to track their historical tracking, it gives a well defined versions of software releases. Therefor it adds more befits to the software development as well as CI/CD pipelines.

Benefits of Semantic Versioning

  • Historical tracking of code development.
    At any point developers can get the idea of code status from any historical point.
  • Universal builds packages are available to anytime deployment.
    Build can be triggered from any of previous tags, and it includes all the required dependency and other configurations. Therefor those tags can be easily used for build project deliverable as required from history.
  • Easily identify the code changes including API, functional and bug fixes.
  • Helps to manage releases and code development.

Semantic Versioning Format

semantic-versioning
There are three Major parts are in semantic versioning, Major, Minor & Patch.

  • Patch : Patch is where the developers change code to bug fixes after production deployment. This part is only changed when other major & minor are remained as it is. And this change should be backward compatible Please take a look on below example.
    v1.3.4 //before bugfix
    v1.3.5 //after bugfix
  • Minor : minor part also a backward compatible changed in functional requirements. When there is a feature development for a release, which is versioned with minor part of the version number, and this feature should be backward compatible. Below example shows the feature development versions.
    v1.3.5 // before feature development
    v1.4.0 //new feature development
  • Major : Major version defines about a massive change with backward incompatible of code change. That may a API change, architectural change or related changes.
    In such a major version is released, it cannot be revert back to a previous version since there a backward incompatible changes.

    v1.4.0 // before major change
    v2.0.0 // after major change

There are some several basic rules that everyone adopts in the semantic versioning.

  • Initial development should start with v0.1.0
  • When you want to release as first release from the project, it should be changed to v1.x.x

Best practice of versioning is very convenient way of improving software delivery cycles including CI/CD. Since most of the companies are adopting with DevOps and Agile practices, best practice of versioning is most important.

Advertisements

AWS CodePipeline for Continuous Delivery & Continuous Integration

AWS Codepipeline is one of the best CI/CD tool and which can be configured from developers’ code changes through production deployment. This tool visualizes and automates workflow and can be integrated with pre-configured tools to make the flow easier.

aws-code-pipeline
AWS CodePipeline

As in the above figure, AWS CodePipeline has been divided in to five categories.

Source : This is where the code repository is configured, this can be a 3rd party repository or AWS Codecommit lab. Any code change will be triggered soon after the code repository is updated.
Read More »

Automate EC2 Instance Start/Stop Using AWS Lambda.

AWS is one of the most purpler cloud service providers and most of the companies, individuals are using features are used in here. If user wants to start/stop EC2 instances after the R&D is done, why do we pay more for some 3rd party applications. Now you can use AWS Lambda instead of other 3rd party applications.

aws-lambda

AWS Lambda is free for up to some level as follows. And instance start/stop can be integrated with a Lambda function in order to accomplish the task. A lambda function is where we list the task that we want to execute during lambda function runs.
Read More »

Odoo 8 | Installing And Configuring in Ubuntu Server.

Hello All, Here, I’m going to show you how to install new version of “Odoo” ERP system on Ubuntu server. New version is “Odoo v8” , which contains more reliable features. Now it has been very easy to install and configure. Before installing the Odoo v8 let’s keep a clean installation on Ubuntu latest server version. The Ubuntu latest server version is Ubuntu Server 14.04. In here I have a clean Installation of Ubuntu Server 14.04.Read More »