Feature #2542

URI lib should be updated to RFC 3986

Added by Marc-Andre Lafortune over 4 years ago. Updated 11 months ago.

[ruby-core:27360]
Status:Assigned
Priority:Normal
Assignee:Yui NARUSE
Category:lib
Target version:next minor

Description

=begin
RFC 2396 has been obsolete for nearly 5 years now.

It was replaced by RFC 3986 which aims at clarifying aspects that were not previously clear.
=end


Related issues

Related to ruby-trunk - Bug #4110: ホスト名の先頭が数字であるとき、WEBrickのテストでErrorが出る Closed 12/02/2010
Related to ruby-trunk - Bug #4673: URI::Generic registry is not properly set. Feedback 05/12/2011
Related to ruby-trunk - Bug #8352: uri squeezes a sequence of slashes in merging paths when ... Open 05/02/2013

History

#1 Updated by Marc-Andre Lafortune over 4 years ago

  • Subject changed from URI lib should be updated to RFC 39886 to URI lib should be updated to RFC 3986

=begin

=end

#2 Updated by Yui NARUSE over 4 years ago

=begin
FYI, RFC 3986 will be obsoleted.
http://tools.ietf.org/html/draft-duerst-iri-bis-07
=end

#3 Updated by Martin Dürst over 4 years ago

=begin
No, RFC 3986 (URI) will NOT be updated. RFC 3987 (IRI), in due time,
will be updated. See also
http://www.ietf.org/ibin/c5i?mid=6&rid=49&gid=0&k1=934&k2=7294&tid=1262671757.

Regards, Martin.

On 2010/01/02 0:58, Yui NARUSE wrote:

Issue #2542 has been updated by Yui NARUSE.

FYI, RFC 3986 will be obsoleted.

http://tools.ietf.org/html/draft-duerst-iri-bis-07

http://redmine.ruby-lang.org/issues/show/2542


http://redmine.ruby-lang.org

--
#-# Martin J. Dürst, Professor, Aoyama Gakuin University
#-# http://www.sw.it.aoyama.ac.jp mailto:duerst@it.aoyama.ac.jp

=end

#4 Updated by Yui NARUSE over 4 years ago

=begin
Ah, Martin is right, it's RFC 3987 and RFC 3986 will be still alive.

Anyway Bob Aman introduces an alternative library named Addressable.
http://addressable.rubyforge.org/
It looks good but some incompatibilities for current URI library.
I'll suggest to bundle Addressable and obsolete current URI lib,
but I have to plan its migration path.
=end

#5 Updated by Yusuke Endoh about 4 years ago

  • Target version changed from 1.9.2 to 2.0.0

=begin
Hi,

I'll suggest to bundle Addressable and obsolete current URI lib,
but I have to plan its migration path.

This ticket seems to need much work.
I guess we can't make the deadline of spec freezing.
So I change the target to 1.9.x.
If you want 1.9.2 to include the feature, please discuss right now.

--
Yusuke Endoh mame@tsg.ne.jp
=end

#6 Updated by Marc-Andre Lafortune about 4 years ago

  • Target version changed from 2.0.0 to 1.9.2

=begin
I feel the spec for 1.9.2 has been quite clear for 5 years ... follow RFC 3986!

Integrating some of the features of the addressable gem can be discussed later.

Do we have to wait for Akira Yamada, the official maintainer of this library?
=end

#7 Updated by Yui NARUSE about 4 years ago

=begin
I object to target 1.9.2.
Following RFC 3986 makes some incompatibilities.
It shouldn't be done without consideration.
=end

#8 Updated by Martin Dürst about 4 years ago

=begin
Hello Yui,

Is there a list of incompatibilities, or can you make one?

Regards, Martin.

On 2010/03/25 11:56, Yui NARUSE wrote:

Issue #2542 has been updated by Yui NARUSE.

I object to target 1.9.2.
Following RFC 3986 makes some incompatibilities.

It shouldn't be done without consideration.

http://redmine.ruby-lang.org/issues/show/2542


http://redmine.ruby-lang.org

--
#-# Martin J. Dürst, Professor, Aoyama Gakuin University
#-# http://www.sw.it.aoyama.ac.jp mailto:duerst@it.aoyama.ac.jp

=end

#9 Updated by Yui NARUSE about 4 years ago

=begin
2010/3/25 "Martin J. Dürst" duerst@it.aoyama.ac.jp:

Is there a list of incompatibilities, or can you make one?

Some structures of the syntax is changed in RFC 3986.
This breaks URI::REGEXP::PATTERN::TOPLABEL and some constants.

--
NARUSE, Yui
naruse@airemix.jp

=end

#10 Updated by Kazuhiro NISHIYAMA about 4 years ago

  • Status changed from Open to Assigned
  • Target version changed from 1.9.2 to 2.0.0

=begin

=end

#11 Updated by Hedge Hog almost 4 years ago

=begin
Rather than reinvent anything. Consider employing an FFI interface to uriparser:

http://uriparser.sourceforge.net/

not sure if there is a port for windows or if an equivalent windows lib is available?

=end

#12 Updated by Luis Lavena almost 4 years ago

=begin
On Wed, May 12, 2010 at 8:01 PM, Hedge Hog redmine@ruby-lang.org wrote:

Issue #2542 has been updated by Hedge Hog.

Rather than reinvent anything.  Consider employing an FFI interface to uriparser:

http://uriparser.sourceforge.net/

not sure if there is a port for windows or if an equivalent windows lib is available?

we will not only depend on uriparser C library but also will require
libcpptest to be able to configure and compile uriparser.

--
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupéry

=end

#13 Updated by Philippe Lucas over 3 years ago

=begin
It depends of libcpptest only for test so you can build the package with '--disable-test'.
=end

#14 Updated by Yui NARUSE over 3 years ago

  • Assignee changed from akira yamada to Yui NARUSE

=begin
I come to think uri lib should move to RFC 3986 even if it breaks some compatibility.
But I don't want that new implementation/spec will be also a white box like now.
So I think:
* keep current URI::REGEXP, URI::Parser and so on.
* at least URI.parse doesn't use URI::Parser but use new implementation.

How about this?
=end

#15 Updated by Yui NARUSE almost 3 years ago

  • Target version changed from 2.0.0 to 1.9.4

#16 Updated by Nikos Dimitrakopoulos over 1 year ago

Are there any plans for actually fixing this? Not sure I can help, and no troll appetite - just asking :)

#17 Updated by Yusuke Endoh over 1 year ago

  • Target version changed from 1.9.4 to next minor

Naruse-san, could you please answer to Nikos?

I'm setting to next minor, but if you are willing to do anything to 2.0.0, and if the impact is so small, I may accept.

Yusuke Endoh mame@tsg.ne.jp

#18 Updated by Yui NARUSE 11 months ago

Just an experimental implementation:
http://github.com/nurse/url

Also available in: Atom PDF