[master] 67042e4b6 doc: First part of 8.0 release documentation

Walid Boudebouda walid.boudebouda at gmail.com
Thu Sep 4 16:00:09 UTC 2025


commit 67042e4b68099123c3b83bc06309581617943077
Author: Walid Boudebouda <walid.boudebouda at gmail.com>
Date:   Thu Sep 4 17:30:41 2025 +0200

    doc: First part of 8.0 release documentation

diff --git a/doc/changes.rst b/doc/changes.rst
index d356b523b..2d4860f50 100644
--- a/doc/changes.rst
+++ b/doc/changes.rst
@@ -84,6 +84,10 @@ Varnish Cache NEXT (8.0, 2025-09-15)
 
         std.real(time=..., fallback=...)
 
+* ``varnishstat`` will automatically switch to ``-1`` output if ``stdout``
+  isn't a terminal (allowing ``varnishstat | grep MAIN``). A new ``-c`` switch
+  has been added to force the live mode.
+
 * The bundled varnishtest sources have now been replaced with the seperate
   VTest2 repository.
 
@@ -93,9 +97,75 @@ Varnish Cache NEXT (8.0, 2025-09-15)
   Developers should use ``make update`` to update the referenced vtest2 commit
   after changes to vtest2.
 
-* ``varnishstat`` will automatically switch to ``-1`` output if ``stdout``
-  isn't a terminal (allowing ``varnishstat | grep MAIN``). A new ``-c`` switch
-  has been added to force the live mode.
+.. _4199: https://github.com/varnishcache/varnish-cache/issues/4199
+
+* Handling of VCL temperature changes was improved. (4199_)
+
+* ``varnishtest`` and VUTs will now print backtraces after a crash. The
+  backtrace for VUTs is printed to syslog while ``varnishtest`` will print
+  it to ``stderr``.
+
+.. _4323: https://github.com/varnishcache/varnish-cache/issues/4323
+
+* Fixed a bug where a read only parameter could still be set through its alias.
+  (4323_)
+
+* Deprecated aliases for parameters can no longer be set read only, it should
+  instead be done directly on the parameters they point to.
+
+.. _VSV00016: https://varnish-cache.org/security/VSV00016.html
+
+*  We now check for CRLF after chunked body in HTTP/1. (VSV00016_)
+
+* Ban lurker statistics are updated more frequently.
+
+* A new parameter ``uncacheable_ttl`` defines the TTL of objects marked as
+  uncacheable (or hit-for-miss) by the built-in VCL. It is accessible in VCL
+  as the ``param.uncacheable_ttl`` variable.
+
+* Runtime parameters can now be accessed from VCL through:
+  ``param.<param_name>``. See :ref:`vcl_variables` for the list of available
+  parameters.
+
+* vmod authors can now specify C names for function/method arguments. This is
+  useful to avoid name clashes with keywords reserved by the language.
+
+* ``VRT_VSC_Alloc()`` was renamed to ``VRT_VSC_Allocv()`` and a new version of
+  ``VRT_VSC_Alloc()`` that takes a ``va_list`` argument was reintroduced. This
+  makes it consistent with our naming conventions.
+
+* ``http_req_overflow_status`` can now also be set to 500.
+
+.. _4261: https://github.com/varnishcache/varnish-cache/pull/4261
+
+* An optimization was added to make startups faster when loading a persistent
+  storage with a long list of bans. (4261_)
+
+* gzip buffers are now allocated from transient stevedore memory instead of a
+  regular heap allocation.
+
+.. _4308: https://github.com/varnishcache/varnish-cache/pull/4308
+
+* ``hdr_t`` type is now a structured type. (4308_)
+
+* Regexp failures now have a more harmonized error message format.
+
+* VSC counters for connection pools have been added:
+
+  * ``VCP.ref_hit`` counts the number of times an existing connection pool was
+    found while creating a backend.
+  * ``VCP.ref_miss`` counts the number of times an existing connection pool was
+    not found while creating a backend.
+
+.. _4313: https://github.com/varnishcache/varnish-cache/issues/4313
+
+* A failure to allocate a synthetic beresp body now properly fails the
+  respective response. (4313_)
+
+* New ban expression variable `obj.last_hit` allows to remove objects from
+  cache which have not been accessed for a given amount of time. This is
+  particularly useful to get rid of request bans by removing all objects which
+  have not been touched since the request ban.
 
 ==============================
 Varnish-Cache 7.7 (2025-03-17)
diff --git a/doc/sphinx/whats-new/changes-trunk.rst b/doc/sphinx/whats-new/changes-trunk.rst
index fbda9d6b9..31d6e79b1 100644
--- a/doc/sphinx/whats-new/changes-trunk.rst
+++ b/doc/sphinx/whats-new/changes-trunk.rst
@@ -23,7 +23,17 @@ varnishd
 Parameters
 ~~~~~~~~~~
 
-**XXX changes in -p parameters**
+
+Read only parameter can no longer be set through an alias.
+
+Deprecated aliases for parameters can no longer be set read only, it should
+instead be done directly on the parameters they point to.
+
+A new parameter ``uncacheable_ttl`` defines the TTL of objects marked as
+uncacheable (or hit-for-miss) by the built-in VCL. It is accessible in VCL
+as the ``param.uncacheable_ttl`` variable.
+
+`http_req_overflow_status` can now also be set to 500.
 
 Other changes in varnishd
 ~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -34,7 +44,9 @@ Changes to VCL
 VCL variables
 ~~~~~~~~~~~~~
 
-**XXX new, deprecated or removed variables, or changed semantics**
+Runtime parameters can now be accessed from VCL through:
+``param.<param_name>``. See ``VCL-VARIABLES(7)`` for the list of available
+parameters.
 
 Other changes to VCL
 ~~~~~~~~~~~~~~~~~~~~
@@ -42,7 +54,32 @@ Other changes to VCL
 VMODs
 =====
 
-**XXX changes in the bundled VMODs**
+The VMOD functions ``std.real2integer()``, ``std.real2time()``,
+``std.time2integer()`` and ``std.time2real()`` have been removed. They had
+been marked deprecated since Varnish Cache release 6.2.0 (2019-03-15).
+
+The plug-in replacements for these functions are:
+
+ ``std.real2integer()``::
+
+        std.integer(real=std.round(...), fallback=...)
+
+ ``std.real2time()``::
+
+        std.time(real=std.round(...), fallback=...)
+
+ ``std.time2integer()``::
+
+        std.integer(time=..., fallback=...)
+
+ ``std.time2real()``::
+
+        std.real(time=..., fallback=...)
+
+VUTs
+====
+
+VUTs now print backtraces to syslog after a crash.
 
 varnishlog
 ==========
@@ -52,22 +89,40 @@ varnishlog
 varnishadm
 ==========
 
-**XXX changes concerning varnishadm(1) and/or varnish-cli(7)**
+New ban expression variable `obj.last_hit` allows to remove objects from
+cache which have not been accessed for a given amount of time. This is
+particularly useful to get rid of request bans by removing all objects which
+have not been touched since the request ban.
 
 varnishstat
 ===========
 
-**XXX changes concerning varnishstat(1) and/or varnish-counters(7)**
+New VSC counters for connection pools:
+
+- ``VCP.ref_hit`` counts the number of times an existing connection pool was
+    found while creating a backend.
+- ``VCP.ref_miss`` counts the number of times an existing connection pool was
+    not found while creating a backend.
 
 varnishtest
 ===========
 
-**XXX changes concerning varnishtest(1) and/or vtc(7)**
+``varnishtest`` now prints a backtrace to stderr after a crash.
 
 Changes for developers and VMOD authors
 =======================================
 
-**XXX changes concerning VRT, the public APIs, source code organization,
-builds etc.**
+`hdr_t` type is now a structured type but keeps the same memory layout as
+before.
+
+``VRT_VSC_Alloc()`` was renamed to ``VRT_VSC_Allocv()`` and a new version of
+``VRT_VSC_Alloc()`` that takes a ``va_list`` argument was reintroduced. This
+makes it consistent with our naming conventions.
+
+vmod authors can now specify C names for function/method arguments like follows:
+
+  [BOOL bool:boolean]
+
+This is useful to avoid name clashes with keywords reserved by the language.
 
 *eof*
diff --git a/doc/sphinx/whats-new/upgrading-trunk.rst b/doc/sphinx/whats-new/upgrading-trunk.rst
index 6143fde99..b22876fbe 100644
--- a/doc/sphinx/whats-new/upgrading-trunk.rst
+++ b/doc/sphinx/whats-new/upgrading-trunk.rst
@@ -8,26 +8,37 @@ released versions of Varnish, see:** :ref:`whats-new-index`
 Upgrading to Varnish **$NEXT_RELEASE**
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-**XXX: how to upgrade from previous deployments to this
-version. Limited to work that has to be done for an upgrade, new
-features are listed in "Changes". Explicitly mention what does *not*
-have to be changed, especially in VCL. May include, but is not limited
-to:**
+vmod_std changes:
+=================
 
-* Elements of VCL that have been removed or are deprecated, or whose
-  semantics have changed.
+The VMOD functions ``std.real2integer()``, ``std.real2time()``,
+``std.time2integer()`` and ``std.time2real()`` have been removed. They had
+been marked deprecated since Varnish Cache release 6.2.0 (2019-03-15).
 
-* -p parameters that have been removed or are deprecated, or whose
-  semantics have changed.
+The plug-in replacements for these functions are:
 
-* Changes in the CLI.
+ ``std.real2integer()``::
 
-* Changes in the output or interpretation of stats or the log, including
-  changes affecting varnishncsa/-hist/-top.
+        std.integer(real=std.round(...), fallback=...)
 
-* Changes that may be necessary in VTCs or in the use of varnishtest.
+ ``std.real2time()``::
 
-* Changes in public APIs that may require changes in VMODs or VAPI/VUT
-  clients.
+        std.time(real=std.round(...), fallback=...)
+
+ ``std.time2integer()``::
+
+        std.integer(time=..., fallback=...)
+
+ ``std.time2real()``::
+
+        std.real(time=..., fallback=...)
+
+
+Upgrade notes for VMOD developers
+=================================
+
+``VRT_VSC_Alloc()`` was renamed to ``VRT_VSC_Allocv()`` and a new version of
+``VRT_VSC_Alloc()`` that takes a ``va_list`` argument was reintroduced. This
+makes it consistent with our naming conventions.
 
 *eof*


More information about the varnish-commit mailing list