Version 0.6.0 is out!!
This versions comes with some substantial backend changes that should allow rustique to run as you would expect. There is a new dependency resolution mechanism using Breadth First Search to resolve dependencies. Along with the dependecy stuff, the version management got a face lift and is actually useful now - as in, you can use semver operators like >, <, ~, = to specify specific versions and even ranges of versions. Several commands now have new flags and/or enabled flags that already existed that were not hooked up.
Another huge change you will notice right away. When installing multiple mods, each mod being downloaded will have its own progress bar. This should help better identify when a mod is failing to install.. plus it looks nice IMO :P. Failures during download should not longer break the progress bar. I also limited the concurrent downloads to 15 which makes it a bit easier to follows what is being downloaded. This can be adjusted with the --jobs flag or through the config file.
There was a lot of bugs fixed in this version. I tested as thoroughly as I could, but I WILL miss things. If you run into any issues, please let me know.
Depedency Resolution
The dependency resolution has been completely rewritten and should work properly now. This resolves many standing bugs.
* Dependencies now resolve to the version requested by the mods, choosing the highest version requested.
Version Management
There is a new versioning mechanism. You can now specify version ranges using the operators >,>=,<,<=,=,~. This provides a much more robust way to pin mods based on your specifications.
* rustique config set -P >=2.1.0 -w alchemy would pin alchemy to allow any versions greater than or equal to 2.1.0.
* rustique config set -P 2.1.0 -w alchemy pins to EXACTLY 2.1.0 its the same as =2.1.0.
* rustique config set -P >=2.1.0, <2.1.5 -w alchemy pins range and allows for installing the highest version that falls within that set.
* Note: in order to use these operators, you will need to use quotes either "" or '' else the terminal will reject the command.
* You can properly pin a game version and will get the correct mod that works for that game version pinned. This fixed issues with mod authors using the same major/minor versions of their mods for both older and newer versions of the game.
* Pinned game version now shows up in the footer of the list command
- Along with the version changes there is a new flag to allow unstable versions of mods and game versions. By default it is ENABLED. This means any
-alpha, -dev, -rc, will install like normal.rustique config --allow-unstable true|falseset this to false to only allow stable versions of mods.
Delete Command
The delete command now functions correctly and works with the new versioning mechanism.
- Passing
rustique delete -m modidwill delete all versions of that mod installed. - Passing
rustique delete -m modid@versionwill now actually work and delete only that specific version. You can use any proper semver in place ofversionand delete we act accordingly. - Added
--with-depsto remove mod dependencies. This is a hungry command will not care if other mods need the dependencies being removed. - Added
--keep-newestflag so if you have multiple versions installed, you can delete all older versions.
Install Command
- The install command now has a working
--ignore-dependencies. It was there but not wired up since it was implemented.. - Concurrency in downloads has been capped at 15 by default. This is mainly to help those with slower connections see less error messages.
- There is a
--jobs #at runtime and config option to change this default behaivour. rustique config set jobs 20-- limit to 20 concurrent downloads at once.rustique config set jobs 0-- this removes the concurrency limit, which is what it was like before this change.
- There is a
List Command
- The list command had some stray bugs that caused the missing dependencies to populate when there were none.