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()")
=> #<URI::HTTP 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 `<main>'
```

This is a breaking change. 



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