All of lore.kernel.org
 help / color / mirror / Atom feed
From: Derrick Stolee <stolee@gmail.com>
To: Junio C Hamano <gitster@pobox.com>,
	Derrick Stolee via GitGitGadget <gitgitgadget@gmail.com>
Cc: git@vger.kernel.org, lenaic@lhuard.fr,
	Derrick Stolee <derrickstolee@github.com>,
	Derrick Stolee <dstolee@microsoft.com>
Subject: Re: [PATCH] maintenance: disable cron on macOS
Date: Wed, 10 Nov 2021 15:01:58 -0500	[thread overview]
Message-ID: <d4564a73-792c-4ad5-03da-e64d1571d092@gmail.com> (raw)
In-Reply-To: <xmqqh7cjyeqb.fsf@gitster.g>

On 11/10/2021 2:47 PM, Junio C Hamano wrote:
> "Derrick Stolee via GitGitGadget" <gitgitgadget@gmail.com> writes:
> 
>>     This one is really tricky because we can't notice anything is wrong
>>     without running git maintenance start or git maintenance stop
>>     interactively on macOS. The tests pass just fine because the UI alert
>>     gets automatically ignored during the test suite.
>>     
>>     This is a bit of a half-fix: it avoids the UI alert, but has a corner
>>     case of not un-doing the cron schedule if a user manages to select it
>>     (under suitable permissions such that it succeeds). For the purpose of
>>     the timing of the release, I think this is an appropriate hedge.
> 
> Reverting the "git maintainance run --scheduler=<scheduler>" topic
> altogether to give us time to stop and think may be another obvious
> option, but it probably is OK to tell macOS users that they may have
> cron but Git won't work with their cron with this patch.
> 
> In any case, let's leave it (slightly) broken for macOS folks by
> applying this quickfix.

I agree that we don't need to revert the topic.

> I was puzzled by the lack of a call to validate_scheduler() at the
> very beginning of resolve_scheduler(), by the way.  Or even earlier
> during the verification of the command line options.  I wonder if
> on macOS, --scheduler=nosuch and --scheduler=cron should behave the
> same way, both saying "unrecognized", instead of saying that only to
> the former and "not available" to the latter.

It's a bit strange, but the crux is that selecting --scheduler=X
makes the 'X' scheduler pass through the 'enable' path, while the
rest of the "available" schedulers goes through the 'disable' path.

This UI prompt occurs because we are trying to 'disable' cron
before enabling launchctl.

I think the biggest issue is how macOS uses non-standard ways of
requesting user permissions, because if 'crontab' simply exited
with a non-zero status, there would be no work to do here. Because
of that, I think we will always need to tiptoe around cron on macOS.

Thanks,
-Stolee

  reply	other threads:[~2021-11-10 20:02 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-10 18:35 [PATCH] maintenance: disable cron on macOS Derrick Stolee via GitGitGadget
2021-11-10 18:58 ` Johannes Schindelin
2021-11-10 19:47 ` Junio C Hamano
2021-11-10 20:01   ` Derrick Stolee [this message]
2021-11-10 20:56 ` Ævar Arnfjörð Bjarmason
2021-11-10 21:06   ` Derrick Stolee

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d4564a73-792c-4ad5-03da-e64d1571d092@gmail.com \
    --to=stolee@gmail.com \
    --cc=derrickstolee@github.com \
    --cc=dstolee@microsoft.com \
    --cc=git@vger.kernel.org \
    --cc=gitgitgadget@gmail.com \
    --cc=gitster@pobox.com \
    --cc=lenaic@lhuard.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.