ParadigmMC / mc-modpack-kit

A template designed to streamline the release process of Minecraft modpacks.
Creative Commons Zero v1.0 Universal
29 stars 10 forks source link

Future of the project #78

Open jh-devv opened 5 months ago

jh-devv commented 5 months ago

Challenges in Maintaining mc-modpack-kit

As the sole maintainer of mc-modpack-kit, I've encountered significant challenges in managing this GitHub Actions "template" project. Recently, I've been struggling to allocate sufficient time for its maintenance.

Please note: While I will continue maintaining this template for the time being, it's unlikely to be a long-term solution. I prioritize addressing the issues at hand first.

The Problem with GitHub Actions Complexity

As someone on HackerNews points out:

1) Program with github actions. Google "how can I send an email with github actions?" and then plug in some marketplace tool to do it. Your workflows grow to 500-1000 lines and start having all sorts of nonsense like conditionals and the YAML becomes disgusting and hard to understand. Github actions becomes a nightmare and you've invited vendor lock in.

2) Configure with github actions. Always ask yourself "can I push this YAML complexity into a script?" and do it if you can. Send an email? Yes, that can go in a script. Your workflow ends up being about 50-60 lines as a result and very rarely needs to be changed once you've set up. Github actions is suddenly fine and you rarely have to do that stupid push-debug-commit loop because you can debug the script locally.

For a detailed exploration of these issues, check out this video:

YouTube video

Moving Forward with Nix

Given the challenges posed by maintaining a GitHub Actions project, I'm considering a shift towards Nix, which has gained popularity recently. This move offers several advantages, including:

Benefits of Nix Integration

The other actions like bumping versions could be simplified. A robust but simple pipeline could be achieved.

And as @logamaster said on the Discord:

I say make a simple one file action. It just reads a release from github and pushes the result.

So using the tag value, push to Modrinth and CurseForge or when a tag is pushed build and set up the result. This could be done with nix


Considering the challenges in managing a GitHub Actions project, I'm contemplating exploring alternatives like Nix, though the extensive rework required raises concerns about time constraints at least for me, since I have other stuff to do.