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.

-- 
Timofei Zhakov

Reply via email to