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

Enable ASP.NET Core on Apple Silicon #26821

Closed
4 of 6 tasks
sdmaclea opened this issue Oct 12, 2020 · 23 comments
Closed
4 of 6 tasks

Enable ASP.NET Core on Apple Silicon #26821

sdmaclea opened this issue Oct 12, 2020 · 23 comments
Labels
affected-medium This issue impacts approximately half of our customers area-infrastructure Includes: MSBuild projects/targets, build scripts, CI, Installers and shared framework severity-major This label is used by an internal tool task
Milestone

Comments

@sdmaclea
Copy link
Contributor

sdmaclea commented Oct 12, 2020

Apple has announced plans to transition its Mac hardware line to a new Arm64-based chip that they refer to as “Apple Silicon

See dotnet/runtime#43313

This issue tracks work to enable ASP.NET Core on Apple Silicon

The first three items have been completed for the dotnet/runtime and should be able to proceed for aspnetcore.

Hints from dotnet/runtime learnings:

  • Cross compilation requires Xcode 12.2 or better (included in vmImage 10.15)
  • pass -arch arm64 to the clang compiler to select arm64 as the target architecture.
@sdmaclea sdmaclea added this to the 6.0.0-alpha1 milestone Oct 12, 2020
@sdmaclea sdmaclea added this to To do in Enable .NET Core on Apple Silicon via automation Oct 12, 2020
@sdmaclea
Copy link
Contributor Author

Depends on a newer .NET 6 runtime. The current version is 4 days old. See #26693. Runtime 6.0.0-alpha.1.20509.10 seems to have a osx-arm64.

@sdmaclea sdmaclea added the blocked The work on this issue is blocked due to some dependency label Oct 12, 2020
@Pilchie Pilchie added the area-infrastructure Includes: MSBuild projects/targets, build scripts, CI, Installers and shared framework label Oct 13, 2020
@sdmaclea
Copy link
Contributor Author

Waiting on #26788

@sdmaclea sdmaclea removed the blocked The work on this issue is blocked due to some dependency label Oct 27, 2020
@pranavkm pranavkm removed the cost: M label Nov 6, 2020
@wtgodbe wtgodbe added affected-medium This issue impacts approximately half of our customers severity-major This label is used by an internal tool task labels Dec 7, 2020 — with ASP.NET Core Issue Ranking
@JunTaoLuo
Copy link
Contributor

@sdmaclea What's there left to do for this issue and is there anything we can help with?

For example I see the SQLitePCL.raw PR is merged and we have already deprecated libuv so we don't have to take any action there. Also it seems like in your PR #27264 the CI builds have been added, so is testing the only thing we need to track?

@sdmaclea
Copy link
Contributor Author

I am not sure how the SQLitePCL.raw macos-arm64 bits will be released and picked up by ASP.NET Core. I assume ericsink/SQLitePCL.raw#375 is still open because the build hasn't been released?

I have not done even the slightest ASP.NET Core testing on Apple Silicon. When we have devices available, that would be useful.

Testing in CI needs to be enabled. The hardware to enable CI is on order. We expect to have CI queues enabled in January. I'll probably focus on enabling CI testing in dotnet/runtime first.

I am not sure how much platform specific testing is typically done in higher level repos. I would expect at least smoke testing. So dotnet/sdk, dotnet/installer, dotnet/aspnetcore testing could possibly be done in parallel. Otherwise I'll probably enable it when runtime testing is passing.

@sdmaclea
Copy link
Contributor Author

From ericsink/SQLitePCL.raw#375 (comment)

Version 2.0.5-pre20201231105030 (which should address this issue) has been pushed up to nuget.org. Testing/verification appreciated. :-)

I have hardware availability, but I do not know what would be required to (even smoke) test it for .NET 6 on Apple Silicon.

@JunTaoLuo JunTaoLuo modified the milestones: 6.0-preview1, 6.0.0 Feb 4, 2021
@sdmaclea
Copy link
Contributor Author

sdmaclea commented Apr 8, 2021

We have limited M1 testing capacity available. Due to the limited capacity, I do not plan to enable testing of ASP.NET on M1 (any time soon).

Also we need to wait on the M1 queue being updated to macOS 11.3 (once it is released). There are major stability fixes which greatly improve the runtime stability.

https://github.com/dotnet/core-eng/issues/11937#issuecomment-816110773

We still have a lot of runtime libraries testing to enable. There are a lot of failing tests. The 11.3 upgrade may fix most of them.

I am tempted to close this. Since ASP.NET is mostly managed code CI testing would only provide more runtime coverage. With limited M1 queue capacity, failures here would not likely be very actionable.

@JunTaoLuo JunTaoLuo modified the milestones: 6.0.0, Backlog Apr 22, 2021
@ghost
Copy link

ghost commented Apr 22, 2021

We've moved this issue to the Backlog milestone. This means that it is not going to be worked on for the coming release. We will reassess the backlog following the current release and consider this item at that time. To learn more about our issue management process and to have better expectation regarding different types of issues you can read our Triage Process.

@JunTaoLuo
Copy link
Contributor

I'll move this issue to Backlog. @sdmaclea Will the testing capacity increase at some point? If so should we enable our tests on apple silicon then? I'm also curious if our helix daily tests, which run twice a day on a set schedule, would be within the limits of the testing capacity available.

@JunTaoLuo JunTaoLuo removed their assignment Apr 22, 2021
@sdmaclea
Copy link
Contributor Author

The helix queues currently have capacity for scheduled test runs. Per PR runs would overwhelm them though. We have very short wait times at the moment.

@dougbu
Copy link
Member

dougbu commented Sep 21, 2021

What are the queue names and can you handle our load for (say) daily runs❔

I'm also forgetting which branches (versions) this is important for. Please remind us.

@dougbu
Copy link
Member

dougbu commented Sep 21, 2021

Separately, what action should(s) we take in dotnet/aspnetcore on unchecked items aside from testing❔

@xsoheilalizadeh
Copy link

Does #38527 cover Apple Silicon?
@dougbu

@dougbu
Copy link
Member

dougbu commented Dec 2, 2021

Does #38527 cover Apple Silicon?

No, that PR was about building and testing locally on Linux Arm64 hardware.

@tebeco
Copy link
Contributor

tebeco commented Sep 15, 2022

@sdmaclea @dougbu
hello ;)

I'm not sure how to interpret the status of this EPIC.
Is there still some scenario with AspNetCore causing issue on Apple Silicon?

  • As a dev using aspnetcore
  • as a dev doing PR on this repo
  • something else ?

@dougbu
Copy link
Member

dougbu commented Sep 15, 2022

@tebeco it's hard to see above but my understanding is our main remaining issue is a lack of regular testing on Apple Silicon. Fortunately we have enough information to be confident ASP.NET Core works on that hardware.

@tebeco
Copy link
Contributor

tebeco commented Sep 16, 2022

thx for the quick reply @dougbu

do you think

  • the checkox about sqlite should be checked now given sun or linked to that ?
  • that "Enable testing" could be rephrased to clarify its only relevant to the infra of the ci but does not affect devs / contributor / etc ... ?

@dougbu
Copy link
Member

dougbu commented Sep 16, 2022

@wtgodbe let's talk about this next Tuesday and decide what work remains. Also @HaoK did we ever run Helix tests on M1 queues❔

@dougbu
Copy link
Member

dougbu commented Sep 20, 2022

@HaoK, more specifically, have you done a test run that included OSX.1100.Arm64.Open in the matrix❔

@dotnet/dnceng, could you confirm that queue is using M1 hardware❔

@jonfortescue
Copy link
Member

@dougbu yep, they're M1s

@HaoK
Copy link
Member

HaoK commented Sep 22, 2022

@dougbu
Copy link
Member

dougbu commented Sep 22, 2022

Alright, @dotnet/aspnet-admin, we've tested on M1 hardware and the other points in the description are closed. Either we close this issue now or we explicitly make it about tracking the agent count in the OSX.1100.Arm64.Open queue and including that in our aspnetcore-helix-matrix runs when / if the queue is large enough. Thoughts❔

I lean slightly toward closing this issue because our Apple-related issues feel more tightly bound to OS changes than the hardware.

@HaoK
Copy link
Member

HaoK commented Sep 22, 2022

I think we should just close this. I don't think we would get any particular benefit out of running on this special queue all the time given that we don't have any product code for this hardware

@tebeco
Copy link
Contributor

tebeco commented Oct 4, 2022

that's one of the reason i'm asking.
It could really be misleading for anyone looking for Apple Silicon in this repo

@dougbu dougbu closed this as completed Oct 4, 2022
Enable .NET Core on Apple Silicon automation moved this from To do to Done Oct 4, 2022
@dotnet dotnet locked as resolved and limited conversation to collaborators Nov 3, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
affected-medium This issue impacts approximately half of our customers area-infrastructure Includes: MSBuild projects/targets, build scripts, CI, Installers and shared framework severity-major This label is used by an internal tool task
Development

No branches or pull requests

11 participants