forked from mojolicious/mojo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Changes
4299 lines (3591 loc) · 197 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
9.20 2021-07-06
- Added trace log level to Mojo::Log.
9.19 2021-06-01
- This release contains fixes for security issues, everybody should upgrade!
- Swiched from HMAC-SHA1 to HMAC-SHA256 for signed cookies. Note that this means that all sessions will be reset.
- Improved signed cookie based sessions to pad short values, to make it harder to brute force attack the application
secret. (jberger)
9.18 2021-05-09
- Remove Font Awesome from distribution.
9.17 2021-04-12
- Deprecated ?format=* parameter in favor of ?_format=* for content negotiation in Mojolicious::Renderer.
9.16 2021-04-08
- Added support for format inheritance.
- Improved Mojo::Server::CGI with support for before_server_start hook.
9.15 2021-03-30
- Improved form generator in Mojo::UserAgent::Transactor to allow custom Content-Disposition headers.
9.14 2021-03-23
- Added EXPERIMENTAL support for :text pseudo-class to Mojo::DOM::CSS.
9.13 2021-03-22
- Improved request_id attribute in Mojo::Message::Request to be a little more unique.
- Fixed Mojolicious::Plugin::Mount to share the logger of the host application.
9.12 2021-03-21
- Improved mojo script startup time slightly with a Mojo::HelloWorld optimization.
- Improved design of built-in templates.
9.11 2021-03-20
- This release contains fixes for security issues, everybody should upgrade!
- Disabled format detection by default to fix vulnerabilities in many Mojolicious applications. That means some of
your routes that previously matched "/foo" and "/foo.json", will only match "/foo" after upgrading. From now on you
will have to explicitly declare the formats your routes are allowed to handle.
# /foo
# /foo.html
# /foo.json
$r->get('/foo')->to('bar#yada');
becomes
$r->get('/foo' => [format => ['html', 'json']])->to('bar#yada', format => undef);
And if you are certain that your application is not vulnerable, you also have the option to re-enable format
detection for a route and all its nested routes. Due to the high risk of vulnerabilities, this feature is going to
be removed again in a future release however.
my $active = $r->any([format => 1]);
$active->get('/foo')->to('Test#first');
$active->put('/bar')->to('Test#second');
- Improved built-in templates not to show embedded apps in the stash snapshot.
- Improved built-in development not found page to include tooltips with the compiled regular expressions for each
route.
- Improved Mojo::UserAgent to include "Content-Length: 0" with non-GET requests for better compatibility with broken
web servers.
9.10 2021-03-14
- Fixed top-level --help and -h options in Mojolicious::Commands.
9.09 2021-03-13
- Added comma_separated filter to Mojolicious::Validator.
- Fixed built-in templates to be a bit more responsive.
- Fixed filter list handling in Mojolicious::Validator::Validation.
9.08 2021-03-12
- Fixed a bug in Test::Mojo where Test::Mojo->new($app) would not work correctly.
9.07 2021-03-11
- Improved config override feature to work for Mojolicious::Lite applications.
- Improved Mojo::UserAgent performance slightly by not including unnecessary "Content-Length: 0" request headers.
9.03 2021-03-05
- Fixed a bug in Mojo::Transaction::WebSocket where finish event handlers would not always get the same number of
arguments passed.
9.02 2021-02-17
- Fixed finally method in Mojo::Promise to deal correctly with promises returned by the handler.
- Improved Mojo::Server::Daemon to include random ports in the "Web application available at ..." message.
9.01 2021-02-16
- Added EXPERIMENTAL color attribute to Mojo::Log.
- Added EXPERIMENTAL MOJO_LOG_COLOR environment variable to Mojo::Log.
- Fixed Windows support of network_contains function in Mojo::Util. (jberger)
9.0 2021-02-14
- Code name "Waffle", this is a major release.
- Added support for deployment specific plugins.
- Removed Mojo::IOLoop::Delay.
- Removed hidden attribute from Mojolicious::Routes.
- Removed hide and is_hidden methods from Mojolicious::Routes.
- Removed deprecated success method from Mojo::Transaction.
- Removed deprecated detour, over, route and via methods from Mojolicious::Routes::Route.
- Removed deprecated local_address method from Mojo::UserAgent.
- Removed deprecated tls_ciphers, tls_protocols, tls_verify and tls_version options from Mojo::IOLoop::TLS.
- Removed deprecated local_address option from Mojo::IOLoop::Client.
- Removed deprecated config stash value.
- Changed Mojo::Log to join mutiple log messages with a whitespace instead of a newline.
- Added is_reserved method to Mojolicious::Routes::Route.
- Improved Mojolicious::Routes to disallow the use of reserved stash values, such as "/:action", in route patterns.
- Improved Mojolicious::Routes to throw exceptions for missing controllers.
- Improved Mojolicious::Routes to throw exceptions for routes with controllers but without action.
- Improved Mojolicious::Routes to disallow namespace without controller for routing.
- Improved Mojolicious::Routes to die if auto rendering failed.
- Improved render method in Mojolicious::Controller to die if no response could be rendered.
- Improved reply->static helper to die if the requested file does not exist.
- Improved contextual logging feature in Mojo::Log not to concatenate log messages and context.
- Improved all_text method in Mojo::DOM to exclude "<script>" and "<style>" from text extraction in HTML documents.
- Improved error messages in config plugins to be more consistent.
8.73 2021-02-05
- Removed finally keyword from check function in Mojo::Exception.
- Changed arguments of check function in Mojo::Exception to be easier to use with Perl 5.34 try/catch.
- Removed experimental status from preload_namespaces attribute in Mojolicious.
- Removed experimental status from any, map, timer and timeout methods in Mojo::Promise.
- Removed experimental status from extname method in Mojo::File.
- Removed experimental status from warmup method in Mojolicious.
- Removed experimental status from load_classes function in Mojo::Loader.
- Removed experimental status from Mojo::DynamicMethods. Still summons old gods, use at your own risk!
- Removed experimental status from before_command hook in Mojolicious.
- Added silent attribute to Mojo::Server::Morbo.
8.72 2021-01-26
- Deprecated Mojo::UserAgent::local_address in favor of Mojo::UserAgent::socket_options.
- Deprecated local_address option of connect method in Mojo::IOLoop::Client in favor of socket_options.
- Deprecated tls_protocols option of connect method in Mojo::IOLoop::Client in favor of tls_options.
- Deprecated tls_verify option of connect method in Mojo::IOLoop::Client in favor of tls_options.
- Deprecated tls_protocols option of negotiate method in Mojo::IOLoop::TLS in favor of tls_options.
- Deprecated tls_ciphers option of negotiate method in Mojo::IOLoop::TLS in favor of tls_options.
- Deprecated tls_verify option of negotiate method in Mojo::IOLoop::TLS in favor of tls_options.
- Deprecated tls_version option of negotiate method in Mojo::IOLoop::TLS in favor of tls_options.
- Deprecated tls_ciphers option of listen method in Mojo::IOLoop::Server in favor of tls_options.
- Deprecated tls_verify option of listen method in Mojo::IOLoop::Server in favor of tls_options.
- Deprecated tls_version option of listen method in Mojo::IOLoop::Server in favor of tls_options.
- Added support for trusted reverse proxies. (jberger)
- Added network_contains function to Mojo::Util. (jberger)
- Added trusted_proxies attribute to Mojo::Server and Mojo::Message::Request. (jberger)
- Added socket_options method to Mojo::UserAgent.
- Added build_server method to Mojolicious::Command::daemon and Mojolicious::Command::prefork. (jberger)
- Added trusted_proxies option to Hynotoad. (jberger)
- Added socket_options and tls_options options to connect method in Mojo::IOLoop::Client.
- Added tls_options option to negotiate method in Mojo::IOLoop::TLS.
8.71 2021-01-17
- Added EXPERIMENTAL freeze option to reset method in Mojo::IOLoop.
- Improved Mojo::IOLoop::Subprocess not to close connections after fork.
8.70 2020-12-29
- Fixed top-level help command in Mojolicious::Commands. (schelcj)
8.69 2020-12-28
- Improved design of built-in templates.
8.68 2020-12-27
- Updated built-in templates with new responsive design from mojolicious.org.
- Fixed a bug in Mojo::Message::Request that resulted in duplicate request ids for Mojo::Server::Prefork workers.
8.67 2020-12-04
- Deprecated Mojolicious::Routes::Route::route in favor of Mojolicious::Routes::Route::any.
- Deprecated Mojolicious::Routes::Route::over in favor of Mojolicious::Routes::Route::requires.
- Deprecated Mojolicious::Routes::Route::via in favor of Mojolicious::Routes::Route::methods.
- Deprecated Mojolicious::Routes::Route::detour.
- Added methods and requires methods to Mojolicious::Routes::Route.
- Improved Mojolicious::Commands to throw an exception for invalid commands.
8.66 2020-11-28
- Deprecated logging to "log/$mode.log" (if a log directory exists) in Mojolicious. The default will simply be STDERR
in the future.
- Added support for preloading controllers and other classes during startup of Mojolicious applications.
- Added EXPERIMENTAL preload_namespaces attribute to Mojolicious.
- Added EXPERIMENTAL warmup method to Mojolicious.
- Added EXPERIMENTAL load_classes function to Mojo::Loader.
- Removed experimental status from humanize_bytes method in Mojo::ByteStream.
- Removed experimental status from humanize_bytes function in Mojo::Util.
- Improved find_modules function in Mojo::Loader with recursive option.
- Improved Mojo::DOM::CSS to throw exceptions for unknown CSS selectors.
- Fixed a bug in Mojolicious::Commands where help messages would not be displayed correctly for some commands.
(kiwiroy)
- Fixed a bug in Mojolicious::Routes::Pattern where type_start was treated as a regex. (Grinnz)
8.65 2020-11-10
- Added generate dockerfile command. (tianon)
- Improved cookbook with container deployment recipe.
- Improved security of secure_compare function in Mojo::Util. (robrwo)
- Fixed all generated code to consistently use a *::Sandbox class, instead of *::SandBox.
8.64 2020-11-01
- Replaced prettify.js with highlight.js. (zakame)
- Fixed a bug in Mojo::DOM where the tree root would be checked for all pseudo-classes.
- Fixed a redefined subroutine warning in eval command. (elmar)
8.63 2020-10-11
- Improved Mojo::IOLoop::Subprocess to ensure a clean exit even if something unexpected happens in the forked
process.
8.62 2020-10-10
- Improved commands to exit with a usage message on unknown options.
8.61 2020-10-01
- Fixed fork-safety feature in Mojo::UserAgent to work with more than one fork.
- Fixed reset method in Mojo::IOLoop to not interfere with close events anymore, since that resulted in leaks.
8.60 2020-09-27
- Improved reset method in Mojo::IOLoop to prevent close event to be emitted in affected streams. (kiwiroy)
- Improved cookbook with Envoy deployment recipe. (zakame)
8.59 2020-09-05
- Added l function to ojo. (kiwiroy)
- Added MOJO_PROMISE_DEBUG environment variable to Mojo::Promise.
8.58 2020-08-05
- Improved app and lite_app generators to use templates with subroutine signatures.
- Updated all documentation to use subroutine signatures. (kiwiroy)
8.57 2020-07-16
- Added support for YAML config files.
- Added module Mojolicious::Plugin::NotYAMLConfig.
- Improved app generator command to use a YAML config file.
- Fixed a bug in proxy helpers that caused response content to be ignored in some cases. (mohawk2)
- Fixed attr_is bug in Test::Mojo that prevented false value comparisons from working correctly. (tim-2)
8.56 2020-06-19
- Fixed a bug that prevented "% end, begin" to work in Mojo::Template. (jberger)
8.55 2020-06-18
- Fixed a regression in Mojo::DOM::CSS that caused some selectors to not be valid anymore.
8.54 2020-06-14
- Added EXPERIMENTAL support for :scope and :has pseudo-classes to Mojo::DOM::CSS. (Eckankar, kraih)
- Fixed a bug in Mojo::DOM where select and ruby elements were parsed incorrectly.
- Fixed a bug in Mojo::UserAgent::Transactor that prevented compression settings to be inherited across redirects.
- Fixed a bug where Mojolicious templates could not use the continue Perl keyword.
8.53 2020-06-09
- Added EXPERIMENTAL extname method to Mojo::File.
- Fixed a bug in Mojolicious::Types where dotfiles would be considered file extensions.
8.52 2020-06-01
- Updated project metadata.
- Fixed a bug in Mojo::Asset::Memory where the upgrade event could not change the temporary directory.
8.51 2020-05-30
- Improved map efficiency in Mojo::Promise. (mst)
- Improved more tests to use subtests. (veesh)
- Improved .perltidyrc with more modern settings.
8.50 2020-05-23
- Increased Perl version requirement to 5.16.0. This is just a first step however, at some point in the not so distant
future we will increase the Perl version requirement to 5.20.0 for full subroutine signatures support.
- Improved Mojo::Base to enable the Perl 5.16 feature bundle with "unicode_strings", "unicode_eval", "evalbytes",
"current_sub" and "fc".
8.43 2020-05-20
- Removed deprecated argument handling from Mojo::Promise::new.
- Removed experimental status from all_settled method in Mojo::Promise.
- Removed experimental status from content_type and file_type methods in Mojolicious::Types.
- Removed experimental status from cleanup event in Mojo::IOLoop::Subprocess.
- Switched from Storable to JSON serialization for Mojo::IOLoop::Subprocess IPC to increase efficiency.
- Added exit_code method to Mojo::IOLoop::Subprocess.
- Improved Mojo::Promise to warn when an unhandled rejected promise is destroyed.
- Fixed a bug where the resolve class method in Mojo::Promise would unnecessarily create new promises.
- Fixed a promise chaining bug in Mojo::Promise. (karjala)
8.42 2020-05-04
- This release contains fixes for security issues, everybody should upgrade!
- Added EXPERIMENTAL support for :any-link pseudo-class to Mojo::DOM::CSS.
- Added EXPERIMENTAL support for case-sensitive attribute selectors like [foo="bar" s] to Mojo::DOM::CSS
- Renamed experimental :matches pseudo-class to :is in Mojo::DOM::CSS.
- Fixed a security issue that allowed for _method query parameters to be used with GET requests.
- Fixed a bug in Mojo::DOM::CSS where the case-sensitivity identifier was case-sensitive.
8.41 2020-04-30
- Improved Mojolicious::Commands to treat commands like "mojo generate lite_app" as "mojo generate lite-app".
8.40 2020-04-23
- Fixed support for disabling the inactivity timeout in Mojo::UserAgent.
8.39 2020-04-22
- Fixed a bug in Mojo::Server::Daemon where active connections could get the keep-alive timeout assigned instead of
the inactivity timeout.
- Fixed a race condition in Mojo::UserAgent where test servers would close connections prematurely.
8.38 2020-04-21
- Added run_p method to Mojo::IOLoop::Subprocess. (batman)
8.37 2020-04-19
- Added keep_alive_timeout attribute to Mojo::Server::Daemon.
- Added -k options to daemon and prefork commands.
- Added keep_alive_timeout setting to Hypnotoad.
- Increased various default timeouts because keep_alive_timeout takes over some of their previous responsibility.
- Improved timeout setting performance significantly in Mojo::IOLoop::Stream.
- Improved again method in Mojo::Reactor, Mojo::Reactor::EV and Mojo::Reactor::Poll to allow changing the invocation
time of active timers.
- Fixed support for 425 status in Mojo::Message::Response.
8.36 2020-03-31
- Added handler attribute to Test::Mojo.
- Added test method to Test::Mojo.
- Improved Test::Mojo to allow for extensions to be tested more easily.
- Improved request_id attribute in Mojo::Message::Request to be a little more unique. (mst)
8.35 2020-03-20
- Added not_empty filter to Mojolicious::Validator.
8.34 2020-03-16
- Removed experimental status from proxy->get_p, proxy->post_p and proxy->start_p helpers in
Mojolicious::Plugin::DefaultHelpers.
- Removed experimental status from compress and min_compress_size attributes in Mojolicious::Renderer.
- Removed experimental status from high_water_mark attribute in Mojo::IOLoop::Stream.
- Removed experimental status from respond method in Mojolicious::Renderer.
- Removed experimental status from bytes_waiting and can_write methods in Mojo::IOLoop::Stream.
- Removed experimental status from dehop method in Mojo::Headers.
- Removed experimental status from scope_guard function in Mojo::Util.
- Improved size check in Mojolicious::Validator to only require one argument.
- Fixed Mojolicious::Validator to also validate empty string values instead of ignoring them. This behaviour had
caused a lot of confusion in the past.
- Fixed plugin generator not to use an __END__ section.
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.
- Fixed a bug where the -async_await flag in Mojo::Base would not load Mojo::Promise.
8.31 2020-01-14
- Added attr_is, attr_isnt, attr_like and attr_unlike methods to Test::Mojo. (pau4o)
- Improved is_fresh method in Mojolicious::Static with support for weak etags. (ether)
8.30 2020-01-07
- Switch from Future::AsyncAwait::Frozen to Future::AsyncAwait for async/await support.
8.29 2019-12-28
- Improved async/await support to work in many more cases, such as WebSocket handlers.
8.28 2019-12-26
- Added EXPERIMENTAL support for async/await (with -async Mojo::Base flag).
- Added EXPERIMENTAL all_settled and any methods to Mojo::Promise.
8.27 2019-12-04
- Added EXPERIMENTAL before_command hook.
- Added EXPERIMENTAL scope_guard function to Mojo::Util.
- Removed experimental status from context method in Mojo::Log.
- Changed default MIME type of content_type method in Mojolicious::Types to application/octet-stream. (aitap)
8.26 2019-11-02
- Removed deprecated slice method from Mojo::Collection.
- Moved HTML entities from Mojo::Util into a separate file. (rage311)
- Changed how the state of the event loop is determined in Mojo::Reactor::EV to be more consistent with
Mojo::Reactor::Poll.
8.25 2019-09-29
- Added curfile function to Mojo::File. (Grinnz)
8.24 2019-09-11
- Added EXPERIMENTAL context method to Mojo::Log.
- Added EXPERIMENTAL cleanup event to Mojo::IOLoop::Subprocess.
- Added log helper to Mojolicious::Plugin::DefaultHelpers.
- Improved log messages generated by Mojolicious to include request ids when possible.
8.23 2019-08-12
- Updated Cpanel::JSON::XS requirement to 4.09 for duplicate keys support. (Grinnz)
- Added head and tail methods to Mojo::Collection. (Grinnz)
- Improved Mojo::File not to allow undefined values in paths.
8.22 2019-07-17
- Fixed a bug where Mojo::Exception would not stringify correctly for error messages that end with a newline.
- Fixed Mojo::Exception to append file and line number to stringified error messages that do not end with a newline.
8.21 2019-07-13
- Undeprecated Mojo::Exception::verbose.
- Added support for MOJO_EXCEPTION_VERBOSE environment variable.
- Improved built-in templates to use the same stack trace format as Mojo::Exception.
8.20 2019-07-08
- Improved check function in Mojo::Exception to match regular expressions against stringified exception objects too.
- Improved num check in Mojolicious::Validator to accept negative numbers. (kiwiroy)
8.19 2019-07-07
- Deprecated Mojo::Exception::verbose.
- Added EXPERIMENTAL check and raise functions to Mojo::Exception.
- Added -f option to generate plugin command.
- Improved inspect method in Mojo::Exception to be safe to call more than once.
- Fixed various stack trace bugs in Mojo::Exception, so your error messages and stack traces can look slightly
different than before.
- Fixed bugs in reply->exception helper that could result in exceptions without error message.
- Fixed daemonize exception handling in Mojo::Server. (skaji)
8.18 2019-06-28
- Welcome to the Mojolicious core team CandyAngel, Christopher Rasch-Olsen Raa and Dan Book.
- Deprecated the use of the config stash value and $config variable in templates by Mojolicious::Plugin::Config. You
can use the config helper instead. Unfortunately there is no good way to warn users, so this deprecation will be in
effect until the next major release.
- Deprecated Mojo::Collection::slice since nobody remembers anymore what its intended purpose was.
- Added EXPERIMENTAL proxy->get_p, proxy->post_p and proxy->start_p helpers to Mojolicious::Plugin::DefaultHelpers.
- Added EXPERIMENTAL dehop method to Mojo::Headers.
- Added EXPERIMENTAL bytes_waiting and can_write methods to Mojo::IOLoop::Stream.
- Added EXPERIMENTAL high_water_mark attribute to Mojo::IOLoop::Stream.
- Updated bundled TLS certificate.
- Improved Mojo::Base flags not to require a certain order.
- Improved clone performance in Mojo::Headers by 100%.
- Improved streaming response performance slightly.
- Fixed a typo in the 425 status message in Mojo::Message::Response. (CandyAngel)
- Fixed a missing deprecation warning in Mojo::Promise. (marcus)
8.17 2019-05-23
- Fixed a bug in Mojo::UserAgent where the request timeout would not work for keep-alive requests. (ilmari)
8.16 2019-05-14
- Improved Mojo::Headers to reject characters in header values that would corrupt the HTTP message.
- Fixed getopt function in Mojo::Util to behave more like GetOptionsFromArray. (jberger, reneeb)
8.15 2019-04-26
- Updated jQuery to version 3.4.0.
- Improved wait method in Mojo::Promise not to be affected by manually stopped event loops. (Grinnz)
- Fixed a bug where the new method in Mojo::Promise could not be passed a callback to wrap continuation-passing style
APIs, which is incompatible with the JavaScript API.
8.14 2019-04-18
- Added EXPERIMENTAL timer method to Mojo::Promise.
- Added header_exists and header_exists_not methods to Test::Mojo.
- Fixed a bug where the finally callback in Mojo::Promise was passed a value, which is incompatible with the
JavaScript API.
- Fixed a bug in Mojo::Promise where the finally method could change promise values.
- 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, kraih)
- Added EXPERIMENTAL samesite attributes to Mojo::Cookie::Response and Mojolicious::Cookies. (dylanwh, kraih)
- 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, kraih)
- 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, kraih)
- 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, kraih)
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, kraih)
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. (kraih, 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, kraih)
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