Skip to content

mod dependency should be pinned version #40

Description

@parthpower

Mod dependency version has some vague definition in the ModDependency it states

The minimum version requirement of this dependency.

which basically means we can technically always get away with newest version regardless of version field without violating the VS's API.

However, in reality it could very well brake things if mod developers expect exact or specific semver constraint e.g. mod's dependency saying "mod":"1", in semver constraint it would mean any version 1.x.y is good but 2.x.y is not, in VS's API's definition both 1.x.y and 2.x.y are good.

We surely can't (and shouldn't?) solve the VS dependency definitions in Rustique. I'll try articulate this issue better and post on VS forum or discord, get more some input and do some research on what mod developers typically expect.

Side note

There's this weird definition in the Wiki specifically for game version

The game uses SemVer to compare, so for example "1.15.0" > "1.15.0-rc.3" > "1.15.0-rc.2" > "1.15.0-pre.1". You can set the value to an empty string or an asterisk ("game": "*") to allow compatibility with all versions.

Minimal code to reproduce

tmp=$(mktemp -d)
rustique-cli -m "$tmp" install combatoverhaul@0.12.7
# this should install combatoverhaul 0.12.7 (which it does) 
# and overhaullib 1.17.5 which it doesn't honor the strict dep and installs latest version which is (atm) 1.18.2
rustique-cli -m "$tmp" list # to see dependencies and what's installed

rustique.log

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions