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

CryoTanks-Core can cause issues because of mods that use NEEDS[CryoTanks] #9911

Closed
JonnyOThan opened this issue Jan 24, 2024 · 8 comments · Fixed by #9964
Closed

CryoTanks-Core can cause issues because of mods that use NEEDS[CryoTanks] #9911

JonnyOThan opened this issue Jan 24, 2024 · 8 comments · Fixed by #9964

Comments

@JonnyOThan
Copy link
Contributor

JonnyOThan commented Jan 24, 2024

just untangled this nightmare...

image

Endurance uses a tank type named OX
It provides this tank type on its own, but conditioned on :NEEDS[!CryoTanks] - seems reasonable, because CryoTanks also provides this tank type.
You have CryoTanks CORE installed but not the full CryoTanks mod. So you have the folder named CryoTanks which satisifies the NEEDS clause (or rather, causes Endurance to not create the tank type).
Therefore the tank type doesn't exist and b9ps throws a fatal error

https://github.com/JPLRepo/Endurance/blob/14768ade5644ff372e3ad83f134dfba040d1d026/Distribution/GameData/Endurance/Patches/B9PS.cfg#L205

https://github.com/JPLRepo/Endurance/blob/14768ade5644ff372e3ad83f134dfba040d1d026/Distribution/GameData/Endurance/Patches/B9PS.cfg#L298

I'm not really sure how to resolve this in a general way. Ideally installing CryoTanks Core (the simpleboiloff dll) wouldn't satisfy the needs clause, because I'm sure that a lot of mods use NEEDS[CryoTanks] assuming that all of the tank types are installed. That implies it would need to be installed in a different folder. In the current regime, other mods don't have a great way to check for whether the tank types are installed, unless they use NEEDS for a specific cfg file which seems nonobvious and fragile.

A possible solution would be to remove the separation between CryoTanks-Core and CryoTanks - but the .netkan files are on @ChrisAdderley 's repo: https://github.com/post-kerbin-mining-corporation/CryoTanks/tree/master/CKAN

Indeed, there are NO other mods that depend on solely CryoTanks-Core on CKAN, so the separation isn't buying us anything.

Another possible solution for Endurance specifically would be to use its own EN_OX tank type rather than depending on CryoTanks to provide it. But I'm pretty sure we're just going to hit this in other mods too.

@JPLRepo FYI.

@linuxgurugamer
Copy link
Contributor

Not an expert here, but isn't there a way in MM to need a specific part? If so, can you use that?

@JonnyOThan
Copy link
Contributor Author

JonnyOThan commented Jan 24, 2024

Not an expert here, but isn't there a way in MM to need a specific part? If so, can you use that?

That's this:

they use NEEDS for a specific cfg file which seems nonobvious and fragile.

Basically, they'd have to pick some cfg file inside CryoTanks that means "all the tank types are installed" and update all of their NEEDS[CryoTanks] to NEEDS[CryoTanks\patches\whatever]. And then hope it doesn't change. And every mod that interacts with the tank types needs to do this.

I don't think it's feasible.

@HebaruSan
Copy link
Member

Indeed, there are NO other mods that depend on solely CryoTanks-Core on CKAN, so the separation isn't buying us anything.

Found one, sort of:

recommends:
- name: CryoTanks-Core

That was based on a third party's use of the metadata-webtool in #9377, so presumably changing it to the full CryoTanks mod would be fine or even preferred.

@HebaruSan
Copy link
Member

HebaruSan commented Jan 24, 2024

So far, post-kerbin-mining-corporation/CryoTanks#138 has sat for 3 weeks with no response. Have we tried contacting @ChrisAdderley via Discord or other means? I know he's busy, but maybe he doesn't receive GitHub pings.

Otherwise it seems reasonable to conclude that these metanetkans are not being maintained and reclaim them to solve this and #9894.

@JonnyOThan
Copy link
Contributor Author

JonnyOThan commented Jan 24, 2024

Found one, sort of:

Ooh good catch.

According to this list, it doesn't make a distinction: https://github.com/CessnaSkyhawk/SkyhawkScienceSystem/wiki/Mod-Support

And the split between core/full seems to only exist in CKAN, and Skyhawk was not originally intended for CKAN. Looking through Skyhawk's configs, it looks like it could work with just cryotanks-core, or the full mod.

Just sent a ping on the forum and discord, now we wait...

@HebaruSan
Copy link
Member

You have CryoTanks CORE installed but not the full CryoTanks mod.

@JonnyOThan, how did a user end up in the state of having CryoTanks-Core without CryoTanks, since (almost) no mods depend on CryoTanks-Core?

@JonnyOThan
Copy link
Contributor Author

That's a good question. I don't recall.

@HebaruSan
Copy link
Member

That's a good question. I don't recall.

Did it actually happen? Or was the cause of the error in the OP something else?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants