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
Fighting with build issues and dependency hell #437
Conversation
43d38a2
to
ed60358
Compare
ed60358
to
f433890
Compare
Wow. Thanks for the PR and feeback, but this one will be tough one due to the complexity
You did good job (in general) 😄
I have to. 😄
Nice.
You did not miss anything. We are (I am) aware of the issues, but time is not on my side. Some comments:
Thanks a lot for your effort cheers |
Yeah, I underestimated the complexity of building this project in the beginning. I thought I'd make a boring little PR where I'd correct a couple of warnings😄 So please treat this PR as a work in progress. I marked it as draft. I'll create separate PRs when I have some spare time (and no dependency sorting, I get it). |
@mmarinchenko Thanks a lot. Take your time |
You're welcome! I separated this PR to 3 logically coupled ones (with your comments in mind):
Please note that each of them is based on |
@moljac this PR with 3 child ones from the above #437 (comment) is quite outdated. Does it make sense to leave them open? |
This PR is likely outdated and no longer relevant. |
This is my first PR to Xamarin project so I might be doing wrong many of the following. Review carefully.
I ran into some issues while trying to build the project for the first time. This PR contains changes which I made while trying to improve build experience and subsequent maintenance. I didn't edit any of the
Metadata.xml
files within this PR (except for one that contained the only singles
character inside).If I missed something please provide me with instructions on how I can complete these changes or perform additional testing.
build.cake
java
executable in thePATH
anymore.JAVA_HOME/bin/java
is used to generate javadocs.nuget
executable in thePATH
or installNuGet.CommandLine
addin anymore.MSBuild
is always used to restore projects.MSBuild
is always uses specifiedMAX_CPU_COUNT
now.Dependencies
This is a tough one. Initially I noticed warnings NU1603 and NU1605 in the build log. I started solving them one by one and realized that the situation is much worse than I expected.
Eventually I sorted all dependencies by
nugetId
in almost every file throughout the repository, bumped their versions to highest stable and compatible ones (with few exceptions likemonodroid90
) and eliminated unnecessary duplicates. In files with long dependency lists (likeconfig.json
orDirectory.Build.targets
) I also left a comment in the end:The downside of these changes is that they are difficult to review manually. I'm sorry. But the build itself completes successfully (at least on my Windows machine).
Other changes
Firebase-Iid.csproj
. I deleted it.generated.targets
was incorrect inGooglePlayServices.Tests.csproj
.<NoWarn>
tags were filled incorrectly inGooglePlayServicesProject.cshtml
(I also addedBG8A01
toBG8A00
andBG8A04
).