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

 

 

Sources:

http://guides.rubygems.org/patterns/

http://guides.rubygems.org/name-your-gem/

2 thoughts on “Ruby : Versioning guidelines : SEMANTIC VERSIONING

Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Google+ photo

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

Connecting to %s