Integration with manually installed mods
Prompted by the reddit discussion linked to in #195 (closed), in particular the following comment:
I will probably stick with my current manual workflow simply because it gives me more control over, and insight into, what is going on. It also avoids issues with having to work around the mod manager, when it doesn't know about a mod.
I think this is a very reasonable response to the current state of Portmod, but I also think that there isn't much of a reason why portmod can't support manually installed mods alongside its own.
We create a special category, e.g.
user, which contains manually installed mods. This category will not exist in the package repository, nor the installed VDB.
The user then can place their manually installed mods into the
$MOD_DIR/user directory, with subdirectories per mod (subdirectory names must be a valid package name!). Any plugin and archive files in the root of a subdirectory will be assumed to be enabled (except for archives, this is basically an openmw-config thing.
This also provides a way for a user to have particular meshes and textures load last, or to install custom patches.
Manually installed mods should be listed by
omwmerge --info (the output of which should be included with bug reports) to make it easier to identify when manually installed mods may be the source of a user's problems.
- Obviously the manual mods need to be maintained by the user, and the user is responsible for handling any conflicts, duplicates, etc. between portmod's installed set and the manually installed set of mods.
- Sorting will need to be handled entirely through the User sorting rules. With data files identified using the atom
user/$directory_name. Plugins will have their masters be auto-detected as usual, and data files will be assumed to be the default TIER.
- It's possible that this might be slow, as we will need to basically always assume that the state of a manually installed mod has changed since we last checked. That being said, I think all that would need to be done is find the archive and plugin files when the VFS/config is sorted, which would just be a single
os.listdircall, so the performance may not be particularly problematic given that usual package load times don't apply here.
- Having to use user sorting rules instead of a manually curated list may be considered as having less control over the mod configuration. Other than that, I don't think there's really anything which portmod would restrict.