Warn about possibly incompatible Forge versions in logs
hron84 opened this issue ยท 14 comments
As @theZorro266 said earlies we want to stop reporting bugs caused too new or too old Forge so I started thinking it would be good or not to make a warning in logs where possibly problematic Forge is used. It should not be a fatal error since we do not really have an exact compatibility matrix against Forge, however we have some knowledge about Forge changes and we should inform the user the actual Forge version can cause weird/annoying issues. A simple warning in the log file should be enough - or maybe a chat message after first start of the world.
The version command shows the targeted Forge version now as well. I think this is not an issue anymore
A simple warning in the logs is likely to not be read at all. Even when it is at a position where you should read it. When people see crashes and they see Logistics Pipes somewhere in there, they just copy and paste the whole error log. To proof that there are too many examples of "crashes" when you use an unsupported BuildCraft version.
A chat message instead sounds nice, but I guess that would be too late, if you actually crash :P
@theZorro266 It wouldnt be to late in most Cases.
additionally, you could throw an FML Error like duplicate mods do, to instantly Warn, Inform the user about a Better Version and close the Instance.
@Bitterholz I do not know how your most cases look like, but when you start a server and Logistics Pipes starts working and accesses an invalid method of a newer Forge version and the server crashes, there is no time for a chat message.
And if we close instances, because of untested versions of BuildCraft, that is close to "fine". But closing the instance, because someone uses a different version of Forge (which might make sense, because there might have been an imminent security or bug fix) that is unacceptable imo. In terms of security and bugfixing Forge is much more important, because it is much more a base for anything.
Is a popup a solution? Like saying: "There are known Issues between Forge 1355+ and Logistics Pipes! Things might not work that well!"?
O ill just go on and Happily work through every crashlog they throw at me :P
@theZorro266
"A simple warning in the logs is likely to not be read at all."
You mean it would be not read by users and I considered this problem. However, not only we and users read the log but some modpack creators too and I am pretty sure they will read the log and thus they will notice the warning too. And some experienced users (like me) are also read the log and can notice the warning.
"I do not know how your most cases look like, but when you start a server and Logistics Pipes starts working and accesses an invalid method of a newer Forge version and the server crashes, there is no time for a chat message."
I definitelly not discuss here the exceptions during startup. But for example the fluid update of the Forge can cause problems after startup and we can inform the user somehow before it can be happened. And we do not know what can we expect from Forge side in the future. While we can disable any proxy if the "dependent" mod changes incompatibly (and user will get informed about this via a chat message), we cannot disable anything if Forge makes an annoying change for us.
The basic idea was if and only if we know a problematic Forge version (or version range) where LP can suffer from incompatible changes or there is a chance for crash, we should inform the user before it could happen. It's not about startup/world load issues it's about a "not a problem right now but prepare for strange things". Otherwise we can crash normally (errm... i wrote "crash" and "normally" in same sentence?!) as usual.
@Bitterholz that's why I suggested the chat message. That is less obtrusive and can be discovered by users too. I think popup is too obtrusive and also can cause problems if the world loads slowly on the user's machine.
I hope since Forge 1377 this is unnecessary:
Build 1.7.10-10.13.3.1377-1.7.10:
cpw: Verify that the fluid registry doesn't contain "junk" fluids thru reflection.
This should fix alot of problems between many Mods and LP.
And additionally fix most of the problems Users report here.
I think you got me wrong there..
I do not agree with how Forge mark their "latest" builds, because they can actually break servers. I am not implying that they do not test their builds, but obviously they cannot test on many different servers before they release them. That is the first reason not to use those builds. The second reason is that users do not gain anything really by using a build that is newer than the recommended build. Those builds are changes to an API they do not even see.
Now with that said, there is obviously our reasons that we will not keep up with the latest versions, because we want to support the recommended version for everyone else.
It is simple actually: People using other Forge builds than the recommended builds are (should) be a minority. A minority of those again make issues here about crashes with the latest Forge (and some even claim that "many" latest Forge builds crash with LP), which sounds like a poke: "hey, i crashed. do something about it, it's your mod. i have no idea why it crashed" and that is wrong imo. It is wrong, because they have no idea what goes on in the code or what role Forge really plays. That is, at least when dealing with non-developers, the usual case.
Now the question is why should we bring a warning, if they use the "latest" Forge? That means we either code and actively update a compatibility matrix (which is a lot of hastle, and we would get the information for that matrix from intensive tests with every build AND/OR issues (???).. that does not make sense and would not help my actual issue) or we check against the Forge version in our own build xml, which again means that we have to put a quite some effort in parsing the XML and checking (blabla..).
In the end people without much knowledge would still create issues, because they crash with the latest Forge.
So to make an end to my rant here: I think Forge should change their download site at http://files.minecraftforge.net/ because they do not advertise the "latest" builds as unstable (ya right that little bug marks it unstable.. the build from 20 minutes before cannot be unstable anymore of course*). And anyone, who is experienced is free to use the latest builds and also make issue reports about those latest builds here (because those issues can actually help). I am just upset by the people I described above Forge.
@theZorro266 I absolute agree with you, however Forge guys are going on their way and not always accept a bug report about their habit. But at least we can help our users to be safe from these shenanigans and use a more stable Forge - and maybe it would decrease an amount of reported bugs too - not sure, but why not try it out?
If you say LP is always stable with the recommended Forge, then we should issue a warning about we do not support newer Forge versions than the recommended one. From a modpacker side, it's very hard to figure out what mod will crash with what environment. If we help only for modpack creators with this warning - then the involved work will definitely worth it. Or maybe I thinking on wrong way?
@theZorro266 if we assume everybody visits our site... yes, it can be enough (but I still think in-game warning is better).
Why are we using a non-stable build and how can we know, if a build is more stable?
You misunderstood my sentence. I mean we can help to our user to use a more stable Forge than the latest by notifying them about they using a "problematic" Forge version from our aspect.
But at least we can help our users to be safe from these shenanigans and use a more stable Forge
Why are we using a non-stable build and how can we know, if a build is more stable?
If you say LP is always stable with the recommended Forge, then we should issue a warning about we do not support newer Forge versions than the recommended one.
http://ci.thezorro266.com/job/LogisticsPipes1.7/
Is that new red warning good enough then?