From 5b4586e3a67bdef8224fdefb7d388a481e083e9f Mon Sep 17 00:00:00 2001 From: Guillaume Lours Date: Thu, 7 May 2026 22:27:42 +0200 Subject: [PATCH] fix: stop-only metadata no longer drops options for up/down MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A previous change extended IsEmpty() to include `Stop == nil`. For a provider that advertises only a `stop` block, this caused commandMetadataIsEmpty to be false in setupPluginCommand, which made the option-forwarding filter reject every key — silently dropping all provider options on `up` and `down`. The Stop-presence signal lives independently in stop.go and the "stop" case of setupPluginCommand, so reverting the IsEmpty check to its original semantics is sufficient. Addresses PR #13779 review feedback. Signed-off-by: Guillaume Lours --- pkg/compose/plugins.go | 2 +- pkg/compose/plugins_test.go | 9 ++------- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/pkg/compose/plugins.go b/pkg/compose/plugins.go index ee9877b0b..5b6485510 100644 --- a/pkg/compose/plugins.go +++ b/pkg/compose/plugins.go @@ -265,7 +265,7 @@ type ProviderMetadata struct { } func (p ProviderMetadata) IsEmpty() bool { - return p.Description == "" && p.Up.Parameters == nil && p.Down.Parameters == nil && p.Stop == nil + return p.Description == "" && p.Up.Parameters == nil && p.Down.Parameters == nil } type CommandMetadata struct { diff --git a/pkg/compose/plugins_test.go b/pkg/compose/plugins_test.go index 00cc77c5f..9ff2f653c 100644 --- a/pkg/compose/plugins_test.go +++ b/pkg/compose/plugins_test.go @@ -52,14 +52,9 @@ func TestProviderMetadata_IsEmpty(t *testing.T) { want: false, }, { - name: "only Stop set", - metadata: ProviderMetadata{Stop: &CommandMetadata{Parameters: param}}, - want: false, - }, - { - name: "Stop set with empty parameters", + name: "only Stop set is empty", metadata: ProviderMetadata{Stop: &CommandMetadata{}}, - want: false, + want: true, }, { name: "all fields set",