Skip to content

Conversation

@jbardin
Copy link
Member

@jbardin jbardin commented Oct 31, 2025

Due to the inherently ephemeral nature of provider configuration, inconsistent function results were tolerated while evaluating provider config. This loophole was found to be used by a number of configurations, which took advantage of it to create the equivalent of ephemeral values before they formally existed in the language.

In order to work around this, we can create a special evaluation scope just for providers, allowing us to override the results check for filesystem functions. I've opted to not further clutter the EvalContext interface since this is intended to be a temporary workaround, and does not contribute to the testing of that interface (the interface is solely for internal unit tests anyway).

Fixes #37792

Due to the inherently ephemeral nature of provider configuration,
inconsistent function results were tolerated while evaluating provider
config. This loophole was found to be used by a number of
configurations, which took advantage of it to create the equivalent of
ephemeral values before they formally existed in the language.

In order to work around this, we create a special evaluation scope just
for providers, allowing us to override the results check for filesystem
functions. I've opted to not further clutter the EvalContext interface
since this is intended to be a temporary workaround, and does not
contribute to the testing of that interface (the interface is solely for
internal unit tests anyway).
@jbardin jbardin force-pushed the jbardin/provider-eval-scope branch from cf7a315 to 4ce205d Compare October 31, 2025 17:07
@jbardin jbardin added 1.13-backport If you add this label to a PR before merging, backport-assistant will open a new PR once merged 1.14-backport If you add this label to a PR before merging, backport-assistant will open a new PR once merged labels Nov 3, 2025
@jbardin jbardin marked this pull request as ready for review November 3, 2025 16:22
@jbardin jbardin requested a review from a team as a code owner November 3, 2025 16:22
@jbardin jbardin added no-changelog-needed Add this to your PR if the change does not require a changelog entry and removed 1.13-backport If you add this label to a PR before merging, backport-assistant will open a new PR once merged 1.14-backport If you add this label to a PR before merging, backport-assistant will open a new PR once merged labels Nov 3, 2025
@jbardin jbardin force-pushed the jbardin/provider-eval-scope branch from 4934006 to 4ce205d Compare November 3, 2025 16:35
@jbardin jbardin added 1.13-backport If you add this label to a PR before merging, backport-assistant will open a new PR once merged skip-changelog-check 1.14-backport If you add this label to a PR before merging, backport-assistant will open a new PR once merged and removed no-changelog-needed Add this to your PR if the change does not require a changelog entry labels Nov 3, 2025
@jbardin jbardin merged commit 39eb8c7 into main Nov 4, 2025
37 of 44 checks passed
@jbardin jbardin deleted the jbardin/provider-eval-scope branch November 4, 2025 18:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

1.13-backport If you add this label to a PR before merging, backport-assistant will open a new PR once merged 1.14-backport If you add this label to a PR before merging, backport-assistant will open a new PR once merged skip-changelog-check

Projects

None yet

2 participants