[master] a77f3d71e Update changelog for next release

Nils Goroll nils.goroll at uplex.de
Sun Mar 13 18:06:07 UTC 2022


commit a77f3d71e04705a2c31644f2026413fd455ac03b
Author: Nils Goroll <nils.goroll at uplex.de>
Date:   Sun Mar 13 19:03:24 2022 +0100

    Update changelog for next release
    
    Thank you do Dridi for his work on the release documentation.
    
    I have gone through all commits and reused some wording of his
    where appropriate.
    
    As before, the changelog should roughly match the commit order (from new
    to old).

diff --git a/doc/changes.rst b/doc/changes.rst
index 75c12d24c..a09738826 100644
--- a/doc/changes.rst
+++ b/doc/changes.rst
@@ -35,15 +35,173 @@ release process.
 Varnish Cache NEXT (2022-03-15)
 ===============================
 
-* Added macros ``TOSTRAND(s)`` and ``TOSTRANDS(x, ...)`` to create a
-  ``struct strands *`` (intended to be used as a ``VCL_STANDS``) from
-  a single string ``s`` or ``x`` strings, respectively.
-
-  Note that the macros create a local pointer value (on the stack),
-  which should only be used for local variables and parameters, but
-  never as a function return value (use ``VRT_AllocStrandsWS()`` for
-  that or just return a ``VCL_STRING`` result created with
-  ``VRT_StrandsWS()``).
+* The ``cookie.format_rfc1123()`` function was renamed to
+  ``cookie.format_date()``, and the former was retained as a
+  deprecated alias.
+
+* The VCC file ``$Alias`` stanza has been added to support vmod alias
+  functions/methods.
+
+* VCC now supports alias symbols.
+
+* There is a new ``experimental`` parameter that is identical to the
+  ``feature`` parameter, except that it guards features that may not
+  be considered complete or stable. An experimental feature may be
+  promoted to a regular feature or dropped without being considered a
+  breaking change.
+
+* ESI includes now support the ``onerror="continue"``
+  attribute if the ``+esi_include_onerror`` feature flag is set.
+
+* The deprecated sub-argument of the ``-l`` option was removed, it is
+  now a shorthand for the ``vsl_space`` parameter only.
+
+* The ``-T``, ``-M`` and ``-P`` command line options can be used
+  multiple times, instead of retaining only the last occurrence.
+
+* The ``debug.xid`` CLI command has been extended to also set and
+  query the VXID cache chunk size.
+
+* The ``vtc.barrier_sync()`` VMOD function now also works in ``vcl_init``
+
+* The ``abort`` command in the ``logexpect`` facility of
+  ``varnishtest`` can now be used to trigger an ``abort()`` to help
+  debugging the vsl client library code.
+
+* The ``vtc.vsl()`` and ``vtc.vsl_replay()`` functions have been added
+  to the vtc vmod to generate arbitraty log lines for testing.
+
+* The limit of the ``vsl_reclen`` parameter has been corrected.
+
+* Varnish now closes client connections correctly when request body
+  processing failed.
+
+* Filter init methods of types ``vdp_init_f`` and ``vfp_init_f``
+  gained a ``VRT_CTX`` argument.
+
+* The ``param.set`` CLI command accepts a ``-j`` option. In this case
+  the JSON output is the same as ``param.show -j`` of the updated
+  parameter.
+
+* A new ``cc_warnings`` parameter contains a subset of the compiler
+  flags extracted from ``cc_command``, which in turn grew new
+  expansions:
+
+  - ``%d``: the raw default ``cc_command``
+  - ``%D``: the expanded default ``cc_command``
+  - ``%w``: the ``cc_warnings`` parameter
+  - ``%n``: the working directory (``-n`` option)
+
+* For ``return(pipe)``, the backend transactions now emit a Start
+  timestamp and both client and backend transactions emit the Process
+  timestamp.
+
+* ``http_IsHdr()`` is now exposed as part of the strict ABI for VMODs.
+
+* The ``req.transport`` VCL variable has been added, which returns
+  "HTTP/1" or "HTTP/2" as appropriate.
+
+* The ``vtc.workspace_reserve()`` VMOD function now zeroes memory.
+
+* Parameter aliases have been added to facilitate parameter deprecation.
+
+* Two bugs in the catflap facility have been fixed which could trigger
+  panics due to the state pointer not being cleared. (3752_, 3755_)
+
+* It is now possible to assign to a ``BODY`` variable either a
+  ``STRING`` type or a ``BLOB``.
+
+* When the ``vcl.show`` CLI command is invoked without a parameter, it
+  now defaults to the active VCL.
+
+* The reporting of ``logexpect`` events in ``varnishtest`` was
+  rearranged for readability.
+
+* Workspace debugging as enabled by the ``+workspace`` debug flag is
+  now logged with the corresponding transaction.
+
+* VMODs should now register and unregister fetch and delivery filters
+  with ``VRT_AddFilter()`` and ``VRT_RemoveFilter()``.
+
+* ``HSH_purge()`` has been rewritten to properly handle concurrent
+  purges on the same object head.
+
+* ``VSL_WriteOpen()``, ``varnishlog`` and ``varnishncsa`` have been
+  changed to support writing to stdout with ``-w -`` when not in
+  daemon mode.
+
+* In VSL, the case has been optimized that the space remaining in a
+  buffer is close to ``vsl_reclen``.
+
+* ``std.ip()`` has been changed to always return a valid (bogo ip)
+  fallback if the fallback argument is invalid.
+
+* New VCL variables ``{req,req_top,resp,bereq,beresp,obj}.time`` have
+  been added to track when the respective object was born.
+
+* ``VRT_StaticDirector()`` has been added to mark directors with VCL
+  lifetime, to avoid the overhead of reference counting.
+
+* Dynamic backends are now reference-counted, and VMOD authors must
+  explicitly track assignments with ``VRT_Assign_Backend()``.
+
+* Varnish will use libunwind by default when available at configure
+  time, the ``--without-unwind`` configure flag can prevent this and
+  fall back to libexecinfo to generate backtraces.
+
+* A new ``debug.shutdown.delay`` command is available in the Varnish
+  CLI for testing purposes.
+
+* New utility macros ``vmin[_t]``, ``vmax[_t]`` and ``vlimit[_t]``
+  available in ``vdef.h``.
+
+* The macros ``TOSTRAND(s)`` and ``TOSTRANDS(x, ...)`` have been added
+  to create a ``struct strands *`` (intended to be used as a
+  ``VCL_STANDS``) from a single string ``s`` or ``x`` strings,
+  respectively.
+
+  Note that the macros create a compund literal whose scope is the
+  enclosing block. Their value must thus only be used within the same
+  block (it can be passed to called functions) and must not be
+  returned or referenced for use outside the enclosing block.
+
+  As before, ``VRT_AllocStrandsWS()`` or ``VRT_StrandsWS()`` must be
+  used to create ``VCL_STRANDS`` with *task* scope for use outside the
+  current block.
+
+* A bug in the backend connection handling code has been fixed which
+  could trigger an unwarranted assertion failure (3664_).
+
+* ``std.strftime()`` has been added.
+
+* ``Lck_CondWait()`` has lost the timeout argument and now waits
+  forever. ``Lck_CondWaitUntil()`` and ``Lck_CondWaitTimeout()`` have
+  been added to wait on a condition variable until some point in time
+  or until a timeout expires, respectively.
+
+* All mutex locks in core code have been given the
+  ``PTHREAD_MUTEX_ERRORCHECK`` attribute.
+
+* ``Host`` and ``Content-Length`` header checks have been moved to
+  protocol independent code and thus implicitly extended to HTTP2.
+
+* A potential race on busy objects has been closed.
+
+* Use of the ``ObjGetSpace()`` for synthetic objects has been fixed to
+  support stevedores returning less space than requested (as permitted
+  by the API).
+
+* The ``FINI_OBJ()`` macro has been added to standardize the common
+  pattern of zeroing a mini object and clearing a pointer to it.
+
+* The deprecated ``vsm_space`` parameter was removed.
+
+* The ``varnishtest`` ``err_shell`` commando has been removed after
+  having been deprecated since release 5.1.0.
+
+.. _3755: https://github.com/varnishcache/varnish-cache/issues/3755
+.. _3752: https://github.com/varnishcache/varnish-cache/issues/3752
+.. _3664: https://github.com/varnishcache/varnish-cache/issues/3664
 
 ================================
 Varnish Cache 7.0.1 (2021-11-23)


More information about the varnish-commit mailing list