<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/test/uri, branch v4.0.2</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>[ruby/uri] Re-allow consecutive, leading and trailing dots in EMAIL_REGEXP</title>
<updated>2025-11-04T06:45:16+00:00</updated>
<author>
<name>Daisuke Aritomo</name>
<email>osyoyu@osyoyu.com</email>
</author>
<published>2025-11-04T05:34:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=397bb12778dd8940572e3fc4156085f1ca57f056'/>
<id>397bb12778dd8940572e3fc4156085f1ca57f056</id>
<content type='text'>
Effectively reverts commit https://github.com/ruby/uri/commit/788274b180d6 and
https://github.com/ruby/uri/commit/0abac721d8fe.

EMAIL_REGEXP was mostly drawn from WHATWG HTML LS. This spec states that
it intentionally violates RFC 5322 to provide a practical regex for
validation.

&gt; This requirement is a willful violation of RFC 5322, which defines a
&gt; syntax for email addresses that is simultaneously too strict (before the
&gt; "@" character), too vague (after the "@" character), and too lax
&gt; (allowing comments, whitespace characters, and quoted strings in manners
&gt; unfamiliar to most users) to be of practical use here.

The allowing of consecutive dot s(`a..a@`) and leading/trailing dots
(`.a@`, `a.@`) is not the only derivation from RFC 5322. If a truly RFC
5322-compliant regexp is needed, tt should be organized under a
different name, since too much departure from the original EMAIL_REGEXP
must be introduced.

https://github.com/ruby/uri/commit/c551d7020b
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Effectively reverts commit https://github.com/ruby/uri/commit/788274b180d6 and
https://github.com/ruby/uri/commit/0abac721d8fe.

EMAIL_REGEXP was mostly drawn from WHATWG HTML LS. This spec states that
it intentionally violates RFC 5322 to provide a practical regex for
validation.

&gt; This requirement is a willful violation of RFC 5322, which defines a
&gt; syntax for email addresses that is simultaneously too strict (before the
&gt; "@" character), too vague (after the "@" character), and too lax
&gt; (allowing comments, whitespace characters, and quoted strings in manners
&gt; unfamiliar to most users) to be of practical use here.

The allowing of consecutive dot s(`a..a@`) and leading/trailing dots
(`.a@`, `a.@`) is not the only derivation from RFC 5322. If a truly RFC
5322-compliant regexp is needed, tt should be organized under a
different name, since too much departure from the original EMAIL_REGEXP
must be introduced.

https://github.com/ruby/uri/commit/c551d7020b
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/uri] Switch a parsing behavior completely when switching a parser</title>
<updated>2025-10-31T01:38:16+00:00</updated>
<author>
<name>yuuji.yaginuma</name>
<email>yuuji.yaginuma@gmail.com</email>
</author>
<published>2025-04-13T22:55:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=1dce0ae55a58aa11baf25e9ff92b64974e673361'/>
<id>1dce0ae55a58aa11baf25e9ff92b64974e673361</id>
<content type='text'>
Currently, some methods' behavior(e.g. `URI.parse`) don't change
when switching a parser. This is because some methods use
`DEFAULT_PARSER`, but `parser=` doesn't change `DEFAULT_PARSER`.

This PR introduces a constant to keep a parser's instance and
change it when switching a parser. Also, change to use it in
methods.

https://github.com/ruby/uri/commit/aded210709
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently, some methods' behavior(e.g. `URI.parse`) don't change
when switching a parser. This is because some methods use
`DEFAULT_PARSER`, but `parser=` doesn't change `DEFAULT_PARSER`.

This PR introduces a constant to keep a parser's instance and
change it when switching a parser. Also, change to use it in
methods.

https://github.com/ruby/uri/commit/aded210709
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/uri] Clear user info totally at setting any of authority info</title>
<updated>2025-10-07T01:12:42+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-07-12T02:51:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d0395bd0ead968e194e268f8c5f9db59d8831c02'/>
<id>d0395bd0ead968e194e268f8c5f9db59d8831c02</id>
<content type='text'>
Fix CVE-2025-27221.
https://hackerone.com/reports/3221142

https://github.com/ruby/uri/commit/5cec76b9e8
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix CVE-2025-27221.
https://hackerone.com/reports/3221142

https://github.com/ruby/uri/commit/5cec76b9e8
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/uri] Repeat matching to reduce deviations</title>
<updated>2025-07-13T04:37:15+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-07-13T04:18:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f03cc0b514e400c4ea1428103e1f1f601c22fa86'/>
<id>f03cc0b514e400c4ea1428103e1f1f601c22fa86</id>
<content type='text'>
https://github.com/ruby/uri/commit/fa49e5b8ae
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/uri/commit/fa49e5b8ae
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/uri] Test in exponential scale with rehearsal</title>
<updated>2025-07-13T04:37:15+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-07-12T11:05:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=9c166d26b2e52fcddc29cc18d4017118689caf98'/>
<id>9c166d26b2e52fcddc29cc18d4017118689caf98</id>
<content type='text'>
https://github.com/ruby/uri/commit/be35e0b4d8
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/uri/commit/be35e0b4d8
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/uri] Improve performance of `URI::MailTo::EMAIL_REGEXP`</title>
<updated>2025-07-12T10:32:48+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-07-12T10:31:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=cf7b871a94f2d44eb35676a3dbf9278a73a612c1'/>
<id>cf7b871a94f2d44eb35676a3dbf9278a73a612c1</id>
<content type='text'>
Fix the performance regression at #172 for valid emails.

``` yml
prelude: |
  require 'uri/mailto'
  n = 1000
  re = URI::MailTo::EMAIL_REGEXP
benchmark:
  n.t..t.: re.match?("n.t..t.@docomo.ne.jp")
  example: re.match?("example@example.info")
```

|         |released| 788274b| c5974f0|    this|
|:--------|-------:|-------:|-------:|-------:|
|n.t..t.  |  3.795M|  4.864M|  4.993M|  8.739M|
|         |       -|   1.28x|   1.32x|   2.30x|
|example  |  3.911M|  3.740M|  2.838M|  3.880M|
|         |   1.38x|   1.32x|       -|   1.37x|

https://github.com/ruby/uri/commit/7363a134ac
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix the performance regression at #172 for valid emails.

``` yml
prelude: |
  require 'uri/mailto'
  n = 1000
  re = URI::MailTo::EMAIL_REGEXP
benchmark:
  n.t..t.: re.match?("n.t..t.@docomo.ne.jp")
  example: re.match?("example@example.info")
```

|         |released| 788274b| c5974f0|    this|
|:--------|-------:|-------:|-------:|-------:|
|n.t..t.  |  3.795M|  4.864M|  4.993M|  8.739M|
|         |       -|   1.28x|   1.32x|   2.30x|
|example  |  3.911M|  3.740M|  2.838M|  3.880M|
|         |   1.38x|   1.32x|       -|   1.37x|

https://github.com/ruby/uri/commit/7363a134ac
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/uri] Do not allow empty host names, as they are not allowed by RFC 3986</title>
<updated>2025-07-12T07:07:39+00:00</updated>
<author>
<name>Jeremy Evans</name>
<email>code@jeremyevans.net</email>
</author>
<published>2024-08-19T23:42:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=22b81b5bf56d7c5053008697d9e6b2a9c4eb79f4'/>
<id>22b81b5bf56d7c5053008697d9e6b2a9c4eb79f4</id>
<content type='text'>
Pointed out by John Hawthorn.

Fixes [Bug #20686]

https://github.com/ruby/uri/commit/c0cfa04a66
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pointed out by John Hawthorn.

Fixes [Bug #20686]

https://github.com/ruby/uri/commit/c0cfa04a66
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/uri] Prohibit successive dots in email</title>
<updated>2025-07-12T07:07:05+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-07-12T06:54:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=1add45e2a6e2ab62458f04eddf24898f61e7c01d'/>
<id>1add45e2a6e2ab62458f04eddf24898f61e7c01d</id>
<content type='text'>
https://github.com/ruby/uri/commit/32335923bf
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/uri/commit/32335923bf
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/uri] More tests for `check_to`</title>
<updated>2025-07-12T07:07:05+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-07-12T06:53:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=859d74279a41ff7aa1672a02e634120cdfd4c4e7'/>
<id>859d74279a41ff7aa1672a02e634120cdfd4c4e7</id>
<content type='text'>
https://github.com/ruby/uri/commit/b1b5f9a476
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/uri/commit/b1b5f9a476
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/uri] lib/uri/mailto.rb (EMAIL_REGEXP): use assertions surrounding the local part instead of a character class</title>
<updated>2025-07-12T03:31:54+00:00</updated>
<author>
<name>Nikita Levchuk</name>
<email>code@levch.uk</email>
</author>
<published>2024-12-06T10:56:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=c97eba9bcd6188f39c827be3b40d29cef26c8eac'/>
<id>c97eba9bcd6188f39c827be3b40d29cef26c8eac</id>
<content type='text'>
https://github.com/ruby/uri/commit/2d7d2d9988
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/uri/commit/2d7d2d9988
</pre>
</div>
</content>
</entry>
</feed>
