-
-
Notifications
You must be signed in to change notification settings - Fork 26
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
Net6launch #297
Net6launch #297
Conversation
This reverts commit 14bf423.
This reverts commit 57ab2ec.
Seeing what happens when the hgrc always points to ChorusMerge.exe over the script. Based on the comment, it would appear chorusmerge was only necessary for Mono. It would be really nice to be able to eliminate that extra piece from the equation, but it's near impossible to test without pushing packages to Nuget. Also not clear is why the hgrc is even using the chorusmerge script, when that set lies in IsMono code. Is Platform.IsMono true when on .NET6?
currently run conditions are still master or manual run
This is an effort to reproduce the chorusmerge script failure on .NET6. The script may be being called by LfMerge, but something about the ChorusMerge executable has changed between Framework and .NET6. It could be a pathing issue. I noticed that when I mangled the executable name in the hgrc, the "hg merge" command failed silently, as it does in production. Now, I seem to remember verifying chorusmerge wasn't even being launched in the lfmerge container. However, with the changes in ExecutionEnvironment, we don't use chorusmerge in the first place, which would be a great improvement if it's possible. Sending this to the other computer, since this one's WSL is hosed.
This is required on .NET6 to prevent an exception.
However, instead of triggering off of Platform.IsMono, we trigger off of Platform.IsLinux. It's not Mono that makes the script required, at least apparently. hg isn't able to launch the .exe directly on Linux. Someone with more Linux experience may be able to configure it to do so, but for the current effort I'm re-integrating the chorusmerge script.
is this the easiest way to test linux? ugh
Test Results 10 files + 2 443 suites +204 1h 26m 28s ⏱️ + 40m 49s Results for commit 37e6d0b. ± Comparison against base commit 9549415. This pull request skips 1 test.
♻️ This comment has been updated with latest results. |
Got the test failure I was expecting. The test chorusmerge is being called. This is different from how I remember production behaving. I wasn't able to verify chorusmerge is being called in the production environment. But there could've been something else going on.
Plus better print statements for the test chorusmerge
With .IsMono, the test, according to the output statements, is failing like the production environment. So that's a good step
dotnet run is not working, which is what's in the production code
trying to get dotnet pack to increment. when it's the same name/version, something in the process causes it to be ignored, even though the output dll's are different
One note: System.Diagnostics.Debug no longer exists in .NET Core. System.Diagnostics.Trace is more or less equivalent for the purposes of the test using it. We'll see how the build server responds.
Also only running the corresponding tests on Framework. Technically, this does leave a coverage gap for .NET/Windows.
…eption on Linux/.NET6
It's certainly possible this actually specific to Mono, but I think it in fact applies to Linux as a whole, and the previous was a slight oversight. We'll see what the build server thinks.
MergeConflictEmbeddedMessageContentHandler is dependent on WinForms, and as such we shouldn't expect it to be present on .NET6 builds. The Platform("Net-4.0") indicates a run on Windows/net461 and Linux/mono/net461.
This test is supposed to be skipped on the build server. Clearly it is not. Ugh.
it's hanging. maybe due to net6?
super confused. latest changes from develop are breaking on this branch
I'm not sure what's going with the latest changes to dotnet.yml, but they're causing the windows tests (net461) to hang. Before, the command was Here's a snippet from a test run without
But with it, it hangs after Unfortunately, removing |
Do you know which tests hang? Did you try to ignore (for the purpose of tracking down the problem) the new |
Even with a diagnostic test run, the current test being run isn't printed (lol), but I figured it out and have the fix pushed. It was related to some Encoding call required for .NET6 but breaking for Framework. The tests take longer to finish, now that we're running LibChorus on .NET6 as well. I think it's worth it, but I'm open to whatever. |
var encryptedData = ProtectedData.Protect(Encoding.Unicode.GetBytes(encryptMe), Encoding.Unicode.GetBytes(EntropyValue), DataProtectionScope.CurrentUser); | ||
|
||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux) && | ||
!RuntimeInformation.FrameworkDescription.Contains("Framework")) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This doesn't work when testing on my local machine. When running with Mono RuntimeInformation.FrameworkDescription
returns Mono 6.12.0.182 (tarball Tue Jun 14 22:35:00 UTC 2022)
.
When running the net6.0 tests in Rider things don't work either. I created a libpalaso PR (sillsdev/libpalaso#1227) that makes things behave correctly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, I'm unable to see this on my Linux box. Should I replace Framework with something? Maybe Mono? Do I need another condition? Or I could try deleting it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What command are you using to run with Mono? It's quite possible I'm not using the right thing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I reverted this code. It's unrelated to the core bug, which was just Platform.IsMono -> .IsLinux, and created a separate issue for it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was stepping through the net461 tests in the debugger in Rider on Ubuntu 22.04.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok. Yeah I have less of a pure Linux environment, being on WSL, so I trust your PC more than mine
I noticed they weren't running on the build server, and we have precedent for the Mono keyword on other Platform attributes.
This change is![Reviewable](https://camo.githubusercontent.com/1541c4039185914e83657d3683ec25920c672c6c5c7ab4240ee7bff601adec0b/68747470733a2f2f72657669657761626c652e696f2f7265766965775f627574746f6e2e737667)