Skip to content

Commit 6ed67a2

Browse files
Update release notes.
1 parent 9f38daa commit 6ed67a2

File tree

2 files changed

+220
-0
lines changed

2 files changed

+220
-0
lines changed

readme.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,53 @@ Please see the [project releases](https://socketry.github.io/protocol-http2/rele
1818

1919
- Introduce a limit to the number of CONTINUATION frames that can be read to prevent resource exhaustion. The default limit is 8 continuation frames, which means a total of 9 frames (1 initial + 8 continuation). This limit can be adjusted by passing a different value to the `limit` parameter in the `Continued.read` method. Setting the limit to 0 will only read the initial frame without any continuation frames. In order to change the default, you can redefine the `LIMIT` constant in the `Protocol::HTTP2::Continued` module, OR you can pass a different frame class to the framer.
2020

21+
### v0.22.1
22+
23+
- Improved tracing performance by only tracing framer operations when in an active trace context.
24+
- Updated `protocol-http` dependency version in gemspec.
25+
- Code modernization and documentation improvements.
26+
2127
### v0.22.0
2228

2329
- [Added Priority Update Frame and Stream Priority](https://socketry.github.io/protocol-http2/releases/index#added-priority-update-frame-and-stream-priority)
2430

31+
### v0.21.0
32+
33+
- **Breaking**: Removed support for priority frame and stream dependencies. The `Protocol::HTTP2::Stream` class no longer tracks dependencies, and `Stream#send_headers` no longer takes `priority` as the first argument. This change simplifies the internal implementation significantly as HTTP/2 priority frames have been deprecated in the protocol specification.
34+
35+
### v0.20.0
36+
37+
- Improved performance of dependency management by avoiding linear search operations.
38+
- Removed `traces` as a required dependency - it's now optional and only used when explicitly needed.
39+
- Added better documentation for `maximum_concurrent_streams` setting.
40+
- Restored 100% test coverage and exposed trace provider for optional tracing support.
41+
42+
### v0.19.4
43+
44+
- Reduced the number of window update frames sent to improve network efficiency.
45+
46+
### v0.19.3
47+
48+
- Improved window update frame handling and performance optimizations.
49+
- Better implementation of `Window#inspect` for debugging.
50+
51+
### v0.19.2
52+
53+
- Added traces to framer for better debugging and monitoring capabilities.
54+
- Minor fixes to logging output.
55+
56+
### v0.19.1
57+
58+
- Performance improvements for synchronized output handling.
59+
- Extracted `window.rb` into separate module for better organization.
60+
61+
### v0.19.0
62+
63+
- Removed unused `opened` hook that was never utilized.
64+
- Improved ASCII art diagram in documentation.
65+
- Modernized gem structure and dependencies.
66+
- Moved test fixtures into proper namespace organization.
67+
2568
## See Also
2669

2770
- [Async::HTTP](https://github.com/socketry/async-http) - A high-level HTTP client and server implementation.

releases.md

Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,187 @@
44

55
- Introduce a limit to the number of CONTINUATION frames that can be read to prevent resource exhaustion. The default limit is 8 continuation frames, which means a total of 9 frames (1 initial + 8 continuation). This limit can be adjusted by passing a different value to the `limit` parameter in the `Continued.read` method. Setting the limit to 0 will only read the initial frame without any continuation frames. In order to change the default, you can redefine the `LIMIT` constant in the `Protocol::HTTP2::Continued` module, OR you can pass a different frame class to the framer.
66

7+
## v0.22.1
8+
9+
- Improved tracing performance by only tracing framer operations when in an active trace context.
10+
- Updated `protocol-http` dependency version in gemspec.
11+
- Code modernization and documentation improvements.
12+
713
## v0.22.0
814

915
### Added Priority Update Frame and Stream Priority
1016

1117
HTTP/2 has deprecated the priority frame and stream dependency tracking. This feature has been effectively removed from the protocol. As a consequence, the internal implementation is greatly simplified. The `Protocol::HTTP2::Stream` class no longer tracks dependencies, and this includes `Stream#send_headers` which no longer takes `priority` as the first argument.
1218

1319
Optional per-request priority can be set using the `priority` header instead, and this value can be manipulated using the priority update frame.
20+
21+
## v0.21.0
22+
23+
- **Breaking**: Removed support for priority frame and stream dependencies. The `Protocol::HTTP2::Stream` class no longer tracks dependencies, and `Stream#send_headers` no longer takes `priority` as the first argument. This change simplifies the internal implementation significantly as HTTP/2 priority frames have been deprecated in the protocol specification.
24+
25+
## v0.20.0
26+
27+
- Improved performance of dependency management by avoiding linear search operations.
28+
- Removed `traces` as a required dependency - it's now optional and only used when explicitly needed.
29+
- Added better documentation for `maximum_concurrent_streams` setting.
30+
- Restored 100% test coverage and exposed trace provider for optional tracing support.
31+
32+
## v0.19.4
33+
34+
- Reduced the number of window update frames sent to improve network efficiency.
35+
36+
## v0.19.3
37+
38+
- Improved window update frame handling and performance optimizations.
39+
- Better implementation of `Window#inspect` for debugging.
40+
41+
## v0.19.2
42+
43+
- Added traces to framer for better debugging and monitoring capabilities.
44+
- Minor fixes to logging output.
45+
46+
## v0.19.1
47+
48+
- Performance improvements for synchronized output handling.
49+
- Extracted `window.rb` into separate module for better organization.
50+
51+
## v0.19.0
52+
53+
- Removed unused `opened` hook that was never utilized.
54+
- Improved ASCII art diagram in documentation.
55+
- Modernized gem structure and dependencies.
56+
- Moved test fixtures into proper namespace organization.
57+
58+
## v0.18.0
59+
60+
- Fixed `maximum_connection_streams` reference to use `@remote_settings`.
61+
- Modernized gem structure and dependencies.
62+
- Improved flush synchronization - `#flush` is already synchronized.
63+
64+
## v0.17.0
65+
66+
- Exposed synchronize flush functionality for better concurrency control.
67+
- Improved single line responsibility in code structure.
68+
- Enhanced error handling - fail in `Connection#write_frames` if `@framer` is `nil`.
69+
- Fixed broken test cases.
70+
71+
## v0.16.0
72+
73+
- Removed unused `bake-github-pages` gem dependency.
74+
- Modernized gem structure and build process.
75+
- Updated development dependencies and workflows.
76+
77+
## v0.15.0
78+
79+
- Achieved 100% test coverage with comprehensive test improvements.
80+
- Fixed multiple minor bugs discovered through enhanced testing.
81+
- Modernized gem structure and development workflow.
82+
- Improved maximum concurrent stream handling - now defined only by local settings.
83+
- Added missing require statements in version tests.
84+
85+
## v0.14.0
86+
87+
- Added fuzzing support for the framer to improve robustness.
88+
- Improved connection closed state determination.
89+
- Enhanced error handling by ignoring expected errors.
90+
- Optimized AFL (American Fuzzy Lop) latency handling.
91+
92+
## v0.13.0
93+
94+
- Added methods for handling state transitions.
95+
- Removed `pry` and `rake` dependencies for cleaner gem structure.
96+
- Improved debugging and development workflow.
97+
98+
## v0.12.0
99+
100+
- Updated supported Ruby versions.
101+
- Significantly improved flow control handling, allowing connection local window to have desired high water mark.
102+
- Enhanced window management for better performance.
103+
104+
## v0.11.0
105+
106+
- Separated stream and priority logic to improve memory efficiency.
107+
- Added Ruby 2.7 support to continuous integration.
108+
- Improved code organization and performance.
109+
110+
## v0.10.0
111+
112+
- Improved child stream handling - don't consider child in future stream priority computations.
113+
- Enhanced state transitions to cache number of currently active streams.
114+
- Performance optimizations for stream management.
115+
116+
## v0.9.0
117+
118+
- Split window handling for sub-classes to improve modularity.
119+
- Fixed Travis CI badge in documentation.
120+
- Enhanced window management architecture.
121+
122+
## v0.8.0
123+
124+
- Added support for synchronizing output to prevent headers from being encoded out of order.
125+
- Improved header handling reliability and consistency.
126+
127+
## v0.7.0
128+
129+
- Introduced explicit `StreamError` for stream reset codes.
130+
- Added `HeaderError` for tracking header-specific problems (e.g., invalid pseudo-headers).
131+
- Removed `send_failure` method as it was not useful.
132+
- Improved `header_table_size` handling.
133+
- Enhanced stream priority handling and parent/child relationships.
134+
- Better flow control and priority management.
135+
- Improved debugging output and error validation.
136+
- Enhanced handling of `end_stream` and connection management.
137+
- Added stream buffer implementation with window update integration.
138+
- Implemented basic stream priority handling.
139+
- Improved goaway frame handling.
140+
141+
## v0.6.0
142+
143+
- Better handling of GOAWAY frames.
144+
- Improved connection termination procedures.
145+
146+
## v0.5.0
147+
148+
- Improved handling of stream creation and push promises.
149+
- Enhanced stream lifecycle management.
150+
151+
## v0.4.0
152+
153+
- Improved validation of stream ID and error handling.
154+
- Enhanced flow control implementation.
155+
- Better RFC compliance with HTTP/2 specification.
156+
- Fixed priority frame validation - fail if priority depends on own stream.
157+
- Improved ping frame length checking.
158+
- Enhanced logging messages and error reporting.
159+
160+
## v0.3.0
161+
162+
- Added support for `ENABLE_CONNECT_PROTOCOL` setting.
163+
- Better handling of underlying IO being closed.
164+
- Improved connection management and error handling.
165+
- Enhanced coverage reporting.
166+
167+
## v0.2.1
168+
169+
- Fixed header length and EOF handling.
170+
- Improved error boundary conditions.
171+
172+
## v0.2.0
173+
174+
- Significantly improved error handling throughout the library.
175+
- Better exception management and error reporting.
176+
177+
## v0.1.1
178+
179+
- Fixed HPACK usage and integration.
180+
- Corrected header compression/decompression handling.
181+
182+
## v0.1.0
183+
184+
- Initial migration of HTTP/2 protocol implementation from `http-protocol`.
185+
- Basic HTTP/2 frame parsing and generation.
186+
- Integration with `protocol-hpack` for header compression.
187+
- Stream management and flow control foundation.
188+
- Connection lifecycle management.
189+
- Support for all standard HTTP/2 frame types.
190+
- Basic client and server implementations.

0 commit comments

Comments
 (0)