Skip to content

Conversation

@0101
Copy link
Contributor

@0101 0101 commented Jul 18, 2023

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.

@0101 0101 requested a review from a team as a code owner July 18, 2023 12:21
this.Workflow.Checker
this.Workflow.Checker

static member CreateFromRealProject(projectDir) =
Copy link
Member

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?

Copy link
Contributor Author

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).

Copy link
Member

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 =
Copy link
Member

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.

Copy link
Contributor Author

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.

Copy link
Member

@T-Gro T-Gro Jul 19, 2023

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

3 participants