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

Warn compatibility methods in RFC3986_PARSER #114

Merged
merged 2 commits into from
Aug 8, 2024

Conversation

hsbt
Copy link
Member

@hsbt hsbt commented Aug 8, 2024

No description provided.

@hsbt hsbt merged commit 28b9630 into master Aug 8, 2024
48 checks passed
@hsbt hsbt deleted the warn-compatibility-methods branch August 8, 2024 02:09
yahonda added a commit to yahonda/rails that referenced this pull request Aug 23, 2024
This pull request allows `URI::RFC3986_PARSER` warnings appered since https://buildkite.com/rails/rails-nightly/builds/931

This warning has been implemented to Ruby master branch via ruby/ruby@b41d799
and the original pull request for URI is ruby/uri#114

We are not able to just replace `URI::DEFAULT_PARSER` with `URI::RFC2396_PARSER`
because `URI::RFC2396_PARSER` gets `uninitialized constant URI::RFC2396_PARSER (NameError)` with Ruby 3.3.4 as reported ruby/uri#118

We can revert this commit and replace `URI::DEFAULT_PARSER` with `URI::RFC2396_PARSER` once `URI::RFC2396_PARSER` is available for uri bundled with Ruby 3.3.4 or older versions.

- This commit allows the warning below and let Rails CI against Ruby master branch run

```
$ RAILS_STRICT_WARNINGS=1 bin/test test/abstract/callbacks_test.rb
/home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/mapper.rb:2063: warning: URI::RFC3986_PARSER.escape is obsoleted. Use URI::RFC2396_PARSER.escape explicitly.
/home/yahonda/src/github.com/rails/rails/activesupport/lib/active_support/testing/strict_warnings.rb:35:in 'ActiveSupport::RaiseWarnings#warn': /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/mapper.rb:2063: warning: URI::RFC3986_PARSER.escape is obsoleted. Use URI::RFC2396_PARSER.escape explicitly. (ActiveSupport::RaiseWarnings::WarningError)
        from <internal:warning>:54:in 'Kernel#warn'
        from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.4.0+0/uri/rfc3986_parser.rb:156:in 'URI::RFC3986_Parser#escape'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/mapper.rb:2063:in 'ActionDispatch::Routing::Mapper::Resources#add_route'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/mapper.rb:2038:in 'ActionDispatch::Routing::Mapper::Resources#decomposed_match'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/mapper.rb:2002:in 'block in ActionDispatch::Routing::Mapper::Resources#map_match'
        from <internal:array>:53:in 'Array#each'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/mapper.rb:1996:in 'ActionDispatch::Routing::Mapper::Resources#map_match'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/mapper.rb:1739:in 'ActionDispatch::Routing::Mapper::Resources#match'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/mapper.rb:798:in 'ActionDispatch::Routing::Mapper::HttpHelpers#map_method'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/mapper.rb:741:in 'ActionDispatch::Routing::Mapper::HttpHelpers#get'
        from /home/yahonda/src/github.com/rails/rails/actionpack/test/abstract_unit.rb:71:in 'block (2 levels) in <top (required)>'
        from /home/yahonda/src/github.com/rails/rails/activesupport/lib/active_support/deprecation/reporting.rb:43:in 'ActiveSupport::Deprecation::Reporting#silence'
        from /home/yahonda/src/github.com/rails/rails/actionpack/test/abstract_unit.rb:70:in 'block in <top (required)>'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/route_set.rb:479:in 'BasicObject#instance_exec'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/route_set.rb:479:in 'ActionDispatch::Routing::RouteSet#eval_block'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/route_set.rb:461:in 'ActionDispatch::Routing::RouteSet#draw'
        from /home/yahonda/src/github.com/rails/rails/actionpack/test/abstract_unit.rb:69:in '<top (required)>'
        from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.4.0+0/bundled_gems.rb:75:in 'Kernel.require'
        from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.4.0+0/bundled_gems.rb:75:in 'block (2 levels) in Kernel#replace_require'
        from /home/yahonda/src/github.com/rails/rails/actionpack/test/abstract/callbacks_test.rb:3:in '<top (required)>'
        from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.4.0+0/bundled_gems.rb:75:in 'Kernel.require'
        from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.4.0+0/bundled_gems.rb:75:in 'block (2 levels) in Kernel#replace_require'
        from /home/yahonda/src/github.com/rails/rails/railties/lib/rails/test_unit/runner.rb:62:in 'block in Rails::TestUnit::Runner.load_tests'
        from <internal:array>:53:in 'Array#each'
        from /home/yahonda/src/github.com/rails/rails/railties/lib/rails/test_unit/runner.rb:60:in 'Rails::TestUnit::Runner.load_tests'
        from /home/yahonda/src/github.com/rails/rails/railties/lib/rails/test_unit/runner.rb:52:in 'Rails::TestUnit::Runner.run'
        from /home/yahonda/src/github.com/rails/rails/tools/test.rb:18:in '<top (required)>'
        from bin/test:5:in 'Kernel#require_relative'
        from bin/test:5:in '<main>'
$
```
yahonda added a commit to yahonda/rails that referenced this pull request Aug 23, 2024
This pull request allows `URI::RFC3986_PARSER` warnings appeared since https://buildkite.com/rails/rails-nightly/builds/931

This warning has been implemented to Ruby master branch via ruby/ruby@b41d799
and the original pull request for URI is ruby/uri#114

We are not able to just replace `URI::DEFAULT_PARSER` with `URI::RFC2396_PARSER`
because `URI::RFC2396_PARSER` gets `uninitialized constant URI::RFC2396_PARSER (NameError)` with Ruby 3.3.4 as reported ruby/uri#118

We can revert this commit and replace `URI::DEFAULT_PARSER` with `URI::RFC2396_PARSER` once `URI::RFC2396_PARSER` is available for uri bundled with Ruby 3.3.4 or older versions.

- This commit allows the warning below and let Rails CI against Ruby master branch run

```
$ RAILS_STRICT_WARNINGS=1 bin/test test/abstract/callbacks_test.rb
/home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/mapper.rb:2063: warning: URI::RFC3986_PARSER.escape is obsoleted. Use URI::RFC2396_PARSER.escape explicitly.
/home/yahonda/src/github.com/rails/rails/activesupport/lib/active_support/testing/strict_warnings.rb:35:in 'ActiveSupport::RaiseWarnings#warn': /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/mapper.rb:2063: warning: URI::RFC3986_PARSER.escape is obsoleted. Use URI::RFC2396_PARSER.escape explicitly. (ActiveSupport::RaiseWarnings::WarningError)
        from <internal:warning>:54:in 'Kernel#warn'
        from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.4.0+0/uri/rfc3986_parser.rb:156:in 'URI::RFC3986_Parser#escape'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/mapper.rb:2063:in 'ActionDispatch::Routing::Mapper::Resources#add_route'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/mapper.rb:2038:in 'ActionDispatch::Routing::Mapper::Resources#decomposed_match'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/mapper.rb:2002:in 'block in ActionDispatch::Routing::Mapper::Resources#map_match'
        from <internal:array>:53:in 'Array#each'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/mapper.rb:1996:in 'ActionDispatch::Routing::Mapper::Resources#map_match'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/mapper.rb:1739:in 'ActionDispatch::Routing::Mapper::Resources#match'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/mapper.rb:798:in 'ActionDispatch::Routing::Mapper::HttpHelpers#map_method'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/mapper.rb:741:in 'ActionDispatch::Routing::Mapper::HttpHelpers#get'
        from /home/yahonda/src/github.com/rails/rails/actionpack/test/abstract_unit.rb:71:in 'block (2 levels) in <top (required)>'
        from /home/yahonda/src/github.com/rails/rails/activesupport/lib/active_support/deprecation/reporting.rb:43:in 'ActiveSupport::Deprecation::Reporting#silence'
        from /home/yahonda/src/github.com/rails/rails/actionpack/test/abstract_unit.rb:70:in 'block in <top (required)>'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/route_set.rb:479:in 'BasicObject#instance_exec'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/route_set.rb:479:in 'ActionDispatch::Routing::RouteSet#eval_block'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/route_set.rb:461:in 'ActionDispatch::Routing::RouteSet#draw'
        from /home/yahonda/src/github.com/rails/rails/actionpack/test/abstract_unit.rb:69:in '<top (required)>'
        from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.4.0+0/bundled_gems.rb:75:in 'Kernel.require'
        from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.4.0+0/bundled_gems.rb:75:in 'block (2 levels) in Kernel#replace_require'
        from /home/yahonda/src/github.com/rails/rails/actionpack/test/abstract/callbacks_test.rb:3:in '<top (required)>'
        from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.4.0+0/bundled_gems.rb:75:in 'Kernel.require'
        from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.4.0+0/bundled_gems.rb:75:in 'block (2 levels) in Kernel#replace_require'
        from /home/yahonda/src/github.com/rails/rails/railties/lib/rails/test_unit/runner.rb:62:in 'block in Rails::TestUnit::Runner.load_tests'
        from <internal:array>:53:in 'Array#each'
        from /home/yahonda/src/github.com/rails/rails/railties/lib/rails/test_unit/runner.rb:60:in 'Rails::TestUnit::Runner.load_tests'
        from /home/yahonda/src/github.com/rails/rails/railties/lib/rails/test_unit/runner.rb:52:in 'Rails::TestUnit::Runner.run'
        from /home/yahonda/src/github.com/rails/rails/tools/test.rb:18:in '<top (required)>'
        from bin/test:5:in 'Kernel#require_relative'
        from bin/test:5:in '<main>'
$
```
tagliala added a commit to tagliala/caxlsx that referenced this pull request Aug 29, 2024
This commit introduces a new class method `uri_parser` to handle
URI parsing in a way that's compatible with both newer and older
versions of Ruby's URI library. It checks for the presence of
`URI::RFC2396_PARSER` and falls back to `URI::DEFAULT_PARSER` if
not available, ensuring consistent behavior across different Ruby
versions.

Close caxlsx#397

Ref: ruby/uri#114
tagliala added a commit to tagliala/caxlsx that referenced this pull request Aug 29, 2024
This commit introduces a new class method `uri_parser` to handle
URI parsing in a way that's compatible with both newer and older
versions of Ruby's URI library. It checks for the presence of
`URI::RFC2396_PARSER` and falls back to `URI::DEFAULT_PARSER` if
not available, ensuring consistent behavior across different Ruby
versions.

Close caxlsx#397

Ref: ruby/uri#114
tagliala added a commit to tagliala/caxlsx that referenced this pull request Aug 29, 2024
This commit introduces a new class method `uri_parser` to handle
URI parsing in a way that's compatible with both newer and older
versions of Ruby's URI library. It checks for the presence of
`URI::RFC2396_PARSER` and falls back to `URI::DEFAULT_PARSER` if
not available, ensuring consistent behavior across different Ruby
versions.

Close caxlsx#397

Ref: ruby/uri#114
tagliala added a commit to tagliala/caxlsx that referenced this pull request Sep 1, 2024
This commit introduces a new method `Axlsx#uri_parser` to handle
URI parsing in a way that's compatible with both newer and older
versions of Ruby's URI library. It checks for the presence of
`URI::RFC2396_PARSER` and falls back to `URI::DEFAULT_PARSER` if
not available, ensuring consistent behavior across different Ruby
versions.

Close caxlsx#397

Ref: ruby/uri#114
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
casperisfine pushed a commit to Shopify/activeresource that referenced this pull request Sep 9, 2024
casperisfine pushed a commit to Shopify/rack that referenced this pull request Sep 9, 2024
casperisfine pushed a commit to Shopify/rack that referenced this pull request Sep 9, 2024
tenderlove pushed a commit to rack/rack that referenced this pull request Sep 9, 2024
* Remove dependency on `base64`

The gem was made a default gems, so it should be added to the gemspec,
but most gems out there decided to just use `pack/unpack` to not add
a dependency, that's the approach I used there.

* Fix URI deprecation warnings

Ref: ruby/uri#114

* Update CI matrix

* Restore Ruby 2.3 compatibility

---------

Co-authored-by: Jean Boussier <jean.boussier@gmail.com>
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
This pull request allows `URI::RFC3986_PARSER` warnings appeared since https://buildkite.com/rails/rails-nightly/builds/931

This warning has been implemented to Ruby master branch via ruby/ruby@b41d799
and the original pull request for URI is ruby/uri#114

We are not able to just replace `URI::DEFAULT_PARSER` with `URI::RFC2396_PARSER`
because `URI::RFC2396_PARSER` gets `uninitialized constant URI::RFC2396_PARSER (NameError)` with Ruby 3.3.4 as reported ruby/uri#118

We can revert this commit and replace `URI::DEFAULT_PARSER` with `URI::RFC2396_PARSER` once `URI::RFC2396_PARSER` is available for uri bundled with Ruby 3.3.4 or older versions.

- This commit allows the warning below and let Rails CI against Ruby master branch run

```
$ RAILS_STRICT_WARNINGS=1 bin/test test/abstract/callbacks_test.rb
/home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/mapper.rb:2063: warning: URI::RFC3986_PARSER.escape is obsoleted. Use URI::RFC2396_PARSER.escape explicitly.
/home/yahonda/src/github.com/rails/rails/activesupport/lib/active_support/testing/strict_warnings.rb:35:in 'ActiveSupport::RaiseWarnings#warn': /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/mapper.rb:2063: warning: URI::RFC3986_PARSER.escape is obsoleted. Use URI::RFC2396_PARSER.escape explicitly. (ActiveSupport::RaiseWarnings::WarningError)
        from <internal:warning>:54:in 'Kernel#warn'
        from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.4.0+0/uri/rfc3986_parser.rb:156:in 'URI::RFC3986_Parser#escape'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/mapper.rb:2063:in 'ActionDispatch::Routing::Mapper::Resources#add_route'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/mapper.rb:2038:in 'ActionDispatch::Routing::Mapper::Resources#decomposed_match'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/mapper.rb:2002:in 'block in ActionDispatch::Routing::Mapper::Resources#map_match'
        from <internal:array>:53:in 'Array#each'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/mapper.rb:1996:in 'ActionDispatch::Routing::Mapper::Resources#map_match'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/mapper.rb:1739:in 'ActionDispatch::Routing::Mapper::Resources#match'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/mapper.rb:798:in 'ActionDispatch::Routing::Mapper::HttpHelpers#map_method'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/mapper.rb:741:in 'ActionDispatch::Routing::Mapper::HttpHelpers#get'
        from /home/yahonda/src/github.com/rails/rails/actionpack/test/abstract_unit.rb:71:in 'block (2 levels) in <top (required)>'
        from /home/yahonda/src/github.com/rails/rails/activesupport/lib/active_support/deprecation/reporting.rb:43:in 'ActiveSupport::Deprecation::Reporting#silence'
        from /home/yahonda/src/github.com/rails/rails/actionpack/test/abstract_unit.rb:70:in 'block in <top (required)>'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/route_set.rb:479:in 'BasicObject#instance_exec'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/route_set.rb:479:in 'ActionDispatch::Routing::RouteSet#eval_block'
        from /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/routing/route_set.rb:461:in 'ActionDispatch::Routing::RouteSet#draw'
        from /home/yahonda/src/github.com/rails/rails/actionpack/test/abstract_unit.rb:69:in '<top (required)>'
        from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.4.0+0/bundled_gems.rb:75:in 'Kernel.require'
        from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.4.0+0/bundled_gems.rb:75:in 'block (2 levels) in Kernel#replace_require'
        from /home/yahonda/src/github.com/rails/rails/actionpack/test/abstract/callbacks_test.rb:3:in '<top (required)>'
        from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.4.0+0/bundled_gems.rb:75:in 'Kernel.require'
        from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.4.0+0/bundled_gems.rb:75:in 'block (2 levels) in Kernel#replace_require'
        from /home/yahonda/src/github.com/rails/rails/railties/lib/rails/test_unit/runner.rb:62:in 'block in Rails::TestUnit::Runner.load_tests'
        from <internal:array>:53:in 'Array#each'
        from /home/yahonda/src/github.com/rails/rails/railties/lib/rails/test_unit/runner.rb:60:in 'Rails::TestUnit::Runner.load_tests'
        from /home/yahonda/src/github.com/rails/rails/railties/lib/rails/test_unit/runner.rb:52:in 'Rails::TestUnit::Runner.run'
        from /home/yahonda/src/github.com/rails/rails/tools/test.rb:18:in '<top (required)>'
        from bin/test:5:in 'Kernel#require_relative'
        from bin/test:5:in '<main>'
$
```
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
adrianna-chang-shopify added a commit to Shopify/maintenance_tasks that referenced this pull request Nov 11, 2024
`uri` switched the default parser from RFC2396 to RFC3986. The new parser emits a deprecation
warning on a few methods and delegates them to RFC2396. See ruby/uri#114.

The selenium-webdriver gem [calls `URI::RFC3986_PARSER.escape`][webdriver-callsite], which is now deprecated.
Until this is fixed in selenium-webdriver, ignore the warning.

[webdriver-callsite]: https://github.com/SeleniumHQ/selenium/blob/trunk/rb/lib/selenium/webdriver/remote/bridge.rb#L679
adrianna-chang-shopify added a commit to Shopify/maintenance_tasks that referenced this pull request Nov 11, 2024
`uri` switched the default parser from RFC2396 to RFC3986. The new parser emits a deprecation
warning on a few methods and delegates them to RFC2396. See ruby/uri#114.

The selenium-webdriver gem [calls `URI::RFC3986_PARSER.escape`][webdriver-callsite], which is now deprecated.
Until this is fixed in selenium-webdriver, ignore the warning.

[webdriver-callsite]: https://github.com/SeleniumHQ/selenium/blob/trunk/rb/lib/selenium/webdriver/remote/bridge.rb#L679
adrianna-chang-shopify added a commit to Shopify/maintenance_tasks that referenced this pull request Nov 12, 2024
* Ignore URI::RFC3986_PARSER.escape deprecation warning

`uri` switched the default parser from RFC2396 to RFC3986. The new parser emits a deprecation
warning on a few methods and delegates them to RFC2396. See ruby/uri#114.

The selenium-webdriver gem [calls `URI::RFC3986_PARSER.escape`][webdriver-callsite], which is now deprecated.
Until this is fixed in selenium-webdriver, ignore the warning.

[webdriver-callsite]: https://github.com/SeleniumHQ/selenium/blob/trunk/rb/lib/selenium/webdriver/remote/bridge.rb#L679

* Ignore warning from sprockets gem as well
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.

1 participant