Upgrade to .NET8
- [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
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.)
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 |
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.