-
Notifications
You must be signed in to change notification settings - Fork 826
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
Supplementaries forcefully modifies user configuration files to create false dependencies from Sodium #2303
Comments
Also, another interesting consequence of this code is that (at one point) installing Suppelementaries would have broken the user's installation of Sodium permanently, as Fabric will suddenly begin complaining that Indium is a dependency of Sodium... This would explain so many random user reports we've had with nonsensical dependency resolver errors. |
Need to wait for a version bump from Supplementaries, this only marks existing and previous versions as incompatible. See #2303
All past/current versions of Supplementaries have been marked as incompatible. The author needs to push an update which removes this functionality. Any newer version of Supplementaries will not match the version string, so if they bump the version, that will be enough to resolve it without our input. |
This comment was marked as abuse.
This comment was marked as abuse.
I should note that https://modrinth.com/mod/no-indium exists as a tiny JiJ-able mod specifically to notify the user about missing Indium. Gymnastics with dependency overrides or whatever was happening there is and was never necessary. Further, enough users use Sodium without Indium-requiring mods such that always requiring Indium is unnecessary. I can assure you Caffeine gets plenty of bug reports from users not installing Indium when they have Sodium and other mods. If you have a look at our current milestones, you'll see that FRAPI implementation is on the roadmap and coming sooner rather than later. |
So first of all apologies for the controversity, I knew adding that would have sparked some funni. Anyways as said above that code isnt there anymore and was shortly lived. Having said this I still stand by my stance in which I firmly believe that its not our duty to assure our mods work when others mods break them. It should be Sodium responsibility to inform users that Indium is required for sodium to run properly in a modded environment (yes it is for most of users as most of them play with other mods that are very likely to use Fapi). |
It's obviously entirely infeasible for Sodium to detect if some other mod is going to require Indium. Scanning all other mods' bytecode for FRAPI calls is a ridiculous. It would be easier if the mods using FRAPI simply declared that dependency by means of JiJ-ing no-indium. I don't make the executive decisions around here but I don't think you're going to get a resolution to this issue like this. If you don't want to warn the user about your mod requiring Indium because it uses FRAPI alongside Sodium as is the most common case, you'll have to wait for Sodium to implement FRAPI itself. |
The specifics of how such a dependency detection should be handled shouldnt be of our concern. While that one you say might be unfeasible i'm sure there are others like intercapting api calls or just looking at the declared deps in the mod .json. Regardless its something that its not up to us to "fix" by adding extra banners and JIJ stuff. I know thats easy to do but doing so would normalize such behavior of breaking other peoples mod and requiring them to fix or warn users about, and that is not acceptable for me. |
The situation is simply going to have to resolve itself when the FRAPI PR is implemented then. I don't expect any other measure to be added in the mean time. |
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
@TelepathicGrunt that code replacing it is still problematic! Now it is overriding user configuration in the other direction preventing them from adding their own overrides on Sodium, which is what the problem reported above is. Unless you can point at a commit undoing that change, the bad behavior is still in current versions of the mod. |
@TelepathicGrunt I'm guessing you didn't actually decompile the releases being published to see what they were doing. Because the code is still there in the latest release (Supplementaries 1.20-2.7.32) which is causing the exact issue we described. The source code in the repository does not match the binaries. |
I don't care how upset with me you are. Trashing user configuration files and deliberately preventing people from using other mods correctly is completely unacceptable. We don't go out of our way to break your mods -- It's just a matter of being one person, and not having the time to implement a gigantic API surface. Other people are free at any point to contribute back to our project to see the issues you want fixed. You are receiving my code for free, and I'm doing the work normally allocated to teams. This is an open source project. At any point you could have taken the 30 seconds out of your life to ask how we could make this easier. Oh, wait, you did ask! And we gave the obvious and trivial answer that did not require vandalizing other people's installations. |
The infuriating part is that I have actually been cooperative with you, and have been trying to upstream changes in other projects (#2298 and MehVahdJukaar/polytone#7 (comment)) to fix issues you are reporting. This is despite the fact that you repeatedly flame me at every opportunity, and talk constantly on your Discord server about how badly you want to break Sodium, and how much you think Sodium is a terrible mod. |
We've solved the issue on our side, and if Supplementaries isn't updated to stop doing this, we will simply block all versions of the mod. Your behavior towards me is unacceptable and the post-hoc rationalizing in this thread about how it's somehow "justified" because you don't like what we're doing is absurd. |
For some reason, Supplementaries has decided to modify the user's configuration files (specifically
fabric_loader_dependencies.json
) to trick Fabric Loader into thinking that Sodium has a dependency on Indium.I'm not sure why this is being done, but it has the consequence of preventing the user from modifying the file while the mod is installed. This causes massive breakages as users can't specify their own override to make the latest versions of Sodium compatible with Indium, while we wait on an update from upstream.
We need to work with their developers to get this code disabled so that the breakages stop happening, or add a
breaks
for the problematic versions until it is resolved.The text was updated successfully, but these errors were encountered: