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

[Ready] Provide full fidelity of build options in Xamarin helpers #1702

Merged
merged 7 commits into from
Oct 22, 2017

Conversation

kentcb
Copy link
Contributor

@kentcb kentcb commented Oct 5, 2017

This PR adds full fidelity of build options to the Xamarin helpers. In other words, any relevant options available in MSBuildParams are now available in both iOSBuildParams and AndroidBuildParams. As an example of why this is useful, I am trying to use binary loggers for all my build pipelines, including Android and iOS builds. This will allow me to do so.

  • Tidy up warning messages
  • Test a full build on both Android and iOS
  • Port to netcore per guidance

@kentcb kentcb changed the title [WIP] Provide full fidelity of build options in Xamarin helpers [Ready] Provide full fidelity of build options in Xamarin helpers Oct 9, 2017
@matthid
Copy link
Member

matthid commented Oct 15, 2017

To be usable in the new FAKE 5 the module needs to be ported to netcore. We have documentation around this here. Let me know if you need help there.

@matthid matthid added Fake 5 module required waiting for author Some information or action was requested and it needs to be addressed. Or a response from author labels Oct 15, 2017
@kentcb
Copy link
Contributor Author

kentcb commented Oct 15, 2017

@matthid yeah, I'm struggling with the netcore migration a bit. I don't really know F#, so it's likely something simple. If you could take a look, that would be 💯

Basically, I followed the guidance as best I could, but there are two things I couldn't complete:

  1. Running build.cmd on my machine just fails - something to do with GitHub. So I can't really validate that side of things works.
  2. I wasn't sure how to obsolete the old module. Sounds silly, but by following the instructions the old module is no longer actually part of the source tree, so I don't really understand how this part works.

@matthid matthid added help wanted and removed waiting for author Some information or action was requested and it needs to be addressed. Or a response from author Fake 5 module required help wanted labels Oct 16, 2017
@matthid
Copy link
Member

matthid commented Oct 16, 2017

I think the only thing missing is to add the new module to the netcore solution file and to make it compile. Otherwise it looks good.

Marking as Obsolete just means adding [<System.Obsolete("Where is the new module/User guideance")>] to all members/functions/types of the old file (as we now have the code basically duplicated)

@kentcb
Copy link
Contributor Author

kentcb commented Oct 17, 2017

@matthid making some progress on this, but confused why the netcore project files are multitargeting both NS1.6 and NS2.0. Shouldn't it just be one or the other?

1.6 is causing me headaches because the existing code uses XmlTextWriter, which is part of 2.0 but not 1.6.

@matthid
Copy link
Member

matthid commented Oct 17, 2017

Yes having only netstandard20 is fine. We have netstandard16 because once we had that we didn't throw it away and another goal of FAKE 5 is to make the modules available in regular code more easily (so it makes sense for modules to support more frameworks than fake5 needs).

Also feel free to extend the contribution guide with that fact as others might come across similar situations as well.

@kentcb
Copy link
Contributor Author

kentcb commented Oct 17, 2017

so it makes sense for modules to support more frameworks than fake5 needs

Agreed, targeting lowest netstandard possible makes sense, but targeting multiple does not. By virtue of building for 1.6, the library can be consumed on a 2.0 platform.

Anyway, I've removed 1.6 from the Xamarin project. Hoping this build currently in progress is a winner.

@matthid
Copy link
Member

matthid commented Oct 17, 2017

In theory you are correct in practice having 20 in addition can lower the number or required dependencies for the consuming project...

@kentcb
Copy link
Contributor Author

kentcb commented Oct 17, 2017

@matthid er, hmm, travis build failed but doesn't appear related to my changes....?

@kentcb kentcb force-pushed the xamarin-build-options-full-fidelity branch from bbbe0f5 to 93bb007 Compare October 17, 2017 22:55
@kentcb
Copy link
Contributor Author

kentcb commented Oct 17, 2017

I tried to force a rebuild, but it has failed just the same. Maybe it is something I've done....?

@matthid
Copy link
Member

matthid commented Oct 18, 2017

I have seen similar errors when the fake-netcore.sln file is invalid. Did you edit via 'dotnet sln fake-netcore.sln add newproj.fsproj' or by hand?

@kentcb
Copy link
Contributor Author

kentcb commented Oct 18, 2017

I did it with VS. I'll review the file changes ASAP.

@kentcb
Copy link
Contributor Author

kentcb commented Oct 18, 2017

💥 Hopefully all good now, @matthid

@matthid matthid merged commit 4edffdd into fsprojects:master Oct 22, 2017
@matthid matthid mentioned this pull request Jan 14, 2018
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants