forked from mojolicious/mojo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChanges
4388 lines (3751 loc) · 176 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
8.14 2019-04-02
- Added header_exists and header_exists_not methods to Test::Mojo.
- Fixed a merge bug in Mojo::Parameters where multiple values sharing the same
name could get lost.
8.13 2019-03-21
- Added EXPERIMENTAL map method to Mojo::Promise. (jberger)
- Added EXPERIMENTAL min_compress_size attribute to Mojolicious::Renderer.
(CandyAngel, mjemmeson)
- Improved the security of signed cookies by also signing the cookie name.
Note that this means that all sessions will be reset.
- Fixed Mojo::IOLoop::Server to not check if listen sockets are writable.
8.12 2019-01-27
- Added EXPERIMENTAL timeout method to Mojo::Promise. (batman)
- Removed deprecated module Mojolicious::Plugin::PODRenderer.
- Removed deprecated method mojo_lib_dir from Mojo::Home.
- Fixed rare warning in Mojo::Log. (Grinnz)
8.11 2019-01-01
- Added EXPERIMENTAL support for SameSite cookies to better protect
Mojolicious applications from CSRF attacks. (dylanwh, sri)
- Added EXPERIMENTAL samesite attributes to Mojo::Cookie::Response and
Mojolicious::Cookies. (dylanwh, sri)
- Added lstat method to Mojo::File. (Grinnz)
- Added remove method to Mojo::File.
- Improved eval command with support for promises. (jberger)
- Improved Mojo::JSON::Pointer to ignore many invalid JSON Pointers.
8.10 2018-12-18
- Added reset event to Mojo::IOLoop.
- Added limit argument to split method in Mojo::ByteStream. (s1037989)
8.09 2018-12-02
- Added touch method to Mojo::File.
- Added max_depth option to list_tree method in Mojo::File.
8.08 2018-11-26
- Added stat method to Mojo::File.
8.07 2018-11-16
- Fixed a bug that caused debug log messages to be generated for static files.
- Fixed a bug in Mojo::Server::Morbo that prevented the before_server_start
hook from getting emitted.
8.06 2018-11-07
- Added support for progress updates to Mojo::IOLoop::Subprocess. (karjala)
- Added progress method to Mojo::IOLoop::Subprocess. (karjala)
- Added progress event to Mojo::IOLoop::Subprocess. (karjala)
- Improved debug, error, fatal, info and warn methods in Mojo::Log to accept
closures to generate log messages on demand. So expensive code for debugging
can be deactivated easily in production.
- Improved Mojo::Log to use the time format "2018-11-08 14:25:5.76027" and to
include the process id in log messages.
- Improved Mojolicious performance by up to 10% with more efficient logging.
- Fixed a problem with the built in templates where an image was missing.
8.05 2018-10-25
- Deprecated Mojolicious::Plugin::PODRenderer in favor of alternatives from
CPAN.
- Deprecated Mojo::Home::mojo_lib_dir.
- Replaced continue, flash, redirect_to, respond_to and validation methods in
Mojolicious::Controller with helpers in Mojolicious::Plugin::DefaultHelpers.
- Updated FAQ with a warning not to use Perl 5.10.x and 5.12.x with
Mojolicious.
8.04 2018-10-21
- Added EXPERIMENTAL module Mojo::DynamicMethods. (mst)
- Replaced all uses of AUTOLOAD with a much faster alternative, so helpers are
faster by up to 400% and stack traces contain more information. (mst)
- Removed experimental status from server method in Mojolicious.
8.03 2018-10-16
- Added support for weak reference accessors to Mojo::Base. (mst)
- Updated List::Util requirement to 1.41 for set_subname support.
- Fixed a small bug in Mojo::UserAgent where request timeouts could be created
twice.
- Improved Mojo::Exception to include a stack trace in verbose output.
- Improved Mojolicious::Types to use the correct MIME types for woff and
woff2 files.
8.02 2018-10-01
- Deprecated Mojo::Transaction::success in favor of Mojo::Transaction::result
and Mojo::Transaction::error. Unfortunately this method is used a lot in
legacy code, so this deprecation will be in effect until the next major
release.
- Added support for gzip compression of dynamically generated responses
(enable with $app->renderer->compress(1)).
- Added EXPERIMENTAL compress attribute to Mojolicious::Renderer.
- Added compressed attribute to Mojo::UserAgent::Transactor.
- Added EXPERIMENTAL respond method to Mojolicious::Renderer.
- Added save_to method to Mojo::Message.
- Added gunzip and gzip methods to Mojo::ByteStream.
- Added gunzip and gzip functions to Mojo::Util.
- Improved HTML5.2 compliance of Mojo::DOM::HTML.
- Fixed a bug in Mojo::Transaction::HTTP that prevented the finish event in
Mojo::Message::Request from getting emitted sometimes.
- Fixed a bug in Mojo::Promise where the ioloop attribute was not a weakened
reference after object construction.
- Fixed a bug where the is_fresh helper could only handle If-None-Match
headers with a single etag value.
8.01 2018-09-25
- Updated jQuery to version 3.3.1.
- Fixed order of command namespaces so Mojolicious can be upgraded without
uninstalling first.
- Fixed a small problem in one of the TLS tests where an error message check
was too picky.
8.0 2018-09-15
- Code name "Supervillain", this is a major release.
- Changed query method in Mojo::URL to merge with hash references and append
with array references instead of the other way around. Because appended
pairs should be able to preserve order.
- Changed template attribute in Mojolicious::Command to activate vars by
default.
- Removed test command.
- Removed deprecated expect_close attribute from Mojo::Content.
- Removed deprecated error and finish events from Mojo::IOLoop::Delay.
- Removed experimental status from server_timing method in Mojo::Headers.
- Removed experimental status from tag_to_html function in Mojo::DOM::HTML.
- Removed experimental status from tag method in Mojo::DOM::HTML.
- Removed experimental status from bytes_read and bytes_written methods in
Mojo::IOLoop::Stream.
- Removed experimental status from before_server_start hook.
- Removed experimental status from timing->* helpers.
- Added clone method to Mojo::Promise.
- Added chmod method to Mojo::File.
- Added prepare event to Mojo::UserAgent.
- Added Mojolicious::Command::Author default namespace in
Mojolicious::Commands.
- Moved Mojolicious::Command::cpanify to
Mojolicious::Command::Author::cpanify.
- Moved Mojolicious::Command::generate to
Mojolicious::Command::Author::generate.
- Moved Mojolicious::Command::generate::app to
Mojolicious::Command::Author::generate::app.
- Moved Mojolicious::Command::generate::lite_app to
Mojolicious::Command::Author::generate::lite_app.
- Moved Mojolicious::Command::generate::makefile to
Mojolicious::Command::Author::generate::makefile.
- Moved Mojolicious::Command::generate::plugin to
Mojolicious::Command::Author::generate::plugin.
- Moved Mojolicious::Command::inflate to
Mojolicious::Command::Author::inflate.
- Updated project metadata.
- Improved Mojo::Promise to allow for reject and resolve methods to be used as
class methods.
- Reduced memory usage of Mojo::IOLoop::Stream.
- Fixed a bug that prevented permessage-deflate WebSocket compression to work
with newer versions of Chrome. (elcamlost)
7.94 2018-08-27
- Added EXPERIMENTAL content_type and file_type methods to Mojolicious::Types.
- Fixed a bug where the reply->file helper would not try to set a Content-Type
header.
- Fixed a bug where the render method in Mojolicious::Controller would not
always use Mojolicious::Types to find the correct Content-Type value.
7.93 2018-08-11
- Improved Test::Mojo to accept Mojo::File objects pointing to application
scripts and to override configurations more consistently.
7.92 2018-08-09
- This release reverts the addition of stream classes (added in 7.83), which
have unfortunately resulted in many Mojolicious applications becoming
unstable. While there are no known exploits yet, we've chosen to err on the
side of cautiousness and will classify this as a security issue.
7.91 2018-08-09
- Fixed a bug in Mojo::IOLoop::Stream where is_readable could not be called
after a timeout event.
7.90 2018-08-08
- Deprecated expect_close attribute in Mojo::Content.
- Removed deprecated delay helper from Mojolicious::Plugin::DefaultHelpers.
- Changed error message for destroyed transactions from
"Connection already closed" to "Transaction already destroyed".
- Fixed a race condition in Mojo::UserAgent where closing connections could
sometimes end up being reused.
- Fixed an RFC 7230 compliance problem where HTTP/1.1 responses were sometimes
incomplete.
7.89 2018-08-06
- Mojolicious has a new logo!
7.88 2018-07-11
- Added EXPERIMENTAL bytes_read, bytes_written and transition methods to
Mojo::IOLoop::Stream.
- Added transition event to Mojo::IOLoop::Stream.
- Improved default request ids generated by Mojo::Message::Request to be a
little more unique.
- Fixed a bug where prefork tests would fail if a prefork server was already
running.
7.87 2018-07-04
- Added optional support for Cpanel::JSON::XS to Mojo::JSON for much better
JSON encoding and decoding performance. That also means Mojo::JSON can no
longer encode the two Unicode whitespace characters u2028 and u2029, since
this is unsupported by Cpanel::JSON::XS.
- Improved Mojo::JSON to encode unknown reference types to "null",
consistently with Cpanel::JSON::XS.
7.86 2018-07-02
- Added template attribute to Mojolicious::Command.
- Added spawn event to Mojo::IOLoop::Subprocess.
- Improved Mojo::IOLoop::Subprocess to only fork new processes after the event
loop has been started.
7.85 2018-06-17
- Removed deprecated build_tx, config, handler and log methods from Mojo.
- Added promisify method to Mojo::UserAgent::Transactor.
- Improved Mojolicious::Command to die on template errors.
7.84 2018-06-05
- Fixed a bug where test servers would be started when reusing a
Mojo::UserAgent object after fork.
7.83 2018-06-02
- Replaced MOJO_DAEMON_DEBUG and MOJO_USERAGENT_DEBUG environment variables
with MOJO_SERVER_DEBUG and MOJO_CLIENT_DEBUG. (anparker)
- Updated IO::Socket::SSL requirement to 2.009 for ALPN support.
- Added modules Mojo::IOLoop::Stream::HTTPClient,
Mojo::IOLoop::Stream::HTTPServer, Mojo::IOLoop::Stream::WebSocketClient and
Mojo::IOLoop::Stream::WebSocketServer. (anparker)
- Added transition method to Mojo::IOLoop. (anparker)
- Added close_connections method to Mojo::Server::Daemon. (anparker)
- Added stream_class and tls_protocols arguments to client and server methods
in Mojo::IOLoop. (anparker, sri)
- Fixed a small render_maybe argument localization bug.
7.82 2018-05-27
- Removed experimental status from new_tag and selector methods in Mojo::DOM.
- Improved Mojo::Server::PSGI with support for the before_server_start hook.
- Fixed a bug where render_maybe in Mojolicious::Controller could not render
multiple alternatives properly because arguments were not localized.
7.81 2018-05-21
- Added request_id attribute to Mojo::Message::Request.
- Improved all built in templates to contain a comment with their request id.
- Improved some log messages to contain a request id.
7.80 2018-05-20
- Many users expected that Mojo::UserAgent would verify all TLS certificates
by default. Unfortunately that has not been the case so far, but will change
with this release in an effort to strengthen security. By default
Mojo::UserAgent will now reject all invalid TLS certificates. To return to
the previous behavior you can use the new insecure attribute.
$ua->insecure(1);
To make testing easier, Test::Mojo will default to having the insecure
attribute activated. And with the get command you can use the new -k option.
mojo get -k https://127.0.0.1:3000
That also means that Mojo::IOLoop::TLS will no longer have a default
tls_verify value. To disable TLS certificate verification there you can use
the value 0x00.
$tls->negotiate(tls_verify => 0x00);
- Added insecure attribute to Mojo::UserAgent.
- Added EXPERIMENTAL server method to Mojolicious.
- Added EXPERIMENTAL before_server_start hook.
- Added -k option to get command.
- Fixed a bug where Mojo::DOM could only reuse Mojo::DOM objects containing
root nodes.
7.79 2018-05-14
- Added EXPERIMENTAL selector method to Mojo::DOM.
- Added reply->file helper to Mojolicious::Plugin::DefaultHelpers.
7.78 2018-05-11
- Deprecated delay helper in Mojolicious::Plugin::DefaultHelpers.
- Added EXPERIMENTAL new_tag method to Mojo::DOM. (jberger, sri)
- Added EXPERIMENTAL tag method to Mojo::DOM::HTML.
- Added EXPERIMENTAL tag_to_html function to Mojo::DOM::HTML.
- Improved performance of all DOM manipulation methods in Mojo::DOM
significantly when reusing Mojo::DOM objects.
- Fixed a Windows directory traversal security issue. (dmanto)
7.77 2018-04-28
- Added support for namespace selectors like "ns|*" to Mojo::DOM::CSS.
(jberger)
- Added support for :link and :visited pseudo-classes to Mojo::DOM::CSS.
- Added support for hyphen-separated list attribute selectors like
"[hreflang|=en]" to Mojo::DOM::CSS.
7.76 2018-04-23
- Due to lack of domain experts on the team, Windows is no longer officially
supported. Moving forward, we will try to keep Mojolicious installable on
Windows, but cannot make any promises regarding security and/or reliability.
- Fixed a bug in Mojolicious::Plugin::Config where the config stash value was
not available when the config_override feature was used. (tim)
7.75 2018-04-09
- Deprecated placeholder quoting with "(placeholder)" in favor of
"<placeholder>".
- Fixed warnings in Mojo::Collection.
7.74 2018-04-06
- Improved unknown placeholder types to match nothing in
Mojolicious::Routes::Pattern.
7.73 2018-04-05
- Added support for routes with placeholder types.
- Added types attribute to Mojolicious::Routes and
Mojolicious::Routes::Pattern.
- Added add_type method to Mojolicious::Routes.
- Added to_file method to Mojo::Asset, Mojo::Asset::File and
Mojo::Asset::Memory.
- Added num placeholder type to Mojolicious::Routes.
- Removed deprecated use of Mojo::Promise::all and Mojo::Promise::race as
instance methods.
7.72 2018-04-02
- Improved Mojo::Content::MultiPart performance for large numbers of parts.
(philipspencer)
- Fixed another problem with ordering of sources for content negotiation in
Mojolicious::Renderer.
7.71 2018-03-15
- Deprecated Mojo::build_tx, Mojo::config, Mojo::handler and Mojo::log.
- Added config method to Mojolicious.
- Fixed exceptions caused by non-UTF-8 files in Mojo::Exception. (Grinnz)
7.70 2018-03-01
- Fixed ordering of sources for content negotiation in Mojolicious::Renderer.
- Fixed a content negotiation bug in Mojolicious::Renderer that prevented all
sources from being considered at the same time.
- Fixed source links in documentation browser.
7.69 2018-02-24
- Improved respond_to method in Mojolicious::Controller and accepts helper in
Mojolicious::Plugin::DefaultHelpers to no longer limit support for multiple
MIME types to requests containing an X-Requested-With header, since browsers
have become smarter about requesting what they actually want.
7.68 2018-02-22
- Fixed RFC 7230 compliance bugs in Mojo::Message::Request that prevented
"GET //foo/bar HTTP/1.1" to be interpreted as a request target in origin
form.
7.67 2018-02-19
- Modernized ".perltidyrc".
- Fixed a bug in Mojo::Asset::File where forked processes could delete
temporary files prematurely.
7.66 2018-02-13
- This release contains fixes for security issues, everybody should upgrade!
- Removed origin attribute of Mojo::Cookie::Response.
- Removed deprecated data and remaining methods from Mojo::IOLoop::Delay.
- Added host_only attribute to Mojo::Cookie::Response.
- Improved all method in Mojo::Promise to resolve with no results if no
promises have been passed.
- Fixed a bug in Mojo::UserAgent::CookieJar where old cookies could be leaked.
(exp-innit, sri)
7.65 2018-02-11
- Added EXPERIMENTAL timing->begin, timing->elapsed, timing->rps and
timing->server_timing helpers to Mojolicious::Plugin::DefaultHelpers.
- Added EXPERIMENTAL server_timing method to Mojo::Headers.
- Added support for new HTTP status code.
7.64 2018-02-07
- Fixed a bug in Mojo::Log where short log messages spanning multiple lines
would not be formatted properly for systemd.
7.63 2018-02-06
- Improved Mojo::Log to use native systemd log levels.
7.62 2018-02-01
- Added -u option to get command. (jberger)
- Added dont_use_nlink option to list_tree method in Mojo::File.
- Added reverse proxy section to Mojolicious::Guides::Cookbook. (polettix)
- Fixed a promise resolution bug in Mojo::Promise.
7.61 2018-01-08
- Increased default upgrade_timeout from 60 to 180 seconds in
Mojo::Server::Hypnotoad.
7.60 2018-01-02
- Deprecated use of Mojo::Promise::all and Mojo::Promise::race as instance
methods.
- Improved all and race methods in Mojo::Promise to be able to handle
arbitrary then-ables.
- Improved number detection in Mojo::JSON with a workaround for an upcoming
breaking change in Perl 5.28. (haarg)
- Improved HTML Living Standard compliance of Mojo::DOM::HTML.
- Fixed a bug in Mojo::Base that prevented composition of multiple roles.
(aferreira, batman)
- Fixed a bug in Mojolicious::Static where text files from DATA sections would
not be UTF-8 encoded. (Grinnz)
7.59 2017-12-15
- Moved home and ua attributes from Mojo to Mojolicious.
- Changed Mojo::IOLoop::Client to only start a thread pool with
Net::DNS::Native on demand. (Grinnz)
- Improved subprocess method in Mojo::IOLoop to allow for easier role
composition.
- Fixed RFC 7230 compliance bug in Mojo::Message::Response. (jberger)
7.58 2017-12-02
- Added websocket_p method to Mojo::UserAgent.
7.57 2017-11-18
- Fixed installation problems with some versions of Perl on Windows.
7.56 2017-11-14
- Added num check to Mojolicious::Validator.
- Improved built-in templates with high resolution logos.
7.55 2017-11-06
- Added -role flag to Mojo::Base. (jberger)
- Improved tablify function in Mojo::Util to work with non-rectangular arrays.
(CandyAngel, jabberwok)
- Improved Windows compatibility of Mojo::Server::Daemon.
7.54 2017-11-05
- Fixed a bug in Mojo::Promise where promise chains could not recover from
rejections.
7.53 2017-11-04
- Added module Mojo::Promise.
- Improved Mojo::IOLoop::Delay to be a subclass of Mojo::Promise.
7.52 2017-11-02
- Added delete_p, get_p, head_p, options_p, patch_p, post_p, put_p and start_p
methods to Mojo::UserAgent.
7.51 2017-10-31
- Added -signatures flag to Mojo::Base and Mojolicious::Lite.
- Added support for new HTTP status code.
- Improved ojo to enable subroutine signatures automatically on Perl 5.20+.
7.50 2017-10-30
- Deprecated error and finish events in Mojo::IOLoop::Delay. Since there is no
good way to warn our users about this deprecation, it will be in effect
until the next major release. Where we will also change the base class from
Mojo::EventEmitter to Mojo::Base.
- Improved documentation browser with links to MetaCPAN.
7.49 2017-10-28
- Deprecated Mojo::IOLoop::Delay::data and Mojo::IOLoop::Delay::remaining.
- Added Promises/A+ support. Note that Mojo::IOLoop::Delay previously
inherited a catch method from Mojo::EventEmitter that was passed the error
message as second argument instead of the first, so you might have to change
$delay->catch(sub { my ($delay, $error) = @_; ... });
to
$delay->catch(sub { my ($error) = @_; ... });
- Added all, catch, finally, race and then methods to Mojo::IOLoop::Delay.
- Updated jQuery to version 3.2.1.
7.48 2017-10-19
- Reverted previous Mojo::File change since there were too many unintended
side effects.
7.47 2017-10-05
- Added multipart content generator to Mojo::UserAgent::Transactor.
- Fixed a bug in Mojo::File where parts of a path could get accidentally
upgraded from bytes to characters.
7.46 2017-09-12
- Fixed support for versions of IO::Socket::SSL older than 1.965 again.
7.45 2017-09-06
- Fixed support for versions of IO::Socket::SSL older than 1.965. (mudler,
foursixnine, genio, sri)
7.44 2017-09-02
- Reverted a previous change to Mojo::Loader that allowed for load_class to be
called on the same class multiple times, since it had very bad side effects.
- Improved Mojo::IOLoop::TLS to use a little less memory.
- Fixed a bug where Mojolicious controllers like "MyApp::Controller::Foo::Bar"
would disappear if loading the controller "MyApp::Controller::Foo" was
attempted but failed.
7.43 2017-08-18
- Improved Mojo::Base role support with the ability to rebless objects.
7.42 2017-08-17
- Improved Mojo::Base role support with shorthands.
MyClass->with_roles('MyClass::Role::Foo')
becomes
MyClass->with_roles('+Foo')
7.41 2017-08-15
- Added with_roles method to Mojo::ByteStream, Mojo::Collection, Mojo::DOM and
Mojo::File.
7.40 2017-08-14
- Added support for Role::Tiny extensions to all classes based on Mojo::Base.
(dotan)
- Added with_roles method to Mojo::Base. (dotan)
- Added the guide Mojolicious::Guides::Testing. (scottw)
- Replaced systemd detection in Mojo::Log with the MOJO_LOG_SHORT environment
variable, since there is no reliable way to detect systemd.
7.39 2017-08-03
- Removed experimental close_idle_connections method from
Mojo::Server::Daemon.
- Increased default graceful_timeout from 60 to 120 seconds in
Mojo::Server::Prefork.
- Improve Mojo::Server::Daemon to log request errors.
- Fixed a bug where Mojo::Server::Daemon would close connections too quickly
and interrupt requests.
7.38 2017-07-30
- Added extra attribute to Mojolicious::Static. (jabberwok)
- Improve Mojo::URL performance significantly.
- Fixed memory leak in Mojo::URL that was caused by a Perl 5.24 bug.
7.37 2017-07-21
- Added slugify method to Mojo::ByteStream. (Grinnz)
- Added slugify function to Mojo::Util. (Grinnz)
- Fixed bugs in Mojo::IOLoop and Mojo::Reactor::Poll that would prevent a
reset from clearing events.
7.36 2017-07-09
- Fixed basename method in Mojo::File to work with relative paths. (jberger)
- Fixed a bug where Mojo::Log could not correctly identify if it was deployed
with systemd.
- Fixed Mojo::HelloWorld to actually be a Mojolicious subclass.
7.35 2017-07-05
- Removed deprecated watch attribute from Mojo::Server::Morbo.
- Added spare attribute to Mojo::Server::Prefork.
- Added -s option to prefork command.
- Added fd option to Mojo::IOLoop::Server::listen.
- Added fd parameter to Mojo::Server::Daemon::listen.
- Added spare setting to Hypnotoad.
- Increased default graceful_timeout from 20 to 60 seconds and
heartbeat_timeout from 20 to 30 seconds in Mojo::Server::Prefork.
7.34 2017-07-02
- Added short attribute to Mojo::Log.
- Improved Mojo::Log to print log messages without timestamps to STDERR when
deployed with systemd.
- Improved Mojo::DOM performance slightly.
7.33 2017-06-05
- Added EXPERIMENTAL support for :matches pseudo-class and :not pseudo-class
with compound selectors to Mojo::DOM::CSS.
- Fixed a few form element value extraction bugs in Mojo::DOM.
- Fixed version command to use the new MetaCPAN API, since the old one got
shut down.
7.32 2017-05-28
- Added -f option to get command.
- Improved get command with support for passing request data by redirecting
STDIN.
- Fixed memory leak in Mojo::IOLoop::Client that sometimes prevented the
connect timeout from working correctly for TLS handshakes.
7.31 2017-04-23
- Removed deprecated files, slurp and spurt functions from Mojo::Util.
- Removed deprecated parts attribute from Mojo::Home.
- Removed deprecated slurp and spurt methods from Mojo::ByteStream.
- Removed deprecated lib_dir, list_files, parse and rel_dir methods from
Mojo::Home.
- Removed deprecated rel_dir method from Mojolicious::Command.
- Removed deprecated is_status_class method from Mojo::Message::Response.
- Fixed a bug in the app generator command where the config file name was not
based on the application moniker.
7.30 2017-04-04
- Deprecated Mojo::Server::Morbo::watch in favor of
Mojo::Server::Morbo::Backend::Poll::watch. (marcus)
- Added support for pluggable Morbo backends. (marcus)
- Added Mojo::Server::Morbo::Backend and Mojo::Server::Morbo::Backend::Poll
modules. (marcus)
- Added backend attribute to Mojo::Server::Morbo. (marcus)
- Added -b option to Morbo. (marcus)
7.29 2017-03-12
- Added support for overriding configuration files in applications tested with
Test::Mojo.
- Added html_attr_unescape function to Mojo::Util.
- Fixed unescaping of HTML5 attribute values in Mojo::DOM::HTML.
7.28 2017-03-07
- Added copy_to, realpath and sibling methods to Mojo::File.
- Added dir option to list_tree method in Mojo::File.
- Improved app generator command to generate a config file.
(tudorconstantin)
7.27 2017-02-27
- Added support for UNIX domain sockets. (sri, salva)
- Improved Mojo::UserAgent to complain about unsupported protocols.
- Fixed a bug in Mojo::URL where invalid host strings could be generated.
- Fixed blib handling in Mojo::Home.
7.26 2017-02-15
- Fixed bug in Mojo::IOLoop::Subprocess where starting multiple subprocesses
at once could cause expcetions. (jberger)
7.25 2017-02-09
- Fixed cleanup bugs in Mojo::IOLoop::Stream.
7.24 2017-02-05
- Added open method to Mojo::File.
- Added tempfile function to Mojo::File.
- Fixed bug in Mojo::Asset::File where the slurp method would not work
correctly for very large files.
7.23 2017-01-29
- Added max_request_size attribute to Mojolicious.
- Added max_response_size attribute to Mojo::UserAgent.
- Added to_unsafe_string method to Mojo::URL.
- Added -S option to get command.
- Fixed a data corruption problem in Mojo::IOLoop::Stream, caused by a
dependency of IO::Socket::SSL on the internal representation of strings,
which differs from IO::Socket::IP. (coolo, sri)
7.22 2017-01-25
- Added ports method to Mojo::Server::Daemon.
- Added remove_tree method to Mojo::File.
- Improved spurt method in Mojo::File with support for writing multiple chunks
at once.
7.21 2017-01-21
- Added extract_usage function to Mojo::Util.
- Improve getopt function in Mojo::Util to use @ARGV by default.
7.20 2017-01-18
- Fixed a bug in Mojo::File where the make_path method would die even if no
error occurred.
- Fixed warnings in Mojo::IOLoop::TLS.
7.19 2017-01-14
- Added module Mojo::IOLoop::TLS.
- Added can_nnr and can_socks methods to Mojo::IOLoop::Client.
7.18 2017-01-11
- Fixed support for relative %INC paths in Mojo::Home.
- Fixed a bug in Mojo::URL where invalid fragment strings could be generated.
7.17 2017-01-11
- Fixed Windows bugs in Mojo::File. (kmx)
7.16 2017-01-10
- Fixed Windows bugs in Mojo::File. (kmx)
7.15 2017-01-09
- Deprecated Mojo::ByteStream::slurp and Mojo::Util::slurp in favor of
Mojo::File::slurp.
- Deprecated Mojo::ByteStream::spurt and Mojo::Util::spurt in favor of
Mojo::File::spurt.
- Deprecated Mojo::Util::files in favor of Mojo::File::list_tree.
- Deprecated Mojo::Home::lib_dir, Mojo::Home::parse, Mojo::Home::parts in
favor of new features inherited from the Mojo::File base class.
- Added module Mojo::File.
- Improved Mojo::Home to be a subclass of Mojo::File.
- Improved mojo_lib_dir and rel_file methods in Mojo::Home to return
Mojo::Home objects.
- Improved rel_file methods in Mojolicious::Command to return Mojo::File
objects.
- Improved every_param and param methods in Mojolicious::Validator::Validation
to use the current topic.
7.14 2017-01-04
- Deprecated Mojo::Home::list_files in favor of Mojo::Util::files.
- Deprecated Mojo::Home::rel_dir in favor of Mojo::Home::rel_file.
- Deprecated Mojolicious::Command::rel_dir in favor of
Mojolicious::Command::rel_file.
- Fixed a bug in Mojo::IOLoop::Subprocess where the pipe used for IPC could
disappear because of a timeout.
7.13 2016-12-23
- Deprecated Mojo::Message::Response::is_status_class in favor of new is_*
methods.
- Added result method to Mojo::Transaction.
- Added is_client_error, is_error, is_info, is_redirect, is_server_error and
is_success methods to Mojo::Message::Response.
- Fixed bug where Morbo could not handle broken symlinks. (Grinnz)
7.12 2016-12-18
- Added button_to and csrf_button_to helpers to
Mojolicious::Plugin::TagHelpers.
- Removed experimental status from Mojo::IOLoop::Subprocess.
- Removed experimental status from subprocess method in Mojo::IOLoop.
7.11 2016-11-30
- Added EXPERIMENTAL close_idle_connections method to Mojo::Server::Daemon.
- Improved one_tick method in Mojo::IOLoop to protect from recursion, similar
to the start method.
- Improved log attribute in Mojolicious to make it easier to override default
settings. (jberger)
- Fixed bug in Mojo::Server::Prefork where workers would accept keep-alive
requests after a graceful shutdown had already been initiated.
- Fixed bugs in Mojo::Util and Mojo::Asset::File where incomplete writes would
not be recognized as errors. (bobkare, sri)
7.10 2016-11-01
- Added getopt function to Mojo::Util.
7.09 2016-10-22
- Added every_header method to Mojo::Headers.
- Fixed redirect bug in Mojo::UserAgent::Transactor.
- Fixed a few proxy bugs in Mojo::UserAgent.
7.08 2016-09-23
- Added -i and -o options to get command.
- Updated jQuery to version 3.1.1.
- Improved accuracy of finished_ok test in Test::Mojo.
- Fixed state transition bug in Mojo::Transaction::HTTP that caused message
bodies to be included in responses to HEAD requests.
7.07 2016-09-20
- Fixed bug in Mojo::UserAgent::Transactor where 303 redirects would not be
followed correctly with GET requests. (jberger)
7.06 2016-09-17
- Fixed bug where Mojolicious::Renderer would wrap text in layouts.
- Fixed a few test description encoding bugs in Test::Mojo.
7.05 2016-08-29
- Fixed bug in Mojo::IOLoop::Subprocess where EV would steal the subprocess
exit status.
7.04 2016-08-28
- Added EXPERIMENTAL support for performing computationally expensive
operations in subprocesses, without blocking the event loop. (jberger, sri)
- Added EXPERIMENTAL module Mojo::IOLoop::Subprocess. (jberger, sri)
- Added EXPERIMENTAL subprocess method to Mojo::IOLoop. (jberger, sri)
- Improved many methods in Mojolicious::Controller to die more gracefully if
the connection has already been closed.
- Fixed bug where Mojo::UserAgent would try to follow redirects for CONNECT
requests.
7.03 2016-08-17
- Fixed packaging errors.
7.02 2016-08-17
- Fixed bugs in Mojo::Loader and Mojo::Util where the DATA handle would be
mentioned in error messages. (jberger, kiwiroy, sri)
7.01 2016-08-01
- Improved support for systemd.
- Fixed a bug in Mojo::Server::Prefork where PID files would not contain a
newline character.
7.0 2016-07-19
- Code name "Doughnut", this is a major release.
- Removed Mojolicious::Plugin::Charset.
- Removed authority method from Mojo::URL.
- Removed squish method from Mojo::ByteStream.
- Removed squish function from Mojo::Util.
- Removed support for smart whitespace trimming from all_text and text methods
in Mojo::DOM.
- Updated jQuery to version 3.1.0.
- Improved Mojo::URL not to include the userinfo part when generating URLs, as
recommended by the URL Living Standard.
- Improved Mojolicious::Plugin::Config to no longer log which files have been
loaded.
- Fixed trailing slash bug in Mojo::URL.
- Fixed a few whitespace bugs in Mojo::DOM.
- Fixed attribute selector bug in Mojo::DOM::CSS. (Akron)
- Fixed a bug causing headers with zero length values to be ignored by the get
command. (jberger)
6.66 2016-06-16
- Fixed support for CONNECT requests without keep alive connections in
Mojo::UserAgent. (anparker, sri)
6.65 2016-06-14
- Added password and username methods to Mojo::URL.
- Updated jQuery to version 3.0.0.
- Fixed "0" value bug in Mojo::UserAgent::CookieJar. (jamadam)
6.64 2016-06-09
- Updated HTML5 entities in Mojo::Util.
- Improved Mojo::IOLoop to fall back to Mojo::Reactor::Poll if Perl has been
compiled with fork emulation.
6.63 2016-06-03
- Removed deprecated check method from Mojo::Server::Morbo.
- Removed deprecated build, compile and interpret methods from Mojo::Template.
- Removed deprecated multi_accept methods from Mojo::IOLoop,
Mojo::IOLoop::Server and Mojo::Server::Daemon.
- Updated jQuery to version 2.2.4.
- Improved generator commands not to overwrite existing files.
6.62 2016-05-14
- Removed deprecated is_debug, is_error, is_info and is_warn methods from
Mojo::Log.
- Improved support for Ubuntu on Windows.
6.61 2016-04-30
- Improved Mojo::Server::Daemon to no longer log when a connection has been
closed prematurely.
- Fixed bug in Mojo::Content where the drain event would not always be emitted
for dynamically generated content with a Content-Length header.
6.60 2016-04-25
- Fixed bug in Mojo::IOLoop where stopping gracefully would sometimes result
in connections getting closed too early. (anparker, sri)
6.59 2016-04-22
- Removed deprecated xss_escape function from Mojo::Util.
- Improved HTML Living Standard compliance of Mojo::DOM::HTML.
- Improved Mojo::Server::Daemon to log when a connection has been closed
prematurely.
- Improved Mojo::Server::Prefork to log when the manager process has been
stopped.
- Fixed a few tests to keep up with breaking changes in IO::Socket::SSL.
- Fixed a few timing bugs in tests.
6.58 2016-04-09
- Removed deprecated build_frame and parse_frame methods from
Mojo::Transaction::WebSocket.
- Added fork policy to Mojolicious::Guides::Contributing.
- Improved Mojo::JSON to generate canonical JSON objects.
- Fixed bug in Mojo::Loader where classes with exceptions could not be loaded
twice. (kiwiroy, sri)
6.57 2016-03-23
- Fixed a few validation bugs in Mojolicious::Validator::Validation.
(Mikey, sri)
- Fixed copyright notice.
6.56 2016-03-16
- Added hidden option to list_files method in Mojo::Home. (batman, sri)
- Added hidden option to files function in Mojo::Util. (batman, sri)
- Fixed bug where Morbo would not ignore hidden files. (batman, sri)
- Fixed bug where Morbo would ignore the --verbose option.
- Fixed keep-alive bug in Mojo::UserAgent. (jberger)
6.55 2016-03-08
- Deprecated Mojo::Server::Morbo::check in favor of
Mojo::Server::Morbo::modified_files. (leejo, nugged)
- Added modified_files method to Mojo::Server::Morbo. (leejo, nugged)
- Improved renderer performance slightly.
- Fixed a bug where Morbo would restart more than once if multiple files
changed at the same time. (leejo, nugged)
6.54 2016-03-06
- Deprecated Mojo::Template::build and Mojo::Template::compile.
- Deprecated Mojo::Template::interpret in favor of Mojo::Template::process.
- Added support for named variables to Mojo::Template.
- Added vars attribute to Mojo::Template.
- Added process method to Mojo::Template.
- Improved Mojo::Template performance slightly.
6.53 2016-03-03
- Removed multi_accept setting from Hypnotoad.
- Removed -M options from daemon and prefork commands.
- Deprecated Mojo::IOLoop::multi_accept.
- Deprecated Mojo::IOLoop::Server::multi_accept.
- Deprecated Mojo::Server::Daemon::multi_accept.
- Added single_accept option to Mojo::IOLoop::Server::listen.
- Added single_accept parameter to Mojo::Server::Daemon::listen.
- Increased default max_requests from 25 to 100 in Mojo::Server::Daemon.
- Increased default accepts from 1000 to 10000 in Mojo::Server::Prefork.
- Improved performance of many Mojo::Util functions slightly.
- Fixed default value bug in val method of Mojo::DOM.
6.52 2016-03-02
- Added is_accepting method to Mojo::IOLoop::Server.
- Added -M option to daemon command.
- Improved responsiveness of stop_gracefully method in Mojo::IOLoop.
- Fixed bug in Mojo::IOLoop where too many connections could be accepted.
- Fixed a few concurrency bugs in Mojo::IOLoop.
6.51 2016-02-29
- Fixed bug in Mojolicious::Plugin::EPLRenderer where empty templates from the
DATA section would be ignored.
- Fixed a few "0" value bugs in Mojolicious::Renderer.
6.50 2016-02-27
- Added throw method to Mojo::Exception.
6.49 2016-02-26
- Removed throw method from Mojo::Exception.
- Added inspect method to Mojo::Exception.
- Improved check_box and radio_button helpers with support for "on" default
values.
- Improved val method in Mojo::DOM with support for "on" default values.
- Fixed url_for bug where routes with custom names would not match in the same
order as routes with automatically generated names.
- Fixed bug in Mojo::Template where not all exceptions were verbose.
- Fixed Windows bug in "util.t".
6.48 2016-02-24
- Added files function to Mojo::Util.
- Updated jQuery to version 2.2.1.
- Improved url_for performance significantly.
- Fixed bug where the results of the list_files method in Mojo::Home would
include directories.
- Fixed a few small CGI bugs.
6.47 2016-02-19
- Deprecated Mojo::Log::is_debug, Mojo::Log::is_error, Mojo::Log::is_info and
Mojo::Log::is_warn in favor of Mojo::Log::is_level.
- Added is_level method to Mojo::Log.
- Fixed datetime_field helper to use the correct type attribute value.
6.46 2016-02-13
- Improved Mojo::Headers performance. (batman)
- Fixed small proxy bug in Mojo::UserAgent::Transactor.
6.45 2016-02-09
- Deprecated Mojo::Util::xss_escape in favor of Mojo::Util::xml_escape.
- Improved Mojo::Template performance slightly.
6.44 2016-02-04
- Removed deprecated format_regex attribute from Mojolicious::Routes::Pattern.
- Improved get command not to use the user agent of the application.
- Improved Mojo::JSON performance slightly.
6.43 2016-02-01
- Removed client_close and server_close methods from Mojo::Transaction.
- Added closed method to Mojo::Transaction.
- Added parse_message method to Mojo::Transaction::WebSocket.
- Improved a few examples to avoid timing attacks.
- Fixed timing bug in Mojo::Server::Daemon.
6.42 2016-01-24
- Fixed use of deprecated Perl feature in Mojo::JSON.
- Fixed validation filter bugs in Mojolicious::Validator::Validation.
6.41 2016-01-20
- Added support for validation filters.
- Added filters attribute to Mojolicious::Validator.
- Added add_filter method to Mojolicious::Validator.
- Added filter arguments to optional and required methods in
Mojolicious::Validator::Validation.
- Fixed MOJO_WEBSOCKET_DEBUG environment variable. (jberger)
6.40 2016-01-13
- Removed client_challenge, client_handshake, server_handshake and server_open
methods from Mojo::Transaction::WebSocket. (batman, sri)
- Removed is_writing method from Mojo::Transaction.
- Removed upgrade event from Mojo::Transaction::HTTP.
- Deprecated Mojo::Transaction::WebSocket::build_frame and
Mojo::Transaction::WebSocket::parse_frame in favor of
Mojo::WebSocket::build_frame and Mojo::WebSocket::parse_frame. (batman)
- Replaced deprecated proxy method in Mojo::Message::Request with an
attribute.
- Added SNI support to all built-in web servers. (bpmedley, sri)
- Added module Mojo::WebSocket. (batman)
- Added established attribute to Mojo::Transaction::WebSocket.
- Added completed method to Mojo::Transaction.
- Updated jQuery to version 2.2.0.
- Improved performance of Mojo::Server::Daemon and Mojo::UserAgent slightly.
- Improved mtime attribute in Mojo::Asset::Memory to default to the value of
$^T.
- Improved app generator command to generate more portable scripts.
- Fixed a few timing bugs.
- Fixed url_for to handle fragments correctly.
6.39 2016-01-03
- Updated links to Mojolicious website.
- Fixed small html_unescape bug in Mojo::Util.
- Fixed handling of invalid max age in Mojo::UserAgent::CookieJar.
6.38 2015-12-19
- Updated prettify.js to version 8-Dec-2015.
- Improved form generation in Mojo::UserAgent::Transactor to use UTF-8 as the
default charset.
6.37 2015-12-14
- Added protocol and with_protocols methods to Mojo::Transaction::WebSocket.
- Fixed a few reference encoding bugs in Mojo::JSON.
- Fixed a few form generation bugs in Mojo::UserAgent::Transactor.
6.36 2015-12-08
- Improved Mojo::JSON performance slightly. (haarg)
- Improved inactivity_timeout helper to return the current controller object.
6.35 2015-12-04
- Removed deprecated collecting method from Mojo::UserAgent::CookieJar.
- Fixed warnings in Mojo::Cookie::Response.
6.34 2015-12-01
- Improved Hypnotoad to report problems that have occured during the creation
of listen sockets.
- Fixed bug in Mojo::DOM where the wrap method would attempt to wrap an
HTML/XML fragment around the content of root nodes.
- Fixed bug in Mojo::DOM where the wrap_content method would attempt to wrap
an HTML/XML fragment around nodes that do not have children.
- Fixed a few small formatting bugs in Mojolicious::Plugin::PODRenderer.
6.33 2015-11-22
- Updated IO::Socket::IP requirement to 0.37 for certain bug fixes.
- Improved renderer not to require a return value from handlers.
- Improved helper method in Mojolicious to replace already existing helpers
silently.
6.32 2015-11-18
- Deprecated Mojolicious::Routes::Pattern::format_regex.
- Added support for new HTTP status code.
- Improved router performance.
- Improved Mojo::DOM::CSS performance slightly. (jamadam)
- Fixed a few case-sensitivity and An+B notation bugs in Mojo::DOM::CSS.
(jamadam)
6.31 2015-11-13
- Improved documentation browser CSS.
- Fixed handling of invalid URLs in Mojo::UserAgent::CookieJar.
- Fixed a few small selector bugs in Mojo::DOM::CSS.
- Fixed a few small formatting bugs in Mojolicious::Plugin::PODRenderer.
6.30 2015-11-11