File: api-stability.rst

package info (click to toggle)
python-cryptography 0.6.1-1+deb8u1
  • links: PTS, VCS
  • area: main
  • in suites: jessie
  • size: 1,896 kB
  • ctags: 2,183
  • sloc: python: 20,385; makefile: 137; ansic: 17; sh: 12
file content (51 lines) | stat: -rw-r--r-- 1,667 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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 that 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 that runs without warnings will always continue to work for a
period of two releases.