From: duerst@... Date: 2015-01-02T07:58:49+00:00 Subject: [ruby-core:67294] [ruby-trunk - Bug #10669] Incorrect url parsing in 2.2.0 Issue #10669 has been updated by Martin D��rst. > 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? RFC 3986 already is turning 10 years old (published January 2005) and has been an Internet Standard for that long. It obsoletes RFC 2396, which was published August 1998. So the right question here is "what reason would there be to pick RFC 2396 over RFC 3986 as the default?". ---------------------------------------- Bug #10669: Incorrect url parsing in 2.2.0 https://bugs.ruby-lang.org/issues/10669#change-50756 * 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/