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