dotnet / interactive

.NET Interactive combines the power of .NET with many other languages to create notebooks, REPLs, and embedded coding experiences. Share code, explore data, write, and learn across your apps in ways you couldn't before.
MIT License
2.91k stars 389 forks source link

MissingMethodException when loading an extension built with older versions of Microsoft.Dotnet.Interactive. #2357

Open ericstj opened 2 years ago

ericstj commented 2 years ago

Describe the bug

MissingMethodException when loading an extension built with older versions of Microsoft.Dotnet.Interactive.

See https://github.com/dotnet/machinelearning/issues/6381

This change https://github.com/dotnet/interactive/commit/8dde5d88e859b3919614a6ebcdc981259ac6ffa7 made a binary breaking change by dropping a public method from Microsoft.Dotnet.Interactive.

Instead of removing the public method, you could leave it, add an obsolete attribute, then implement it to just call the instance method. This will make the change only source breaking and not binary breaking. This technique was previously used in https://github.com/dotnet/interactive/commit/951467a971db3b7385ec112c4a6ee5043a4e453b.

brettfo commented 2 years ago

Our APIs are currently in preview so some breaking changes are likely to occur, but we'd be interested in seeing the methods you're expecting to see so that we can better understand what our customers are using.