From: Max Gautier <mg@max.gautier.name>
To: git@vger.kernel.org
Cc: "Max Gautier" <mg@max.gautier.name>,
"Lénaïc Huard" <lenaic@lhuard.fr>,
"Derrick Stolee" <stolee@gmail.com>,
"Patrick Steinhardt" <ps@pks.im>
Subject: [PATCH v2 0/6] maintenance: use packaged systemd units
Date: Fri, 22 Mar 2024 23:11:05 +0100 [thread overview]
Message-ID: <20240322221327.12204-1-mg@max.gautier.name> (raw)
In-Reply-To: <20240318153257.27451-1-mg@max.gautier.name>
* Distribute the systemd timers used by the `git maintenance start` with
the systemd scheduler as part of git, rather than writing them in
$XDG_CONFIG_HOME.
This allows users to override the units if they wish, and is more
in-line with the usual practices of distribution for systemd units.
We also move away from using the random minute, and instead rely on
systemd features to achieve the same goal (see patch 2). This allows us
to go back to using unit templating for the timers. This is also a
prerequisite to have static unit files.
Note that even if we really need more specific OnCalendar= settings for
each timer, we should still do it that way, but instead distribute
override alongside the template, for instance for weekly:
/usr/lib/systemd-user/git-maintenance@daily.timer.d/override.conf:
[Timer]
OnCalendar=<daily specific calendar spec>
The cleanup code for the units written in $XDG_CONFIG_HOME is adapted,
and takes care of not removing legitimate user overrides, by checking
the file start.
Testing:
The simplest way to simulate having the units in /usr/lib is probably to
copy them in /etc/systemd/user.
Changes since v1:
- Reorganization of the commits and their messages to try to address
review comments
- Dropped the DON'T APPLY PATCH, added a TODO to the cleanup code
instead
- Updated the git-maintenance tests to work with the new logic.
- Conditional installation of the units files
- Fixing some style/consistency issues
- template the systemd service file to use $(bindir)
Max Gautier (6):
maintenance: use systemd timers builtin randomization
maintenance: use packaged systemd units
maintenance: simplify systemctl calls
maintenance: cleanup $XDG_CONFIG_HOME/systemd/user
maintenance: update systemd scheduler docs
maintenance: update tests for systemd scheduler
Documentation/git-maintenance.txt | 33 ++-
Makefile | 5 +
builtin/gc.c | 298 ++++-------------------
config.mak.uname | 10 +
systemd/user/git-maintenance@.service.in | 17 ++
systemd/user/git-maintenance@.timer | 12 +
t/t7900-maintenance.sh | 50 ++--
7 files changed, 126 insertions(+), 299 deletions(-)
create mode 100644 systemd/user/git-maintenance@.service.in
create mode 100644 systemd/user/git-maintenance@.timer
Range-diff against v1:
1: ea54a6e50e < -: ---------- maintenance: package systemd units
2: b29dbb9fdd < -: ---------- maintenance: use packaged systemd units
3: 47bd6712b8 < -: ---------- maintenance: add fixed random delay to systemd timers
-: ---------- > 1: 42d88c7f81 maintenance: use systemd timers builtin randomization
-: ---------- > 2: 18d51b1dd1 maintenance: use packaged systemd units
-: ---------- > 3: 3aa7446e95 maintenance: simplify systemctl calls
-: ---------- > 4: daff7b4d60 maintenance: cleanup $XDG_CONFIG_HOME/systemd/user
4: fac57db55e ! 5: 5f6a8e141f maintenance: update systemd scheduler docs
@@ Metadata
## Commit message ##
maintenance: update systemd scheduler docs
+ The `git maintenance` systemd scheduler no longer writes units in
+ $XDG_CONFIG_HOME.
+
+ Describe the new behavior.
+ Instead of explaining manual ways to modify the timer, suggest the
+ systemd standard tool: `systemctl edit`.
+
Signed-off-by: Max Gautier <mg@max.gautier.name>
## Documentation/git-maintenance.txt ##
5: d888fbd0c3 < -: ---------- DON'T APPLY YET: maintenance: remove cleanup code
-: ---------- > 6: 4d4bcd6233 maintenance: update tests for systemd scheduler
--
2.44.0
next prev parent reply other threads:[~2024-03-22 22:14 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-18 15:31 [RFC PATCH 0/5] maintenance: use packaged systemd units Max Gautier
2024-03-18 15:31 ` [RFC PATCH 1/5] maintenance: package " Max Gautier
2024-03-21 12:37 ` Patrick Steinhardt
2024-03-21 13:07 ` Max Gautier
2024-03-21 13:22 ` Patrick Steinhardt
2024-03-21 13:38 ` Max Gautier
2024-03-21 14:44 ` Patrick Steinhardt
2024-03-21 14:49 ` Max Gautier
2024-03-21 14:48 ` Max Gautier
2024-03-18 15:31 ` [RFC PATCH 2/5] maintenance: add fixed random delay to systemd timers Max Gautier
2024-03-21 12:37 ` Patrick Steinhardt
2024-03-21 13:13 ` Max Gautier
2024-03-18 15:31 ` [RFC PATCH 3/5] maintenance: use packaged systemd units Max Gautier
2024-03-19 12:09 ` Max Gautier
2024-03-19 17:17 ` Eric Sunshine
2024-03-19 18:19 ` Junio C Hamano
2024-03-19 19:38 ` Max Gautier
2024-03-21 12:37 ` Patrick Steinhardt
2024-03-21 13:19 ` Max Gautier
2024-03-18 15:31 ` [RFC PATCH 4/5] maintenance: update systemd scheduler docs Max Gautier
2024-03-21 12:37 ` Patrick Steinhardt
2024-03-18 15:31 ` [RFC PATCH 5/5] DON'T APPLY YET: maintenance: remove cleanup code Max Gautier
2024-03-22 22:11 ` Max Gautier [this message]
2024-03-22 22:11 ` [PATCH v2 1/6] maintenance: use systemd timers builtin randomization Max Gautier
2024-03-22 22:11 ` [PATCH v2 2/6] maintenance: use packaged systemd units Max Gautier
2024-03-23 8:38 ` Eric Sunshine
2024-03-23 9:52 ` Max Gautier
2024-03-22 22:11 ` [PATCH v2 3/6] maintenance: simplify systemctl calls Max Gautier
2024-03-22 23:09 ` Eric Sunshine
2024-03-23 10:25 ` Max Gautier
2024-03-22 22:11 ` [PATCH v2 4/6] maintenance: cleanup $XDG_CONFIG_HOME/systemd/user Max Gautier
2024-03-22 22:38 ` Kristoffer Haugsbakk
2024-03-22 22:43 ` Junio C Hamano
2024-03-23 11:07 ` Max Gautier
2024-03-24 15:45 ` Phillip Wood
2024-03-25 8:36 ` Max Gautier
2024-03-25 16:39 ` Phillip Wood
2024-03-27 16:20 ` Max Gautier
2024-03-22 22:11 ` [PATCH v2 5/6] maintenance: update systemd scheduler docs Max Gautier
2024-03-22 22:11 ` [PATCH v2 6/6] maintenance: update tests for systemd scheduler Max Gautier
2024-03-22 23:02 ` Eric Sunshine
2024-03-23 10:28 ` Max Gautier
2024-03-24 14:54 ` [PATCH v2 0/6] maintenance: use packaged systemd units Phillip Wood
2024-03-24 17:03 ` Eric Sunshine
2024-03-25 10:08 ` phillip.wood123
2024-03-25 8:32 ` Max Gautier
2024-03-25 10:06 ` phillip.wood123
2024-03-25 12:27 ` Max Gautier
2024-03-25 16:39 ` Phillip Wood
2024-03-25 13:45 ` Max Gautier
2024-03-25 16:39 ` Phillip Wood
2024-03-27 16:21 ` Max Gautier
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=20240322221327.12204-1-mg@max.gautier.name \
--to=mg@max.gautier.name \
--cc=git@vger.kernel.org \
--cc=lenaic@lhuard.fr \
--cc=ps@pks.im \
--cc=stolee@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).