Skip to content

Bump to mono/mono/2019-06@da1fa28#3159

Closed
jonpryor wants to merge 5 commits intomasterfrom
mono-2019-06-with-system-2019-02
Closed

Bump to mono/mono/2019-06@da1fa28#3159
jonpryor wants to merge 5 commits intomasterfrom
mono-2019-06-with-system-2019-02

Conversation

@jonpryor
Copy link
Copy Markdown
Contributor

@jonpryor jonpryor commented Jun 2, 2019

Context: #3155

The original attempt at bumping to mono/mono@da1fa28 is
failing largely because the updated system mono 6.4.0 won't build the
xamarin-android and Java.Interop repo's, seemingly because of new
issues within msbuild.

# within Java.Interop
make all V=1
...
Building target "GenerateBuildDependencyFile" completely.
Output file "/Users/jon/Dropbox/Developer/Java.Interop/bin/Debug/netstandard2.0/Java.Interop.deps.json" does not exist.
Using "GenerateDepsFile" task from assembly "/usr/local/share/dotnet/sdk/2.1.505/Sdks/Microsoft.NET.Sdk/targets/../tools/net46/Microsoft.NET.Build.Tasks.dll".
Task "GenerateDepsFile"
/usr/local/share/dotnet/sdk/2.1.505/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(129,5): error MSB4018: The "GenerateDepsFile" task failed unexpectedly.
/usr/local/share/dotnet/sdk/2.1.505/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(129,5): error MSB4018: System.MissingMethodException: Method not found: System.Collections.Generic.IList`1<NuGet.Packaging.Core.PackageDependency> NuGet.ProjectModel.LockFileTargetLibrary.get_Dependencies()
...

In an attempt to expedite the bump, or at minimum see what other
problems befall us, drop the system mono bump -- sticking with
mono 6.0.0.6 for builds -- and just bump the mono submodule. This
should allow the on-device tests to execute.

Context: #3155

The original attempt at bumping to mono/mono@da1fa28 is
failing largely because the updated system mono 6.4.0 won't build the
xamarin-android and Java.Interop repo's, seemingly because of new
[issues within msbuild][0].

	# within Java.Interop
	make all V=1
	...
	Building target "GenerateBuildDependencyFile" completely.
	Output file "/Users/jon/Dropbox/Developer/Java.Interop/bin/Debug/netstandard2.0/Java.Interop.deps.json" does not exist.
	Using "GenerateDepsFile" task from assembly "/usr/local/share/dotnet/sdk/2.1.505/Sdks/Microsoft.NET.Sdk/targets/../tools/net46/Microsoft.NET.Build.Tasks.dll".
	Task "GenerateDepsFile"
	/usr/local/share/dotnet/sdk/2.1.505/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(129,5): error MSB4018: The "GenerateDepsFile" task failed unexpectedly.
	/usr/local/share/dotnet/sdk/2.1.505/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(129,5): error MSB4018: System.MissingMethodException: Method not found: System.Collections.Generic.IList`1<NuGet.Packaging.Core.PackageDependency> NuGet.ProjectModel.LockFileTargetLibrary.get_Dependencies()
	...

In an attempt to expedite the bump, or at minimum see what other
problems befall us, *drop* the system mono bump -- sticking with
mono 6.0.0.6 for builds -- and *just* bump the mono submodule.  This
should allow the on-device tests to execute.

[0]: #3155 (comment)
@jonpryor jonpryor mentioned this pull request Jun 2, 2019
@jonpryor
Copy link
Copy Markdown
Contributor Author

jonpryor commented Jun 2, 2019

Didn't work: https://jenkins.mono-project.com/job/xamarin-android-pr-pipeline-release/1107/

Oddly, we get the ~same error building Cecil as we do in PR #3155:

Mono.Cecil/Consts.cs(3,15): error CS0518: Predefined type 'System.String' is not defined or imported

This doesn't immediately make sense to me. :-/

radekdoulik added a commit to radekdoulik/java.interop that referenced this pull request Jun 4, 2019
When trying to use newer mono in XA, we run into issues where cecil
(from mono repo) doesn't build anymore. Context:
dotnet/android#3159

Turned out we need to restore nuget packages for cecil before the
build to avoid errors like:

    Mono.Cecil/TypeSystem.cs(83,29): error CS0518: Predefined type 'System.Object' is not defined or imported [/Users/rodo/git/xa2/external/mono/external/cecil/Mono.Cecil.csproj]
    Mono.Cecil/TypeSystem.cs(83,4): error CS0518: Predefined type 'System.Void' is not defined or imported [/Users/rodo/git/xa2/external/mono/external/cecil/Mono.Cecil.csproj]
    Mono.Cecil/TypeSystem.cs(81,4): error CS0518: Predefined type 'System.Object' is not defined or imported [/Users/rodo/git/xa2/external/mono/external/cecil/Mono.Cecil.csproj]

      8 Warning(s)
      7700 Error(s)

Also grant access from `Mono.Cecil.[Mdb|Pdb]` assemblies to
`Mono.Cecil`. Looks like the access restrictions got tighter and so
CSC was complaining about the wrong key. It happens because the
original cecil key differ from our `product.snk` key, which we add in
our overrides and so access for `Mono.Cecil.[Mdb|Pdb]` granted by
original cecil `AssemblyInfo.cs` file is not valid anymore.

The error we were getting from CSC:

    CSC : error CS0281: Friend access was granted by 'Mono.Cecil, Version=0.11.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065', but the public key of the output assembly does not match that specified by the attribute in the granting assembly. [/Users/rodo/git/xa2/external/mono/external/cecil/symbols/mdb/Mono.Cecil.Mdb.csproj]
grendello pushed a commit to dotnet/java-interop that referenced this pull request Jun 4, 2019
When trying to use newer mono in XA, we run into issues where cecil
(from mono repo) doesn't build anymore. Context:
dotnet/android#3159

Turned out we need to restore nuget packages for cecil before the
build to avoid errors like:

    Mono.Cecil/TypeSystem.cs(83,29): error CS0518: Predefined type 'System.Object' is not defined or imported [/Users/rodo/git/xa2/external/mono/external/cecil/Mono.Cecil.csproj]
    Mono.Cecil/TypeSystem.cs(83,4): error CS0518: Predefined type 'System.Void' is not defined or imported [/Users/rodo/git/xa2/external/mono/external/cecil/Mono.Cecil.csproj]
    Mono.Cecil/TypeSystem.cs(81,4): error CS0518: Predefined type 'System.Object' is not defined or imported [/Users/rodo/git/xa2/external/mono/external/cecil/Mono.Cecil.csproj]

      8 Warning(s)
      7700 Error(s)

Also grant access from `Mono.Cecil.[Mdb|Pdb]` assemblies to
`Mono.Cecil`. Looks like the access restrictions got tighter and so
CSC was complaining about the wrong key. It happens because the
original cecil key differ from our `product.snk` key, which we add in
our overrides and so access for `Mono.Cecil.[Mdb|Pdb]` granted by
original cecil `AssemblyInfo.cs` file is not valid anymore.

The error we were getting from CSC:

    CSC : error CS0281: Friend access was granted by 'Mono.Cecil, Version=0.11.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065', but the public key of the output assembly does not match that specified by the attribute in the granting assembly. [/Users/rodo/git/xa2/external/mono/external/cecil/symbols/mdb/Mono.Cecil.Mdb.csproj]
@jonpryor jonpryor requested a review from grendello as a code owner June 4, 2019 19:57
@jonpryor
Copy link
Copy Markdown
Contributor Author

jonpryor commented Jun 7, 2019

Closing as this avenue of investigation didn't pan out. Let's stick with PR #3155.

@jonpryor jonpryor closed this Jun 7, 2019
@jpobst jpobst deleted the mono-2019-06-with-system-2019-02 branch March 8, 2021 17:03
@github-actions github-actions bot locked and limited conversation to collaborators Jan 30, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants