diff --git a/Cargo.lock b/Cargo.lock index 4d28c5aa..fe515b69 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -198,7 +198,7 @@ dependencies = [ [[package]] name = "fluke" -version = "0.1.1" +version = "0.1.2" dependencies = [ "byteorder", "bytes", @@ -228,7 +228,7 @@ dependencies = [ [[package]] name = "fluke-buffet" -version = "0.2.0" +version = "0.3.0" dependencies = [ "bytemuck", "color-eyre", @@ -272,7 +272,7 @@ dependencies = [ [[package]] name = "fluke-h2-parse" -version = "0.1.1" +version = "0.2.0" dependencies = [ "byteorder", "enum-repr", @@ -285,7 +285,7 @@ dependencies = [ [[package]] name = "fluke-hpack" -version = "0.3.1" +version = "0.3.2" dependencies = [ "hex", "serde", @@ -321,7 +321,7 @@ dependencies = [ [[package]] name = "fluke-io-uring-async" -version = "0.1.0" +version = "0.1.1" dependencies = [ "io-uring", "send_wrapper", @@ -526,7 +526,7 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "httpwg" -version = "0.1.1" +version = "0.2.0" dependencies = [ "bytes", "enumflags2", @@ -565,7 +565,7 @@ dependencies = [ [[package]] name = "httpwg-macros" -version = "0.1.0" +version = "0.1.1" dependencies = [ "httpwg", ] diff --git a/crates/fluke-buffet/CHANGELOG.md b/crates/fluke-buffet/CHANGELOG.md index bc0722af..f6822062 100644 --- a/crates/fluke-buffet/CHANGELOG.md +++ b/crates/fluke-buffet/CHANGELOG.md @@ -7,6 +7,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.3.0](https://github.com/bearcove/fluke/compare/fluke-buffet-v0.2.0...fluke-buffet-v0.3.0) - 2024-08-13 + +### Other +- More async cancellation cleanups +- Upgrade hyper + fix cancellation in test rig +- Upgrade nix +- Upgrade dependencies +- Okay the takeaway is that tasks spawned when a runtime is shutting down immediately get dropped> +- shutting down is hard +- Debug tests +- grahhhh why would you answer in multiple headers grr +- Start using httpwg-cli against real servers +- okay, a few more adjustments +- Make 'static part of IntoHalves +- Some section 8 tests (acceptable headers) +- More 4.2 tests +- Clean up 4_1 tests + ## [0.2.0](https://github.com/bearcove/fluke/compare/fluke-buffet-v0.1.0...fluke-buffet-v0.2.0) - 2024-05-27 ### Added diff --git a/crates/fluke-buffet/Cargo.toml b/crates/fluke-buffet/Cargo.toml index e5b28db0..c2d469a0 100644 --- a/crates/fluke-buffet/Cargo.toml +++ b/crates/fluke-buffet/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "fluke-buffet" -version = "0.2.0" +version = "0.3.0" edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/bearcove/fluke" @@ -43,7 +43,7 @@ tracing = "0.1.40" nix = "0.29.0" [target.'cfg(target_os = "linux")'.dependencies] -fluke-io-uring-async = { path = "../fluke-io-uring-async", version = "0.1.0", optional = true } +fluke-io-uring-async = { path = "../fluke-io-uring-async", version = "0.1.1", optional = true } io-uring = { version = "0.6.4", optional = true } [dev-dependencies] diff --git a/crates/fluke-curl-tests/Cargo.toml b/crates/fluke-curl-tests/Cargo.toml index 745df0c9..be3be25b 100644 --- a/crates/fluke-curl-tests/Cargo.toml +++ b/crates/fluke-curl-tests/Cargo.toml @@ -9,7 +9,7 @@ publish = false [dependencies] [dev-dependencies] -fluke = { version = "0.1.1", path = "../../crates/fluke" } +fluke = { version = "0.1.2", path = "../../crates/fluke" } bytes = { version = "1.7.1", default-features = false } pretty_assertions = { version = "1.4.0", default-features = false, features = [ "std", diff --git a/crates/fluke-h2-parse/CHANGELOG.md b/crates/fluke-h2-parse/CHANGELOG.md index b664220c..ba396f47 100644 --- a/crates/fluke-h2-parse/CHANGELOG.md +++ b/crates/fluke-h2-parse/CHANGELOG.md @@ -6,6 +6,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.2.0](https://github.com/bearcove/fluke/compare/fluke-h2-parse-v0.1.1...fluke-h2-parse-v0.2.0) - 2024-08-13 + +### Other +- Upgrade dependencies +- Address Rust 1.80.1 warnings +- grahhhh why would you answer in multiple headers grr +- Start using httpwg-cli against real servers +- More Section 8 tests +- Make test invalid_header_block_fragment more readable +- race condition in sends_multiple_window_update_frames_increasing_flow_control_window_above_max_on_stream, we can fix that +- refactor settings sending, add more helpers, etc. +- Introduce SettingsError, fix error code when receiving invalid initial window size +- WIP settings parsing +- 6.5 tests +- 5.1.2 tests +- 5.1 specs compile +- Add rfc 9113 section 5.1 specs +- 4.3 tests +- Clean up 4_1 tests + ## [0.1.1](https://github.com/bearcove/fluke/compare/fluke-h2-parse-v0.1.0...fluke-h2-parse-v0.1.1) - 2024-05-27 ### Other diff --git a/crates/fluke-h2-parse/Cargo.toml b/crates/fluke-h2-parse/Cargo.toml index 066b0c77..e7af22fe 100644 --- a/crates/fluke-h2-parse/Cargo.toml +++ b/crates/fluke-h2-parse/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "fluke-h2-parse" -version = "0.1.1" +version = "0.2.0" edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/bearcove/fluke" @@ -15,7 +15,7 @@ rust-version = "1.75" enum-repr = "0.2.6" enumflags2 = "0.7.10" nom = { version = "7.1.3", default-features = false } -fluke-buffet = { version = "0.2.0", path = "../fluke-buffet" } +fluke-buffet = { version = "0.3.0", path = "../fluke-buffet" } thiserror = "1.0.63" byteorder = "1.5.0" tracing = "0.1.40" diff --git a/crates/fluke-hpack/CHANGELOG.md b/crates/fluke-hpack/CHANGELOG.md index cb2138c0..843702d7 100644 --- a/crates/fluke-hpack/CHANGELOG.md +++ b/crates/fluke-hpack/CHANGELOG.md @@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.3.2](https://github.com/bearcove/fluke/compare/fluke-hpack-v0.3.1...fluke-hpack-v0.3.2) - 2024-08-13 + +### Other +- Upgrade dependencies +- Yay we're properly returning 400x +- Ready to send back 400s +- Some section 8 tests (acceptable headers) + ## [0.3.1](https://github.com/bearcove/fluke/compare/fluke-hpack-v0.3.0...fluke-hpack-v0.3.1) - 2024-05-27 ### Added diff --git a/crates/fluke-hpack/Cargo.toml b/crates/fluke-hpack/Cargo.toml index 0d2e36c7..5c56d904 100644 --- a/crates/fluke-hpack/Cargo.toml +++ b/crates/fluke-hpack/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "fluke-hpack" -version = "0.3.1" +version = "0.3.2" authors = [ "Marko Lalic ", "Amos Wenger ", diff --git a/crates/fluke-httpwg-server/CHANGELOG.md b/crates/fluke-httpwg-server/CHANGELOG.md new file mode 100644 index 00000000..c6d95a17 --- /dev/null +++ b/crates/fluke-httpwg-server/CHANGELOG.md @@ -0,0 +1,14 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [0.1.0](https://github.com/bearcove/fluke/releases/tag/fluke-httpwg-server-v0.1.0) - 2024-08-13 + +### Other +- debug shutdowns +- well, h2spec and httpwg-cli agree on almost everything +- Introduce fluke-httpwg-server so we can run httpwg over TCP diff --git a/crates/fluke-httpwg-server/Cargo.toml b/crates/fluke-httpwg-server/Cargo.toml index 3489569b..9ed99fee 100644 --- a/crates/fluke-httpwg-server/Cargo.toml +++ b/crates/fluke-httpwg-server/Cargo.toml @@ -5,7 +5,7 @@ edition = "2021" [dependencies] color-eyre = "0.6.3" -fluke = { version = "0.1.1", path = "../fluke" } -fluke-buffet = { version = "0.2.0", path = "../fluke-buffet" } +fluke = { version = "0.1.2", path = "../fluke" } +fluke-buffet = { version = "0.3.0", path = "../fluke-buffet" } tracing = "0.1.40" tracing-subscriber = "0.3.18" diff --git a/crates/fluke-io-uring-async/CHANGELOG.md b/crates/fluke-io-uring-async/CHANGELOG.md new file mode 100644 index 00000000..877c4334 --- /dev/null +++ b/crates/fluke-io-uring-async/CHANGELOG.md @@ -0,0 +1,15 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [0.1.1](https://github.com/bearcove/fluke/compare/fluke-io-uring-async-v0.1.0...fluke-io-uring-async-v0.1.1) - 2024-08-13 + +### Other +- Upgrade hyper + fix cancellation in test rig +- Upgrade dependencies +- yep that's what's happening +- Okay the takeaway is that tasks spawned when a runtime is shutting down immediately get dropped> diff --git a/crates/fluke-io-uring-async/Cargo.toml b/crates/fluke-io-uring-async/Cargo.toml index cb789680..7248c66e 100644 --- a/crates/fluke-io-uring-async/Cargo.toml +++ b/crates/fluke-io-uring-async/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "fluke-io-uring-async" -version = "0.1.0" +version = "0.1.1" edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/bearcove/fluke" diff --git a/crates/fluke/CHANGELOG.md b/crates/fluke/CHANGELOG.md index 1ade107a..d0663447 100644 --- a/crates/fluke/CHANGELOG.md +++ b/crates/fluke/CHANGELOG.md @@ -7,6 +7,42 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.1.2](https://github.com/bearcove/fluke/compare/fluke-v0.1.1...fluke-v0.1.2) - 2024-08-13 + +### Added +- Error out if we write too few / too many response bytes +- Move BodyWriteMode into H1Encoder + +### Other +- Upgrade dependencies +- Okay the takeaway is that tasks spawned when a runtime is shutting down immediately get dropped> +- Well we pass h2spec strict! +- well, h2spec and httpwg-cli agree on almost everything +- Introduce fluke-httpwg-server so we can run httpwg over TCP +- Start using httpwg-cli against real servers +- All tests pass! +- Change Headers to a VecDeque<(Piece, Piece)>, closes [#193](https://github.com/bearcove/fluke/pull/193) +- okay, a few more adjustments +- Pass more tests +- welp, need more validation +- Yay we're properly returning 400x +- Ready to send back 400s +- Start working on returning 400 from fluke +- Make 'static part of IntoHalves +- Fully read request body before sending a response +- race condition in sends_multiple_window_update_frames_increasing_flow_control_window_above_max_on_stream, we can fix that +- tests build again +- refactor settings sending, add more helpers, etc. +- Add 6.5.3 specs +- Introduce SettingsError, fix error code when receiving invalid initial window size +- WIP settings parsing +- 6.5 tests +- Make 6.1 tests pass +- 6.1 tests +- 5.1.2 tests +- verify_stream_close might be wrong +- Add rfc 9113 section 5.1 specs + ## [0.1.1](https://github.com/bearcove/fluke/compare/fluke-v0.1.0...fluke-v0.1.1) - 2024-05-27 ### Added diff --git a/crates/fluke/Cargo.toml b/crates/fluke/Cargo.toml index 82770f8f..4e84f8ed 100644 --- a/crates/fluke/Cargo.toml +++ b/crates/fluke/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "fluke" -version = "0.1.1" +version = "0.1.2" edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/bearcove/fluke" @@ -21,8 +21,8 @@ uring = ["fluke-buffet/uring"] byteorder = "1.5.0" eyre = { version = "0.6.12", default-features = false } futures-util = "0.3.30" -fluke-buffet = { version = "0.2.0", path = "../fluke-buffet" } -fluke-hpack = { version = "0.3.1", path = "../fluke-hpack" } +fluke-buffet = { version = "0.3.0", path = "../fluke-buffet" } +fluke-hpack = { version = "0.3.2", path = "../fluke-hpack" } http = "1.1.0" memchr = "2.7.4" nom = { version = "7.1.3", default-features = false } @@ -35,10 +35,10 @@ smallvec = { version = "1.13.2", default-features = false, features = [ thiserror = { version = "1.0.63", default-features = false } tokio = { version = "1.39.2", features = ["macros", "sync"] } tracing = { version = "0.1.40", default-features = false } -fluke-h2-parse = { version = "0.1.1", path = "../fluke-h2-parse" } +fluke-h2-parse = { version = "0.2.0", path = "../fluke-h2-parse" } [dev-dependencies] -fluke-buffet = { version = "0.2.0", path = "../fluke-buffet" } +fluke-buffet = { version = "0.3.0", path = "../fluke-buffet" } bytes = { version = "1.7.1", default-features = false } pretty_assertions = { version = "1.4.0", default-features = false, features = [ "std", diff --git a/crates/httpwg-cli/CHANGELOG.md b/crates/httpwg-cli/CHANGELOG.md new file mode 100644 index 00000000..d8c1a7c2 --- /dev/null +++ b/crates/httpwg-cli/CHANGELOG.md @@ -0,0 +1,20 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [0.1.0](https://github.com/bearcove/fluke/releases/tag/httpwg-cli-v0.1.0) - 2024-08-13 + +### Other +- More async cancellation cleanups +- Make httpwg-cli build on macOS +- Upgrade dependencies +- Okay the takeaway is that tasks spawned when a runtime is shutting down immediately get dropped> +- Run httpwg tests over TCP in CI +- Everything passes +- Run httpwg-cli tests in parallel +- grahhhh why would you answer in multiple headers grr +- Start using httpwg-cli against real servers diff --git a/crates/httpwg-cli/Cargo.toml b/crates/httpwg-cli/Cargo.toml index 93b4117d..a77bad06 100644 --- a/crates/httpwg-cli/Cargo.toml +++ b/crates/httpwg-cli/Cargo.toml @@ -10,8 +10,8 @@ path = "src/main.rs" [dependencies] color-eyre = "0.6.3" eyre = "0.6.12" -fluke-buffet = { version = "0.2.0", path = "../fluke-buffet" } -httpwg = { version = "0.1.1", path = "../httpwg" } +fluke-buffet = { version = "0.3.0", path = "../fluke-buffet" } +httpwg = { version = "0.2.0", path = "../httpwg" } lexopt = "0.3.0" libc = "0.2.155" tokio = { version = "1.39.2", features = ["time"] } diff --git a/crates/httpwg-macros/CHANGELOG.md b/crates/httpwg-macros/CHANGELOG.md new file mode 100644 index 00000000..9d9abaad --- /dev/null +++ b/crates/httpwg-macros/CHANGELOG.md @@ -0,0 +1,51 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [0.1.1](https://github.com/bearcove/fluke/compare/httpwg-macros-v0.1.0...httpwg-macros-v0.1.1) - 2024-08-13 + +### Other +- Well we pass h2spec strict! +- Change Headers to a VecDeque<(Piece, Piece)>, closes [#193](https://github.com/bearcove/fluke/pull/193) +- Ey test code was wrong +- Start working on returning 400 from fluke +- wip goaway tests +- Connect tests +- More section 8 tests +- More Section 8 tests +- Make 'static part of IntoHalves +- A bunch of failing section 8 tests +- Some section 8 tests (acceptable headers) +- RFC 9113 Section 8 +- Add section 7 tests +- Move 3.4 tests to _3 file +- Make test invalid_header_block_fragment more readable +- Nove section 5 tests all to the same file +- refactor settings sending, add more helpers, etc. +- Add 6.8 +- ping specs +- Add 6.5.3 specs +- WIP settings parsing +- 6.5 tests +- 6.4 tests +- more 6.x tests +- add 6.2 cases (in 6.1 file for now) +- 6.1 tests +- Section 5.5 +- 5.4.1 test cases +- Section 5.3 +- 5.1.2 tests +- 5.1.1 tests +- 5.1 specs compile +- Add rfc 9113 section 5.1 specs +- rename 3.4 tests to proper section +- 4.3 tests +- More 4.2 tests +- More 4.1 tests +- Clean up 4_1 tests +- Add a spec to 4_1_frame_format, cf. [#175](https://github.com/bearcove/fluke/pull/175) +- release diff --git a/crates/httpwg-macros/Cargo.toml b/crates/httpwg-macros/Cargo.toml index cedbf282..c04757fc 100644 --- a/crates/httpwg-macros/Cargo.toml +++ b/crates/httpwg-macros/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "httpwg-macros" -version = "0.1.0" +version = "0.1.1" edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/bearcove/fluke" @@ -12,4 +12,4 @@ Macros to allow generating httpwg unit tests rust-version = "1.75" [dependencies] -httpwg = { version = "0.1.1", path = "../httpwg" } +httpwg = { version = "0.2.0", path = "../httpwg" } diff --git a/crates/httpwg/CHANGELOG.md b/crates/httpwg/CHANGELOG.md index 46ba18d5..6c6c1099 100644 --- a/crates/httpwg/CHANGELOG.md +++ b/crates/httpwg/CHANGELOG.md @@ -6,6 +6,72 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.2.0](https://github.com/bearcove/fluke/compare/httpwg-v0.1.1...httpwg-v0.2.0) - 2024-08-13 + +### Other +- Upgrade hyper + fix cancellation in test rig +- Upgrade dependencies +- debug shutdowns +- shutting down is hard +- Debug tests +- Well we pass h2spec strict! +- well, h2spec and httpwg-cli agree on almost everything +- Introduce fluke-httpwg-server so we can run httpwg over TCP +- Yey it runs +- grahhhh why would you answer in multiple headers grr +- Start using httpwg-cli against real servers +- All tests pass! +- Change Headers to a VecDeque<(Piece, Piece)>, closes [#193](https://github.com/bearcove/fluke/pull/193) +- Ey test code was wrong +- Start working on returning 400 from fluke +- wip goaway tests +- Connect tests +- More section 8 tests +- More Section 8 tests +- Make 'static part of IntoHalves +- A bunch of failing section 8 tests +- Some section 8 tests (acceptable headers) +- RFC 9113 Section 8 +- Add section 7 tests +- Move 3.4 tests to _3 file +- Make test invalid_header_block_fragment more readable +- Nove section 5 tests all to the same file +- race condition in sends_multiple_window_update_frames_increasing_flow_control_window_above_max_on_stream, we can fix that +- tests build again +- Fix settings (partly) +- section 6 tests compile +- refactor settings sending, add more helpers, etc. +- Add 6.8 +- ping specs +- Add 6.5.3 specs +- Introduce SettingsError, fix error code when receiving invalid initial window size +- WIP settings parsing +- 6.5 tests +- 6.4 tests +- more 6.x tests +- add 6.2 cases (in 6.1 file for now) +- 6.1 tests +- Send unknown frame for right stream_id +- Section 5.5 +- 5.4.1 test cases +- Section 5.3 +- 5.1.2 tests +- 5.1.1 tests +- Take care of clippy warnings +- Remove some warnings +- All 5.1 tests pass +- verify_stream_close might be wrong +- Fix some tests +- 5.1 specs compile +- Add rfc 9113 section 5.1 specs +- rename 3.4 tests to proper section +- 4.3 tests +- More 4.2 tests +- More 4.1 tests +- clean up tests some more +- Clean up 4_1 tests +- Add a spec to 4_1_frame_format, cf. [#175](https://github.com/bearcove/fluke/pull/175) + ## [0.1.1](https://github.com/bearcove/fluke/compare/httpwg-v0.1.0...httpwg-v0.1.1) - 2024-05-27 ### Other diff --git a/crates/httpwg/Cargo.toml b/crates/httpwg/Cargo.toml index 77bb4d6b..6470eb52 100644 --- a/crates/httpwg/Cargo.toml +++ b/crates/httpwg/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "httpwg" -version = "0.1.1" +version = "0.2.0" edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/bearcove/fluke" @@ -15,9 +15,9 @@ rust-version = "1.75" bytes = "1.7.1" enumflags2 = "0.7.10" eyre = "0.6.12" -fluke-buffet = { version = "0.2.0", path = "../fluke-buffet" } -fluke-h2-parse = { version = "0.1.1", path = "../fluke-h2-parse" } -fluke-hpack = { version = "0.3.1", path = "../fluke-hpack" } +fluke-buffet = { version = "0.3.0", path = "../fluke-buffet" } +fluke-h2-parse = { version = "0.2.0", path = "../fluke-h2-parse" } +fluke-hpack = { version = "0.3.2", path = "../fluke-hpack" } futures-util = "0.3.30" pretty-hex = "0.4.1" tokio = { version = "1.39.2", features = ["time"] }