Skip to content

Conversation

@luhenry
Copy link
Contributor

@luhenry luhenry commented Mar 29, 2018

No description provided.

@luhenry luhenry added the full-mono-integration-build For PRs; run a full build (~6-10h for mono bumps), not the faster PR subset (~2h for mono bumps) label Mar 29, 2018
@luhenry luhenry assigned jonpryor and grendello and unassigned jonpryor and grendello Mar 29, 2018
@luhenry luhenry requested review from grendello and jonpryor March 29, 2018 19:55
@luhenry luhenry force-pushed the master branch 3 times, most recently from bce69ed to efe395e Compare March 30, 2018 14:51
Copy link
Contributor

@grendello grendello left a comment

Choose a reason for hiding this comment

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

The macOS build reports an ABI breakage in mscorlib - we must be sure it's expected before merging this.

akoeplinger pushed a commit to akoeplinger/xamarin-android that referenced this pull request Apr 4, 2018
Commit 9d131af introduced a [unit test failure][m573] on
xamarin-android/master:

[m573]: https://jenkins.mono-project.com/view/Xamarin.Android/job/xamarin-android/573/

	Xamarin.Android.Build.Tests.BuildTest.XA4212
	Expected: String containing "warning XA4"
	 But was: <log file contents...>

Aside: The XA4212 test creates a project with a bad `IJavaObject`
type, builds the project -- which triggers an XA4212 error, which *is*
observed in the unit test -- then *rebuilds* the project, but this
time with `$(AndroidErrorOnCustomJavaObject)`=False.

The intention is that the second build should instead elicit an XA4212
*warning*, but otherwise continue just fine.

What's interesting about the log file contents is that it shows that
the `<GenerateJavaStubs/>` task isn't executed *at all*, but it's the
`<GenerateJavaStubs/>` task which is supposed to emit the warning!

	Skipping target "_GenerateJavaStubs" because its outputs are up-to-date.

Update the `<GenerateJavaStubs/>` task so that if it errors out, it
*removes* any `<GenerateJavaStubs/>` output files. This will ensure
that on subsequent builds, the `_GenerateJavaStubs` target won't be
inadvertently skipped.

(This issue *should* have been caught during the
[**macOS+xbuild PR builder** build for PR dotnet#797][pr1491]. It *wasn't*,
because the `Xamarin.Android.Build.Tests` tests weren't reported. For
example, PR dotnet#1491 ran 869 tests, while PR dotnet#1492 ran 1085! I'm not sure
what can be done to better detect and prevent this in the future.)

[pr1491]: https://jenkins.mono-project.com/view/Xamarin.Android/job/xamarin-android-pr-builder/1491/
LLVM would fail to build on Linux because it would try to compile with a --host finishing with "apple-darwin10". The fix consist in testing if we are currently building on macOS (apple-darwin10) or Linux (linux-gnu).

We also make sure to pass to the Mono SDKs the path to `external/llvm`, thus avoiding cloning it again in `external/mono/sdks/builds/toolchains/llvm`.
@luhenry luhenry dismissed grendello’s stale review April 5, 2018 15:09

The API breakage cannot be due to this PR anymore. Dismissing as stale.

@atsushieno atsushieno merged commit 90805bd into dotnet:master Apr 5, 2018
atsushieno added a commit to atsushieno/xamarin-android-api-compatibility that referenced this pull request Apr 6, 2018
dotnet/android#1492 brought in the latest
mscorlib API which causes API regression. It is reportedly anticipated.
(See comments on the PR.)
jonpryor pushed a commit to xamarin/xamarin-android-api-compatibility that referenced this pull request Apr 9, 2018
Context: https://jenkins.mono-project.com/view/Xamarin.Android/job/xamarin-android/940/API_Compatibility_Checks/
Context: dotnet/android@90805bd
Context: dotnet/android#1492

xamarin-android bumped to mono/2017-12/82306753, which resulted in
many reported API removals:

	<h3>Type Changed: System.Memory`1</h3>
	<p>Removed method:</p>
	<pre>
	  <span class='removed removed-method breaking' data-is-breaking>public Buffers.MemoryHandle Retain (bool);</span>
	</pre>

	<h3>Type Changed: System.ReadOnlyMemory`1</h3>
	<p>Removed method:</p>
	<pre>
	  <span class='removed removed-method breaking' data-is-breaking>public Buffers.MemoryHandle Retain (bool);</span>
	</pre>

	<h3>Removed Type <span class='breaking' data-is-breaking>System.MemoryExtensions</span></h3>
	...

This breakage [is expected][0]:

[0]: https://gitter.im/xamarin/xamarin-android?at=5ac398ee270d7d37088b2da2

> the api diff is expected, we had to pull some API out as corefx
> folks didn't finish it on time (the types were new in dev15-7)

Update `reference/mscorlib.xml` so that these removed members no
longer report any errors.
@github-actions github-actions bot locked and limited conversation to collaborators Feb 2, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

full-mono-integration-build For PRs; run a full build (~6-10h for mono bumps), not the faster PR subset (~2h for mono bumps)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants