8000 Add VERSIONS.md for next-gen · Muix2015/twilio-python@69e3d77 · GitHub
[go: up one dir, main page]

Skip to content

Commit 69e3d77

Browse files
author
Evan Fossier
committed
Add VERSIONS.md for next-gen
1 parent 5cd90bb commit 69e3d77

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

VERSIONS.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Versioning Strategy
2+
3+
`twilio-python` uses a modified version of [Semantic Versioning][semver] for all
4+
changes to the helper library. It is strongly encouraged that you pin at least
5+
the major version and potentially the minor version to avoid pulling in breaking
6+
changes.
7+
8+
Semantic Versions take the form of `MAJOR`.`MINOR`.`PATCH`
9+
10+
When bugs are fixed in the library in a backwards compatible way, the `PATCH`
11+
level will be incremented by one. When new features are added to the library
12+
in a backwards compatible way, the `PATCH` level will be incremented by one.
13+
`PATCH` changes should _not_ break your code and are generally safe for upgrade.
14+
15+
When a new large feature set comes online or a small breaking change is
16+
introduced, the `MINOR` version will be incremented by one and the `PATCH`
17+
version reset to zero. `MINOR` changes _may_ require some amount of manual code
18+
change for upgrade. These backwards-incompatible changes will generally be limited
19+
to a small number of function signature changes.
20+
21+
The `MAJOR` version is used to indicate the family of technology represented by
22+
the helper library. It increased from `5.x.x` to `6.x.x` when Twilio moved to
23+
auto generation of helper libraries. Breaking changes that requires extensive
24+
reworking of code (like the `5.x.x` to `6.x.x` upgrade) will case the `MAJOR`
25+
version to be incremented by one, the `MINOR` and `PATCH` versions will be reset
26+
to zero. Twilio understands that this can be very disruptive, we will only
27+
introduce this type of breaking change when absolutely necessary. New `MAJOR`
28+
versions will be communicated in advance with `Release Candidates` and a
29+
schedule.
30+
31+
## Supported Versions
32+
33+
`twilio-python` follows an evergreen model of support. New features and
34+
functionality will only be added to the current version. The current version -
35+
1 will continue to be supported with bugfixes and security updates, but no new
36+
features.
37+
38+
## Edge Features (alpha Branch)
39+
40+
Twilio frequently rolls out new features in public and private beta periods.
41+
Twilio strives to ship early and often and bake customer feedback back into our
42+
products. To support that mission, the `twilio-python` helper library has an
43+
`Edge` version based off the `alpha` branch. This version is identified with an
44+
`alpha` metadata tag on the version number.
45+
46+
The way the `Edge` artifact is created is by playing the `Edge` features on top
47+
of our stable artifact. The `Edge` artifact will always have the same version
48+
number as the stable artifact it was created from, but with an `alpha` suffix.
49+
50+
For example, `6.0.0-alpha-1` is the `6.0.0` branch with `Edge` features included.
51+
If there is a change to one of the `Edge` features we may regenerate the `Edge`
52+
artifact and release a new `6.0.0-alpha-2`, new `Edge` artifacts simply increment
53+
the number after the `alpha` suffix. All `Edge` features are considered
54+
unstable and a backwards incompatible change in an `Edge` feature will not cause
55+
any version change so you should take care when upgrading from one `alpha`
56+
version to another.
57+
58+
Once an `Edge` feature has matured it will be considered `Mainline` and included
59+
in the stable artifact, with a `MAJOR` or `MINOR` version bump.
60+
61+
To use an `Edge` artifact in your PYTHON project you will have to make sure that
62+
you pin the artifact with `alpha` stability in your `setup.py` or `requirements.txt`.
63+
64+
[semver]: http://semver.org/

0 commit comments

Comments
 (0)
0