Closed Fernthedev closed 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.
I've taken this chance to include another breaking change(s) into consideration:
./src
;./include
;./shared
foldersqpm.cmake
and extern.cmake
unless qpm.json::info::additionalInfo::cmake = true
All changes have been tested and successfully working as intended.
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
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:
qpm.shared.json
existsqpm.shared.json
does not exist, defaults to the previous behaviourqpm.shared.json::config
withqpm.json
's fields consistentlyqpm-rust restore --update
to revert to the previous restore mechanismSome 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.