CKAN
CKAN copied to clipboard
General idea for mod messaging (changelogs, save breaking, etc.)
This would in part address some of the issues raised in #815, #211 and #60:
It would be probably be handy if mods could include some general messages (which may or may not be displayed) as part of the install or pre-install process.
Each 'message' could consist of a few components:
- Message type, such as 'readme', 'changelog', 'required-configuration', 'optional-configuration', etc.
- Some sort of condition for display, e.g. to mark a message as only relevant if upgrading from a version <= x. For instance, ExampleMod 8.4 might have a condition to mention save-breaking only if upgrading from a version earlier than ExampleMod 8.0. A message may only be relevant on the first installation of a mod as well, or some combination of the two. (Perhaps "mod never installed before" might constitute "version 0", so a condition could be something like "oldversion > 0 and oldversion < 8.0")
- A message format. 'text' would be the default, but maybe 'markdown' or something similar can be added.
- A message body OR a path to a file (Relative to KSP/GameData/) to display. Note that the latter only works if the mod is actually installed, so might not be ideal in all circumstances.
There's a few types of messages I could see this including, each of varying priority which may or may not need to be displayed. A few categories I can think of would be:
- changelog: Self-expanatory. Changes in this version of the mod. A full version history could be included by having multiple messages with different display conditions, e.g.
changelog, condition: oldversion < 8.4: "ExampleMod 8.4 released 5/1/2015.\n\nFixed bugs introduced in 8.3" changelog, condition: oldversion < 8.3: "ExampleMod 8.3 released 4/30/2015.\n\nRecompiled for KSP 1.0 and added n+1 more bugs."
- readme: Also self-explanatory.
- required-configuration: In case a mod must be properly configured prior to use, this is instructions on how to configure the mod.
- optional-configuration: As above, but assumes the configuration is optional (e.g. reasonable defaults are already present.)
- breaking: Critical Information about what installing this mod breaks (e.g. your saves), optionally including instructions on how to manually upgrade or work around the breakage.
I really like the idea, especially if I want to update a mod I would like to see the changelog for this version in the sidebar on the right. I think there is enough space left there under the description!
As far as messaging on install or upgrade we should ensure we ONLY message Very Important things, otherwise users will very quickly become immune and just "click-through". Ie, limit these messages to save-breaking or similar.
Furthermore, on install/update, these messages should all be collated into a single window/dialog with a single "Accept/OK" button, not one per mod as otherwise, again, users will quickly just "click-through". See the Debian package manager as an example of how this works.
Anything else such as README's or a Changelog should be displayed / available via a menu or button in the UI, or via a CMD line command. Ie, only via specific user interaction requesting this information. IMHO these are not important enough to warrant an automated display.
I stumbled upon this issue when searching for some kind of mod changelog support. This idea seems nice but I decided to try the changelogs only as a start, I posted the WIP as a draft pull request so I can gather some feedback so feel free to check it at #3612