Skip to content

Crack SDE

Most of the content are generated by AI, with human being reviewed, edited, and revised

Menu
  • Home
  • Daily English Story
  • Tech Interviews
  • Cloud Native
  • DevOps
  • Artificial Intelligence
Menu

Versioning in software development

Posted on 10/05/202311/04/2023 by user

The versioning scheme follows the structure: <Major-Release>.<Minor-Release>.<Maintenance-Build-Level>.

  • Corrections of bugs are to be implemented without altering the API; such changes are invisible to the user of the API and result in an increase of the Maintenance-Build-Level.
  • The introduction of new features should not interfere with existing API functionality. Users have the discretion to adopt these features. This type of update leads to an increment in the Minor-Release number.
  • Updates termed as Major-Releases might break backward compatibility. Therefore, it is required that the previous version remains accessible for a specified deprecation period to facilitate a smooth transition.

Versioning in software development is a critical component for managing changes and ensuring that users and developers can track and understand the evolution of a product. Here’s an explanation of the typical three-digit versioning scheme:

1. Major Release (<Major-Release>):

  • The first digit in the versioning scheme is the Major Release number. It indicates significant changes to the software, which may include backward-incompatible changes. This means that when the Major Release number is incremented (e.g., from 1.x.x to 2.x.x), the changes are substantial enough that they may require users to modify their own code or configurations to work with the new version.
  • A Major Release often introduces new features, major enhancements, and potentially breaking changes that could affect the way the API functions. Because of these potential breaking changes, best practices dictate that the previous major version should be maintained for a period of time to allow users to transition. This is known as the deprecation period.

2. Minor Release (<Minor-Release>):

  • The second digit is the Minor Release number. It is incremented when new features or functionality are added, but in a way that does not break backward compatibility. This means that all the functions that worked before the update will continue to work after the update.
  • For example, going from version 1.2.x to 1.3.x would imply that new features have been added, but everything that worked on version 1.2.x should still work on 1.3.x. The API user can choose to implement and use the new features or continue operating as before.

3. Maintenance Build Level (<Maintenance-Build-Level>):

  • The third digit represents the Maintenance Build or Patch Level. It is increased when bug fixes, security patches, or other minor changes that do not affect the API’s external behavior are released.
  • These updates are intended to be completely transparent to the user and should not alter the functionality from the user’s perspective. If you update from version 1.2.1 to 1.2.2, you should expect no changes in functionality, just improvements or fixes to existing features.

Examples of Version Changes:

  • 1.2.3 to 1.2.4: A bug was fixed, no new features, and existing API calls remain unchanged.
  • 1.2.4 to 1.3.0: New features added, but all existing API calls remain functional and unchanged.
  • 1.3.0 to 2.0.0: Potentially breaking changes, the software has undergone significant updates that may affect existing API calls or how the system is used.

When designing and managing an API, it’s essential to communicate clearly about version changes and the implications of each update. This means providing detailed release notes, updating documentation, and, if possible, providing migration guides for major releases. This level of communication helps prevent disruption and ensures that users can update to newer versions with a clear understanding of what to expect.

Share this:

  • Click to share on Facebook (Opens in new window) Facebook
  • Click to share on X (Opens in new window) X

Related

Recent Posts

  • LC#622 Design Circular Queue
  • Started with OpenTelemetry in Go
  • How Prometheus scrap works, and how to find the target node and get the metrics files
  • How to collect metrics of container, pods, node and cluster in k8s?
  • LC#200 island problem

Recent Comments

  1. another user on A Journey of Resilience

Archives

  • May 2025
  • April 2025
  • February 2025
  • July 2024
  • April 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • June 2023
  • May 2023

Categories

  • Artificial Intelligence
  • Cloud Computing
  • Cloud Native
  • Daily English Story
  • Database
  • DevOps
  • Golang
  • Java
  • Leetcode
  • Startups
  • Tech Interviews
©2025 Crack SDE | Design: Newspaperly WordPress Theme
Manage Cookie Consent
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
View preferences
{title} {title} {title}