-
-
Notifications
You must be signed in to change notification settings - Fork 348
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
How complex an install do we wish to handle? #13
Comments
I don't think we need a more generic copy system, but we may well need support for arbitrary actions (within a defined set). For example, consider RO. Due to how RT2 works (unless you folks have fixed this) the settings file is not exposed to MM. To change settings, RO includes a file to overwrite it. Ditto RO and TACLS. Now, those install steps can be handled by generic pathed copy. But it is easy to imagine a situation where RO might need to delete some file in a dependency. |
@NathanKell : How does RO currently handle deleting a file? Is it mentioned in the forum thread and users miss it and then come and complain about how something doesn't work? Or is that RO may need to delete files in the future, but doesn't do so at all at the moment? I'm hesitant to provide a rich action set, because that means tracking where each file has come from becomes very hard. To take Debian as an example, the systems know which files are owned by which packages, and so when updating or deleting a package, you can take well-defined actions. Debian makes it tremendously hard to overwrite someone else's file, because then it's not clear what should happen if their package or your package is updated or uninstalled. I presume that with the CKAN if something overwrites a file from another package, it should stay overwritten, even if that package is upgraded, but that's very non-trivial. |
Maybe leverage ksp-avc version files? Even my sub-dependencies (like the shared usi dlls) use those? |
@BobPalmer : I do have plans to integrate with the AVC files at some point, but mainly in the form of an Out of curiosity, how are you updating your AVC files? Is it by hand, or is there a neat tool-chain that updates them based upon git version tags or similar? |
By hand, which is not a big deal even with the number of mods I have |
RO doesn't need it now. I think it may have at one point, but thanks to new MM functionality it's fine without it at the moment. Indeed, only those few mods with unexposed configuration require special operations at all. |
This ticket is now fabulously stale. We're already supporting the install of mods as complex as Karbonite, and a number of spec upgrades for 1.2 and 1.4 are enabling the installation of other mods with more complex requires. As such, I'm closing this out. ;) |
Add .gitignore to submodule.
Change project filename
Fix for new CkanTransaction
Right now we have a very simple "take X, and place it in Y". That's great for the vast majority of mods, but some are a little more tricky. I'm going to use @BobPalmer's amazing Karbonite mod as an example. (Hi RoverDude! You rock!)
Karbonite zipfile structure
The current Karbonite zip looks like this, starting with GameData. I've
indicated extensive directory structure with an ellipsis (...):
While a simple CKAN install can just copy the entirety of GameData
across, that doesn't accurately reflect what's been bundled up
here. We have:
Karbonite Core:
Open Resource System (bundled, required):
USI tools (bundled, required)
ModuleManager (bundled, required)
Community Resource Pack (bundled, required)
Firespitter (bundled, dll only, required)
TextureReplacer tweak, for both CRP and ORS (oh god how do we classify this):
Recommendations
I suggest that:
file
to allow a list. We may evendeprecate the key
file
withfilelist
. For example:including
GameData
get stripped. (In the current implementation,all leading paths are stripped, which would break the above example.)
Open Questions
Do we need a more general "copy X to Y", such as:
My opinion is we should not have this. It's complex, it's hard to understand,
and I'm very sure people will get it wrong. Most projects I've seen which do
this can solve their problems with
:NEEDS
in ModuleManager. It's okay if some mods can't be installed via the CKAN if that means we have additional surety that CKAN-compatible mods will install correctly.Feedback and comments very welcome. Tagging @rafl, @NathanKell and @erendrake on this as folks who have good advice on CKAN in the past, along with @parisba because twitter.
The text was updated successfully, but these errors were encountered: