-
Notifications
You must be signed in to change notification settings - Fork 4
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
Types: unreserve more characters #18
base: master
Are you sure you want to change the base?
Types: unreserve more characters #18
Conversation
Thank you for the PR, I hope to take some time this weekend to check the correctness of these changes and see what the best course of action is in releasing, since it feels like this change might break people's previous expectations of what this code does. |
Seeing as this will produce different output of a function that is already used in the wild, I'm hesitant to add this change "in-place". It would be better to add The problem is that
I'm already in the process of adding regression tests and other missing tests, so I'll keep this PR open until I'm happy with the coverage and then we can see if this would break anything after those tests are merged in. Could you:
Also, RFC 3986 states that Query and Segment parts can include non-percent-encoded |
I've added a bunch of tests and also regression tests, so this change will most certainly fail on the golden test I added. Please make sure to run the test and |
adding
i have no idea how to remedy this situation, though. also, the roundtrip test i added for |
The failing tests when not percent-encoding I'll think about the |
adds all missing characters specified in the
sub-delims
ABNF rule in RFC 3986 to the unreserved lists inNetwork.HTTP.Types.URI
with two exceptions:;
and+
are excluded from the query string list because the library already counts;
as query key-value pair delimiters (so adding them would break compatibility and does indeed cause tests to fail), and+
because they have special handling inparseQueryReplacePlus
.