xref: /unit/docs/changes.xml (revision 1134:394f5c3c9ac5)
1<?xml version="1.0" ?>
2<!DOCTYPE change_log SYSTEM "changes.dtd" >
3
4
5<change_log title="unit">
6
7
8<changes apply="unit-php
9                unit-python unit-python2.7
10                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
11                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10 unit-go1.11
12                unit-perl
13                unit-ruby
14                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
15         ver="1.10.0" rev="1"
16         date="2019-08-22" time="18:00:00 +0300"
17         packager="Andrei Belov &lt;defan@nginx.com&gt;">
18
19<change>
20<para>
21NGINX Unit updated to 1.10.0.
22</para>
23</change>
24
25</changes>
26
27
28<changes apply="unit" ver="1.10.0" rev="1"
29         date="2019-08-22" time="18:00:00 +0300"
30         packager="Andrei Belov &lt;defan@nginx.com&gt;">
31
32<change type="change">
33<para>
34matching of cookies in routes made case sensitive.
35</para>
36</change>
37
38<change type="change">
39<para>
40decreased log level of common errors when clients close connections.
41</para>
42</change>
43
44<change type="change">
45<para>
46removed the Perl module's "--include=" ./configure option.
47</para>
48</change>
49
50<change type="feature">
51<para>
52built-in WebSocket server implementation for Node.js module.
53</para>
54</change>
55
56<change type="feature">
57<para>
58splitting PATH_INFO from request URI in PHP module.
59</para>
60</change>
61
62<change type="feature">
63<para>
64request routing by scheme (HTTP or HTTPS).
65</para>
66</change>
67
68<change type="feature">
69<para>
70support for multipart requests body in Java module.
71</para>
72</change>
73
74<change type="feature">
75<para>
76improved API compatibility with Node.js 11.10 or later.
77</para>
78</change>
79
80<change type="bugfix">
81<para>
82reconfiguration failed if "listeners" or "applications" objects were missing.
83</para>
84</change>
85
86<change type="bugfix">
87<para>
88applying a large configuration might have failed.
89</para>
90</change>
91
92</changes>
93
94
95<changes apply="unit-go1.11" ver="1.9.0" rev="1"
96         date="2019-05-30" time="18:00:00 +0300"
97         packager="Andrei Belov &lt;defan@nginx.com&gt;">
98
99<change>
100<para>
101Initial release of Go 1.11 module for NGINX Unit.
102</para>
103</change>
104
105</changes>
106
107
108<changes apply="unit-php
109                unit-python unit-python2.7
110                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
111                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
112                unit-perl
113                unit-ruby
114                unit-jsc-common unit-jsc8 unit-jsc10 unit-jsc11"
115         ver="1.9.0" rev="1"
116         date="2019-05-30" time="18:00:00 +0300"
117         packager="Andrei Belov &lt;defan@nginx.com&gt;">
118
119<change>
120<para>
121NGINX Unit updated to 1.9.0.
122</para>
123</change>
124
125</changes>
126
127
128<changes apply="unit" ver="1.9.0" rev="1"
129         date="2019-05-30" time="18:00:00 +0300"
130         packager="Andrei Belov &lt;defan@nginx.com&gt;">
131
132<change type="feature">
133<para>
134request routing by arguments, headers, and cookies.
135</para>
136</change>
137
138<change type="feature">
139<para>
140route matching patterns allow a wildcard in the middle.
141</para>
142</change>
143
144<change type="feature">
145<para>
146POST operation for appending elements to arrays in configuration.
147</para>
148</change>
149
150<change type="feature">
151<para>
152support for changing credentials using CAP_SETUID and CAP_SETGID capabilities
153on Linux without running main process as privileged user.
154</para>
155</change>
156
157<change type="bugfix">
158<para>
159memory leak in the router process might have happened when a client
160prematurely closed the connection.
161</para>
162</change>
163
164<change type="bugfix">
165<para>
166applying a large configuration might have failed.
167</para>
168</change>
169
170<change type="bugfix">
171<para>
172PUT and DELETE operations on array elements in configuration did not work.
173</para>
174</change>
175
176<change type="bugfix">
177<para>
178request schema in applications did not reflect TLS connections.
179</para>
180</change>
181
182<change type="bugfix">
183<para>
184restored compatibility with Node.js applications that use
185ServerResponse._implicitHeader() function; the bug had appeared in 1.7.
186</para>
187</change>
188
189<change type="bugfix">
190<para>
191various compatibility issues with Node.js applications.
192</para>
193</change>
194
195</changes>
196
197
198<changes apply="unit-jsc-common" ver="1.8.0" rev="1"
199         date="2019-03-01" time="18:00:00 +0300"
200         packager="Andrei Belov &lt;defan@nginx.com&gt;">
201
202<change>
203<para>
204Initial release of Java common packages for NGINX Unit.
205</para>
206</change>
207
208</changes>
209
210
211<changes apply="unit-jsc8" ver="1.8.0" rev="1"
212         date="2019-03-01" time="18:00:00 +0300"
213         packager="Andrei Belov &lt;defan@nginx.com&gt;">
214
215<change>
216<para>
217Initial release of Java 8 module for NGINX Unit.
218</para>
219</change>
220
221</changes>
222
223
224<changes apply="unit-jsc10" ver="1.8.0" rev="1"
225         date="2019-03-01" time="18:00:00 +0300"
226         packager="Andrei Belov &lt;defan@nginx.com&gt;">
227
228<change>
229<para>
230Initial release of Java 10 module for NGINX Unit.
231</para>
232</change>
233
234</changes>
235
236
237<changes apply="unit-jsc11" ver="1.8.0" rev="1"
238         date="2019-03-01" time="18:00:00 +0300"
239         packager="Andrei Belov &lt;defan@nginx.com&gt;">
240
241<change>
242<para>
243Initial release of Java 11 module for NGINX Unit.
244</para>
245</change>
246
247</changes>
248
249
250<changes apply="unit-php
251                unit-python unit-python2.7
252                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
253                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
254                unit-perl
255                unit-ruby"
256         ver="1.8.0" rev="1"
257         date="2019-03-01" time="18:00:00 +0300"
258         packager="Andrei Belov &lt;defan@nginx.com&gt;">
259
260<change>
261<para>
262NGINX Unit updated to 1.8.0.
263</para>
264</change>
265
266</changes>
267
268
269<changes apply="unit" ver="1.8.0" rev="1"
270         date="2019-03-01" time="18:00:00 +0300"
271         packager="Andrei Belov &lt;defan@nginx.com&gt;">
272
273<change type="change">
274<para>
275now three numbers are always used for versioning: major, minor,
276and patch versions.
277</para>
278</change>
279
280<change type="change">
281<para>
282now QUERY_STRING is always defined even if the request does not include
283the query component.
284</para>
285</change>
286
287<change type="feature">
288<para>
289basic internal request routing by Host, URI, and method.
290</para>
291</change>
292
293<change type="feature">
294<para>
295experimental support for Java Servlet Containers.
296</para>
297</change>
298
299<change type="bugfix">
300<para>
301segmentation fault might have occurred in the router process.
302</para>
303</change>
304
305<change type="bugfix">
306<para>
307various potential memory leaks.
308</para>
309</change>
310
311<change type="bugfix">
312<para>
313TLS connections might have stalled.
314</para>
315</change>
316
317<change type="bugfix">
318<para>
319some Perl applications might have failed to send the response body.
320</para>
321</change>
322
323<change type="bugfix">
324<para>
325some compilers with specific flags might have produced non-functioning builds;
326the bug had appeared in 1.5.
327</para>
328</change>
329
330<change type="bugfix">
331<para>
332Node.js package had wrong version number when installed from sources.
333</para>
334</change>
335
336</changes>
337
338
339<changes apply="unit-php
340                unit-python unit-python2.7
341                unit-python3.4 unit-python3.5 unit-python3.6 unit-python3.7
342                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
343                unit-perl
344                unit-ruby"
345         ver="1.7.1" rev="1"
346         date="2019-02-07" time="18:00:00 +0300"
347         packager="Andrei Belov &lt;defan@nginx.com&gt;">
348
349<change>
350<para>
351NGINX Unit updated to 1.7.1.
352</para>
353</change>
354
355</changes>
356
357
358<changes apply="unit" ver="1.7.1" rev="1"
359         date="2019-02-07" time="18:00:00 +0300"
360         packager="Andrei Belov &lt;defan@nginx.com&gt;">
361
362<change type="security">
363<para>
364a heap memory buffer overflow might have been caused in the router process by
365a specially crafted request, potentially resulting in a segmentation fault or
366other unspecified behavior (CVE-2019-7401).
367</para>
368</change>
369
370<change type="bugfix">
371<para>
372install of Go module failed without prior building of Unit daemon;
373the bug had appeared in 1.7.
374</para>
375</change>
376
377</changes>
378
379
380<changes apply="unit-python3.7" ver="1.7" rev="1"
381         date="2018-12-25" time="10:30:00 +0300"
382         packager="Andrei Belov &lt;defan@nginx.com&gt;">
383
384<change>
385<para>
386Initial release of Python 3.7 module for NGINX Unit.
387</para>
388</change>
389
390</changes>
391
392
393<changes apply="unit-php
394                unit-python unit-python2.7
395                unit-python3.4 unit-python3.5 unit-python3.6
396                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
397                unit-perl
398                unit-ruby"
399         ver="1.7" rev="1"
400         date="2018-12-20" time="18:00:00 +0300"
401         packager="Andrei Belov &lt;defan@nginx.com&gt;">
402
403<change>
404<para>
405NGINX Unit updated to 1.7.
406</para>
407</change>
408
409</changes>
410
411
412<changes apply="unit" ver="1.7" rev="1"
413         date="2018-12-20" time="18:00:00 +0300"
414         packager="Andrei Belov &lt;defan@nginx.com&gt;">
415
416<change type="change">
417<para>
418now rpath is set in Ruby module only if the library was not found in default
419search paths; this allows to meet packaging restrictions on some systems.
420</para>
421</change>
422
423<change type="bugfix">
424<para>
425"disable_functions" and "disable_classes" PHP options set via Control API
426did not work.
427</para>
428</change>
429
430<change type="bugfix">
431<para>
432Promises on request data in Node.js were not triggered.
433</para>
434</change>
435
436<change type="bugfix">
437<para>
438various compatibility issues with Node.js applications.
439</para>
440</change>
441
442<change type="bugfix">
443<para>
444a segmentation fault occurred in Node.js module if application tried to read
445request body after request.end() was called.
446</para>
447</change>
448
449<change type="bugfix">
450<para>
451a segmentation fault occurred in Node.js module if application attempted to
452send header twice.
453</para>
454</change>
455
456<change type="bugfix">
457<para>
458names of response header fields in Node.js module were erroneously treated as
459case-sensitive.
460</para>
461</change>
462
463<change type="bugfix">
464<para>
465uncatched exceptions in Node.js were not logged.
466</para>
467</change>
468
469<change type="bugfix">
470<para>
471global install of Node.js module from sources was broken on some systems;
472the bug had appeared in 1.6.
473</para>
474</change>
475
476<change type="bugfix">
477<para>
478traceback for exceptions during initialization of Python applications might not
479be logged.
480</para>
481</change>
482
483<change type="bugfix">
484<para>
485PHP module build failed if PHP interpreter was built with thread safety
486enabled.
487</para>
488</change>
489
490</changes>
491
492
493<changes apply="unit-php
494                unit-python unit-python2.7
495                unit-python3.4 unit-python3.5 unit-python3.6
496                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
497                unit-perl
498                unit-ruby"
499         ver="1.6" rev="1"
500         date="2018-11-15" time="18:00:00 +0300"
501         packager="Konstantin Pavlov &lt;thresh@nginx.com&gt;">
502
503<change>
504<para>
505NGINX Unit updated to 1.6.
506</para>
507</change>
508
509</changes>
510
511
512<changes apply="unit" ver="1.6" rev="1"
513         date="2018-11-15" time="18:00:00 +0300"
514         packager="Konstantin Pavlov &lt;thresh@nginx.com&gt;">
515
516<change type="change">
517<para>
518"make install" now installs Node.js module as well if it was configured.
519</para>
520</change>
521
522<change type="feature">
523<para>
524"--local" ./configure option to install Node.js module locally.
525</para>
526</change>
527
528<change type="bugfix">
529<para>
530Node.js module might have crashed due to broken reference counting.
531</para>
532</change>
533
534<change type="bugfix">
535<para>
536asynchronous operations in Node.js might not have worked.
537</para>
538</change>
539
540<change type="bugfix">
541<para>
542various compatibility issues with Node.js applications.
543</para>
544</change>
545
546<change type="bugfix">
547<para>
548"freed pointer is out of pool" alerts might have appeared in log.
549</para>
550</change>
551
552<change type="bugfix">
553<para>
554module discovery did not work on 64-bit big-endian systems like IBM/S390x.
555</para>
556</change>
557
558</changes>
559
560
561<changes apply="unit-php
562                unit-python unit-python2.7
563                unit-python3.4 unit-python3.5 unit-python3.6
564                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
565                unit-perl
566                unit-ruby"
567         ver="1.5" rev="1"
568         date="2018-10-25" time="18:00:00 +0300"
569         packager="Andrei Belov &lt;defan@nginx.com&gt;">
570
571<change>
572<para>
573NGINX Unit updated to 1.5.
574</para>
575</change>
576
577</changes>
578
579
580<changes apply="unit" ver="1.5" rev="1"
581         date="2018-10-25" time="18:00:00 +0300"
582         packager="Andrei Belov &lt;defan@nginx.com&gt;">
583
584<change type="change">
585<para>
586the "type" of application object for Go was changed to "external".
587</para>
588</change>
589
590<change type="feature">
591<para>
592initial version of Node.js package with basic HTTP request-response support.
593</para>
594</change>
595
596<change type="feature">
597<para>
598compatibility with LibreSSL.
599</para>
600</change>
601
602<change type="feature">
603<para>
604--libdir and --incdir ./configure options to install libunit headers
605and static library.
606</para>
607</change>
608
609<change type="bugfix">
610<para>
611connection might be closed prematurely while sending response;
612the bug had appeared in 1.3.
613</para>
614</change>
615
616<change type="bugfix">
617<para>
618application processes might have stopped handling requests, producing
619"last message send failed: Resource temporarily unavailable" alerts in log;
620the bug had appeared in 1.4.
621</para>
622</change>
623
624<change type="bugfix">
625<para>
626Go applications did not work when Unit was built with musl C library.
627</para>
628</change>
629
630</changes>
631
632
633<changes apply="unit-php
634                unit-python unit-python2.7
635                unit-python3.4 unit-python3.5 unit-python3.6
636                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
637                unit-perl
638                unit-ruby"
639         ver="1.4" rev="2"
640         date="2018-09-27" time="13:30:00 +0300"
641         packager="Andrei Belov &lt;defan@nginx.com&gt;">
642
643<change type="bugfix">
644<para>
645corrected instructions for launching sample application.
646</para>
647</change>
648
649</changes>
650
651
652<changes apply="unit" ver="1.4" rev="2"
653         date="2018-09-27" time="13:30:00 +0300"
654         packager="Andrei Belov &lt;defan@nginx.com&gt;">
655
656<change type="change">
657<para>
658the "saveconfig" and "loadconfig" action scripts were removed.
659</para>
660</change>
661
662</changes>
663
664
665<changes apply="unit-php
666                unit-python unit-python2.7
667                unit-python3.4 unit-python3.5 unit-python3.6
668                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
669                unit-perl
670                unit-ruby"
671         ver="1.4" rev="1"
672         date="2018-09-20" time="18:00:00 +0300"
673         packager="Andrei Belov &lt;defan@nginx.com&gt;">
674
675<change>
676<para>
677NGINX Unit updated to 1.4.
678</para>
679</change>
680
681</changes>
682
683
684<changes apply="unit" ver="1.4" rev="1"
685         date="2018-09-20" time="18:00:00 +0300"
686         packager="Andrei Belov &lt;defan@nginx.com&gt;">
687
688<change type="change">
689<para>
690the control API maps the configuration object only at "/config/".
691</para>
692</change>
693
694<change type="feature">
695<para>
696TLS support for client connections.
697</para>
698</change>
699
700<change type="feature">
701<para>
702TLS certificates storage control API.
703</para>
704</change>
705
706<change type="feature">
707<para>
708Unit library (libunit) to streamline language module integration.
709</para>
710</change>
711
712<change type="feature">
713<para>
714"408 Request Timeout" responses while closing HTTP keep-alive connections.
715</para>
716</change>
717
718<change type="feature">
719<para>
720improvements in OpenBSD support.
721Thanks to David Carlier.
722</para>
723</change>
724
725<change type="bugfix">
726<para>
727a segmentation fault might have occurred after reconfiguration.
728</para>
729</change>
730
731<change type="bugfix">
732<para>
733building on systems with non-default locale might be broken.
734</para>
735</change>
736
737<change type="bugfix">
738<para>
739"header_read_timeout" might not work properly.
740</para>
741</change>
742
743<change type="bugfix">
744<para>
745header fields values with non-ASCII bytes might be handled incorrectly
746in Python 3 module.
747</para>
748</change>
749
750</changes>
751
752
753<changes apply="unit-php
754                unit-python unit-python2.7
755                unit-python3.4 unit-python3.5 unit-python3.6
756                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
757                unit-perl
758                unit-ruby"
759         ver="1.3" rev="1"
760         date="2018-07-13" time="18:00:00 +0300"
761         packager="Konstantin Pavlov &lt;thresh@nginx.com&gt;">
762
763<change>
764<para>
765NGINX Unit updated to 1.3.
766</para>
767</change>
768
769</changes>
770
771
772<changes apply="unit" ver="1.3" rev="1"
773         date="2018-07-13" time="18:00:00 +0300"
774         packager="Konstantin Pavlov &lt;thresh@nginx.com&gt;">
775
776<change type="change">
777<para>
778UTF-8 characters are now allowed in request header field values.
779</para>
780</change>
781
782<change type="feature">
783<para>
784configuration of the request body size limit.
785</para>
786</change>
787
788<change type="feature">
789<para>
790configuration of various HTTP connection timeouts.
791</para>
792</change>
793
794<change type="feature">
795<para>
796Ruby module now automatically uses Bundler where possible.
797</para>
798</change>
799
800<change type="feature">
801<para>
802http.Flusher interface in Go module.
803</para>
804</change>
805
806<change type="bugfix">
807<para>
808various issues in HTTP connection errors handling.
809</para>
810</change>
811
812<change type="bugfix">
813<para>
814requests with body data might be handled incorrectly in PHP module.
815</para>
816</change>
817
818<change type="bugfix">
819<para>
820individual PHP configuration options specified via control API were reset
821to previous values after the first request in application process.
822</para>
823</change>
824
825</changes>
826
827
828<changes apply="unit-php
829                unit-python unit-python2.7
830                unit-python3.4 unit-python3.5 unit-python3.6
831                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
832                unit-perl
833                unit-ruby"
834         ver="1.2" rev="1"
835         date="2018-06-07" time="18:00:00 +0300"
836         packager="Andrei Belov &lt;defan@nginx.com&gt;">
837
838<change>
839<para>
840NGINX Unit updated to 1.2.
841</para>
842</change>
843
844</changes>
845
846
847<changes apply="unit" ver="1.2" rev="1"
848         date="2018-06-07" time="18:00:00 +0300"
849         packager="Andrei Belov &lt;defan@nginx.com&gt;">
850
851<change type="feature">
852<para>
853configuration of environment variables for application processes.
854</para>
855</change>
856
857<change type="feature">
858<para>
859customization of php.ini path.
860</para>
861</change>
862
863<change type="feature">
864<para>
865setting of individual PHP configuration options.
866</para>
867</change>
868
869<change type="feature">
870<para>
871configuration of execution arguments for Go applications.
872</para>
873</change>
874
875<change type="bugfix">
876<para>
877keep-alive connections might hang after reconfiguration.
878</para>
879</change>
880
881</changes>
882
883
884<changes apply="unit-go1.10" ver="1.1" rev="1"
885         date="2018-05-14" time="18:00:00 +0300"
886         packager="Andrei Belov &lt;defan@nginx.com&gt;">
887
888<change>
889<para>
890Initial release of Go 1.10 module for NGINX Unit.
891</para>
892</change>
893
894</changes>
895
896
897<changes apply="unit-php
898                unit-python unit-python2.7
899                unit-python3.4 unit-python3.5 unit-python3.6
900                unit-go unit-go1.7 unit-go1.8 unit-go1.9
901                unit-perl
902                unit-ruby"
903         ver="1.1" rev="1"
904         date="2018-04-26" time="18:00:00 +0300"
905         packager="Andrei Belov &lt;defan@nginx.com&gt;">
906
907<change>
908<para>
909NGINX Unit updated to 1.1.
910</para>
911</change>
912
913</changes>
914
915
916<changes apply="unit" ver="1.1" rev="1"
917         date="2018-04-26" time="18:00:00 +0300"
918         packager="Andrei Belov &lt;defan@nginx.com&gt;">
919
920<change type="bugfix">
921<para>
922Python applications that use the write() callable did not work.
923</para>
924</change>
925
926<change type="bugfix">
927<para>
928virtual environments created with Python 3.3 or above might not have worked.
929</para>
930</change>
931
932<change type="bugfix">
933<para>
934the request.Read() function in Go applications did not produce EOF
935when the whole body was read.
936</para>
937</change>
938
939<change type="bugfix">
940<para>
941a segmentation fault might have occurred while access log reopening.
942</para>
943</change>
944
945<change type="bugfix">
946<para>
947in parsing of IPv6 control socket addresses.
948</para>
949</change>
950
951<change type="bugfix">
952<para>
953loading of application modules was broken on OpenBSD.
954</para>
955</change>
956
957<change type="bugfix">
958<para>
959a segmentation fault might have occurred when there were two modules
960with the same type and version; the bug had appeared in 1.0.
961</para>
962</change>
963
964<change type="bugfix">
965<para>
966alerts "freed pointer points to non-freeble page" might have appeared in log
967on 32-bit platforms.
968</para>
969</change>
970
971</changes>
972
973
974<changes apply="unit-php
975                unit-python unit-python2.7
976                unit-python3.4 unit-python3.5 unit-python3.6
977                unit-go unit-go1.7 unit-go1.8 unit-go1.9
978                unit-perl
979                unit-ruby"
980         ver="1.0" rev="1"
981         date="2018-04-12" time="18:00:00 +0300"
982         packager="Andrei Belov &lt;defan@nginx.com&gt;">
983
984<change>
985<para>
986NGINX Unit updated to 1.0.
987</para>
988</change>
989
990</changes>
991
992
993<changes apply="unit" ver="1.0" rev="1"
994         date="2018-04-12" time="18:00:00 +0300"
995         packager="Andrei Belov &lt;defan@nginx.com&gt;">
996
997<change type="change">
998<para>
999configuration object moved into "/config/" path.
1000</para>
1001</change>
1002
1003<change type="feature">
1004<para>
1005basic access logging.
1006</para>
1007</change>
1008
1009<change type="bugfix">
1010<para>
1011503 error occurred if Go application did not write response header or body.
1012</para>
1013</change>
1014
1015<change type="bugfix">
1016<para>
1017Ruby applications that use encoding conversions might not have worked.
1018</para>
1019</change>
1020
1021<change type="bugfix">
1022<para>
1023various stability issues.
1024</para>
1025</change>
1026
1027</changes>
1028
1029
1030<changes apply="unit-php
1031                unit-python unit-python2.7
1032                unit-python3.4 unit-python3.5 unit-python3.6
1033                unit-go unit-go1.7 unit-go1.8 unit-go1.9
1034                unit-perl"
1035         ver="0.7" rev="1"
1036         date="2018-03-22" time="18:00:00 +0300"
1037         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1038
1039<change>
1040<para>
1041NGINX Unit updated to 0.7.
1042</para>
1043</change>
1044
1045</changes>
1046
1047
1048<changes apply="unit-ruby" ver="0.7" rev="1"
1049         date="2018-04-02" time="15:40:00 +0300"
1050         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1051
1052<change>
1053<para>
1054Initial release of Ruby module for NGINX Unit.
1055</para>
1056</change>
1057
1058</changes>
1059
1060
1061<changes apply="unit" ver="0.7" rev="1"
1062         date="2018-03-22" time="18:00:00 +0300"
1063         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1064
1065<change type="feature">
1066<para>
1067Ruby application module.
1068</para>
1069</change>
1070
1071<change type="bugfix">
1072<para>
1073in discovering modules.
1074</para>
1075</change>
1076
1077<change type="bugfix">
1078<para>
1079various race conditions on reconfiguration and during shutting down.
1080</para>
1081</change>
1082
1083<change type="bugfix">
1084<para>
1085tabs and trailing spaces were not allowed in header fields values.
1086</para>
1087</change>
1088
1089<change type="bugfix">
1090<para>
1091a segmentation fault occurred in Python module if start_response() was called
1092outside of WSGI callable.
1093</para>
1094</change>
1095
1096<change type="bugfix">
1097<para>
1098a segmentation fault might have occurred in PHP module if there was an error
1099while initialization.
1100</para>
1101</change>
1102
1103</changes>
1104
1105
1106<changes apply="unit-php
1107                unit-python unit-python2.7
1108                unit-python3.4 unit-python3.5 unit-python3.6
1109                unit-go unit-go1.7 unit-go1.8 unit-go1.9
1110                unit-perl"
1111         ver="0.6" rev="1"
1112         date="2018-02-09" time="18:00:00 +0300"
1113         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1114
1115<change>
1116<para>
1117NGINX Unit updated to 0.6.
1118</para>
1119</change>
1120
1121</changes>
1122
1123
1124<changes apply="unit" ver="0.6" rev="1"
1125         date="2018-02-09" time="18:00:00 +0300"
1126         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1127
1128<change type="bugfix">
1129<para>
1130the main process died when the "type" application option contained version;
1131the bug had appeared in 0.5.
1132</para>
1133</change>
1134
1135</changes>
1136
1137
1138<changes apply="unit-php
1139                unit-python unit-python2.7
1140                unit-python3.4 unit-python3.5 unit-python3.6
1141                unit-go unit-go1.7 unit-go1.8 unit-go1.9"
1142         ver="0.5" rev="1"
1143         date="2018-02-08" time="18:00:00 +0300"
1144         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1145
1146<change>
1147<para>
1148NGINX Unit updated to 0.5.
1149</para>
1150</change>
1151
1152</changes>
1153
1154
1155<changes apply="unit-perl" ver="0.5" rev="1"
1156         date="2018-02-08" time="18:00:00 +0300"
1157         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1158
1159<change>
1160<para>
1161Initial release of Perl module for NGINX Unit.
1162</para>
1163</change>
1164
1165</changes>
1166
1167
1168<changes apply="unit" ver="0.5" rev="1"
1169         date="2018-02-08" time="18:00:00 +0300"
1170         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1171
1172<change type="change">
1173<para>
1174the "workers" application option was removed, the "processes"
1175application option should be used instead.
1176</para>
1177</change>
1178
1179<change type="feature">
1180<para>
1181the "processes" application option with prefork and dynamic
1182process management support.
1183</para>
1184</change>
1185
1186<change type="feature">
1187<para>
1188Perl application module.
1189</para>
1190</change>
1191
1192<change type="bugfix">
1193<para>
1194in reading client request body; the bug had appeared in 0.3.
1195</para>
1196</change>
1197
1198<change type="bugfix">
1199<para>
1200some Python applications might not have worked due to missing
1201"wsgi.errors" environ variable.
1202</para>
1203</change>
1204
1205<change type="bugfix">
1206<para>
1207HTTP chunked responses might be encoded incorrectly on 32-bit
1208platforms.
1209</para>
1210</change>
1211
1212<change type="bugfix">
1213<para>
1214infinite looping in HTTP parser.
1215</para>
1216</change>
1217
1218<change type="bugfix">
1219<para>
1220segmentation fault in router.
1221</para>
1222</change>
1223
1224</changes>
1225
1226
1227<changes apply="unit-php
1228                unit-python unit-python2.7
1229                unit-python3.4 unit-python3.5 unit-python3.6
1230                unit-go unit-go1.7 unit-go1.8 unit-go1.9"
1231         ver="0.4" rev="1"
1232         date="2018-01-15" time="18:00:00 +0300"
1233         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1234
1235<change>
1236<para>
1237NGINX Unit updated to 0.4.
1238</para>
1239</change>
1240
1241</changes>
1242
1243
1244<changes apply="unit" ver="0.4" rev="1"
1245         date="2018-01-15" time="18:00:00 +0300"
1246         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1247
1248<change type="feature">
1249<para>
1250compatibility with DragonFly BSD.
1251</para>
1252</change>
1253
1254<change type="feature">
1255<para>
1256"configure php --lib-static" option.
1257</para>
1258</change>
1259
1260<change type="bugfix">
1261<para>
1262HTTP request body was not passed to application;
1263the bug had appeared in 0.3.
1264</para>
1265</change>
1266
1267<change type="bugfix">
1268<para>
1269HTTP large header buffers allocation and deallocation fixed;
1270the bug had appeared in 0.3.
1271</para>
1272</change>
1273
1274<change type="bugfix">
1275<para>
1276some PHP applications might not have worked with relative "root" path.
1277</para>
1278</change>
1279
1280</changes>
1281
1282
1283<changes apply="unit-go1.9" ver="0.3" rev="1"
1284         date="2017-12-28" time="18:00:00 +0300"
1285         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1286
1287<change>
1288<para>
1289Initial release of Go 1.9 module for NGINX Unit.
1290</para>
1291</change>
1292
1293</changes>
1294
1295
1296<changes apply="unit-python3.6" ver="0.3" rev="1"
1297         date="2017-12-28" time="18:00:00 +0300"
1298         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1299
1300<change>
1301<para>
1302Initial release of Python 3.6 module for NGINX Unit.
1303</para>
1304</change>
1305
1306</changes>
1307
1308
1309<changes apply="unit-php
1310                unit-python unit-python2.7 unit-python3.4 unit-python3.5
1311                unit-go unit-go1.7 unit-go1.8"
1312         ver="0.3" rev="1"
1313         date="2017-12-28" time="18:00:00 +0300"
1314         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1315
1316<change>
1317<para>
1318NGINX Unit updated to 0.3.
1319</para>
1320</change>
1321
1322</changes>
1323
1324
1325<changes apply="unit" ver="0.3" rev="1"
1326         date="2017-12-28" time="18:00:00 +0300"
1327         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1328
1329<change type="change">
1330<para>
1331the Go package name changed to "nginx/unit".
1332</para>
1333</change>
1334
1335<change type="change">
1336<para>
1337in the "limits.timeout" application option: application start time and
1338time in queue now are not accounted.
1339</para>
1340</change>
1341
1342<change type="feature">
1343<para>
1344the "limits.requests" application option.
1345</para>
1346</change>
1347
1348<change type="feature">
1349<para>
1350application request processing latency optimization.
1351</para>
1352</change>
1353
1354<change type="feature">
1355<para>
1356HTTP keep-alive connections support.
1357</para>
1358</change>
1359
1360<change type="feature">
1361<para>
1362the "home" Python virtual environment configuration option.
1363</para>
1364</change>
1365
1366<change type="feature">
1367<para>
1368Python atexit hook support.
1369</para>
1370</change>
1371
1372<change type="feature">
1373<para>
1374various Go package improvements.
1375</para>
1376</change>
1377
1378<change type="bugfix">
1379<para>
1380various crashes fixed.
1381</para>
1382</change>
1383
1384</changes>
1385
1386
1387<changes apply="unit-go" ver="0.2" rev="1"
1388         date="2017-10-19" time="18:00:00 +0300"
1389         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1390
1391<change>
1392<para>
1393Initial release of Go module for NGINX Unit.
1394</para>
1395</change>
1396
1397</changes>
1398
1399
1400<changes apply="unit-go1.7" ver="0.2" rev="1"
1401         date="2017-10-19" time="18:00:00 +0300"
1402         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1403
1404<change>
1405<para>
1406Initial release of Go 1.7 module for NGINX Unit.
1407</para>
1408</change>
1409
1410</changes>
1411
1412
1413<changes apply="unit-go1.8" ver="0.2" rev="1"
1414         date="2017-10-19" time="18:00:00 +0300"
1415         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1416
1417<change>
1418<para>
1419Initial release of Go 1.8 module for NGINX Unit.
1420</para>
1421</change>
1422
1423</changes>
1424
1425
1426<changes apply="unit-python" ver="0.2" rev="1"
1427         date="2017-10-19" time="18:00:00 +0300"
1428         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1429
1430<change>
1431<para>
1432Initial release of Python module for NGINX Unit.
1433</para>
1434</change>
1435
1436</changes>
1437
1438
1439<changes apply="unit-python2.7" ver="0.2" rev="1"
1440         date="2017-10-19" time="18:00:00 +0300"
1441         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1442
1443<change>
1444<para>
1445Initial release of Python 2.7 module for NGINX Unit.
1446</para>
1447</change>
1448
1449</changes>
1450
1451
1452<changes apply="unit-python3.4" ver="0.2" rev="1"
1453         date="2017-10-19" time="18:00:00 +0300"
1454         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1455
1456<change>
1457<para>
1458Initial release of Python 3.4 module for NGINX Unit.
1459</para>
1460</change>
1461
1462</changes>
1463
1464
1465<changes apply="unit-python3.5" ver="0.2" rev="1"
1466         date="2017-10-19" time="18:00:00 +0300"
1467         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1468
1469<change>
1470<para>
1471Initial release of Python 3.5 module for NGINX Unit.
1472</para>
1473</change>
1474
1475</changes>
1476
1477
1478<changes apply="unit-php" ver="0.2" rev="1"
1479         date="2017-10-19" time="18:00:00 +0300"
1480         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1481
1482<change>
1483<para>
1484Initial release of PHP module for NGINX Unit.
1485</para>
1486</change>
1487
1488</changes>
1489
1490
1491<changes apply="unit" ver="0.2" rev="1"
1492         date="2017-10-19" time="18:00:00 +0300"
1493         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1494
1495<change type="feature">
1496<para>
1497configuration persistence.
1498</para>
1499</change>
1500
1501<change type="feature">
1502<para>
1503improved handling of configuration errors.
1504</para>
1505</change>
1506
1507<change type="feature">
1508<para>
1509application "timeout" property.
1510</para>
1511</change>
1512
1513<change type="bugfix">
1514<para>
1515POST request for PHP were handled incorrectly.
1516</para>
1517</change>
1518
1519<change type="bugfix">
1520<para>
1521the router exited abnormally if all listeners had been deleted.
1522</para>
1523</change>
1524
1525<change type="bugfix">
1526<para>
1527the router crashed under load.
1528</para>
1529</change>
1530
1531<change type="bugfix">
1532<para>
1533memory leak in the router.
1534</para>
1535</change>
1536
1537</changes>
1538
1539
1540<changes apply="unit" ver="0.1" rev="1"
1541         date="2017-09-06" time="19:14:28 +0300"
1542         packager="Andrei Belov &lt;defan@nginx.com&gt;">
1543
1544<change>
1545<para>
1546First public release.
1547</para>
1548</change>
1549
1550</changes>
1551
1552
1553</change_log>
1554