Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade to .NET8 #1320

Open
4 of 7 tasks
josephmyers opened this issue May 10, 2024 · 3 comments
Open
4 of 7 tasks

Upgrade to .NET8 #1320

josephmyers opened this issue May 10, 2024 · 3 comments
Assignees

Comments

@josephmyers
Copy link
Collaborator

josephmyers commented May 10, 2024

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

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
Copy link
Collaborator Author

josephmyers commented May 17, 2024

What are the requirements for our longterm branching solution?

  • We want to continue to support Framework 4.6.1 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.
  • 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.1 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.1 master master framework branch -
Framework 4.8 - master framework branch framework branch
.NET8 - dotnet8 branch master master

Edit: there has been discussion regarding the desirability of upgrading and maintaining the Windows libraries. We are still working this part out.

@josephmyers
Copy link
Collaborator Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant