Update Ix.NET for .NET 8.0 sdk by idg10 · Pull Request #2135 · dotnet/reactive (original) (raw)

added 14 commits

June 28, 2024 10:31

@idg10

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.

@idg10

@idg10

@idg10

@idg10

@idg10

Removed old NO_ARRAY_EMPTY conditional sections as no build targets now set that.

Remove use of MSBuild.Sdk.Extras

@idg10

@idg10

@idg10

@idg10

@idg10

Reinstate netcoreapp3.1 target so that we test the netstandard2.1 build.

@idg10

@idg10

@idg10

@idg10

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:

HowardvanRooijen

@idg10

@idg10

Necessary now that we can't rely on MSBuild.Extras.SDK

@idg10

@idg10

@idg10

@idg10

Apparently the configuration setting works only for things like pack, not build!

@idg10

@idg10 idg10 marked this pull request as ready for review

July 4, 2024 05:24

HowardvanRooijen

@idg10 idg10 mentioned this pull request

Jul 4, 2024

@idg10

HowardvanRooijen

@idg10 idg10 deleted the feature/ix-sdk-80-fixes branch

July 5, 2024 08:20

@idg10 idg10 mentioned this pull request

Jul 17, 2024

idg10 added a commit that referenced this pull request

Jun 10, 2025

@idg10

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 }})