-
Notifications
You must be signed in to change notification settings - Fork 830
Project Generation improvements #15615
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
Project Generation improvements #15615
Conversation
| this.Workflow.Checker | ||
| this.Workflow.Checker | ||
|
|
||
| static member CreateFromRealProject(projectDir) = |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where is this being exercised? Is CI capable of running this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nowhere in main so far. CI should be capable of using this if we provide a local copy of some project (not sure if it can handle anything we have in the repo).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this folder ~\tests\projects\stress or its parent should have eligible projects.
|
|
||
| static member CreateFromRealProject(projectDir) = | ||
|
|
||
| let projectFile = |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was somewhat expecting to use to codepath which we already have for converting command line options into project options going into the checker.
i.e. by invoking a design time build, which would do all the msbuild magic, and end up with a list of fsc.exe CLI arguments.
As a benefit, that codepath would then be also tested by it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is something @vzarytovskii wants to try to do. Should be doable but might have some other challenges.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The downside is invoking msbuild to do an actual design time build, but I do not think that matters for benchmarking/testing, as this is a one time setup per project, can be cached.
I see a very big advantage in exercising code we already use in editor, and of course supporting a lot more different CLI options (translated from .fsbuild props) as well as configuration sources ;; most notable Directory.Build.props.
==> all without us having to implement the nitty details of it.
Adding ProjectGeneration improvements that came out of TransparentCompiler testing and benchmarking. Most notably the ability to load a (simple) project (like Giraffe) to run tests and benchmarks on using FCS.