libpalaso icon indicating copy to clipboard operation
libpalaso copied to clipboard

Upgrade to .NET8

Open josephmyers opened this issue 1 year ago • 3 comments

  • [x] Research if there are references to L10nSharp in any non-winforms projects
  • [x] Develop longterm branching strategy and roadmap, including nuget publishing for supported frameworks
  • [x] Replace TC with GHA builds
  • [ ] Replace AppVeyor with GHA builds
  • [x] Upgrade all projects to Framework 4.8
  • [x] Add .NET8 tests for cross-platform libraries
  • [ ] Upgrade WinForms projects to .NET8-Windows
  • [ ] Add support for NRT

josephmyers avatar May 10 '24 09:05 josephmyers

Good news. Libpalaso only has WinForms projects using L10nSharp. (This excludes the l10n.proj, which I believe is the build step that pulls the localized strings from Crowdin. We will of course need to consider this when moving to GHA.)

josephmyers avatar May 17 '24 04:05 josephmyers

What are the requirements for our longterm branching solution?

  • We want to continue to support Framework ~~4.6.1~~4.6.2 in the short term while making it as easy as possible for application consumers to upgrade to Framework 4.8 and .Net 8.
  • Adding Framework 4.8 to our list of targets would be a good secondary framework we need to support, for applications that need to stay on Framework.
  • Moving forward, we only want to support the Windows OS for legacy Framework applications. ~~Our long-term goal is to upgrade all non-WinForms libraries to .Net 8 so that they can be used in cross-platform applications.~~ It does appear desirable to move our applications from Framework to .NET8-Windows, however slowly.
  • From a packaging standpoint, it is possible to publish to the same Nuget ID from multiple branches. We can further specify the source in the package version, which by default includes the branch name. We would enable Nuget publishing from the secondary branch.

Cross-platform roadmap OS Support: Windows, Linux (.NET8)

Current Phase 1 Phase 2 Phase 3
Framework 4.6.2 master master master -
Framework 4.8 - master master master
.NET Standard 2.0 master (partial) master master master
.NET8 (tests only) - master master master

Winforms roadmap OS Support: Windows

Current Phase 1 Phase 2 Phase 3
Framework 4.6.2 master master framework branch -
Framework 4.8 - master framework branch framework branch
.NET8-Windows - master? master master

josephmyers avatar May 17 '24 07:05 josephmyers

SIL.DictionaryServices needs to have netstandard2.0 support added. All other libpalaso shared libraries (non-WinForms) already support it. We do need to rename SIL.Media to SIL.Windows.Forms.Media.

This is overall good news. It means the brunt of the work will be at the "application" level.

josephmyers avatar May 20 '24 06:05 josephmyers