feat: experiments logging improvements #2049
Merged
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.
Closes #1979
Refactors the experiments package slightly so that experiments only need to be specified in one place now. Also moved the print functions to the logger to avoid importing anything in the experiments package. This stops circular imports.
This way of doing things allows us to easily iterate over all experiments which means I was able to easily add a function that validates all experiments. If an experiment is inactive (has no enabled values) and a user tries to specify a value, a warning will now be output.
Finally, I've consolidated how we read any Task-namespaced environment variables into the new
env.GetTaskVar
function that will always prefixTASK_
to any variables read. The logger now only reads these variables once instead of every time a call to print is made.