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

Migrate from NAnt? #207

Open
rmboggs opened this issue Jul 26, 2020 · 10 comments
Open

Migrate from NAnt? #207

rmboggs opened this issue Jul 26, 2020 · 10 comments
Assignees

Comments

@rmboggs
Copy link
Collaborator

rmboggs commented Jul 26, 2020

Hi,

I know that there is a lot that needs to be done for this project but I feel that the first thing to do would be to switch the build system away from NAnt. I was thinking of trying out Cake since it is active and I've had success with it with other projects. However, before I dive in, I wanted to see what others thought about this. Thoughts?

@masonwheeler
Copy link
Contributor

Looks interesting. Is it possible to run it without .NET Core? I don't know if the build machine supports it.

@rmboggs
Copy link
Collaborator Author

rmboggs commented Jul 26, 2020

It should run on either .net Framework or Core. Although the min version of framework required seems to be 4.6.1 but that shouldn't be much of an issue.

What build machine is Boo using? I'm using Cake on another project with Travis CI and Appveyor without issues.

@masonwheeler
Copy link
Contributor

Boy's build system is using Travis CI too. If that won't be an issue, I'd be happy to remove the Java dependency from our build process.

@rmboggs
Copy link
Collaborator Author

rmboggs commented Jul 26, 2020

Here is a sample of how it looks if you are interested.

If you are ok with this, I can start looking into changing the process from NAnt to Cake. I can send a pull request once it is ready for review.

@masonwheeler
Copy link
Contributor

Sure, go ahead.

@rmboggs
Copy link
Collaborator Author

rmboggs commented Jul 26, 2020

Also, Appveyor is pretty cool too. That might be something else to look into.

@rmboggs
Copy link
Collaborator Author

rmboggs commented Jul 26, 2020

ok, thank you. I'll let you know how it goes.

@rmboggs rmboggs self-assigned this Jul 26, 2020
@eatdrinksleepcode
Copy link
Contributor

For what it's worth, migrating the build to Cake was number 6 on my list of ways to improve the development experience with Boo more than three years ago:

  1. Replace the NAnt build with a currently supported, non-XML-based build tool. Here I wish I could recommend Casper, as it would be great for Boo to be reinforcing its own ecosystem. Unfortunately, Casper is not yet mature or stable enough for me to responsibly recommend it as a replacement. Maybe one day :)

I also am a HUGE fan of Gradle. But, the whole reason I am writing Casper, which is inspired by Gradle, instead of just using Gradle for my .NET projects, is that I object to introducing a dependency on a completely different development ecosystem just for a build tool. I should be able to write my build inside the same ecosystem as my app. I would recommend the same approach for Boo.

The two most popular non-MSBuild build tools in .NET today are Cake and Fake. I would recommend Cake, which has a low learning curve (if you already know C#) and good community support.

Note that I intentionally placed #4 ("Ensure that the NAnt build runs successfully on a fresh clone") ahead of this. Even though I think we should ultimately remove NAnt, it is critical that the existing build be stable, both for the sake of developers currently working with the repo, and to serve as a guide and point of comparison for the implementation of a new build process.

I am happy to say that I was able to accomplish numbers 1-4; but at that point I ran out of time to invest in Boo, and was never able to make it to 6. Since then my first child was born (more than a year ago now), so I have even less free time :)

I am glad to see someone else picking up where I left off. I spent a fair amount of time digging into the Boo build back then, and I don't think much has changed. Although I can't commit much in the way of time, if I can be helpful at all getting the build converted, please do let me know. I still think that getting Boo off of NAnt and onto a modern build system would make it much easier to contribute to Boo.

@rmboggs
Copy link
Collaborator Author

rmboggs commented Aug 8, 2020

What should the minimum framework/core target be nowadays?

@RealDoigt
Copy link

RealDoigt commented Feb 2, 2021

for framework? I wouldn't see any reason not to use the latest even for a minimum, but maybe as a safeguard 4.7.2 could be an ok choice. Framework itself is going the way of the dodo soon btw, so I wouldn't be thinking much about anterior versions tbh.

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

No branches or pull requests

4 participants