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 Makefile to Magefile for Build Management #211

Open
3 tasks
ccamel opened this issue Nov 20, 2023 · 0 comments
Open
3 tasks

👷 Migrate from Makefile to Magefile for Build Management #211

ccamel opened this issue Nov 20, 2023 · 0 comments

Comments

@ccamel
Copy link
Member

ccamel commented Nov 20, 2023

Proposal to Migrate from Makefile to Magefile for build management

Overview

This issue proposes the migration of our repository build management from Makefile to Magefile - http://magefile.org.

Built with Mage

Magefile is a modern build tool that leverages the Go programming language, offering several advantages over traditional Makefiles.

Rationale

  • Improved Readability and Maintainability: Magefiles are written in Go, which is (at least for us) more readable and maintainable compared to the syntax used in Makefiles. This can simplify our build scripts and make them more accessible to contributors familiar with Go.
  • Platform Independence: Unlike Makefiles, Magefile does not rely on Unix-specific functionality and is inherently cross-platform. This makes our build process more consistent across different environments and reduces platform-specific issues.
  • Better Dependency Management: Mage allows for explicit dependency definitions within the build tasks. This can improve the clarity of task dependencies and execution order.
  • Strong Community and Ecosystem: While it's important to acknowledge the vast and experienced community surrounding Makefile, Magefile's growing community and ecosystem also provide robust support and continuous improvements, which can benefit our development process.

Impact

The transition from Makefile to Magefile will involve converting existing build scripts to Go. This process will be managed to minimize disruption to the current build pipeline and CI pipelines.

Actions

  • convert the existing Makefile script to Magefile tasks, ensuring each task is thoroughly tested.
  • update the documentation to reflect the new build process.
  • update the CI pipelines to incorporate Mage builds.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: 📋 Backlog
Development

No branches or pull requests

1 participant