Re: [PATCH 4/4] imap-send: use curl by default
- From
Jeff King <peff@peff.net>
- Date
- Aug 7, 2017, 20:01 UTC
- Message-ID
- <20170807200126.fnbz57qd44vj43c6@sigill.intra.peff.net>
- In-Reply-To
- <71479602-fabc-1861-124b-90b26b952344@morey-chaisemartin.com>
On Mon, Aug 07, 2017 at 04:04:05PM +0200, Nicolas Morey-Chaisemartin wrote:
> Signed-off-by: Nicolas Morey-Chaisemartin <nicolas@morey-chaisemartin.com>
Thanks for moving forward with this.
Can you please flesh out your commit messages with some of the reasoning and related discussion? I know from a nearby thread why we want to flip the default, but people reading `git log` much later will not have that context.
Show 15 quoted lines
> diff --git a/imap-send.c b/imap-send.c > index 90b8683ed..4ebc16437 100644 > --- a/imap-send.c > +++ b/imap-send.c > @@ -35,13 +35,7 @@ typedef void *SSL; > #include "http.h" > #endif > > -#if defined(USE_CURL_FOR_IMAP_SEND) && defined(NO_OPENSSL) > -/* only available option */ > #define USE_CURL_DEFAULT 1 > -#else > -/* strictly opt in */ > -#define USE_CURL_DEFAULT 0 > -#endif
I agree with the comments Martin made here. I think there are really two levels of "default" we need to care about:
1. Build-time: do we default to requiring curl if you want imap-send
at all? 2. Run-time: if build with both implementations, which do we use by
default? Related, if there is only one implementation, what should
the default be?I think the answer to (1) is that we still want to build imap-send without USE_CURL_FOR_IMAP_SEND if the user doesn't have curl installed. And your patch leaves that, which is good. Though if we are deprecating it, we may want to issue a deprecation warning (eventually; we can still switch the run-time default now, get more data on whether a deprecation/switch is a good idea, and then later decide to deprecate).
For (2), you're trying to switch the default when both are built. But I think it's important to continue to default to the old-style implementation if that's the only thing that was built. Otherwise it effectively becomes the build-time deprecation warning, and we're not quite ready for that.
So I think this maybe needs to be:
#if defined(USE_CURL_FOR_IMAP_SEND) /* Always default to curl if it's available. */ #define USE_CURL_DEFAULT 1 #else /* We don't have curl, so continue to use the historical implementation */ #define USE_CURL_DEFAULT 0 #endif
-Peff