From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [IPv6:2a0f:8001:1:32::40]) by lore.proxmox.com (Postfix) with ESMTPS id 8D1F91FF0C0 for ; Thu, 05 Nov 2026 00:13:29 +0100 (CET) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 9512B21420; Thu, 05 Nov 2026 00:13:22 +0100 (CET) From: Thomas Lamprecht To: pve-devel@lists.proxmox.com, pbs-devel@lists.proxmox.com, Lukas Wagner Subject: Re: [PATCH many v7 00/41] notifications: add nested match expressions Date: Wed, 4 Nov 2026 23:57:10 +0100 Message-ID: <179383287291.2213963.16896151388950606293.b4-ty@b4> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20261103104859.172466-1-l.wagner@proxmox.com> References: <20261103104859.172466-1-l.wagner@proxmox.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1793833993698 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.987 Adjusted score from AWL reputation of From: address DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment (newer systems) KAM_LOTSOFHASH 0.25 Emails with lots of hash-like gibberish SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record TRACKER_ID 0.1 Incorporates a tracking ID number Message-ID-Hash: SESX6HVNKZ2APDRAWBB6GFMOPZUT3ITZ X-Message-ID-Hash: SESX6HVNKZ2APDRAWBB6GFMOPZUT3ITZ X-MailFrom: t.lamprecht@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: On Tue, 03 Nov 2026 11:48:17 +0100, Lukas Wagner wrote: > NOTE: The last patch for pve-manager needs to be updated depending on > which version of pve-manager includes these series! (see patch note) > The same goes for the last patch for proxmox-perl-rs (versioned break). > > NOTE: I have a couple of other patches planned for the notification stack (**); > so I guess it would make sense wait a bit before applying this -- just to avoid > too many version bumps and too much maintainer churn. I have a patch series > already in the works that builds on top of this one, so I would prefer to > perform any non-trivial changes to this feature as follow-ups; rebasing the new > series I'm working on right now is a huge pain, as it moves a lot of code > around in proxmox-notify (preparations for proxmox-notify v2, essentially) > > [...] Applied, thanks! On top of the series I made the following changes: - notify: MatcherConfig is now a single definition, with the legacy fields gated by 'legacy-matchers' directly, as I adapted proxmox-api-macro supports #[cfg] on updater fields, which is general nice to have IMO but needs a bit of caution on use, but FWIW, that did not change just because of this follow-up, was even (a tiny bit) more so true for two separate cfg-guarded struct definitions as that has greater "code distance". - proxmox-notify got released as 2.0.0 for a more noticeable cut for the matcher API changed incompatibly. The opt-in patches for pve-rs, PBS and proxmox-mail-forward now require version 2. - proxmox-match-expression: documented that evaluate() fails on the first leaf error, dropped the unneeded trait bounds of children() - pve-manager 9.2.26 is the release with the series, so the version check in 39/41 fits as is. The versioned breaks in 32/41 now use libpve-notify-perl 9.1.9 and pve-manager 9.2.26, and libproxmox-rs-perl breaks these old versions too, as it drops Proxmox::RS::Notify. - widget-toolkit: addressed a few of Dominik's smaller nits in a follow-up. The rest, like unifying the value checks in getNodeError, can be done as separate follow-up later. Smaller folded in fix-ups, like dropping the stale proxmox-notify build-dependency of pmg-rs, are noted in the respective commits. And fwiw, arm64 builds for this are still tbd. [docs] applied to git/pve-docs.git (master) [40/41] notifications: rework matcher sections, describe expression option commit: 131f4bc4739cf8d884484a18d0baa7bca0433396 [manager] applied to pve-manager.git (master) [34/41] vzdump: adapt to changed module prefix for PVE::RS::Notify https://git.proxmox.com/?p=pve-manager.git;a=commitdiff;h=6004a274c92407a99443f3286ca17fe0052e4948 [35/41] api: notification: pass config/updater directly to rust bindings https://git.proxmox.com/?p=pve-manager.git;a=commitdiff;h=ef821e6d090d69846a6f3f5d3a4587bf9604c430 [36/41] api: notification: get_matcher: add 'migrate-to-expression' parameter https://git.proxmox.com/?p=pve-manager.git;a=commitdiff;h=46059cfd57b69d8886c3fc45970ed023348c9872 [37/41] api: notification: add 'expression' to matcher parameter schema https://git.proxmox.com/?p=pve-manager.git;a=commitdiff;h=026f16317d6353c1b4f2aad88bf8190f3c028185 [38/41] ui: notification: enable new matcher UI https://git.proxmox.com/?p=pve-manager.git;a=commitdiff;h=e3ad2583c25d2778b3874592b1474552b65de7fe [39/41] api: notification: reject matchers with expression if not supported by all nodes https://git.proxmox.com/?p=pve-manager.git;a=commitdiff;h=edb6172314e433b8ab7cbee4ba4f53fc271387b3 [proxmox] applied to git/proxmox.git (master) [01/41] add new proxmox-match-expression crate commit: e1d01b9e2bd6e9ee717c4a1a5750d79f71a65032 [02/41] notify: log which matchers matched on a notification commit: cfaa4615f759190c251f233724cb51f0d3eb4aa0 [03/41] notify: promote matcher to dir-style module commit: b78bb078e04098c9af840650d05acb99f04ed60a [04/41] notify: fix doc comment commit: a847356f60a79289876950d6e8f60b9158d03f6d [05/41] notify: matcher: break out severity matcher into submodule commit: f78255dd522a0ab91c7f528c46bd6bb4f0212d74 [06/41] notify: matcher: break out field matcher into submodule commit: 0990aaa0588367b3b9fe0ca8a1662b0fafddef51 [07/41] notify: matcher: break out calendar matcher into submodule commit: edd2ef155271c5754d3cfeeedff9dfd28a55f6a1 [08/41] notify: matcher: calendar: add basic unit test commit: 7b0985ecb17a6c69f6f36844f96925fc230916fd [09/41] notify: matcher: add InlineSeverityMatcher commit: e5e7dd7dc0d2d933ab0b4e588fd5a12aea4e0362 [10/41] notify: matcher: add InlineFieldMatcher commit: 3402355aa6b62ca14ddbc00172329e6997424916 [11/41] notify: matcher: add InlineCalendarMatcher commit: baad58544a5ad4ee99efbd2df85f4af95c0d3dae [12/41] notify: matcher: add expression support commit: 89b08a354ac283c2136578635c264427f8cfd6c2 [13/41] notify: api: support new expression parameter commit: 64346e530ce740ea9969c05aa27ed693d573afcc [14/41] notify: api: add `get_matcher_as_expression` commit: 56d39909d28704a76c946d5a45bf898f3beff7e3 [15/41] notify: move legacy matcher keys behind feature flag commit: 6091413373af1300e9995c92910a5a7431b911b1 [16/41] notify: matcher: don't allow empty field/severity matchers commit: a093d9655f46483f5dece812ae68d9e150d8b397 [17/41] notify: matcher: re-serialize expression on create/update commit: 3525465d29d5e93f3d1cea5d67ea039526f9b923 [18/41] notify: matcher: ensure that field names match SAFE_ID_REGEX commit: 476d84c9b850997ae39492d3814a062b76ac5f7a [19/41] notify: matcher: expression: reject ambiguous field matchers commit: 21288d42be615750870bcb4a334ee0cc69b094e2 [proxmox-backup] applied to git/proxmox-backup.git (master) [24/41] notification: opt into 'legacy-matchers' feature in proxmox-notify commit: cc871b4dd8db5fa6ac4af715738b0a2beeb466f9 [25/41] api: notification: add 'migrate-to-expression' parameter to get_matcher commit: 597be80780e6403a086e50cb970af9886ac9ea2b [26/41] ui: notification: enable new matcher UI commit: f0b0aa88ef9f50a046cbef83d7d1c2100784742d [27/41] docs: notifications: rework matcher sections, describe expression option commit: 85ca6afcaa907445382c11d9b81e47ae93c8c977 [proxmox-mail-forward] applied to git/proxmox-mail-forward.git (master) [41/41] cargo: opt into legacy-matchers feature commit: 4f38e075d745de3ad7cc1b9321e5a9a224759a46 [proxmox-perl-rs] applied to git/proxmox-perl-rs.git (master) [28/41] notify: move proxmox-notify bindings from common to pve-rs commit: a371a3c646323c3f354780ba2af2ce70722c9b4c [29/41] notify: matcher: pass matcher config / updater directly commit: f79b34e56f605bffcc502e9035e2cb4df3d7253b [30/41] notify: opt into 'legacy-matchers' feature in proxmox-notify commit: 51b06510c6762dd590eb19b10bff5e00b82bb804 [31/41] notify: add 'migrate_to_expression' parameter for get_matcher commit: 5ed191965063cb57d720bec7257b6b7ea31b086b [32/41] debian: document versioned break for PVE::RS::Notify changes commit: 1900126f19a30e333216abc4eb1ea8409b1366be [proxmox-widget-toolkit] applied to git/proxmox-widget-toolkit.git (master) [20/41] notifications: increase matcher window width commit: 0f075fcd6ffb7cbf475d22c6bdc4b47e28e2b43e [21/41] notifications: matcher: add support for match expressions commit: bdfa19b5629193b3ab150cfe4d8a507178fc2f94 [22/41] notifications: matcher: add better calendar editor commit: 8c3dd607b1e1afbe1c4735d4e1015b0aff0a7b26 [23/41] notifications: matcher: consistently use title case for UI elements commit: 08c964188eaeecd9fbe299f2f6a0258a234219a2 [pve-cluster] applied to pve-cluster.git (master) [33/41] notify: adapt to changed module prefix for PVE::RS::Notify https://git.proxmox.com/?p=pve-cluster.git;a=commitdiff;h=50743181168a33588c8aa62cb499d37487cba19f