Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Wanted to create this and leave it here to spark some conversation.
Problem
Cake
Cake is a build tool written in C#. It's very easy to read and write for people who know C#, very easy to install (
dotnet tool restore
and you're done) and is completely cross platform (no .NET Framework).I was able to dev this MR in WSL with only .NET 6 installed and able to build to even the .NET Framework versions (to my surprise) so I'm pretty happy this will open DR dev up to more people!
It does require that users have a basic understanding of using the terminal if they want to do a full build of DR. Currently when a user builds in VS MSBuild will create the
./Build
folder but with Cake they'd only get the individual project builds until they rundotnet cake
.This MR replaces all the MSBuild tasks with Cake. Having played with it for an afternoon I'm really happy with how easy it is to use and how much it improves the build process over MSBuild Community Tasks. Personally, I'm keen to adopt this.
Further down the line I can see some opportunity to expand what we do with Cake to make it really easy to dev for DR. For example, creating Unity packages, doing releases (I tried this and there's a lot going on!) and doing the copy from
./Build
intoDarkRift.Unity
so that everything's neatly managed by a single tool and one set of commands.I'm expecting a lot of discussion 😛