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

[mtouch/mmp] Build and run mtouch and mmp using dotnet. #8461

Closed
wants to merge 8 commits into from

Conversation

rolfbjarne
Copy link
Member

Compatibility: these tools now require dotnet 3.1 (or later) to be installed
before they'll work.

There are a few seemingly unrelated changes: these were required because some
of the tests would fail otherwise.

Referencing the dotnet-built mmp.dll from a non-dotnet-built mmptest doesn't
work, so upgrade mmptest to use dotnet.
…lling pkg-config.

It seems either our testing framework or dotnet can set it, and it confuses pkg-config.
…le if it exists.

The copyfile method does not like copying files over an existing file, and
sometimes it may end up showing an error.
@rolfbjarne rolfbjarne added the note-highlight Worth calling out specifically in release notes label Apr 27, 2020
@rolfbjarne
Copy link
Member Author

It might be possible to not require dotnet, by using the system mono and something like this in the bin script:

...
# Run with mono if we can find mono.
if type mono >/dev/null 2>&1; then
	echo Using mono
	exec mono $MONO_OPTIONS "$MONOTOUCH_PREFIX/lib/mtouch/mtouch.dll" "$@"
else
	echo Using dotnet
	exec "$MONOTOUCH_PREFIX/lib/mtouch/mtouch" "$@"
fi

@spouliot
Copy link
Contributor

@rolfbjarne it then becomes a testing issue, each runtime with a range of versions :(

Right now we still need mono for what ? cil-strip comes to mind

@monojenkins
Copy link
Collaborator

Build failure
Build succeeded
API Diff (from stable)
API Diff (from PR only) (no change)
Generator Diff (no change)
🔥 Test run failed 🔥

Test results

5 tests failed, 84 tests passed.

Failed tests

  • monotouch-test/iOS Unified 64-bits - simulator/Debug: TimedOut
  • monotouch-test/iOS Unified 64-bits - simulator/Debug (LinkSdk): TimedOut
  • monotouch-test/iOS Unified 64-bits - simulator/Debug (static registrar): TimedOut
  • monotouch-test/iOS Unified 64-bits - simulator/Release (all optimizations): TimedOut
  • mmptest/macOS/Debug: TimedOut (Execution timed out after 120 minutes.)

@rolfbjarne
Copy link
Member Author

build

@monojenkins
Copy link
Collaborator

Build failure
Build succeeded
API Diff (from stable)
API Diff (from PR only) (no change)
Generator Diff (no change)
🔥 Test run failed 🔥

Test results

1 tests failed, 88 tests passed.

Failed tests

  • mmptest/macOS/Debug: Failed (Execution failed with exit code 1)

… of modifying 'BuildDependsOn'.

The dotnet build logic will re-overwrite 'BuildDependsOn' and remove our
changes, so try a more reliable way instead.
@akoeplinger
Copy link
Member

Did you look at multi-targetting the tools and only using the netcore version for .net 5?

@monojenkins
Copy link
Collaborator

Build success
Build succeeded
API Diff (from stable)
API Diff (from PR only) (no change)
Generator Diff (no change)
Test run succeeded

Copy link
Member

@mandel-macaque mandel-macaque left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rolfbjarne making me work ;)

@@ -88,7 +89,18 @@ public async Task CreateCopyAsync (ITestTask test = null)
doc.SetNode ("DocumentationFile", "bin\\$(Configuration)\\nunitlite.xml");
}
doc.ResolveAllPaths (original_path);

if (doc.IsDotNetProject ()) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll have to move this to dotnet/xharness, created an issue not to forget: dotnet/xharness#128

@@ -195,7 +195,7 @@ public static void SetIntermediateOutputPath (this XmlDocument csproj, string va
// Make sure there's a top-level version too.
var property_group = csproj.SelectSingleNode("/*/*[local-name() = 'PropertyGroup' and not(@Condition)]");

var intermediateOutputPath = csproj.CreateElement ("IntermediateOutputPath", MSBuild_Namespace);
var intermediateOutputPath = csproj.CreateElement ("IntermediateOutputPath", csproj.GetNamespace ());
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same, issue: dotnet/xharness#128

@rolfbjarne
Copy link
Member Author

Closing, this will probably be done a bit differently in the end.

@rolfbjarne rolfbjarne closed this Jun 12, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
note-highlight Worth calling out specifically in release notes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants