Open BullyWiiPlaza opened 10 months ago
@BullyWiiPlaza, Thanks for posting this issue, could you briefly describe the application scenarios of your feature? Or what kind of scenario makes you want to add this feature.
@BullyWiiPlaza, Thanks for posting this issue, could you briefly describe the application scenarios of your feature? Or what kind of scenario makes you want to add this feature.
Hello, if I want to for example upgrade Boost
, vcpkg first removes all Boost
libraries and then downloads/installs the new ones. Since Boost
is a huge library, it can take a while. If the installation is interrupted or while it runs, no more compilation is possible which references Boost
since the libraries were removed. This is a downtime a developer experiences while upgrading and it can be hours or even 1 - 2 days. A seemless transition from the old version to the new version with minimal downtime would be greatly appreciated.
This is an automated message. Per our repo policy, stale issues get closed if there has been no activity in the past 180 days. The issue will be automatically closed in 14 days. If you wish to keep this issue open, please add a new comment.
Is your feature request related to a problem? Please describe.
When you upgrade ports, vcpkg immediately wipes out the old version of the port, then goes into the long process of downloading and building the new version of the port. Depending on the size and transitive dependencies, this can take a long time. Also, if the process is interrupted or fails, the old version of the port is still unavailable and cannot be restored (?). I've lost a lot of time because of this issue so far.
Proposed solution
It would be great if vcpkg uprades a package first in a temporary location, then, when everything succeeded, removes the old version of the port and sets the new version live. Take an example of a database transaction. This change would minimize port downtime so a user/developer does not have to potentially wait hours to be able to recompile code and work isn't interrupted at all when upgrading ports ideally.
Describe alternatives you've considered
Copying/Moving the entire vcpkg folder but it's very slow and inefficient as well so it's not a very useful solution. Doing manual backups of specific port directories etc. beforehand is not viable either.