NSubstitute icon indicating copy to clipboard operation
NSubstitute copied to clipboard

NSubstitute 6.0.0 roadmap proposal

Open Romfos opened this issue 1 year ago • 9 comments

I propose to implement changes in following areas for the next major release:

Infrastructure:

  • [x] Update tfm list: net8.0 + netstandard2.0 (https://github.com/nsubstitute/NSubstitute/pull/831)
  • [x] Drop EOL .NET 6 and .NET 7 from test matrix (https://github.com/nsubstitute/NSubstitute/pull/831)
  • [x] Migrate to slnx (https://github.com/nsubstitute/NSubstitute/pull/882)
  • [x] https://github.com/nsubstitute/NSubstitute/pull/896

Update dependencies:

  • [x] https://github.com/nsubstitute/NSubstitute/pull/885
  • [ ] https://github.com/nsubstitute/NSubstitute/pull/870

.NET 9/10 support:

  • [x] Migrate to .NET 9 sdk and C# 13 (https://github.com/nsubstitute/NSubstitute/pull/848#)
  • [x] Add .NET 9 to test matrix (https://github.com/nsubstitute/NSubstitute/pull/848#)
  • [x] Add .NET 10 to test matrix (https://github.com/nsubstitute/NSubstitute/pull/913)

Migrate from build "project" to .NET cli + GitHub actions

  • [x] Release workflow https://github.com/nsubstitute/NSubstitute/pull/797
  • [x] Migrate to dotnet pack https://github.com/nsubstitute/NSubstitute/pull/838
  • [x] https://github.com/nsubstitute/NSubstitute/pull/911

Code cleanup:

  • [x] remove already obsolete methods\classes these were obsolete for years (https://github.com/nsubstitute/NSubstitute/pull/831)
  • [x] Mark as obsolete some old classes\methods for "compatibility" with C# pre 7.0 and older versions (https://github.com/nsubstitute/NSubstitute/pull/831)
  • [x] Remove NUnit.Framework.Legacy from tests (https://github.com/nsubstitute/NSubstitute/pull/889)

Public api changes:

  • [x] Remove #nullable disable annotations from code base and enable NRE for public api (https://github.com/nsubstitute/NSubstitute/pull/856)
  • [ ] ~~Make sealed all classes that could be sealed~~ (https://github.com/nsubstitute/NSubstitute/pull/869)
  • [ ] ~~Make internal all classes that could be internal~~ (https://github.com/nsubstitute/NSubstitute/pull/869)
  • [ ] ~~Move most of core types to internal namespace~~ (https://github.com/nsubstitute/NSubstitute/pull/880)
  • [x] Make public api and tests the same for all TFMs (https://github.com/nsubstitute/NSubstitute/pull/885)

Documentation:

  • [x] Migrate documentation to docfx and remove ruby dependency (https://github.com/nsubstitute/NSubstitute/pull/850)
  • [x] Migrate from build.fsproj to Roslyn code generation for documentation validation (https://github.com/nsubstitute/NSubstitute/pull/883)
  • [x] Update documentation samples to NUnit4 (https://github.com/nsubstitute/NSubstitute/pull/889)

Bugs:

  • [x] https://github.com/nsubstitute/NSubstitute/issues/884 (https://github.com/nsubstitute/NSubstitute/pull/886)

cc @dtchepak @alexandrnikitin @tpodolak

Romfos avatar Sep 08 '24 20:09 Romfos