Skip to content
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

Investigate supporting .NET 6 #608

Closed
fg-j opened this issue Nov 9, 2021 · 8 comments · Fixed by #621
Closed

Investigate supporting .NET 6 #608

fg-j opened this issue Nov 9, 2021 · 8 comments · Fixed by #621
Labels
enhancement A new feature or request

Comments

@fg-j
Copy link

fg-j commented Nov 9, 2021

.NET 6 was recently released. A key new feature is native ARM64 support (Edit: A new feature is ARM64 support on macOS). Some questions to investigate:

  • What would (and wouldn't) need to change in the language family buildpacks to support .NET 6?
  • What is Microsoft's support agreement for .NET 6? Is this an LTS version?
  • Is there demand for .NET 6 support in buildpacks?
@fg-j fg-j added the enhancement A new feature or request label Nov 9, 2021
@andi0b
Copy link

andi0b commented Nov 10, 2021

.NET 6 is the current LTS supported Version of .NET. The first LTS release since .NET Framework 4.8 and .NET Core 3.1

.NET 5 will be end of life on May 8, 2022. .NET Core 3.1 on December 3, 2022

If .NET 6 is not going to be supported, this build pack should be archived and marked deprecated in the docs ASAP.

If the build pack should have some future, #525 should be supported too. It is very common to start developing products on a preview SDK, if the release date is after the release date of the SDK.

PS: ARM64 on Linux is supported in .NET (Core) for a long time already. The ARM64 support for macOS is new, which is not related to Paketo. ARM64 Support seems to be a way bigger issue anyway: paketo-buildpacks/stacks#51

@fg-j
Copy link
Author

fg-j commented Nov 10, 2021

Thanks for that context @andi0b . Can you explain a bit more what you mean by

It is very common to start developing products on a preview SDK, if the release date is after the release date of the SDK.

Specifically, "if the release date (of what?) is after the release date of the SDK."

@andi0b
Copy link

andi0b commented Nov 10, 2021

@fg-j Microsoft releases a new version of .NET (Core) every autumn. In the spring they start with previews, in summer you get the first release candidate. So if you start a project for a customer in the summer and you should ship it around new years, then you will probably already develop on the .NET preview. And if you do so, you can't use Paketo.

Also if you want to keep your software up to date, you will probably start upgrading the .NET version already during the preview phase. Some people even run their production servers on .NET preview/rc version. Microsoft even encourages you to do so, because only in the preview phase you can still give feedback that will change the final product.

That's why I consider implementing #525 very relevant for this build pack. Currently it's quite useless because it doesn't support preview .NET SDKs/runtimes.

@macsux
Copy link

macsux commented Nov 29, 2021

I strongly agree with @andi0b comment - we should not be waiting for GA release before putting shovels in the ground and ideally releasing pre-releases of buildpacks for new versions coming down the pipe. ESPECIALLY since microsoft had a "go-live" policy attached to .NET 6 RC builds meaning customers could go to prod without waiting for GA and still be supported.

@fg-j
Copy link
Author

fg-j commented Nov 29, 2021

Thanks @andi0b – your answer cleared up my confusion about .NET developers' process when it comes to preview releases. @andi0b and @macsux, your feedback is well taken.

@paketo-buildpacks/dependencies-maintainers would you be able to elaborate on what needs to be done in order to make the .NET 6 dependency available for buildpacks to consume? That's the first step in closing this issue.

@sophiewigmore
Copy link
Member

@fg-j It looks like .NET Core 6.0.0 is already available (as well as SDK and ASPNET), as our automation picks up new version lines. Sometimes this fails if a new version line needs to be compiled in a different way, but this does not appear to be the case for .NET 6.

To get it into the buildpack, we'd just need to add another metadata dependency constraint for 6.0.* and then we can begin modifying buildpack behaviour as needed.

@fg-j
Copy link
Author

fg-j commented Dec 1, 2021

I've started looking into this:

@ForestEckhardt
Copy link
Contributor

With .Net Core version v0.10.0 .Net 6 support has been added. Please test it out and feel free to open issues if you discover any problems!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement A new feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants