-
-
Notifications
You must be signed in to change notification settings - Fork 339
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
Split out WBI play modes #8275
Split out WBI play modes #8275
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
If you like 3rd party testing once its done, sign me up! |
@TheDogKSP good idea, here's a repo URL you can plug into the CKAN client to get the testing data (Settings→CKAN settings→New button at top→Enter a name, paste the below under URL→Add→Close settings→Refresh): After that you should have the new modules and changed versions of the old modules. |
First tests on a blank install: Test Case 1: GOOD
Test Case 2: GOOD
Test Case 3: GOOD
Test Cases 4a/b/c/d: PARTIAL GOOD
Test Case 5: NOT YET READY
Test Case 6: NOT YET READY
-> I am highly impressed, this is working magnificiently! |
This comment has been minimized.
This comment has been minimized.
7f971b1
to
6b1e316
Compare
This comment has been minimized.
This comment has been minimized.
b316aa1
to
87ba01c
Compare
This comment has been minimized.
This comment has been minimized.
b9430c8
to
bf4153f
Compare
This comment has been minimized.
This comment has been minimized.
bf4153f
to
c7ea7c0
Compare
HooliganLabsAirships author confirms compatibility with KSP 1.11 on forum thread: |
ea4ed70
to
471b70d
Compare
That sounds like something we should enable staging for, so we don't miss new files being added that need to be renamed. (Even if this means comparing all the files on each mod update 😢) |
54e0106
to
fda781e
Compare
Staging added in latest commit. Thanks, that answers the open question of how to catch relevant changes. |
fda781e
to
7870c3a
Compare
Ops, caught me, packed the zip from the wrong folder, thanks! |
7870c3a
to
837635e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a reasonable concept to handle this mod family, good job figuring it out @HebaruSan. Also thanks for the extensive documentation in the PR message.
I've glanced over the metadata and from what I can see it looks good (without checking all the individual files though).
Thanks a lot @TheDogKSP for bringing this to our attention and play-testing it!
From my side this is good to go, maybe we can also reach Angel to discuss this with us.
We just got a positive reaction from Angel-125. 🎉 @TheDogKSP, the last loose end here is whether your play mode will support Heisenberg. Should we wait for that or merge this without it? |
Go ahead with the merge, i didnt have time to do sth about heisenberg so far... |
Problem
See #8270, the WildBlueIndustries mods have something called "play modes" which are sets of configurations that can be swapped out to change how several mods work. They're distributed inside the downloads, with the default play mode's files distributed as .cfg files and the other play modes' files distributed as .txt files. Changing the play mode renames a bunch of files from .cfg to .txt and others from .txt to .cfg.
Currently CKAN just installs all of these files as they are in the ZIP, which is essentially unmaintainable, because the user can use a tool built into the mods to switch play modes, which renames the files, which means CKAN loses track of them and can't remove, upgrade, etc. properly.
Changes
NOTE: These changes are almost ready for merge! So far it looks like this solution will work, but it would be a good idea to validate it with @Angel-125 before merging, and we should wait to test the Heisenberg+USI combo when it is ready.
Now the play modes are split into separate
<Mod>-PlayMode-<PlayModeName>
modules for these mods:The USI play mode is from @TheDogKSP's separate mod, also added in this PR. It is handled as a single module providing play modes for multiple mods, since it is distributed in one ZIP.
provides
a<MainMod>-PlayMode
virtual module, which is added to the main mods'depends
lists. This way CKAN compels you to choose a play mode when installing any of these mods.WildBlue-PlayMode-<Whatever>
module for their play mode and conflict with the other play mode modules for the same mod, so you can only have one play mode installed at a time, and it will be the same one for all modsprovides
that play mode for that mod. For example, if you choose to install Buffalo, you can choose fromBuffalo-PlayMode-ClassicStock
,Buffalo-PlayMode-CRP
,WildBlue-PlayMode-USI
,WildBlue-PlayMode-Pristine
, andWildBlue-PlayMode-Simplified
. This way all play modes are available for all mods.ClassicStockResources:
WildBlue-PlayMode-ClassicStock
, because it is only compatible with the ClassicStock play modeWildBlue-PlayMode-ClassicStock
in turnsuggests
ClassicStockResourcesdepends
of WildBlueTools, Buffalo, DSEV, Heisenberg, MOLE, and Pathfinder, to avoid installing it when other play modes are in use.Now CKAN will be able to properly upgrade and remove these mods, since it will know which files are installed for each. A user who installs Buffalo and MOLE, switches to CRP mode, and then installs an upgrade will end up with a valid install instead of a mix of renamed CRP .cfg files from before the upgrade and newly installed ClassicStock .cfg files from after the upgrade.
Fixes #8270.
Future maintenance planning
<ModName>-PlayMode-<NewMode>
, conflicting with other play modes for same mod, depending onWildBlue-PlayMode<NewMode>
, rename all the .txt files to .cfg usinginstall[].as
, add<Mod>-PlayMode-<NewMode>
toprovides
ofWildBlue-PlayMode-<NewMode>
for any missing mod+mode combosTemplates/Common
, depend on<NewMod>-PlayMode
, make one module providing that virtual module for each play mode included, rename the .txt files to .cfg usinginstall[].as
, add<NewMod>-PlayMode-<MissingMode>
to theprovides
ofWildBlue-PlayMode-<MissingMode>
for any play modes not providedinstall
stanzas to install it renamed to .cfg