Replace Buildalyzer from CSharpProject#3112
Conversation
|
@colombod Fixed the issue with Document Ids in the last commit. These are the 3 remaining unit-tests
|
|
|
||
| namespace Microsoft.DotNet.Interactive.CSharpProject.RoslynWorkspaceUtilities; | ||
|
|
||
| public class BuildDataResults |
There was a problem hiding this comment.
Does this need to be public?
For every type introduced, we should make it internal if it's simple to do so. For the ones where it's less clear (for example you're using them in unit tests), let's have a discussion when we meet.
There was a problem hiding this comment.
In order to accomplish this, I will need to make other classes 'internal'.
I can implement these changes once I gain a clearer understanding of which APIs the service will utilize
There was a problem hiding this comment.
It's better to make them internal until a clear need for them to be public emerges.
The main public methods that the Try .NET web service will need to call will be the kernel commands and events, and this infrastructure should be an implementation detail.
|
Git squash |
|
I removed the last commit and did a git rebase onto upstream main to get the package upgrade in Markdig.Signed Can someone approve ? |
| catch (Exception) | ||
| catch (ArgumentNullException) | ||
| { | ||
| return null; |
There was a problem hiding this comment.
Why are we hiding an exception here at all? This is presumably happening due to a bug in our code.
| { | ||
| // Error | ||
| return null; | ||
| throw new ArgumentNullException(nameof(projectInfo)); |
There was a problem hiding this comment.
This isn't the correct exception type, since it's not an argument.
What causes projectInfo to be null? Is it due to a bug somewhere else?
There was a problem hiding this comment.
I'll push a cleanup pr to fix this

This Pull Request seeks to eliminate all dependencies on Buildalyzer, due to its frequent breakdown during runtime. The instability can be attributed to frequent changes in the binlog format, necessitating either a regular update of Buildalyzer to the latest version supporting the new format, or the submission of respective updates to the Buildalyzer project repository.
This update involves numerous changes, the crux of which is a revision to the build process. During the build, a temporary file named Directory.Build.Targets is generated. This file initiates the creation of a target called DirectoryBuildTargetsContent which, in turn, generates a cache file containing all the necessary data to create a Roslyn Workspace object.
Subsequent to this update, instead of analyzing a binlog, the system reads from the cache file to create a Workspace, providing a more stable and efficient solution.