TASEmulators / TASEmulators/BizHawk
Problematic dependencies
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 2.8k
- Forks
- 468
- PR merge metrics
- No merged PRs in 30d
Description
If it wasn't obvious, these prevent us from moving to .NET 8 (see #1415).
-
FlatBuffers.Core -
GongShell -
Microsoft.VisualBasic -
Newtonsoft.Json- WIP: #3932
We have the option of replacing this withSystem.Text.Jsonat any time.- The more I learn about
Newtonsoft.Json, the more I think we should replace it as soon as possible. See docs supplement.
- The more I learn about
- As of 2021-07,
System.Text.Jsoncan use Source Generators instead of reflection. (But it could be simpler.)
-
NLua -
OpenTKreplaced in dev builds from https://github.com/TASEmulators/BizHawk/commit/78f5e755343d279f6c05821751f14cea021b7672 -
OpenTK.GLControlreplaced in dev builds from https://github.com/TASEmulators/BizHawk/commit/78f5e755343d279f6c05821751f14cea021b7672 -
SlimDXreplaced in dev builds from https://github.com/TASEmulators/BizHawk/commit/78f5e755343d279f6c05821751f14cea021b7672 -
System.Data.SQLitereplaced in dev builds from https://github.com/TASEmulators/BizHawk/commit/bb96825c60fbf6900bf5fd0ad20a6ea6360acfee -
System.Drawing.Commonpartially replaced in dev builds from https://github.com/TASEmulators/BizHawk/commit/7b644f771e4659a648de279fe56f61d60241ab8a—some more usages may be replaceable withMagick.NET, otherwise seeSystem.Windows.Forms -
System.Web System.Windows.Forms- We need to #4350 eventually. But if we want to leave that until after .NET 8, Linux will need to stay on .NET Framework and have separate "binaries" (it mostly does already). And be mindful of breaking changes in .NET Core WinForms.
- Per comments here we can't update Vortice because it dropped .NET Standard support.
- Yoshi has a fork which downgrades its
Vortice.Mathematicsdep and re-adds the target, and separately a fork of that library which copy-pastes a bunch of code from the BCL in order to re-add the target. Presumably the maintainer isn't interested in either approach.
- Yoshi has a fork which downgrades its
re: adopting existing libraries to replace our own code, Yoshi has some notes here. If there's enough interest in that you're welcome to open a tracking issue on GitHub instead.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the dependency list in this issue and the referenced lines in Directory.Packages.props, then review issue #3932 for the Newtonsoft.Json work. Compare the unchecked dependencies and linked .NET 8 constraints with the current repository state; done would require resolving or documenting the remaining blockers and updating this tracking issue.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- build-system
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100