-
Notifications
You must be signed in to change notification settings - Fork 5.9k
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
Update package guidelines for .NET Core 3.0 #13196
Conversation
- Remove section on patch packages, sdk feature packages. I believe Microsoft, nor Red Hat are providing such packages for .NET Core 2.2 for non-Windows platforms. - Rename aspnetcore-runtime package to aspnet-runtime. No one has provided such a package. Suggesting a shorter name. - Add packs. Initial split: * To reduce the number of packages, I've added Microsoft.AspNetCore.App.Ref, Microsoft.NETCore.App.Ref and Microsoft.NETCore.App.Host.<rid> to the sdk package. * NETStandard.Library.Ref is a separate package because multiple .NET Core versions may be installed side-by-side and provide the same files. * Microsoft.WindowsDesktop.App.Ref is currently in its own package, I'm not sure how it versions with the rest.
@nguerrera @dsplaisted @omajid ptal. This is a suggestion, please review and correct/improve. |
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.
To reduce the number of packages, I've added Microsoft.AspNetCore.App.Ref,
Microsoft.NETCore.App.Ref and Microsoft.NETCore.App.Host. to the sdk package.
For the targeting pack, this breaks building for a downlevel .NET Core version with a minimal offline install. You should be able to e.g. install a 3.1 SDK and 3.0 targeting pack and build something that targets a 3.0 runtime. Targeting packs in general should be separate to support this kind of install. (Edit: Also, a targeting pack is expected to very rarely have a patch change, and it would be nice to let users keep the one they have installed when the runtime or SDK revs.)
For the app host pack, I'm not so sure--that one might be fine.
/cc @leecow |
Co-Authored-By: Davis Goodin <dagood@users.noreply.github.com>
Co-Authored-By: Andy De George <2672110+Thraka@users.noreply.github.com>
Co-Authored-By: Andy De George <2672110+Thraka@users.noreply.github.com>
Co-Authored-By: Andy De George <2672110+Thraka@users.noreply.github.com>
Co-Authored-By: Andy De George <2672110+Thraka@users.noreply.github.com>
Co-Authored-By: Andy De George <2672110+Thraka@users.noreply.github.com>
Co-Authored-By: Andy De George <2672110+Thraka@users.noreply.github.com>
Co-Authored-By: Andy De George <2672110+Thraka@users.noreply.github.com>
Co-Authored-By: Andy De George <2672110+Thraka@users.noreply.github.com>
Co-Authored-By: Andy De George <2672110+Thraka@users.noreply.github.com>
Co-Authored-By: Davis Goodin <dagood@users.noreply.github.com>
@omajid can you also have a look and see if things look good for you? |
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.
A few minor suggestions/fixes. The existence of a templates package is different from the Microsoft build--but that's discussed above and makes sense to me.
Co-Authored-By: Davis Goodin <dagood@users.noreply.github.com> Co-Authored-By: Andy De George <2672110+Thraka@users.noreply.github.com>
- (6,7) **shared/Microsoft.AspNetCore.{App,All}/\<aspnetcore version>** contains the ASP.NET Core libraries. The libraries under `Microsoft.AspNetCore.App` are developed and supported as part of the .NET Core project. The libraries under `Microsoft.AspNetCore.All` are a superset that also contains third-party libraries. | ||
- (6) **shared/Microsoft.AspNetCore.{App,All}/\<aspnetcore version>** contains the ASP.NET Core libraries. The libraries under `Microsoft.AspNetCore.App` are developed and supported as part of the .NET Core project. The libraries under `Microsoft.AspNetCore.All` are a superset that also contains third-party libraries. | ||
|
||
- (7) **shared/Microsoft.Desktop.App/\<desktop app version>** contains the Windows desktop libraries. This isn't included on non-Windows platforms. |
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.
Should it be noted that some directories/components are available at .NET Core 3.0+?
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.
nevermind ... the title of the doc is 3.0
A couple of questions:
|
Yes. Targeting packs have reference assemblies, apphost packs have the apphost template. apphost and targeting are mutually exclusive pack categories.
Only the latest fxr directory is actually used. Yes, it always has to be backwards compatible. I believe the versioning is mostly to be able to lay down a newer one in some scenarios where the older one is locked and not require a reboot. I imagine this isn't an issue for Linux. cc @vitek-karas |
The Microsoft build does include
I don't think there's any reason to have this different between Microsoft builds and the packaging guidelines. (Although yeah, there might not be a big reason to keep it the same.)
👍
Aren't directories automatically created to suit whatever files a package wants to install? AFAIK there's no env var set or needed, if that's what you're saying. |
Sorry about the confusion. In a distribution like Fedora, each package has to say which files/directories it owns and which one should be created by another. Templates use (say) |
I see, that sounds reasonable to me. I don't know any situation it's useful to have templates without a host. (Or really, without an SDK... but the SDK depends on the templates so AFAIK we have to pick the dependency that's more useful.) |
I'll update this in a follow-up PR. I had kept the hostfxr package as it was. Multiple versions aren't needed on Linux, but I'll add it to align with the Microsoft build.
There is a dependency via the aspnetcore runtime, but we can add a direct one too.
Does this apply to more than templates? |
For Fedora packages, I have set things up so each sdk owns |
I see. The packs are in the same situation as the templates? Because they don't have dependencies? |
Yes; at least, that's what I have done so far. |
Remove section on patch packages, sdk feature packages. I believe Microsoft, nor
Red Hat are providing such packages for .NET Core 2.2 for non-Windows platforms.
Rename aspnetcore-runtime package to aspnet-runtime. No one has provided such
a package. Suggesting a shorter name.
Add packs. Initial split:
Microsoft.NETCore.App.Ref and Microsoft.NETCore.App.Host. to the sdk package.
may be installed side-by-side and provide the same files.
sure how it versions with the rest.