Skip to content

Commit 49ae1fe

Browse files
bmwohemorange
andauthored
deprecate comparablex509 (#207)
* deprecate comparablex509 * theres only 1 * Update src/josepy/util.py Co-authored-by: ohemorange <ebportnoy@gmail.com> --------- Co-authored-by: ohemorange <ebportnoy@gmail.com>
1 parent 7f854c4 commit 49ae1fe

File tree

3 files changed

+20
-0
lines changed

3 files changed

+20
-0
lines changed

CHANGELOG.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,14 @@ Changelog
33

44
1.15.0 (main)
55
---------------
6+
7+
* Added a deprecation warning about future backwards incompatible changes. The
8+
text of that warning is "The next major version of josepy will remove
9+
josepy.util.ComparableX509 and all uses of it as part of removing our
10+
dependency on PyOpenSSL. This includes modifying any functions with
11+
ComparableX509 parameters or return values. This will be a breaking change.
12+
To avoid breakage, we recommend pinning josepy < 2.0.0 until josepy 2.0.0 is
13+
out and you've had time to update your code."
614
* Added support for Python 3.13.
715
* Dropped support for Python 3.7.
816
* Support for Python 3.8 has been deprecated and will be removed in the next

pyproject.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,8 @@ filterwarnings = [
100100
"ignore:CSR support in pyOpenSSL is deprecated:DeprecationWarning",
101101
# We ignore our own warning about dropping Python 3.8 support.
102102
"ignore:Python 3.8 support will be dropped:DeprecationWarning",
103+
# We ignore our own warning about ComparableX509
104+
"ignore:.*josepy will remove josepy.util.ComparableX509",
103105
]
104106
norecursedirs = "*.egg .eggs dist build docs .tox"
105107

src/josepy/util.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,19 @@ class ComparableX509:
2222
:ivar wrapped: Wrapped certificate or certificate request.
2323
:type wrapped: `OpenSSL.crypto.X509` or `OpenSSL.crypto.X509Req`.
2424
25+
.. deprecated:: 1.15.0
2526
"""
2627

2728
def __init__(self, wrapped: Union[crypto.X509, crypto.X509Req]) -> None:
29+
warnings.warn(
30+
"The next major version of josepy will remove josepy.util.ComparableX509 and all "
31+
"uses of it as part of removing our dependency on PyOpenSSL. This includes "
32+
"modifying any functions with ComparableX509 parameters or return values. This "
33+
"will be a breaking change. To avoid breakage, we recommend pinning josepy < 2.0.0 "
34+
"until josepy 2.0.0 is out and you've had time to update your code.",
35+
DeprecationWarning,
36+
stacklevel=2,
37+
)
2838
assert isinstance(wrapped, crypto.X509) or isinstance(wrapped, crypto.X509Req)
2939
self.wrapped = wrapped
3040

0 commit comments

Comments
 (0)