loot / loot.github.io

The website and meta issue tracker.
https://loot.github.io
GNU General Public License v3.0
12 stars 9 forks source link

Revisit mods with `NoMerge` tag for WB v314+ #91

Open sibir-ine opened 2 years ago

sibir-ine commented 2 years ago

The behavior of Wrye Bash's NoMerge tag has changed somewhat over the years (see: wrye-bash/wrye-bash#51), & the Wrye Bash team are planning to change it again at some point (see: wrye-bash/wrye-bash#161, currently slated for v314 but subject to change). This means that many mods that are tagged with NoMerge were done so expecting different results.

For instance, when the tag also deactivated the plugin when building a Bashed Patch, contributors may have omitted the Deactivate tag as it would've been redundant at the time. Now, since the plugin is reactivated after building but is still included in the disable dialog, contributors may also add the MustBeActiveIfImported tag if the plugin should remain active to omit it from the dialog & prevent confusion for users. However, in wrye-bash/wrye-bash#161, the WB team are planning to omit plugins tagged with NoMerge from the dialog by default unless they are tagged with Deactivate as well.

For us, this means that when this change is implemented in a release build of WB (whether that be v314 or later), we would benefit from reevaluating all uses of NoMerge currently in any of the masterlists. There are 231 instances across the masterlists at the time of writing with none in games that have light plugin support (i.e., Skyrim SE & Fallout 4) as merging is currently disabled in them. Re-enabling merging for these games is also planned at some point (see: wrye-bash/wrye-bash#596), so this would benefit from reevaluating uses of Deactivate in them instead. There are only 3 at the time of writing.

These instances can be found simply by searching for NoMerge in a given masterlist, but a handful of false positives can be omitted by using the regex [\[\-:] *NoMerge. This regex accounts for tag lists written in either block or flow style, tags in either map or scalar form, & any amount of whitespace preceding the tag. NoMerge can be replaced with Deactivate (or any other tag, for that matter) if needed.