Skip to content
This repository has been archived by the owner on Jan 23, 2023. It is now read-only.
/ corefx Public archive

Reclassify the test dependencies in corefx as toolset #34682

Merged
merged 3 commits into from
Jan 18, 2019

Conversation

mmitche
Copy link
Member

@mmitche mmitche commented Jan 18, 2019

These aren't actually repackaged/shipped, etc. so they can be made to be breaks in the graph.
It might be good to introduce a new classification (test) but for now toolset is fine.

These aren't actually repackaged/shipped, etc. so they can be made to be breaks in the graph.
It might be good to introduce a new classification (test) but for now toolset is fine.
@mmitche mmitche requested a review from ericstj January 18, 2019 19:54
@mmitche
Copy link
Member Author

mmitche commented Jan 18, 2019

/cc @chcosta

Copy link
Member

@ericstj ericstj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/cc @danmosemsft @safern @ViktorHofer

Toolset/Product here are unfortunate names. Even test doesn't quite capture the distinction. To me the distinction is "reference + testing" vs "redistribution" but I still find that hard to reconcile with the actual usage and how folks think about it. Perhaps you should add a comment to describe the difference?

@@ -25,8 +15,18 @@
<Uri>https://github.com/dotnet/core-setup</Uri>
<Sha>464f69912c1e644e1b6e3aa0184f5c7c1a690cec</Sha>
</Dependency>
</ProductDependencies>
<ToolsetDependencies>
<Dependency Name="Microsoft.NETCore.Runtime.CoreCLR" Version="3.0.0-preview-27316-72">
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CoreCLR is indeed a product dependency right? We use it for our partial facades and as reference from some of our product assemblies. Unless the intent to use product dependency as “we ship these within our product”, is that the case?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ericstj Can you comment on this? We can move this one back to product if need be.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@safern A better question here is this: If the exact version of coreclr mentioned here doesn't make it into the sdk/core-setup outputs, is there an issue?

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 yes. Because we use CoreCLR to generate our facades and some projects use implementation details. So if we use a version that exposes and API and we use it in a project or generate a facade with that API, and then consume a previous CoreCLR version in core-setup that doesn’t contain that API I think it would be an issue, however I see that should be hard to happen.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay I'm move that back for now.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the exact version of coreclr mentioned here doesn't make it into the sdk/core-setup outputs, is there an issue?

exact version no, we just need a version that has the same public types exposed from CoreLib.
We have no version dependency nor redistribution of coreclr. We only need one with the same public surface.

Historically we've allowed these repositories to build in parallel and I'd expect we'd want to do that moving forward.

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 the values used in Version.Details.xml are kind of confusing, because ProductDependency could be a dependency needed in order to create your product.

TestDependency means to me, something we use to test. Only core-setup is a test depedency in this case I believe.

Coreclr would be more like BuildDependency and arcade ToolChainDependency.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or ReferenceDependency? I really feel like we need a document with some clear definitions of these terms and the behavior that falls out of using them.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's maybe even more like "MustShipThisOrElseDependency" and "EverythingElseDependency"

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah those would also clarify really from the devs mind what that dependency is intended for.

@mmitche
Copy link
Member Author

mmitche commented Jan 18, 2019

In this case, it's not a huge issue to classify as product because coreclr is 'lower' in the stack.

Really, product vs. toolset + whether the binary is shipping or non-shipping is being used to determine what we need actually publish in order to have a functional product

@mmitche
Copy link
Member Author

mmitche commented Jan 18, 2019

Back to all toolset then. I'll merge this in a second,

@mmitche mmitche merged commit df75edc into dotnet:master Jan 18, 2019
@mmitche mmitche deleted the reclassify-deps branch January 18, 2019 23:14
@karelz karelz added this to the 3.0 milestone Mar 18, 2019
picenka21 pushed a commit to picenka21/runtime that referenced this pull request Feb 18, 2022
Reclassify the test dependencies in corefx as toolset

Commit migrated from dotnet/corefx@df75edc
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants