release-notes.rst (5152B)
1 Release Notes 2 ============= 3 4 This document contains release notes for Hyper-h2. In addition to the 5 :ref:`detailed-release-notes` found at the bottom of this document, this 6 document also includes a high-level prose overview of each major release after 7 1.0.0. 8 9 High Level Notes 10 ---------------- 11 12 3.0.0: 24 March 2017 13 ~~~~~~~~~~~~~~~~~~~~ 14 15 The Hyper-h2 team and the Hyper project are delighted to announce the release 16 of Hyper-h2 version 3.0.0! Unlike the really notable 2.0.0 release, this 17 release is proportionally quite small: however, it has the effect of removing a 18 lot of cruft and complexity that has built up in the codebase over the lifetime 19 of the v2 release series. 20 21 This release was motivated primarily by discovering that applications that 22 attempted to use both HTTP/1.1 and HTTP/2 using hyper-h2 would encounter 23 problems with cookies, because hyper-h2 did not join together cookie headers as 24 required by RFC 7540. Normally adding such behaviour would be a non-breaking 25 change, but we previously had no flags to prevent normalization of received 26 HTTP headers. 27 28 Because it makes no sense for the cookie to be split *by default*, we needed to 29 add a controlling flag and set it to true. The breaking nature of this change 30 is very subtle, and it's possible most users would never notice, but 31 nevertheless it *is* a breaking change and we need to treat it as such. 32 33 Happily, we can take this opportunity to finalise a bunch of deprecations we'd 34 made over the past year. The v2 release series was long-lived and successful, 35 having had a series of releases across the past year-and-a-bit, and the Hyper 36 team are very proud of it. However, it's time to open a new chapter, and remove 37 the deprecated code. 38 39 The past year has been enormously productive for the Hyper team. A total of 30 40 v2 releases were made, an enormous amount of work. A good number of people have 41 made their first contribution in this time, more than I can thank reasonably 42 without taking up an unreasonable amount of space in this document, so instead 43 I invite you to check out `our awesome contributor list`_. 44 45 We're looking forward to the next chapter in hyper-h2: it's been a fun ride so 46 far, and we hope even more of you come along and join in the fun over the next 47 year! 48 49 .. _our awesome contributor list: https://github.com/python-hyper/hyper-h2/graphs/contributors 50 51 52 2.0.0: 25 January 2016 53 ~~~~~~~~~~~~~~~~~~~~~~ 54 55 The Hyper-h2 team and the Hyper project are delighted to announce the release 56 of Hyper-h2 version 2.0.0! This is an enormous release that contains a gigantic 57 collection of new features and fixes, with the goal of making it easier than 58 ever to use Hyper-h2 to build a compliant HTTP/2 server or client. 59 60 An enormous chunk of this work has been focused on tighter enforcement of 61 restrictions in RFC 7540, ensuring that we correctly police the actions of 62 remote peers, and error appropriately when those peers violate the 63 specification. Several of these constitute breaking changes, because data that 64 was previously received and handled without obvious error now raises 65 ``ProtocolError`` exceptions and causes the connection to be terminated. 66 67 Additionally, the public API was cleaned up and had several helper methods that 68 had been inavertently exposed removed from the public API. The team wants to 69 stress that while Hyper-h2 follows semantic versioning, the guarantees of 70 semver apply only to the public API as documented in :doc:`api`. Reducing the 71 surface area of these APIs makes it easier for us to continue to ensure that 72 the guarantees of semver are respected on our public API. 73 74 We also attempted to clear up some of the warts that had appeared in the API, 75 and add features that are helpful for implementing HTTP/2 endpoints. For 76 example, the :class:`H2Connection <h2.connection.H2Connection>` object now 77 exposes a method for generating the next stream ID that your client or server 78 can use to initiate a connection (:meth:`get_next_available_stream_id 79 <h2.connection.H2Connection.get_next_available_stream_id>`). We also removed 80 some needless return values that were guaranteed to return empty lists, which 81 were an attempt to make a forward-looking guarantee that was entirely unneeded. 82 83 Altogether, this has been an extremely productive period for Hyper-h2, and a 84 lot of great work has been done by the community. To that end, we'd also like 85 to extend a great thankyou to those contributors who made their first contribution 86 to the project between release 1.0.0 and 2.0.0. Many thanks to: 87 `Thomas Kriechbaumer`_, `Alex Chan`_, `Maximilian Hils`_, and `Glyph`_. For a 88 full historical list of contributors, see `contributors`_. 89 90 We're looking forward to the next few months of Python HTTP/2 work, and hoping 91 that you'll find lots of excellent HTTP/2 applications to build with Hyper-h2! 92 93 94 .. _Thomas Kriechbaumer: https://github.com/Kriechi 95 .. _Alex Chan: https://github.com/alexwlchan 96 .. _Maximilian Hils: https://github.com/mhils 97 .. _Glyph: https://github.com/glyph 98 .. _contributors: https://github.com/python-hyper/hyper-h2/blob/b14817b79c7bb1661e1aa84ef7920c009ef1e75b/CONTRIBUTORS.rst 99 100 101 .. _detailed-release-notes: 102 .. include:: ../../CHANGELOG.rst