public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
To: Stefan Hanreich <s.hanreich@proxmox.com>,
	Proxmox VE development discussion <pve-devel@lists.proxmox.com>
Subject: Re: [pve-devel] [PATCH pve-guest-common 1/1] Add abstract methods for pre/post-migrate hooks
Date: Tue, 27 Sep 2022 10:05:11 +0200	[thread overview]
Message-ID: <c7a66664-101a-47a4-6402-771ff70b640e@proxmox.com> (raw)
In-Reply-To: <33c05af8-058d-6056-7d9d-9b731b4de58b@proxmox.com>

Am 27/09/2022 um 09:40 schrieb Stefan Hanreich:
> On 9/26/22 17:27, Thomas Lamprecht wrote:
>> Am 22/09/2022 um 16:13 schrieb Stefan Hanreich:
>>> Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
>>> ---
>>>   src/PVE/AbstractMigrate.pm | 14 ++++++++++++++
>>>   1 file changed, 14 insertions(+)
>>>
>>
>> for the record, if we do it like this (not much rationale given in the
>> commit message) this breaks containers and qemu-server without such an
>> implementation and needs the respective Breaks/Depends entries in d/control
>> (which you cannot add as you cannot predict the exact version this would get
>> actually added).
>>
> 
> I figured this might pose some problems when releasing. Is there any way I
> can work around this (also for future patches)? Or do we have to bump all 3
> packages at once? Anything I should change in particular in this case (if we
> stick to having the hooks in the common package..)

The only way to avoid that is to add such features in such a way that old
dependency consumers (qemu-server and pve-container in this case) can simply
ignore their existence (see below for how to do it in this case). Note that
this may not be always the thing one actually wants, sometimes it is the
cleanest way to break old dependants and and change them and just encode this
as breaks of old consumer packages in the provider package's d/control, and as
depends on new provider package in the consumer's d/control. This is itself
really not a problem, it's just a bit extra work and adds some sort of a
"dependency synchronization" boundary, making it much harder for users to
downgrade a single package below said boundary after, e.g., getting regressions
there with an upgrade; so one needs to weigh each specific feature/bug fix with
that in mind. In general, new opt-in features (like here) are more likely to
get away without a full break/depends while avoiding much extra code to handle
that.

> 
> Do you think it might be smarter to move the hooks into the respective
> backend? It shouldn't be too much of a hassle. Maybe it is a smarter idea
> after all, since it allows for more fine-grained control of when the hooks
> should be run exactly.

If you keep them here you could simply drop the die in the base method, then
you simply require a one way versioned depenency bump in the consumer packages
for the provider one, and even that for a higher level assurance that the hooks
are actually called (as code wise nothing would break).




  reply	other threads:[~2022-09-27  8:05 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-22 14:13 [pve-devel] [PATCH pve-container/qemu-server/pve-guest-common/pve-docs 0/1] Add " Stefan Hanreich
2022-09-22 14:13 ` [pve-devel] [PATCH pve-guest-common 1/1] Add abstract methods for " Stefan Hanreich
2022-09-26 15:27   ` Thomas Lamprecht
2022-09-27  7:40     ` Stefan Hanreich
2022-09-27  8:05       ` Thomas Lamprecht [this message]
2022-09-22 14:13 ` [pve-devel] [PATCH pve-container 1/1] Add CT hooks for pre/post-migrate on target/source Stefan Hanreich
2022-09-22 14:13 ` [pve-devel] [PATCH pve-docs 1/1] Add pre/post-migrate events for target and source to example hookscript Stefan Hanreich
2022-09-22 14:13 ` [pve-devel] [PATCH qemu-server 1/1] Add VM hooks for pre/post-migrate on target/source Stefan Hanreich
2022-09-26 15:38   ` Thomas Lamprecht
2022-09-27  7:40     ` Stefan Hanreich
2022-09-26 15:51 ` [pve-devel] [PATCH pve-container/qemu-server/pve-guest-common/pve-docs 0/1] Add pre/post-migrate hooks Thomas Lamprecht
2022-09-27  7:40   ` Stefan Hanreich
2022-09-27  7:47     ` Thomas Lamprecht

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=c7a66664-101a-47a4-6402-771ff70b640e@proxmox.com \
    --to=t.lamprecht@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    --cc=s.hanreich@proxmox.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
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal