mirror of
https://github.com/hanzoai/tasks.git
synced 2026-10-04 02:04:03 +00:00
## What changed? Change version string to a struct - The worker management workflows have not changed in this PR, instead, the new inputs are converted to the old inputs when they come in, and the responses are filled in to have both the old and new fields - Only the new way to specify version transition is stored in MS, but both are populated on read - Change VersioningOverride so that we can safely specify multiple types of pinned override in the future - Store only the new fields, return the old fields on read. ## Why? So that we don't have to rely on the string representation of a version, and to make way for more types of PINNED. ## How did you test it? - [x] built - [x] run locally and tested manually - [x] covered by existing tests - [x] added new unit test(s) - [x] added new functional test(s) ## Potential risks This could theoretically break how workflow execution versioning info and old versioning overrides are handled when they are read, how pinned-ness is calculated, etc. The functional tests in versioning_3_test.go test for this, and they revealed mistakes I had made, which means we know those code paths are executed. I did not change anything in the Deployment Manager workflows, so this PR does not risk breaking those workflows via an incompatible change. Tests in DeploymentVersionSuite guard against the risk of older SDK users not seeing the fields they expect.