Hi, HAProxy 1.9.0 was released on 2018/12/19. It added 45 new commits after version 1.9-dev11.
We still had a number of small issues causing the various artefacts that have been visible on haproxy.org since this week-end, but now everything looks OK. So it's better to release before we discover new issues :-) Speaking more seriously, in the end, what we expected to be just a technical release looks pretty nice on the features perspective. The features by themselves are not high-level but address a wide number of integration cases that overall make this version really appealing. In the end 1.9 brings to end users (as a quick summary) : - end-to-end HTTP/2 - advanced master process management with its own CLI - much more scalable multi-threading - regression test suite - priority-based dequeueing - better cache supporting larger objects - early hints (HTTP 103) - cipher suites for TLS 1.3 - random balance algorithm - fine-grained timers for better observability - stdout logging for containers and systemd And the rest which has kept us very busy was needed to achieve this and to pave the way to future developments and more contributions from people who won't have to know the internals as deeply as it used to be needed. It's expected that the road to 2.0 will be calmer now. Well, I know that so quick a summary doesn't do justice to the developers having done all this amazing work, but I've seen that some of my coworkers have started to write an article detailing all these new features, so I won't waste my time paraphrasing them. I'll pass the URL here once this article becomes public. No, I'm not lazy, I'm tired and hungry ;-) Please find the usual URLs below : Site index : http://www.haproxy.org/ Discourse : http://discourse.haproxy.org/ Slack channel : https://slack.haproxy.org/ Sources : http://www.haproxy.org/download/1.9/src/ Git repository : http://git.haproxy.org/git/haproxy-1.9.git/ Git Web browsing : http://git.haproxy.org/?p=haproxy-1.9.git Changelog : http://www.haproxy.org/download/1.9/src/CHANGELOG Cyril's HTML doc : http://cbonte.github.io/haproxy-dconv/ Willy --- Complete changelog : Christopher Faulet (7): BUG/MEDIUM: compression: Use the right buffer pointers to compress input data BUG/MINOR: mux_pt: Set CS_FL_WANT_ROOM when count is zero in rcv_buf() callback BUG/MEDIUM: stream: Forward the right amount of data before infinite forwarding BUG/MINOR: proto_htx: Call the HTX version of the function managing client cookies BUG/MEDIUM: lua/htx: Handle EOM in receive/get_line calls in HTTP applets BUG/MINOR: lua: Return an error if a legacy HTTP applet doesn't send anything MINOR: compression: Remove the thread_local variable buf_output Olivier Houchard (6): BUG/MEDIUM: connection: Add a new CS_FL_ERR_PENDING flag to conn_streams. BUG/MEDIUM: h1: Don't shutw/shutr the connection if we have keepalive. BUG/MEDIUM: H2: Make sure htx is set even on empty frames. BUG/MEDIUM: mux-h2: pass CS_FL_ERR_PENDING to h2_wake_some_streams() BUG/MEDIUM: h2: Make sure we don't set CS_FL_ERROR if there's still data. BUG/MEDIUM: h2: Don't wait for flow control if the connection had a shutr. Willy Tarreau (32): CONTRIB: debug: teach the "flags" utility about new conn_stream flags BUG/MEDIUM: stream-int: always clear CS_FL_WANT_ROOM before receiving BUG/MEDIUM: mux-h2: also restart demuxing when data are pending in demux BUG/MEDIUM: mux-h2: restart demuxing as soon as demux data are available BUG/MEDIUM: h2: fix aggregated cookie length computation in HTX mode MINOR: mux-h2: report more h2c, last h2s and cs information on "show fd" CONTRIB: debug: report stream-int's flag SI_FL_CLEAN_ABRT MINOR: cli/stream: add the conn_stream in "show sess" output BUG/MINOR: mux-h2: don't report a fantom h2s in "show fd" BUG/MINOR: cli/fd: don't isolate the thread for each individual fd MINOR: objtype: report a few missing types in names and base pointers BUG/MEDIUM: mux-h2: make sure to report synchronous errors after EOS BUG/MEDIUM: mux-h2: report asynchronous errors in h2_wake_some_streams() BUG/MEDIUM: mux-h2: make sure the demux also wakes streams up on errors BUG/MINOR: mux-h1: report the correct frontend in error captures BUG/MEDIUM: stream-int: also wake the stream up on end of transfer MEDIUM: h2: properly check and deduplicate the content-length header in HTX CLEANUP: connection: rename subscription events values and event field CLEANUP: connection: rename conn->mux_ctx to conn->ctx MINOR: connection: remove an unwelcome dependency on struct stream CLEANUP: stream-int: consistently call the si/stream_int functions MEDIUM: stream-int: always consider all CS errors on the send side CLEANUP: mux-h2: implement h2s_notify_{send,recv} to report events to subscribers MINOR: mux-h2: add a new function h2s_alert() to call the data layer BUG/MEDIUM: mux-h2: make use of h2s_alert() to report aborts MINOR: connection: add cs_set_error() to set the error bits CLEANUP: mux-h2: make use of cs_set_error() BUG/MINOR: mux-h2: make sure we check the conn_stream in early data MINOR: cli/show_fd: report that a connection is back or not SCRIPTS: add the slack channel URL to the announce script CLEANUP: remove my name and address from the copyright banner DOC: mention in the readme that 1.9 is a stable version now ---