-
Notifications
You must be signed in to change notification settings - Fork 205
React to Roslyn rename of NullableContextOptions
to Nullable
.
#594
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
Conversation
...src/Microsoft.NET.Sdk.Razor/build/netstandard2.0/Microsoft.NET.Sdk.Razor.Compilation.targets
Show resolved
Hide resolved
How exactly is this going to work? Are Roslyn changing this for preview 6? This means at some point anyone who wants to use the components/mvc solution will need to get onto 16.2 |
Another wrinkle to consider is source-build and the bootstrapping problem. To build .NET Core of Linux distros, we need a prior version of .NET Core. At the moment, that prior version is the latest stable release (right now Preview 5). We either need a way to stage these kinds of breaking changes between previews, or a way to flow the newer compiler independently of the one bundled with the SDK.
|
@NTaylorMullen try applying this change to your PR: https://github.com/natemcmaster/AspNetCore-Tooling/commit/b416204aa5b5b8773b33b54deb216955ac556a94 |
7318395
to
c8c8a97
Compare
Done, lets see if it builds 😄 |
FYI there is a new version of the compiler coming along soon. The next bot-PR which updates Arcade will have this. cref dotnet/arcade#2856 |
@NTaylorMullen - we should make this change at our earliest available point. |
94d09b7
to
95f2326
Compare
a80b1d8
to
9d1cdd7
Compare
9d1cdd7
to
87d57b8
Compare
@aspnet/build looks like I need to wait for preview6 SDK to be in Arcade. Any update on that happening soon? |
Turns out you should be able to use a newer SDK before then. @JunTaoLuo did you get the needed steps / doc from @markwilkie ? |
Yes, in fact, it has already been applied. I have repro'ed this locally so I'm trying to see if I can figure out what's going on here. |
87d57b8
to
c92ad0a
Compare
I've resolved two issues: released preview 6 SDK does not have the compiler option rename NullableContext => Nullable, newer runtimes require a restore with Microsoft.NETCore.App.Host.{RID}.nupkg. The one remaining is that it seems like a different compiler is used for desktop apps? I see the following failures:
And they have the signature:
@NTaylorMullen can you take a look? I might be able to help out tomorrow if needed, but I'll let you take the first stab at it. |
Oh damn that's nuts. That means Roslyn inserted a different version into VS for preview6 than exists in the CLI. This is a non-starter for this release then. We don't want to move AspNetCore all the way up to using preview7 bits but that's what this PR would require for both repos. I'll postpone this until preview7 is released and we've moved both our repos to preview7. @JunTaoLuo Really appreciate your help looking into this, saved us from catastrophic failure 😉. |
Double check the Roslyn version in VS and CLI, I'm surprised that they inserted different versions. |
It's possible they inserted a preview7 flavor into VS; however, I do know they inserted it because we were exploding VS without their fix 😄 |
@NTaylorMullen - should this be closed? |
Nope, waiting for preview7 to be released and then for this repo to consume the preview7 sdk. |
- Verified the fix with VS16.2-preview2 + latest CLI with modified `Nullable` entry on disk - Updated tests. - Note: This change will not pass the build until we have a new CLI that has an updated Roslyn that understands `Nullable`. dotnet/aspnetcore#10218
679bcae
to
be0b794
Compare
- This is a temporary workaround until we're able to get on the latest SDK which includes the latest Roslyn bits. Without them we can't properly publish testapps in a standalone fashion without investing in temporary infrastructure.
23bdc9a
to
cff58c0
Compare
@@ -38,4 +38,26 @@ | |||
|
|||
<Import Project="After.Directory.Build.props" Condition="Exists('After.Directory.Build.props')" /> | |||
|
|||
<!-- | |||
NOTE, BELOW |
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.
@pranavkm This entire commit was the reason why the test apps weren't publishing/running properly.
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.
Why aren't these settings coming from /Directory.Build.targets and /eng/Versions.props -- at least indirectly? The Roslyn version there gets updated daily if there are new packages available.
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.
We don't have access to either of those when these apps are tested (they're published to a temp directory).
I could have written logic in the test project to harvest that info but it was a bit more complex than I felt was warranted given all of this is temporary. Once we get a preview 7 SDK I'll delete all of this.
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.
Please do not delete this logic or something that solves the problem without breaking automatic updates. The preview 7 SDK represents a temporary point of time when the Roslyn version aligns.
I'm wondering if this is a problem something in the AspNetCore repo has already solved in its test infrastructure. Probably worth asking around…
NOTE, BELOW | ||
|
||
These bits are a temporary workaround until we're able to get on the latest SDK which includes the latest Roslyn bits. | ||
Without them we can't properly publish testapps in a standalone fashion without investing in temporary infrastructure. |
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.
This shouldn't be a temporary fix. Should always test against the Roslyn version that will ship with the rest of the release.
The SDK isn't relevant in this case either. We have no plans to rev the .NET SDK faster than it is released. While a lot of our build infrastructure is about building and using what's coming in that release, the SDK itself has to stay back.
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.
Of course, this is blocking several repos though. Getting in this hack to unblock that.
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.
Filed an issue to track "doing the right thing": dotnet/aspnetcore#12268
Nullable
entry on diskNullable
.dotnet/aspnetcore#10218