-
Notifications
You must be signed in to change notification settings - Fork 206
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
Add standalone template for experiments that don't need runtime features #238
Conversation
56576ac
to
82ce1c0
Compare
82ce1c0
to
fd39bc2
Compare
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.
LGTM. It may be a good idea to get somebody intimately familiar with Arcade, etc. to review the build scripts.
I believe, the guys I tagged + @ViktorHofer would be very familiar and could provide good feedback for this. Thanks, @jkotas |
3d309c4
to
a8052dd
Compare
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.
Left minor comments but looks great otherwise!
cc:@AaronRobinsonMSFT and @elinor-fung since we own the only experiment currently in this category to my knowledge. |
Curious, how do we manage changes from dotnet/runtime? Ie the testing infrastructure in this branch will soon be outdated. |
what do you mean with the testing infrastructure? I just used the runsettings target logic, but we don't use the rest of the dotnet/runtime infrastructure, in fact this doesn't have anything from dotnet/runtime. Experiments that do need a shared framework are forked off from |
Right, I'm talking about the runsettings.targets and .runsettings files which I'm changing in my VSTest PR in dotnet/runtime. Who would be responsible to update them here as well, ie to benefit from improvements in the VSTest runner? |
That would be me or @joperezr I guess... Do you expect this target to change often? |
You could pass that information in via a CLI switch as Arcade's |
Yes, this is also to support Yes I did try this on a clean build by opening the solution... the way I did it was by setting the |
When I added the VS Test Explorer support in dotnet/runtime, this didn't work. VS Test Explorer tried to load the .runsettings file specified in the property immediately (before a target ran) and failed. Keep an eye out for that to be certain that the right .runsettings file and SDK is used. |
I'll double check that. Thanks for the heads up. |
So after looking through this from the consuming side, it seems significantly more complicated than what DllImportGenerator (which is the only current standalone project) would need. The inclusion of the platform-matrix.yml style of templating is significantly more complex than what we need for our project. We were planning on writing a simple yml entry-point that's easy to understand without multiple template layers on top of the Arcade ones. We don't need any of the complicated dotnet/runtime pipeline infrastructure for our build. In fact, a simple I'm a little concerned that this pipeline was designed without any input from the only standalone project today that might use it (I stumbled on this PR randomly, no one on the Interop team working on the DllImportGenerator project was tagged). I'm also worried that since we might not have any standalone projects using it for a while, it might atrophy and break before anyone adopts it. I think if the .NET Runtime Infra v-team (preferably someone other than myself) commits to owning this infra and maintaining it in experiments like the DllImportGenerator experiment, I'll be more amenable to this design. |
The Microsoft.Data.Analysis package from corefxlab will also be using this template. |
Sorry that I didn't tag you guys. My understanding was that the I will reach out offline, and this are valid concerns, so I will reach offline and get consensus on this from the interop team to meet your guys need as well. |
Yes, we'll eventually move to getting runtime features, but that's planned for closer to the end of the experiment. Many of the APIs we need we can initially provide (with less performance) outside of the runtime. We don't want to fork the runtime into our branch (and significantly complicate our workflow) until we absolutely cannot avoid it. |
7ecf460
to
ba879fc
Compare
ba879fc
to
ad569a7
Compare
Thanks for the discussion and reviews. I've addressed/validated all concerns. This is ready to go, could you guys take another look please? |
…ures (dotnet/runtimelab#238) * Add arcade common files * Add standalone library template for experiments that don't need runtime features * Add documentation to README.md * PR Feedback. Co-authored-by: Jan Kotas <[email protected]> * Quick fixups in README.md * PR Feedback * Simplify yml templates Co-authored-by: Jan Kotas <[email protected]> Commit migrated from dotnet/runtimelab@0809d81
Fixes: #88
This is the template branch for new experiments to use in order to create an experiment that doesn't depend on runtime or framework features.
Make sure to ignore the first commit as that is just pulling all the arcade files into
eng/common
.I will add a subsequent PR to enable official builds and to add links within the repo in the documentation I added in the README file.
If you think the branch name doesn't make sense, please feel free to suggest one, I'm not great and naming and
standalone-template
was the best I could come up with.FYI: @pgovind @eerhardt @danmosemsft