mbox series

[0/3] Maintenance IV: Platform-specific background maintenance

Message ID pull.776.git.1604412196.gitgitgadget@gmail.com (mailing list archive)
Headers show
Series Maintenance IV: Platform-specific background maintenance | expand

Message

Philippe Blain via GitGitGadget Nov. 3, 2020, 2:03 p.m. UTC
This is based on ds/maintenance-part-3.

After sitting with the background maintenance as it has been cooking, I
wanted to come back around and implement the background maintenance for
Windows. However, I noticed that there were some things bothering me with
background maintenance on my macOS machine. These are detailed in PATCH 2,
but the tl;dr is that 'cron' is not recommended by Apple and instead
'launchd' satisfies our needs.

This series implements the background scheduling so git maintenance
(start|stop) works on those platforms. I've been operating with these
schedules for a while now without the problems described in the patches.

There is a particularly annoying case about console windows popping up on
Windows, but PATCH 3 describes a plan to get around that.

Thanks, -Stolee

Derrick Stolee (3):
  maintenance: extract platform-specific scheduling
  maintenance: use launchctl on macOS
  maintenance: use Windows scheduled tasks

 builtin/gc.c           | 428 +++++++++++++++++++++++++++++++++++++++--
 t/t7900-maintenance.sh |  86 ++++++++-
 t/test-lib.sh          |   4 +
 3 files changed, 498 insertions(+), 20 deletions(-)


base-commit: 0016b618182f642771dc589cf0090289f9fe1b4f
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-776%2Fderrickstolee%2Fmaintenance%2FmacOS-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-776/derrickstolee/maintenance/macOS-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/776

Comments

Junio C Hamano Nov. 3, 2020, 8:18 p.m. UTC | #1
"Derrick Stolee via GitGitGadget" <gitgitgadget@gmail.com> writes:

> This is based on ds/maintenance-part-3.
>
> After sitting with the background maintenance as it has been cooking, I
> wanted to come back around and implement the background maintenance for
> Windows. However, I noticed that there were some things bothering me with
> background maintenance on my macOS machine. These are detailed in PATCH 2,
> but the tl;dr is that 'cron' is not recommended by Apple and instead
> 'launchd' satisfies our needs.

Nicely done.

> This series implements the background scheduling so git maintenance
> (start|stop) works on those platforms. I've been operating with these
> schedules for a while now without the problems described in the patches.
>
> There is a particularly annoying case about console windows popping up on
> Windows, but PATCH 3 describes a plan to get around that.
>
> Thanks, -Stolee
>
> Derrick Stolee (3):
>   maintenance: extract platform-specific scheduling
>   maintenance: use launchctl on macOS
>   maintenance: use Windows scheduled tasks
>
>  builtin/gc.c           | 428 +++++++++++++++++++++++++++++++++++++++--
>  t/t7900-maintenance.sh |  86 ++++++++-
>  t/test-lib.sh          |   4 +
>  3 files changed, 498 insertions(+), 20 deletions(-)
>
>
> base-commit: 0016b618182f642771dc589cf0090289f9fe1b4f
> Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-776%2Fderrickstolee%2Fmaintenance%2FmacOS-v1
> Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-776/derrickstolee/maintenance/macOS-v1
> Pull-Request: https://github.com/gitgitgadget/git/pull/776
Junio C Hamano Nov. 3, 2020, 8:21 p.m. UTC | #2
"Derrick Stolee via GitGitGadget" <gitgitgadget@gmail.com> writes:

> This is based on ds/maintenance-part-3.

Ah, I forgot to ask those on CC list how carefully they read the
part 3 of the series, as it's been left on 'seen' for some time, and
I do not know if it is ready to start cooking in 'next'.

Thanks.
Derrick Stolee Nov. 3, 2020, 9:09 p.m. UTC | #3
On 11/3/2020 3:21 PM, Junio C Hamano wrote:
> "Derrick Stolee via GitGitGadget" <gitgitgadget@gmail.com> writes:
> 
>> This is based on ds/maintenance-part-3.
> 
> Ah, I forgot to ask those on CC list how carefully they read the
> part 3 of the series, as it's been left on 'seen' for some time, and
> I do not know if it is ready to start cooking in 'next'.

It has been a while since anyone has commented, and I've been
running the patches locally for quite a while. I'd be very
happy to see them cook in next. I wasn't quite to the place
to be pushy about it.

I'm hoping that parts 3 and 4 can make it in time for 2.30,
so the feature is universally available for all platforms.
I realize that's not entirely up to just me.

Thanks,
-Stolee
Junio C Hamano Nov. 3, 2020, 10:30 p.m. UTC | #4
Derrick Stolee <stolee@gmail.com> writes:

> On 11/3/2020 3:21 PM, Junio C Hamano wrote:
>> "Derrick Stolee via GitGitGadget" <gitgitgadget@gmail.com> writes:
>> 
>>> This is based on ds/maintenance-part-3.
>> 
>> Ah, I forgot to ask those on CC list how carefully they read the
>> part 3 of the series, as it's been left on 'seen' for some time, and
>> I do not know if it is ready to start cooking in 'next'.
>
> It has been a while since anyone has commented, and I've been
> running the patches locally for quite a while. I'd be very
> happy to see them cook in next. I wasn't quite to the place
> to be pushy about it.
>
> I'm hoping that parts 3 and 4 can make it in time for 2.30,
> so the feature is universally available for all platforms.
> I realize that's not entirely up to just me.

After writing this entry in the What's cooking report:

    * ds/maintenance-part-4 (2020-11-03) 3 commits
     - maintenance: use Windows scheduled tasks
     - maintenance: use launchctl on macOS
     - maintenance: extract platform-specific scheduling
     (this branch uses ds/maintenance-part-3.)

     Follow-up on the "maintenance part-3" which introduced scheduled
     maintenance tasks to support platforms whose native scheduling
     methods are not 'cron'.

I was wondering if I should propose making these two parts into one,
so we may be pretty much on the same page.
Derrick Stolee Nov. 4, 2020, 1:02 p.m. UTC | #5
On 11/3/2020 5:30 PM, Junio C Hamano wrote:
> Derrick Stolee <stolee@gmail.com> writes:
>> I'm hoping that parts 3 and 4 can make it in time for 2.30,
>> so the feature is universally available for all platforms.
>> I realize that's not entirely up to just me.
> 
> After writing this entry in the What's cooking report:
> 
>     * ds/maintenance-part-4 (2020-11-03) 3 commits
>      - maintenance: use Windows scheduled tasks
>      - maintenance: use launchctl on macOS
>      - maintenance: extract platform-specific scheduling
>      (this branch uses ds/maintenance-part-3.)
> 
>      Follow-up on the "maintenance part-3" which introduced scheduled
>      maintenance tasks to support platforms whose native scheduling
>      methods are not 'cron'.

This is a good summary of this series.

> I was wondering if I should propose making these two parts into one,
> so we may be pretty much on the same page.

I'm happy to have the two topics be merged into one series, but
I'd prefer to only re-roll these three patches during review.
Of course, by keeping them together we have the ability to re-
roll all of the patches, but part-3 has a decent length and has
been stable for a while.

I defer to what is easiest for you.

Thanks,
-Stolee
Junio C Hamano Nov. 4, 2020, 5 p.m. UTC | #6
Derrick Stolee <stolee@gmail.com> writes:

> On 11/3/2020 5:30 PM, Junio C Hamano wrote:
>> Derrick Stolee <stolee@gmail.com> writes:
>>> I'm hoping that parts 3 and 4 can make it in time for 2.30,
>>> so the feature is universally available for all platforms.
>>> I realize that's not entirely up to just me.
>> ...
>> I was wondering if I should propose making these two parts into one,
>> so we may be pretty much on the same page.
>
> I'm happy to have the two topics be merged into one series, but
> I'd prefer to only re-roll these three patches during review.
> Of course, by keeping them together we have the ability to re-
> roll all of the patches, but part-3 has a decent length and has
> been stable for a while.
>
> I defer to what is easiest for you.

Two topics, one on top of the other, is fine, as long as I can
remember (and you help me by reminding) to keep them together,
and the bottom one is reasonably solid that I do not have to do the
rebasing myself ;-)
Derrick Stolee Nov. 4, 2020, 6:43 p.m. UTC | #7
On 11/4/2020 12:00 PM, Junio C Hamano wrote:
> Derrick Stolee <stolee@gmail.com> writes:
> 
>> On 11/3/2020 5:30 PM, Junio C Hamano wrote:
>>> Derrick Stolee <stolee@gmail.com> writes:
>>>> I'm hoping that parts 3 and 4 can make it in time for 2.30,
>>>> so the feature is universally available for all platforms.
>>>> I realize that's not entirely up to just me.
>>> ...
>>> I was wondering if I should propose making these two parts into one,
>>> so we may be pretty much on the same page.
>>
>> I'm happy to have the two topics be merged into one series, but
>> I'd prefer to only re-roll these three patches during review.
>> Of course, by keeping them together we have the ability to re-
>> roll all of the patches, but part-3 has a decent length and has
>> been stable for a while.
>>
>> I defer to what is easiest for you.
> 
> Two topics, one on top of the other, is fine, as long as I can
> remember (and you help me by reminding) to keep them together,
> and the bottom one is reasonably solid that I do not have to do the
> rebasing myself ;-)

Sounds good to me. If I need to re-roll part 3, then
I'll consider replacing both parts with a new series.

Thanks,
-Stolee