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