QuestPackageManager / QPM.CLI

QPM command line tool
GNU General Public License v3.0
7 stars 3 forks source link

Locked restore by default #19

Closed Fernthedev closed 1 year ago

Fernthedev commented 1 year ago

qpm-rust restore default to using a qpm.shared.json as a lock file (or create one if non-existent) and having a qpm-rust update for updating those version ranges in the lockfile?

This PR does a few things:

Some of the benefits of this new approach are:

However, this is considered a soft-breaking change as it changes what is widely understood as accepted behaviour in the QPM community. Therefore, great care should be taken into consideration of the side effects of merging this PR.

sc2ad commented 1 year ago

The breaking changes here are very soft, ultimately the restore behavior exists to grab a version of a package that allows for a compile. Ensuring the same range is always set, and doing so by committing the qpm.shares.json file is an improvement towards consistency and reliability of CI runs. This also ensures others who pull will checkout the exact same packages.

Leaving the fallback in is a good idea, but I don't see this being too breaking outside of most people needing to update CI, their gitignore, and making sure they use --update for qpm updates.

Fernthedev commented 1 year ago

I've taken this chance to include another breaking change(s) into consideration:

All changes have been tested and successfully working as intended.

sc2ad commented 1 year ago

Default cmake on, how does the restoration work if those folders are not specified? If you remove the folders from being generated, ensure you can publish without all of them + can restore packages without all of them