On 23. 12. 25 13:51, Timofei Zhakov wrote:
On Tue, Dec 23, 2025 at 9:26 AM Branko Čibej<[email protected]> wrote:
On 22. 12. 25 20:47,[email protected] wrote:
Author: kotkov
Date: Mon Dec 22 19:47:44 2025
New Revision: 1930808
Log:
ra_serf: Guard against SERF_VERSION_AT_LEAST(unreleased version) logic.
Before this change, our code contained several blocks of code conditional
on SERF_VERSION_AT_LEAST(1, 4, 0). Since Serf 1.4.0 is unreleased, this
code relies on development snapshots rather than a stable API.
Essentially, that's a ticking timebomb. The code encodes assumptions
about a development version of Serf but will automatically activate if
a user builds against an officially released Serf 1.4.0+.
More specifically:
- The code may not compile, depending on the final API state in Serf 1.4.0+.
- Even if it compiles, assumptions about Serf's behavior may no longer hold.
- Even if the assumptions hold, these code paths may still not work as intended,
because they are effectively hidden from our standard release testing and
buildbots.
To fix this issue, place such code under an additional guard (#ifdef
SVN__SERF_EXPERIMENTAL) that is never defined in production builds.
Just a tiny nit: according to our ancient unwritten traditions, this macro
should be called SVN_RA_SERF__EXPERIMENTAL.
I believe that this naming suggests that this macro belongs to Serf as
the library and Subversion dependency rather than a specific
ra-module. It would make more sense if let's say Serf was used by more
than one target.
It refers to experimental usage of Serf in libsvn_ra_serf, the only
place where Subversion uses Serf, so ...
... it was just a tiny nit that doesn't matter one little bit.
-- Brane