Skip to content

Do not treat effective-value scopes as stack settings - #22

Merged
csandanov merged 1 commit into
2.0from
fix/wodby1-non-setting-service-scopes
Aug 19, 2026
Merged

Do not treat effective-value scopes as stack settings#22
csandanov merged 1 commit into
2.0from
fix/wodby1-non-setting-service-scopes

Conversation

@csandanov

Copy link
Copy Markdown
Member

Summary

Wodby 1 exports some service configuration scopes for their effective value rather than as settings. preparedStackSettings skipped deployment and resources by name and converted everything else, so when implementation began arriving in that map it failed conversion and blocked the migration:

Blocking (2):
  stack service php setting implementation  configuration value is not a supported scalar
  stack service php setting implementation  configuration value is not a supported scalar

One per instance pinning an implementation. The value is a Wodby 1 template reference, not a scalar.

Fix

Replace the inline name check with a named predicate covering all three scopes. The effect of implementation is already carried by the exported service version, and no consumer reads Configuration["implementation"] — so skipping it loses nothing.

Why this layer matters independently. Wodby 1 also stops exporting the value, but a Wodby 2 CLI meets Wodby 1 deployments that do not yet. This is what keeps a migration running against them.

The skip list cannot quietly swallow real problems. A genuinely unrepresentable setting still blocks, covered by its own test.

Validation

go build ./..., go vet ./..., go test ./... — all packages pass.

Tests use a template-reference value — the shape that actually failed. The earlier test used a plain string, which is why this got through.

Wodby 1 exports some service configuration scopes for their effective value
rather than as settings. The stack settings path skipped deployment and
resources by name but converted everything else, so when implementation started
arriving in that map it failed conversion and blocked the migration:
"configuration value is not a supported scalar", once per instance pinning one.

Replace the inline name check with a named predicate covering all three. The
effect of implementation is already carried by the exported service version, and
no consumer reads it, so skipping it loses nothing.

Wodby 1 also stops exporting the value, but a Wodby 2 CLI meets Wodby 1
deployments that do not yet, and this is the layer that keeps a migration
running against them.

A genuinely unrepresentable setting still blocks; that is covered by its own
test so the skip list cannot quietly become a way to lose real problems.

Validation: go build ./..., go vet ./..., go test ./... (all packages pass).
Tests use a template-reference value, the shape that actually failed.
@csandanov
csandanov merged commit 3b34f31 into 2.0 Aug 19, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant