Open isaacabraham opened 7 months ago
The code is much nicer (apart from the hideous "paralle" (sic.) keyword :joy:) - what happens for each target is so much clearer.
Is the running of other targets being different syntax an issue and/or can we consider looking at PR to library to make it work as it is currently?
@martinbryant you mean compared to FAKE? It's not a problem so long as it's clearly documented. The code comments make that clear, but updating the README would help too.
For me the colours aren't a dealbreaker, and I'd consider releasing the template without colours but, as you say, a PR to Fun.Build would make sense.
Reasons not to include this in SAFE v5.0.0 (but consider for v5.1.0):
Reasons to prefer FAKE anyway:
@mattgallagher92 I agree - let's keep this PR going for post v5.0. FAKE - I'm unsure how many people are actively contributing to it nowadays TBH.
Remember that we can still use FAKE libraries - what we're essentially doing here is removing the FAKE target / composition bit and replacing with Fun.Build. As it turns out, we don't even need those FAKE libraries any longer - I just replaced the calls with standard .NET and it all works.
@martinbryant I've fixed the test build now, this is now green.
Think we can look at closing #552 when completing this
@martinbryant we should first decide if we are going to adopt this approach or not (see https://github.com/SAFE-Stack/SAFE-template/pull/576#issuecomment-1833501813).
If we do merge these changes in, I think that you're probably right. We'd just be swapping one Build.fs file for one Build directory, which is not really more tidy. If we were to have more than one F# file for the build project, it'd be worth considering the approach suggested in #552 again.
Is this generally accepted as "the way forward"? If so, I'll resolve the conflicts and get this ready on Friday.
I'm ambivalent. I don't feel any strong need to move away from FAKE, but the benefits you listed seem good. Moving back in future should be relatively easy if necessary.
Given that we're changing how programs like dotnet and npm are called, we should test on Windows, Mac and Linux before merging.
This (somewhat experimental) PR replaces FAKE with Fun.Build for the build project. The benefits of this PR are:
I also have used this opportunity to only run a "clean" on doing a Bundle - there's no need to do it on a Run as far as I can see.
You can still run the "default" pipeline with a standard
dotnet run
. Running other pipelines usesdotnet run -- -p <pipeline name>
.We do lose the fancy colouration for Client and Server output, however,