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

Proposal to use [Magefile](https://magefile.org/) for build management #24

Closed
ccamel opened this issue Jun 11, 2024 · 1 comment · Fixed by #25
Closed

Proposal to use [Magefile](https://magefile.org/) for build management #24

ccamel opened this issue Jun 11, 2024 · 1 comment · Fixed by #25
Assignees

Comments

@ccamel
Copy link
Member

ccamel commented Jun 11, 2024

Proposal to adopt Magefile for build management

Discussion Participants: @bdeneux, @amimart, @ccamel

Current situation

Our current build processes are entirely handled through GitHub Actions, which manages various tasks directly within the GitHub CI pipeline. While functional, this setup lacks a dedicated build management system, making it challenging to maintain and scale efficiently as our project grows and attracts more contributors.

Overview

This proposal recommends the adoption of Magefile as our primary build management tool. By leveraging the Go programming language, Magefile introduces a modernized approach to managing and automating builds.

Built with Mage

Implementing Magefile will streamline our build processes, enhance portability across different environments, and improve the overall development experience for both current developers and new contributors.

Rationale

  • Improved readability and maintainability: Magefiles, written in Go, offer superior readability and maintainability compared to traditional Makefile syntax. This change will simplify our build scripts, making them more accessible and easier to manage, particularly for those familiar with Go.
  • Platform independence: Unlike the current reliance on Unix-specific features in some of our scripts, Magefile is inherently cross-platform. Adopting Magefile will eliminate platform-specific issues and standardize our build process across all environments.
  • Enhanced dependency management: With Magefile, dependencies are explicitly defined within build tasks, which improves the clarity and management of task dependencies and execution order.
  • Robust community support: Despite the extensive community surrounding traditional Makefiles, the growing community and ecosystem of Magefile provide continuous improvements and robust support, enhancing our development practices.
  • Integration with existing tools: Magefile can seamlessly integrate with GitHub Actions, allowing us to enhance our current CI/CD pipelines rather than replacing them. This integration will enable more sophisticated build scenarios while maintaining the ease of use and flexibility that GitHub Actions provides.
@bdeneux
Copy link
Contributor

bdeneux commented Jun 11, 2024

im-on-it

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 a pull request may close this issue.

2 participants