Skip to content

Change to the VS release queue for integration tests#41476

Merged
JoeRobich merged 6 commits intodotnet:masterfrom
JoeRobich:update-integration-queue
Feb 7, 2020
Merged

Change to the VS release queue for integration tests#41476
JoeRobich merged 6 commits intodotnet:masterfrom
JoeRobich:update-integration-queue

Conversation

@JoeRobich
Copy link
Copy Markdown
Member

@JoeRobich JoeRobich commented Feb 7, 2020

Contains same commit as #41473 but targeted at master branch

jasonmalinowski and others added 6 commits February 4, 2020 17:02
Solution.GetLatestProjectVersion() returns the highest project version
of any of the Projects in the Solution. This is lazily computed, but
the lazy computation has a fatal flaw. It's implemented with a
Lazy<VersionStamp>, and if a Solution is changed and no project was
changed (say, you only modified a document's text), the existing
Lazy<VersionStamp> is reused. This causes us to root an older
SolutionState or ProjectState until somebody were to call
GetLatestProjectVersion() and cause the Lazy<VersionStamp> to be
evaluated.

Except...that would never happen. It turns out that nothing calls
GetLatestProjectVersion() in Visual Studio anywhere that I can find.
The only call is in one unit test that calls it and then ignores the
result. Thus, we'd simply leak the SolutionState/ProjectState until
some code ran that knew it could explicitly state the value instead of
reuse the existing Lazy<VersionStamp>.

Looking through history, it appears that this used to be used more
regularly as a part of an older implementation of the
ProjectDependencyGraph, but that was removed in
abd7654.

Since nobody calls this, and the actual computation (just looping
through all projects to find the newest stamp) is fairly trivial, I'm
just going to delete all the lazy handling and just inline the
computation. In the unlikely case that this ever becomes a hot path,
we can revisit the laziness at that time.
Update arcade to support SDK publishing
…rojectversion

Delete the lazy caching of GetLatestProjectVersion()
@JoeRobich JoeRobich requested review from a team as code owners February 7, 2020 01:25
@JoeRobich JoeRobich changed the title Update integration queue Change to the VS release queue for integration tests Feb 7, 2020
@jaredpar
Copy link
Copy Markdown
Member

jaredpar commented Feb 7, 2020

This does a lot more than change the queues, it also changes a lot of code under eng/common which is effectively changing the arcade version we use. Is that intentional here?

@sharwell
Copy link
Copy Markdown
Contributor

sharwell commented Feb 7, 2020

I think this is not a necessary change anymore. The original queue has been reverted to an image we expect to work.

@JoeRobich
Copy link
Copy Markdown
Member Author

Is that intentional here?

Those changes are in release/dev16.5 not sure why the versions went from V5 to V1.

@JoeRobich
Copy link
Copy Markdown
Member Author

See the dev16.5 to master merge #41435

@JoeRobich
Copy link
Copy Markdown
Member Author

Merging since this is basically the dev16.5-master master

@JoeRobich JoeRobich merged commit e12638a into dotnet:master Feb 7, 2020
@JoeRobich JoeRobich deleted the update-integration-queue branch February 7, 2020 18:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants