-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Change Waves Refactoring #5756
Comments
These warnings are not caught at all through VS. I tested this by capturing a binlog and replaying it with |
This is an issue for developers that want set escape hatches and feature flags based on a change wave, rather than placing the change wave check at the site of their feature, which I'm not entirely convinced is better. Unfortunately, devs don't have the choice and enabling that would be great. |
Could you perhaps also add some information on why “risky features are developed under the same opt-out flag”. |
@japj Unfortunately, some of what we work on are improvements that would never be considered safe because it may break some very specific scenario. If there's something we think is worth the risk, whether it be for performance or functionality improvement, we found that Change Waves were a good middle ground between making necessary changes and warning customers of these changes. Opt-out is a better approach for us because we'd likely get limited feedback when a feature impacts customer builds. When a feature does impact a customer negatively, it's a quick switch to disable and allows time to adapt. The key aspect to Change Waves is that it smooths the transition for customers adapting to risky changes that the MSBuild team feels strongly enough to implement. |
* Better messaging on opt-in vs opt-out. partial fix on #5756
This will be closed out when #5864 merges in, as the last two items have separate issues tracking them. |
Closed as of #5864. |
Issue Description
Change Waves shipped with a few quirks. In rough order of importance:
To Do
ChangeWaves
from traits producesdoes not exist
errors, and when including it in the projects where it was previously unavailable, it produces the errorThe type 'ChangeWaves' exists in both 'Microsoft.Build' .... and 'Microsoft.Build.Tasks.Core'
.Done
MSBuildDisableFeaturesFromVersion
env var, and THEN an existing test runs (that is now conditioned on change waves), failing the existing test. This is worked around by callingSetChangeWave(string.Empty)
on TestEnvironment'sDispose
(orCleanup
) functions. We should callBuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly();
here as well.The text was updated successfully, but these errors were encountered: