CHANGELOG.rst (6682B)
1 Release History 2 =============== 3 4 6.0.1 (2021-04-17) 5 ------------------ 6 7 **API Changes (Backward-compatible)** 8 9 - Added support for Python 3.9. 10 - Added type hints. 11 12 6.0.0 (2020-09-06) 13 ------------------ 14 15 **API Changes (Backward-incompatible)** 16 17 - Introduce ``HyperframeError`` base exception class for all errors raised within hyperframe. 18 - Change exception base class of ``UnknownFrameError`` to ``HyperframeError`` 19 - Change exception base class of ``InvalidPaddingError`` to ``HyperframeError`` 20 - Change exception base class of ``InvalidFrameError`` to ``HyperframeError`` 21 - Invalid frames with wrong stream id (zero vs. non-zero) now raise ``InvalidDataError``. 22 - Invalid SETTINGS frames (non-empty but ACK) now raise ``InvalidDataError``. 23 - Invalid ALTSVC frames with non-bytestring field or origin now raise ``InvalidDataError``. 24 25 **API Changes (Backward-compatible)** 26 27 - Deprecate ``total_padding`` - use `pad_length` instead. 28 - Improve repr() output for all frame classes. 29 - Introduce Frame.explain(data) for quick introspection of raw data. 30 31 **Bugfixes** 32 33 - Fixed padding parsing for ``PushPromiseFrame``. 34 - Fixed unchecked frame length for ``PriorityFrame``. It now correctly raises ``InvalidFrameError``. 35 - Fixed promised stream id validation for ``PushPromiseFrame``. It now raises ``InvalidDataError``. 36 - Fixed unchecked frame length for ``WindowUpdateFrame``. It now correctly raises ``InvalidFrameError``. 37 - Fixed window increment value range validation. It now raises ``InvalidDataError``. 38 - Fixed parsing of ``SettingsFrame`` with mutual exclusion of ACK flag and payload. 39 40 **Other Changes** 41 42 - Removed support for Python 2.7, 3.4, 3.5, pypy. 43 - Added support for Python 3.8. 44 45 5.2.0 (2019-01-18) 46 ------------------ 47 48 **API Changes (Backward-compatible)** 49 50 - Add a new ENABLE_CONNECT_PROTOCOL settings parameter. 51 52 **Other Changes** 53 54 - Fix collections.abc deprecation. 55 - Drop support for Python 3.3 and support 3.7. 56 57 5.1.0 (2017-04-24) 58 ------------------ 59 60 **API Changes (Backward-compatible)** 61 62 - Added support for ``DataFrame.data`` being a ``memoryview`` object. 63 64 5.0.0 (2017-03-07) 65 ------------------ 66 67 **Backwards Incompatible API Changes** 68 69 - Added support for unknown extension frames. These will be returned in the new 70 ``ExtensionFrame`` object. The flag information for these frames is persisted 71 in ``flag_byte`` if needed. 72 73 4.0.2 (2017-02-20) 74 ------------------ 75 76 **Bugfixes** 77 78 - Fixed AltSvc stream association, which was incorrectly set to ``'both'``: 79 should have been ``'either'``. 80 - Fixed a bug where stream IDs on received frames were allowed to be 32-bit, 81 instead of 31-bit. 82 - Fixed a bug with frames that had the ``PADDING`` flag set but zero-length 83 padding, whose flow-controlled length was calculated wrongly. 84 - Miscellaneous performance improvements to serialization and parsing logic. 85 86 4.0.1 (2016-03-13) 87 ------------------ 88 89 **Bugfixes** 90 91 - Fixed bug with the repr of ``AltSvcFrame``, where building it could throw 92 exceptions if the frame had been received from the network. 93 94 4.0.0 (2016-03-13) 95 ------------------ 96 97 **Backwards Incompatible API Changes** 98 99 - Updated old ALTSVC frame definition to match the newly specified RFC 7838. 100 - Remove BLOCKED frame, which was never actually specified. 101 - Removed previously deprecated ``SettingsFrame.SETTINGS_MAX_FRAME_SIZE`` and 102 ``SettingsFrame.SETTINGS_MAX_HEADER_LIST_SIZE``. 103 104 3.2.0 (2016-02-02) 105 ------------------ 106 107 **API Changes (Backward-compatible)** 108 109 - Invalid PING frame bodies now raise ``InvalidFrameError``, not 110 ``ValueError``. Note that ``InvalidFrameError`` is a ``ValueError`` subclass. 111 - Invalid RST_STREAM frame bodies now raise ``InvalidFramError``, not 112 ``ValueError``. Note that ``InvalidFrameError`` is a ``ValueError`` subclass. 113 - Canonicalized the names of ``SettingsFrame.SETTINGS_MAX_FRAME_SIZE`` and 114 ``SettingsFrame.SETTINGS_MAX_HEADER_LIST_SIZE`` to match their peers, by 115 adding new properties ``SettingsFrame.MAX_FRAME_SIZE`` and 116 ``SettingsFrame.SETTINGS_MAX_HEADER_LIST_SIZE``. The old names are still 117 present, but will be deprecated in 4.0.0. 118 119 **Bugfixes** 120 121 - The change in ``3.1.0`` that ensured that ``InvalidFrameError`` would be 122 thrown did not affect certain invalid values in ALT_SVC frames. This has been 123 fixed: ``ValueError`` will no longer be thrown from invalid ALT_SVC bodies. 124 125 3.1.1 (2016-01-18) 126 ------------------ 127 128 **Bugfixes** 129 130 - Correctly error when receiving Ping frames that have insufficient data. 131 132 3.1.0 (2016-01-13) 133 ------------------ 134 135 **API Changes** 136 137 - Added new ``InvalidFrameError`` that is thrown instead of ``struct.error`` 138 when parsing a frame. 139 140 **Bugfixes** 141 142 - Fixed error when trying to serialize frames that use Priority information 143 with the defaults for that information. 144 - Fixed errors when displaying the repr of frames with non-printable bodies. 145 146 3.0.1 (2016-01-08) 147 ------------------ 148 149 **Bugfixes** 150 151 - Fix issue where unpadded DATA, PUSH_PROMISE and HEADERS frames that had empty 152 bodies would raise ``InvalidPaddingError`` exceptions when parsed. 153 154 3.0.0 (2016-01-08) 155 ------------------ 156 157 **Backwards Incompatible API Changes** 158 159 - Parsing padded frames that have invalid padding sizes now throws an 160 ``InvalidPaddingError``. 161 162 2.2.0 (2015-10-15) 163 ------------------ 164 165 **API Changes** 166 167 - When an unknown frame is encountered, ``parse_frame_header`` now throws a 168 ``ValueError`` subclass: ``UnknownFrameError``. This subclass contains the 169 frame type and the length of the frame body. 170 171 2.1.0 (2015-10-06) 172 ------------------ 173 174 **API Changes** 175 176 - Frames parsed from binary data now carry a ``body_len`` attribute that 177 matches the frame length (minus the frame header). 178 179 2.0.0 (2015-09-21) 180 ------------------ 181 182 **API Changes** 183 184 - Attempting to parse unrecognised frames now throws ``ValueError`` instead of 185 ``KeyError``. Thanks to @Kriechi! 186 - Flags are now validated for correctness, preventing setting flags that 187 ``hyperframe`` does not recognise and that would not serialize. Thanks to 188 @mhils! 189 - Frame properties can now be initialized in the constructors. Thanks to @mhils 190 and @Kriechi! 191 - Frames that cannot be sent on a stream now have their stream ID defaulted 192 to ``0``. Thanks to @Kriechi! 193 194 **Other Changes** 195 196 - Frames have a more useful repr. Thanks to @mhils! 197 198 1.1.1 (2015-07-20) 199 ------------------ 200 201 - Fix a bug where ``FRAME_MAX_LEN`` was one byte too small. 202 203 1.1.0 (2015-06-28) 204 ------------------ 205 206 - Add ``body_len`` property to frames to enable introspection of the actual 207 frame length. Thanks to @jdecuyper! 208 209 1.0.1 (2015-06-27) 210 ------------------ 211 212 - Fix bug where the frame header would have an incorrect length added to it. 213 214 1.0.0 (2015-04-12) 215 ------------------ 216 217 - Initial extraction from hyper.