dotnet / machinelearning

ML.NET is an open source and cross-platform machine learning framework for .NET.
https://dot.net/ml
MIT License
8.91k stars 1.86k forks source link

Make ML.NET tests target net8.0 and net9.0 instead of net6.0 #7097

Open ericstj opened 3 months ago

ericstj commented 3 months ago

This is a portion of the work from https://github.com/dotnet/machinelearning/pull/6749

This moves the tests forward to net8.0, and cleans up RemoteExecutor (which I noticed in @tarekgh's PR).

I minimized the product changes so as to not break compat (thought CPU math is changing it's TFM based on net6.0 going OOS by Nov).

Where possible I tried to use NetMinimum and NetCurrent to make this easier next time.

I'm not thrilled about all the TFM duplication in the PR pipeline. I think we should clean that up in a follow-up PR though.

ericstj commented 3 months ago

I may go ahead and do the refactoring of the build pipeline to stop passing in the test TFM. That's a bit of a hack and it's what's causing one set of the failures here.

ericstj commented 3 months ago

Ok, I rewrote how we compose the test payloads. This makes this more distributed and will give tests the ability to control this in the project and targets - and removes that complexity from the pipeline.

ericstj commented 3 months ago

Getting closer here. Most remaining failures are on Arm and need unique baseline updates. I'm thinking to add a test script used by the tests that copies any outputs on failure (to aide in updating baselines). This will also let me fix the double reporting of failures.