Update Ix.NET for .NET 8.0 sdk by idg10 · Pull Request #2135 · dotnet/reactive (original) (raw)
added 14 commits
The code generating the IQ-space versions of interfaces and operators in both Rx and Ix were written before nullability was added to C#. It appears that the workaround for this was to manually modify the generated files and then avoid ever running the generators again.
Unfortunately, the .NET 8.0 SDK was detecting errors in the generated code. Rather than repeat the cycle of patching this up manually again, I decided to fix the generator to be nullable-aware. This is a bit of a hack because we don't do a thorough job of processing nullability attributes (which is surprisingly difficult as a result of nullability not really being part of .NET's type system), but it works for the types we actually need to process.
This has also detected a couple of mistakes in the manual edits to the generator code.
Removed old NO_ARRAY_EMPTY conditional sections as no build targets now set that.
Remove use of MSBuild.Sdk.Extras
Reinstate netcoreapp3.1 target so that we test the netstandard2.1 build.
As far as it was possible to tell, the only thing we were using MSBuild.Sdk.Extras for was to associate reference assembly projects with their corresponding main projects. This was what was breaking the build, and it doesn't seem to be necessary. The .NET Runtime Library source code just has a "ref" folder each functionality area (and Ix would effectively be a whole area in itself) and for each real csproj, there's another in this folder with the same name set up to build the references.
The main thing MSBuild.Sdk.Extras seemed to be trying to do was automatically build the reference assemblies for us (which is what broke. Since the main CI build seems to go out of its way to avoid publishing the reference assemblies, it seems that nothing is using them anyway.
Also:
- Replace erroneous net4.8 TFM with net48
- Move
Necessary now that we can't rely on MSBuild.Extras.SDK
Apparently the configuration setting works only for things like pack, not build!
idg10 marked this pull request as ready for review
idg10 mentioned this pull request
idg10 deleted the feature/ix-sdk-80-fixes branch
idg10 mentioned this pull request
idg10 added a commit that referenced this pull request
- Make Ix homoiconicity generator nullable-aware
- Upgrade ApiCompare and Playground to .NET 8.0
- Fix diagnostics
- Removed old NO_ARRAY_EMPTY conditional sections as no build targets now set that
- Add .NET 8.0 targets for test projects
- Add readme explaining use of .NET Core 3.1 in tests
- Remove use of MSBuild.Sdk.Extras and step to build refs explicitly
- Replace erroneous net4.8 TFM with net48 in reference assemblies
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
[ Show hidden characters]({{ revealButtonHref }})