Ruby : Versioning guidelines : SEMANTIC VERSIONING

One of the main things we need to understand as a developer to build softwares as well as to use other’s software/plugins and library is versioning convention.

Suppose you have a ‘shiva-emailer’ gem that holds a Shiva::Emailer class with send and parse functionality. Your CHANGELOG might look like this if you use semantic versioning:

  • Version 0.0.1: The initial Feature of just sending email to sendgrid is done/released.
  • Version 0.0.2: Other options can now be passed during API calls
  • Version 0.1.0: Parsing the response in any format is added.
  • Version 1.0.0: Support to other Email Service Providers added
  • Version 1.1.0: WebAPI as well as XSMTP API supported.
  • Version 1.1.1: Fixed a bug in the SendGrid module.

Semantic versioning boils down to:

  • PATCH 0.0.x level changes for implementation level detail changes, such as small bug fixes
  • MINOR 0.x.0 level changes for any backwards compatible API changes, such as new functionality/features
  • MAJOR x.0.0 level changes for backwards incompatible API changes, such as changes that will break existing users code if they update





2 thoughts on “Ruby : Versioning guidelines : SEMANTIC VERSIONING

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s