git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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
Previous: Martin ÅgrenNext: Junio C Hamano
Message 10 of 13 in “imap_send: setup_curl: prompt user for username/password if not set in config file”
  1. 2/4 imap_send: setup_curl: prompt user for username/password if not set in config fileNicolas Morey-Chaisemartin, Aug 7, 2017
  2. 3/4 imap_send: setup_curl: use server_conf parameter instead of the global variableNicolas Morey-Chaisemartin, Aug 7, 2017
  3. Martin ÅgrenAug 7, 2017
  4. Nicolas Morey-ChaisemartinAug 7, 2017
  5. Jeff KingAug 7, 2017
  6. 4/4 imap-send: use curl by defaultNicolas Morey-Chaisemartin, Aug 7, 2017
  7. Martin ÅgrenAug 7, 2017
  8. Nicolas Morey-ChaisemartinAug 7, 2017
  9. Martin ÅgrenAug 7, 2017
  10. Jeff KingAug 7, 2017
  11. Junio C HamanoSep 12, 2017
  12. Junio C HamanoSep 12, 2017
  13. Nicolas Morey-ChaisemartinSep 12, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.