tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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