Proposal: Redirect the expansion manager to pull metadata from a wiki page that any wiki user can edit.
Technical demonstration and proof of concept:
Add the following line to your Oolite configuration file (.GNUstepDefaults):
Code: Select all
"oxz-index-url" = "http://wiki.alioth.net/index.php?title=User:Milo&action=raw"
Editing the manifests list directly through the wiki online editor is easy and works fine, but if someone wants to use another editor, just select-all, cut&paste from the wiki to a text editor, make changes there, and then cut&paste back. The only things that I had to fill in after copy-pasting a manifest from the OXZ were the download link (which I knew how to find) and the upload_date (https://www.epochconverter.com gave me that). Lastly, I had to add a comma between the manifest I added and the one above it.
The only (cosmetic) issue I noticed is that while it is downloading the expansions list, it displays a very large number on the right side (Downloading ## of ########### MB). I guess it isn't getting the expected size information from the wiki.
I think this identifies the minimal changes needed in the game source code to accomplish my proposal: (1) change the hard-coded URL to point to a wiki page [to be created, let's not use my user profile...] and (2) fix the cosmetic display issue with the total file size while downloading the list.
Benefits:
- Easy to add new OXZs: anyone with wiki access can add a new manifest.
- Where licenses permit (for example the many OXPs licensed under CC BY-NC-SA), any member of the community with sufficient know-how could step in to provide a needed update or patch for OXZs that are not currently under active development.
- Anyone with wiki access can help to improve the descriptions seen through the in-game manager (since 1.82 added support for multi-line descriptions, we can expand them to better inform players about what they contain and what their optional dependencies and conflicts are).
As an example of where improved descriptions would have helped me recently, I couldn't remember whether the various individual Griff retexture packs I had installed were included in the "Griff all-in-one" pack (or possibly even conflicted with it) and I went through the process of uninstalling them all and then re-installing the all-in-one pack to discover which were included (as a side note, it would be nice if the expansion manager could tell you when you uninstall something if it was a dependency of something else you still have installed).
A more detailed description for the "all-in-one" pack (such as the fact that the "all in one" does not contain any assets, just dependencies to direct the expansion manager to download the other OXZs) would have saved me some time and uncertainty (and bandwidth).
Risks:
- Another way of looking at this is "less control": a wiki editor could (accidentally or deliberately) remove portions of the list or the entire list, use incorrect syntax, write anything they want, and put something that isn't an OXZ as a download link.
I think we face similar risks with the system we have today, so the greater control that we have today is not providing any real benefit.
Who has access to the wiki? Only trusted members of this community that have asked for it. Who has access to edit oolite.org manifests? The same. These are people we trust not to abuse their access. So I don't think we need to worry about deliberate or malicious vandalism.
Consider that today anyone with wiki access can upload a new file in place of any existing one. So the risk of "bad" users putting "bad" files in place of good ones has existed already for a long time but hasn't happened. The risk of a "bad" download link is further mitigated by the fact that any downloaded file is opened by Oolite, not by the player directly, and Oolite expects to download an OXZ archive containing a manifest matching the one from the wiki, so if the link doesn't lead to an OXZ or doesn't contain the expected manifest, Oolite will recognize it as an error.
As for users breaking the list in whole or in part by mistake, I would hope that after making changes they would run the game, open the expansion manager and confirm the result. Still, just in case, it would be a good idea to put a disclaimer on the screen that is shown while downloading the list. Something like:
A benefit of using the wiki to host the list as a shared document is that the wiki shows the history of changes, who made them, and lets any user revert changes made by themselves or by anyone else. If someone breaks it, any wiki user can fix it.While every effort is made to keep this list up to date, it is a community-managed resource and sometimes mistakes are made. If something seems out of place or is not working for you, please visit oolite.org/community to get in touch with someone who can help.
Edited to add: Alternatively, I suppose we could just make it easier to get access to the oolite.org manifests tool, and let everyone who has access there edit any manifest, instead of being limited to a specific list. Bottom line, more trust, less control, please.