Hello community,
here is the log from the commit of package perl-Mojolicious for
openSUSE:Factory checked in at 2020-02-13 10:11:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Mojolicious (Old)
and /work/SRC/openSUSE:Factory/.perl-Mojolicious.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Mojolicious"
Thu Feb 13 10:11:56 2020 rev:123 rq:773677 version:8.33
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Mojolicious/perl-Mojolicious.changes
2020-01-21 21:03:47.868944955 +0100
+++
/work/SRC/openSUSE:Factory/.perl-Mojolicious.new.26092/perl-Mojolicious.changes
2020-02-13 10:11:57.432355341 +0100
@@ -1,0 +2,11 @@
+Wed Feb 12 03:11:47 UTC 2020 - <[email protected]>
+
+- updated to 8.33
+ see /usr/share/doc/packages/perl-Mojolicious/Changes
+
+ 8.33 2020-02-11
+ - Added EXPERIMENTAL humanize_bytes function to Mojo::Util. (kraih, coolo)
+ - Added EXPERIMENTAL humanize_bytes method to Mojo::ByteStream.
+ - Updated Future::AsyncAwait requirement to 0.36 for better tests. (ilmari)
+
+-------------------------------------------------------------------
Old:
----
Mojolicious-8.32.tar.gz
New:
----
Mojolicious-8.33.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Mojolicious.spec ++++++
--- /var/tmp/diff_new_pack.UlceqM/_old 2020-02-13 10:11:58.168355768 +0100
+++ /var/tmp/diff_new_pack.UlceqM/_new 2020-02-13 10:11:58.168355768 +0100
@@ -17,7 +17,7 @@
Name: perl-Mojolicious
-Version: 8.32
+Version: 8.33
Release: 0
%define cpan_name Mojolicious
Summary: Real-time web framework
++++++ Mojolicious-8.32.tar.gz -> Mojolicious-8.33.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mojolicious-8.32/Changes new/Mojolicious-8.33/Changes
--- old/Mojolicious-8.32/Changes 2020-01-18 17:18:35.000000000 +0100
+++ new/Mojolicious-8.33/Changes 2020-02-11 13:00:49.000000000 +0100
@@ -1,4 +1,9 @@
+8.33 2020-02-11
+ - Added EXPERIMENTAL humanize_bytes function to Mojo::Util. (kraih, coolo)
+ - Added EXPERIMENTAL humanize_bytes method to Mojo::ByteStream.
+ - Updated Future::AsyncAwait requirement to 0.36 for better tests. (ilmari)
+
8.32 2020-01-18
- Changed experimental -async flag to -async_await in Mojo::Base, because of
a
Perl quirk that Future::AsyncAwait can't handle itself.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mojolicious-8.32/META.json
new/Mojolicious-8.33/META.json
--- old/Mojolicious-8.32/META.json 2020-01-19 15:34:03.000000000 +0100
+++ new/Mojolicious-8.33/META.json 2020-02-11 21:24:26.000000000 +0100
@@ -62,6 +62,6 @@
},
"x_IRC" : "irc://irc.freenode.net/#mojo"
},
- "version" : "8.32",
+ "version" : "8.33",
"x_serialization_backend" : "JSON::PP version 4.04"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mojolicious-8.32/META.yml
new/Mojolicious-8.33/META.yml
--- old/Mojolicious-8.32/META.yml 2020-01-19 15:34:03.000000000 +0100
+++ new/Mojolicious-8.33/META.yml 2020-02-11 21:24:26.000000000 +0100
@@ -34,5 +34,5 @@
homepage: https://mojolicious.org
license: http://www.opensource.org/licenses/artistic-license-2.0
repository: https://github.com/mojolicious/mojo.git
-version: '8.32'
+version: '8.33'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mojolicious-8.32/lib/Mojo/Base.pm
new/Mojolicious-8.33/lib/Mojo/Base.pm
--- old/Mojolicious-8.32/lib/Mojo/Base.pm 2020-01-18 17:16:12.000000000
+0100
+++ new/Mojolicious-8.33/lib/Mojo/Base.pm 2020-01-21 20:30:18.000000000
+0100
@@ -20,10 +20,10 @@
use constant ROLES =>
!!(eval { require Role::Tiny; Role::Tiny->VERSION('2.000001'); 1 });
-# async/await support requires Future::AsyncAwait 0.35+
+# async/await support requires Future::AsyncAwait 0.36+
use constant ASYNC => $ENV{MOJO_NO_ASYNC} ? 0 : !!(eval {
require Future::AsyncAwait;
- Future::AsyncAwait->VERSION('0.35');
+ Future::AsyncAwait->VERSION('0.36');
1;
});
@@ -129,7 +129,7 @@
# async/await
elsif ($flag eq '-async_await') {
- Carp::croak 'Future::AsyncAwait 0.35+ is required for async/await'
+ Carp::croak 'Future::AsyncAwait 0.36+ is required for async/await'
unless ASYNC;
require Mojo::Promise;
Future::AsyncAwait->import_into($caller, future_class =>
'Mojo::Promise');
@@ -272,7 +272,7 @@
use Mojo::Base 'SomeBaseClass', -signatures;
use Mojo::Base -role, -signatures;
-If you have L<Future::AsyncAwait> 0.35+ installed you can also use the
+If you have L<Future::AsyncAwait> 0.36+ installed you can also use the
C<-async_await> flag to activate the C<async> and C<await> keywords to deal
much
more efficiently with promises. Note that this feature is B<EXPERIMENTAL> and
might change without warning!
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mojolicious-8.32/lib/Mojo/ByteStream.pm
new/Mojolicious-8.33/lib/Mojo/ByteStream.pm
--- old/Mojolicious-8.32/lib/Mojo/ByteStream.pm 2020-01-14 20:58:28.000000000
+0100
+++ new/Mojolicious-8.33/lib/Mojo/ByteStream.pm 2020-02-11 12:57:11.000000000
+0100
@@ -11,9 +11,9 @@
# Turn most functions from Mojo::Util into methods
my @UTILS = (
qw(b64_decode b64_encode camelize decamelize gunzip gzip hmac_sha1_sum),
- qw(html_unescape md5_bytes md5_sum punycode_decode punycode_encode quote),
- qw(sha1_bytes sha1_sum slugify term_escape trim unindent unquote url_escape),
- qw(url_unescape xml_escape xor_encode)
+ qw(html_unescape humanize_bytes md5_bytes md5_sum punycode_decode),
+ qw(punycode_encode quote sha1_bytes sha1_sum slugify term_escape trim),
+ qw(unindent unquote url_escape url_unescape xml_escape xor_encode)
);
for my $name (@UTILS) {
my $sub = Mojo::Util->can($name);
@@ -197,6 +197,14 @@
# "%3Chtml%3E"
b('<html>')->html_unescape->url_escape;
+=head2 humanize_bytes
+
+ $stream = $stream->humanize_bytes;
+
+Turn number of bytes into a simplified human readable format for bytestream
with
+L<Mojo::Util/"humanize_bytes">. Note that this method is B<EXPERIMENTAL> and
+might change without warning!
+
=head2 md5_bytes
$stream = $stream->md5_bytes;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mojolicious-8.32/lib/Mojo/Util.pm
new/Mojolicious-8.33/lib/Mojo/Util.pm
--- old/Mojolicious-8.32/lib/Mojo/Util.pm 2020-01-14 20:58:28.000000000
+0100
+++ new/Mojolicious-8.33/lib/Mojo/Util.pm 2020-02-11 19:51:52.000000000
+0100
@@ -74,8 +74,8 @@
our @EXPORT_OK = (
qw(b64_decode b64_encode camelize class_to_file class_to_path decamelize),
qw(decode deprecated dumper encode extract_usage getopt gunzip gzip),
- qw(hmac_sha1_sum html_attr_unescape html_unescape md5_bytes md5_sum),
- qw(monkey_patch punycode_decode punycode_encode quote scope_guard),
+ qw(hmac_sha1_sum html_attr_unescape html_unescape humanize_bytes md5_bytes),
+ qw(md5_sum monkey_patch punycode_decode punycode_encode quote scope_guard),
qw(secure_compare sha1_bytes sha1_sum slugify split_cookie_header),
qw(split_header steady_time tablify term_escape trim unindent unquote),
qw(url_escape url_unescape xml_escape xor_encode)
@@ -182,6 +182,18 @@
sub html_attr_unescape { _html(shift, 1) }
sub html_unescape { _html(shift, 0) }
+sub humanize_bytes {
+ my $size = shift;
+
+ my $prefix = $size < 0 ? '-' : '';
+
+ return "$prefix${size}B" if ($size = abs $size) < 1024;
+ return $prefix . _round($size) . 'KiB' if ($size /= 1024) < 1024;
+ return $prefix . _round($size) . 'MiB' if ($size /= 1024) < 1024;
+ return $prefix . _round($size) . 'GiB' if ($size /= 1024) < 1024;
+ return $prefix . _round($size /= 1024) . 'TiB';
+}
+
sub monkey_patch {
my ($class, %patch) = @_;
no strict 'refs';
@@ -481,6 +493,8 @@
# This may break in the future, but is worth it for performance
sub _readable { !!(IO::Poll::_poll(@_[0, 1], my $m = POLLIN | POLLPRI) > 0) }
+sub _round { $_[0] < 10 ? int($_[0] * 10 + 0.5) / 10 : int($_[0] + 0.5) }
+
sub _stash {
my ($name, $object) = (shift, shift);
@@ -720,6 +734,25 @@
# "<div>"
html_unescape '<div>';
+=head2 humanize_bytes
+
+ my $str = humanize_bytes 1234;
+
+Turn number of bytes into a simplified human readable format. Note that this
+function is B<EXPERIMENTAL> and might change without warning!
+
+ # "1B"
+ humanize_bytes 1;
+
+ # "7.5GiB"
+ humanize_bytes 8007188480;
+
+ # "13GiB"
+ humanize_bytes 13443399680;
+
+ # "-685MiB"
+ humanize_bytes -717946880;
+
=head2 md5_bytes
my $checksum = md5_bytes $bytes;
@@ -779,7 +812,7 @@
Create anonymous scope guard object that will execute the passed callback when
the object is destroyed. Note that this function is B<EXPERIMENTAL> and might
-change without warning
+change without warning!
# Execute closure at end of scope
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mojolicious-8.32/lib/Mojolicious/Command/version.pm
new/Mojolicious-8.33/lib/Mojolicious/Command/version.pm
--- old/Mojolicious-8.32/lib/Mojolicious/Command/version.pm 2020-01-14
20:58:43.000000000 +0100
+++ new/Mojolicious-8.33/lib/Mojolicious/Command/version.pm 2020-01-21
20:30:24.000000000 +0100
@@ -33,7 +33,7 @@
IO::Socket::SSL 2.009+ ($tls)
Net::DNS::Native 0.15+ ($nnr)
Role::Tiny 2.000001+ ($roles)
- Future::AsyncAwait 0.35+ ($async)
+ Future::AsyncAwait 0.36+ ($async)
EOF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mojolicious-8.32/lib/Mojolicious/Controller.pm
new/Mojolicious-8.33/lib/Mojolicious/Controller.pm
--- old/Mojolicious-8.32/lib/Mojolicious/Controller.pm 2020-01-14
20:58:40.000000000 +0100
+++ new/Mojolicious-8.33/lib/Mojolicious/Controller.pm 2020-02-11
19:50:05.000000000 +0100
@@ -40,7 +40,7 @@
# Cookie too big
my $cookie = {name => $name, value => shift, %{shift || {}}};
- $self->helpers->log->error(qq{Cookie "$name" is bigger than 4096 bytes})
+ $self->helpers->log->error(qq{Cookie "$name" is bigger than 4KiB})
if length $cookie->{value} > 4096;
$self->res->cookies($cookie);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mojolicious-8.32/lib/Mojolicious.pm
new/Mojolicious-8.33/lib/Mojolicious.pm
--- old/Mojolicious-8.32/lib/Mojolicious.pm 2020-01-14 21:18:29.000000000
+0100
+++ new/Mojolicious-8.33/lib/Mojolicious.pm 2020-02-08 20:00:06.000000000
+0100
@@ -59,7 +59,7 @@
has validator => sub { Mojolicious::Validator->new };
our $CODENAME = 'Supervillain';
-our $VERSION = '8.32';
+our $VERSION = '8.33';
sub BUILD_DYNAMIC {
my ($class, $method, $dyn_methods) = @_;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mojolicious-8.32/t/mojo/bytestream.t
new/Mojolicious-8.33/t/mojo/bytestream.t
--- old/Mojolicious-8.32/t/mojo/bytestream.t 2020-01-14 20:57:53.000000000
+0100
+++ new/Mojolicious-8.33/t/mojo/bytestream.t 2020-02-11 13:09:41.000000000
+0100
@@ -151,4 +151,8 @@
ok $compressed->size < $uncompressed->size, 'bytestream is shorter';
is $compressed->gunzip->to_string, $uncompressed->to_string, 'same bytestream';
+# humanize_bytes
+is b(8007188480)->humanize_bytes, '7.5GiB', 'humanized';
+is b(-8007188480)->humanize_bytes, '-7.5GiB', 'humanized';
+
done_testing();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mojolicious-8.32/t/mojo/promise_async_await.t
new/Mojolicious-8.33/t/mojo/promise_async_await.t
--- old/Mojolicious-8.32/t/mojo/promise_async_await.t 2020-01-16
21:33:01.000000000 +0100
+++ new/Mojolicious-8.33/t/mojo/promise_async_await.t 2020-01-21
20:29:57.000000000 +0100
@@ -7,16 +7,24 @@
BEGIN {
plan skip_all => 'set TEST_ASYNC_AWAIT to enable this test (developer only!)'
unless $ENV{TEST_ASYNC_AWAIT} || $ENV{TEST_ALL};
- plan skip_all => 'Future::AsyncAwait 0.35+ required for this test!'
+ plan skip_all => 'Future::AsyncAwait 0.36+ required for this test!'
unless Mojo::Base->ASYNC;
}
use Mojo::Base -async_await;
+use Test::Future::AsyncAwait::Awaitable 'test_awaitable';
use Test::Mojo;
use Mojo::Promise;
use Mojo::UserAgent;
use Mojolicious::Lite;
+# async/await spec
+test_awaitable(
+ 'Mojo::Promise conforms to Awaitable API',
+ class => "Mojo::Promise",
+ force => sub { shift->wait },
+);
+
# Silence
app->log->level('fatal');
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mojolicious-8.32/t/mojo/util.t
new/Mojolicious-8.33/t/mojo/util.t
--- old/Mojolicious-8.32/t/mojo/util.t 2020-01-14 20:58:00.000000000 +0100
+++ new/Mojolicious-8.33/t/mojo/util.t 2020-02-11 19:51:00.000000000 +0100
@@ -11,11 +11,11 @@
use Mojo::Util
qw(b64_decode b64_encode camelize class_to_file class_to_path decamelize),
qw(decode dumper encode extract_usage getopt gunzip gzip hmac_sha1_sum),
- qw(html_unescape html_attr_unescape md5_bytes md5_sum monkey_patch),
- qw(punycode_decode punycode_encode quote scope_guard secure_compare),
- qw(sha1_bytes sha1_sum slugify split_cookie_header split_header steady_time),
- qw(tablify term_escape trim unindent unquote url_escape url_unescape),
- qw(xml_escape xor_encode);
+ qw(html_unescape html_attr_unescape humanize_bytes md5_bytes md5_sum),
+ qw(monkey_patch punycode_decode punycode_encode quote scope_guard),
+ qw(secure_compare sha1_bytes sha1_sum slugify split_cookie_header),
+ qw(split_header steady_time tablify term_escape trim unindent unquote),
+ qw(url_escape url_unescape xml_escape xor_encode);
# camelize
is camelize('foo_bar_baz'), 'FooBarBaz', 'right camelized result';
@@ -563,6 +563,25 @@
$test .= 'd';
is $test, 'abcd', 'right order';
+# humanize_bytes
+is humanize_bytes(0), '0B', 'zero Bytes';
+is humanize_bytes(1), '1B', 'one Byte';
+is humanize_bytes(-1023), '-1023B', 'negative Bytes';
+is humanize_bytes(1024), '1KiB', 'one KiB';
+is humanize_bytes(1025), '1KiB', 'one KiB';
+is humanize_bytes(1024 * 1024), '1MiB', 'one MiB';
+is humanize_bytes(1024 * 1024 * 1024), '1GiB', 'one GiB';
+is humanize_bytes(1024 * 1024 * 1024 * 1024), '1TiB', 'one TiB';
+is humanize_bytes(3000), '2.9KiB', 'almost 3KiB';
+is humanize_bytes(-3000), '-2.9KiB', 'almost -3KiB';
+is humanize_bytes(13443399680), '13GiB', 'two digits GiB';
+is humanize_bytes(8007188480), '7.5GiB', 'smaller GiB';
+is humanize_bytes(-8007188480), '-7.5GiB', 'negative smaller GiB';
+is humanize_bytes(-1099511627776), '-1TiB', 'negative smaller TiB';
+is humanize_bytes(717946880), '685MiB', 'large MiB';
+is humanize_bytes(-717946880), '-685MiB', 'large negative MiB';
+is humanize_bytes(245760), '240KiB', 'less than a MiB';
+
# Hide DATA usage from error messages
eval { die 'whatever' };
unlike $@, qr/DATA/, 'DATA has been hidden';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mojolicious-8.32/t/mojolicious/renderer.t
new/Mojolicious-8.33/t/mojolicious/renderer.t
--- old/Mojolicious-8.32/t/mojolicious/renderer.t 2020-01-14
20:58:07.000000000 +0100
+++ new/Mojolicious-8.33/t/mojolicious/renderer.t 2020-02-11
19:49:49.000000000 +0100
@@ -60,7 +60,7 @@
$log = '';
$cb = $c->app->log->on(message => sub { $log .= pop });
$c->cookie(foo => 'x' x 4097);
-like $log, qr/Cookie "foo" is bigger than 4096 bytes/, 'right message';
+like $log, qr/Cookie "foo" is bigger than 4KiB/, 'right message';
$c->app->log->unsubscribe(message => $cb);
# Nested helpers