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