ferium
ferium copied to clipboard
Make use of incompatibilities specified for versions and files
The Problem
Doesn't check if ithe required mod version safe to update
Your Solution(s)
Check mod A required mod B with a specific version not great then a specific version! If so don't upgrade or do downgrade
Sorry I didn't really understand, could you provide an example?
"For instance, Sodium Extra 0.5.4 for Minecraft 1.20.1 mandates Sodium version not exceeding 0.5.6. If Sodium is upgraded beyond 0.5.6 or if there is no update, loading Sodium Extra 0.5.4 will result in the game not loading."
Ah I get it. The problem is this type of information is usually included in the mod's manifest files (e.g. fabric.mod.json) which is only available after downloading the mod file. This is not feasible since it would require downloading mod files (which can be very large) for every version checked.
Some times it can be fetched from the site, Maybe a database or json file with that info generated over time As you said don't know until it's downloaded
Maybe a part of your GitHub so the client software that reports that info on a op-in
Some times it can be fetched from the site
Hmm yes, sometimes incompatibilities are listed alongside dependencies on the website, but these are rarely maintained properly. I will keep this issues to track implementation of that, but it won't be a high priority of mine because of the reason I mentioned above. The other two solution are too ambitious in my opinion.
Sodium has my Fabric install broken atm too. I have two suggestions for a solution:
First (easy): Add a ferium revert command that pulls any mods replaced in the last ferium upgrade call from the .old folder back into the mods folder.
Second (harder): is for ferium to still download the latest compatible version of a mod, check for dependencies and mod incompatibilities and if it's incompatible with any mods already in the profile, install the latest (really) compatible version (if not installed already) and then prompt the user to a) keep the latest (incompatible) version of the mod until the incompatible mods update to support it (essentially creating a cache so that the new mod doesn't need to be downloaded again in the next update) or b) deleting the incompatible version and in both cases exit with a warning. Bindings in the config file could be added to default error, default cache or default delete.
Might get my coding skills a wipe and see if I can implement any of these myself.
Edit: I don't know Rust lmao