[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