Skip to content
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

Use RFC3986_Parser by default #107

Merged
merged 7 commits into from
Jul 19, 2024
Merged

Use RFC3986_Parser by default #107

merged 7 commits into from
Jul 19, 2024

Conversation

hsbt
Copy link
Member

@hsbt hsbt commented Jul 17, 2024

Fixed #104
Fixed #105

https://bugs.ruby-lang.org/issues/19266

This pull-request switched URI::DEFAULT_PARSER to URI::RFC3986_Parser. And I added switch-back feature for URI::RFC2396_Parser.

URI.parser = URI::RFC2396_PARSER

If user want to use RFC2396_PARSER, they can use it with the above configuration.

@hsbt hsbt marked this pull request as ready for review July 18, 2024 01:33
If given block to URI.extract, it returns nil.
matzbot pushed a commit to ruby/ruby that referenced this pull request Jul 18, 2024
@hsbt hsbt merged commit b8ea06f into master Jul 19, 2024
48 checks passed
@hsbt hsbt deleted the use-rfc3986 branch July 19, 2024 00:50
hsbt added a commit to hsbt/mustermann that referenced this pull request Jul 19, 2024
In background, URI will change DEFAULT_PARSER to RFC2396_Parser.

ruby/uri#107

After that, we lost some of regex pattern like UNSAFE.
yahonda added a commit to yahonda/rails that referenced this pull request Sep 2, 2024
Ruby 3.4 changes `URI::DEFAULT_PARSER` to `URI::RFC3986_Parser`
and deprecates `URI::RFC3986_PARSER.make_regexp`,`URI::RFC3986_PARSER.escape`, `URI::RFC3986_PARSER.unescape` and `URI::RFC3986_PARSER.extract`.

uri v0.12.2 for Ruby 3.2/3.1 and v0.13.1 for Ruby 3.3 adds `URI::RFC2396_PARSER`.
As of right now there is no way to use uri v0.12.2 for Ruby 3.2/3.1 and v0.13.1 for Ruby 3.3,
This commit uses v0.13.1 or higher version for all supported Ruby versions by Rails main branch.

It also reverts rails#52682 because the original issue has been resolved.

Refer to following URL for the backgrond of this change:
- URI::Generic should use URI::RFC3986_PARSER instead of URI::DEFAULT_PARSER
https://bugs.ruby-lang.org/issues/19266

- Use RFC3986_Parser by default
ruby/uri#107

- Warn compatibility methods in RFC3986_PARSER
ruby/uri#114

- Also warn URI::RFC3986_PARSER.extract
ruby/uri#121

- Define RFC2396_PARSER for Ruby 3.3
ruby/uri#119

- Define RFC2396_PARSER for Ruby 3.2 and 3.1
ruby/uri#120
byroot pushed a commit to byroot/rails that referenced this pull request Oct 3, 2024
Ruby 3.4 changes `URI::DEFAULT_PARSER` to `URI::RFC3986_Parser`
and deprecates `URI::RFC3986_PARSER.make_regexp`,`URI::RFC3986_PARSER.escape`, `URI::RFC3986_PARSER.unescape` and `URI::RFC3986_PARSER.extract`.

uri v0.12.2 for Ruby 3.2/3.1 and v0.13.1 for Ruby 3.3 adds `URI::RFC2396_PARSER`.
As of right now there is no way to use uri v0.12.2 for Ruby 3.2/3.1 and v0.13.1 for Ruby 3.3,
This commit uses v0.13.1 or higher version for all supported Ruby versions by Rails main branch.

It also reverts rails#52682 because the original issue has been resolved.

Refer to following URL for the backgrond of this change:
- URI::Generic should use URI::RFC3986_PARSER instead of URI::DEFAULT_PARSER
https://bugs.ruby-lang.org/issues/19266

- Use RFC3986_Parser by default
ruby/uri#107

- Warn compatibility methods in RFC3986_PARSER
ruby/uri#114

- Also warn URI::RFC3986_PARSER.extract
ruby/uri#121

- Define RFC2396_PARSER for Ruby 3.3
ruby/uri#119

- Define RFC2396_PARSER for Ruby 3.2 and 3.1
ruby/uri#120
DanielaVelasquez pushed a commit to DanielaVelasquez/rails that referenced this pull request Oct 3, 2024
Ruby 3.4 changes `URI::DEFAULT_PARSER` to `URI::RFC3986_Parser`
and deprecates `URI::RFC3986_PARSER.make_regexp`,`URI::RFC3986_PARSER.escape`, `URI::RFC3986_PARSER.unescape` and `URI::RFC3986_PARSER.extract`.

uri v0.12.2 for Ruby 3.2/3.1 and v0.13.1 for Ruby 3.3 adds `URI::RFC2396_PARSER`.
As of right now there is no way to use uri v0.12.2 for Ruby 3.2/3.1 and v0.13.1 for Ruby 3.3,
This commit uses v0.13.1 or higher version for all supported Ruby versions by Rails main branch.

It also reverts rails#52682 because the original issue has been resolved.

Refer to following URL for the backgrond of this change:
- URI::Generic should use URI::RFC3986_PARSER instead of URI::DEFAULT_PARSER
https://bugs.ruby-lang.org/issues/19266

- Use RFC3986_Parser by default
ruby/uri#107

- Warn compatibility methods in RFC3986_PARSER
ruby/uri#114

- Also warn URI::RFC3986_PARSER.extract
ruby/uri#121

- Define RFC2396_PARSER for Ruby 3.3
ruby/uri#119

- Define RFC2396_PARSER for Ruby 3.2 and 3.1
ruby/uri#120
yahonda added a commit to yahonda/sprockets that referenced this pull request Oct 22, 2024
* Steps to reproduce

```ruby
$ ruby -v
ruby 3.4.0dev (2024-10-21T16:48:53Z master 5131fb5dbe) +PRISM [x86_64-linux]
$ bundle exec rake 2>&1 |grep 'warning: URI::RFC3986_PARSER'
```

* Warnings addressed by this commit:
```ruby
/path/to/sprockets/lib/sprockets/uri_utils.rb:48: warning: URI::RFC3986_PARSER.unescape is obsoleted. Use URI::RFC2396_PARSER.unescape explicitly.
/path/to/sprockets/lib/sprockets/uri_utils.rb:66: warning: URI::RFC3986_PARSER.escape is obsoleted. Use URI::RFC2396_PARSER.escape explicitly.
/path/to/sprockets/lib/sprockets/uri_utils.rb:165: warning: URI::RFC3986_PARSER.escape is obsoleted. Use URI::RFC2396_PARSER.escape explicitly.
/path/to/sprockets/lib/sprockets/uri_utils.rb:185: warning: URI::RFC3986_PARSER.unescape is obsoleted. Use URI::RFC2396_PARSER.unescape explicitly.
```

Refer to the following URL for the background of this change:

- URI::Generic should use URI::RFC3986_PARSER instead of URI::DEFAULT_PARSER https://bugs.ruby-lang.org/issues/19266
- Use RFC3986_Parser by default ruby/uri#107
- Warn compatibility methods in RFC3986_PARSER ruby/uri#114
headius pushed a commit to headius/spec that referenced this pull request Oct 31, 2024
headius pushed a commit to headius/spec that referenced this pull request Oct 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

using RFC_3986 with URI::Generic.build
1 participant