From: sam.saffron@... Date: 2014-12-29T23:16:21+00:00 Subject: [ruby-core:67210] [ruby-trunk - Bug #10669] Incorrect url parsing in 2.2.0 Issue #10669 has been updated by Sam Saffron. I get that, but a trend is developing here that is concerning. https://github.com/rack/rack/blob/ab172af1b63f0d8e91ce579dd2907c43b96cf82a/lib/rack/mock.rb#L82-L85 we have a workaround but it seems a bit odd as a default, is there a reason RFC3986 was picked as a default over RFC2396? ---------------------------------------- Bug #10669: Incorrect url parsing in 2.2.0 https://bugs.ruby-lang.org/issues/10669#change-50687 * Author: Sam Saffron * Status: Rejected * Priority: Normal * Assignee: * Category: * Target version: * ruby -v: 2.2.0 * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- Ruby 2.2 is incorrectly treating invalid URLs as correct due to parser change. Ruby 2.2.0 ``` irb(main):001:0> require 'uri' => true irb(main):002:0> URI.parse("http://hello.com()") => # irb(main):003:0> ``` Ruby 2.1 ``` require 'uri' => true irb(main):002:0> URI.parse("http://hello.com()") URI::InvalidURIError: the scheme http does not accept registry part: hello.com() (or bad hostname?) from /home/sam/.rbenv/versions/2.1.2.discourse/lib/ruby/2.1.0/uri/generic.rb:214:in `initialize' from /home/sam/.rbenv/versions/2.1.2.discourse/lib/ruby/2.1.0/uri/http.rb:84:in `initialize' from /home/sam/.rbenv/versions/2.1.2.discourse/lib/ruby/2.1.0/uri/common.rb:214:in `new' from /home/sam/.rbenv/versions/2.1.2.discourse/lib/ruby/2.1.0/uri/common.rb:214:in `parse' from /home/sam/.rbenv/versions/2.1.2.discourse/lib/ruby/2.1.0/uri/common.rb:747:in `parse' from (irb):2 from /home/sam/.rbenv/versions/2.1.2.discourse/bin/irb:11:in `
' ``` This is a breaking change. -- https://bugs.ruby-lang.org/