+1 I wondered the same thing over the years...
And with that as only important breakage, the few users we do have can apply an easy fix and really benefit from the added bucket features. Bert On Wed, Jan 21, 2026 at 11:49 AM Branko Čibej <[email protected]> wrote: > On 20. 1. 26 11:22, Bert Huijben via dev wrote: > > The issue I was thinking about how serf_buckets_are_v2() is/was used. > > > > But checking the current code in serf_get_type() we probably already > worked > > around this problem for some time... > > > > > > Bert > > > > > > --- > > From trunk: > > const serf_bucket_type_t *serf_get_type(serf_bucket_t *bucket, > > int min_version) > > { > > const serf_bucket_t *r; > > > > switch (min_version) { > > case 1: > > r = bucket; /* Always supported */ > > break; > > #if 0 > > case 3: > > r = bucket->type->read_bucket(bucket, &v3_check); > > break; > > #endif > > > > case 2: > > #if 0 > > /* We can't trust this check to always do the right thing as > > there > > can be multiple pointers to the same function... > > but an optimizing compiler/linker can still use the hint > if > > it > > is inlining this function. ### Enable? > > */ > > if (bucket->type->read_bucket == serf_buckets_are_v2) > > return bucket->type; > > #endif > > > > r = bucket->type->read_bucket(bucket, &v2_check); > > break; > > > > default: > > abort(); > > } > > > > if (r != NULL) > > return r->type; > > > > return &fallback_bucket_type; > > } > > > > Just out of interest, why do we support multiple bucket type versions? I > can understand reasons of API compatibility. > > But let's be realistic: the only user of Serf that we know of is > Subversion. We may as well drop these compatibility concerns, make 1.5 > the last 1.x release and go straight to 2.0 in the next release. It's > not as if half the internet will come crashing down if we do that. > > -- Brane >
