aboutsummaryrefslogtreecommitdiffstats
path: root/docs/api-stability.rst
diff options
context:
space:
mode:
authorJulian Krause <julian.krause@gmail.com>2013-12-25 12:58:40 -0800
committerJulian Krause <julian.krause@gmail.com>2013-12-25 12:58:40 -0800
commite62760af74ebb8b08d7670dfaff177cdeb679f0f (patch)
tree70e51d6aadff7d1ec204793b12de221610204254 /docs/api-stability.rst
parentc91fe6a21fbae3107de7b2e53b7343cd67ac8c6d (diff)
parent0865a8b81075bfe073aba56e03cc57c30bfffe00 (diff)
downloadcryptography-e62760af74ebb8b08d7670dfaff177cdeb679f0f.tar.gz
cryptography-e62760af74ebb8b08d7670dfaff177cdeb679f0f.tar.bz2
cryptography-e62760af74ebb8b08d7670dfaff177cdeb679f0f.zip
Merge branch 'master' of https://github.com/pyca/cryptography into verify
Conflicts: tests/hazmat/primitives/test_hashes.py tests/hazmat/primitives/test_hmac.py
Diffstat (limited to 'docs/api-stability.rst')
-rw-r--r--docs/api-stability.rst51
1 files changed, 51 insertions, 0 deletions
diff --git a/docs/api-stability.rst b/docs/api-stability.rst
new file mode 100644
index 00000000..e87cc140
--- /dev/null
+++ b/docs/api-stability.rst
@@ -0,0 +1,51 @@
+API Stability
+=============
+
+From its first release, ``cryptography`` will have a strong API stability
+policy.
+
+What does this policy cover?
+----------------------------
+
+This policy includes any API or behavior which is documented in this
+documentation.
+
+What does "stable" mean?
+------------------------
+
+* Public APIs will not be removed or renamed without providing a compatibility
+ alias.
+* The behavior of existing APIs will not change.
+
+What doesn't this policy cover?
+-------------------------------
+
+* We may add new features, things like the result of ``dir(obj))`` or the
+ contents of ``obj.__dict__`` may change.
+* Objects are not guaranteed to be pickleable, and pickled objects from one
+ version of ``cryptography`` may not be loadable in future versions.
+* Development versions of ``cryptography``. Before a feature is in a release,
+ it is not covered by this policy and may change.
+
+Security
+~~~~~~~~
+
+One exception to our API stability policy is for security. We will violate this
+policy as necessary in order to resolve a security issue or harden
+``cryptography`` against a possible attack.
+
+Deprecation
+-----------
+
+From time to time we will want to change the behavior of an API or remove it
+entirely. In that case, here's how the process will work:
+
+* In ``cryptography X.Y`` the feature exists.
+* In ``cryptography X.Y+1`` using that feature will emit a
+ ``PendingDeprecationWarning``.
+* In ``cryptography X.Y+2`` using that feature will emit a
+ ``DeprecationWarning``.
+* In ``cryptography X.Y+3`` the feature will be removed or changed.
+
+In short, code which runs without warnings will always continue to work for a
+period of two releases.