-
Notifications
You must be signed in to change notification settings - Fork 183
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
Port MatterControl and dependencies to .NET 6 [$1,700] #5252
Comments
I'm just curious, but why .NET 5 and not .NET 6 (and MAUI)? |
@Glodigit you make a great point. Changing this issue to .NET 6. Using MAUI is a different set of issues. The most important of which is that all we need is a window hosing service (something GLFW can provide). All of MCs UI is rendered in app and we don't use any native controls. On top of that MAUI is still not available on LINUX so it would limit our distribution even if we wanted to take on the HUGE task of moving MC to native UI rendering (which I don't want). Thank you for the feedback and suggestion. |
Got this running on Win 10. All tests pass, except: the occasional unrelated UI timing issue (it seems), and some tests rely on the Local Library and Queue folders, which may be missing (I've marked these tests to be ignored for now). Also, .NET 6 has no AppDomains, so I kludged the test system to run some tests in a separate process. On the other hand, most UI tests now run in parallel. Builds and runs with OpenTK for .NET framework with warnings, but any incompatibilities will be shown at runtime. Can use https://www.nuget.org/packages/OpenTK.WinForms for .NET 6, but it's pre-release and has less configurability it seems. Both appear to work. I'll probably try out OpenTK.WinForms some more. Any preference? And is there anything else to add? |
The only thing that you didn't mention is GLFW working. You can add the attached matercontrol.json to your windows user folder and MC will run with the GLFW backend. Other than that it sounds like the right set of features. I'll check the failing tests after the PR. Thank you. |
GLFW appears to work for the main application, but it seems tests that don't use MatterControl's window fail because Agg UI has completely different handling when closing windows (compare And some tests fail because the automation doesn't inject the shift key properly for GLFW. Different handling again. So, nothing porting-specific so far. PR will probably happen on or after Monday. |
That sounds great |
Further testing: I think some "timing" issues were caused by the parallel UI tests fighting over platform window focus. I've added a OpenTK 4 appears to have a bug where the The test EDIT: Potential fix found. |
Two runs through the test suite with Open TK 4, no failures. For now. |
The keyboard input problem of OpenTK 4 GLControl seems to start with GLFW. GLFW always creates a new window, you can't attach to an existing window like OpenTK 3 does. So, Open TK 4 GLControl will have a child control that is not present in the Winforms UI hierarchy. Win32 calls are used in an attempt to prevent the control from taking focus. It's rather inelegant. The only advantage I see over using GLFW directly, is that you don't have to translate keys, when they work. |
Bumping the bounty for this to 1,700. |
Well, that's nice. It would be good if you can get around to the PRs at some point. Your updates are a moving target for both rebasing and testing. |
Yes, they're drafts right now. AppVeyor needs .NET 6 to even get anywhere. And I'm sure something will pop up after that. Will rebase soon. |
AppVeyor appears to be attempting to rebuild a bunch of Agg examples still on the .NET Framework. Those are not in the VS solution. Should I do anything about that? |
And for MatterControl, AppVeyor I've ran the command myself from https://docs.microsoft.com/en-us/nuget/consume-packages/install-use-packages-nuget-cli, and I get no errors. All I got were warnings for OpenTK 3. Is AppVeyor using an out of date tool? I can also publish from VS to a folder without problems.
AppVeyor using the wrong VS version? |
I will try and get this sorted out on AppVeyor tomorrow. |
The project 'agg-sharp/agg-sharp.sln' is what AppVeyor builds and it be able to run all the samples. Without parting this we would be breaking all the agg samples and that is not something I want to do. I don't know what the scope is to get the agg samples and demos working. I'm happy to help if it is a lot. |
Okay, what's the status here. Done your testing? |
Yes. This is now considered complete and we will get payment out to you first thing next week. Thank you for all the hard work. Along with you previous work you have really helped to make MatterControl a better project. We deeply appreciate your time and diligence. |
Same gmail address as before. |
Will do. I have let Mike know that he needs to pay this when he returns next week. |
Do you know how to attach the debugger while running tests? The new code does not allow me to set a breakpoint and it is very hard to debug what is happening with the disabled tests. |
Follow the steps in the original MatterControl PR. You need Microsoft's extension to enable child process debugging. And I've just determined that you need to disable Just My Code too. Or if you mean to attach to a test whilst it is running, then you attach to TestInvoker. |
This is quite a large project and requires extensive testing.
There is a $1,700 bounty on this issue.
Help spread the word by sharing this issue with potential developers:
View more bounty opportunities ($12,305 in total)
$2,604 paid to date
The text was updated successfully, but these errors were encountered: