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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <thresh@nginx.com>"> 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 <thresh@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 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 <defan@nginx.com>"> 971 972<change> 973<para> 974First public release. 975</para> 976</change> 977 978</changes> 979 980 981</change_log> 982