Skip to content

Latest commit

 

History

History
65 lines (50 loc) · 3.3 KB

VERSIONS.md

File metadata and controls

65 lines (50 loc) · 3.3 KB

Versioning Strategy

twilio-node uses a modified version of Semantic Versioning for all changes to the helper library. It is strongly encouraged that you pin at least the major version and potentially the minor version to avoid pulling in breaking changes.

Semantic Versions take the form of MAJOR.MINOR.PATCH

When bugs are fixed in the library in a backwards compatible way, the PATCH level will be incremented by one. When new features are added to the library in a backwards compatible way, the PATCH level will be incremented by one. PATCH changes should not break your code and are generally safe for upgrade.

When a new large feature set comes online or a small breaking change is introduced, the MINOR version will be incremented by one and the PATCH version reset to zero. MINOR changes may require some amount of manual code change for upgrade. These backwards-incompatible changes will generally be limited to a small number of function signature changes.

The MAJOR version is used to indicate the family of technology represented by the helper library. It increased from 2.x.x to 3.x.x when Twilio moved to auto generation of helper libraries. Breaking changes that requires extensive reworking of code (like the 2.x.x to 3.x.x upgrade) will case the MAJOR version to be incremented by one, the MINOR and PATCH versions will be reset to zero. Twilio understands that this can be very disruptive, we will only introduce this type of breaking change when absolutely necessary. New MAJOR versions will be communicated in advance with Release Candidates and a schedule.

Supported Versions

twilio-node follows an evergreen model of support. New features and functionality will only be added to the current version. The current version - 1 will continue to be supported with bugfixes and security updates, but no new features.

Edge Features (alpha Branch)

Twilio frequently rolls out new features in public and private beta periods. Twilio strives to ship early and often and bake customer feedback back into our products. To support that mission, the twilio-node helper library has an Edge version based of the alpha branch. This version is identified with an alpha metadata tag on the version number.

The way the Edge artifact is created is by playing the Edge features on top of our stable artifact. The Edge artifact will always have the same version number as the stable artifact it was created from, but with an alpha suffix.

For example, 3.0.0-alpha-1 is the 3.0.0 branch with Edge features included. If there is a change to one of the Edge features we may regenerate the Edge artifact and release a new 3.0.0-alpha-2, new Edge artifacts simply increment the number after the alpha suffix. All Edge features are considered unstable and a backwards incompatible change in an Edge feature will not cause any version change so you should take care when upgrading from one alpha version to another.

Once an Edge feature has matured it will be considered Mainline and included in the stable artifact, with a MAJOR or MINOR version bump.

To use an Edge artifact in your NODE project you will have to make sure that you pin the artifact with alpha stability in your package.json.