Keep dev-server feature overrides current - #14
Draft
chaptersix wants to merge 7 commits into
Draft
Conversation
Standalone activities (activity.enableStandalone) now default to enabled in the pinned server version, so the explicit override in SharedServerSuite was a no-op; several other overrides had also become redundant. Remove them and add a regression test that starts a bare dev server and confirms standalone activities still work without any override. Also move the remaining overrides into a const list annotated with whether each one is test-only tuning or a feature flag forced on ahead of its server default, so future server bumps that flip a default are easy to catch and clean up. Fixes temporalio#1083
…verrides Fold the hardcoded overrides that StartDevServer applies to every dev server into the same dynamicConfigOverride/TestOnly scheme used by SharedServerSuite, and prune the ones now redundant with server defaults (frontend.workerVersioningWorkflowAPIs, system.enableDeploymentVersions, frontend.enableUpdateWorkflowExecution). Also fix StartDevServer unconditionally overwriting caller-supplied dynamic config values with its own defaults, which was silently shadowing SharedServerSuite's frontend.namespaceRPS.visibility override (10000) with its own lower value (100). It now only fills in keys the caller hasn't already set.
dynamicconfig.EnableChasm and activity.Enabled (SAA) are on by default as of server v1.32, matching the pinned go.temporal.io/server version, so the overrides forcing them on in devserver.Server (the 'temporal server start-dev' code path) were already no-ops. Remove them and update the stale comment. Also switch the test dynamic config override lists from raw string keys to the actual exported dynamicconfig.GenericSetting values from go.temporal.io/server (e.g. dynamicconfig.EnableSignalWithStartFromWorkflow, serveractivity.StartDelayEnabled, servernexusoperation.Enabled), so a key that gets renamed or removed upstream is a compile error instead of a silently no-op override.
TestDynamicConfigOverridesMatchServerDefaults reads each non-test-only override's real default straight from go.temporal.io/server via dynamicconfig.NewNoopCollection(), with no dev server needed. It fails the moment a server bump changes the assumption an override relies on: either a false-by-default flag we force to true now defaulting true (the override became a no-op and should be removed), or a flag we stopped forcing on because it defaults to true (dynamicconfig.EnableChasm, serveractivity.Enabled) reverting to false (the override needs to come back, in both the test lists and internal/devserver/server.go). This closes the gap on activity.EnableStandaloneActivityOperatorCommands and FrontendEnableBatchOperationsForStandaloneActivities, which had no guard at all before this.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related issues
What changed?
Checklist
Design
Tests
Validation