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

