modrinth / minotaur

Gradle plugin for deploying build artifacts to Modrinth.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Better support for uploading to multiple modrinth projects at once

pupnewfster opened this issue · comments

It would be nice if there was a better system for publishing to multiple Modrinth projects from a single gradle project. Mekanism is setup in multiple modules split by sourcesets, that then get built into individual jars. A more native way in Minotaur to handle cases like this would be useful and allow for easier automated publishing. The solution/workaround (mekanism/Mekanism@188d050) I came up with while performing some experimentation works by creating new TaskModrinthUploads and then using doFirst to change the configured values of the ModrinthExtension before the task is applied and it queries the extension for values.

Some potential solutions from an API perspective that I come up with might be:

  • Similar to how the dependencies block is a nested configuration, making it so some of the properties of the ModrinthExtension are nested and then it loops them uploading all to the corresponding projects
  • A configuration version of the values set in ModrinthExtension that can be passed to the TaskModrinthUpload when created/applied and just leave it to devs to declare when they are declaring the custom upload tasks.

Adding onto this (I can open it as another request if you would like), one thing that would be useful is to also then have a way to get the version id of uploaded files. That way for all my secondary projects I could mark them as requiring the matching version of the main project instead of just being able to mark them as requiring the main project in general.

Obtaining the version ID of the uploaded file can be obtained via tasks.modrinth.uploadInfo.id if I recall correctly.

Ah yeah, seems I missed that part when suggesting the secondary thing.

Wrong issue to close! Oops.