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

Future of the project #78

Open
sofiedotcafe opened this issue Mar 27, 2024 · 0 comments
Open

Future of the project #78

sofiedotcafe opened this issue Mar 27, 2024 · 0 comments

Comments

@sofiedotcafe
Copy link
Collaborator

sofiedotcafe commented Mar 27, 2024

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.
  1. 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:

  • Declarativity: Nix provides a declarative approach, which aligns well with modern software development practices. This contrasts with the procedural nature of GitHub Actions YAML files.

Benefits of Nix Integration

  • Simplified Maintenance: By leveraging Nix with GitHub Actions, we can streamline our workflows and avoid the complexities inherent in managing sprawling YAML configurations.
  • Version Pinning: Instances like issue Broken upload to modrinth #72, where dropping older versions caused inconvenience, can be mitigated through better version control and pinning offered by Nix.

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.

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

1 participant