xref: /unit/docs/changes.xml (revision 820:a1bcc0a94cfc)
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" ver="1.5" rev="1"
9         date="2018-10-25" time="18:00:00 +0300"
10         packager="Andrei Belov &lt;defan@nginx.com&gt;">
11
12<change type="change">
13<para>
14the "type" of application object for Go was changed to "external".
15</para>
16</change>
17
18<change type="feature">
19<para>
20initial version of Node.js package with basic HTTP request-response support.
21</para>
22</change>
23
24<change type="feature">
25<para>
26compatibility with LibreSSL.
27</para>
28</change>
29
30<change type="feature">
31<para>
32--libdir and --incdir ./configure options to install libunit headers
33and static library.
34</para>
35</change>
36
37<change type="bugfix">
38<para>
39connection might be closed prematurely while sending response;
40the bug had appeared in 1.3.
41</para>
42</change>
43
44<change type="bugfix">
45<para>
46application processes might have stopped handling requests, producing
47"last message send failed: Resource temporarily unavailable" alerts in log;
48the bug had appeared in 1.4.
49</para>
50</change>
51
52<change type="bugfix">
53<para>
54Go applications didn't work when Unit was built with musl C library.
55</para>
56</change>
57
58</changes>
59
60
61<changes apply="unit-php
62                unit-python unit-python2.7
63                unit-python3.4 unit-python3.5 unit-python3.6
64                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
65                unit-perl
66                unit-ruby"
67         ver="1.4" rev="2"
68         date="2018-09-27" time="13:30:00 +0300"
69         packager="Andrei Belov &lt;defan@nginx.com&gt;">
70
71<change type="bugfix">
72<para>
73corrected instructions for launching sample application.
74</para>
75</change>
76
77</changes>
78
79
80<changes apply="unit" ver="1.4" rev="2"
81         date="2018-09-27" time="13:30:00 +0300"
82         packager="Andrei Belov &lt;defan@nginx.com&gt;">
83
84<change type="change">
85<para>
86the "saveconfig" and "loadconfig" action scripts were removed.
87</para>
88</change>
89
90</changes>
91
92
93<changes apply="unit-php
94                unit-python unit-python2.7
95                unit-python3.4 unit-python3.5 unit-python3.6
96                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
97                unit-perl
98                unit-ruby"
99         ver="1.4" rev="1"
100         date="2018-09-20" time="18:00:00 +0300"
101         packager="Andrei Belov &lt;defan@nginx.com&gt;">
102
103<change>
104<para>
105NGINX Unit updated to 1.4.
106</para>
107</change>
108
109</changes>
110
111
112<changes apply="unit" ver="1.4" rev="1"
113         date="2018-09-20" time="18:00:00 +0300"
114         packager="Andrei Belov &lt;defan@nginx.com&gt;">
115
116<change type="change">
117<para>
118the control API maps the configuration object only at "/config/".
119</para>
120</change>
121
122<change type="feature">
123<para>
124TLS support for client connections.
125</para>
126</change>
127
128<change type="feature">
129<para>
130TLS certificates storage control API.
131</para>
132</change>
133
134<change type="feature">
135<para>
136Unit library (libunit) to streamline language module integration.
137</para>
138</change>
139
140<change type="feature">
141<para>
142"408 Request Timeout" responses while closing HTTP keep-alive connections.
143</para>
144</change>
145
146<change type="feature">
147<para>
148improvements in OpenBSD support.
149Thanks to David Carlier.
150</para>
151</change>
152
153<change type="bugfix">
154<para>
155a segmentation fault might have occurred after reconfiguration.
156</para>
157</change>
158
159<change type="bugfix">
160<para>
161building on systems with non-default locale might be broken.
162</para>
163</change>
164
165<change type="bugfix">
166<para>
167"header_read_timeout" might not work properly.
168</para>
169</change>
170
171<change type="bugfix">
172<para>
173header fields values with non-ASCII bytes might be handled incorrectly
174in Python 3 module.
175</para>
176</change>
177
178</changes>
179
180
181<changes apply="unit-php
182                unit-python unit-python2.7
183                unit-python3.4 unit-python3.5 unit-python3.6
184                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
185                unit-perl
186                unit-ruby"
187         ver="1.3" rev="1"
188         date="2018-07-13" time="18:00:00 +0300"
189         packager="Konstantin Pavlov &lt;thresh@nginx.com&gt;">
190
191<change>
192<para>
193NGINX Unit updated to 1.3.
194</para>
195</change>
196
197</changes>
198
199
200<changes apply="unit" ver="1.3" rev="1"
201         date="2018-07-13" time="18:00:00 +0300"
202         packager="Konstantin Pavlov &lt;thresh@nginx.com&gt;">
203
204<change type="change">
205<para>
206UTF-8 characters are now allowed in request header field values.
207</para>
208</change>
209
210<change type="feature">
211<para>
212configuration of the request body size limit.
213</para>
214</change>
215
216<change type="feature">
217<para>
218configuration of various HTTP connection timeouts.
219</para>
220</change>
221
222<change type="feature">
223<para>
224Ruby module now automatically uses Bundler where possible.
225</para>
226</change>
227
228<change type="feature">
229<para>
230http.Flusher interface in Go module.
231</para>
232</change>
233
234<change type="bugfix">
235<para>
236various issues in HTTP connection errors handling.
237</para>
238</change>
239
240<change type="bugfix">
241<para>
242requests with body data might be handled incorrectly in PHP module.
243</para>
244</change>
245
246<change type="bugfix">
247<para>
248individual PHP configuration options specified via control API were reset
249to previous values after the first request in application process.
250</para>
251</change>
252
253</changes>
254
255
256<changes apply="unit-php
257                unit-python unit-python2.7
258                unit-python3.4 unit-python3.5 unit-python3.6
259                unit-go unit-go1.7 unit-go1.8 unit-go1.9 unit-go1.10
260                unit-perl
261                unit-ruby"
262         ver="1.2" rev="1"
263         date="2018-06-07" time="18:00:00 +0300"
264         packager="Andrei Belov &lt;defan@nginx.com&gt;">
265
266<change>
267<para>
268NGINX Unit updated to 1.2.
269</para>
270</change>
271
272</changes>
273
274
275<changes apply="unit" ver="1.2" rev="1"
276         date="2018-06-07" time="18:00:00 +0300"
277         packager="Andrei Belov &lt;defan@nginx.com&gt;">
278
279<change type="feature">
280<para>
281configuration of environment variables for application processes.
282</para>
283</change>
284
285<change type="feature">
286<para>
287customization of php.ini path.
288</para>
289</change>
290
291<change type="feature">
292<para>
293setting of individual PHP configuration options.
294</para>
295</change>
296
297<change type="feature">
298<para>
299configuration of execution arguments for Go applications.
300</para>
301</change>
302
303<change type="bugfix">
304<para>
305keep-alive connections might hang after reconfiguration.
306</para>
307</change>
308
309</changes>
310
311
312<changes apply="unit-go1.10" ver="1.1" rev="1"
313         date="2018-05-14" time="18:00:00 +0300"
314         packager="Andrei Belov &lt;defan@nginx.com&gt;">
315
316<change>
317<para>
318Initial release of Go 1.10 module for NGINX Unit.
319</para>
320</change>
321
322</changes>
323
324
325<changes apply="unit-php
326                unit-python unit-python2.7
327                unit-python3.4 unit-python3.5 unit-python3.6
328                unit-go unit-go1.7 unit-go1.8 unit-go1.9
329                unit-perl
330                unit-ruby"
331         ver="1.1" rev="1"
332         date="2018-04-26" time="18:00:00 +0300"
333         packager="Andrei Belov &lt;defan@nginx.com&gt;">
334
335<change>
336<para>
337NGINX Unit updated to 1.1.
338</para>
339</change>
340
341</changes>
342
343
344<changes apply="unit" ver="1.1" rev="1"
345         date="2018-04-26" time="18:00:00 +0300"
346         packager="Andrei Belov &lt;defan@nginx.com&gt;">
347
348<change type="bugfix">
349<para>
350Python applications that use the write() callable did not work.
351</para>
352</change>
353
354<change type="bugfix">
355<para>
356virtual environments created with Python 3.3 or above might not have worked.
357</para>
358</change>
359
360<change type="bugfix">
361<para>
362the request.Read() function in Go applications did not produce EOF
363when the whole body was read.
364</para>
365</change>
366
367<change type="bugfix">
368<para>
369a segmentation fault might have occurred while access log reopening.
370</para>
371</change>
372
373<change type="bugfix">
374<para>
375in parsing of IPv6 control socket addresses.
376</para>
377</change>
378
379<change type="bugfix">
380<para>
381loading of application modules was broken on OpenBSD.
382</para>
383</change>
384
385<change type="bugfix">
386<para>
387a segmentation fault might have occurred when there were two modules
388with the same type and version; the bug had appeared in 1.0.
389</para>
390</change>
391
392<change type="bugfix">
393<para>
394alerts "freed pointer points to non-freeble page" might have appeared in log
395on 32-bit platforms.
396</para>
397</change>
398
399</changes>
400
401
402<changes apply="unit-php
403                unit-python unit-python2.7
404                unit-python3.4 unit-python3.5 unit-python3.6
405                unit-go unit-go1.7 unit-go1.8 unit-go1.9
406                unit-perl
407                unit-ruby"
408         ver="1.0" rev="1"
409         date="2018-04-12" time="18:00:00 +0300"
410         packager="Andrei Belov &lt;defan@nginx.com&gt;">
411
412<change>
413<para>
414NGINX Unit updated to 1.0.
415</para>
416</change>
417
418</changes>
419
420
421<changes apply="unit" ver="1.0" rev="1"
422         date="2018-04-12" time="18:00:00 +0300"
423         packager="Andrei Belov &lt;defan@nginx.com&gt;">
424
425<change type="change">
426<para>
427configuration object moved into "/config/" path.
428</para>
429</change>
430
431<change type="feature">
432<para>
433basic access logging.
434</para>
435</change>
436
437<change type="bugfix">
438<para>
439503 error occurred if Go application did not write response header or body.
440</para>
441</change>
442
443<change type="bugfix">
444<para>
445Ruby applications that use encoding conversions might not have worked.
446</para>
447</change>
448
449<change type="bugfix">
450<para>
451various stability issues.
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
461                unit-go unit-go1.7 unit-go1.8 unit-go1.9
462                unit-perl"
463         ver="0.7" rev="1"
464         date="2018-03-22" time="18:00:00 +0300"
465         packager="Andrei Belov &lt;defan@nginx.com&gt;">
466
467<change>
468<para>
469NGINX Unit updated to 0.7.
470</para>
471</change>
472
473</changes>
474
475
476<changes apply="unit-ruby" ver="0.7" rev="1"
477         date="2018-04-02" time="15:40:00 +0300"
478         packager="Andrei Belov &lt;defan@nginx.com&gt;">
479
480<change>
481<para>
482Initial release of Ruby module for NGINX Unit.
483</para>
484</change>
485
486</changes>
487
488
489<changes apply="unit" ver="0.7" rev="1"
490         date="2018-03-22" time="18:00:00 +0300"
491         packager="Andrei Belov &lt;defan@nginx.com&gt;">
492
493<change type="feature">
494<para>
495Ruby application module.
496</para>
497</change>
498
499<change type="bugfix">
500<para>
501in discovering modules.
502</para>
503</change>
504
505<change type="bugfix">
506<para>
507various race conditions on reconfiguration and during shutting down.
508</para>
509</change>
510
511<change type="bugfix">
512<para>
513tabs and trailing spaces were not allowed in header fields values.
514</para>
515</change>
516
517<change type="bugfix">
518<para>
519a segmentation fault occurred in Python module if start_response() was called
520outside of WSGI callable.
521</para>
522</change>
523
524<change type="bugfix">
525<para>
526a segmentation fault might have occurred in PHP module if there was an error
527while initialization.
528</para>
529</change>
530
531</changes>
532
533
534<changes apply="unit-php
535                unit-python unit-python2.7
536                unit-python3.4 unit-python3.5 unit-python3.6
537                unit-go unit-go1.7 unit-go1.8 unit-go1.9
538                unit-perl"
539         ver="0.6" rev="1"
540         date="2018-02-09" time="18:00:00 +0300"
541         packager="Andrei Belov &lt;defan@nginx.com&gt;">
542
543<change>
544<para>
545NGINX Unit updated to 0.6.
546</para>
547</change>
548
549</changes>
550
551
552<changes apply="unit" ver="0.6" rev="1"
553         date="2018-02-09" time="18:00:00 +0300"
554         packager="Andrei Belov &lt;defan@nginx.com&gt;">
555
556<change type="bugfix">
557<para>
558the main process died when the "type" application option contained version;
559the bug had appeared in 0.5.
560</para>
561</change>
562
563</changes>
564
565
566<changes apply="unit-php
567                unit-python unit-python2.7
568                unit-python3.4 unit-python3.5 unit-python3.6
569                unit-go unit-go1.7 unit-go1.8 unit-go1.9"
570         ver="0.5" rev="1"
571         date="2018-02-08" time="18:00:00 +0300"
572         packager="Andrei Belov &lt;defan@nginx.com&gt;">
573
574<change>
575<para>
576NGINX Unit updated to 0.5.
577</para>
578</change>
579
580</changes>
581
582
583<changes apply="unit-perl" ver="0.5" rev="1"
584         date="2018-02-08" time="18:00:00 +0300"
585         packager="Andrei Belov &lt;defan@nginx.com&gt;">
586
587<change>
588<para>
589Initial release of Perl module for NGINX Unit.
590</para>
591</change>
592
593</changes>
594
595
596<changes apply="unit" ver="0.5" rev="1"
597         date="2018-02-08" time="18:00:00 +0300"
598         packager="Andrei Belov &lt;defan@nginx.com&gt;">
599
600<change type="change">
601<para>
602the "workers" application option was removed, the "processes"
603application option should be used instead.
604</para>
605</change>
606
607<change type="feature">
608<para>
609the "processes" application option with prefork and dynamic
610process management support.
611</para>
612</change>
613
614<change type="feature">
615<para>
616Perl application module.
617</para>
618</change>
619
620<change type="bugfix">
621<para>
622in reading client request body; the bug had appeared in 0.3.
623</para>
624</change>
625
626<change type="bugfix">
627<para>
628some Python applications might not have worked due to missing
629"wsgi.errors" environ variable.
630</para>
631</change>
632
633<change type="bugfix">
634<para>
635HTTP chunked responses might be encoded incorrectly on 32-bit
636platforms.
637</para>
638</change>
639
640<change type="bugfix">
641<para>
642infinite looping in HTTP parser.
643</para>
644</change>
645
646<change type="bugfix">
647<para>
648segmentation fault in router.
649</para>
650</change>
651
652</changes>
653
654
655<changes apply="unit-php
656                unit-python unit-python2.7
657                unit-python3.4 unit-python3.5 unit-python3.6
658                unit-go unit-go1.7 unit-go1.8 unit-go1.9"
659         ver="0.4" rev="1"
660         date="2018-01-15" time="18:00:00 +0300"
661         packager="Andrei Belov &lt;defan@nginx.com&gt;">
662
663<change>
664<para>
665NGINX Unit updated to 0.4.
666</para>
667</change>
668
669</changes>
670
671
672<changes apply="unit" ver="0.4" rev="1"
673         date="2018-01-15" time="18:00:00 +0300"
674         packager="Andrei Belov &lt;defan@nginx.com&gt;">
675
676<change type="feature">
677<para>
678compatibility with DragonFly BSD.
679</para>
680</change>
681
682<change type="feature">
683<para>
684"configure php --lib-static" option.
685</para>
686</change>
687
688<change type="bugfix">
689<para>
690HTTP request body was not passed to application;
691the bug had appeared in 0.3.
692</para>
693</change>
694
695<change type="bugfix">
696<para>
697HTTP large header buffers allocation and deallocation fixed;
698the bug had appeared in 0.3.
699</para>
700</change>
701
702<change type="bugfix">
703<para>
704some PHP applications might not have worked with relative "root" path.
705</para>
706</change>
707
708</changes>
709
710
711<changes apply="unit-go1.9" ver="0.3" rev="1"
712         date="2017-12-28" time="18:00:00 +0300"
713         packager="Andrei Belov &lt;defan@nginx.com&gt;">
714
715<change>
716<para>
717Initial release of Go 1.9 module for NGINX Unit.
718</para>
719</change>
720
721</changes>
722
723
724<changes apply="unit-python3.6" ver="0.3" rev="1"
725         date="2017-12-28" time="18:00:00 +0300"
726         packager="Andrei Belov &lt;defan@nginx.com&gt;">
727
728<change>
729<para>
730Initial release of Python 3.6 module for NGINX Unit.
731</para>
732</change>
733
734</changes>
735
736
737<changes apply="unit-php
738                unit-python unit-python2.7 unit-python3.4 unit-python3.5
739                unit-go unit-go1.7 unit-go1.8"
740         ver="0.3" rev="1"
741         date="2017-12-28" time="18:00:00 +0300"
742         packager="Andrei Belov &lt;defan@nginx.com&gt;">
743
744<change>
745<para>
746NGINX Unit updated to 0.3.
747</para>
748</change>
749
750</changes>
751
752
753<changes apply="unit" ver="0.3" rev="1"
754         date="2017-12-28" time="18:00:00 +0300"
755         packager="Andrei Belov &lt;defan@nginx.com&gt;">
756
757<change type="change">
758<para>
759the Go package name changed to "nginx/unit".
760</para>
761</change>
762
763<change type="change">
764<para>
765in the "limits.timeout" application option: application start time and
766time in queue now are not accounted.
767</para>
768</change>
769
770<change type="feature">
771<para>
772the "limits.requests" application option.
773</para>
774</change>
775
776<change type="feature">
777<para>
778application request processing latency optimization.
779</para>
780</change>
781
782<change type="feature">
783<para>
784HTTP keep-alive connections support.
785</para>
786</change>
787
788<change type="feature">
789<para>
790the "home" Python virtual environment configuration option.
791</para>
792</change>
793
794<change type="feature">
795<para>
796Python atexit hook support.
797</para>
798</change>
799
800<change type="feature">
801<para>
802various Go package improvements.
803</para>
804</change>
805
806<change type="bugfix">
807<para>
808various crashes fixed.
809</para>
810</change>
811
812</changes>
813
814
815<changes apply="unit-go" ver="0.2" rev="1"
816         date="2017-10-19" time="18:00:00 +0300"
817         packager="Andrei Belov &lt;defan@nginx.com&gt;">
818
819<change>
820<para>
821Initial release of Go module for NGINX Unit.
822</para>
823</change>
824
825</changes>
826
827
828<changes apply="unit-go1.7" ver="0.2" rev="1"
829         date="2017-10-19" time="18:00:00 +0300"
830         packager="Andrei Belov &lt;defan@nginx.com&gt;">
831
832<change>
833<para>
834Initial release of Go 1.7 module for NGINX Unit.
835</para>
836</change>
837
838</changes>
839
840
841<changes apply="unit-go1.8" ver="0.2" rev="1"
842         date="2017-10-19" time="18:00:00 +0300"
843         packager="Andrei Belov &lt;defan@nginx.com&gt;">
844
845<change>
846<para>
847Initial release of Go 1.8 module for NGINX Unit.
848</para>
849</change>
850
851</changes>
852
853
854<changes apply="unit-python" ver="0.2" rev="1"
855         date="2017-10-19" time="18:00:00 +0300"
856         packager="Andrei Belov &lt;defan@nginx.com&gt;">
857
858<change>
859<para>
860Initial release of Python module for NGINX Unit.
861</para>
862</change>
863
864</changes>
865
866
867<changes apply="unit-python2.7" ver="0.2" rev="1"
868         date="2017-10-19" time="18:00:00 +0300"
869         packager="Andrei Belov &lt;defan@nginx.com&gt;">
870
871<change>
872<para>
873Initial release of Python 2.7 module for NGINX Unit.
874</para>
875</change>
876
877</changes>
878
879
880<changes apply="unit-python3.4" ver="0.2" rev="1"
881         date="2017-10-19" time="18:00:00 +0300"
882         packager="Andrei Belov &lt;defan@nginx.com&gt;">
883
884<change>
885<para>
886Initial release of Python 3.4 module for NGINX Unit.
887</para>
888</change>
889
890</changes>
891
892
893<changes apply="unit-python3.5" ver="0.2" rev="1"
894         date="2017-10-19" time="18:00:00 +0300"
895         packager="Andrei Belov &lt;defan@nginx.com&gt;">
896
897<change>
898<para>
899Initial release of Python 3.5 module for NGINX Unit.
900</para>
901</change>
902
903</changes>
904
905
906<changes apply="unit-php" ver="0.2" rev="1"
907         date="2017-10-19" time="18:00:00 +0300"
908         packager="Andrei Belov &lt;defan@nginx.com&gt;">
909
910<change>
911<para>
912Initial release of PHP module for NGINX Unit.
913</para>
914</change>
915
916</changes>
917
918
919<changes apply="unit" ver="0.2" rev="1"
920         date="2017-10-19" time="18:00:00 +0300"
921         packager="Andrei Belov &lt;defan@nginx.com&gt;">
922
923<change type="feature">
924<para>
925configuration persistence.
926</para>
927</change>
928
929<change type="feature">
930<para>
931improved handling of configuration errors.
932</para>
933</change>
934
935<change type="feature">
936<para>
937application "timeout" property.
938</para>
939</change>
940
941<change type="bugfix">
942<para>
943POST request for PHP were handled incorrectly.
944</para>
945</change>
946
947<change type="bugfix">
948<para>
949the router exited abnormally if all listeners had been deleted.
950</para>
951</change>
952
953<change type="bugfix">
954<para>
955the router crashed under load.
956</para>
957</change>
958
959<change type="bugfix">
960<para>
961memory leak in the router.
962</para>
963</change>
964
965</changes>
966
967
968<changes apply="unit" ver="0.1" rev="1"
969         date="2017-09-06" time="19:14:28 +0300"
970         packager="Andrei Belov &lt;defan@nginx.com&gt;">
971
972<change>
973<para>
974First public release.
975</para>
976</change>
977
978</changes>
979
980
981</change_log>
982