Skip to content

importmod

Benjamin Winger requested to merge bmwinger/portmod:importer_improvements into master

I've decided to move the importer code into a separate project, [Importmod (ImPortmod?, imPortmod?).

Reasons include:

  1. The importer code is already more or less separate.
  2. The importer does not require the level of QA that Portmod does. With Portmod we need to be very careful not to break things since we store a lot of state information, however the importer is a single-use script without any state.
  3. The importer contains a lot of stuff that I don't really want to pollute Portmod with, such as a way of accessing the Nexus API and rather shaky heuristic-based implementations of things such as parsing external mod and version names and scanning the structure of mod source archives.

An issue that didn't really occur to me until after I did this is that the migrator also relies on one of the aforementioned shaky heuristic-based algorithms (and defines a few of its own). I guess this means that I should move the migrator into importmod, which isn't amazing, as then users have to know to install importmod if they want to migrate their setup. That being said, the migration tools are not primary features anyway, so we can certainly include the fact that importmod is necessary to use them in the migration tool instructions.

WIP until I move the migrator to importmod.

This merge request also includes a change to the hash function that allows for specifying the hash function used, which is necessary for the importer to create MD5 hashes for verifying NexusMods files, and will likely be used in future for alternative hashes in Manifest files.

Edited by Benjamin Winger

Merge request reports