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

Re: [PATCH] maintenance: disable cron on macOS

From
Derrick Stolee <stolee@gmail.com>
Date
Nov 10, 2021, 20:01 UTC
Message-ID
<d4564a73-792c-4ad5-03da-e64d1571d092@gmail.com>
In-Reply-To
<xmqqh7cjyeqb.fsf@gitster.g>
On 11/10/2021 2:47 PM, Junio C Hamano wrote:
Show 19 quoted lines
> "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.
Show 6 quoted lines
> 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

Previous: Junio C HamanoNext: Ævar Arnfjörð Bjarmason
Message 4 of 6 in “maintenance: disable cron on macOS”
  1. maintenance: disable cron on macOSDerrick Stolee via GitGitGadget, Nov 10, 2021
  2. Johannes SchindelinNov 10, 2021
  3. Junio C HamanoNov 10, 2021
  4. Derrick StoleeNov 10, 2021
  5. Ævar Arnfjörð BjarmasonNov 10, 2021
  6. Derrick StoleeNov 10, 2021

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.