Since #4172 added support for SourceForge krefs and KSP-CKAN/KSP2-NetKAN#183 indexed one, KSP2 mod KSRe's download property has been switching from one mirror host to another at every inflation:
Changes
Now Netkan always uses the psychz mirror for SourceForge downloads since it is in a central, densely populated location.
While working on the above, a few additional small things came up:
The SHA1 and SHA256 download hashes aren't considered in CkanModule.MetadataEqual, but the install_size is. This could mean that a user would not be prompted to reinstall a re-uploaded mod if the new ZIP had the same file size but different hashes.
Now the hashes are also checked.
ckan list --export had several quirks:
The --help info said it accepts a format parameter without saying what the allowed values were.
Now it mentions the allowed values.
There was no way to export a .ckan modpack file even though this is the most popular format.
Now --export ckan does this.
The csv and tsv formats were missing three columns because we were using a format string that had to be updated every time a column was updated, and it wasn't.
Now we use string.Join instead and it works better.
Motivation
Since #4172 added support for SourceForge krefs and KSP-CKAN/KSP2-NetKAN#183 indexed one, KSP2 mod
KSRe
'sdownload
property has been switching from one mirror host to another at every inflation:Changes
Now Netkan always uses the
psychz
mirror for SourceForge downloads since it is in a central, densely populated location.https://sourceforge.net/p/forge/documentation/Mirrors/
Side fixes
While working on the above, a few additional small things came up:
CkanModule.MetadataEqual
, but theinstall_size
is. This could mean that a user would not be prompted to reinstall a re-uploaded mod if the new ZIP had the same file size but different hashes. Now the hashes are also checked.ckan list --export
had several quirks:--help
info said it accepts a format parameter without saying what the allowed values were. Now it mentions the allowed values.--export ckan
does this.csv
andtsv
formats were missing three columns because we were using a format string that had to be updated every time a column was updated, and it wasn't. Now we usestring.Join
instead and it works better.