-
-
Notifications
You must be signed in to change notification settings - Fork 3
feature: use bytes as values in http proto #65
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Signed-off-by: Valery Piashchynski <piashchynski.valery@gmail.com>
WalkthroughThis pull request introduces updates to the project's Go module configuration and protocol buffer definition. The changes primarily involve upgrading the Go version, toolchain, and various dependencies to their latest minor versions. Additionally, a modification in the HTTP header value type has been made in the protocol buffer definition, changing from a repeated string to bytes representation. A subproject commit identifier has also been updated. Changes
Poem
📜 Recent review detailsConfiguration used: CodeRabbit UI ⛔ Files ignored due to path filters (6)
📒 Files selected for processing (1)
✅ Files skipped from review due to trivial changes (1)
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (2)
build/http/v1/http.pb.gois excluded by!**/*.pb.gogo.sumis excluded by!**/*.sum
📒 Files selected for processing (2)
go.mod(1 hunks)proto/http/v1/http.proto(1 hunks)
🔇 Additional comments (3)
go.mod (2)
3-5: Verify Go version compatibilityThe upgrade to Go 1.23 and toolchain 1.23.4 is beyond my knowledge cutoff. Please ensure:
- This version is officially released and stable
- All dependencies are compatible with Go 1.23
- No breaking changes affect the codebase
11-15: Verify dependency version compatibilityMultiple dependencies have been updated to versions from January 2025, which is beyond my knowledge cutoff. Please ensure:
- These versions are stable releases
- No breaking changes are introduced
- Security vulnerabilities are addressed
proto/http/v1/http.proto (1)
Line range hint
11-21: Ensure comprehensive testing across all HeaderValue usagesThe HeaderValue type is used in multiple messages:
- Request (header, cookies, attributes)
- Header (header)
- Response (headers)
Please ensure:
- Test cases cover all these different usages
- Performance benchmarks compare old vs new implementation
- Edge cases are handled (empty values, large payloads, special characters)
Also applies to: 22-24, 25-28, 29-34
|
|
||
| message HeaderValue { | ||
| repeated string value = 1; | ||
| bytes value = 1; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Breaking Change: HeaderValue type modification requires careful migration
The change from repeated string to bytes for HeaderValue is a breaking change that will require updates in all clients using this API. While this aligns with the PR objective and potentially improves performance, please ensure:
- Document the breaking change in CHANGELOG.md
- Provide migration guidelines for clients
- Consider backward compatibility strategy
- Update all dependent repositories
This change could improve performance by reducing serialization overhead, but requires careful handling of encoding/decoding on both server and client sides.
Let's verify the impact:
#!/bin/bash
# Find all usages of HeaderValue in the codebase
rg -l "HeaderValue" --type go
# Find potential protocol buffer imports that might be affected
rg -l "proto.Marshal|proto.Unmarshal" --type goSigned-off-by: Valery Piashchynski <piashchynski.valery@gmail.com>
Reason for This PR
ref: roadrunner-server/roadrunner#2104
Description of Changes
License Acceptance
By submitting this pull request, I confirm that my contribution is made under
the terms of the MIT license.
PR Checklist
[Author TODO: Meet these criteria.][Reviewer TODO: Verify that these criteria are met. Request changes if not]git commit -s).CHANGELOG.md.Summary by CodeRabbit
Dependencies
Protobuf Changes
HeaderValuemessage to usebytesinstead ofrepeated stringfor value fieldSubproject Updates